07/02/07

Permalink 07:00:21 am, Categories: Technology, Software development, 655 words

After Java: The next big thing

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:
, , , , , ,


Comments, Pingbacks:

No Comments/Pingbacks for this post yet...

Leave a comment:

Your email address will not be displayed on this site.
Your URL will be displayed.

Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Line breaks become <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))
This is a captcha-picture. It is used to prevent mass-access by robots.

Please enter the characters from the image above. (case insensitive)

Previous post: How do you solve a problem like Serena

Next post: Erlang seems to be gaining more mind share outside telecoms

ByMyReckoning

This blog is a collection of my views opinions, rants and raves on various issues. Sometimes topical, sometimes obscure, but hopefuly always interesting!

September 2008
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          

Search

Categories

ByMyReckoning

Amazon Store UK

Amazon Store USA

Archives

Linkblog

Software Development

Functional Programming

Politics

Culture

Travel

Blog

Science & Tech

Who's Online?

Misc

Syndicate this blog XML Feeds

What is RSS?

powered by b2evolution || Valid XHTML || Valid CSS || Valid RSS || Valid Atom
Credits: blogtool | UK web hosting | evoTeam | skin design by Louis Clotman