Recently during a discussion about software development, a friend asked me if there is/will be a next big thing after Java.
I had to say I have no real idea. I said that I suppose eventually there's bound to be a replacement. Perhaps it's not here as yet. Or at least not in a form that we'd recognise. I remember when Java first came out (I was a C++ victim in those days). Early versions were really interesting for applets and GUI stuff and useless for real work. Now look at the many-headed hydra what it has grown into.
The next bid thing might be something running on the .Net platform. MS are doing a lot of work on functional languages and have hired a lot of smart people.
Although it hasn't taken off, I thought Martin Oderskys experiment with Scala was an interesting way of lowering the barrier to entry to functional programming for java developers.
I suppose there has to be an overwhelming need for a solution or approach to a big problem that offers real benefits. That in tandem with a large company (more likely a groups of such companies) plus some open source effort to push one of the little languages offering such a solution like Erlang, which address concurrency quite successfully from what I can see.
Erlang which was designed by Ericsson for building telecoms systems. Trouble is its not mainstream and Ericsson has no interest in developing the libraries required to make it a viable alternative for projects outside the telecoms field like web apps etc.
I suppose we shouldn't hold our breath. Mind you, game development might be the spur since game developers will gobble up all the performance you can throw at them.
Here is a link to a powerpoint presentation I read early last year written by a game developer. Its called "The Next Mainstream Programming Language: A Game Developer's Perspective."
Another related issue is the turn away from single high clock rate cpu to multi-core cpu.
This was highlighted in an article by Herb Sutter entitled The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software back in early 2005.
The 'free lunch is over' article didn't really go into detail as far as suggestions for solutions, but I've come across several articles mentioning that the spread of multi-core systems (Intel & AMD are boasting about 8 cores in the near future) which will require better concurrency in order to get max benefit.
One of most conspicuous candidates for a technical solution is Transactional memory. TM is supposed to address the weaknesses of the standard C++/Java concurrency techniques. I've only skimmed a few articles but it seems interesting. Its seems to steal the concept of transactions from the database world. There seems to have been a lot of stuff generated about it on the web in the last 12 months and assuming that's an indication of real work being done. It might appear in a language near you in the not too distant future.
I also read that Intel researchers have experimented with extensions to java and C that allow transactional memory constructs. Java 6 has northing like this yet. C++ locks and Java monitors can still create deadlocks in some circumstances.
See also:
Software and the Concurrency Revolution - Leveraging the full power of multicore processors demands new tools and new thinking from the software industry by Herb Sutter and James Larus Microsoft.
Unlocking Concurrency - Multicore programming with transactional memory by Ali-Reza Adl-Tabatabai, Intel, Christos Kozyrakis, Stanford University, Bratin Saha, Intel.
A Peek into the Future: Transactional Memory by Mohamed Saad.
Here is another explanation by Simon Peyton-Jones (of Haskell fame, now does a lot of leading edge language dev stuff for Microsoft) called Programming in the Age of Concurrency: Software Transactional Memory
Finally here is some related commentary by Bill Clementson
Technorati Tags:
erlang, java, software transactional memory, transactional memory, concurrency, thread, Herb Sutter
No Comments/Pingbacks for this post yet...
Previous post: How do you solve a problem like Serena Next post: Erlang seems to be gaining more mind share outside telecoms
This blog is a collection of my views opinions, rants and raves on various issues. Sometimes topical, sometimes obscure, but hopefuly always interesting!
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| << < | > >> | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | |||||
powered by b2evolution ||
Valid XHTML ||
Valid CSS ||
Valid RSS ||
Valid Atom
Credits: blogtool | UK web hosting | evoTeam | skin design by Louis Clotman