Debasish Ghosh: Hello, 2008! Will Java Strike Back?


News: Debasish Ghosh: Hello, 2008! Will Java Strike Back?

  1. Debasish Ghosh has posted "Hello, 2008! Will Java Strike Back?," pointing out some negative comments on Java from InfoWorld, and briefly discussing the strength of Ruby and Scala, as well as .Net, and the lack of leadership on the language front. The fate to be avoided: Java as the "new COBOL." The InfoWorld articles are "Study: .Net overtakes Java" and "Java is becoming the new Cobol"; in the former, a study from Info-Tech "likens Java to legacy code. The company said .Net may emerge as a means of stitching together diverse applications but the immense amount of Java code will remain in the tradition of other legacy systems such as Cobol." In the latter, the summary is "Now that Java is no longer the unchallenged champ for Internet-delivered apps, it makes sense for companies to find programmers who are skilled in the new languages. If you’re a Java developer, now’s the time to invest in new skills." Debashish himself says that Java's leadership isn't clearly guiding the ship, and that other languages are eating away at Java:
    But since the release of Java 6, the issue of language design in Java clearly lacks strong leadership - whiteboards and community voting help in getting the watermark, but you need a strong leader to dictate the best features into the future versions of the language. Developers who seek joy in programming have been moving away from Java to the rails of Ruby, Erlang and Haskell. The bottomline is that we need to make Java more productive, and the only way to do so is to add features that reduce the verbosity of Java code and encourage developers to design more powerful abstractions using the language. On the contrary, the recent trend in the Java development ecosystem has been towards adding frameworks in the development stack to make the round peg fit the square hole.
    This topic seems to come up every year. "Java is the new Cobol!," pundits claim repeatedly, and while Java is certainly aging, claims that it's the "new Cobol" have problems. For one thing, if it's becoming the "new Cobol," it should get on with it - the claim that it's becoming the "new Cobol" has been made year after year after year (after year.) Secondly, considering COBOL's standing in the industry: It's not clear that being the "new COBOL" is actually a bad thing. It may not be glamorous, because people see COBOL programmers as being outmoded and uninventive, but COBOL is far from dead. Of course, Java is growing still - not only in gaining new constructs like closures, but in adopting new languages on the JVM itself. Thirdly, and a minor point indeed: it's "COBOL," people, not "Cobol!" (It's an acronym, not a name. Uses of "Cobol" in this post are meant to quote the original authors.) So: your thoughts? What do you think about Java's future in 2008?

    Threaded Messages (24)

  2. Simplified syntax...[ Go to top ]

    Developers who seek joy in programming have been moving away from Java to the rails of Ruby, Erlang and Haskell. The bottomline is that we need to make Java more productive, and the only way to do so is to add features that reduce the verbosity of Java code ....
    For me productivity is given by the following: 1. You know what to do i.e you have your requirements 2. An ide with good refactoring, templates and code completion functionality (There are three great ones here for java) 3. A large easy to learn API that has relativly good design so you dont have to roll your own stuff all the time.. At least this is true for me. When i use a scripting language i use it for fun (closures,ducktyping n stuff) and for easy access without having to compile.. And i often choose groovy because it has really good java integration.. So i do not agree with the statement that "the only way is to reduce verbosity".. But some improvements could not hurt..
  3. Google[ Go to top ]

    It would seem that with Googles commitment to Java via GWT, Guice, and now Android and the Open Handset Alliance, that the life of Java has an extension that has to be thought about. Google is fast becoming the 800 pound gorilla over Microsoft, so, I take that into consideration as well.
  4. Enterprises != enterprise && .net == VB?[ Go to top ]

    Potential red Herrings here. 1. The brief TechWatch article uses the word "enterprise(s)" repeatedly, but only in the sense of "company", never in the sense of "enterprise application". Intentionally misleading??? 2. Companies who are updating their zillions of Visual Basic and hoary old C/C++ apps are now by default .Net developers, right? So, as I read the article, if you have one VB app that you maintain on new Windows platforms, you qualify as a .Net "enterprise". In that light, the Info-Tech report does not seem even worth discussing. It looks like a case of an analyst trolling for PR business. On Java as COBOL: I would give Ruby/Rails a second look (or maybe Python/Zope?), but I'm still recovering from having had to maintain unmaintainable legacy php code without a decent IDE.
  5. Strange InfoWorld artice[ Go to top ]

    First I'd like to comment on the InfoWorld article. From the cited article: "Info-Tech Research Group said its research found .Net the choice over Java among enterprises of all sizes and industries. Entitled, "It's Official: .Net Roasts Java's Beans," the study explored the relative prevalence of Java and .Net across different types of enterprises and found .Net has gained considerable market share and become the favorite of many enterprises. ..." This only tells me that .net has gained some market share, not that is prevalent. The wording could be directly from a MS marketroid. From my experience in europe's banking,insurance and telcos industry J2EE is the dominant platform for (business) backend systems (besides the host of cause). This may be the reason why Java is considered the new COBOL. I don't think that MS will be able to push J2EE from this position because language coolness is not a decision criteria in these industries. Avoiding vendor lock in definitely is one. Then the article makes it a .net vs java shootout. This is wrong. Either it should be C# vs Java or CLR vs JVM. And if you want to follow every fad and hype wave you can do this on the Java VM at least as well as on the .net CLR. See And now on to Java's future: it has one and most likely it will be that of a workhorse for boring jobs in a dull domain, just like COBOL :-)
  6. I like the part where .NET overtakes Java? So, you can also say that more people are using Visual Basic, which is still probably the most popular language for retards. Getting a sum of users has absolutely no meaning.
  7. First, I'd like to second Burkhard about his position on the banking world, which is one of my main targets, and above all about the point that ".NET is overtaking J2EE in the enterprise" just countradicts "Java is the new COBOL". Second, the latter article by InfoWorld originates from some statistics by Tim O'Reilly what were related to ___selling books___. As it has been debated to death, this is hardly related to the real spread of a technology. Java has become a mainstay, so it's not a surprise that people buy less book on it, while it's obvious that people mostly buy books about new things, and .NET is more recent than Java. Heck, I'm working with Java since more than 12 years now, and I've bought the last book about Java four of five years ago. The kind of books that I've recently bought are about method: design, TDD, etc...
  8. I dont know why we are get so passionate about one language... I remember the conversations about C++ when new RAD languages like FoxPro, VB, PowerBuilder, etc., came into place and replaced C++ almost out of extinction... Comparably, J2EE as a framework stack is in the crossroads similar to the notorious and unpopular Microsoft's MFC/VC++. Open source was not popular to take C++ from MS clutches and it had a slow death... Java as a language may survive under the core of Rubies, etc., J2EE as a platform may be extinct sooner than expected. I am not even sure if J2EE will have the run of COBOL, because lot of banks, financial institutions, insruance companies are still using mainframes and COBOL. COBOL may outlive Javas and .NETs.
  9. Nothing new happening[ Go to top ]

    It seems that politics and maneuvering are more the driving forces of these new languages than real innovation. Why? As Arneng said above, a new language won’t really make me that much more productive, because it’s not the java syntax or rules that hold back progress. So why push these issues? The problems lie in a few areas for Java 1) The JDK is missing a large numbers of standard tools. Just look at Jakarta Commons for a complete list. (come on guys, no file copy?) 2) The first language that requires me to build test cases first before it lets me write classes will be the one I try. It’s not really the job of a language to do this for a developer I don’t think, but it sure would be nice if it did it anyway. Most development time, after requirements definition, goes into error handling. Debugging, exception management, testing, junit classes, etc. account for about 50-80% of the development effort. Part of that is just normal effort when a developer knows the class libs, and the other is “learning by development” when it’s a new lib for them. This is why the two items listed above are important. Address those issues in java or a new language, and then you have a cool development platform.
  10. brainstorming[ Go to top ]

    It would be great to have a Cobol implementation running on the Java VM!
  11. Re: brainstorming[ Go to top ]

    It would be great to have a Cobol implementation running on the Java VM!
    There's this if you really want that:
  12. Re: brainstorming[ Go to top ]

    It would be great to have a Cobol implementation running on the Java VM!

    There's this if you really want that:
    Cool! Crazy world!
  13. Is Java the new COBOL? Yes and no. Yes because it's becoming the most common programming language for business development. No because 1. The language is not similar to COBOL in any meaningful sense. 2. It's on track to completely blow COBOL out of the water in terms of it's universal support. Not only does every major system platform offer some support for Java, it's the most supported in terms of integration with other tools and COTS apis. The COBOL world is like the Island in "The Land Before Time". Not only is the language antiquated and painful to use, it's isolated from the present. There is almost no access to many modern solutions that developers in other languages take for granted. Should you learn other skills than Java? Yes. Most definitely. It will make you a better developer in general. But Java will remain the workhorse language for years to come. It's not a perfect language by any means but it will suffice for many needs.
  14. So ... ?[ Go to top ]

    What's the big deal ? Why is this controversial ? I don't think we got into software development so that we could avoid change throughout our careers ... I work with people who started with COBOL and went to C++ and then to Java. So we'll adopt .Net where it makes sense. I expect technologies to change over time and I expect to learn new ones. As far as the number of users is concerned, my understanding is that Visual Basic developers always outnumbered C++ developers. Again ... so what ? Did that threaten the positions of C++ developers ? Also ... what's up with the focus on "Internet-delivered apps" when we discuss Java ? That's a part of what we do with Java in my shop, but it's only a part. Java : it's not just for the Web anymore ;-) And .Net has some good things to offer as well as Java. If open source means anything, surely it means having an open mind - doesn't it ? Finally ... IMO Java has taken some wrong directions for some years. We don't need new frameworks every year and we certainly don't need closures or other new language features. What we do need is a consistent way to build and deploy applications - this is the principal cost savings of adopting .Net. (Those of us developing Web services with Java, for instance, can attest to the lack of progress in creating a usable development process that crosses toolsets.) We're not going to get those things, and so the cost benefit of the single-vendor approach will gain ground until the next breakthrough occurs. No problem !
  15. I’ve worked on systems at a number of organizations and I keep in close contact with a number of contractor buddies. We don’t see .NET (financial services, insurance, government) being used for developing enterprise services anywhere. Ruby, PHP and the like don’t even compete in that space. It’s all Java. Java is steadily replacing CICS/COBOL. If dominance in the enterprise services space makes it the new COBOL, then I guess they’re right. Where we see .NET is in our departmental and workgroup applications, primarily replacing VB6, VC++ and Powerbuilder clients in cases where a browser-based client is not feasible. Sometimes it is what the client has to do, but mostly it’s because they don’t want to completely re-architect and replace the app in one fell swoop. At my level we’d only care enough to force the issue if it were a core or broadly used application. I’m just happy to get them off VB and C++ and on to C#. We also see .NET in a couple of places handling the presentation tier duties. That is in part because of the transition from older client technologies – skill sets and all - but also because .NET has some nice tools for developing web apps and services if you are too myopic to think about supporting browsers other than IE. .NET skills are also in demand for supporting and customizing some commercial applications. Oddly enough, we never see Ruby being used. Maybe that’s because we don’t deal with the peripheral applications.
  16. Too much mention of J2EE[ Go to top ]

    JEE5 is here now and JEE6 specification should be complete this year. The differences between JEE then and now is very significant. People often use older technology like J2EE when trying to say how crappy Java is which is really annoying. If you are going to compare Java to some other language at least talk about it in the modern sense.
  17. Java rocks![ Go to top ]

    For me Java 6 is good language with great IDE's (not only one IDE), many good frameworks for many purposes... many books...If Java dies I don't see the reason why should Visual Basic or C# survive?!
  18. Don't think Java needs to strike back. A giant doesn't have to swat flies. Java the platform will be king for some time to come. Going to be hard to sell me on the 'coolness' of a non-JVM language when I have a few million person-hours of research and development into stable containers like Tomcat, JBOSS, and the JVM itself. That's not counting the uncountable person-hours put into the available JVM libraries and frameworks. Who cares if java "the language" becomes less 'en vogue' than others. If I need some whiz-bang I've got a few dozen other JVM-based languages to choose from. Groovy is nice and currently I'm excited by Scala. I may go jRuby on Rails but I don't see the point of Ruby on Rails for anything that has to scale significantly. (Note: RoR may scale to the moon if done correctly but I personally can't guarantee that like I can with JVM-based tools, containers, frameworks) For better or worse I trust Tomcat over Mongrel. Besides, I know COBOL programmers making well over $100/hour with their so-called 'legacy' skills. Personally, I would love it if all the other Java developers moved onto other languages - then I could quadruple my rates. InfoWorld, keep the fud coming and scare off my competition!
  19. I know COBOL programmers making well over $100/hour with their so-called 'legacy' skills. Personally, I would love it if all the other Java developers moved onto other languages - then I could quadruple my rates. InfoWorld, keep the fud coming and scare off my competition!
    From what I understand, COBOL developers are expected to become more and more expensive in the near future. They are expected to start retiring in droves in the next decade or so. This is one of the reasons many companies are trying to migrate to other platforms esp. Java.
  20. Java has to strike back? I guess it's .NET. .NET is so bloated comparing to Java. In Java, you have to freedom to choose the level of development automation such as framework level or even IDE auto-code. But in .NET you have no choice. Microsoft says "You have to do it .NET way" and you have to follow, no life buddy!! Java has a philosophy behind: Everything you get from us you have to understand before using it; if you don't understand and you screw it, it's responsibility to fix it. And last but not least, all our framework friends out there are giving you a hand to start with but not doing it for you so you learn what real programming is: thinking exercise.
  21. "I don't think we got into software development so that we could avoid change throughout our careers " I don't think any is fearing a change. I've learnt programming with Basic, then came Pascal, Pascal and objects, C, C++, Java (in the middle also did work with scripting languages and Perl). Yes, I'm getting older, but I can still learn two mainstream languages before I retire :-) My point is that I'll change language when there will be real reasons for doing it, not hype ;-)
  22. Compromises vs. options[ Go to top ]

    I have always viewed the Java vs. .NET dilemma as one of choosing between having options but complexity (Java), or simplicity but making compromises on what you want to do (.NET). Just the fact that you have choices in Java is liberating if you have some knowledge but daunting when you don't have the knowledge you need to make the decision. .NET tells you what to do, and if you don't like it you either don't use it, or you make a compromise and move on. There is a place for both, that is IMO why we have other debates such as Linux vs. Windows - same fundamental issue. They are not necessarily in competition, they both fulfill a different role for different situations. Tim Ferguson
  23. What is Scala ? Is it Java based framework ? Where can I find more details. thanks :)
  24. It's a language that runs on the JVM and CLR. It has facilities for object-oriented, imperative, and functional programming. Here's a link to the main site: . From there, you can find other links. Also, a web search using "scala language" produces a number of links. Enjoy.
  25. Thanks Bill Pyne. It was useful :)