Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

Sunday, 15 March 2009

Can Erlang become the next Java?

Erlang is a functional programming language that has been steadily gaining attention in the industry. Some even advocate it as "the next java", but can this actually happen? Can a single language attract enough support to become a de facto standard?

In face of the current fragmentation of the programming languages landscape (Ruby, Python, F#, Scala, and a long etcetera) this seams very unlikely at first. However, the very existence of such fragmentation is indicative of the search for new programming paradigms to tackle the needs of now day's applications.

Java success in the early web days was due, mostly because it offered two key features that where essential for the nascent web applications: dynamic code loading from the network and platform independence. From this point its acceptance grew dramatically in both desktop and server applications, despite the criticisms for its poor performance.

Similarly, Erlang offers several key characteristics for the next generation of distributed applications:
  • Its adequacy to parallel and distributed programming thanks to its simple message based concurrency model.
  • It allows the hot swap of code (code of running process can be change while they are still running!)
  • It has also the reputation of being rock solid, running on Ericsson's ATM Switches with a reliability of 99.9999999% (that is some 30 seconds of downtime a year!).
Such characteristics haven't passed unnoticed to many recent open source projects like Scalaris, CouchDB, RabbitMQ, and have picked the attention of enterprise application developers.

If recent history with Java is indicative, Erlang has all the credits to take off as a main stream (if not dominant) programming language for next generation web applications.

Tuesday, 7 August 2007

Open source appliance

I've been struggling since one month ago to decide on a device for "mobile digital entrainment" (sorry, I've been unable to find a better name for this). What I basically need is a rich web experience (including web 2.0 sites, video, Internet radio) and access digital content (music, video) stored locally in the device or other storage devices.

My first candidates are the Nokia Internet Tablet N800 and the Archos 605. Other option I briefly considered were the Sony PSP and the PapperPad 3. I ruled out the PSP because its web experience is istill far behind of my needs. The PaperPad,in the other hand, seams to be a good product but its form factor makes it less attractive fro mobile usage.

Both candidates has "similar" capabilities, like integrated wifi access, full flagged web browsers and rich multimedia applications. However, they differ in one significant aspect: the Nokia N800 is, in this moment, more an open source device, very appealing to developers and savvy users, while the Archos is more an appliance, close but fully functional and usable by any user.

What I would like to have is the best of both worlds: an open source appliance. An open device for developers and hackers, but ready to day to day usage. Why is this so difficult? I believe that in this question resides the key for the success of open source outside the niche it is now (a big niche, sure, but a niche after all).

Dr. Ari Jaaksi, Nokia's director of open source has an interesting document about "Building consumer products with open source" and here we found a key "The open source culture is very much for trials, hacking, innovation and other creative aspects of software development. Meeting deadlines, dropping your latest crazy idea, and making compromises to gain stability are not what many open source communities or developers naturally do. In addition to us, the Linux project, Debian, and others seem to have difficulties making a final good quality release on time".

However, I must admit that I found more appealing the N800 because the open nature of the device is attracting a lot of interest and just recently I've seen a couple of developments that improves its usability a lot: both an iPhone like on screen keyboard and a kinetic scroll. By the way, both improvement ideas come from iPhone . . .

So, at this point the question is: will these two open source projects change focus from hacking to usability, from innovation to stability or is here where they will fail, as many other such projects.