domingo, 31 de enero de 2016

Dick Gabriel on Lisp

This week we review a podcast about he experience that Dick Gabriel has on LISP. Languages like Lisp which were developed for AI had in-built reflective mechanisms, although not formally described, like the quote mechanism via which code could be visualized as data.
Brian Catwell Smith’s work in the 80’s gave it a formal definition and the architectural shape to carry this very powerful construct forward.

The reality is that LISP is a language that have a really interesting list of characteristics as its metacircular interpreter (the possibility of a language to evaluate itself with the same language), the lists that are the principal tools to evaluate in LISP, the apparently infinitely recursive way of functioning and the possibility of using macros to extend the language, among others, that makes of LISP unique in many environments where other  common languages like Java or C are not the option.

Lisp, is a functional language, it takes arguments and returns a value, we can nest functions, and the primary data structure is the list, and is the one that encodes the programs. Many things that Dick said about Lisp were totally new and different to me, he took us to the very past times where the Universal turing machine was created, when people needed some kind of machine that could compute anything, then it appeared something that could interpret lists, so one day Steve Russell, thought that if he could take that piece of code and hand compiled it, then that could be the interpreter of lisp. That universal machine was called eval, and with that machine, you could construct any list you wanted and send it to eval so it could evaluate it. Thats how the Lisp interpreter was born.

Now, some positive things are that like  Dick Gabriel said, LISP has served of inspiration for another languages like Ruby in the part of meta-language and has contributed to another languages like Java to implement characteristics like the garbage collector  that are very useful in the actuality, which can be used to say that LISP has left its mark in the industry.

So in my opinion, many people doesn't know about Lisp and it is a language that has been around for so many years that more people should get the time to know the language and start implementing their programs in this language because it has advantages in many ways and it is easy to use compared to other programming languages in many ways, of course it has disadvantages.

If you are interested in listening to this podcast here is the link: Dick Gabriel on Lisp

martes, 26 de enero de 2016

Beating the Averages

"Beating the Averages" is an article written by Paul Graham, co-funder of Viaweb, which principal purpose is to spread the story of how Lisp was a fundamental factor in the creation of the company because Lisp has many features that other languages didn't have and not everyone knew how to work with it.

Something very curious is that Graham justified his success with LIPS in that "the strengths that made this language a powerful tool for Viaweb was that Lisp is poorly implemented in the industry" and therefore the same is not very popular in the context which causes that its management and its implementation was very unknown for many of the programmers that was dedicated to the development doing that other companies could not copy their strategies and knowledge in their business. Lisp is a difficult language to learn and master and most programmers prefer Oracle, C, C++, Java... Eric Raymond says that "Lisp will make you a better programmer, even if you never actually use Lisp itself a lot" which is something that make us think that precisely this language is difficult to learn but it has its rewards. As it is a hard language to learn is can teach you another way to develop. Why learn latin if nobody uses it anymore?, well it is the foundation of many other languages and so by learning latin we can jump to other languages easily, the same happens with LISP.

A really nice thing he also does is that instead of crushing other programming languages, he decided to create the "Blub Paradox" which is a fictional programming languages that he uses to explain how programmers think, I mean the programmers only think in the way their programming language allowed them to. Jump to another language is always a true challenge.

As learning of this reading, I think that after watching this case of triumph lead by the use of Lisp is important to give an opportunity to the new tools that are in the market no matter they are not very popular (of course, this applies in specific cases). Like programmers is important that we have a general knowledge about the use of the different options that we have available because we can generate more and different ways of solving a problem because as it is referred in the article: you think in the language you know how to use.

If you're interested in reading this article, here is the link: Beating the Averages.

martes, 19 de enero de 2016

The Semicolon Wars

This week lecture was about getting a standard between programming languages. Brian Hayes, the author the article, exposed some of the most notable conflicts programmers had overcome in finding the ideal programming language. To solve this problem programmers release a new programming language that tries to cover all the flaws the previous languages had.
But this just arise another problem, nowadays 8,500 programming languages has been created, according to Hayes that is one per week since FORTRAN was released in the 1960's. This means that we've failed in creating a programming language that covers all, most programmer say that we should pick one and work all together to improve it. The question here is which one to choose? some may say LISP, like Hayes, but others support Java, Python, Ruby, Swift.. etc.

Like Brian Hayes mentions in his article, it's real that "every programmer knows there is one true programming language, a new one every week" which makes, be a programmer, a hard option for those people that aren't flexible, static in some ways and the more important characteristic autodidact because be a programmer means be an 'upgradeable professional'.

Every programming language has its strengths and weaknesses, each of them has its own syntax, that one must study deeply in order to become familiar to the languages. The truth is that getting an unified languages is a very difficult task, for not saying impossible, because every programmer has a favorite one.

Knowing how to program in languages that belong to different families is something that for sure I want to know because this creates a situation in which knowing how to program using different perspectives and different tools can create unique opportunities where the creativity can be amazingly exploited creating solutions that can be as awesome as the situation demands, without limits, situation that make me think that the future can be specially improved thanks to us, thanks to IT professionals.
We are far from get a unified programming language so as programmer lets choose that one we are more familiar with or more comfortable. Everyone gets their chance to choose.

If you're interested in reading this article, here is the link: The Semicolon Wars.

domingo, 17 de enero de 2016

Triumph of the Nerds Part I

This is a very interesting documentary about how the computer era became to be.
It describes us how the first computers were just after World War II, big machines of the size of a room, and how they focused on resolving mathematical issues.

Later on computers became easier to manage, and so a group of people referred in the documentary as "nerds" focused their attention in this 'electrical-technological' trend.

I found this part awesome, I mean, they were just a group of people who thought that something good can come from this new technology. They created discussion groups in which they proposed new uses for the machines.

The video centers in the idea that most of this developments were born with the intention of impressing their friends. Who would find a new use first? Who could add a feature that makes the machine usable? and so many questions that triggered the people to create.

People gathered in their garages to built new machines with more processing capacity or easier to transport and eventually Microsoft and Apple were created. The rest is history.

Most of the new ideas are born like this, a group of friends in a garage building something maybe for a college project or just for fun. The thing is that they all have the vision to see something that wasn't there and somehow change the world. So maybe we should make our goal to approach to this way of thinking, in order to make a contribution to society and why not to make our mark in history.

One thing is certain and this is that the invention of the PC revolutionized the world for good, situation that changed in an enormous way with the invention of the Internet, bringing important ways of living, like interact with the people and the world in real time, ways of living that became essential for many of us. 

Source: 
Documentary video titled “Triumph of the Nerds Part I: Impressing their Friends” produced by PBS, and written and hosted by Robert X. Cringely in the year 1996.

martes, 12 de enero de 2016

Introducing myself

For all of you reading this, my name is Carlos Sebastian Loredo Gomez, Sebastian for short.
My expectations for this course are: to know the strengths and the weaknesses of different programming languages and how to develop in these languages.

About my hobbies and personal interests: I love to watch sci-fi series in TV and to read books (Stephen King particularly). If there's more I don't recall it at the moment.

A book I have recently enjoyed: Drowning Towers by George Turner, which describe how the future society lives after overpopulation.
TV programs: Well I think I have a lot to put in this part since all my holidays were about watching TV series. I'll just list them in order of how I liked them. Stargate SG-1, Sanctuary, Stargate Atlantis, Black Mirror, Eureka... just to mention some.