domingo, 23 de octubre de 2016

Triumph of the Nerds Part 3

Triumph of the Nerds Part 3

This documentary is mostly about the invention of the GUI (Graphical user interface).
It all begins with the Xerox Alto, the Xerox Alto introduced some ideas, which it used:
  • ·       Object Oriented Programming
  • ·       Networking
  • ·       Graphic User Interface


Well nowdays is really common to use Object Oriented Programming, and actually is a obligatory subject in the basic programming. We are accustomed to use it, and has many applications. Actually I really like it.

But at that time, well still happens, the graphical user interface
In December 1979, Steve Jobs visited Xerox Parc, where he was shown the SmallTalk-80 which had OOP, networking for the Enterprise and GUI. In this moment he realized that the GUI was the future of the personal computers and it could be what  Apple needed to become the market leader.
The Lisa was the first Apple computer to have GUI, but it was not a commercial success because of the high price compared to the IBM computers, and it is logical, I mean if something looks nice and it is easy to use probably will be succesfull but if it does the same things that a cheapper version  well … thats why Apple had lots of troubles.

After some time, Apple developed another GUI called the Macintosh, its cost was slower, close to the price of the IBM machine. The Machintosh became the first affordable PC with a GUI Interface. But now the problem was the lack of applications, it were too few things to do in it.
Bill Gates, again, saw another opportunity for his company to, make an empire … cof cof i mean,  grow. He saw that the future was in the GUI and began working on one, (chan chan chan , Does somebody say Windows?). When Apple noticed that Miscrosoft was doing the same and they treated to stop them.


They lose … I mean I think it's obvious.

lunes, 17 de octubre de 2016

Rich Hickey on Clojure


The podcast was half the visión of clojure and half things you notice when you are using clojure.
Ok at this point whoever has used clojure must have noticed, at less I did, that clojure is compared with lisp a relaxed versión of the same functionality. But why? Lis pis oriented to very intelligent people who wants to code something but Clojure could be used for whoever wants to try a new style of coding or just need to make math functions.

Well I didn’t know that Clojure introduces maps and vectors to Lisp, Lisp used to use lists only, I thought that Lisp actually did it first.

I need to admit that I'm not accustomed to the unmutable objects used in clojure but has some advanages and disadvantages.

One of the things I noticed after hear the podcast is that at the beginning seems really difficult to learn Clojure than java or C but is because we are familiar to change variables and do all with imperative programming but the truth is that functional programming is easily to learn and you do not need to worry about tipe of data and that things.

I mean for use Clojure you need to understand what is abstraction and not just that you shoud be able to use it in your favor  but it depends the way you think and that is the diffucult part.
We already know about concurrency and parallelism, those are the big features of the Lisp descendants.


Many of the advantages of Clojure are just functionalities that make best aproach for the computer but  from the programmers point of view this is hidden. As it is mentioned in the podcast “it feels semantically like a copy, but it’s not a brute-force duplication of the data … there is some more clever stuff going onand is exactly that what makes clojure the intereting and usefull.

lunes, 10 de octubre de 2016

The promises of functional programming

The promises of functional programming


It is fun how the way we make programs has change in a relative short time but in most of one way it continues in basically the same way.

I like clojure, but to be completly honest I am sure it was really difficult to learn, the most of languages are basically an implementación of the same way to make functions, in the strict and nonstrict idea of the word but you have variables and loops and is similar to the basic way to think, definitely Lisp children takes you out of your confort zone… honestly at some point in the first contact whit Clojure I thought that It will not have more ways to do cycles than recursion and that terrorized me. Now I think learning Lisp requires thinking different and lot of effort.

About the functional programming, well, by definition a function takes some data and every time you give the same arguments the function will give you the same output and it works specially when you are trying to identify and implement patterns of an algorithm or like the obvious implementation, make mathematical programs for make fast a process.

Now, Why functional programming?

 Because you can … well yes, because you can do (in a easy way) parallel programming and be carefull with concurrency.

Usually is completely normal to have (lots ?) troubles with variables. maintaining the data in a correct state depends of the thread that tries to modify data and what happen when another one is accessing for reading or writing at the same time.


The problema is that data is often corrupted by other threads but if you are not able to change the value of the (I know those are not variables but i do not know how to name them) variables, well you are save.

lunes, 3 de octubre de 2016

Revenge of the Nerds

Revenge of the Nerds


I think there is not a Best programming language, if you can do something  in one language it can be , most times easily,  done in another language.

With that said now the question is “which should I use?” but more specifically, if I want to make my own business or if I am working with some programming language “Why I am using this language?”
Well, sometimes happen that  if there is boss thas just has a little idea of the software developement, something that could happen is the boss saying the team should use an specific programming language just because, in the best case it works well for a required activitie but in most cases, everyone use the same. But the truth is that they restrict the innovation that can be used to créate more sophisticated software.

