Donnerstag, 23. Juli 2009

Alternatives to Java

Having summarized why I do not like java AND IN THE FULL KNOWLEDGE THAT IT WILL BE ONE OF NO 1 LANGUAGES LIKE THAT FOR THE NEXT TEN YEARS, I will begin to dream now.

Of a world where either java changes or a new star arises and replaces the good old horse.

*Blink*

Hey, I am dreaming! So lets forget about the "java changes" part. There are some language features (like exceptions, arrays, primitives and == comparing referential equality) which just cannot be changed anymore without forcing the programmers to update their old code, so java will never become fully elegant. I guess the foremost point which we could reach which the old lady are operator overload and closures in the future. But seeing how java 7 will be, even these simple things might be hold off forever.

So I will delve into something else and look at possible alternatives, which could in the future replace java. This will not be a full look onto all possible languages. To be exactly, it will be unfair and restricted to two alternatives:
First groovy, as its very powerful but still close to who java reads and feels.
Second scala. This one is completely different but has nearly all features dynamic languages have while still being static.

I have choosen them for two different aspects:
- Groovy is very close to java, while being as powerful as Ruby,
- Scala is syntatically far of java but it has a unique features. It combines dynamic Typings powers with a real static typing, and integrates java code in a very tight manner.

For these reasons, I excluded JRuby, Rhino, Jython and the like, as their are all neither static typed nor close to java. At least one of them should be fullfilled to inherit some of javas powers.

Note: Experts might now say thats it not worth to look at scala, as it's intended as a functional language and thereby farer off java than any other of the listed languages. Well, I am NOT planning to scala Scala in the scala way. Instead, I will concentrate all my efforts on reviewing it as an imperative language with functional benefits.

Keine Kommentare:

Kommentar veröffentlichen