By Udayan Banerjee | Article Rating: |
|
June 4, 2012 05:00 AM EDT | Reads: |
6,772 |

Do we need programming languages?
You may think that the answer is no. But, if you go by the recent trend you may need to change your mind.
- Why is Google working two (GO, DART) new programming languages?
- Why has IBM (X10), Cray (Chapel) and Red Hat (Ceylon) working on creating a new programming language of its own?
- Why have the attendees of the QCon London have selected 5 (HTML5, DART, Scala, Clojure, Node.js) new languages as the most important software development trends for 2012?
- What does Neil McAllister mean when he says that these 10 (DART, Ceylon, GO, F#, OPA, Fantom, Zimbu, X10, Haxe, Chapel) programming languages that could shake up IT?
Are new programming languages getting created just to satisfy the creative urge of somebody or has the technology evolution created the need for new way of programming and hence these new languages?
If you look back...
There are 3 periods in history when there was a burst of new programming languages. Each of these periods is linked to a critical point in technology evolution.
Period | Driver | Languages |
1957-64 | Invention of compiler and the era of 3GL | (1) Fortran, (2) Algol, (3) Lisp, (4) Cobol, (5) RPG, (6) APL, (7) Simula, (8) Basic and (9) PL/1 |
1978-84 | Invention of RDBMS and the era of the 4GL | (1) SQL, (2) dBase, (3) C++, (4) Oracle Forms and PL/SQL, (5) Informix 4GL, (6) Gupta SQL, (7) Unify Accell and (8) Ingress |
1990-95 | O-O & Multi-tier programming and the era of WWW | (1) HTML, (2) Haskel, (3) Python, (4) Power Script (Power Builder), (5) Visual Basic, (6) Lua, (7) Ruby, (8) Object Pascal (Delphi), (9) Java, (10) Java Script and (11) PHP |
Other important languages which was created outside these time period are: (1) Pascal – 1970, (2) C – 1972, (3) Prolog – 1972, (4) Smalltalk – 1972, (5) Erlang – 1986, (6) Perl – 1987 and (7) C# – 2001. As you can see, they are very few.
Are we entering another period which on hindsight will be classified as another period of technology transition? Only time can tell.
Does cloud computing got anything to do with it?
It most certainly does. But that is not the whole story – there is more to it.
What could the Technology Drivers be?
If you analyze the primary motivation behind these languages, you will see several common themes emerging.
(1) Distributed/Parallel computing:
Programmability of parallel computers (Chapel from Cray, X10 from IBM), Concurrent programming (Clojure, Fantom, Go) and single language for complete cloud stack (Opa)
Cloud computing is all about distributing your process across multiple CPU and running them in parallel or concurrently. Current programming languages are not very well suited for that.
Hence this attempt to create languages tailored for parallel processing.
(2) Multi-paradigm programming:
Languages which support object oriented programming as well as functional programming (Clojure, F#, Fantom, Scala)
Functional programs are relatively easy to parallelize. However, pure functional languages have not been very successful.
Hence this attempt to create multi-paradigm programming language.
(3) Multi-platform programming:
Languages that has implementation for both JVM and CLR (Clojure, Fantom, Scala) and several other platforms (Clojure & Fantom on JavaScript engine, Scala on Android, Haxe on several platforms)
Well this is a dream which we have been chasing for decades. Will it ever be a reality? We never know.
Hence this attempt to create multi-platform language!
(4) Programming at Scale:
Readability, Modularity (Ceylon), Speed of compilation (Go, Zimbu), Suitable for large team (Scala), Meta-programmability and extensibility (Ceylon, Scala), Concise (Scala, Zimbu)
Cloud provides almost unlimited computing power which encourages us to build larger and more complex application. Building such application will require large teams and the code has to be easily maintainable.
Also, the focus on frequent integration requires the process of compilation to be speeded up.
Hence this attempt to create programming language for large application.
(5) Client side programming:
Replacement for JavaScript (Dart), same language for both client and server side (Naxe, Opa, Zimbu)
Cloud computing requires client side code to seamlessly run on multiple client devices. Though JavaScript has become a standard, nobody really likes it!
Hence this attempt to create languages which is better than JavaScript and which can run on multiple client platforms.
Quick overview of the 12 new languages mentioned earlier
Here are the 12 languages listed in an alphabetical order. (I am not including HTML5 in this list as it is strictly not a new language and I have excluded Node.js as it is only a server side JavaScript engine)
Language | Who is behind it? | Primary Driver | Licensing |
![]() |
Red Hat - Home page | Readability, Predictability, Tool-ability, Modularity, Meta-programmability.Runs on JVM | GPL v2 |
![]() |
Cray - Home page | Programmability of parallel computersRun on Cray supercomputers and various high-performance clusters.Portable to most Unix-style systems, Mac OS X and Windows | BSD |
![]() |
Rich Hickey - Home page | Concurrency using Functional programming paradigm.Runs on JVM, CLR, and JavaScript engines | EPL |
![]() |
Google - Home page | A replacement for JavaScript on the browserFaster, easier to maintain, and less susceptible to subtle bugs.Dart VM needs to be compiled – can run on Linux, Mac and Windows | New BSD |
![]() |
Microsoft - Home page |
Multi-paradigm: Functional + Imperative + Object-oriented.Runs on CLR and Mono 10 Reasons Why It`s a Hot Programming Language for Developers |
Apache |
![]() |
Brian Frank, Andy Frank - Home page | Portability, support for functional programming and concurrency.Runs on JVM and CLR. Is also compiles to javaScript. Future targets might include Objective-C for the iPhone | Academic Free License |
![]() |
Google - Home page | Compiled with the ease of programming of a dynamic language, concurrency and communication, speed of compilation.Compiler available for Linux, Mac OS X, Windows | BSD style + patent grant |
![]() |
Nicolas Cannasse - Home page | Multi-platform support.Compiler for JavaScript, Flash, NekoVM, PHP, C++. C# and Java support is expected | GPL v2 |
![]() |
MLstate - Home page | Targeted for cloud computing. Client-side UI, server-side logic, and database I/O are all implemented in a single languageRuntime environment own Web server and DBMS.Runs on 64bit Linux and Mac | AGPL |
![]() |
EPFL - Home page |
Scalability for multicore and distributed computing. For large team. Multi-paradigm: Functional and O-O. Extensible.Runs on JVM, Android, CLR |
BSD |
![]() |
IBM - Home page | Designed specifically for parallel programming, performance and scale.Runs on IBM AIX, Linux, Mac OS X, Windows | EPL |
![]() |
Bram Moolenaar - Home page | Aims to be fast, concise, portable, and easy-to-read and support GUI application to an OS kernel.Compiles to ANSI C | Apache v2 |
Finally...
What is most interesting is that all the 12 languages are available under some form of open source license.
Interesting articles on history of programming languages:
- The History of Programming Languages [Infographic]
- Programming Language History
- A Brief, Incomplete, and Mostly Wrong History of Programming Languages
Statistics on Language usage
Published June 4, 2012 Reads 6,772
Copyright © 2012 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Udayan Banerjee
Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world.
The focus is mostly on...
- Keep the hype out and project a realistic picture
- Uncover trends not very apparent
- Draw conclusion from real life experience
- Point out fallacy & discrepancy when I see them
- Talk about trends which I find interesting
Jul. 4, 2012 08:00 AM EDT Reads: 2,101 |
By Jeremy Geelan Jul. 4, 2012 06:00 AM EDT Reads: 1,734 |
By Elizabeth White ![]() Jul. 4, 2012 06:00 AM EDT Reads: 4,339 |
By Elizabeth White Jul. 4, 2012 05:00 AM EDT Reads: 4,541 |
By Liz McMillan ![]() Jul. 4, 2012 12:30 AM EDT Reads: 1,639 |
By Elizabeth White ![]() Jul. 3, 2012 02:40 PM EDT Reads: 496 |
By Jeremy Geelan ![]() Jul. 3, 2012 11:00 AM EDT Reads: 1,424 |
By Elizabeth White ![]() Jul. 3, 2012 08:45 AM EDT Reads: 564 |
By Pat Romanski Jul. 3, 2012 05:30 AM EDT Reads: 6,540 Replies: 1 |
By Pat Romanski ![]() Jul. 3, 2012 05:00 AM EDT Reads: 2,388 |
- Cloud Expo New York: Why PostgreSQL is the Database for the Cloud
- Cloud Expo New York Speaker Profile: Dave Asprey – Trend Micro
- Cloud Expo New York Speaker Profile: Jill T. Singer – NRO
- Cloud Expo New York Speaker Profile: Greg O'Connor – AppZero
- Cloud Expo New York Speaker Profile: Dave Linthicum – Blue Mountain Labs
- Cloud Expo New York Speaker Profile: Mårten Mickos – Eucalyptus Systems
- Cloud Expo New York Speaker Profile: George Gerchow – VMware
- Cloud Expo New York Speaker Profile: James Weir – UShareSoft
- Cloud Expo New York Speaker Profile: Bernard Golden – HyperStratus
- Twelve New Programming Languages: Is Cloud Responsible?
- Gartner Hype Cycle 2011 - Emerging Technologies
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Cloud Expo New York: Why PostgreSQL is the Database for the Cloud
- Cloud Expo New York Speaker Profile: Dave Asprey – Trend Micro
- Cloud Expo New York Speaker Profile: Jill T. Singer – NRO
- Cloud Expo New York Speaker Profile: Greg O'Connor – AppZero
- iPad3 vs Windows 8 - and the Winner Is...Cloud
- Cloud Expo New York Speaker Profile: Dave Linthicum – Blue Mountain Labs
- Cloud Expo New York Speaker Profile: Mårten Mickos – Eucalyptus Systems
- Cloud Expo New York Speaker Profile: George Gerchow – VMware
- Cloud Expo New York Speaker Profile: James Weir – UShareSoft
- Cloud Expo New York Speaker Profile: Bernard Golden – HyperStratus
- Twelve New Programming Languages: Is Cloud Responsible?
- Gartner Hype Cycle 2011 - Emerging Technologies
- What is Cloud Computing?
- The Top 150 Players in Cloud Computing
- Six Benefits of Cloud Computing
- Virtualization Conference Keynote Webcast Live on SYS-CON.TV
- What's the Difference Between Cloud Computing and SaaS?
- Twenty-One Experts Define Cloud Computing
- GDS International: Global Warming Scam?
- The Top 250 Players in the Cloud Computing Ecosystem
- The Future of Cloud Computing
- A Brief History of Cloud Computing: Is the Cloud There Yet?
- Cloud Expo Europe 2009 in Prague: Themes & Topics
- SOA 2 Point Oh No!