Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I heard the news about Java and the JCP/Apache. What I don't understand is, why does this have to affect the Java market ?

Sure, the license has changed and maybe it's moving to a be a bit more closed source but why would people think /it's/will be/ the new COBOL?

share|improve this question
6  
Do you have an example? .. a link perhaps where someone draws that conclusion? –  Tim Post Dec 11 '10 at 10:27
    
From all the comments people have been posting on reddit/hackernews/other tech websites. –  Kev Dec 11 '10 at 10:29
    
I'm just remembering back when Java was the cool new thing, and I bought some of the first available books on it. Things have changed in the past fifteen years. –  David Thornley Mar 30 '11 at 14:11
5  
"you all heard the news" assumes only java programmers read this site, and that the news will still be fresh in peoples minds one, two, three years from now. I haven't heard the news, can you elaborate in your question? –  Bryan Oakley Apr 12 '12 at 0:08

11 Answers 11

Why are some saying that Java will be the new Cobol?

  • You'd have to ask them.
  • Often, because they fail to understand why Java is so pervasive.
  • Often, because they wish it to be so, and by saying it they hope to make it happen.

You all heard the news about Java and the JCP/Apache. What I don't understand is, why does this have to affect the Java market ?

In reality, it has little effect on the real Java market. That kind of thing makes no practical difference to the companies that are Oracle's paying customers, or to the general Java developer community.

Sure, the license has changed and maybe it's moving to a be a bit more closed source but why would people think /it's/will be/ the new Cobol ?

You'd need to ask them, and I don't think you'll get an answer that holds water.


It may be that Java eventually does go the way of COBOL ...

However, if that happens, it will be because there is something that is irrefutably better than Java. In fact, it needs to be so much better that there is a STRONG BUSINESS CASE for MOST companies to invest in retraining and retooling Java developers, and to take the risk of switching all of their new projects.

