Ruby vs. the World - a quick glance
There are lots of things in Ruby I recognize from other languages.
Some of them seem borrowed directly from LISP.
- lamda
- clearly, the LISP lambda functions, also found in Python, borrowed from Lambda Calculus
- blocks
- very similar to LISP prog function
The way every Ruby function returns a value, the value of its last statement, and the return statement is not required - this comes directly from LISP.
The Ruby send method is similar to SmallTalk.
Look at how rival languages are faring today.
- SmallTalk seems to have kind of lost the following it had in the 80s and 90s - despite the availibility of some very decent free implementations today.
- LISP has never become a mainstream language and never will.
- Python is popular, and simulaneously, growing in popularity and power almost every year. However, not as fast as Ruby. Nonetheless, it does have some major wins under its belt: Yahoo and Google have written a number of services in Python. The Django and Zope frameworks are really popular and are proven successes - witness things like the Plone CMS and at least one super-cool Web 2.0 blog.
- Pascal is dead. With the demise of Borland's languages - Delphi, the last bastian of Pascal - has lost its patron.
- C seems to have been relagated to being an OS and embedded systems programming language. Its attractiveness as an application programming language has seriously waned.
- C++ still used as a first-tier programming language on MS-Windows, but will likely be devoured on that platform by its proprietary Microsoft cousin, C#
- Visual Basic seems destined to be never more or less than it is now: a popular MS-Windows only proprietary language for the MS-Windows platform whose environment and grammar change every few years to suit the OS marketing agenda of its maker
- Java seems to have subsumed the cross-platform custom IT application market. It looks like it will be embracing all the scripting languages in JDK 1.6, which is already in beta. Ruby and Java fight on the same battlefields but with dramatically different tactics. Very similar goals are being solved with each: interactive websites, online databases, custom IT applications, etc. Both are very object-oriented. Java is a powerful, yet very conservative language. It puts its stock in proven, safe principles - not syntax tricks. Ruby is different. It completely lacks most of the guardrails Java has built-in. Its skeleton is far less rigid. It favors using syntax tricks to make programs more expressive, readable and terse. At the same time, it allows programmers to make big mistakes which are caught late - something anathema to fundamental Java philosophies.
Some languages - like Python - are very similar to Ruby in terms of their characteristics and runtime environments.
Other languages - like Java - are very different to Ruby. Both, in terms of how much help they give programmers at runtime (and vice-versa!) and in terms of their langage grammar.
Python, Ruby, and Java are pretty relevant options to a lot of the same computing projects. They are all object-oriented and they are all very portable. Programs written in them tend to be portable as well.
The other languagss seem to be solving different problems, existing in difference niches.
So, while there are myriad programming languages out there, most are not relevant to solving the same big problems as these three are.
0 Comments:
Post a Comment
<< Home