Eight programming languages on the rise
Ruby, Erlang, Cobol, Python and more
By Peter Wayner | InfoWorld | Published: 16:15, 25 October 2010
In the world of enterprise programming, the mainstream is broad and deep. Code is written predominantly in one of a few major languages. For some shops, this means Java, for others, it's C# or PHP. Sometimes, enterprise coders will dabble in C++ or another common language used for high performance tasks such as game programming, all of which turn around and speak SQL to the database.
Programmers looking for work in enterprise shops would be foolish not to learn the languages that underlie this paradigm, yet a surprising number of niche languages are fast beginning to thrive in the enterprise. Look beyond the mainstays, and you'll find several languages that are beginning to provide solutions to increasingly common problems, as well as old-guard niche languages that continue to occupy redoubts. All offer capabilities compelling enough to justify learning a new way to juggle brackets, braces and other punctuation marks.
While the following seven niche languages offer features that can't be found in the dominant languages, many rely on the dominant languages to exist. Some run on top of the Java Virtual Machine, essentially taking advantage of the Java team's engineering. And when Microsoft built C#, it explicitly aimed to make the virtual machine open to other languages. That detail may help make deployment easier, but it doesn't matter much to the programmer at creation time.
Either way, these seven languages are quickly gaining converts in the enterprise. Perhaps it's time to start investigating their merits.
There seems to be two sorts of people who love Python: those who hate brackets, and scientists. The former helped create the language by building a version of Perl that is easier to read and not as chock-full of opening and closing brackets as a C descendant. Fast-forward several years, and the solution was good enough to be the first language available on Google's AppEngine, a clear indication Python has the kind of structure that makes it easy to scale in the cloud, one of the biggest challenges for enterprise grade computing.
Python's popularity in scientific labs is a bit hard to explain, given that, unlike Stephen Wolfram's Mathematica for mathematicians, the language never offered any data structures or elements explicitly tuned to meet the needs of scientists. Python creator Guido von Rossum believes Python caught on in the labs because "scientists often need to improvise when trying to interpret results, so they are drawn to dynamic languages which allow them to work very quickly and see results almost immediately."
Of course, a number of libraries that offer much of what a scientist could want are available for Python. NumPy and SciPy are just two of the most notable libraries nurtured as open source projects and tuned for scientific computation.
Scientific and engineering enterprises such as pharmaceutical companies aren't the only ones tapping Python for research. Many Wall Street firms now rely heavily on mathematical analysis and often hire university scientists who bring along their habit of coding in Python. Python is becoming so popular on Wall Street that there are even proposals to require the prospectus for a bond to include a Python algorithm for specifying who gets what return on the investment.
Some may argue that Ruby and Python are hardly "niche" languages, but the truth is, from an enterprise perspective, they remain promising tools all too often pushed to the margin. That said, Ruby, or more precisely the combination of Ruby with the Rails framework known as Ruby on Rails, is becoming increasingly popular for prototyping. Its entrance into the enterprise came on the heels of the web 2.0 explosion, wherein many websites began as experiments in Ruby. 37signals, one of Ruby's many proponents, actually uses Ruby to deploy code.
The secret to Ruby's success is its use of "convention over configuration," wherein naming a variable foo causes the corresponding column in the database to automatically be named foo as well. As such, Ruby on Rails is an excellent tool for prototyping, giving you only one reason to type foo. Ruby on Rails takes care of the rest of the CRUD scaffolding for you.
Ruby on Rails sites are devoted to cataloguing data that can be stored in tables. Well known examples include web applications like Basecamp, Backcamp and Campfire from 37Signals, a collection of websites that knits together group discussions, debates and schedules. Ruby on Rails handles the formatting of these database tables, as well as decisions about what information to display. Using Ruby on Rails' naming convention, production quality code can be sketched up easily without much duplicate effort.
Many of the production grade Ruby websites run on JRuby, a version written in Java that sits squarely on the JVM. JRuby users get all of the JVM's prowess in juggling threads, a very valuable asset in production level deployments with many concurrent users.