But there are no clear signs that this is process is currently happening. There are lots of promising new languages, but none of them have the level of maturity of Java, or the proven track record. Java is still way out in front in terms of lines of new code being developed. (Or so I've heard.)

And on top of that:

  • many of those new languages use the JVM as an implementation platform,
  • the Java language is evolving with Java 7, 8, etcetera (maybe not as fast as some people want), and
  • there is Android.
share|improve this answer

Java is the new COBOL because new developers have almost zero incentive to learn Java. There are better languages (and some of them run on the JVM as well as other platforms). Why would a new developer choose to learn Java over something more fun, productive, poignant, etc? They wouldn't.

Java will die much slower than COBOL (because coding is a much more ubiquitous career now than it was then). But die it will. The only caveat is that Java may evolve to be the language that people want it to be. Sadly it seems this will not be the case (at least I have no evidence that it will. I mean, it's only now getting string equality for switch(case) expressions. Really? c'mon people)

share|improve this answer
    
"Fun" languages don't put your kids through college. Java does. –  Paul Tomblin Apr 11 '12 at 23:21
1  
Any language described as "Fun" I'd rather not have to be the next guy who works on it. This is why businesses pick boring, predictable languages--you have to develop for the next guy to read first, even productivity HAS to be second (Who cares if you can code something up in 2 days if it takes 4 months to fix once the bugs start falling out in QA and you, needing the next fun language, have moved on???). –  Bill K Apr 12 '12 at 7:51
    
It's possible to write atrocious software in Java. I am the next guy working on your programs. One of the reasons I am looking for alternatives to Java is due to this - more specifically, on a very large project, it can take a month (or more) to pick through the boilerplate in Java to find out what the program is doing. I also disagree that productivity and fun are not equated. The next breed of programmers will not have to learn Java. The problem of doing something fun (when you are young) or boring is not difficult to solve. Hence, in my very humble opinion, it will go the way of COBOL. –  Neil Chambers Apr 12 '12 at 9:16
    
@Paul "Fun" languages don't put your kids through college, but they do get you billion dollar valuations. –  Adrian J. Moreno Apr 12 '12 at 21:14
1  
For every 22 guys who made an insane amount of money for combining a sepia filter with a tumblr with no monetization strategy, there are 100,000 guys putting their kids through college doing Java apps. –  Paul Tomblin Apr 12 '12 at 21:52

Until a compiled, strongly typed language comes along to replace Java this isn't going to happen, everyone seems to think Ruby, Python or some other dynamic language is going to replace Java, but, for one, these languages are basically the same age as Java so its rather ignorant, in my opinion, to think these would be a replacement given just that fact alone. Secondly, large, legacy Java programs can be enough of a hassle to maintain even with strong typing, I can't imagine the mess that could arise with dynamic languages. Compiling and strong typing catch a lot of bugs before they happen and this provides a lot of value in and of itself. Java is a still evolving language that meets the needs of a lot of enterprises and large-scale web applications and its not going to be easily replaced, it can be, if something better comes along, but it has to be better than Java, not just different. Also, the JVM is an immense piece of software that has a lot of value in it and I think some people underestimate just how powerful and ubiquitous Java has become (its used for mobile apps too)

share|improve this answer
    
Do you hear a lot of talk about apps built with dynamic languages being hard to maintain? I came up in one so I have bias but I've never understood this. Strong typing is a performance tradeoff, IMO. Nothing more. The notion that it protects you from something beyond complete ignorance of how the language works has never made sense to me. If anything I've found it striking how difficult it is to track the flow of data when reading other people's code in languages like Java and C#. Less code, fewer devs, and less need for layers of abstraction is more maintainable IMO. –  Erik Reppen Feb 14 '13 at 14:24

I think analogies between Java and COBOL are based on Java's relative verbosity and stagnation when compared with the alternatives: C#, Python, Ruby, Javascript, Groovy, Scala, Clojure, etc.

Personally I have seen about a 70% reduction in code size and development time after moving from Java to Groovy.

share|improve this answer

While the question might not be formed as clearly as it could, I believe I may understand the sentiment and have the answer.

Much has been written to indicate a lot of new batch processing is being coded in Java. If this is true, in time, it is possible Java will take over the lion share of batch processing from COBOL. All the major big iron boxes that run COBOL will also run Java: IBM zSeries, HP NonStop, Unisys 2200, and Unisys MCP.

I am starting a new COBOL gig with the state of Washington on November 1. While I have not met my new coworkers, I suspect I will be the youngest COBOLogist in the office.

At age 44, I am probably in the bottom 10%, or less, of COBOL programmers sorted by age in ascending order across the industry. I would hazard a guess that 80% or more are at least 10 years my senior.

Something is going to happen, and there are at least a couple of possibilities.

1)

Companies with an investment in COBOL will undertake the training of young Computer Science graduates in the wonders of COBOL. I have worked one place where this happened, but the market today is such that I doubt they would still need to do this.

2)

A variant of #1 might be the sudden appearance of Quickie-Mart COBOL training schools will pop up to train the workforce.

3)

More and more COBOLogists will remain in the workforce, either delaying retirement or returning to work after retirement.

4)

Those of us COBOLogists left still working, as more and more of our more senior brothers and sisters retire, will perform conversion work. Java makes the most sense given that the box where COBOL lives also allows Java to move into the neighborhood.

If there is forethought and planning, the conversion and transition from COBOL to Java will be relatively smooth and painless. If not, then a lot of excitement could ensue that makes the whole Y2K era seem quiet and tame.

share|improve this answer

IBM supports Java fully on their mainframes, meaning that Java programs there will live as long as Cobol programs has up to now.

Code do not rust! IBM does a lot of work to allow old programs to run on new hardware.

I work in a place where we regularily deploy Java programs to IBM midframes. I literally expect those programs to run for decades.

share|improve this answer

There are a billions lines of written on cobol that works on production and does money-related operations. Rewriting cobol-written systems(or even its parts) is too hard and too risky. That's why dead cobol is still alive :)

Currently I'm working at internal-scale bank and observe very similar situation with java - so many trade-systems are written on java, can't tell you. These trade-(and other banking stuff)-systems will live for a very long time and java with them.


p.s. it seems to me, that in approximately 30-50 years we'll have specific class of kind a cobol-like languages: dead still alive and working(for instance - cobol, java, etc ...).
disclaimer: despite of I've written word dead near cobol and java many times I'm not against them, what's more - they deserve respect, IMHO, for stable work on production for years.
p.p.s. if you're reading this sentence - thank you for reading post to the end :)

