Ok, so one day I find myself strangely out of work.. I mean completely even the monotonous work of documents update also finished and with all the time in my hands.
What do we generally do on such days? Well in normal scenario, people catch with old unread mails, check upon friends with whom we happen to have “long time no” see kinds... or chit chat with colleagues, or try out some other time pass at cafeteria or anything else. All of a sudden I find myself uninterested on any of these lines.. So I decided to browse.
But the next question is “Browse” regarding what? For a change I decided to browse about the thing that I generally help me browse, it’s not a tool, but it is the synonym for SEARCH. I mean I decided to search about Google. I looked at the Google Page. I was amazed by the fact that it is such a simple page but with such wide spread popularity. So what is it that it is built on was the next question.
The answer to that was it basically uses the following programming languages internally…
Python
C++
JavaScript
Java
The answers were from the below link traversal.
http://wiki.answers.com/Q/What_is_the_programming_language_of_Google_etc to http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html
Next thing, that I was interested in was why Python, I did not question the use of the other two because I had some ideas about the other 3 languages. Ideas like….
Java – a language that is generally popular of creating web sites and things like that and follows object oriented paradigm.
JavaScript – a language used to handle purely for the client interactions on a web page.
C++ - again an object oriented language with popularity of ease of implementing some algorithmic logic in it.
The Python part actually fascinated me more than anything else, so then my search targeted on knowing a little more about this language (little more, since I did not intend to actually go in depth of its usage and all other nuances of it)
Again back to Wiki and strangely landed up in a link for comparison of languages.
Ok now, you might question why on comparison, when you are bred on a particular language , the natural and sick tendency in me is to defend it, even prove its deficiencies as one of the strongest points. But I had to learn the lesson the hard way, that growth is going to be stunted if we tend to defend too much and especially when not needed.
Then followed some blogs about programming languages measurement principles….
Here I came across the concept called “The Computer Language Benchmark’s Game”.
The below link has some theory about it… (Well, for my limited capacity I did not understand most of it)
http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html
My thoughts sailed to altogether a different shore by now, When I was reading the blogs on comparison, the thought that triggered few other searches were.. Why is a new language born in the first place???
Few things according to me are essential for the birth of a new language is:
The current set of languages should have some obvious flaws that are making the programmer's life hell and hence the need for a new one.
Language is syntactically too hard and loses the high level programming language flavor and you are exposed to a set of commands alone (in different flavors).
Or there is a new programming approach or paradigm shift to the way we program or conceptualize application comes into the picture.
I mean, if we look at the birth of C++ from C, it was because of a programming paradigm shift from functional programming to object oriented thinking.
High Level languages like C came into picture because people wanted a syntax that was readable and easily understandable without involving assembly level instructions being written by them. Though internally, it is translated into machine readable format by our compilers.
So the nest topic in which I found myself sailing is Functional Programming V/s OO Programming.
Some arguments follows in the below mentioned blog links….
http://www.joelonsoftware.com/items/2006/08/01.html talks about functional programming.
Some justifications about OO programming listed in this blog.
http://www.developerdotstar.com/community/node/544
One of those posts talking about a new programming language named SCALA ( a language for JVM) which combines both functional and OO programming..
http://agile2009.agilealliance.org/node/1307
http://www.ibm.com/developerworks/java/library/j-scala01228.html
And lastly something that was holding my interest for sometime and a nice article (from how much I have read) exploring the mapping of our nervous biological system with programming paradigms is here below.
http://www.scielo.cl/scielo.php?script=sci_arttext&pid=S0716-97602007000500011
I hope to complete the above article someday. But today the day ends, with all the thoughts that sailed across to many areas, some interesting to some not so much interesting. I enjoyed my day browsing and allowing my mind to be guided by the Internet.
Happy Browsing…
PS: please don’t mind the number of links; they are posted just to show my wanderings in the world of internet on one fine day.