Usually a programmer has a favorite language and actually knows the features of it and can do many things but sometimes it represents a restriction and the programmer knows that but not is always able to change the tools  because … the boss.


 Well now is Lisp time

*glorious trumpets music*
In the text is mentioned that languages are used for a while but whit the time basically a new, better and flirtatious language and it is fine but at some point we have some survivals and one of them is Lisp, maybe not the original lisp but many of the variants, and actually they has part of the syntaxis and the features that make Lisp amm … Lisp.
The reason that is explained of the persistency of Lisp is that basically it is math and math is allways continuous.
But not just that, Lisp has conditionals, function type, recursion, and LISP was the first to support it, variables are pointers, I liked this -> values are what have types, not variables, Garbage Collection etc …

Conclussion: Maybe learn Clojure is not sooooooo bad :)

viernes, 16 de septiembre de 2016

Triumph of the Nerds Part II

Triumph of the Nerds Part II


The second part of the documentary Triumph of the nerds is about how Microsoft started the way to create the most used operating system in the world.

Is fun because all started with IBM, and their city and the obsession of wear white shirts with starched collars and garters on the legs to keep the socks high, and the strange  book full of songs called, "Songs of IBM.", it was a little scary, but, taking the idea again, all start with IBM but because Apple. (is fun, the formal IBM and the oposite Microsoft and their “nerds”)
I want to say thanks because the need of IBM of take a piece of the computer market and all the things they do not consider are needed for make a computer. Buy everything made all the process faster but also made easier to make a copy for the rivals, I mean, if you want to be the only company selling in this case computers, you need to be sure all you do is unrepeatable and of course consider what your allies think and even if it is a little frightening prevent them support your competition.

And thinking about Microsoft, is fun, I never believe Bill Gates will give chance to another company to do a job they could do. I supose as they dont have exactly or even something similary they did not wanto to take the job but Microsoft was lucky, the skeleton of what they need cost a few dollars compared with the empire that now represents.


Of the documentary I can rescue the next:
·       Reverse engineering is cool.
·       Think out of the box.
·       Take challenges.
·       Be kind but do not give second chances.
·       Be careful, you can buy everything but everyone else can do the same.
·       Sometimes you win and sometimes you are teh best but only in mainframe.

lunes, 5 de septiembre de 2016

Dick Gabriel on Lisp

Dick Gabriel on Lisp


Why lisp?

LISP has among its features a metacircular interpreter what actually means that it is posible for lisp to evaluates itself, and it give us options that other laguages don´t have.

Another characteristic really interesting is the posibility of make macros, this is usefull because in simple words   are programs that build others programs .

And, of course, it is functional, all the result of a function can be evaluated for other function and make the language more complete, it ads features for the programs and all this is used like part of the original language.

Oh ok, i was forgetting something Dick Gabriel said that lis is an amazing option to code basically because in it is easy to put he ideas into code and possibly the reason of why lisp  has been used to write artificial inteligence programs or robotics features and coding take less time.

One of the troubles with lisp and derivate languages, cof cof clojure, is, nope i am not talking of the incredible number of parenthesis, the strange way of using the lists, well almost everything is a list, I supose its easy for a machine use a list and take the arguments in order and make procesing more efficient.

Why is not all the world using lisp?

As Dick Gabriel mentioned it has strange name for the things and uses lists, I mean, it is ok if you are in research but  for developement it is hard to imagine a way, ironical once you known lisp inspired ruby, one of the most used languages for web developement.
But taking the question again, I supose is because it takes not a lot of time but enough to decide jut use other language you already have used and make a class or objects and not think in a different way of the usual.

lunes, 29 de agosto de 2016

Beating the Averages

Beating the Averages

I have never ever think that a web page was running in lisp , it was a surprise for me . Actually I am really clumsy so every time I use it , I lost in a parenthesis sea and usally is no one who I have meet talked about lisp. And development Especially in the web , it was even more strange.

I read the next paragraph in the article and i thought that it is actually the reason of why i want to learn correctly the language:

“Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot”
I have not used Lisp for a long time but by the way I notice how it works really fast, and is not a complicate code to read, yo have not to define the type of data and the functions are easy to undestand.

The guys who decide to began theyre startup with Lisp take and amazing idea, basically they said, oh we have a lot experience with Lisp, and we need to hurry , so just use the pregramming language in we are good. And it makes sense, if you want to put your company on the first place is a good idea to use a programming language that you can use easily and of couse the surprise to your competitors, if you can use a tool that make all your process  in a quick way and the other companies does not know what are you using, still beter, you must use it. Nowday I am not sure if Lisp coud compete with the new languages but the basic idea of a “secret weapon” is still a good chance to be best than your competitors.

I found it in the article too :

programming languages are not just technology, but what programmers think in.


And I noticed two things, this is true and most posibly i am not a Lisp girl.