share|improve this answer
4  
Thing is, COBOL is still a good language for a certain class of applications I find deadly dull and hope never to work with again. –  David Thornley Mar 30 '11 at 14:09

Because it's a lowest-common-denominator language used by businesses.

share|improve this answer
    
Can you please explain your answer? –  Dynamic May 12 '12 at 20:59
    
@Dynamic: Java|COBOL is very easy. it's very popular in the enterprise space. Reams of it are written, and its very hard to rewrite software. So it's going to drag on long past its natural life due to the fact that its there and has been debugged many times. –  Paul Nathan May 22 '12 at 23:31

Cobol was largely used by businesses. It wasn't a particularly nice language, but there was good money in programming it. Ultimately it went into decline and isn't used much these days. Describing Java as the New Cobol is a disapproving/dismissive phrase which IMHO tends to come from developers who would rather be programming nicer languages like ruby, php, perl or the like.

Personally, I am not so hung up on how pretty/fun my code is, but rather how useful/valuable it is. When I was younger, the former was more important to me. Java is more the later, but thats the way I like it now I have over 20 years programming experience. ;)

share|improve this answer
4  
No need to write in the past tense. Cobol is alive and well on IBM hardware. –  user1249 Dec 25 '10 at 23:27
    
I agree--fun is about the opposite of readability, if you find a language "Fun", you should enjoy the hell out of it on your own projects, but keep it out of anything where someone is paying you to make a maintainable project. In business coding, the next person to read your code IS the primary customer, the computer being able to run your code is secondary. Simple, predictable, minimal syntax--KISS. –  Bill K Apr 12 '12 at 7:47
1  
Fun is writing code you don't believe will compile, let alone does something useful. When you have to support some elses code which does this, its not so fun. ;) –  Peter Lawrey Apr 12 '12 at 8:38
    
I'm sorry, but to mention PHP and the word "nice" in the same sentence is just bollocks. –  Sune Rasmussen Oct 14 '13 at 0:52

I think it's the idea that people will not naturally be drawn to Java, preferring to try some other language that's deemed more powerful, more fun or just simply cooler.

And then, as with Cobol now, companies will have to spend real money to train people to maintain all the Java code that is still in production.

It's always risky betting on something that the "alpha-geeks" are no longer interested in, but I think that that's too early to call with regards to Java.

share|improve this answer
4  
Ironically, I know a consultant who was paid top bucks to port old Cobol code to Java for a bank software. –  Job Dec 11 '10 at 14:28

I do not believe that the former part of the question is associated with the latter. What is going now with JCP does not have to do with the belief that Java will be the next Cobol.

The rationale for the Cobol argument has to do with tons of code written in Java that is deployed in infrastructures we use daily, which might not be able to be maintained and extended if we have a shortage of Java programmers for the same reason we have a shortage of Cobol programmers and some other arguments as well (a person more inside relevant industries might help)

share|improve this answer
    
"which might not be able to be maintained and extended if we have a shortage of Java programmers for the same reason we have a shortage of Cobol programmers" Can you elaborate a bit? Are you actually comparing Cobol to Java? –  Kev Dec 11 '10 at 10:41
    
I am not, in any sense. The people who offer that argument do. And the rationale is that things we see now happening with Cobol, are going to be seen in the future with Java. –  dimitris mistriotis Dec 11 '10 at 10:46
    
You are spot on here. Good or bad, Java is becoming the mainframe language of the future. –  Martin Wickman Feb 21 '11 at 18:04
    
@Martin The "funny" thing is that this is exactly my current job-role, also became SJCP :-) (both unknown to me while answering/writing comments). My personal take is that java will live in a both "Cobol" and modern duality example maintaining a struts application VS writing Grails/Spring –  dimitris mistriotis Feb 21 '11 at 19:56
    
@dimitris yup this is definitely true, Java is still very modern when used with Spring, for example, I am in that situation of maintaining a legacy struts app and also working on new Spring dev, either way, bad code is bad code regardless of time it was written, if the dev doesn't use proper design patterns, no matter what language, the code is going to be hard to maintain –  programmx10 Oct 22 '11 at 5:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.