Ruben, I think one of the big things Java did was to solve the memory management issues (at least to a large extent). The next problem to solve is IMO concurrency, which is much too complicated with the current programming model.
While there are solutions for that out there, I believe they deviate too much from Java in the details. Unfortunately details do matter and I believe part of Java's success was that it looked much like C++. Libraries matter and I suspect that nowadays Java would have a harder time to replace C++ since it seems they finally got some agreement on what String class to use (but maybe I'm wrong). Java covers pretty much everything, and while I personally believe the collections API is a pile of dung from a conceptual point of view, it is an existing standard with decent implementations. It won't be as easy to replace that as it was pushing something new on C++ developers who just didn't have any standard at the time (unless you were in MS land). I also would not switch my main language unless there is a full story for IDEs (including refactoring and debugging) as well as the build tooling (including support in CI systems). A tough call, but I am spoiled. That doesn't mean I personally don't touch other languages. I have toyed with Scala and I have used Grails on a prototype, but with the former I still feel like creating a bus problem and with the latter I find I code much less agile than what I do in Java. That last statement may sound weird, but since I tend to rely on static typing and refactoring tools a lot, Groovy is not my thing. It's nice to write code in, but for any renaming or repackaging it tends to be awkward. This means my decisions are bound much stronger, which means I'm less agile. Part of that is just the web-app story (no wonder these languages are more popular there), but I think Groovy adds its bit. And I also find myself reading JavaDoc again -- I haven't done that in years since I normally have the source attached and my IDE can take me there. Try using POIs weird API in Groovy and you'll miss something. Long story, shorter conclusion: what I would be looking for is a language that looks very Javaish and has strong static typing. Stronger than Java (at least explicit nullability and closures, no broken arrays, join and union types, maybe even simple constraints such as Integer[0..5]) and with IDE support that makes good use of all that information I can then express. Add some decent concurrency support into that and then we start talking about something I'd call Java's Java. Something I can see going mainstream, as opposed to all the current candidates. Peter Ruben Reusser wrote: > hi there, > > I always felt the compelling reason to switch from C/C++ to java was > that there was a good set of libraries that came with java making my > life easier to develop web application and break from the cgi scripts > - Java had a good looking socket library that was easy to understand, > nice file handling and an ok looking GUI library for little inhouse > tools (compared to having to understand MFC and the windows UI > programming model). Java was easier than C/C++ and it felt like > developers would not have to be so smart to actually write good code - > so overall it seemed to make good business sense to bet your next app > on Java instead of C/C++. > > If one wants to replace java today, what do you think it would take? > Is it going to be enough to just have a nicer, easier language? Would > one need a set of API's with the language that solve some big problems > we have today (and what problem is there to solve)? Is it necessary to > provide a good IDE for the language right from the start? > > Would love to hear your comments. > > Ruben > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
