Slashdot Mirror


COBOL Turning 50, Still Important

Death Metal writes with this excerpt from a story about COBOL's influence as it approaches 50 years in existence: "According to David Stephenson, the UK manager for the software provider Micro Focus, 'some 70% to 80% of UK plc business transactions are still based on COBOL.' ... Mike Gilpin, from the market research company Forrester, says that the company's most recent related survey found that 32% of enterprises say they still use COBOL for development or maintenance. ... A lot of this maintenance and development takes place on IBM products. The company's software group director of product delivery and strategy, Charles Chu, says that he doesn't think 'legacy' is pejorative. 'Business constantly evolves,' he adds, 'but there are 250bn lines of COBOL code working well worldwide. Why would companies replace systems that are working well?'"

314 comments

  1. Oo, oo, oo! I know! by Samschnooks · · Score: 5, Insightful

    Why would companies replace systems that are working well?

    Because the director of IT or whatever his title is will want to be able to put on his resume that HE moved a company from a "Legacy" and "Outdated" system to a modern "web based solution" that enables "greater productivity" among the workforce saving "millions of dollars". Now, he can put that on his resume and go for the CTO, CIO, or whatever jobs.

    I've seen it and it works.

    1. Re:Oo, oo, oo! I know! by Jurily · · Score: 3, Informative

      Because the director of IT or whatever his title is will want to be able to put on his resume that HE moved a company from a "Legacy" and "Outdated" system to a modern "web based solution" that enables "greater productivity" among the workforce saving "millions of dollars". Now, he can put that on his resume and go for the CTO, CIO, or whatever jobs.

      If and only if they're able to pull it off. It's also a nice way to end your carreer if you fail.

    2. Re:Oo, oo, oo! I know! by fuzzyfuzzyfungus · · Score: 4, Funny

      I'm guessing that this story involves enough java to float a battleship; but not quite enough to keep the interface responsive...

    3. Re:Oo, oo, oo! I know! by trash+eighty · · Score: 5, Insightful

      no if you fail you just get promoted out of harms way

    4. Re:Oo, oo, oo! I know! by Fnord666 · · Score: 1

      I'm guessing that this story involves enough java to float a battleship; but not quite enough to keep the interface responsive...

      Right, because we all know that if an application is slow, the solution is to add more Java.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    5. Re:Oo, oo, oo! I know! by plopez · · Score: 4, Insightful

      If and only if they're able to pull it off. It's also a nice way to end your carreer if you fail.

      no, you collect a bonus and bail out before it crashes in flames leaving someone else holding the bag. See also the bank failures for examples of this. See a pattern? I hate MBAs.

      --
      putting the 'B' in LGBTQ+
    6. Re:Oo, oo, oo! I know! by freegamegallery · · Score: 2, Interesting

      Well, yes, that could be part of it. The other part of it is that in smaller shops you have a talent pool to pick from, and getting cobol programmers isn't easy, especially ones who are also proficient with some of the modern programming languages and web development. I'm not saying it can't be done, but its harder to find those folks. Plus, cobol programmers are usually older, have much experience in the industry, and consequently command a higher salary. Sticking with the "more modern" technologies in my mind really translates into using the technologies that are most popular giving you a large pool of applicants to hire from at an affordable rate.

      --
      Play Free Games at FreeGameGallery.com. We have Flash Games for Everyone!
    7. Re:Oo, oo, oo! I know! by darkwing_bmf · · Score: 1

      But by that logic, wouldn't it make more business sense to hire a couple of older programmers to maintain a system that works than a bunch of newbies to rewrite it?

    8. Re:Oo, oo, oo! I know! by nametaken · · Score: 0

      I've seen it and it works.

      Note to self!

      COBOL Turning 50, Still Important

      But still, this sounds awfully defensive. ;)

    9. Re:Oo, oo, oo! I know! by bobbonomo · · Score: 1

      Only if you work for a government.

    10. Re:Oo, oo, oo! I know! by RichardJenkins · · Score: 1

      You're approaching IT Nirvana when you understand that whatever the question, the solution is to add more Java.

    11. Re:Oo, oo, oo! I know! by Tubal-Cain · · Score: 5, Funny
      How can I be more alert in the morning?

      add more Java

      Hey, you're right! That really is the solution!

    12. Re:Oo, oo, oo! I know! by kilodelta · · Score: 1

      So very true. IT Directors always try to put their stamp on things. I should know, I was an I.T. Director once.

    13. Re:Oo, oo, oo! I know! by jlp2097 · · Score: 2, Interesting

      Your answer, while maybe true in some rare cases, just shows the ignorance of some IT people to business decisions. Maintaining such an old piece of technology might actually result in higher costs than developing a new system based on current technology. Why?

      1. People. Probably the most important reason. Cobol is not exactly a widely taught language. People knowledgable in Java, C#, PHP and other languages are younger, much easier to find and thus cheaper. People with real solid Cobol experience are actually quite expensive nowadays (supply->demand).

      2. Extensibility and maintainability. While maintainability might be ok, extensibility is a bitch. Connectors to Web Services? Talking to the myriad of other web apps you have inhouse? Accessing that SAP system you have?. There might be some solutions for every one of those problems. Hell, they even made Object Oriented Cobol a decade or so. But all of these (proprietary) solutions cost much more money than simply using a new language / technology which comes with most of these included.

    14. Re:Oo, oo, oo! I know! by coryking · · Score: 4, Interesting

      Depends. Staffing is one bit of the equation. You've also got to factor in "how easy is it to extend our existing application". Can you tie your COBOL stuff into your customer-facing billing system on your website? Can your call center be updated so the CSR's are all doing data entry on a web app or a "real" desktop application? I'm sure both are possible but I'm also sure both have price structures that are insanely high, but just a notch less insane as "hire a team of devs to dump COBOL"

      There is one more thing I'll toss out, but I'm not sure about. Location. If you are located in Bumbleskunk, USA, the talent pool is pretty small and you will have a hard time getting programmers to relocate (after all, if your company sucks, they are basically gonna have to move again to work some place else). I wonder if there is any correlation between "Uses COBOL" and "Is located in Bumbleskunk". In other words, how many companies headquartered in say, Boston or Silocon Valley use COBOL vs how many companies in say Cowtown use COBOL.

    15. Re:Oo, oo, oo! I know! by rackserverdeals · · Score: 1

      You have to understand where many of the cobol programs are running and what their function is. They're not little shell scripts people wrote for fun. They usually power the core of large businesses and depending on the business could be responsible for millions or billions of dollars in trasactions a day.

      Screwing with that, when everything is working fine is not a good idea. When Cobol programmers become even more rare it will become a more desirable job for programmers. I think places like ITT tech and Devry teach cobol to youngins. I don't remember the exact place but I remember running across a couple of them.

      Think of it this way. If Apple came out with a new iHeart would you have surgery to replace your perfectly functioning heart with an artificial one just so you can play mp3s?

      --
      Dual Opteron < $600
    16. Re:Oo, oo, oo! I know! by BrokenHalo · · Score: 1

      See also the bank failures for examples of this.

      Yes, there has been a handful of object lessons, but for the most part, banks are still rolling in profits as much as they ever did. Sure, the profits might not be quite as obscene as before, but you never see a banker on a bicycle. Yeah, I hate MBAs too.

    17. Re:Oo, oo, oo! I know! by that+this+is+not+und · · Score: 2, Funny

      Think of it this way. If Apple came out with a new iHeart would you have surgery to replace your perfectly functioning heart with an artificial one just so you can play mp3s?

      Apple's marketing department thought about that long and hard. Then they shrugged and acknowledged that the risk was too great. If they killed off their nosiest fanboys in a mishap, where would they be then? There's not much of a future selling iTunes off bottlecaps from Pepsi bottles.

    18. Re:Oo, oo, oo! I know! by nurb432 · · Score: 3, Interesting

      The last CFO i worked for did that. Was hired to 'rescue' the company but instead he ruined the company, fired most of us that stuck with the company even during the dark times. then he left, with a bonus. ( i hear he destroyed the next one too )

      1 year later the company filed bankruptcy.

      In reality it was the best thing for me personally, it got me out of the slowly dying industry i had been in for 20 years just before the collapse. But the way it went down was just wrong.

      --
      ---- Booth was a patriot ----
    19. Re:Oo, oo, oo! I know! by blind+biker · · Score: 3, Informative

      This is not necessarily tied to MBAs as much as it's tied to corporate psychopaths - the ones most likely to succeed in the modern chaotic corporate world (especially in larger publicly-traded companies). They will lie, manipulate and use everything and everybody only to further their own interest. If the company, their workers or even the economy of the whole USA will suffer, they won't care one bit - no conscience.

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    20. Re:Oo, oo, oo! I know! by Nom+du+Keyboard · · Score: 1

      Because the director of IT or whatever his title is will want to be able to put on his resume that HE moved a company from a "Legacy" and "Outdated" system to a modern "web based solution" that enables "greater productivity" among the workforce saving "millions of dollars". Now, he can put that on his resume and go for the CTO, CIO, or whatever jobs.
      I've seen it and it works.

      Allow me to translate this:

      The guy that you hire as your Director of I.T. is going to spend hundreds of thousands to millions of new dollars moving your off of your proven system to an entirely new platform that he understands better than anyone else -- and then take a hike to greener pastures leaving you needing to support the latest technology that only the newest, rawest, least experienced, graduates understand. And he's probably going to take the best of your I.T. staff with him in the process.

      Yeah, that's the guy I want to hire for our critical infrastructure.

      --
      "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    21. Re:Oo, oo, oo! I know! by CodeBuster · · Score: 1

      There is surely some of that yes, but on the other side of the coin are COBOL holdouts who hobble the growth of existing systems, particularly in the area of systems integration, because they want to work for a few more years and don't want some young turks coming in with their new-fangled web technologies and making their final years before retirement more difficult.

    22. Re:Oo, oo, oo! I know! by jellomizer · · Score: 1

      So you are Classifying all people with a Masters in Business Administration as all part of the same group. It is like saying I hate all CS majors because there is a bugs in my applications.

      Oddly enough the bad behavior is not stuff that they teach you in the MBA program, it is actually stuff they try to teach you to avoid. For the most part they try to teach you crazy things like process optimization (it is actually quite similar to a Computer Science course), Human Resource and they actually show you the numbers that say the Layoffs are a really bad idea as when you business picks up again you will need to rehire and retrain thus loosing more then what you have saved during the layoffs. Listening to all employees and encourage listening to employees at all levels for ideas, as they teach you that you may be isolated so getting honest feedback from these people is important. And they also state taking bonuses should be for good performance not bad performance.

      So it not MBA's who are the problem but the people who don't bother to follow or learn from their MBA. Which includes people who Order their MBA by mail, or actually a large group of people who actually don't have a MBA. A lot of the real jerks are the people with a BA in Business who are trying to suck up the the upper management, and will lie and cheat and give faulty data to make them look good.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    23. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      If and only if they're able to pull it off. It's also a nice way to end your carreer if you fail.

      I've seen that movie. If they are a failure from a high enough profile company a low profile company will still hire them thinking the failure will work out this time 'cuz the small company can't be as intense as the old one and boy are they lucky.

      So it goes like this:

      Fortune 50, Fortune 500, Fortune 1000, some big family owned business, some small family owned business, to consulting.

      In the 21st century no big time ivy leaguers go unemployed... they just "consult" for a while. Talk about how they failed and how you can avoid being schmucks like them.

      They sit in meetings and when they say: "Yeah, that's what I would have done." the boss (if the boss has a brain) will say: Okay, let's not do that then.

      Value from incompetence. Get that Harvard degree. Even if you're a total incompetent from Harvard you get to function as the bumbling idiot that they run their ideas by and if you like it then they do the opposite.

      I've seen it. Really. It's amazing. Watched the guy piss away my whole department, piss away 25 million... then go to consulting... get called in and when he said "good idea" after he left the room we would say ... "okay don't do that."

      Cherry job. If we succeed he gets to claim it was his advice (really his anti-advice) if we fail he gets to say we didn't listen to him. Rich for life that asshole is.

      The rich really do live in a whole different world from the rest of us.

    24. Re:Oo, oo, oo! I know! by mattwarden · · Score: 1

      Sorry... have you actually seen a typical mainframe screen? How can you possibly say that's usable?

    25. Re:Oo, oo, oo! I know! by 427_ci_505 · · Score: 1

      You ask this as a rhetorical question, but I'm sure there are people idiotic enough to do so.

    26. Re:Oo, oo, oo! I know! by haruchai · · Score: 1

      Not that I'm disagreeing with you but aren't you guilty of the same they-are-all-alike categorization that you accused plopez of? He tarred MBAs and you are smearing Business BAs.

      --
      Pain is merely failure leaving the body
    27. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      Dunno, if anything, I would expect more COBOL lifers plugging away at the Iowa DMV than in a fast-paced technical area.

      Also Silicon Valley is naturally mostly HP/Sun shops, very little IBM.

    28. Re:Oo, oo, oo! I know! by windsurfer619 · · Score: 2, Insightful

      I hear Java is like violence. If it doesn't work, use more of it.

      --
      -stolen from someone's sig

    29. Re:Oo, oo, oo! I know! by DiegoBravo · · Score: 1

      I suppose it depends on the orientation of the institution imparting the MBA. I have a dozen of friends (yes, a non significant sample) that told me exactly the contrary of what you're saying. They always try to confront people's ideas (in turn, confronting the students and turning them in argumentation/manipulation machines via the infamous "business case method"); about HR, apparently nobody believe in listening the subordinates but just apply the standard "vertical planning" with several degrees of refinement. Their main goal: make money, get ascended.

    30. Re:Oo, oo, oo! I know! by Xabraxas · · Score: 1

      Insurance companies tend to use COBOL to generate and process policies, but that isn't a very fast paced environment either. Mostly old-timers that don't know much about technology in general nevermind multiple programming languages.

      --
      Time makes more converts than reason
    31. Re:Oo, oo, oo! I know! by MichaelSmith · · Score: 1

      This is not necessarily tied to MBAs as much as it's tied to corporate psychopaths - the ones most likely to succeed in the modern chaotic corporate world (especially in larger publicly-traded companies). They will lie, manipulate and use everything and everybody only to further their own interest. If the company, their workers or even the economy of the whole USA will suffer, they won't care one bit - no conscience.

      Yeah, got one of those where I work now. Not sure whether to leave, take counter measures or wait it out.

    32. Re:Oo, oo, oo! I know! by billius · · Score: 1

      Definitely. As has been pointed out before, if a corporation were a person, it would most likely be a sociopath

    33. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      AMEN Brother! Glad to see my own sentiments reflected, places like HN are now INFESTED with little MBA wannabe bitches, makes me sick!

      I hate suits.

    34. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      So you are Classifying all people with a Masters in Business Administration as all part of the same group.

      Yep. Pretty much. MBAs are generally ignorant stupid shits that couldn't find their way out of a torn wet paper bag, but they can certainly deride their neighbor's (co-worker's) inability to do so in less than 1s.

      Now, having said that, having an MBA in addition to a real degree, say something in IT or engineering, may make that person a potential leader provided they understood their original degree in the first place. Otherwise, they now have 2 worthless pieces of ass wipery.

    35. Re:Oo, oo, oo! I know! by OrangeCatholic · · Score: 1

      >how many companies headquartered in say, Boston or Silocon Valley use COBOL vs how many companies in say Cowtown use COBOL.

      I lived in Boston for 7 years. Number of COBOL programmers: ZERO.

      Since then, I've lived in suburbia for almost 7 years. WE don't have cows but we did have quite a few potato farms up until recently. Here I've met exactly TWO cobol programmers.

      Neither of them had the balls to actually talk about programming tho.

      But they did talk about farts.

    36. Re:Oo, oo, oo! I know! by oliderid · · Score: 1

      I witnessed this also in the european HQ of a big asiatic carmaker around 2003.

      The CIO invested millions of Euro into a inhouse CMS for every national branches. Dozens of consultants (+ 1000 Euro per day) were working on the last Java based application.

      It was trendy, the IT department was in charge of the "tubes", while the experienced consultants were developing the new programs. Pure politic, the IT department had a very bad press internally (well to be honest they were really bureaucratic)

      He was almost a rock star internally during the first months . Then after months (even years) of development the "masterpiece" was released, full of bugs, limited features, cumbersome processes. Only 3 out of 27 branches have chosen to use it (they had an option not to).

      He was fired. They finally opted for a commercial application for a fraction of this price.

    37. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      Why are you so quick to accuse the CFO of being a bandit when you yourself admit it was a dying industry facing imminent collapse?

    38. Re:Oo, oo, oo! I know! by blind+biker · · Score: 1

      I believe everyone who has, at one point in their lives, worked for a larger publicly traded company, has had run-ins with such people. Sometimes you're charmed by them and then left wondering WTF happened, sometimes you see right through the bastard but it's too late, because the catastrophic migration from Sun Clusters to IBM Blades has almost destroyed your department (customers leaving or cashing in HUGE penalties, emplyee morale under the balls, many tried their best and are burned out or have quit...) but HE has managed to find a better position using this "transition to leaner architecture" in his fucking resume. For instance. After millions of EUR in losses, customers that have left and will never come back, key employees that said "screw this shit" and left and a department that, as a whole, has been thoroughly neutered, the previous manager had done great for himself, and used the rubble to get one more step ahead.

      rant over :)

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    39. Re:Oo, oo, oo! I know! by blind+biker · · Score: 1

      And by the way: unless you are really crafty and have good contacts, there's nothing you can do, because psychopaths are great at manipulating people. That's what I think about the "take counter measures" - it's the noble and just thing to do, but the good guys are rarely apt to pull it off.

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    40. Re:Oo, oo, oo! I know! by Anonymous Coward · · Score: 0

      Ever been on the team for a bad idea? Yeah, Generally the grunts like us get fired and the management that sent us on the 'quest' promoted.

    41. Re:Oo, oo, oo! I know! by beef623 · · Score: 1

      But by that logic, wouldn't it make more business sense to hire a couple of older programmers to maintain a system that works than a bunch of newbies to rewrite it?

      Old programmers won't be around forever, newbies will.

    42. Re:Oo, oo, oo! I know! by Walter+Carver · · Score: 1

      Out of curiosity, what was that slowly dying industry?

  2. Why replace it? by Anonymous Coward · · Score: 4, Funny

    Why would companies replace systems that are working well?

    So I can have a fucking job?

    1. Re:Why replace it? by Extremus · · Score: 3, Funny

      I am willing to offer you a good one, but I couldn't find your address anywhere.

    2. Re:Why replace it? by artor3 · · Score: 4, Informative

      Learn COBOL, and you always will. My dad is a COBOL programmer for the NY state government. According to him, around 95% of their COBOL programmers are within 10 years of retirement. The youngin's (as he calls them) are in their mid to late forties.

      If you know COBOL, you are absolutely guaranteed a job there.

    3. Re:Why replace it? by Anonymous Coward · · Score: 0
      So I can have a fucking job?

      Since when does anyone have an obligation to provide you with a job? You sound like the American automotive manufacturers.

    4. Re:Why replace it? by hemp · · Score: 1

      Finally, some place that might possibly hire someone over 35!

      --
      Skip ------ See the latest from http://www.anArchyFortWorth.com
    5. Re:Why replace it? by Anonymous Coward · · Score: 0

      Since when does anyone have an obligation to provide you with a job?

      Nobody does. Just like nobody has to decide to sell you food out of a supermarket and you would have to move sustenance farming.

    6. Re:Why replace it? by Anonymous Coward · · Score: 0

      It's "a dot coward at slash dot dot oh arr gee" (spelled out to foil spambots and fembots).

    7. Re:Why replace it? by hawk · · Score: 1

      That's because he doesn't know enough COBOL to fill out that field :)

      hawk

    8. Re:Why replace it? by Cyberax · · Score: 1

      I know COBOL (had to learn it to write an interface with a legacy system).

      There's NO WAY I'm going to write it if I can avoid it.

    9. Re:Why replace it? by CodeBuster · · Score: 1

      So I can have a fucking job?

      Would you like fries with that order?

    10. Re:Why replace it? by molarmass192 · · Score: 1

      Ehhh ... do some Python for a while, once you get used to indenting, move back over to COBOL. :-P

      Funny enough, COBOL was the first comp-sci class I took in college. It's one of those things that make you wonder how in the hell did it gain such widespread adoption in the first place. I guess there really weren't many options when it first came out.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    11. Re:Why replace it? by Nutria · · Score: 1

      Funny enough, COBOL was the first comp-sci class I took in college.

      Second for me. FORTRAN IV came first...

      It's one of those things that make you wonder how in the hell did it gain such widespread adoption in the first place.

      The /Shelly and Cashman/ COBOL textbooks were infected with the "no GOTOs, ever" disease, and it makes COBOL a really suck-ass language.

      But my first programming job after Uni was in a COBOL shop, and it demonstrated how intelligent people can write really slick, well-organized apps in COBOL using procedural design that Niklaus Wirth (back when he was using Pascal) would be proud of.

      (Note that they had to be easily modifiable because they drove an income tax service bureau, and so had to modified every year.)

      COBOL-1985 made it even easier to use procedural principles.

      --
      "I don't know, therefore Aliens" Wafflebox1
    12. Re:Why replace it? by Anonymous Coward · · Score: 1, Insightful

      Sure, but then I'd be a COBOL programmer in New York.

      I could be a garbageman and have good job security, too. I'd also deal with less garbage and not have to move to NY.

    13. Re:Why replace it? by Richard+Steiner · · Score: 1

      Our core class curriculum started with Intro to Comp Sci, but there were also three core languages that we had to take: FORTRAN (in our case F77, or @FTN), COBOL 74 (@ACOB), and Assembler (in our case @MASM on a Sperry UNIVAC 1100/82).

      I still write a lot of F77 code, but the airline industry has a LOT of Fortran stuff running here and there. :-)

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    14. Re:Why replace it? by HTH+NE1 · · Score: 1

      Why would companies replace systems that are working well?

      So I can have fucking job?

      I am willing to offer you a good one, but I couldn't find your address anywhere.

      Both employer and employee should be aware of laws against discrimination by gender and sexual preference when offering and applying for a fucking job. And continued employment will be conditioned upon performance.

      --
      Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
  3. COBOL Jokes by Anonymous Coward · · Score: 0

    Being a new whippersnapper, how about some age old COBOL Jokes?

    I'll get off your lawn now sir... ;)

    1. Re:COBOL Jokes by larry+bagina · · Score: 4, Funny

      have you heard about object oriented cobol?

      It's called ADD 1 TO COBOL GIVING COBOLPLUSONE

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    2. Re:COBOL Jokes by TheRaven64 · · Score: 3, Interesting

      Surely you mean ADD 1 TO COBOL GIVING COBOL. In C, ++ is an increment, not an add-and-assign-to-new-variable operator.

      --
      I am TheRaven on Soylent News
    3. Re:COBOL Jokes by pmarini · · Score: 1

      I can send a wholesome 4 Divisions of them to you... :-)

      --
      Can I put a spell on those who can't spell?
      Your wheels are loose and they're losing their grip, good you're there.
    4. Re:COBOL Jokes by plopez · · Score: 1

      COBOL script:

      http://c2.com/cgi/wiki?CobolScript

      OO-COBOL

      http://www.wiley.com/legacy/compbooks/catalog/12974-7.htm

      and of course the joke that Java is nothing more than OO-COBOL.

      --
      putting the 'B' in LGBTQ+
    5. Re:COBOL Jokes by creepynut · · Score: 1

      Then if I'm not mistaken, it would simply be ADD 1 TO COBOL.

    6. Re:COBOL Jokes by TheRaven64 · · Score: 1

      That is technically correct, but part of the point of the joke is that COBOL is overly verbose, and therefore it is usually told with the more verbose form.

      --
      I am TheRaven on Soylent News
  4. The CABAL invented it to take over the world! by line-bundle · · Score: 0, Offtopic

    I managed to finally figure out their world domination plan!

    It's definitely not the Bilderberger group otherwise it would have been called boldorborgor. Naah, too borgish.

  5. Why ... replace systems? by Anonymous Coward · · Score: 0

    "Why would companies replace systems that are working well?" Strategically, this is a less important question than "would companies know how to replace their current systems if they wanted to (or had to)"? If all of the COBOL-hosted I/O is well-formed and buzzword-compliant, then perhaps it wouldn't matter (at least as long as what runs it can be replaced).

  6. Cool by bigsexyjoe · · Score: 4, Interesting

    Does that mean my Java skill set is likely to keep me employed for the next 30 to 40 years?

    1. Re:Cool by Anonymous Coward · · Score: 0

      Well, C came out in 1972 and is still going strong, not sure how long Java will last...

    2. Re:Cool by larry+bagina · · Score: 1

      AT&T didn't try to keep control of C. Through the years, there have probably been hundreds (maybe thousands) of implementations and there are published standards (K&R, ANSI/ISO C89,ISO/IEC C99).

      Meanwhile, Sun has kept a tight fist on Java.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    3. Re:Cool by Anonymous Coward · · Score: 0

      No, Java will probably die soon.

    4. Re:Cool by pmarini · · Score: 1

      as in: Java has been Open Source for the last 2 years link

      --
      Can I put a spell on those who can't spell?
      Your wheels are loose and they're losing their grip, good you're there.
    5. Re:Cool by Ilgaz · · Score: 1

      Well Java stays for sure. You will just be blamed for not using whatever fashion is. That is exactly happening to COBOL developers which their code still runs unmodifed on some million dollar state of art Z/OS mainframe for 30-35 years. I know a very big bank's very high level admin, the stories he told me were amazing.

      People should look below at their shiny, fashion development tools running OS X and they will see UNIX, with exactly same principles as it was invented in 1970s. Thing calls its shells "tty", if one looks up where that comes from, he will be horrified.

      I bet as Java developer, you try to stay in JVM 1.4 compatibility if no fancy stuff needed and you have users asking you "Why not use Java 6 (or 7)? 1.4 is old". Of course same people (if they run Windows) will be advertising .NET to you too.

      I guess Sun knows the above about fashion and all that "java fx" etc stuff are designed to feed the fashion people :)

    6. Re:Cool by larry+bagina · · Score: 1

      where's the ISO standard?

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    7. Re:Cool by WillKemp · · Score: 1

      Thing calls its shells "tty", if one looks up where that comes from, he will be horrified.

      Anyone reading slashdot who doesn't already know where "tty" comes from should hand their geek card in at the door on the way out.

      Some of us have even used them!

    8. Re:Cool by ClosedSource · · Score: 1

      Not exactly. You have to wait 30 years until the Java herd is thinned-out.

    9. Re:Cool by Zerth · · Score: 1

      Some of us, despite not being old enough to use one, have them sitting in our garages.

    10. Re:Cool by WillKemp · · Score: 1

      You mean you've got one, but you're not allowed to use it cos you're too young? They've got funny laws where you live!

    11. Re:Cool by gbjbaanb · · Score: 0, Troll

      Does that mean my Java skill set is likely to keep me employed for the next 30 to 40 years?

      havn't you reskilled in C# yet? Java is not the same as COBOL, whereas those old COBOL apps will still be running 50 years (IBM'll see to it they do, so no-one needs to re-engineer their system), you are now on the downward slope to obsolescence in favour of this century's 'must-have' language fashion accessory.

      I think its pants too, but that's what the software vendors have foisted upon us.

    12. Re:Cool by Maxo-Texas · · Score: 1

      Our company is headed away from C# already.

      It has java but is replacing the HTML with a Flex front end. And there is talk of going ot Air after that.

      It makes no sense to me (Flex and Air look to be solid- but there is the issue of having a staff with 7 or 8 different skill sets to support an application).

      When bad things happen, the problem is a rope, wall, tree trunk- no one can see the real problem so a $$$ outside contractor has to be brought in. And sometimes even they struggle for weeks and it turns out to be some obscure console setting in one of the layers.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    13. Re:Cool by Zerth · · Score: 1

      So what phone code do you dial to get a TTY line back to the eighties?

    14. Re:Cool by WillKemp · · Score: 1

      You should be able to hook it up to the serial port on a Linux box or something, surely? But is it a teletype or a telex?

    15. Re:Cool by Zerth · · Score: 1

      Telex was a network used for telegraphy, wasn't it?

      I suppose you could call a teletype that operated over phone lines a "Telex", but it'd be more of a misnomer than calling any copier a "Xerox". This one was used as a remote terminal to a computer, not a direct dial messaging device.

    16. Re:Cool by WillKemp · · Score: 1

      My recollection of telex machines is that they had a dial and a built-in modem, i believe, which probably wasn't compatible with a modern dialup modem. They also used baudot code, rather than ascii. It might be more complicated to hook one of them up to a modern computer.

      If it was directly connected, though, and it communicates in ascii, it should be fairly trivial to connect it to a box with a serial port and running Linux/BSD/OSX - or even Windows with a terminal emulator (telix perhaps?). With Windows/DOS and telix, you wouldn't be able to do much other than type on the computer and get output on the tty, and vice versa. But with a *nix box, you could use it as a normal terminal.

      Although i haven't tried anything like that for about 10 years (and then it was with Wyse CRT terminals), i'm sure it wouldn't be hard to find a Linux distribution that would still have all the relevant bits in it, even if distros like Ubuntu don't (and they may have).

    17. Re:Cool by gbjbaanb · · Score: 1

      fair enough, perhaps 7 or 8 different skill sets is too much, but its always been the case where you use an appropriate tool for each job - you used write the data access in SQL, back end in C++, and the front ends in VB. Then apps moved to the web and you needed HTML/ASP skills instead. That's already 4 different skill sets (naturally, replace said languages with alternatives, there's still 4 in there).

      Its not too bad an approach, mainly because although you need 4 different skill sets, you get specialists in each tier. Ask a DBA how to write a fancy query that's fast and they'll tell you immediately. Ask them about C++ code and they generally havn't a clue, the same applies the other way round, the C++ guy will know how to write queries, but won't be nearly as good at them as the DB guys.

      As long as you get them working together, you end up with a very good application, easy to maintain and well written. If you go for the "one language only", then you end up with people who aren't masters of much at all. You see this in Microsoft shops where everyone is a C# developer, they only know how to write basic queries, or get an ORM to do it for them, the front ends tend to be better than the back-end, if not entirely mixed up together, and the apps end up poor, slow and unmaintainable.

    18. Re:Cool by ewanm89 · · Score: 1

      RTTY is still used by some of us. Then a phone code isn't needed.

  7. Define "working well" by Just+Some+Guy · · Score: 5, Interesting

    Before I start, I know all too well that you can write good or terrible code in any language. Still, most COBOL code I've seen is written to run well on hardware that is no longer relevant. A recent experience with an ex-coworker illustrated this pretty well for me:

    Said fellow, call him "Joe", had about 30 years of COBOL experience. We're a Python shop but hired him based on his general coding abilities. The problem was that he wrote COBOL in every language he used, and the results were disastrous. He was used to optimizing for tiny RAM machines or tight resource allocations and did things like querying the database with a rather complex join for each record out of quite a few million. I stepped in to look at his code because it took about 4 hours to run and was slamming the database most of the time. I re-wrote part of it with a bit of caching and got the run-time down to 8 seconds. (Choose to believe me or not, but I'd testify to those numbers in court.) I gave it back to him, he made some modifications, and tried it again - 3 hours this time. I asked him what on Earth he'd done to re-break the program, and he'd pretty much stripped out my caching. Why? Because it used almost half a gig of RAM! on his desktop and he thought that was abhorrent.

    Never mind that it was going to be run on a server with 8GB of RAM, and that I'd much rather use .5GB for 8 seconds than 1MB for 3 hours of intense activity.

    So Joe isn't every COBOL programmer, but you and I both know that he's a lot of them. But back to the direct point, how much of that 250GLOC was written with the assumption that it'd be running on 512KB machines or with glacial hard drives or where making the executable as tiny as possible was an extreme priority? Doing things like storing cache data in hash tables would've been obscenely expensive back in the day, so those old algorithms were designed to be hyper-efficient and dog slow. Whether you think that constitutes "working well" is up to you.

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:Define "working well" by thethibs · · Score: 5, Insightful

      Nice story, but it doesn't say anything about COBOL.

      I have a similar story about 30 programmers who spent two years writing java code and delivering nothing useful because the requirement called for two different architectures: one best served with a batch system, the other best served with a real-time system. What they need is COBOL and C, but what they know is java and struts. It's been another four years since I ran screaming from the building and they still haven't delivered anything useful.

      Inept programmers will screw things up in any language.

      --
      I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
    2. Re:Define "working well" by TheRaven64 · · Score: 5, Insightful

      You see that kind of thing from lots of programmers who only know one language well. This is why a good programmer always keeps up with modern architectures. I've seen C programmers who put things in globals rather than passing them on the stack, because that was faster before caching (now it breaks locality of reference, and moves something that was in a register or on the stack to an indirect reference where it needs extra loads and causes extra cache churn).

      I've seen programmers who grew up with Pascal carefully turning multiplies into sequences of adds and shifts. Great, except that something like the Athlon can do two multiplies in parallel, but only one shift at a time (because most code contains a lot more multiplies than shifts), stalling the pipeline.

      Another common issue is aggressively testing for potential special cases for optimising, ignoring the fact that branches are very expensive on most modern CPUs and the cost of the checks is now often greater than the saving from shortcutting the special cases.

      Java programmers are not immune to this, and often optimise based on old versions of the JVM. One favourite is to add finally everywhere, making the code very rigid, believing this makes it faster. In a modern JVM, finally is completely ignored; the VM already knows if a class is not subclassed and will do the same optimisations whether it is declared finally or not.

      There's a reason why the rules for optimisation are:

      1. Don't.
      2. Don't yet (experts only).

      If you write good algorithms, your compiler will usually produce reasonable code. If this isn't fast enough, then make sure you really understand how your VM and target CPU work, before you try optimising. The experts only part isn't a joke.

      --
      I am TheRaven on Soylent News
    3. Re:Define "working well" by Just+Some+Guy · · Score: 4, Interesting

      Nice story, but it doesn't say anything about COBOL.

      I think it says a lot about The COBOL Way, or at least the way things were done when those ancient codebases were being written.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Define "working well" by Anonymous Coward · · Score: 0

      That's not a story about COBOL, that's a story about old farts stuck in the past.

    5. Re:Define "working well" by Just+Some+Guy · · Score: 1

      That's not a story about COBOL, that's a story about old farts stuck in the past.

      Yes, much like the legacy systems we're discussing.

      --
      Dewey, what part of this looks like authorities should be involved?
    6. Re:Define "working well" by Brandybuck · · Score: 0

      The is a balance to be struck. I have seen the opposite practice too many times to count, usually involving some fresh young college grad thinks that RAM grows on trees. Or that CPUs are infinitely fast.

      Don't prematurely optimize, but at the same time, don't assume that resources are infinite. And when you do optimize, know what you're optimizing for. Because in many domains it is not speed.

      --
      Don't blame me, I didn't vote for either of them!
    7. Re:Define "working well" by chthon · · Score: 1

      The problem with Java is that it is too much hyped and sold to business types as the silver bullet. As Fred Brooks said more than 30 years ago : THERE IS NO SILVER BULLET (yelling intentional)! Is Java better than Cobol ? Probably not, as Java is also an imperative language. Do not fool yourself : object-oriented languages of the type SIMULA (and Java is not better than Simula, just the wheel reinvented) is nothing more than an imperative language with a small layer for dispatching on type, be it in the compilation or the run-time. However, Java does have a big marketing machine behind it and a whole lot of people who have stakes in it, and it is hyped in all kind of schools. Java is a success but for the wrong reasons. Compare it with any other type of language and it does not have any more advantages or deficiencies. It is just used much because it sounded cool 13 years ago.

    8. Re:Define "working well" by david.given · · Score: 3, Insightful

      One favourite is to add finally everywhere, making the code very rigid, believing this makes it faster.

      I think you mean final here, no? finally does something else.

      1. Don't.
      2. Don't yet (experts only).

      Very true.

      I'd also add the additional rule: You don't know it's slow until you've benchmarked it. All too often I have seen, and I should add that I've perpetrated this myself, people spend ages painstakingly optimising parts of a system that felt like they were cause speed problems, when actually they weren't.

      I once spent about two or three months designing and implementing a clever caching system for properties in a UI framework. It was subtle and complex, and I was very proud of it, and it was a total waste of time. We eventually threw it all away and stored the properties in an AVL tree. Yes, this involved looking up the properties in the inner loops of all the UI component redraw methods, but compared to the amount of work of touching every pixel on the screen, this was trivial. And it increased flexibility, reduced complexity and code size, and vastly improved maintainability.

    9. Re:Define "working well" by k.a.f. · · Score: 1

      Is Java better than Cobol ? Probably not, as Java is also an imperative language.

      Granted, there is hype, and programming is intrinsically difficult. That said, if you believe that language designers have learnt no lessons whatsoever within 40 years, you are delusional.

    10. Re:Define "working well" by Workaphobia · · Score: 1

      One favourite is to add finally everywhere, making the code very rigid, believing this makes it faster. In a modern JVM, finally is completely ignored; the VM already knows if a class is not subclassed and will do the same optimisations whether it is declared finally or not.

      Pretty sure you mean "final" - as far as I know, "finally" is only used in exception handling. Optimizations aside, "final" is still useful for making a statement about the intended terminal status of a class in the hierarchy.

      --
      Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
    11. Re:Define "working well" by Anonymous Coward · · Score: 0

      I'm future you stuck in my past (2009). Don't call me an old fart you insensitive clod!

    12. Re:Define "working well" by TheRaven64 · · Score: 4, Informative

      I think you mean final here, no? finally does something else.

      Yes, sorry, final.

      And it increased flexibility, reduced complexity and code size, and vastly improved maintainability.

      Reducing code size is important for three reasons:

      1. It means that a single human can understand more of the program at a time.
      2. It means that there are fewer places to look for bugs.
      3. It reduces instruction cache usage.

      This last part is something I should probably have mentioned in the last post. Instruction cache churn is one of the biggest performance killers on modern CPUs. It is particularly instructive to compare C++ templates and Objective-C. In C++, your compiler will generate a new set of functions for every template instantiation (well, not quite, but close enough). In Objective-C, it will only emit one copy of a method and then use run-time lookups to determine how things work. The Objective-C solution to the problem is slower. You can generate lots of microbenchmarks that prove that it's slower. Except, somehow, the C++ program ends up being slower overall, because the Objective-C program can keep most of the code in cache, while the C++ program is constantly thrashing the instruction cache. If you run a couple of programs concurrently, each one gets even less cache usage, so you end up spending even more time waiting for main memory.

      This is almost a corollary to your comment: it isn't slow until you test it in place. On a modern computer there are so many potential sources of performance issues that you can't always take a microbenchmark and generalise it. There are lots of cases where one option is slower when you do it once but faster when you do it a few million times, or faster when you do other seemingly-independent things. Microoptimisations are no longer a good way of ensuring that an entire program runs quickly.

      --
      I am TheRaven on Soylent News
    13. Re:Define "working well" by chthon · · Score: 1

      That is true, but I do not think they implemented those lessons in Java, even when people like Richard P. Gabriel and Guy L. Steele helped developing and implementing the language.

    14. Re:Define "working well" by that+this+is+not+und · · Score: 1

      It says something about your limited experience regarding this COBOL Way you speak of.

    15. Re:Define "working well" by Pig+Hogger · · Score: 1

      I've seen programmers who grew up with Pascal carefully turning multiplies into sequences of adds and shifts. Great, except that something like the Athlon can do two multiplies in parallel, but only one shift at a time (because most code contains a lot more multiplies than shifts), stalling the pipeline.

      This is silly. With the optimizing compilers nowadays, there is no more need to do such silly antics.

      And even back then, it was already silly because " premature optimization is the root of all evil ".

    16. Re:Define "working well" by mwvdlee · · Score: 1

      You might want to ask what Joe did inbetween that 1 year of COBOL and you guy hiring him 29 years later.

      I've been a IBM mainframe programmer (COBOL amongst other languages) and will tell you that I've never had to worry about memory much. Sometimes a job would require more than the standard 4GB allocated to it, but than you'd just set it to use 8GB, 16GB or whatever. Typical "irrelevant" mainframes (not just IBM's) measure total RAM in TB nowadays, not GB.

      Modern mainframe programmers are used to aggresively optimizing for performance and in most mainframe shops it's pretty normal to have DBA's that verify and help tune database access for performance.

      If you're going to insult the typical COBOL programmer, you could've done a lot better.

      It's always best to assume stupidity rather than malice, so I'm assuming you were just being stupid rather than making up some fantasy story to support a false statement.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    17. Re:Define "working well" by rbarreira · · Score: 1

      Why do you assume it was premature optimization?

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    18. Re:Define "working well" by Anonymous Coward · · Score: 0

      the final keywork also enable the JIT compiler to make some wicked optimisation since it has a special effect on the happen-before relation of the Java memory model

    19. Re:Define "working well" by thethibs · · Score: 1

      Language designers have learned a great deal in the last 40 years and most of it has found its way into modern versions of COBOL.

      --
      I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
    20. Re:Define "working well" by Just+Some+Guy · · Score: 1

      I think it comes down to what TheRaven64 said about algorithms and optimizations. My general approach is to write a program the way I think it should be, then make sure it works well in production. If it does, I'm happy and I move on. If there are resource problems, then (and only then) I fix them.

      As far as RAM growing on trees: it kinda does. We had a conversion process that was running slow at times, and the solution turned out to be spending $250 for 16GB of RAM from Newegg. I probably could have turned a simple, straightforward, well-tested program into something byzantine with its own file caching system and whatnot, but it was far cheaper just to spring for more memory. I don't advocate that in general, but it shouldn't be avoided when it's the logical solution.

      --
      Dewey, what part of this looks like authorities should be involved?
    21. Re:Define "working well" by BrokenHalo · · Score: 1

      Indeed, but then COBOL often used to be defined as "COmmon Batch Oriented Language". It is very, very good at that kind of processing. If we wanted anything interactive, well, that was what Fortran was for.

      In fact, I have worked at a couple of financial institutions where EVERYTHING was coded in Fortran (long after it was trendy), and that code was beautiful to behold.

    22. Re:Define "working well" by McSnarf · · Score: 3, Insightful
      Hmmm...

      This revived some slightly old memories.
      I remember a talk by the local FORTRAN compiler guru in the mid-70s.

      After talking about some intricacies of the IBM FORTRAN H compiler, he gave some examples of the compiler's abilities. Summarizing it with: Don't try too hard to optimize. Leave it to the compiler. It usually knows what it is doing.

      And that sums it up rather nicely.
      I'd rather work on code written by someone else who concentrated on writing readable code than on code written by someone trying to be clever.

      (Note to people born after around 1980: Yes, we too believed it would be cool to write cool, complex code, with the odd assembler routine thrown in for good measure (which, btw. didn't really save much time), badly documented and demonstrating our superiour coding abilities. Looking back, we were idiots who should have been fired. Don't repeat our mistakes, OK?)

    23. Re:Define "working well" by Just+Some+Guy · · Score: 2, Insightful

      I'm sure you're right for new code written today. I am equally sure that programmers 30 years ago did not have that luxury. Seriously, a 4GB standard allocation? An IBM 4341 from 1979 had up to 16MB of RAM. The article quotes people saying that code 30-50 years old still works well, but I would posit that code that old was probably written with assumptions that are no longer sensible today, and at the very least should be re-evaluated instead of being allowed to blindly accrete new layers.

      --
      Dewey, what part of this looks like authorities should be involved?
    24. Re:Define "working well" by Anonymous Coward · · Score: 1, Funny

      Only one problem....
      Your modifications may have sped up the operation on the desktop, but once running on the server *with other software* it could cause other problems.

      I bet you did not even consider the extra latency that your access pattern would cause when combined with rotational delay. If his code was well written then it could run faster on the server as the data will be accessible immediately (the loops timed so the drum would always be in the correct position for a read).

      With your 'modifications' you'd need another couple of Williams tubes as cache to avoid spending all your time waiting for drum sync.

    25. Re:Define "working well" by Viol8 · · Score: 1

      Umm , most CPUs will happily cache globals as well as stack based locals.

    26. Re:Define "working well" by mapkinase · · Score: 2, Insightful

      He might also have a COBOL-unrelated disease called "optimisis", when a programmer tries to write optimize code right from the beginning 100%.

      It is a valuable practice if you are using conventionally accepted optimization for common things, but it leads to disastrously unscalable code heavily based on logic trees.

      I work with a biologist who gives me decision trees and modifies them every day. If I would try to optimize the logic in those trees by rearranging logical expressions and making shortcuts, I would be able to apprehend zilch in my code in a week.

      --
      I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
    27. Re:Define "working well" by mcrbids · · Score: 3, Insightful

      There's a reason why the rules for optimisation are:

            1. Don't.
            2. Don't yet (experts only).

      If you write good algorithms, your compiler will usually produce reasonable code. If this isn't fast enough, then make sure you really understand how your VM and target CPU work, before you try optimising. The experts only part isn't a joke.

      Except that there's a clear and definite time to optimise - when performance is in the crapper!

      Just 2 days ago, I heard complaints about a well-written (but very old!) report that was still taking as long as 5 minutes to run when accessing a large data set. Taking a look, I found that it was using an old template system for output using regex, and for a complex report, the regex was killing the server. So I replaced it with a different template engine using simple string replacement, and reduced > 5 minutes reporting time to about 15 seconds. Further looking there found a simple 3-element index in the database cut the time down to 2 seconds.

      Now the report comes up INSTANTLY in most cases.

      Optimising is necessary - but only AFTER the fact!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    28. Re:Define "working well" by __aawkdb2598 · · Score: 1

      This is true, but don't even get me started on Objective-C. It has its good points, some of which I even miss when programming in other languages—but it's on the whole a mediocre language propped up by some amazing libraries.
      I think this guy said it best.

      <rant>
      I mean, requiring the programmer to explicitly allocate and de-allocate each member of a class? Explicit allocation and destruction of your super class? It can FAIL and you have to check that in the constructor of every class you write?
      </rant>

      No thanks.

    29. Re:Define "working well" by Unoti · · Score: 3, Interesting

      You don't know it's slow until you've benchmarked it.

      This is similar to a mantra of continuous improvement: "In God we trust. All others must bring numbers." The point of that saying is that if you want to make a change to the process, you must support your assertions with real metrics.

    30. Re:Define "working well" by linuxrocks123 · · Score: 3, Interesting

      > I've seen programmers who grew up with Pascal carefully turning multiplies into sequences of adds and shifts. Great, except that something like the Athlon can do two multiplies in parallel, but only one shift at a time (because most code contains a lot more multiplies than shifts), stalling the pipeline.

      That strength reduction of multiplication to bit shifting might not be valuable anymore for modern CPUs surprised me, so I looked up the instruction latency and throughput for the Core 2. To see for yourself, download http://download.intel.com/design/processor/manuals/248966.pdf and look at Appendix C.

      The timings show that integer multiply, IMUL, is still quite a bit slower from the bit shift instructions (SHL/SHR). So, turning multiplies into adds and shifts is still a Good Thing.

      However, these days, a compiler can do this type of thing for you much of the time, so doing the transformation by hand is usually not necessary. Also, since optimizing the source code in this way does take time and decreases source readability, the only cases where people should really still be doing manual strength reduction are in performance-critical code where the compiler, for whatever reason, is missing the optimization opportunity.

      ---linuxrocks123

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    31. Re:Define "working well" by noidentity · · Score: 1

      I thought final was put into code to enforce design decisions, not optimize speed. It allows you to ensure that nothing further overrides a method.

    32. Re:Define "working well" by Provocateur · · Score: 1

      Wait, you didn't find him in a cave out in the wilderness, did you? He didn't speak of some sort of priesthood or cult that he once belonged to, did he?

      --
      WARNING: Smartphones have side effects--most of them undocumented.
    33. Re:Define "working well" by weicco · · Score: 1

      and he'd pretty much stripped out my caching. Why? Because it used almost half a gig of RAM!

      This goes off-topic but I had to write comment to this because I've stumbled couple of times in this kind of situation :)

      My day job is to write business applications using C# / ASP.NET. I'm also written some web stuff with PHP. So I'm pretty much used to use the session to store ... well, session data. This session data includes business transactions and business objects (I like to use ORM a lot).

      Now for some reason I was told some time ago that I shouldn't do that. I was astounded! Why not, I go and ask. Because it consumes memory, was the answer. So now I'm either writing everything to view state (hidden input fields in web form, which makes page loads HUGE) or I'm constantly going all the way back to the database server 1 - 20 times on every page load. For heaven's sake our web servers has gigabytes of memory and couple of hundreds of kilobytes is too much?!

      --
      You don't know what you don't know.
    34. Re:Define "working well" by Anonymous Coward · · Score: 0

      Why? Because it used almost half a gig of RAM! on his desktop and he thought that was abhorrent.

      Interesting. I develop embedded software where you sometimes have only a few kilobytes of RAM. So, COBOL experience might actually be quite relevant in this context...

    35. Re:Define "working well" by Leynos · · Score: 1

      Just out of curiosity, why doesn't the Core2 do this optimization itself?

      --
      "Did you exchange a walk on part in the war for a lead role in a cage?"
    36. Re:Define "working well" by JAlexoi · · Score: 1

      Java programmers are not immune to this, and often optimise based on old versions of the JVM. One favourite is to add finally everywhere, making the code very rigid, believing this makes it faster. In a modern JVM, finally is completely ignored; the VM already knows if a class is not subclassed and will do the same optimisations whether it is declared finally or not.

      First of all, it's not finally, the keyword is final.
      Next, final keyword is used by programmers to give hints to the compiler what has to be writable and what can be changed. This kills a lot of bugs early on. Just like the @Override annotation. You clearly don't know what you are talking about.

    37. Re:Define "working well" by TheRaven64 · · Score: 1

      The timings show that integer multiply, IMUL, is still quite a bit slower from the bit shift instructions (SHL/SHR). So, turning multiplies into adds and shifts is still a Good Thing.

      You appear to be right if you are just going by the sum of the latency times for the add and the shift (for short add / multiply sequences, anyway), however you are not taking into account the time for the increased code size, which will use more I-cache space, nor are you factoring . The throughput numbers for the C2D seem to imply that you can overlap some of the results to do some of the sub-expression.

      On the off-chance that you might be right, I just implemented a short program that loops 1000000000, multiplying a variable by 12345 each time. Using a single multiplication, the program takes 3.709s of CPU time. Using a sequence of shifts and adds, it takes 21.293s. Out of interest I tried doing just a single shift-add (a multiply by 12345 is equivalent to ten shift-add pairs). The result from this was 7.875s. In all cases, it seems, using the shift unit is much slower. A single add, or a single shift, is marginally slower than the multiplication (3.524s / 3.523s), but even then the difference is so small it's not worth worrying about.

      However, these days, a compiler can do this type of thing for you much of the time, so doing the transformation by hand is usually not necessary

      GCC used to do this transform. It doesn't any longer, because it produces slower and bigger code. No x86 chip produced in about ten years has been faster at shift-add sequences than constant multiplies (obvious, when you think about it, since the operations performed are almost the same but the shift-add sequences have more decoding and memory overhead). The last AMD chip for it to be faster was the K6-3. I believe for Intel it was either the Pentium 2 or Pentium 3.

      And this is why I love compiler hacking - it's the only time when this kind of optimisation is not only allowed, it's actually encouraged (even if, in this specific case, it is not desired).

      --
      I am TheRaven on Soylent News
    38. Re:Define "working well" by TheRaven64 · · Score: 3, Informative

      You are missing the point. When you pass something as a function parameter, it is either in a register, or in a bit of memory that is guaranteed to be in the cache and will hopefully (e.g. on modern x86 chips) be aliased with some hidden registers. The cost of accessing it is zero. If you put the data in a global, then you are accessing it via two more levels of indirection - read up on how your linker works - and so you are requiring at least one, probably two, more cache lines to be used and an extra set of load and store instructions for something that could otherwise stay in a register.

      --
      I am TheRaven on Soylent News
    39. Re:Define "working well" by TheRaven64 · · Score: 1
      As a compiler hacker, I'd add a corollary to this:

      I'd rather work on code written by someone else who concentrated on writing readable code than on code written by someone trying to be clever.

      If you really write code that is easy to read, it is also likely to be easy for the compiler to work out what you mean. The more high-level semantic information you can provide to your compiler, the better. Things like 'const' in C++ and 'final' in Java[1] can be useful for catching errors, but they do not tell the compiler anything that it can't infer itself. Writing a clear algorithm, however, means that the compiler can often spot that it's a certain category of algorithm and apply optimisations that are applicable to an entire family.

      One thing I didn't mention was the iterative versus recursive debate. One recent example I came across, someone had rewritten some recursive code as a loop because 'recursion is slow'. The problem with this? The algorithm involved a stack, and so the iterative version was rolling its own, while the recursive version simply used the hardware stack, which was very fast (aliased with some internal CPU registers, so things that were formerly register-register operations became register-memory operations in the iterative version). The best bit of this is that, with tail-recursion support in the compiler recursive algorithms now generate almost the same code as iterative ones anyway.

      [1] I should have clarified that I was only talking about this in relation to methods and classes, not to data; it is still useful for declaring constants because these can then be propagated at compile time.

      --
      I am TheRaven on Soylent News
    40. Re:Define "working well" by renoX · · Score: 1

      >the requirement called for two different architectures: one best served with a batch system, the other best served with a real-time system. What they need is COBOL and C

      I'm curious: what do you think is easy to do in COBOL but not in Java?

      As for realtime, I know that some vendors such as IBM sell Java implementation with GC which have realtime property, so it may be possible to do realtime in Java..

      [ No I'm not a Java supporter, I think Scala or D are much more interesting if still immature ]

    41. Re:Define "working well" by orkysoft · · Score: 1

      The problem is that modern CPUs are superscalar, and go for parallel execution rather than fast execution. I.e. an instructions take more cycles to complete, but it can execute many of them in parallel. So if you need the result of operation A as input to operation B, they can't be executed in parallel, so the whole operation takes longer.

      --

      I suffer from attention surplus disorder.
    42. Re:Define "working well" by thethibs · · Score: 1

      I'm curious: what do you think is easy to do in COBOL but not in Java?

      Wrong question. The right question is what does COBOL do easily that java does not. The answer is large-scale batch transaction processing with complex data structures and huge datasets.

      There's also a good argument to be made that one answer to your actual question is "write code that's provably correct by construction".

      --
      I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
    43. Re:Define "working well" by linuxrocks123 · · Score: 1

      Well, that's not what I meant. If doing shift-add sequences were /always/ better, there would be no reason for the imul instruction to exist at all. What I am suggesting is using a shift instruction instead of a multiply in the easy cases, like when you're multiplying by a power of 2.

      I did my own test on my laptop just now for multiplying by 2, and I couldn't even get gcc to output a multiply instruction for that even when I passed it -O0. After editing the assembly and recompiling, I tried it, and ... the multiply was still faster. I figured this was probably because I was setting the destination to one directly afterwards, and register renaming was figuring this out and doing the loop in parallel, and there were probably more multipliers than shifters. So, I took out the redefinition, and the shift was faster afterwards, as I'd expected. It was about 400ms for multiply and 350ms for shifting, for 10 million iterations.

      Modern architectures are really complex, but replacing power of 2 multiplies with bit shifts is still usually a win on them. You might have a point for pathological cases where you have the multiplier free but the shifter not free, but it's still a good general rule, and compilers still do it.

      ---linuxrocks123

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    44. Re:Define "working well" by syousef · · Score: 1

      You're not making a good argument against COBOL here. You're making an excellent argument against programming as a religion. When asked why and he replied that using lots of RAM is abhorrent Joe was showing an emotional response to what should have been a rational logical problem. Joe's not alone. Hell, Einstein threw away his last productive decades because he "believed" that "God does not play dice" and therefore refused to keep current with science that he didn't like.

      If Joe had instead analysed the problem he'd have been able to understand why a simple time vs space (pun intended) tradeoff needed to be made.

      --
      These posts express my own personal views, not those of my employer
    45. Re:Define "working well" by Just+Some+Guy · · Score: 1

      That was actually one of the better puns I've read here. Kudos!

      --
      Dewey, what part of this looks like authorities should be involved?
    46. Re:Define "working well" by syousef · · Score: 1

      Thanks...

      --
      These posts express my own personal views, not those of my employer
    47. Re:Define "working well" by Cro+Magnon · · Score: 1

      Oddly enough, one of my cow-orkers told me about an old programmer who started with Fortran. His COBOL variables were no more than 6 letters long and his integers started with letters I-N.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    48. Re:Define "working well" by mwvdlee · · Score: 1

      We're talking about a claim that somebody RECENTLY hired to do python code was still used to working with limits which were gone 20 years ago, which is just a bullshit claim.

      Obviously code written for older systems will adhere to the limits of those systems, but the GP was talking about a recent mainframe COBOL programmer. I'm assuming he was not working on a decades old mainframe which is outperformed by a mobile phone.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    49. Re:Define "working well" by gnu-user · · Score: 1

      "Joe" seems guilty of the same disease many programmers are, premature optimization. This is a perennial issue with coders, not something confined to greybeards.

      I've seen ASP developers worry about the cost of function calls, and use that as a rationale for write only, unreusable and barely maintainable code. I've seen brand new VB coders worry about "large" arrays. I've seen perl coders tell me not to make function calls as it "slows down the code". These are all personal examples, fill in your own as appropriate.

      "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."

      Donald Knuth

      It's as applicable today as it ever was.

    50. Re:Define "working well" by Anonymous Coward · · Score: 0

      Caching does not fix bad schema design....maybe the table this guy was trying to access wasn't designed correctly in the first place.

  8. 2 jokes, 1 question by Futurepower(R) · · Score: 1

    COBOL: Completely Obsolete Business Oriented Language

    COBOL in the future

    Why not translate? COBOL to C++ translators.

    1. Re:2 jokes, 1 question by tcopeland · · Score: 1

      > Why not translate? COBOL to C++ translators [google.com]

      There's also a COBOL grammar for JavaCC that could be used for that very purpose...

    2. Re:2 jokes, 1 question by berend+botje · · Score: 4, Insightful

      When you have working code in COBOL, really battle-hardened proven-beyond-doubt COBOL code, would you really trust a mechanical translation into another language?

      I wouldn't, no way! And there is no way to completely test the new code either, as the specs never existed or at least are missing and/or outdated.

      I'd rather keep the working COBOL code. Even if that means I have to deal with grumpy old geezers to maintain said code.

    3. Re:2 jokes, 1 question by stoneguy · · Score: 1

      I'd rather keep the working COBOL code. Even if that means I have to deal with grumpy old geezers to maintain said code.

      Yeah, but what about the time when you can only find the grumpy old geezers in Forest Lawn?

    4. Re:2 jokes, 1 question by phantomcircuit · · Score: 2, Interesting

      COBOL -> ASM -> C would almost definitely be a more accurate translation of the COBOL code.

      Just a though

    5. Re:2 jokes, 1 question by Just+Some+Guy · · Score: 1

      When you have working code in COBOL, really battle-hardened proven-beyond-doubt COBOL code, would you really trust a mechanical translation into another language?

      I am 99.9% sure that no CPU runs COBOL directly in microcode (although I'm willing to accept that IBM has some weird animal that does exactly that). In other words, that unimaginably important code is already translated into another language - namely machine language - before it's executed. Are you certain that no one else could possibly get it right?

      --
      Dewey, what part of this looks like authorities should be involved?
    6. Re:2 jokes, 1 question by SnowZero · · Score: 1

      would you really trust a mechanical translation into another language?

      Unless you're writing machine code directly, you are already trusting the mechanical translation done by your compiler. Often there's more than one, through several intermediate representations. Some high level languages can compile to C, in order to be portable to all the platforms with C compilers.

      So yeah, I would trust a translator; I'd just test it a lot first. There should be large parts of the code where you know how it should behave, and can run regression tests. If you have something really hairy in some hard-to-test code, try to break out parts of it and make some tests for the translator, and go over its output with human reviewers too.

      The thing that's nice about starting this way is that it gives you an incremental way to rewrite a system when you want to add new functionality. Of course, it can go to hell too, since I've heard of codebases that have been translated multiple times, with the original source code lost, and now it was completely unmaintainable. That doesn't mean translators don't have a place though, just that like everything else they aren't a silver bullet.

    7. Re:2 jokes, 1 question by ralphdaugherty · · Score: 1

      When you have working code in COBOL, really battle-hardened proven-beyond-doubt COBOL code, would you really trust a mechanical translation into another language?

      I am 99.9% sure that no CPU runs COBOL directly in microcode (although I'm willing to accept that IBM has some weird animal that does exactly that). In other words, that unimaginably important code is already translated into another language - namely machine language - before it's executed. Are you certain that no one else could possibly get it right?

            You miss multiple points here. For completeness sakes for the thread, I'll elaborate.

            Re: conversion of a battle hardened system to another language. There are many things that are not equivalent in languages. Not only is a conversion to get identical results dicey, but the testing by programmers and users to replace a proven production system with a replacement production system in another language is something so extensive that only a massive effort will accomplish it.

            I have seen many of these efforts in the news, and they were newsworthy because when attempting to replace IBM systems these massive efforts ended up as massive failures.

            Re: running COBOL directly. You are right, COBOL and RPG and the other languages used for mainframe and midrange systems are compiled as with any other language. However, on the IBM midrange, which goes to mainframe size, the compiler output is byte code which is CPU independent, similar to Java byte code but preceeding it by many years.

            This has the important distinction of providing for an increase from 48 bits to 64 bits and switching from CISC to RISC CPU's, to name a couple of changes through the years, without requiring a recompile of any software.

            Re: can anyone else possibly get it right. COBOL and RPG are based on decimal precision, in other words, business processing. That's really what our systems are all about, so we get it right.

            Also, very importantly, we have native relational database indexed I/O in addition to SQL, and again is all about business database processing.

            We also have Java on our mainframes and midranges, and PHP on our midranges, and for that matter all Unix tools/languages, as well as being POSIX compliant, and concurrent Linux partitions, so there isn't anything we don't do and do better than anyone else when it comes to business processing.

        rd

           

    8. Re:2 jokes, 1 question by mpcooke3 · · Score: 1

      Would you really trust a mechanical translation into another language?

      Also even if it does get translated correctly no one will want to work on it because it will still look like COBOL code just written with the syntax of another language.

    9. Re:2 jokes, 1 question by IntlHarvester · · Score: 1

      I wouldn't, no way! And there is no way to completely test the new code either, as the specs never existed or at least are missing and/or outdated.

      "We don't know why it works this way, but that's the way we've always done it here!"

      Which is usually the reason it gets replaced, no matter how battle-hardened it is.

      --
      Business. Numbers. Money. People. Computer World.
    10. Re:2 jokes, 1 question by Anonymous Coward · · Score: 0

      You are basically also accepting zero disaster recovery. Mainframes fail too, you know.
      That's just retarded for a supposedly "mission critical" system.

      The way to replace it is to go back to the functionality of the entire system. Many times you'd discover 90% of the code in the system isn't used anymore. You just need to replace the 10% (and the users who wont change their ways). Probably with a 100 line perl script written in your spare time :)

    11. Re:2 jokes, 1 question by calidoscope · · Score: 1
      This reminds of a thread on comp.arch this last week discussing COBOL and decimal arithmetic. One of the more interesting assertions was from Terje Mathisen (a very bright fellow), who claimed that PERL could do just about anything that COBOL could do. He's probably right, though he neglected that PERL looks like line noise (or a sendmail .cf file), while COBOL was designed to be read by humans.

      Some of the old codgers did call him on that.

      --
      A Shadeless room is a brighter room.
    12. Re:2 jokes, 1 question by berend+botje · · Score: 1

      In my experience missing documentation on mission-critical systems is the number one reason it gets left well alone. Nobody wants to be the guy that broke the system, taking the whole company down with it.

  9. Perl, it's the new COBOL by Anonymous Coward · · Score: 2, Insightful

    COBOL's still around, will perl last as long?

    For instance there is now OO COBOL but the only people that use it are COBOL programmers who are stuck, perhaps because of their company's dictates, perhaps by choice, with COBOL. In the same way perl may be heading towards irrelevance wrt "mainstream" language. I've written commercial perl in the past, it was a pain then and it's still a pain now. The thing is that now there are alternative languages in the same space (python, ruby etc., php for web side) that do the "perl thing" better than perl.

    Perl was great, it introduced many people to programming, just like COBOL did. But now it's time to move on. To move on to languages that learnt from perl, that improved on it, that don't have to drag around a syntax and culture that values neat tricks and trying to guess what the programmer really meant over providing the needed building blocks and letting you build code that does what you say, not what it thinks it heard you say. Or even, dare I say it, to move on to languages outside the perl family for some programming and choose the right tool for the job for a change.

    I'd prefer to think of this as provocative rather than a flame, there is a difference you know.

    1. Re:Perl, it's the new COBOL by Bill,+Shooter+of+Bul · · Score: 1

      I agree on you assessment of COBOL, but lay of perl. Its cool like Jazz. It doesn't go out of style. COBOL is more like the US Mail service. Yeah, it works and is dependable and can't be replaced for everything, but generally time has passed it by. There are better ways to send information than mail. So maybe you don't get rich and famous by playing Jazz or coding perl, but there is a certain timelessness poetry to it.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    2. Re:Perl, it's the new COBOL by coryking · · Score: 2, Insightful

      You know, I guess it depends. I wouldn't port an application from Perl to something else. But I'm not sure I'd base a new project on Perl either.

      There are some things about perl that could be fixed that might change my mind:

      1) Dump Perldoc and liberally rip from javadoc and XML comments. I know both of these got their start from perldoc, but perldoc needs to catch up.
      2) Make sure the IDE actually uses said docs. Once your IDE's intellesense sucks up your comments and uses them while you are typing in a method, you are rewarded for documenting your stuff. Nothing like positive feedback to encourage good habits.
      3) Finish EPIC. Perl needs IDE support. Syntax coloring and auto-indentation does not make for an IDE.
      4) Get rid of this my $blah_param = shift; crap and start making function declarations that work like everybody else: sub myDopeFunction($blah_param){}. This coupled with perldoc's suckage lead to hard to maintain code
      5) Give a couple million to the Template::Toolkit guys. They rock.
      6) Mystery option.

    3. Re:Perl, it's the new COBOL by Pig+Hogger · · Score: 1

      For instance there is now OO COBOL but the only people that use it are COBOL programmers who are stuck, perhaps because of their company's dictates, perhaps by choice, with COBOL

      Ha! After years of working in Pascal, I was assigned to work on the IBM mainframe, in COBOL. So I would label my procedure as:

      PROC-000
      PROC-001 yadda
      yadda
      PROC-002 yadda
      ...
      PROC-014 yadda
      PROC-999

      and call it as PERFORM PROC-000 through PROC-099.

      The old COBOL heads could not figure why I was doing that...

    4. Re:Perl, it's the new COBOL by iluvcapra · · Score: 1

      It sounds like you want Ruby. \smartass

      --
      Don't blame me, I voted for Baltar.
  10. DOH! by Daswolfen · · Score: 3, Funny

    That's what I get get for learning FORTRAN in college rather than COBOL...

    at least my mad HTML skills..

    oh wait... all websites are in FLASH or PHP now...

    DOH!

    Ok.. im going back to watch a movie on my Betamax or HD-DVD player....

    --
    Don't rush me, Sonny. You rush a miracle man, you get rotten miracles.
    1. Re:DOH! by Brandybuck · · Score: 3, Interesting

      Believe it or not, there is a LOT of Fortran out there. I've run across quite a bit of it in the past few years. A lot of scientific, engineering and other number crunching apps were written in Fortran, and there's no reason to rewrite them just because they're thirty years old. The apps might have brand new GUI and visualization front ends, but deep in the heart there is some Fortran code encapsulating the domain specific math.

      --
      Don't blame me, I didn't vote for either of them!
    2. Re:DOH! by that+this+is+not+und · · Score: 1

      Meh. The only place you'll run FORTRAN is on Super Computers at the Jet Propulsion Laboratory.

      How is that relevant to grandparent's job writing hot new web apps at Pizza Hut?

    3. Re:DOH! by nusuth · · Score: 1
      A lot of scientific, engineering and other number crunching apps were written in Fortran, and there's no reason to rewrite them just because they're thirty years old. The apps might have brand new GUI and visualization front ends, but deep in the heart there is some Fortran code encapsulating the domain specific math.

      Actually, what is keeping that code alive is not that it has working domain specific code in it. The real users of fortran are people who wait days to months for a calculation to finish. They demand speed and correctness above all and the ancient language actually delivers. Fortran's best compilers are and have always been the best compilers for math code. If another language allowed to write significantly faster code all fortran libraries will be converted overnight.

      --

      Gentlemen, you can't fight in here, this is the War Room!

    4. Re:DOH! by mrphoton · · Score: 2, Interesting

      That is so not true. Fortran is a very good very fast number crunching language. The inbuilt matrix functions and complex number handling is way better and smoother than C or C++. Plus the GNU compile collection now supports it. When you need to do lots of number crunching on a super computer fortran is not a bad choice at all.

    5. Re:DOH! by Brandybuck · · Score: 1

      Not just JPL. I've seen it at two National Labs, NASA, and various modeling/visualization companies.

      --
      Don't blame me, I didn't vote for either of them!
  11. Comment removed by account_deleted · · Score: 2, Funny

    Comment removed based on user account deletion

  12. Adequate Languages by j.+andrew+rogers · · Score: 3, Insightful

    COBOL is a perfect example of an "adequate" language, like most programming languages that are in common use. Adequate languages linger forever if there is a tool chain to support them because there is little in the way of economic rationale for replacing them.

    The reason adequate languages proliferate over the long term is that only inadequate languages get replaced, and "ideal" languages become hopelessly politicized by purists and ideologues, leaving the adequate, practical, boring languages as the sound business choice. It is a real-world example of perfect being the enemy of good enough, but for economic reasons good enough always wins.

    1. Re:Adequate Languages by isdnip · · Score: 1, Flamebait

      Good point. COBOL is adequate.

      It's just not k3w1. Script kiddi3z don't use it. Hax04 d00dz don't like it. Boring grownups with real work to do use it, and they do real work with it. How uninteresting!

      What COBOL won't do well or at all -- write Linux device drivers, write 3D game engines, or overflow buffers and take control of somebody else's system in order to send spam. What it will do -- process lots of data, paying attention to every penny.

      C, on the other hand, is a miserable language for almost everything except system-level (kernel, driver) hacking. Its widespread use for many other functions is a stupid fashion.

    2. Re:Adequate Languages by TheRaven64 · · Score: 1

      C isn't a great language for low-level programming either. One of the first languages I learned was PL/M. I forgot most of it, but recently revisited it. In comparison to PL/M, C looks like a toy language. PL/M has, for example, much better support for NUMA architectures (this in a language that Intel was pushing for the 8086). Variants of ALGOL were popular for low-level code for a little while, and supported things like concurrency / reentrant code a lot better than C does.

      --
      I am TheRaven on Soylent News
    3. Re:Adequate Languages by Brandybuck · · Score: 1

      Cluestick: That hopelessly politicized language is NOT ideal, despite what the purists and ideologues say.

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Adequate Languages by BrokenHalo · · Score: 1

      One of the first languages I learned was PL/M.

      Now there's a blast from the past. I never used PL/M, but I did use PL/1 back when the Earth was newly cooled and dinosaurs ruled the planet.

      They used to say that without PL/1, Apollo would never have got to the moon.

    5. Re:Adequate Languages by mattwarden · · Score: 1

      Interesting point. But have you considered that long-staying languages discourage hardware changes, too? How many companies or governments do you know that are shelling out millions to ditch their mainframe system in favor of server clusters, and needing to rewrite all their software in the process? There's something to be said about software that turns over at the same rate as hardware evolves.

    6. Re:Adequate Languages by Anonymous Coward · · Score: 0

      Variants of ALGOL were popular for low-level code for a little while, and supported things like concurrency / reentrant code a lot better than C does.

      How low level? Could Thompson have used it to write the UNIX kernel (I understand he had considered FORTRAN)?

      Posting anonymously because of previous moderation.

    7. Re:Adequate Languages by TheRaven64 · · Score: 1

      Low level as in several operating systems were written in them. The B5000 was the first system, I believe, to use Algol from top to bottom, and included a large number of features that are now starting to be added to 'modern' operating systems and VMs, back in 1961. The system did not come with an assembler (which was very uncommon for the day) and was programmed exclusively in higher-level languages, with the operating system being written in a variant of Algol. Not sure if it could have been used to write UNIX; it mainly ran on real computers, not the toys the UNIX developers were using back then.

      --
      I am TheRaven on Soylent News
    8. Re:Adequate Languages by petermgreen · · Score: 1

      C, on the other hand, is a miserable language for almost everything except system-level (kernel, driver) hacking. Its widespread use for many other functions is a stupid fashion.
      It is annoying that such a crappy language became the de-facto standard. Still unfortunately "network effects" make it the most sensible choice for many applications.

      1: C is probablly the most portable language arround. There are C compilers for everything from tiny pics up to the biggest mainframes. On some platforms it's the only high level language with even a half-decent compiler.
      2: there are lots of libraries designed for use from C. It's certainly possible to use them from other languages but it can be a PITA and may well require either rewriting a load of macros or creating your own C shim layer. Then you get a new version of the library with a compatible C API but an incompatible ABI and have to re-do your custom imports to match (or worse not realise they need changing and end up with strange bugs)
      3: On linux at least the standard libraries for other langauges (particularlly C++) have traditionally had far worse ABI breakage issues than the C standard library.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
  13. COBOL, not so bad by Ancient_Hacker · · Score: 3, Insightful

    As just one data point, a certain place replaced a COBOL app that ran with millisecond response time just fine on a 2 megabyte 1 MIPS mainframe, replaced it with a spankin' fresh Java app that ran about 2000 times slower on an 8 gig 16-CPU, 800MHz very expensive water-cooled mainframe.

    Now it could have been due to having a bunch of neophyte Java weenies doing the coding, but I'm just sayin', when there's three orders of speed and 3.5 orders of RAM, there may be something significant in the implementation language.

    1. Re:COBOL, not so bad by Bill,+Shooter+of+Bul · · Score: 1

      Yeah, its the coders, not the language. Java is one of the easiest languages to screw up the implementation while still having it "work". Java is flexible enough for bad coders to make a noose and hang themselves.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    2. Re:COBOL, not so bad by glitch23 · · Score: 0, Troll

      Java is going to be inherently slower on the same hardware due to the interpeting of the code that it must do. Obviously good coding helps too but there is going to be some inherent latency because of the fact the Java code isn't compiled to machine code.

      --
      this nation, under God, shall have a new birth of freedom. -- Lincoln, Gettysburg Address
    3. Re:COBOL, not so bad by chthon · · Score: 1

      Not different than C or C++ then.

    4. Re:COBOL, not so bad by Anonymous Coward · · Score: 0

      Ever hear of JIT compilers? which due to run-time knowledge of the platform and execution patterns might actually compile the code into a more efficient form than a normal compiler which doesnt have that information? Every JVM has a JIT nowadays. And there are some (GCJ atleast) compilers to compile java straight into native code.

    5. Re:COBOL, not so bad by david.given · · Score: 1

      Obviously good coding helps too but there is going to be some inherent latency because of the fact the Java code isn't compiled to machine code.

      Actually, these days it is, especially on enterprise systems. The latest Java JITs are very, very good, and will emit machine code that rivals C and C++ for most tasks.

      The biggest performance hit between Java and C is that Java programming styles involve more dynamic memory allocation than C does --- it's very common to allocate objects that will only be used a few times and then discarded. C doesn't, of course, but at the expense of significantly more complex code.

      I have a pet project, Clue, which is a C compiler that will compile mostly standard C89 code into source code for dynamic languages like Javascript, Lua, Java, Perl5, etc. The code it produces is crap, but it's still an interesting toy. One of the backend targets is Java. When I do the benchmarks and compare my program, compiled from C into Java and then run on a decent JIT, I see that the Java version runs at 40% of the speed of a native version compiled with gcc.

      Given the huge amount of overhead and the fact that Clue itself produces awful code --- Java doesn't support goto, so clue has to emulate them with a while loop around a switch statement! --- that is scarily good.

      One day I want to replace Clue's compiler front end (currently based on Sparse) with a better one that generates Java bytecode directly and see what that does to the benchmarks.

    6. Re:COBOL, not so bad by Pig+Hogger · · Score: 1

      As just one data point, a certain place replaced a COBOL app that ran with millisecond response time just fine on a 2 megabyte 1 MIPS mainframe, replaced it with a spankin' fresh Java app that ran about 2000 times slower on an 8 gig 16-CPU, 800MHz very expensive water-cooled mainframe.

      Don't forget that IBM assembler has machine-level functions that map directly to COBOL statements; that is, the COBOL is run directly on the big iron.

      Contrast this to your compiled pseudo-code Java thingy; no wonder it ran 2000 times slower!!!

    7. Re:COBOL, not so bad by Anonymous Coward · · Score: 0

      However, our Constitution does agree. And the first three of your examples are unfortunate blatant violations of the Constitution, and should be ignored until they are overturned.

      Our Declaration of Independence also doesn't agree with Obama. "We are endowed by our Creator with certain inalienable rights..." The 1st amendment says that Congress shall make no law respecting an establishment of religion. You fail to distinguish between Congress making a law supporting the people's religion with Congress making a law that establishes a gov't religion that you must become a member of or risk violating said law. The currency and national motto do not force you to join any religion; they support the people's majority religion. Remember, the 1st amendment also states "or prohibiting the free exercise thereof". If you aren't a member of that religion then so be it. There is no law that says you have to be a member of any religion therefore there is no religion being established nor is one being respected within the gov't. The gov't has no religion but that doesn't mean the people can't and for the gov't to help them peacefully practice it as long as the gov't doesn't punish those who are not members of a religion. You can just as easily be atheist or Muslim or Christian in this country. It doesn't change anything for you one way or another whether there is In God We Trust on the currency; you can be as much of an atheist and no one else cares unless you take action to diminish their right to exercise their religion by having those words removed which are currently in public view. The wikipedia page for the 1st amendment says that it is meant to prevent respecting no religion over religion just as much as it is meant to prevent respecting religion over no religion. Taking away the ability for the people to see their religion in public is respecting no religion over religion and therefore a violation of the 1st amendment. So be careful what you wish for.

      The laws we have in this country in many cases do mirror the 10 Commandments but they are pretty much common sense and are shared with other religions such as Islam. Don't kill and don't steal as in treat people the way you want to be treated. If any religion is being respected it is Islam with respect to Shari' ah law where in certain states a Muslim husband kills his wife under the guise of Shari' ah law and the US courts so "oh that's okay, sorry to interfere". I bet you don't complain about that do you? If laws related to murder and stealing (which are based on the Bible) somehow make you think you have to become a member of your local church or risk opposing some national religion that really only exists in your own head then you have bigger issues to solve. And if you are okay with those laws then there is no reason to complain about the currency or national motto. Why do you harbor such hatred and opposition for those who have religion? Are you jealous? Taking away their ability to practice means you want to violate the first amendment but because it is to further your agenda you are perfectly fine with it. Why?

    8. Re:COBOL, not so bad by rbarreira · · Score: 1

      No, quite different. In C (and to a smaller extent C++) you know exactly what's happening in every statement. In Java, with the massive confusion of existing libraries, it's quite easy to ignore what your code is really doing. This often results in horribly inefficient code.

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    9. Re:COBOL, not so bad by lorenzino · · Score: 0

      Yeah sure, never heard of JIT?
      As I heard sometimes in the last two days, the 1990 called and wants its benchmarks back ...

    10. Re:COBOL, not so bad by Anonymous Coward · · Score: 0

      Our Declaration of Independence also doesn't agree with Obama. "We are endowed by our Creator with certain inalienable rights..."

      The Declaration of Independence is not a law.

      As for the rest of your twisted spaghetti logic, it takes you hundreds of words to try to obfuscate this simple fact: Asserting that there is a monotheistic god on government instruments is asserting that one class of religions is correct, and it is asserting that other classes of religions or lack of religion are incorrect. This government endorsement is in fact an attempt to establish a religion.

      If your argument is correct that people who don't agree with the phrases should ignore them, then you wouldn't mind if they were changed to read "THERE IS NO GOD". After all, *you* could just ignore the phrase. You wouldn't even consider calling that unconstitutional, would you?

    11. Re:COBOL, not so bad by ucblockhead · · Score: 1

      Even ignoring JIT, the cost isn't that high. Five years or so, I wrote took a short task (a programming contest entry) and wrote it in C++, Java and C#, using the same algorithm but best practices for each language. The C++ code seemed to run at about twice the speed.

      --
      The cake is a pie
    12. Re:COBOL, not so bad by K.+S.+Kyosuke · · Score: 1

      Why is Lua so much slower now than it was in Clue 0.3? Because I took out a speed hack. Ideally, Clue's target languages should support GOTO. Unfortunately, the high-level languages Clue targets tend not to have GOTO, and Lua is one of these. In 0.3, I was using a foul hack to patch the Lua bytecode after compilation to implement real GOTOs; as this is not portable, and was cheating, I took it out.

      May I assume that asking you "Have you tried compiling gotos into tail calls?" would make a stupid question?

      --
      Ezekiel 23:20
    13. Re:COBOL, not so bad by Anonymous Coward · · Score: 0

      Java is going to be inherently slower on the same hardware due to the interpeting of the code that it must do. Obviously good coding helps too but there is going to be some inherent latency because of the fact the Java code isn't compiled to machine code.

      Hello? It's not 1998 anymore.

    14. Re:COBOL, not so bad by david.given · · Score: 1

      May I assume that asking you "Have you tried compiling gotos into tail calls?" would make a stupid question?

      Not at all, and I've done some benchmarks to see what sort of performance penalties there'd be doing that (see the Lua mailing list for details). The answer: not much, and Sparse' code generator framework actually lends itself quite well to that kind of structure.

      However, it would need a custom code generator, and currently the Lua code generator shares code with the Perl5, Javascript, Java etc code generators, so it's rather more work than I'm willing to do right now. And it wouldn't be useful on any other language --- none of the other languages support tail calls, damn them.

      It's a shame goto is so unfashionable; it's very rarely the right tool for the job, but on the few occasions when you need it you really need it...

    15. Re:COBOL, not so bad by Anonymous Coward · · Score: 0

      The Declaration of Independence is not a law.

      I didn't say it is. But it still shows a basis for religion in this country for those who doubt what the Founding Fathers intentions were.

      As for the rest of your twisted spaghetti logic, it takes you hundreds of words to try to obfuscate this simple fact: Asserting that there is a monotheistic god on government instruments is asserting that one class of religions is correct, and it is asserting that other classes of religions or lack of religion are incorrect. This government endorsement is in fact an attempt to establish a religion.

      Not obfuscating, just trying to cover all the bases ahead of time to ward off any excuses someone may come up with as a defense. Just because someone, a group, or a gov't supports something doesn't imply that they believe it is correct and that the opposite, or anything else, is incorrect. It is because religion is in the country's roots and the population still holds on to those roots whether you like it or not. We are the gov't and we are allowed to have the gov't reflect the citizens' wishes. The citizen's wishes may be incorrect by some standard but that isn't the gov'ts decision. The problem is created when the gov't wields its power to punish those who do not agree with its religious displays. There is no punishment for disagreeing about religion in the United States, plain and simple. If there was then we would have 18th century England all over again and that was what the Founding Fathers wanted to escape and to avoid recreating. That does not mean the gov't is not allowed to support the people's religion, just so long as they don't punish those with dissenting opinions or beliefs which it doesn't. There is no attempt to establish a gov't religion. The gov't proper doesn't need a religion nor does it want one. That doesn't mean the citizens or the members of the gov't shouldn't or can't have their own religion and for there to be public displays of that religion.

      If your argument is correct that people who don't agree with the phrases should ignore them, then you wouldn't mind if they were changed to read "THERE IS NO GOD". After all, *you* could just ignore the phrase. You wouldn't even consider calling that unconstitutional, would you?

      I don't deny that the argument can work both ways but what turns the argument in favor of those who have a religion is the fact that our Founding Fathers did not want the gov't to have a religion and to enforce it on the citizens but instead for the public to not have to hide their religion in their homes nor risk persecution from their gov't for having any specific religion. And actually, changing any text to read "THERE IS NO GOD" would be just as unconstitutional using your logic because the same amendment states "shall make no law respecting an establishment of religion....or prohibit the free exercise thereof...". As I stated in my post, the wikipedia page (for what it's worth) says the 1st amendment is used to protect endorsing religion over no religion as well as vice versa. Stating there is no God would be endorsing no religion over religion and therefore still be a violation.

    16. Re:COBOL, not so bad by badkarmadayaccount · · Score: 1

      Dude, I saw your project earlier and was very impressed.
      My question was, do you think that it could be used with VMkit/LLVM/llc to rid us of the scourge of flash, java and silverlight in the browser? Compile the .NET/Java/(Actionscript?) bytecode to LLVM IR, then run it through the c generating back end, then through your compiler. It's far less elegant than I would prefer, but would be a score for the truly open web.
      Cheers!

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    17. Re:COBOL, not so bad by david.given · · Score: 1

      I've actually thought of that, and I want to look into LLVM anyway. Once I'd sorted out the actual concept, the actual code generator part of the project was very easy.

      Generating good is rather harder. There are techniques for decomposing a basic block graph into conditionals and loops, but they don't work in all cases (and I think can be proved to not work in all cases); and without that you're still stuck with emulated goto in most languages, which is going to do horrible things to performance.

      Unfortunately it wouldn't help the Flash/.NET situation because most of the work there is in the libraries. There are already perfectly decent Actionscript and .NET open source engines. It's just the stuff they need to plug into that's tricky...

    18. Re:COBOL, not so bad by badkarmadayaccount · · Score: 1

      Well, the mantra of OOP is encapsulation, polymorphism and I forget the rest. So, you don't care how a class does it's magic, you only need to replicate the behaviour, and polymorphism allows more than one behavior. Those base classes can't be that different. The other option is GWT. Java goes down to JS, and it allows inlineing it, so you just have to decompile the actionscript to java+javascript. C# is going to be a little harder, though ;D.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  14. Live a passionate life by cryfreedomlove · · Score: 3, Interesting

    When I was working on my CS undergrad degree, more than one professor told me that I was really limiting my job prospects because I declined to take the elective COBOL classes. I knew enough about COBOL then to know that I could not drag myself out of bed in the morning to make a living with it.

    The ranks of COBOL programmers out there are living drone like lives without passion or joy. That's not for me. I code for the love if it.

    1. Re:Live a passionate life by Sponge+Bath · · Score: 1

      ...living drone like lives without passion or joy.

      Wow. Absolute judgment on the lives of others based on the programming language they use?

    2. Re:Live a passionate life by berend+botje · · Score: 1

      Those ranks are collecting a nice, secure paycheck each and every month and will do so for the next few decades.

      Coding for the love of it is marvellous, a joy without peer. But without a corresponding paycheck it is just vanity. Mental masturbation, if you will.

      I'd rather be a well payed drone than a masturbator, wouldn't you?

    3. Re:Live a passionate life by chthon · · Score: 1

      Bah, you do not know what you are talking about. I wrote not only applications in COBOL, but even tools to help automate my compilations, and once even a remote login shell. For every language the Turing principle counts, and if your COBOL gives access to your operating system calls, then the sky is the limit.

    4. Re:Live a passionate life by Anonymous Coward · · Score: 0

      i prefer to be a well payed masturbator drone

    5. Re:Live a passionate life by Pig+Hogger · · Score: 1

      I'd rather be a well payed drone than a masturbator, wouldn't you?

      I dunno; since I woke up this morning, I already masturbated three times, and it sure feels better than getting a cheque.

    6. Re:Live a passionate life by Anonymous Coward · · Score: 0

      Generalize much or are you trying to intellectualize your lacklustre career path when comparing to employed and successful COBOL programmers that were responsible enough to take their college classes?

    7. Re:Live a passionate life by westlake · · Score: 1

      The ranks of COBOL programmers out there are living drone like lives without passion or joy.

      Their only reward a regular paycheck and the satisfaction of building and maintaining systems that do the world's work.

      I used to think that was what engineering was all about.

    8. Re:Live a passionate life by scruffy · · Score: 1

      When I was working on my CS undergrad degree, more than one professor told me that I was really limiting my job prospects because I declined to take the elective COBOL classes. I knew enough about COBOL then to know that I could not drag myself out of bed in the morning to make a living with it.

      The ranks of COBOL programmers out there are living drone like lives without passion or joy. That's not for me. I code for the love if it.

      You would have had it easy. When I took COBOL, it was with punch cards. That was torture to to produce not quite identical structures multiple times to run a program. Later in life, when I taught COBOL, the wonders of cut-paste-and-modify made COBOL programming a breeze in comparison to my student experience.

    9. Re:Live a passionate life by cyber-vandal · · Score: 1

      Is that right? And how do you come to that stellar conclusion? Oh that's right because you live a dead exciting life coding for the love of it i.e. sitting at a computer for most of your life.

  15. Design by mrlibertarian · · Score: 2, Interesting

    Why would companies replace systems that are working well?

    The question is not, 'Does the code work?', the question is, 'Does the code follow good design principles?' If the answer is 'No, the code is not well-designed', then maintenance can be very costly. I like the snippet from this page:

    "I was once told by an instructor in a design patterns class that the Y2K problem wasn't caused by using 2 digits to represent 4. Instead, it was caused by doing so all over the place. While the reality of the situation is a little more complicated than that, the principle is true. If the date handling code had been all in one place, a single change would have fixed the whole codebase rather than having to pull tons of Cobol coders out of retirement to fix all the business applications."

    1. Re:Design by bobbonomo · · Score: 1

      Partly true. The Y2K think was to save 2 bytes. I remember a similar problem at the time and saying "2 bytes! are you kidding?" The response was "the app has x number of clients and x number of fields. This will save 2 disk spindles". The wise-ass kid (me) turned around, removed foot from mouth, and solved the problem. Oh and it was COBOL.

      Spindles were 100MB to 200MB, big like dishwashers, and cost a gazillion plus your next new born.

    2. Re:Design by gbjbaanb · · Score: 1

      then why didn't they store dates as number of seconds since 1970 in a 4-byte field? :)

      (yeah, I know, limitations of thin-client forms applications)

    3. Re:Design by larry+bagina · · Score: 1

      Possibly because COBOL was designed in the late 1950s.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    4. Re:Design by bobbonomo · · Score: 1

      Because everything was on punched cards (80 characters) and there was only A-Z and 0-9 and it grew from that when we went to screens.

  16. Change company by krischik · · Score: 1

    If and only if they're able to pull it off. It's also a nice way to end your carreer if you fail.

    Just change company before failure becomes apparent. Then you prepared it all so well and successor just it all up.

    1. Re:Change company by Anonymous Coward · · Score: 0

      Like that guy that managed the Windows Vista project and bailed out just before the disaterous release?

  17. Skill Sets are disappearing by 1c3mAn · · Score: 4, Insightful

    Why is no one updating Cobol code? Because the skill to interact with other systems is disappearing.

    As a Mainframe Utilities Programmer I hear it from customers all the time. "We can't touch that system because the guy who wrote it retired." System here just represent the code, but also the server backend stuff like database design.

    I have heard stories of an IT department being 10 man team. In the 80s that team had everyone dedicated in maintaining the mainframes. Now, they still have 10 people but only 1 person is there to work on the Mainframe.

    So now you have code from the 70s that no one understands, running a mission critical application, and you think the IT manager is going to touch it? He is praying it doesnt break on his watch or he might get a call from the COO. Even if it breaks, it is better to patch it then rewrite it because the database behind it is so vital to all the rest of the application that it cant be changed either.

    The issue mainly is that no one is teaching old skills anymore. Skills that are still required, but really arent 'sexy' for young college students to learn. Even the name "Mainframe" has grandfather connotation to it while if people actually looked at the IBM Z Servers, one would see how high tech these systems actually are.

    1. Re:Skill Sets are disappearing by GigsVT · · Score: 0

      "High tech"...

      If by "high tech" you mean "pay $250,000 for the same speed you can get on a commodity desktop in 6 months"... then sure.

      People realized how stupid it was to waste money on mainframes when commodity hardware is moving so quickly.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:Skill Sets are disappearing by 1c3mAn · · Score: 2, Insightful

      Why do people always think it is about speed. It isnt. Mainframes are not super computers. They dont really need to be able to have very high processing power, what makes mainframes great is their storage movement capabilities. 2 billion transactions a day is a LOT of data to be thrown around, and a mainframe can easily handle that.

      Beowulf Cluster? Not so much.

      Reliability and redundancy is unmatched in a mainframe. There is a reason why financial institutions run Mainframes. Because that data really cant be lost.

      Mainframe was called Dead in the early 90s and companies tried to switch to open systems and FAILED miserably. 20 years later and most Fortune 1000 companies still use a Mainframe, because nothing comes close to what they do.

    3. Re:Skill Sets are disappearing by jimicus · · Score: 1

      Even the name "Mainframe" has grandfather connotation to it while if people actually looked at the IBM Z Servers, one would see how high tech these systems actually are.

      If you want to be picky about it, it would be more accurate to say that everything else is low tech. Many of the latest big things on a boring bog-standard x86 server debuted on mainframes.

    4. Re:Skill Sets are disappearing by Pig+Hogger · · Score: 3, Insightful

      If by "high tech" you mean "pay $250,000 for the same speed you can get on a commodity desktop in 6 months"... then sure.

      People realized how stupid it was to waste money on mainframes when commodity hardware is moving so quickly.

      "Commodity" desktops will never be able to process 2500 simultaneous transactions in the same database. Even in Beowulf clusters. This is why there is still some big iron around.

    5. Re:Skill Sets are disappearing by Cyberax · · Score: 1

      I'd say, that a software which MUST process 2500 simultaneous transactions in the same database is flawed.

    6. Re:Skill Sets are disappearing by CodeBuster · · Score: 1

      In defense of young college students learning 'sexy' languages instead of mainframes and COBOL:

      The COBOL programmers and mainframe operators, who can be somewhat (but not entirely) excused given the state of technology in the early 1970s, committed one of the cardianl sins of our profession. Namely, they failed to take into account future development and so built few or no interfaces to move data into and out of their closed systems. A major difference between modern systems written in Java (or .NET for Microsoft people) and the COBOL mainframe systems of the 1970s is that modern systems, properly built, include standard methods (W3C XML Web Services for example) of getting data into and out of the system. If someday the Java or .NET system needs to be retired then data can be easily and fully extracted through the escape hatches (Web Services), which the original developers wisely and graciously included in their design, before the ship is scuttled; thus allowing these systems to be retired in an orderly fashion when and if their time comes. So don't put all of the blame on young programmers who don't want to deal with COBOL, the original developers share in the blame for making their systems closed and not interoperable.

    7. Re:Skill Sets are disappearing by Kjella · · Score: 1

      I'd say, that a software which MUST process 2500 simultaneous transactions in the same database is flawed.

      Please explain how something like say VISA should work otherwise. We want transaction integrity so moving money from a VISA card to a merchant has full ACID compliance, and every card can be used with every merchant, we need to know all the charges per card for withdrawal limits and so on. I bet that whatever design you come up with will be a gigantic WTF that is much better solved by a simple database running on a beast of a mainframe.

      --
      Live today, because you never know what tomorrow brings
    8. Re:Skill Sets are disappearing by Cyberax · · Score: 1

      Shard your database and use compensating transactions instead of two-phase distributed commits. That's what telecom people do (for whom 2500 transactions per second is just a mild load).

    9. Re:Skill Sets are disappearing by Ilgaz · · Score: 1

      Your last paragraph explains why COBOL (or lets say J2EE etc), mainframes are target of generic nerds. People who has never seen or worked with such gigantic data to process and billions of dollars depends on a single computer will never understand why COBOL, Mainframe is still around today.

      Wikipedia's Mainframe entries seems to be written by real mainframe people so they give great insight about them, their history and why they can't disappear. In fact, there is even a mainframe emulator around which can even run in Windows (besides *nix of course). http://www.hercules-390.org/

      I can bet that COBOL developers reading headline "COBOL" on slashdot didn't even bother to check the comments as they must be sick of people talking about something they have no real life clue about. It is still their fault, they should take it serious and explain why it is not some archaic thing and why a language designed purely for business can't be simply abandoned.

      In our business, there is almost guarantee that some professional wannabe guy pops up and try to teach wonders of mpeg-2 recording cameras as we, TV industry are such morons still using Digital Betacam (or even plain, in some cases). There is almost no way to explain why raw, 8, 10, 12 bit data is needed and why it should be on a medium that will last more than 50 years. I guess it is similar case for COBOL/Mainframe scene. Hope no "Dell" server mentioned to them. :)

    10. Re:Skill Sets are disappearing by ivoras · · Score: 2, Interesting

      http://www.kaltenbrunner.cc/blog/index.php?/archives/21-8.3-vs.-8.2-a-simple-benchmark.html Not exactly the physical definition of simultaneous but then... the mainframe is more of a big-redundant-CPU machine rather than a 2500-core machine so in any case the "simultaneous" aspect is moot. Note that PG is ACID and that the result will approximately be the same even with a much bigger database because disk IO is starting to be the primary bottleneck here.

      --
      -- Sig down
    11. Re:Skill Sets are disappearing by IceEx · · Score: 1

      This is interesting to me as I am a junior in college and I just got an internship where I will be dealing with a mainframe that uses COBOL. I'm really psyched about it as it seems like it will be interesting, but I wonder if because the skill set is disappearing the jobs that require that skill set will go along with it. Perhaps it really is a good reason to upgrade if you can hire experienced Java programmers for half as much as experienced COBOL Programmers. (I'm only guessing on this from a supply and demand perspective.) Businesses seem to have a mentality that if it works don't touch it. I get the impression that with mission critical application that isn't an attitude you can afford to have. Especially if there comes a day when it doesn't work and there is nobody around that knew how it worked in the first place.

    12. Re:Skill Sets are disappearing by ralphdaugherty · · Score: 1

      Perhaps it really is a good reason to upgrade if you can hire experienced Java programmers for half as much as experienced COBOL Programmers. (I'm only guessing on this from a supply and demand perspective.)

            Your guess is wrong.

        rd

    13. Re:Skill Sets are disappearing by master_p · · Score: 1

      On the other hand, it's good to have progress. We can't be stuck on COBOL forever.

    14. Re:Skill Sets are disappearing by IceEx · · Score: 1

      Thanks for the unqualified feedback. :) ie

    15. Re:Skill Sets are disappearing by DragonWriter · · Score: 1

      "Commodity" desktops will never be able to process 2500 simultaneous transactions in the same database. Even in Beowulf clusters.

      Sure they will. With a sufficiently large cluster of commodity systems, processing lots of simultaneous transactions to the same database using a consensus algorithm somewhat similar to those in the Paxos family should be quite doable. Given the current interest in cloud computing and various aspects of distributing databases, I think that this is an area where the next decade or so will see a lot of movement from "should conceivably be doable" to "is routinely done".

  18. I've seen Cobol programs in my past job by crazybit · · Score: 1

    1. Cobol programs where written so bad and confusing that probably only the original programmer (he was the original maintainer) was able to maintain it.

    2. The company was grabbed by the balls by the provider, who - along with the maintainer -, kept on saying "we can't assure that if you migrate this all will work fine".

    and, since it was a "critical" application, we never migrated it. Managers never minded that in a demo I showed them the response with PostgreSQL was about 8 times faster.

    that is what cobol was and is good for, grabbing a company by the balls and make it pay money to a provider for eternity. It's like having your main software written in obfuscated perl.

    --
    - Human knowledge belongs to the world
    1. Re:I've seen Cobol programs in my past job by Anonymous Coward · · Score: 0

      It's like having your main software written in obfuscated perl.

      So in other words, it's like having your main software written in perl.

  19. Why replace? by Jane+Q.+Public · · Score: 2, Insightful

    Hmmm. I suppose it could be that between the times that COBOL was developed (Grace Murray Hopper, FTW), and today...

    There is more to a language than just being Turing-complete. There is syntax and geneeral usability, for example.

    I know that there are still jobs out there for COBOL programmers. And it makes me sad.

  20. Re:Adequate Languages (better than) by OFnow · · Score: 2, Interesting

    It's more than adequate because it natively handles money data in transparently correct ways. Other languages have to be bent to fit. Integer and double precision data simply do not meet the need, though these days with 64bit integers it is easier to warp integers to be usable.

    In addition it let one record right-size fields on disk and tape (in a day when disks were small and very very expensive).

    I'm glad I no longer write code in COBOL, but for many years it was the only choice possible for business.

    It was amusing in the 60s 70s 80s reading papers suggesting (32bit) integers and double precision (in C or whatever) as an alternative to COBOL data types. I guess the authors never kept their checkbook to the penny or never had as many as 5 billion pennies in that checkbook.

  21. It's the maintenance, stupid. by SanityInAnarchy · · Score: 2, Insightful

    Sure, greater productivity is one benefit, but the language is completely irrelevant for that.

    It's about how flexible the system will be when you have to change it. And you will -- that's the whole point of software, that it is soft, and changeable.

    Old Cobol apps generally are not flexible. (stolen from this comment). It's worth mentioning that a decent object-oriented system would've gone a long way towards eliminating this problem -- any idiot can stuff a date into a Date class, which then encapsulates all the date-handling code.

    Maybe some of it is very well designed. Drupal proves that you can write good, elegant code in any language, even if you are fighting the language and reinventing the wheel every step of the way. But the converse is also true -- you can write bad COBOL in any language.

    My point here is that when changing minimum wage is even a tech story at all, that program is really fucking broken*. It's very likely too broken to be patched. Really, we've learned things in the past 50 years, and not all of them are buzzwords or ways to waste five times the RAM.

    Not all of them have anything to do with programming languages, either, but if you're building a new system, and you have a choice of languages, why would you choose COBOL?

    I agree in spirit. But what people have to remember is, if it ain't broke, don't fix it. So, if it's broke, fix it!

    * I apologize for the profanity, but any program that can't change a fucking constant is a broken program. Or did they copy/paste 6.55 all over the place?

    --
    Don't thank God, thank a doctor!
    1. Re:It's the maintenance, stupid. by ClosedSource · · Score: 1

      It's about how flexible the system will be when you have to change it. And you will -- that's the whole point of software, that it is soft, and changeable."

      Not entirely. Software allowed one to perform functions that were not practical to do in hardware.

    2. Re:It's the maintenance, stupid. by Waffle+Iron · · Score: 1

      It's about how flexible the system will be when you have to change it. And you will -- that's the whole point of software, that it is soft, and changeable."

      Not entirely. Software allowed one to perform functions that were not practical to do in hardware.

      And what is the one thing that makes something impractical to do in hardware? It's almost always the fact that hardware isn't easily changeable.

    3. Re:It's the maintenance, stupid. by ralphdaugherty · · Score: 3, Informative

      * I apologize for the profanity, but any program that can't change a fucking constant is a broken program. Or did they copy/paste 6.55 all over the place?

            Your comment is idiotic. Do yu think there was only one change to the minimum wage in all the decades that California payroll system was in production?

            There was a long thread on that system, and the real reasons that that California bureaucracy didn't want to modify the payroll system at that time was covered in the thread.

            I also provided a solution in the thread that didn't require modifying the system. The California thing wasn't about technology, it was about politics.

            There, I've wasted some more of my life on this idiotic issue.

        rd

    4. Re:It's the maintenance, stupid. by ClosedSource · · Score: 1

      Imagine implementing MS Office or Open Office using a hardware based state machine. I think you'd find that maintenance would be the least of your problems.

    5. Re:It's the maintenance, stupid. by RunsWithMatches · · Score: 1

      Yes, but the application would open in 100ns...

    6. Re:It's the maintenance, stupid. by ClosedSource · · Score: 1

      Perhaps, but then again, consider the propagation delay of all those gates.

  22. books? by innocent_white_lamb · · Score: 2, Insightful

    Most COBOL books and tutorials are unavailable, out-of-print, or just plain gone.
     
    What resources still exist for someone who wants to learn COBOL?
     
    http://www.opencobol.org can easily be installed on Fedora Linux (for example) with a simple "yum install open-cobol", but what comes next?

    --
    If you're a zombie and you know it, bite your friend!
  23. Does this add up? by Allicorn · · Score: 4, Insightful

    How does this add up?

    1. Around a third of UK companies say they have even at least one COBOL program somewhere in their enterprise.

    2. Around three quarters of all UK electronic business is coded in COBOL.

    I'm aware that there are allegedly pockets of COBOL here and there with some fairly significant nuclei of usage within certain business sectors but seriously... 80% of all electronic transactions?

    Monster.co.uk search for single keyword in title, 11th Apr 2009:

    Java: 173 hits
    C++: 142 hits
    PHP: 95 hits
    Perl: 39 hits
    COBOL: 1 hit

    This doesn't seem to suggest a great demand for COBOL coders at present which - one would think - suggests little use of COBOL.

    I've heard this "the world secretly runs on COBOL" story countless times over my career, but seldom seen more than a few lines of COBOL actually deployed in businesses I've worked with. Is the whole thing just a weird industry myth?

    --
    OMG!!! Ponies!!!
    1. Re:Does this add up? by meyekul · · Score: 0, Troll

      Its like your grandfather. Everyone knows he's too old and can't keep up with the kids anymore, but you don't want to say it to his face right? We're just waiting for the last COBOL programmer to die off and then then everyone will breath a remorseful sigh of relief and start coding in Java again.

    2. Re:Does this add up? by PPH · · Score: 4, Interesting

      You are confusing the amount of development done with Cobol and the number of transactions handled by Cobol systems.

      In my experience, the reason that Cobol still hangs on is that management continues to pursue the philosophy of "patch it just one more time" rather than "port it to something more easily maintained". As time goes by and continual patching gets more difficult, expensive and riskier, the amount of development goes down. But the systems are still up and running.

      The ultimate in unmaintained systems was one at an outfit I used to work for where they lost the source code. Its gone, never to be modified again. It was lost before the end of the last century and was suspected not to be Y2K compliant. The solution was to write and run a routine on the applicable database to bump all of the date fields back (20 years, I think). Then, another small routine was written to post process the output add the time back. Management is grinning from ear to ear because, unlike all the other apps that cost millions to maintain, this one costs them nothing. As long as those responsible retire before 2020, that is.

      --
      Have gnu, will travel.
    3. Re:Does this add up? by jimicus · · Score: 1

      If it's true at all, my guess is that it's in niche applications which haven't changed much in 30 years but - and here is the big but - process such huge volumes of data that they constitute 80% easily.

      In other words, it exists at the common points which most transactions are going to go through one way or another. Banks, for example.

    4. Re:Does this add up? by perlchild · · Score: 1

      It's not a weird industry myth, but anyone who hires a COBOL Coder can't call it a Cobol job if they wanna migrate OFF Cobol either. It's a catch-22.

    5. Re:Does this add up? by gbjbaanb · · Score: 1

      You're confusing number of jobs using those languages, with amount of churn as programmers quit and move on.

      What you can see from those figures is that, if you're a Java programmer you'll likely quit and move to a different Java job. If you're a COBOL programmer, you'll happily stay there until retirement.

      I think you'll only notice if you join a company that uses COBOL a lot, a financial company generally, and only then if you're employed to help with it. Even then, you'll probably only be interfacing to a "black box" where you don;t know or care what language runs it.

    6. Re:Does this add up? by Allicorn · · Score: 1

      Of course yes, churn is certainly a factor in the the number of job ads shown; that occurred to me too.

      But your assertion about Java-coder vs COBOL-coder churn, to me, seems very much a part of the whole "COBOL runs the world" mythology. Your statement - trotted out to me almost verbatim by countless folks over the decades of COBOL's decline that I've witnessed - that COBOL programmers are a happy band of nameless, faceless heros who all get a job for life in a Fortune 500 company and never meet another coder in their entire careers - is one of the key anecdotes that "supports" the COBOL-centric-universe theory. :-D

      --
      OMG!!! Ponies!!!
    7. Re:Does this add up? by Zarf · · Score: 1

      Its like your grandfather. Everyone knows he's too old and can't keep up with the kids anymore, but you don't want to say it to his face right? We're just waiting for the last COBOL programmer to die off and then then everyone will breath a remorseful sigh of relief and start coding in Java again.

      And then the same thing will happen with Java and Python.

      --
      [signature]
    8. Re:Does this add up? by Zarf · · Score: 2, Interesting

      I think you'll only notice if you join a company that uses COBOL a lot, a financial company generally, and only then if you're employed to help with it. Even then, you'll probably only be interfacing to a "black box" where you don;t know or care what language runs it.

      Which is a very good point.

      I've been thinking with all this virtualization and such that you could eventually package up all that old COBOL code onto a virtual machine and just port the virtualization software to new platforms. Forever creating a black box of software that "just works" with out any idea of how or why.

      If that does indeed happen then there may develop pockets of entire industries over time that are as mysterious and unintelligible as tax code. Now even if you had a black box of software that was contained in a VM it wouldn't mean you could never replace it.

      After all, if you can put it under test you could combinatorically determine the function of the software by slamming every combination of input at the thing and cataloging the output... but such an approach would be very expensive and time consuming and it is much more likely future generations will want to add new function instead of rewriting old function.

      In other words, you could rewrite that COBOL but it would be impractical and why bother? Unless significant rules of the real world that the software is supposed to model changes. There may be very little call to do such a thing.

      --
      [signature]
    9. Re:Does this add up? by Anne+Thwacks · · Score: 1

      You ave failed to recognise that 60% of UK companies dont tell the truth while answering questionaires, and 50% can't tell COBOL from a pig's ear.

      --
      Sent from my ASR33 using ASCII
    10. Re:Does this add up? by Anonymous Coward · · Score: 0

      It just means the Java guys haven't got their stuff working yet.

    11. Re:Does this add up? by Anonymous Coward · · Score: 0

      Java? It's like a retard kind in high school. Everyone knows he's a retard, but you don't tell him. Instead you pretend you're his friend and encourage him to take shit on principal McCafferty's desk.

    12. Re:Does this add up? by story645 · · Score: 1

      Shipping for another. My mom works for one of the big shipping companies and she says most of the transaction/billing/etc. stuff is mainframe/COBOL 'cause none of the modern languages can handle the data properly, and the company has tried just about everything else out there.

      --
      open source modern art: laser taggi
    13. Re:Does this add up? by jimicus · · Score: 1

      I doubt the modern languages can't handle the data properly. With enough money I'm sure you could resolve that problem.

      If, however, you were to say that the existing system has been refined over the course of the last 30 years to reach the point it has today where it sits quietly in the corner doing everything it needs to with little or no fuss but nobody can point to a full set of documentation describing it simply because such documentation does not exist - that I can believe.

      It would undoubtedly cost a fortune to replace - you'd have to completely re-engineer an entire new system covering every little aspect of what the current one does, gathering user requirements from scratch (and then discovering that nobody really understands the requirements in full, which makes gathering them an interesting exercise), And at the end of it all, you'd wind up with... er... a system which does exactly the same thing as the current system, albeit with a possibly slightly prettier user interface.

      Unless you could point to a lot of serious problems with the existing system that can't be fixed without replacing it in its entirety, you'd have to be nuts to want to propose replacing the lot.

    14. Re:Does this add up? by mikechant · · Score: 1

      After all, if you can put it under test you could combinatorically determine the function of the software by slamming every combination of input at the thing and cataloging the output... but such an approach would be very expensive and time consuming

      Slight understatement - such an approach would typically be totally impossible for a non-trivial program (some sort of exponential type function describing the number of inputs as a function of amount of input). Crudely, a program accepting just one 80 char record consisting only of upper case letters and display numerics has 36**80 possible inputs.

    15. Re:Does this add up? by gbjbaanb · · Score: 1

      In other words, you could rewrite that COBOL but it would be impractical and why bother?
      so true. In my experience, application rewrites nearly always end in failure. They cost a vast fortune, where no revenue comes in from them, and customers stop buying the old application while they wait for the new version. On top of that, the people working on the new tend to be the new kids who just want to do everything in the latest coolest technology, and don't have the business experience the old guys have.

      Its like software rewrites are always done in the most backward, inefficient way possible. Its an IT think I guess, if the business was responsible for a rewrite they'd do it completely differently.

    16. Re:Does this add up? by Allicorn · · Score: 1

      Hoho. I think you got to the heart of the matter there. :-D

      --
      OMG!!! Ponies!!!
    17. Re:Does this add up? by Zarf · · Score: 1

      After all, if you can put it under test you could combinatorically determine the function of the software by slamming every combination of input at the thing and cataloging the output... but such an approach would be very expensive and time consuming

      Slight understatement - such an approach would typically be totally impossible for a non-trivial program (some sort of exponential type function describing the number of inputs as a function of amount of input). Crudely, a program accepting just one 80 char record consisting only of upper case letters and display numerics has 36**80 possible inputs.

      Oh, that's not too bad. We could just hook up a Beowulf cluster with a few thousand nodes and run an EA on it for a few million years. Not like you simply couldn't replace the original program.

      Just a little thing called reality we would have to contend with.

      --
      [signature]
    18. Re:Does this add up? by 16K+Ram+Pack · · Score: 1

      The "1/3rd" figure is rubbish. I'd go as far as to say that over 7/8ths of UK business run no custom software whatsoever. It's probably more like 1/3rd of FTSE400 businesses or something.

      The 80% figure is probably about right, if you look at it in a certain way. I suspect that BACS runs COBOL (they used to). Most financial companies process in COBOL as changing is just too damn risky.

      Churn also matters. The department I left (when I did COBOL) still has a huge number of the same guys in it when I left. And they're not heroic - they're mostly just middle-aged guys who don't want to keep chasing being current with the language-de-jour, want a very secure job and a short drive to work.

  24. None of you guys are getting it. by slashdot_commentator · · Score: 5, Insightful

    Its not just the mythical "mission critical" aspect that keeps businesses dependent on COBOL. MANY of those programs required either financial analysts to "vet" the COBOL program, or lawyers to "vet" the COBOL program complied with laws (privacy, methods of determinations, etc.).

    Not just are you putting in the cost to refactor the program from scratch, not just are you risking a bug costing your company hundreds of millions to billions of dollars, but you also have to take in the costs of expensive NON-programmers to "bless" the new program.

    Then also realize that the new whizbang technologies like SQL and java will RUN LIKE A DOG compared to the COBOL program. That's because mainframes are optimized data I/O machines. They're not great for making intense calculations or retrieving indexed relationships, but they are a BEAST when it comes to pulling out gigabytes of user data, and then making simple calculations and updates to each. It also sounds like top notch COBOL programmers programmed to the machine for efficiency. That's not really done anymore by generic programmers.

    New shops don't have to consider COBOL. But any large company (and gov't) could potentially take a huge hit on their finances (in legal issues) if refactor project has a bug. You can roll the dice, or you can just pay another couple million/year and hope nothing ever forces you to consider replacing your legacy COBOL programs that no one knows how they work, or how to change them.

    --
    There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
    1. Re:None of you guys are getting it. by Just+Some+Guy · · Score: 1

      Then also realize that the new whizbang technologies like SQL

      Only a mainframe greybeard would refer to SQL (1970) as "new".

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:None of you guys are getting it. by Anonymous Coward · · Score: 0

      MANY of those programs required either financial analysts to "vet" the COBOL program, or lawyers to "vet" the COBOL program complied with laws (privacy, methods of determinations, etc.).

      I remember this. Company lawyers were able to READ AND UNDERSTAND COBOL programs. I guess it must be difficult to get them understand a Java object model.

      (I always thought it was because of the CAPITALIZATION...)

  25. Per hr: cobol $120, everything else $30 by LymeM · · Score: 1

    As someone managing a number of legacy mainframe/cobol systems (we do pl/1 too), the biggest reasons to move away from them break down like this: #1: Cost - Mainframe hardware is expensive, support is expensive, keeping or contracting programmers are expensive. #2: Availability - Finding a competent cobol programmer is much more difficult than it used to be, while you throw a rock and you'll hit 20 perl/java programmers. #3: Maintenance - Programs that have been written 30 years ago, and have been updated year after year, mostly poor documentation are hard to keep going, and require more person effort to do so. #4: Flexibility - Out business has been changing over the last 30 years, how can one expect something written that long ago to continue to last the tide. It may be working now, but when that next important change comes down, it may take significantly longer to respond.

    1. Re:Per hr: cobol $120, everything else $30 by Nom+du+Keyboard · · Score: 1

      we do pl/1 too

      Ah, my favorite programming language of all time. PL/I was just great to work in back when my other choices were Fortran IV (eventually 77), COBOL (did my stint on that), and assembler (I've worked with near a dozen of those).

      These days for me it's most of all that most denigrated - and yet highly used - language of all: Visual Basic. I do it in all its forms (VB6, VBA under Access, VB.NET as in VS2005/2008, VBS). Here I am looking for work, and as willing to do legacy languages as current ones, and jobs still aren't easy to find in my area.

      --
      "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  26. The older generation isn't always wrong! by ErichTheRed · · Score: 5, Insightful

    I've had an interesting run through IT environments so far. Each one of my employers has successfully used what would be called a "legacy system" to do core business transactions. I'm not old by any means, but I definitely see no reason to get rid of systems that are performing well.

    The qualification for that statement, of course, is "performing well." The side effect to using older systems is all the bolt-ons you have to use to get newer functionality working. My current employer uses a midrange system from the early 80s to run the core of the operation, and it has tons of extra software and hardware riding on top of it to do modern things like access without terminal emulators and message queuing. The time to consider a replacement is when these systems become too unwieldy or brittle to manage. For example, if a transaction-processing system needs a daily FTP feed from some source, and it doesn't get it, will that blow up the whole system? If the answer is yes, it's time to fix the problem or replace the underlying system if it's bad enough.

    I'm very skeptical of anyone who comes in and says, barely looking at the existing system, that it needs to be ripped and replaced. A lot of it stems from the fact that IT hasn't matured all the way yet. People still come into the field knowing little more than the Java they were taught in school, and don't have the big-picture attitude you need to really understand IT. You may think I'm an old fart, but I'm really not. I've learned the basic rule of IT -- you're not there to play with computers and have fun. You're there to make sure the business you support is able to do their work, preferably without calling you in every night to fix something.

    1. Re:The older generation isn't always wrong! by Nom+du+Keyboard · · Score: 1

      I've learned the basic rule of IT -- you're not there to play with computers and have fun. You're there to make sure the business you support is able to do their work, preferably without calling you in every night to fix something.

      I know personally too many people today who think they're I.T. people and call themselves I.T. people who haven't got a clue about this. Congratulations for the most succinct expression of this idea that I've seen in a long time. I intend to use it to either educate - or replace - some people very soon because I'm tired of cleaning up their messes.

      --
      "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    2. Re:The older generation isn't always wrong! by DNS-and-BIND · · Score: 1

      Coders express themselves through their programming. Sometimes this means a rewrite - you sound like a whipped slave of the suits.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
  27. Another reason... by Cynonamous+Anoward · · Score: 2, Interesting

    Why would you want to replace 2 billion lines of working COBOL code?

    Easy...COBOL, while still in use and working well now, is not a language which is still growing...it is shrinking. Nobody would choose COBOL for a new project. The only jobs left for COBOL programming are maintenance. That means that there are no "exciting" COBOL jobs, and that only coders who learned COBOL, not engineers who are good at design or interested in building/maintaining good design.

    "So it's old and all you can get is people willing to maintain, not engineer, the COBOL universe. so what?"

    Well, what's what is that:

    a) over time, code maintained by "coders" rather than "engineers" i.e. those who are simply proficient in a language, rather those with true engineering talent, will degrade. I have worked with both. I notice a trend. Those with engineering talent...a knack for understanding large systems at a high level and seeing bigger pictures, tend to improve the cleanliness, stability, and re-usability of existing code as they fix or extend it, because they look at the big picture and try to make a change such that it works well in the whole system. "Coders" tend to find the location where the logic goes wrong, and make the most obvious spot adjustment to make the problem go away. Even extensions are treated similarly. Hence, with mostly these types of engineers working on COBOL code, those systems are going to degrade over time. This effect can happen rapidly...I've seen it happen to code that was less than 5 years old. The fact that COBOL code still works is probably more a side effect that all coders of that generation had some engineering skills beaten into them. The younger generation with their "learn a language and get paid" mentality will bring that code to it's knees in a decade or less.

    (a) implies problem #2:

    b) With code which will degrade as younger, less "design" oriented maintainers are forced to take it over, maintenance becomes a primary concern. Yet as the language gets older, and the code ages and begins to break, gaining more of a reputation for being in shambles, there will be less interest in working on it. Meaning that each generation will produce fewer and fewer COBOL programmers, an effect we are already seeing.

    Businesses will be content to sit back and look at their well working, low cost maintenance systems, and think that things will always be that way as long as the don't ask anything new of the system that will cause it to need replacing. This is NOT the case. Eventually COBOL programmers will be all but gone, and those that remain will come at a high premium, and there will not be enough for everybody. At that point, the code will start to break, with nobody to maintain it.

    This is when businesses will freak out and think "we need to replace this COBOL program with something in a modern language that we can find programmers for." Except that these old systems are probably not well documented at an algorithm level. The best document is, well, the code. So what they will need is simply someone willing to read through the old code and duplicate it's behavior in a more modern program. Well that doesn't sound SO hard..except, wait, what? You mean, in order to port a program away from COBOL, you need an engineer who still _understands_ COBOL? oh, crap...

    --
    "The GPL is viral by design, like any good religion."
    1. Re:Another reason... by Cyberax · · Score: 1

      Come on, COBOL is not hard. It's just another imperative language with horrible syntax.

      Any good programmer will read COBOL code after spending several minutes reading COBOL tutorial. A little more time to get acquainted with data processing systems. And then several weeks to learn to write COBOL code (might require restraining programmers, so they won't kill their managers).

      But COBOL itself is not a problem. It's application logic which is the main probme, it's usually obfuscated by the years of bolted-on fixes. So it might be easier sometimes just to write a completely new system and migrate old data from the legacy system.

    2. Re:Another reason... by Cynonamous+Anoward · · Score: 1

      Generally, yes. My point was that older programs like that (hell, new programs too, who are we kidding) tend to have poor behavioral documentation, meaning that small features and bits of logic which are important to the company are captured only in code. Meaning you needed to start the rewrite before the old geezers who maintained the old system retired, because otherwise you will have new engineers who are not familiar with the language or tools, trying to dig ultra-deep into unfamiliar software for answers.

      Hell, to your point that the language being COBOL doesn't matter that much, you're probably right. Take any competent C programmer who has never looked at large open source project X, and ask him to find and modify the code for feature Y. It will take him waaaaay longer on his own than if he has access to a programmer who has been hacking on the source for a while.

      --
      "The GPL is viral by design, like any good religion."
  28. Inhouse web apps? by ClosedSource · · Score: 3, Insightful

    In a lot of environments in-house web apps would only serve the purpose of being trendy. I suspect a company who is smart enough to keep their working code around would probably resist the temptation of unnecessary "webizing" their internal apps.

    1. Re:Inhouse web apps? by Chabil+Ha' · · Score: 1

      Such is the way for the company I work for. The problem they're having is getting the 'younger' folks like myself to take an interest in it. Invariably, once you start down the path of COBOL development, forever are you pigeon-holed there just because of the scant human resources there are to keep it going. Most of us view it as career ending for this reason.

      The pressure, however, is mounting since the first waves of 'old timers' are starting to retire, further exacerbating the situation. Perhaps if the pot were sweetened a bit, more people would be attracted to it.

      --
      We're all hypocrites. We all have hidden parts, it's the contrast between them that make us more a hypocrite than others
    2. Re:Inhouse web apps? by ClosedSource · · Score: 1

      You sound like you might be the ideal candidate for F/OSS contributions. A boring but well paid and stable job along with an interest in more cutting edge development.

  29. How to learn COBOL? by drolli · · Score: 1

    I am a physicist but i think about switching the job to softrware development. COBOL is one of the languages i consider to learn for a living (i wrote productive applications in pascal,basic,c,assembler,perl,python.lisp,tcl,java,javascript,tcl,matlab,shell languages). Any comments how to start from this starting point?

    1. Re:How to learn COBOL? by larry+bagina · · Score: 1

      First, buy a gun. either a 12 gauge shotgun (and buckshot) or a big pistol (.357, .44, .45, etc -- not a 9mm). Load the gun, insert the barrel into your moth and pull the trigger. Make sure you aim it upwards, towards your brain. If it's off to the side you might survive or only be mildly brain damaged (in which case COBOL programming would be an ideal career choice).

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    2. Re:How to learn COBOL? by drolli · · Score: 1

      Where i live i cant buy weapons.

    3. Re:How to learn COBOL? by cide1 · · Score: 1

      That doesn't stop a number of people.

      --
      -- the computer doesn't want any beer, no matter how much you think it does. NEVER, EVER feed your computer beer.
  30. Obscure PL/M era reference by ClosedSource · · Score: 1

    Get off my blue box!

  31. Buy a new mainframe by ClosedSource · · Score: 1

    Now you see why IBM embraces Java.

  32. Might is the key word by ClosedSource · · Score: 1

    They've been saying the same thing about Smalltalk for years, but yet, it doesn't seem to actually happen.

  33. Hah by coryking · · Score: 0, Troll

    Could you imagine if the FSF guys created a programming language. Like GNUbol--the first programming language that protects your Freedom(tm). It could have freedom protecting measures like only being able to compile on Certified Free Software. The official text editor of GNUbol, EMACS, would offer Freedom Enhancements like the ability to hit META L + DEL + SHIFT + @ and get a view of the assembly code generated for every statement. You could edit the assembly code or even change the microcode on the GPL'd GNUPU (GNU processing unit, the only GNU/CPU supported (though we prefer to call every CPU GNU/CPU because they wouldn't have anything to run without award winning GNU tools like cat, y, and pushd)). Since the entire stack, from GNUPU to the text editor is licensed under the GPL, you could rest easy knowing all software you create will automatically be licensed under the GPL!

    I kid, I kid. Clearly you couldn't edit the GNUPU , at least in version 0.03. Maybe in 0.1, but that is many years from now.

    But yes, you are right. If there isn't a politicized language, there should be.

  34. BCD by Lawrence_Bird · · Score: 1

    When you want to be sure your financial calculations are accurate and not subject to floating point shenanigans

    1. Re:BCD by orkysoft · · Score: 1

      How about just counting pennies in integers?

      Funny thing is my ISP has a new web app that displays the bill, and it has exactly that floating point error.

      --

      I suffer from attention surplus disorder.
  35. COBOL not quite dead by BrokenHalo · · Score: 3, Interesting

    Quick disclaimer: IAACP (or rather I was in an earlier life, when I had to be).

    COBOL's main drawback was never any real technical issue. It is simply that it can be very tedious to do. Having said that, once you understand it, it is also a very easy language to code in. But there's certainly no reason to throw away the code just because it isn't trendy any more.

    Having said that, I do remember working on a site in the UK back in the '80s where the COBOL source to some important routines had long since disappeared, and my job was to patch the binary directly. Now that DOES take a bit of concentration. (Fun, though.)

  36. Not a heroic life by QuestorTapes · · Score: 5, Interesting

    > I declined to take the elective COBOL classes.
    > I knew enough about COBOL then to know that I
    > could not drag myself out of bed in the morning
    > to make a living with it.

    COBOL also encourages "heroic" programming. At a shop I worked at, they were very disparaging of the new systems using relational databases, and proud of the mainframe COBOL stuff, because it never went down.

    If you don't count the 4 times in one year a hardware failure caused critical business systems to go offline for 2 days to 3 weeks at a time while teams of COBOL coders used tools to manually delete and rebuild tables and indexes when various failures caused -extensive data corruption-.

    And the corrupt data caused by operator errors in nightly batch processing.

    And the recoding to fix a major financials bug that went undetected for 10 years until we compared the numbers on the external PC system.

    You see, that was "normal operations." by contrast, when a network failure occurred and the relational systems we built went offline for 45 minutes, and data recovery was "re-run the job", -that- was a disaster caused by the "sloppy PC programmers and their tinkertoy PC systems."

    COBOL's great stuff...if you like being paged at all hours to manually fix data.

  37. Each language has its purpose by symbolset · · Score: 1

    The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do not program in COBOL if you can avoid it.

    The Tao of Programming, Book 1, Verse 3.

    --
    Help stamp out iliturcy.
  38. My fate and COBOL by Orion+Blastar · · Score: 2, Funny

    My doctors discover that I have cancer and I will die, unless they put me into suspended animation and freeze me and the cancer so it does not spread until they can find a cure. But I have to sign an agreement that in order to pay for the cure and suspended animation I have to agree to work a job for the company that sponsors the cure and freezing.

    So I sign, and wake up in 9999 AD and they cure my cancer.

    I go to human resources for the company that paid for my freezing and cure and the HR director says:

    "So, Orion Blastar, I see you are a computer programmer and I also see that you know COBOL. We have a Y10K problem and need to make all of our programs work with five digit years. You'll be spending the rest of your life debugging COBOL programs to solve the Y10K problem."

    COBOL is not a dead language, it is an undead language like a Zombie or Vampire it is very hard to kill, as well as hard to work with.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
    1. Re:My fate and COBOL by Zarf · · Score: 1

      Two words:

      Computer Archeologist.

      --
      [signature]
    2. Re:My fate and COBOL by Orion+Blastar · · Score: 1

      I am the Computer version of Indiana Jones. Computer Archeologist. :)

      COBOL belongs in a museum!

      --
      Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  39. All hail the Lords of Cobol! by NoBozo99 · · Score: 1

    Now where did Boomer and Star Buck get off to?

    --
    I may not be a smart man, but I know what an inode is.
  40. Are COBOL developers all grey beards? by walterbyrd · · Score: 1

    As I understand it, it is a very common practice to train 23 year old guest workers to maintain the legacy COBOL systems.

  41. Executives listen to salespeople. by Maxo-Texas · · Score: 2, Insightful

    At my company, all the time, the salesperson says "this new system will solve all your problems-will take 12 months to implement max, and be very cheap to maintain!!!"

    And the executives bite on it every time.

    And lately, everything is going to "end of life". Excuse me? Cobol, RPG, and Java don't seem to go to end of life. I'm sure there are others.

    It's really hard when you finish a 2 year project (should have been 1 in salesman land), roll it out and debug production issues over the next year, and then 2 years later, it is "end of life".

    I guess it's good to keep me employed but it seems kinda dumb.

    "Wierd.. slasdot requires a wait... "It's been THREE minutes" --- at work it varies -- sometimes at 16 seconds it lets you posts while other times it takes the full minute.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  42. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  43. Old David Gerrold Cobol Story by Nom+du+Keyboard · · Score: 1

    David Gerrold (SF author) once told me the story of reading a manuscript by a new author. After he finished it he looked at the author for a moment before asking him: "And how long have you been a COBOL programmer?"

    Yes the person was a long-time COBOL programmer, and yes David G. obviously knew enough about COBOL to know it when he saw it.

    I do know from personal experience that DG had a keen understanding of what computers and programming might accomplish when he asked what it would take to design a device to automate the process of writing and editing manuscripts. He described a completely functional Word Processing system years before I saw and used my first DEC WPS-78 system, back in the days when all we had were simple text editors for writing code.

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    1. Re:Old David Gerrold Cobol Story by JerryQ · · Score: 1

      There was a legend that Admiral Grace Hopper of COBOL fame once asked a japanes person at a conference the way to the bathroom in COBOL. Probably apocryphal, and I have often pondered how it may have been phrased (or parsed!).

    2. Re:Old David Gerrold Cobol Story by larry+bagina · · Score: 1

      I don't know how it was phrased, but since she also invented bukake, that should give an indication of how it was parsed.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  44. A cunning plan... by turgid · · Score: 1

    But this one doesn't involve turnips.

    Isn't it about time someone made a COBOL compiler for the JVM/Java platform?

    Could you imagine just how excited the PHBs and IBM mainframers would be?

  45. I strongly disagree by HardWoodWorker · · Score: 2, Insightful

    If you think writing code for Java 5+ is "fashion," I don't think you're a very experienced programmer.

    Generics and java.util.Concurrent are mandatory for scalable systems nowadays. Java 5 added a lot of features to make code more reliable, not mindless fluff.

    If you're not using the latest features of the language where appropriate, you're doing your employer a huge disservice.

    Sorry, buddy, but you need to learn your technology. Just because people will employ you to write on outdated systems, doesn't mean you're doing your company a favor by refusing to learn the latest technologies and writing your code to run on JDK 1.4.

    1. Re:I strongly disagree by Ilgaz · · Score: 1

      I am not a Java developer but as I am an OS X user on PPC (the horror!) I had to browse a lot of mailing lists, java blogs. As there is a huge fight going on (now stabled a bit) about OS X'es outdated Java, there were some professional developers in discussion who were mentioning they stick with JRE 1.4 compatible unless the application sure needs something more new.

      What if your code doesn't/won't need such extensions and you code in Java 6 just because you want to prove you are so up to today's technology and abandoning your stuck users (to Java 5) and kinda outdated corporate desktops? I can tell you the result as one software vendor made that mistake, downloads go down like 30-40%. That is amazingly popular, top software. Not some "geek" tool.

      I see same people making funny faces when you mention them Pascal but there is an OS X Utility, decade old, totally "de facto" standard in professional desktops and it is written in? Pascal. Of course, it is not like guy can't code anything else, some of the code is pure ASM or even Objective C in certain conditions. It is kinda funny that most people doesn't know that fact and they become amazed when they hear the word "Pascal". Well, guy sells it to the most picky of picky people on planet, Mac using designers/graphics people so he is successful.

      What I tried to mean was, there is a huge elitism in everything in this World and COBOL is not free of it. It gets hit especially since we don't really see mainframes around while they are doing the hard work, with old fashioned language and state of art technologies running that "old" software.

  46. Yeah, well... by foqn1bo · · Score: 1

    That doesn't mean the rest of us need to give a $@*

  47. Lords of COBOL by Zarf · · Score: 1

    You fools, COBOL is immortal because of the Lords of COBOL. COBOL can neither be created nor destroyed...

    --
    [signature]
  48. Re:Cobol web framework! by Anonymous Coward · · Score: 0

    I hear they are working on COBOL dev kit (CDK) for iPhone. Cobol-relation mapping (CRM) is an active topic as you know.

  49. isn't it at about that age? by Anonymous Coward · · Score: 0

    Cobol turning 50, still important. Buys convertible, viagra.

    1. Re:isn't it at about that age? by Hal_Porter · · Score: 1

      Cobol turning 50, still important. Buys convertible, viagra.

      Is dating a somewhat ditzy but fashionable 18 year old language.

      Yeah, Java, I'm looking at you.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  50. Lose the programming almost altogether by JerryQ · · Score: 2

    I first developed cobol based systems 32 years ago, along the way I was architect and designer of, amongst a number of large systems, DEC's global currency management systems - 40 clusters worldwide operating 365/24, with self healing properties. I built a ton of systems in the interim, though no cobol for 20 years, all the time trying to lose programming altogether from the steps between definition and delivery. I have effectively achieved this (www.2di2d.com), using ubiquitous tools. So, to answer the question posed, yes, there is value in replacing, because 250bn lines of code, whilst robust, ultimately becomes inpenetrable. It must, however, be replaced with something far simpler, more robust and certainly more transparent.

  51. Maintenence Overlay UI Needed? by AtomicSnarl · · Score: 1

    Based on the idea that COBOL is reasonably mature -- which is to say that the various versions and flavors are not going through the language version update of the quarter -- how about an overlay UI in some appropriate flavor (Java/Python/Turbo Pascal/whatever).

    Dreamweaver was great because it hid all the Javascript stuff and HTML. It did the grunt work for you. Likewise, the current crop of CMS programs hide the base code by letting the user go straight to functionality. So, how about a COBOL tool that would:

    - translate source into equivalent (language of choice) code
    - identify loops, variables, constants, and so on.
    - etc, etc, to suit.

    Do you code directly in assembly or use an editor? It's like that. How deep do you have to go to polish the code enough to get reasonable speeds? If you have to play directly with the stacks, sure... you have to know all the bits and bobs. But if it's just consolidating a swarm of assigned constants into a table and letting them be modifiable, is COBOL really that opaque?

    There is always money in a better mousetrap and more effective user/maintainer interface. COBOL could sure use one from the sounds of it!

    --
    Pacifist paratroopers yell, "Ghandi!" when they jump.
  52. those ppl will never, ever retire by Anonymous Coward · · Score: 0

    80 is the new 70. seriously. people would rather die on the job than retire ( and some of them have no choice because without a job they have no health care and would die anyway )

  53. sounds like a management problem by Anonymous Coward · · Score: 0

    if i was your guys boss, i would kick both your asses. grow the hell up and get the damn program to run as the customer needs it to run, i dont care about your pissing games or how stupid you think each other are. you wasted all this time farting around with your personal issues instead of working. the janitor contributes more to this company than you do and is far more efficient. he doesnt sit around with his colleagues arguing about soap density for days on end while the toilet overflows. explain to me why i shouldnt train him to write code, promote him, and fire both of you for jacking off instead of doing your job.

  54. COBOL Turning 50, Still Impotent by Anonymous Coward · · Score: 0

    ...fixed that for you.

  55. C is 37 years old by bonch · · Score: 1

    It's a little strange to talk about how old COBOL is when C came out in 1972. These languages were the obvious solutions to computing problems. It's not a surprise they'll be around for a while.

  56. List of reserved words in COBOL by dingen · · Score: 1

    No COBOL-related article should go without a link to the list.

    --
    Pretty good is actually pretty bad.
  57. So Say We All by Anonymous Coward · · Score: 0

    This completely explains everything about the Lords of Cobol and the final episode of BSG!
    (Which makes at least as much sense as the final episode made.)

  58. modern COBOL frameworks by mAriuZ · · Score: 1

    seems that cobol has some good frameworks that could compete with rails and growing django
    it's supported on modern web type terminals VT100 compatible

    http://www.reddit.com/r/programming/comments/8bpdq/cobol_on_cogs_supports_standard_terminals_vt100/

    --
    developer http://flamerobin.org
  59. lets be realistic by TRRosen · · Score: 1

    most companies keep there COBOL systems running because no one is left that knows how they were originally set-up well enough to build a replacement. I know of a couple of places still running COBOL on Wangs because no-one knows how they work.

  60. If it ain't broke don't fix it!! by Anonymous Coward · · Score: 0

    I worked for a company that tries to prot apps from COBOL to jva, web architecture... The java was slow, the users hated it. It stalled after it took about 4 times longer than expected to port the functionality from COBOL to Java.

    What I say is Legacy == Tested :)

  61. Hard to understand? by s1lverl0rd · · Score: 0

    divide apples by people giving applesperperson

    Sure, it is verbose, but I think the above statement is easier to read and understand than "float applesperperson=apples/people;". It might get worse with longer programs, of course.

  62. Mainframe != Cobol by slapout · · Score: 1

    Why do people hear mainframe and automatically thing cobol? There are other language compilers available on the mainframe (like C++). Associating Cobol with mainframes gives mainframes a bad name.

    --
    Coder's Stone: The programming language quick ref for iPad