×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Join COBOL's Next Generation

timothy posted about 10 months ago | from the enjoy-your-tab-diet-beverage-too dept.

Programming 276

jfruh writes "COBOL, it's finally becoming clear, isn't going away any time soon; there are far too many business-criticial applications written in it that work perfectly well for that to happen. This reality could be a career boon for IT staff. Need to learn the ins and outs of COBOL? Your employer may well pay for your training. Just getting started in IT? COBOL can provide a niche that gets you a first job."

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

276 comments

Nothing does (4, Interesting)

geekoid (135745) | about 10 months ago | (#44102433)

what COBOL does as well as COBOL does it.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44102485)

Making developers sick?

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44102687)

Also old. Cobol makes you old!

Kinda like the expanding universe... the farther the galaxy the faster it's moving... well... the more cobol a programmer knows the older they are...

Re:Nothing does (3, Funny)

julesh (229690) | about 10 months ago | (#44102521)

This is true. There is no other language which enables programs written in COBOL to run.

Re:Nothing does (2)

Half-pint HAL (718102) | about 10 months ago | (#44102537)

Actually, you could probably get Lua to run COBOL programs....

Re:Nothing does (1)

gweihir (88907) | about 10 months ago | (#44102669)

Actually, you could probably get Lua to run COBOL programs....

Huh? How would that work? Lua is pretty cool, but this is not only about interpreting the individual instructions.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44102817)

Or pretty much any other language... SImply implement an interpreter.

not even C? (2)

ChipMonk (711367) | about 10 months ago | (#44103263)

From the homepage of OpenCOBOL [opencobol.org] :

OpenCOBOL translates COBOL into C and compiles the translated code using the native C compiler. You can build your COBOL programs on various platforms, including Unix/Linux, Mac OS X, and Microsoft Windows.

So would that be COBOL running on C?

Re:not even C? (3, Insightful)

osu-neko (2604) | about 10 months ago | (#44103711)

No. That would be COBOL running on machine code. By the time it's running, compile time (the only time C was involved in the process) is past...

Re:Nothing does (3, Interesting)

Nerdfest (867930) | about 10 months ago | (#44102557)

If you mean solving business-related information technology problems in a concise and maintainable way, I think you're very, very wrong. COBOL is a horrible, wordy language. If you mean wearing out developer's keyboards, you are more correct. COBOL is too verbose to be easily legible. I'm of the opinion that there is an ideal level of information density when it comes to conveying the intent of a piece of software. At one end is assembly, and at the other is COBOL. neither are good. C approaches it from one end and probably something like Python from the other. Both are for more usable, maintable, and flexible languages.

I'm of the opinion that if you enjoy writing code in COBOL you either haven't used anything else or you're a masochist.

Re:Nothing does (4, Insightful)

Nerdfest (867930) | about 10 months ago | (#44102601)

I will also add that the reason it's so hard to get rid of is that most software written in COBOl tends to be a tangled mess that can't be easily split up and decoubled, replacing parts with more modern, usable languages. It tends to be an all or nothing venture. It has very little, if anything to do with it being the best language for the job.

Re:Nothing does (3, Interesting)

macraig (621737) | about 10 months ago | (#44102911)

It didn't have to be that way. When I was still in school a millennium ago and took my one and only COBOL course, I recall devising a pseudo-structured way of using the language that the instructor had never seen before, yet my code was no less capable than the more typical approach(es). It obviously caught him quite by surprise by his reaction, which I've never forgotten (I've forgotten every detail about my technique). Perhaps it made my code more modular and maintainable.

Re:Nothing does (3, Insightful)

Nerdfest (867930) | about 10 months ago | (#44103053)

It may be possible, but you shouldn't have to bend or force the language to make it do the right thing. A language should make doing things the "right" way easy.

Re:Nothing does (3, Insightful)

macraig (621737) | about 10 months ago | (#44103113)

Agreed, but the origins of that language predated many theories about what the right way is, and by then I suppose there was so much code in the wild that no one wanted to tackle the matter head-on?

Re:Nothing does (3, Insightful)

azadrozny (576352) | about 10 months ago | (#44103413)

You are spot on. If the creators of the Internet knew what it would grow into, they would have designed it differently. Consider the debates and frustration surrounding HTML5 or IPv6. Sometimes you have to declare you have done your best and release it, and then adapt as you learn.

Re:Nothing does (2, Insightful)

icebike (68054) | about 10 months ago | (#44103181)

As long as YOU get to decide what is the right way, there would only be one computer language. Your pet language.

Look, its pretty clear you are totally ignorant about COBOL, and have maybe looked at a couple programs once, but your pontifications clearly indicate you haven't a single clue.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44103253)

It may be possible, but you shouldn't have to bend or force the language to make it do the right thing. A language should make doing things the "right" way easy.

For instance by supporting a highly performant floating point format without decimal rounding errors as the default?

Re:Nothing does (2)

Darinbob (1142669) | about 10 months ago | (#44103541)

You don't have to do this. There are modern structured constructs in COBOL. The problem though is that if the program you are working with wasn't written using them then you have to deal with the mess. And there are a lot of COBOL programs written using GOTOs and the like.

These problems exist in every language, but they tend to be more common in COBOL and Fortran because those are some of the oldest languages around. Thus you have to deal with decades old code that still has to work; plus the programmers learned by example from the boss, who learned by example from the boss, who learned by example...

Re:Nothing does (1)

Hognoxious (631665) | about 10 months ago | (#44103905)

It may be possible

It isn't, unless by "a millennium" he means what the rest of us call a week.

You couldn't do anything remotely clever with the wanky old version I had the pleasure to work with in the '90s (which, according to its (c) message, was older than I was).

Re:Nothing does (3, Insightful)

Minwee (522556) | about 10 months ago | (#44103019)

It has very little, if anything to do with it being the best language for the job.

That depends on what "the job" is. If the job is to implement a completely new, problem-free and infinitely maintainable system for managing financial transactions with no budget or time constraints, then the answer is "No". Actually, it's a much longer answer that starts with "HELL NO" and includes phrases like "If I ever catch", "Then I'm going to" and "With a frikkin' caber, that's what", but the general sense of it is "No".

If the job is to keep the horrific monstrosity which runs the entire bank lumbering along for another few months while still complying with the latest round of new regulations before it drives you irredeemably mad then the absolute best language for the job is COBOL, because that's what code-thulhu is already written in.

Re:Nothing does (3, Insightful)

SerpentMage (13390) | about 10 months ago | (#44103185)

And of course languages like Javascript, Ruby, PHP, and so on don't make tangled messes? Lest we forget Objective C or even C++. The only languages that I would think where most people would agree to that are "clean" would be C#, Java, and Smalltalk. I don't want to get into the functional paradigm because it is not IMO a tangled mess if you understand the paradigm.

Anyhoo, if messes were the basis of whether or not to adopt programming languages we would not be writing any programs. Ever try to figure out WTF a Java Spring or Java EE app is? Its a bleeding mess!

The thing is that Cobol applications work! Yes they work, and they perform oodles of calculations without having to do anything major. Let's not forget that at the end of the day most things don't change that much. Thus why rewrite? And the answer, "oh but this is a new shiny toy" does not count.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44103499)

>Ever try to figure out WTF a Java Spring or Java EE app is? Its a bleeding mess!
This, 1000 times.

Re:Nothing does (1)

Jane Q. Public (1010737) | about 10 months ago | (#44103731)

I imagine it's also possible for an artist to make a living doing cave paintings. That doesn't mean I'd want to do it.

I have a huge amount of respect for Grace Murray Hopper. But technology changes.

Re:Nothing does (2, Informative)

Anonymous Coward | about 10 months ago | (#44102721)

If you mean solving business-related information technology problems in a concise and maintainable way, I think you're very, very wrong. COBOL is a horrible, wordy language. If you mean wearing out developer's keyboards, you are more correct. COBOL is too verbose to be easily legible. I'm of the opinion that there is an ideal level of information density when it comes to conveying the intent of a piece of software. At one end is assembly, and at the other is COBOL. neither are good. C approaches it from one end and probably something like Python from the other. Both are for more usable, maintable, and flexible languages.

I'm of the opinion that if you enjoy writing code in COBOL you either haven't used anything else or you're a masochist.

COBOL is a domain specific language. You're a masochist and a fucking idiot if you use COBOL to design an operating system, or a control system for a nuclear plant. COBOL is designed from the start for business applications. And that's what it's good at. The syntax is what it is, but 100 times better to design business programs in COBOL than in fucking JAVA. There's a reason why languages come and go but FORTRAN and COBOL are still there. Think about it.

Re:Nothing does (2)

Nerdfest (867930) | about 10 months ago | (#44102879)

COBOL was breated not to be the perfect language for business, but to be a language that was easy enough for an average 'business-person' that was not a programmer, to write programs. The end result unfortunately was that lots of average 'business-people' wrote software. In general, it ended up being a tangled mess that is still (barely) running many years later and few know how to maintain or replace it. Be careful what you wish for,

Re:Nothing does (2, Insightful)

Anonymous Coward | about 10 months ago | (#44103525)

So... you're saying that COBOL has already been replaced by VBA?

Re:Nothing does (2)

blippo (158203) | about 10 months ago | (#44103621)

Hi AC.

I think you have confused the term "domain specific language" with something else. And besides, what's generally considered as a nice language is that it's easy to extend it (using the language itself) so that you can USE it as a DSL. Not so much for COBOL.

Today, it would probably make more sense to use a modern lisp dialect to write business applications, at least from the DSL point of view, and
its an even older language.

Whats keeping Fuckin' COBOL alive is the fact that it's running in a well defined virtual machine, and in a well defined OS on quite solid hardware.

Fucking Java is the *new* Fucking COBOL, for the fact that it's running in a well defined virtual machine, and in a well defined environment.

If you find a 10 year old COBOL program, Java program, and a C++ program, you will be able to compile and run the COBOL and Java program
more or less on the first try, but the c++ will take a rather long time to get in shape since the toolchain and every single library and include file is changed
since it last worked...

Another reason is that hey both seems to attract the different kind of-, but still fucking useless- programmers.

I think Djikstra nailed main problem with COBOL in 1975;

-- The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.

The best counter argument is something like this:

--COBOL programs with convoluted control flow indeed tend to 'cripple the mind, but meh...

Re:Nothing does (4, Insightful)

solidraven (1633185) | about 10 months ago | (#44102749)

Being verbose is often considered bad, yet languages like VHDL and Ada do it as well. The latter two combine it with a very strict syntax. As a result Ada and VHDL code that compiles/synthesizes has a larger chance of working on the first attempt. More keystrokes isn't exactly a problem. I'm not sure about you but my typing speed isn't the limiting factor in writing programs. The days of planning, flow diagrams, etc. are.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44102787)

Yes, COBOL is wordy, but for the most part you can accomplish the same thing in the same number of lines. Unless of course you write C or C++ where you are packing as much as you can into a line. Yes, I wish I could do "running_total =+ current_val" instead of "compute running-total = running-total + current-val", or do "last_val = current_val" instead of "move current-val to last-val". My real issue being 'verbose' is when it causes extra lines, which makes logic harder to follow.

Re:Nothing does (2, Informative)

Anonymous Coward | about 10 months ago | (#44102947)

Programs should be readable and understandable by humans. In the end it's humans that maintain software, not the computer. Computers only have to execute code, but we, we have to read code. So a verbose language that conveys all the information explicitely is much better than C or C++ where you're almost constrained to obfuscate by default. That's the nature of those languages. So yes in an e-peen contest, C or C++ may win over COBOL; but start maintaining large software and clarity is paramount. C or C++ programmers wouldn't even recognise that word (clarity).

Re:Nothing does (2)

Waffle Iron (339739) | about 10 months ago | (#44103453)

but start maintaining large software and clarity is paramount.

Mathematicians have spent many centuries refining how best to expresses mathematical operations with clarity -- And they sure as hell didn't pick spelled out English verbs in all caps.

That's not clarity; instead, it looks like that obfuscated legalese from an EULA text box.

Re:Nothing does (1)

RabidReindeer (2625839) | about 10 months ago | (#44103457)

Yes, COBOL is wordy, but for the most part you can accomplish the same thing in the same number of lines. Unless of course you write C or C++ where you are packing as much as you can into a line. Yes, I wish I could do "running_total =+ current_val" instead of "compute running-total = running-total + current-val", or do "last_val = current_val" instead of "move current-val to last-val". My real issue being 'verbose' is when it causes extra lines, which makes logic harder to follow.

ADD CURRENT_VAL TO RUNNING_TOTAL.

Which doesn't excuse 1001 other ways of inducing COBOL inflicted carpal-tunnel syndrome, but at least there's that.

Although one of the most horrible programs I ever saw included a 3-page "IF" statement. Since the "ENDIF" for the original COBOL is a miniscule dot, that's just a disaster looking for ways to happen.

Re:Nothing does it better (2)

icebike (68054) | about 10 months ago | (#44103109)

There is on thing every new COBOL complains about in COBOL: Its too verbose.
There is one thin that every COBOL journeyman loves about COBOL: Its so verbose and easy to read.

Re:Nothing does (2)

Darinbob (1142669) | about 10 months ago | (#44103467)

COBOL has some features rarely seen elsewhere, except in libraries. A wide variety of data types including built-in fix point and decimal for example. It is also relatively simple, there's no way to do fancy tricks with it like with C, you won't have complex data structures, what you see is what you get and that helps maintenance. Now maybe there are better business oriented languages but they just aren't that popular or portable.

Of course it has bad stuff too. Like Fortran it only added structured programming constructs late in the game, and both languages are often used with on "dusty deck" programs that were written decades ago or by people who didn't use structured consructs. So most COBOL users are going to run into spaghetti code and have to deal with it.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44102635)

For those of us who are unfamiliar, could you describe what it is that COBOL does that other languages don't cover as well?

Re: Nothing does (1)

Anonymous Coward | about 10 months ago | (#44102689)

Sarcasm.

Re:Nothing does (3, Informative)

AlphaFreak (646767) | about 10 months ago | (#44103339)

Record (file) handling. To process a record-composed file in C you have to write a lot of boilerplate code (just parsing the records into its components and re-creating the records by parts) requires probably to write a specific function to do that. In COBOL you just declare the structure mapping the physical record and you are done.

By the way, the languge has all the control structures needed to write decent code since COBOL-81. Before that (COBOL-74) it was a really ugly mess, but the modern COBOL (yes, it has been updated a lot of times) allows to write clean and understandadble code.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44103073)

What about PL/I? You can write code that looks almost exactly like COBOL.

Re:Nothing does (0)

Anonymous Coward | about 10 months ago | (#44103191)

Have you ever looked into a PL/I program?? The only thing in PL/I which resembles COBOL is the syntax of the structure declarations (based on level numbers), but the code itself is much more similar to PASCAL than to COBOL. And the last versions of the language are even more similar to C (A lot of syntax sugar is now accepted in PL/I, like the post-increment/decrement and composite assignements like +=, -= and so others)...

Re:Nothing does (1)

Darinbob (1142669) | about 10 months ago | (#44103571)

Ya, but try to find a PL/I compiler that runs on a wide variety of machines and operating systems, or a significant number of PL/I programmers.

Re:Nothing does (4, Interesting)

mwvdlee (775178) | about 10 months ago | (#44103187)

It sure does!

On the other hand, I got out of COBOL programming after some ~12 years because the only thing COBOL does well is what COBOL has done thousands of times before.

It's a boring platform to develop for; very few interresting (from a technical perspective) projects ever come along.
Safe and secure life as a developer; yes. Actually enjoying your safety and security; no.

COBOL Lives! (1, Informative)

LeepII (946831) | about 10 months ago | (#44102513)

I took COBOL in the 80's, my instructor was one of the guys that MADE COBOL. He said even back then, COBOL will not be going anywhere for decades. Man did he call it.

Let me be clear about this: (0)

Anonymous Coward | about 10 months ago | (#44102523)

No FUCKING way.

A complicated answer to a simple problem (1)

Sparticus789 (2625955) | about 10 months ago | (#44102533)

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. [utexas.edu] -- Dijkstra

So I say any company that wants to send their employees to a COBOL class should be sent to jail for torture and reckless endangerment.

Re:A complicated answer to a simple problem (3, Funny)

Minwee (522556) | about 10 months ago | (#44103049)

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. [utexas.edu] -- Dijkstra

So I say any company that wants to send their employees to a COBOL class should be sent to jail for torture and reckless endangerment.

By that logic, as a result of off-shoring initiatives, several major US corporations have technically declared war on the nation of India.

No thanks... (0)

Anonymous Coward | about 10 months ago | (#44102535)

I'd rather die than ever program in COBOL again...

Java = the next COBOL (1)

Anonymous Coward | about 10 months ago | (#44102541)

If you already know Java, you don't need it. There is so much enterprise Java code out there that there will be work for Java coders for at least the next 50 years.

Re:Java = the next COBOL (5, Insightful)

gweihir (88907) | about 10 months ago | (#44102785)

And in how far is Java any less messed up than Cobol is? Java, as used by enterprises today, is an abomination.

Re:Java = the next COBOL (0)

Anonymous Coward | about 10 months ago | (#44102995)

I might be wrong, but I believe that the user communities for Java are much more open, eager, and helpful than the few that exist for COBOL. I'm willing to bet that the few IDEs that exist strictly for COBOL are less extensible than those for Java, though I might be wrong about this as well.

But shoving all that aside, I've never once met a single COBOL developer who was actually happy. But with Java, I've met many.

Re:Java = the next COBOL (-1)

Anonymous Coward | about 10 months ago | (#44103235)

And in how far is Java any less messed up than Cobol is? Java, as used by enterprises today, is an abomination.

You, sir, are either not a programmer, a C/C++/C# fanboi, or an idiot.

Perhaps all five (... three sir...) three.

Works perfectly well? (1)

TsuruchiBrian (2731979) | about 10 months ago | (#44102577)

"COBOL, it's finally becoming clear, isn't going away any time soon; there are far too many business-criticial applications written in it that work perfectly well for that to happen.

Well I guess we can finally fire all the COBOL programmers. Their job is now completed.

Re:Works perfectly well? (1)

UnknowingFool (672806) | about 10 months ago | (#44102641)

That is until the hardware dies and business decides to move COBOL to new hardware rather than develop in a newer language.

Re:Works perfectly well? (0)

Anonymous Coward | about 10 months ago | (#44102851)

That is until the hardware dies and business decides to move COBOL to new hardware rather than develop in a newer language.

That's why IBM exists in this world.

Re:Works perfectly well? (1)

TsuruchiBrian (2731979) | about 10 months ago | (#44103025)

They can simply compile all the COBOL code to the new platform. Since the COBOL applications in question work perfectly well, I assume they are written in a way that is platform independent.

Re:Works perfectly well? (1)

Darinbob (1142669) | about 10 months ago | (#44103591)

But then you need to get rid of all politicians, federal, state, county, and city. Because those guys tend to change the rules all the time so that the code needs to be continually maintained. Maybe fire the bosses also, because they keep changing rules or wanting the program to do something new.

Yeah? So where is Visual Cobol & Cobol++??? (0)

Anonymous Coward | about 10 months ago | (#44102597)

Just sayin'...

The reason it is still used is simple. (3, Interesting)

mindmaster064 (690036) | about 10 months ago | (#44102617)

COBOL is one of the few languages that is completely standardized. IO, formatting, everything works the same EVERYWHERE. Certainly, the column nature of coding in the language is annoying, but not much more than BASIC was with it's numbering scheme. As far as the programs that chug through industrial-sized databases go few touch as many records as COBOL does.

Re:The reason it is still used is simple. (0)

Anonymous Coward | about 10 months ago | (#44102963)

As far as the programs that chug through industrial-sized databases go few touch as many records as COBOL does.

Judging by the way you write English, I take it you're a COBOL programmer?

Re:The reason it is still used is simple. (2)

T.E.D. (34228) | about 10 months ago | (#44103129)

COBOL is one of the few languages that is completely standardized. IO, formatting, everything works the same EVERYWHERE. Certainly, the column nature of coding in the language is annoying, but not much more than BASIC was with it's numbering scheme. As far as the programs that chug through industrial-sized databases go few touch as many records as COBOL does.

This comment was found in a time-capsule we buried 35 years ago in 1978, along with a six-pack of Shlitz.

Sad to say, the beer had gone kinda skunky, but I think the comment is still good, isn't it?

Re:The reason it is still used is simple. (0)

Anonymous Coward | about 10 months ago | (#44103399)

You burried Shlitz. It was skunky the day it came out of the brewery.

"When you're down to Shlitz, you're out of beer"

Re:The reason it is still used is simple. (0)

Anonymous Coward | about 10 months ago | (#44103257)

"As far as the programs that chug through industrial-sized databases go few touch as many records as COBOL does."
  Yes, the number of languages that do that might be very few, like C++ or Java, but certainly a lot more people do that in those languages than Cobol. Google probably processes the whole web several times in a day via mapreduce, which should trump any database that COBOL is used to access.

Re:The reason it is still used is simple. (0)

Anonymous Coward | about 10 months ago | (#44103359)

seriously?, the numbering schemes were not required for all basic variants.

Re:The reason it is still used is simple. (2)

AlphaFreak (646767) | about 10 months ago | (#44103439)

Procedural languages are OK for > 90% of needs. You don't really need an OO language nor a fancy framework to read a sequential file and summarize its records to generate a payroll... Oh, and the fixed-column format is optional in the modern COBOL compilers.

Re:The reason it is still used is simple. (0)

Anonymous Coward | about 10 months ago | (#44103533)

I haven't touched COBOL in a decade and... I'm pretty happy about that. But I"m not sure you're 100% correct.

You are right about COBOL tugging down every record... but... that's because that's how those batch processing systems were meant to run.

RE: standardization and working the same... You say that, but ten years ago my microfocus stuff didn't work on VMS reliably.

And the weird 66/77/88 record definition conventions are also non uniform... you'd consistently get the boolean types in 88 (? IIRC ?), but not the register inlining behavior in the high numbers (I think it was higher than 66 that was supposed to go in memory, but only if boolean ?)

I guess it /worked/ in that sense, but it didn't do the same thing.

But who knows, maybe the VMS mainframe was the one off standard...

I know I had an HPUX to test it on once that stuff behaved differently on too...

Re:The reason it is still used is simple. (1)

CaseCrash (1120869) | about 10 months ago | (#44103729)

COBOL is one of the few languages that is completely standardized. IO, formatting, everything works the same EVERYWHERE.

Hahahahaha!!!! No way. I work in a COBOL conversion shop (simple explanation, anyways) and I've worked with COBOL on several types of machines, and not even all the A series machines act the same with the same code. You would not believe the crazy, undocumented crap that programmers use to make their programs work.

Sure, the basic "COBOL" language is mostly standardized (once you pick your variant) but real life implementations are not coded that way and everyone manages to find the little things that make their stack unique.

COBOL is... (4, Insightful)

erp_consultant (2614861) | about 10 months ago | (#44102691)

not a lot of fun to program in. It's wordy, it's procedural...generally kind of boring. But...it's imbedded in so many mission critical systems. The ERP system that I work on is chock full of COBOL stuff, mainly in the Payroll processing modules. It works, it's really fast, and nobody wants to mess with it. Sure, you could rewrite it in Java or some other language but it represents risk that many companies are not willing to take.

COBOL programmers are in big demand now and it's only going to grow. I'm not sure how many schools still teach COBOL but I suspect it's not many. So if you can put up with having a little less glamorous coding to do it's a great job opportunity.

Re:COBOL is... (2)

Qzukk (229616) | about 10 months ago | (#44102815)

I feel that COBOL is the exact opposite of Perl. People call Perl a write-only language because you can write code in it that is really, really hard to read and understand. Meanwhile, statements like

MULTIPLY X BY Y GIVING RESULT

are easy to read and understand exactly what is happening, but I'll be damned if I can ever remember to write that twisted bit of English without looking it up in a reference (and I use this statement as an example every time I make this point about COBOL). For me, COBOL's attempt to be almost but not quite English has made it a read-only language.

Re:COBOL is... (1)

cdrudge (68377) | about 10 months ago | (#44102985)

COBOL stands for COmmon Business Oriented Language. It's syntax was suppose to be English readable to allow bean counters, actuaries, businessmen, etc to read, write, or at least understand what it was doing using terminology that they would use.

Re:COBOL is... (2)

nitehawk214 (222219) | about 10 months ago | (#44103301)

"Make it possible for programmers to write in English and you will find the programmers cannot write in English."

Re:COBOL is... (2, Insightful)

Anonymous Coward | about 10 months ago | (#44103367)

Exactly this!!

My dad programmed COBOL from the early 70's until he retired. He always came back to this point. You get an auditor comes in and wants to really know what your program is doing, he'd actually look at the listing. He wasn't a programmer, he was an accountant, an auditor. He could follow what you were doing without feeling like you were pulling the wool over his eyes. And if you don't think keeping an auditor happy is important, you haven't been audited.

Re:COBOL is... (1)

Anonymous Coward | about 10 months ago | (#44103179)

COBOL has had COMPUTE since as long as I've been alive (40+ years). So, you can write algebraic formulae directly: COMPUTE X = X + 2

Also, the MULTIPLY...GIVING and other math verbs were almost assembler instructions: MULTIPLY=math-op-code, X,Y=input-variable-addresses, GIVING=target-variable-address. At the time, that saved quite a bit of programming without fancy parse-trees.

You Can Tell COBOL Was Designed By A Woman (1)

Anonymous Coward | about 10 months ago | (#44102751)

Pages and pages and pages of foreplay before you get any action.

Re:You Can Tell COBOL Was Designed By A Woman (0)

Anonymous Coward | about 10 months ago | (#44102765)

Pages and pages and pages of foreplay before you get any action.

Ahhhhh but when the action comes, it's so much better. :)

Hmm (2)

Tolkienfanatic (1111661) | about 10 months ago | (#44102767)

As a current undergrad studying CS, I've never heard of COBOL in any context other than being a punchline. However, a few days ago at work there was a request for application onboarding for... you guessed it, a COBOL-based application. Suffice it to say I nearly sprayed coffee everywhere.

This again? (0)

Anonymous Coward | about 10 months ago | (#44102783)

I remember hearing this same pitch 15 years ago. COBOL, it's what everyone will need training in. COBOL, it's everywhere and can't die, come learn it. Yet, there still aren't many COBOL jobs out there. Too bad, I actually like the language and would enjoy working with it.

Java (1)

hraponssi (1939850) | about 10 months ago | (#44102807)

People always say Java is the next Cobol. I program in Java, so I guess I already joined the next COBOL gen?

Re:Java (1)

nitehawk214 (222219) | about 10 months ago | (#44103347)

People always say Java is the next Cobol. I program in Java, so I guess I already joined the next COBOL gen?

And it is your duty as a Java programmer to prevent this prophecy from becoming true. Even if it means destroying Java when it's time comes.

Re:Java (1)

RightSaidFred99 (874576) | about 10 months ago | (#44103933)

Nah, Java is the next C. It'll always be around and it works fine, and even by modern standards isn't all that bad. I find C# to be far superior to Java, but Java's fine and if I had to get a job doing only Java I wouldn't be too upset.

I think I did COBOL was back in HS (0)

Anonymous Coward | about 10 months ago | (#44102837)

If I recall COBOL was one of those column specific languages that you had to put the right characters in the right columns to make things work.. And I hear people complaining about python being white space specific. Nothing beat counting out your spaces over an old VT100 terminal.

An advert, not even thinly veiled (1)

mpbrede (820514) | about 10 months ago | (#44102887)

Come on. Why is this even allowed on /.? The RFA has the email address of the recruiter and is really just a solicitation. The piece on /. is hardly any better.

Another good point (2, Interesting)

Anonymous Coward | about 10 months ago | (#44102921)

One of the reasons so much IT outsourcing in mainframe shops is happening is because new workers have little exposure to the mainframe culture. I work in an industry highly dependent on mainframes, but not directly with the technology. However, I do see the fundamental difference between mainframe systems work and Linux/Windows on Intel systems work. For someone who doesn't "get it," mainframes look completely inflexible and definitely a legacy technology. When you're talking about a system that still has references to things like punch cards compared to Windows Server 2012 running in VMWare, there's a huge mindset change. There is also a very strict change control process around everything, usually because messing up something on the mainframe knocks out the company's key business operations. (Example: RBS went offline for days because an (offshore) employee messed up a batch scheduling software upgrade and executed a wrong rollback procedure.)

That's why I think mainframes and COBOL get a bad rap -- they're ancient systems, but only because they work and they're at the core of the businesses that use them. And for the purpose, they're great. Mainframes are designed for maximum transaction throughput and reliability above all else, which is why most people don't use them as a generic computing platform. I'm a systems engineer primarily working on Windows installations, but I'm also flexible and cross-platform enough to understand Linux, UNIX and the other systems our stuff talks to. Because of this, I'm employed -- you wouldn't believe how little effort it takes to stand out in an environment of people who stick to the one system they know. Adding a tool to the tool set isn't a bad thing. I don't know everything about Linux or mainframes, but I can at least ask intelligent questions.

I can also see why people might shy away from learning COBOL, since the MO for most companies dealing with talent shortages is to offshore everything. However, I'm of the mindset that everything happens in cycles. My company is very much "trailing edge" when it comes to IT trends, and we're just starting to figure out that offshoring isn't the magic answer to software development problems. So, I think the trend is coming back around, just like these newfangled "virtual machines" on Intel processors. Wow, what a concept! Sci-fi type stuff! :-)

Re:Another good point (2)

DutchUncle (826473) | about 10 months ago | (#44103741)

People have been reinventing mainframes - badly - for years. They just call them "servers" and "clouds" and other euphemisms.

I'm considering this, actually (2, Interesting)

Anonymous Coward | about 10 months ago | (#44102967)

I've got a pile of various degrees, none in CS, yet I keep ending up coding shit for a living. None of it is all that great - I'm a massive generalist and not a programmer. It's tempting to just get a good intro to COBOL and then dive into it for a career. It's one of those languages that doesn't change much and isn't about to get replaced with the newest and greatest.

After half of my career switching jobs every 3-4 years, I'm thinking about settling down. Compared to what I've had to code so far in life, COBOL doesn't look that bad.

COBOL is plainly superior... (4, Funny)

istartedi (132515) | about 10 months ago | (#44103079)

COBOL is plainly superior... from an evolutionary standpoint. It propagated and survived. Nevermind that it feeds on the souls of developers. That's irrelevant. Evolution only cares about propagation and survival.

Souleater? (0)

Anonymous Coward | about 10 months ago | (#44103723)

I'm a programmer, I have no soul. Management has eaten it decades ago.

I've seen hell, and it looks surprisingly like an executive board room. - Lao Tzu

we need more (3, Interesting)

Toshito (452851) | about 10 months ago | (#44103289)

At my work we're just starting a multimillion dollar project, mostly in COBOL, on a mainframe. And I'm not talking about modifying old code, we're developing a new system. So we'll need about 30 new COBOL programmers very soon. It's far from dead!

IF YOU CAN (1)

cmtuan (897618) | about 10 months ago | (#44103459)

        10 YOU      PIC 9.
            88    READ-THIS VALUE 1.

        IF READ-THIS = 1
            MOVE YOU TO THIS-JOB
        END-IF

Bytecode Compiler (0)

Anonymous Coward | about 10 months ago | (#44103651)

My understanding is that there is a compiler from COBOL to Java Bytecode. If so, it seems like it's plausible to compile from COBOL to CLR Bytecode. Either way you can migrate gradually over to a better, more modern language. There are issues, sure, but probably not as many issues as, say, teaching new programmers to write COBOL and maintain it for a few more decades.

Object-oriented (1)

DutchUncle (826473) | about 10 months ago | (#44103701)

MOVE CORRESPONDING. Try doing that right in any other language. Try figuring out where each different C compiler put your bits and bytes, and what size it made your integers, and what other random changes it made with alignment and ordering. I cannot believe that anyone on /. honestly loves a language that defines which of its behavior is undefined and unpredictable.

You can write both garbage and poetry in any language. Cobol at least *tried* to make some things clear.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...