domingo, 25 de febrero de 2018

Blog Entry: The Promises of Functional Programming

Traditional programming and Functional Programming work both in different ways, the programmer normally learns the traditional one, because is one of the methods that was created years ago and is the most common among the different types of programming that exist in the actual time.

The way it work the functional programming is something that I already used on semester ago, not with high detail that the traditional one like Java, C, C++ or even with Python, but before Clojure I also learned to use Mathlab and Mathematica, it definitely looks different than the other ones that I mention before, like article says this kind of programming is different to the one that we usually use, it's used on mathematical operations or even on simple programs used for statistics or create mathematical solution using recursion.

At this moment learning Clojure looks like a different point of view or in other words a good opportunity to learn a different point of view to solve mathematical problems (that does not mean that it can be used to solve any other kind of problems or create programs -like macros- all the contrary to this), because we are looking to solve problems in general, algebra or even simple operations is a good beginning to learn Clojure and then create more complex programming structure.

I can say that this is a new opportunity to learn different styles of programming, not only because it can help to solve problems that a traditional can do, but in this case, it can be used to solve it more quickly and without creating the full structure of a program because in the functional one we already have the opportunity use predefined functions to solve any mathematical problem (from what we are learning on the class).


This, as an overall answer does not replace the traditional programming but it can be used for other fields of work, I still got the idea that we are learning the basic stuff from functional programming so we are able to create more complicated programs and still get different way to use another kind of method for programming instead of still looking in one side to the traditional programming.

domingo, 18 de febrero de 2018

Blog Entry: Triumph of the Nerds

Creating something from zero nowadays is a good challenge for an entrepreneur or even for a company, normally the products or software is created from something that existed before. On modern days the updates/upgrades take some time to get new features compared with the previous one and make a big impression on the community, also that helps to get more money to get for them and more to spend on their products.

When the products were introduced, their creators did not get the idea that they were creating the future or even were marking a great event on human history, if we talk about technological stuff like the computer these machines are the exact image of the future and the creation of something that was going to be necessary on the life of every person.

Also, one thing that is really impressive as a consumer or even for one person, creating something like that requires time and effort, but most of those people spend too much time looking for ways to innovate and create new things so the consumer can be satisfied with the result, but not all the time this work, sometimes the product did not meet the requirements or even the consumer satisfaction so they can become a failed test that needs to be forgotten or modified to get again that spark and element that makes the spotlight of the product.

On the other side of the story, it's important to try everything all the time not to stay with the idea until someone else shows it and you stayed with the question (what if...), these are risky business but at the end if they are well executed they can be a complete success.

Creating Windows or even Mac shows that even if you have a computing degree you got the talent to create (or to copy with different features) new stuff. One example that I won’t forget is the PlayStation Vita, the previous device the PlayStation Portable (a.k.a. PSP) was a very successful console, but then the PS Vita was a complete failure not for the hardware it was using but for the catalog the company provided to the console, that mistake created the grave for their most recent child.


As a conclusion we can see that nothing is written some stuff could be successful, others not, the idea needs to be executed correctly in a way that nothing is the same compared with other products that already exists, but at the same time be creative so the successful rate could be higher than a product that is only an upgrade/update or even a copy from another.

domingo, 11 de febrero de 2018

Blog Entry: Rich Hickey on Clojure

Programmers are normally accustomed to OOP or even Data Structure programming, when we talk about those the most common programming languages comes to the programmer’s mind, this happens because is one of the first things you learn on the career, normally on the ITESM a student begins with Python, then it follows Java and at the half of the career you learn C too, also there are also derivates of another programming languages that a person could learn by his or her self.

Clojure for me is a different programming language compared with the traditional ones (if we can call them like that) that normally a programmer uses, Java, C, Python to say some of the most languages that companies and persons handles on. Clojure is also like Mathlab or even Wolfram Mathematica, this sounds like the knowledge or even the handling of the programming methodology seems like those two, also on the class we are using it as a Math tool too, but with the information investigated and thanks to the podcast I’m pretty sure that it can be used to a lot of implementations, because it comes from the LISP language and I remember that LISP was one of the first programming languages to create a webpage.

