The future of Java. Am I wrong?

Hello,

I would like to come back on my last post named “The future of programming languages. What about Java?“. First, I want to thank you for your comments even when you express a disagreement: It’s good for a blogger to see the reactions of his readers, so THANKS. I have to say that, for a young blog, this post has been viewed many times : more than 1000 views in 2 days.

I have seen that the link has been added to reddit and I read the comments on it. I regret that those comments were not added directly to the post, but nevermind (maybe, on this blog, they would be more useful for future readers).

I have taken my first lesson

I want to quote here two disagreements expressed in the comments. The first from Bob:

I seriously hope that your not trying to support a new concurrency model for java as modeled in other languages just because java.lang is not annotated.

That is the most ridiculous thing I have ever heard.

And the second from dcueva on reddit:

1 Immutable classes are thread safe
2 Java is bad because it is not immutable by default
3 …
4. prepare to migrate!!

Lame argument. It is easy to build immutable classes in java whenever you need them.

Downvoted.

On my opinion, I have made a big mistake here: I didn’t mention that, for me, the next level of abstraction will be the concurrency. I “love” Java and I currently use it every day. But some years ago, I “loved” C++, then, I’ve discovered managed languages which give me a good abstraction of memory management in most of the cases. It doesn’t mean that there’s no more C++ developers. But I’m convinced that there’s a lot of ex-cpp developers in the Java community who have chosen the same way as mine.

In the next years, microprocessors will probably have more and more cores. The only way to use them in our softwares is to use concurrent programming. As I said, it is possible to reach this target in Java (and in C#, C++…). Before reading the Brian Goetz’s book, I thought that it was not a problem. Afterwards, I was proud to understand its complexity and, some months after, I think that it is hard to develop and maintain thread-safe code! If a new language takes this aspect in account and makes it easier, I’ll certainly switch and I probably won’t be alone to do it.

I understand dcueva when he says:

Lame argument. It is easy to build immutable classes in java whenever you need them.

I agree it’s easy for someone who is aware about this. But, when I have the same opinion as taggart:

That something can be done in a language does not mean the language makes it easy (both in implementation and performance) to do.

Personal reflexion

The mistake I have made is: if someone doesn’t care about the abstraction of concurrency, he can’t agree with my post. It is same as when someone doesn’t care about the abstraction of the memory management, he can’t agree that a garbage collector is useful. It’s the reason why we see many comparisons between languages: developers don’t look at the same features.

For you, what will be the next level of abstraction?

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Reddit
  • Yahoo! Buzz

Post a Comment

Your email is never published nor shared. Required fields are marked *

Additional comments powered by BackType