|
|
|
Back to newsletter 135 contents
We appear to have reached a computer language inflection point. I see article after article discussing new language X, new language Y, resurging old language Z. As I've said many times, Java is not the ideal programming language - it's just better than anything else (mainstream) out there at the moment. The huge proliferation of language interest happening just now is the IT community's response to the fact that none of the current mainstream languages is ideal. Everyone is reaching out to find something better. Personally I don't bother looking, enough of you others are already looking so when a new language is found that's better, I'll know about it soon enough.
But I have given some thought to what's needed. The trend in hardware ability is increasingly parallel, but people cannot really think in parallel very well, we tend to understand a sequence of instructions. Branching, merging, alternate pathways, these are all confusing. Additionally, once you are parallelising, you are inevitably moving programs to react to events that have happened elsewhere, so there has to be event-driven support. Add in the fact that race conditions are very very difficult to eliminate from code, and we can figure out what we need: a programming language that looks like you are coding sequential instructions, but that underneath runs completely parallelly with underlying event handling and no race conditions possible.
Of course, it'll run on the JVM - why wouldn't you use the most stable transparent efficient versatile platform we have yet developed for running applications? And there should be in-built support for a presentation layer that runs in the browser (a small bare-bones browser implementation could easily be included to provide an effective stand-alone mode that doesn't require a browser to be available, but leaves the presentation layer precisely the same).
The amusing thing is, you could develop code fifteen years ago in an environment that supplied the core (inherently parallel while coding sequentially) of what I want. It was a parallel version of Prolog. It never went mainstream as it was ahead of its time, we're only really beginning to need this inherent parallelism now to maintain programmer productivity gains. But that does show me the technology is perfectly possible, it's just a matter of someone getting it right, and catching the IT fashion wave.
Now read on for all our usual links to Java performance tools, news, articles, and the extracted tips from all of this month's referenced articles.
Java performance tuning related news.
Java performance tuning related tools.
Back to newsletter 135 contents