Now that I’m handling Clojure on the class is something different to what we use to program, this is something I like because the way you call the function by itself, then the answer could be reviewed with a test element, but also helps you to see what is wrong with the function and the content.

Something that I like from the language is that it can be handled like JavaScript, because it's asynchronous, atomic and can be received by one agent at the time, something that I like, an element to be called on any moment when you run the program.


As a conclusion for this blog I would like to say that Clojure could be handled with a different point of view from the programmer I’m pretty sure that you are able to use it for different purposes and also to solve problems that are easy or difficult, as I previously said it can be handles as JavaScript in an asynchronous way and as we already heard on the podcast we can considered as an expansion or a library for Java, that does not mean that for having Java as a base is not considered as a programming language, but this is not the case its considered a different language and is useful for a lot of stuff.

domingo, 4 de febrero de 2018

Blog Entry: Revenge of the Nerds

People thinks (and I thought the same some time ago) that one person when knows Java, even C any high-level language (that are the most common languages that you can use on a project, is like a common language and that most people can use) is able to handle or control all existing programming languages. That statement is false in some way, and I refer in that form because it’s true that when you and a team or work partners dominates one language to work it can be a great tool to achieve the objective of a project, but at the same time is false because it depends on the programming language that you can use (not all the languages could work the same way) it’s important to know that one language has a main use and some other programming languages works for another thing, as an example, if we refer to a web page the most easy way to create it is with HTML (tagging and design, and let's remember that is not a programming language) and JavaScript (for interaction and interfaces on the page) instead of a programming language like C or C++ it needs to be light and faster, instead with a high level language the system could solve too but could be more bulky and problematic for the host due the high logic process that the language can handle but maybe the host is not apt for that kind of tasks. On the other hand, if we use a high-level language we can use them to solve mathematical problems or more complex situations where is beyond the human calculations.

Now, it’s important to handle most of the programming languages that exists on the market not only because one is better that the other one, or this one is required for the job or project that you are involved, is also important in the way that not all the languages look the same or have the same structure, this is not the case is important to learn and write in different languages for your evolution as an Engineer and as a programmer.

As a conclusion, I have already the idea that programming language is important for all areas, different charges or roles are necessary and dependent from each other. I would consider to be original and leave the average behind so you can prove and have the full potential of learning different stuff and surpass expectations.

domingo, 28 de enero de 2018

Blog Entry: Dick Gabriel on Lisp

Artificial Intelligence is now an essential part for technology, equipment and even some electronic services uses AI, not even for remembering, but to work in a way where human is not able to work with complex issues or problems. For this, having a language like LISP is the exact reflect of that statement, a programming language helps to create wonderful things that goes from making mathematical operations to create complex programs, maybe for a web server.

LISP is a tool that shows that a programming language can be used for other things and not only to create maybe a program or a service, AI is the answer for it, we could see it with as a beginning or the origins for the Artificial Intelligence, Macros, predefined programs or even neuronal links, they tried to learn some basic patterns or even from interactions until they are able or capable to provide an answer or a precise solution.

As an example, playing chess with a computer or even with the essence of an AI is a good challenge, not only because they can make some movements that a person could not consider on his turn, but the way they can reach this kind of skill is practicing or even beginning with different games levels they start like a human learning the most basic actions followed by the most complex movements that a professional player could make, the AI learns movements and also begins with loses, but at the same time acquires experience so it’s able to become smarter and smarter with the time.

I would consider that technology with this tools already created new stuff that on a future time AI could be part for everything, to solve complex issues, even create a possible robot, a tangible one that is able to move and also to be part of everyday life, yes I sound like Asimov novel "I, Robot" but looking at what we already created I think that this is not too far away from reality, but, one thing is important, AI won't replace a person’s intelligence or even could not replace a person a human being they can help in everyday work.

As a final comment from the listened podcast, I consider that the AI create things, even work with LISP or any related programming language to this one helps to create new tools and stuff in list structure, for some time Clojure is a good way to check new options to create projects or even learn a language that could be helpful on the future.

Peace out and God wrote in LISP Code.

domingo, 21 de enero de 2018

Blog Entry: Beating the Averages

Writing code is one of the most powerful tools that could ever exist for a programmer and even more when computing and technology are evolving at an impressive speed.

The first time I looked at a programming language (My first language was python here on College) I was impressed on how complex it could be, but at the same time I saw at all the things that you can create with it. Before that the HTML language (that we could consider only a Markup Language as his name says) was my first encounter with a computer that when I wrote the first line on that moment I considered to learn more about differences for programming and that there are different kind of languages that a computer can translate.

There is something curious about the lecture, on the 90's the computer was beginning to get support from different companies and applications or interfaces were not so complex as the ones we have today. It's amazing that a group of people and a language that is LISP could create a service without using a direct client on the user’s PC. This was the beginning for the web applications that we know on the modern age. For me, this kind of work is something that I could consider creative and that with the right effort they could create on that moment what could be impossible.

Also, let's remark that on that moment there was already languages that on that time they were easier to use. what they remark on the reading is that if you use something that other can't handle that makes you unique, in the context for programming that is correct, but at the same time every company looks for programmers that knows a common language, they need a group that think the same way and having programmers that knows maybe C++ and another with Java knowledge etc. etc. you have different point of views for creating something, but they need a common language to develop something. Other companies prefer to pick employees with different knowledge because the more rare language you can handle (and also the company uses to work) more money you can win, is a two side of the coin, from one side it's good because you win money you deserve for the effort of learning complex or rare programming language that no one can handle, but at the same is good to know a common language because is what is used on actual days not only because it's cheaper, but for an easy development and to give results with a large team.

Now, about the strategy they used to differentiate from the competition is something that an entrepreneur would have in mind and is respected (in my point of view and being honest I won't consider to create a startup or a business of my own until I get the right knowledge and also worked a good amount of time in a company, my personality is that way I don't like to take that kind of risk until you have a strategy or a way to have the project a complete success), competition is getting a big challenge nowadays startups and small business are having trouble to stay on battle, if you don't have a creative idea there is a high chance of poor success.

So, as a conclusion, there are situations that being unique is really helpful, but sometimes you need to have something in common so the work or project you are going to do could have a high rate of success and in this case learning different programming languages had the two thing if you know more programming languages that others know you are able to have success (and also helps you to get different perspectives), but at the same time you need to know languages that others could handle maybe for a teamwork or to develop something because that group needs to think the same way the others do.

lunes, 15 de enero de 2018

Blog Entry: Semicolon Wars by Brian Hayes

Technology evolves at the rhythm the humanity wants, that is the way I think technology (Specially computing) follows and is part for many important achievements that humankind had reach during different periods of time.

In this blog entry, the next comments are created as critic to give a point of view of what I think from the document I read.

In this case not only evolution has shown this side, but also a variety of options or alternatives for even solving a problem we have on the actual day, but there is one thing is interesting and that divides people (not in a way of real war, but in opinion) in a way that nobody could have the same opinion, the programming language.

Previously we had a limited amount of programming languages that could help us to create the most basic thing for a computer but with this evolution and changes there are a lot of programming languages where a person can choose to work with and also to support, some of them works to solve mathematical problems, others help for taking decisions or even learn programs (or the AI) to decide by itself what is the best option for a problem, there are so much options, endless possibilities that could take to focus on a programming language and develop our skills.

Now, during this century the programming languages that we use every day on our career has suffered changes, not only on the syntax way or even portability, but on the way, we could get an "hybrid" language that could use some things from one language or other things from other programming languages.

On this time, with Python or even scripting languages the programming has really changed not for bad or good, but for the best because as I already said, evolves and adapts to the way more people could get used to it, for veteran programmers these languages help to take advantage for a what a programming language can solve or vice versa.

The conclusion for this is that there are still too much to create and learn for computing and especially on programming languages there are new ways to explore and also to get friendly with everyone, on previous times we could consider this a disadvantage because not to many people work on this are, but now the changes could help to get a better idea for this and also to even solve more complicated problems.

A way to see the evolution of programming, but still 
considering the original ones as the main base for others.
(Also, not an accurate image).