Department of Homeland Security Still Uses COBOL (softpedia.com)
The Department of Defense has promised to finally stop managing the U.S. nuclear arsenal with floppy disks "by the end of 2017". But an anonymous reader shares Softpedia's report about another startling revelation this week from the Government Accountability Office: Another agency that plans to upgrade is the US Department of Veterans Affairs, which uses COBOL, a programming language from the '50s to manage a system for employee time and attendance. Unfortunately for the VA, there were funds only to upgrade that COBOL system, because the agency still uses the antiquated programming language to run another system that tracks claims filed by veterans for benefits, eligibility, and dates of death. This latter system won't be updated this year. Another serious COBOL user is the Department of Homeland Security, who employs it to track hiring operations, alongside a 2008 IBM z10 mainframe and a Web component that uses a Windows 2012 server running Java.
Personnel files are serious business. A 2015 leak of the secret service's confidential personnel files for a Utah Congressman (who was leading a probe into high-profile security breaches and other missteps) led the Department of Homeland Security to discipline 41 secret service agents.
Personnel files are serious business. A 2015 leak of the secret service's confidential personnel files for a Utah Congressman (who was leading a probe into high-profile security breaches and other missteps) led the Department of Homeland Security to discipline 41 secret service agents.
That's all I have to say.
What's the use of COBOL got to do with leaks?
If anything COBOL is more secure, because you can't transport a wad of punch cards via the internet.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Many of the stories about this say their systems "are about 56 years old and use an outdated computer language". That's actually a pretty good description of me! Well, I'm 58 and I use several outdated computer languages, but anyway...
Have you read my blog lately?
COBOL is for business.
It is a DSL (Domain Specific Language), that is the problem with developers today, they use the WRONG tools, one tool (C#, VB or Java or JavaScript) which are general purpose languages, rather than DSL's specific to that job.
Systems are made up of many languages, to express a solution, DSL's are VERY VERY important, in fact we do not use enough DSL's in our solutions, I blame education dumbing down focusing on business, rather than academic excellence.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. RM-COBOL.
OBJECT-COMPUTER. RM-COBOL.
DATA DIVISION.
FILE SECTION.
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
BEGIN.
DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
DISPLAY "What's wrong with COBOL?".
DISPLAY "Frosty piss!!!!!! ".
STOP RUN.
MAIN-LOGIC-EXIT.
EXIT.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Like, YESTERDAY, amirite? Love, Legal.Troll (dodging -1 karma)
All large US government organizations still rely on COBOL systems in one way or the other. They are slowly being replaced, but they process a large amount of data, and have been doing so for a long time. With modern hardware, the number of people who are required to support them dropped from a few hundred per large system to 30-50 people. Hard to replace all the effort that went into making them do what they do.
.
The major problem facing the Dept of Homeland Security is not its working COBOL system. The major problem facing the Dept of Homeland Security is that it cannot get enough candidates for its jobs.
Maybe the focus should be more on how the Department can attract more qualified candidates, and less on fixing its working computer systems.
If only Americans knew how much of their financial institutions still ran on COBOL, and the outrage that would ensue... ... but seriously, come on. These stories are nothing new, and they'll continue for decades. IT projects are always looked at with a sense of dollars - with band aids being particularly cheap.
... are like people complaining when someone does not use an electric pie knife! Or, like people who complain about the fact that not all kettles are connected to the Internet yet.
You get it.
Department of Homeland Security $18B over budget and 5 years late on a software designed to update personnel files. "(Big software consultancy) was supposed to have finished the new project based on (popular technology in 2016) in 8 months for $6M. Six years later the system is not functioning correctly, is full of security holes and is already obsolete."
(Big software consultancy) noted that there were minor changes in the specification but that they expect money to be thrown at the project more or less indefinitely. "We pay our campaign contribution requirements regularly and so see no reason why we should be held accountable for any delays".
Yes its an old language and not very sexy by today's standards. What COBOL does really really well is process huge sums of data very quickly and efficiently. The Payroll systems I work on today use COBOL and NOBODY touches them. Why? Because they work. Being around so long, the language is pretty much air tight in terms of bugs, etc.
The biggest challenge is trying to find someone that can code in COBOL. Universities these days don't teach it anymore.
Even worse they still use Windows! OMG!
Nevermind, I'm sure 2016 will be the year of Windows on the Webserver.... or 2017... maybe 2018,... someday it will win!
And on Phones, this closing of the phone business, is just a minor setback, they'll succeed.
And anyway they can still sell Windows kit to governments to run their Cobol emulators.
1) makes it harder for the script kiddies to futz with
2) keeps old guys with old skill sets employed.
3) good enough
The incompetence of the federal government is absolutely staggering! It's time to get rid of Homeland Security. The Department of Homeland Security is the asshole of the executive branch of government.
Your bank, your insurance company, and any large corporation likely has COBOL programs running in their environment.
What it the issue with using COBOL? Is it the age of the language or the fact that all your professors in college choose not to teach it?
Using a proven tool to solve a problem is called being practical.
Ken
Who cares that they use COBOL? It's still a maintained language. The most recent standard is from 2014, just like C++. There are compilers for the language targeting virtually every platform that exists, including the JVM and .NET CLR, still under active development and support. The language supports object-oriented programming, although admittedly the verbosity certainly skyrockets there. Many of the largest financial institutions in the US rely on COBOL. Many government standardized file formats are very obviously driven by the nature of COBOL's structured I/O.
The bigger question is whether or not these organizations still retain staff that are capable of maintaining these programs. It doesn't matter if the code was originally written 60 years ago or last year if nobody knows how it works or how to fix it.
.Net/Java/Web programmers are a dime a dozen, COBOL are not.
To get a pay rise as a COBOL programmer, start sniffling and sneezing and thinking about sick leave :)
Nobody wants to do COBOL, which is GREAT, for those that do, they get paid BIG money and low risk of firing due to lack of COBOL developers :)
Athena Health has a cloud based health record and doctor management system right now. They could switch over in 60 days no problem At near ZERO cost.
Geez, COBOL? OMG that's sooo 1960s. They need to upgrade to something modern instead... like...
P
H
P
Muhwahhaahahahah!
You are not alone. This is not normal. None of this is normal.
No ? - what's the problem?
I hear their computers still use binary
So first of all, there isn't anything wrong with COBOL at a fundamental level. It was designed for helping people with a certain sort of problem solving.
So if that's the case, why is it the case that anytime COBOL is mentioned, people will mock it? Why do people associate it with horribly unmaintainable code? The primary answer is that it was a victim of its own success. As COBOL programmers realized they could solve complex solutions without changing languages, they went ahead and wrote a lot of stuff in COBOL that COBOL wasn't really designed to handle. At the end they would frequently have something that would somehow manage to work, despite being horribly convoluted and unmaintainable. As such COBOL earned a bad reputation, though the language itself bears relatively little of the blame.
The language that really should take note of this history is Javascript. As people start writing more and more ugly code in Javascript, it actually worsens the language reputation, despite it being relatively serviceable for the intended problem domain. Contrast with something like LISP which most people won't bat an eye at being used, as it never came to be popular outside of the sorts of problems it works well to solve.
XML is like violence. If it doesn't solve the problem, use more.
and has been updated over the decades, just as has FORTRAN, just as has C, C++, JAVA and gasp.. Ruby. No, its not the new shiny, get over it.
There is an old joke.... if you got run over by a truck, and had to spend the rest of your life on computer-controlled life support, which platform would you choose?
I want a VAX with VMS.
The article, like so many others, is blaming the wrong organization. (1) Agency budgets are micro-managed by Congress. There's no money to spend on system replacement unless Congress says so. (2) Congress, like legislatures in general, is extremely reluctant to appropriate money to replace something that works, even if it is just barely limping along. Shiny new toys for killing people a possible exception. (3) When procurement does finally happen, it's done under rules set by Congress that work reasonably well for paper clips and snowplows. Not so well for software.
I spent three years on staff trying to explain IT things to a state legislature. Educational. Frustrating as hell.
Okay, little buddy, let's tear this massive, still working and maintainable COBOL application a new bat-hole! Jeepers Batman, what are we gonna do?!?
Well, hows about we go in the closet and get hard-- er, get our hardware installed in the server closet. This pile of Raspberry Pis networked together should do the trick with this stiff CAT-6. Golly Batman, you sure know your way around stiff cables. Indeed I do, Robin! But, no time for chit-chat when there's pair programming to do! Let's strip down, pull out all the stops and make this new employee information system using something sexy, like Swift, or maybe Rust!
Naa-naa naa-naa naa-naa naa-naa Batman!
Back in the 1990s, on the comp.lang.c or comp.os.unix USENET news group, there was a knowledgeable poster who also was a COBOL evangelist. He once posted a 4-line, portable COBOL program that sorted a file. (All those divisions people make fun of are optional in COBOL..) Let me repeat: 4 lines to sort a file and portable to any system that has a COBOL compiler. You can't do that in C; remember that system("sort ...") (or even "sort" from a command line) is not portable. Of course, COBOL has a standard, internal SORT function. As with any language, COBOL is useful in the appropriate circumstances.
By the time the DHS was formed, COBOL was already obsolete. They should've never used it in the first place.
For the record -- IANACP -- I've never written or compiled a line of COBOL in my life..
But I did help migrate an old mainframe based system to a new "client-server based three tier architecture system based on Linux and a Java thin client" back in the very early 00's. The old system was near perfect and did the job, even though it ran on the (then alien to me) mainframe.
The new system was written by 20-somethings like myself and would (even with WAY more computational resources) conk out at the worst times. This, I believe, is the story of EVERY migration. It's not necessarily that older is better, or "they don't make them like they used to", but that software development is a bug-prone and arduous process that you will not get right the first time.
So if you're the VA administrator with an established career, you might be forgiven for not taking the risk of jeopardizing employee and patient data and services to satisfy some vague desire for "modernization", especially if you know that the project will be full of errors and WAY over budget.
What's the solution? I don't know. Start teaching COBOL and commission Google to create "Google Mainframe Migration"???
The OP still uses the archaic Slashdot site used by many 2 decades ago when the web was young. Obviously any technology older then last week should be depricated.
OMG Ponies!!! with Glitter!!!! I miss Pink
Look, all of the Fortune 100 companies: telecoms, brokerages, grocery chains - just about every large company has a huge investment in COBOL applications and will for decades into the future. IBM mainframes are extremely reliable and secure. This is where large companies store the data of record: personnel, payroll, everything really important.
That's not to discount the value of web servers to serve data, for new and old companies.
A 2015 leak of the secret service's confidential personnel files...
What does that have to do with COBOL? Those agents were granted access to the data as part of their job; they were supposed to use it for official purposes, not for political revenge.
Is OO Cobol any worse then any other OO language? Yes, it is more verbose in the uncompiled language but it can do everything that any other OO language can do.
You're thinking of COBOL as that language that you never learned because it was going to die and only old timers used it. Guess again. It will be another 20-30 years before it is gone if even then. If you haven't learned it, don't knock it because your clueless.
And has much better archival properties.
Look, I don't like COBOL as a language, never have. I dislike it almost as much as I do Python (for diametrically opposite reasons). Thing is, it has worked for a very long time, and governments around the globe are still using it to this day. I know up here in "where you're moving when Trump wins" Canada, we have a lot of gov't projects to migrate off of old COBOL systems. It's not because the old system is broken: it ain't. It's because the people who can maintain such systems are dying of old age.
It's not a simple matter of watching a Youtube video made by a 12 year old. The language itself is quite simple, it's the fifty years of legacy code that make it a nightmare to find new blood, and the few who can pull it off get to charge whatever they want. On paper, this becomes a steep liability, which is why departments are making the largely financial decision to migrate.
Problem is, governments are legendary at hiring the most incompetent, 7000% over budget, milk-the-cash-cow-dry kind of contractors. Whether it's due to corruption or ineptitude, it's true up here in Apologyland. It's true down there in Gunfreakland. It's probably true across the pond in Thataintfoodland.
Don't blame COBOL, that old dog has done us well for most of our lifetimes. Blame these idiots who can't manage their contractors, and the contractors who can't manage their idiots.
-Billco, Fnarg.com
Millions of Americans (hundreds of millions, really) are still using incandescent light bulbs, a technology that is almost 150 years old.
Millions of Americans are still driving cars powered by internal combustion engines, a 150 year old technology.
What's the problem with a 60 year old programming language? Should these agencies re-write to run on a 40 year old operating system using a language based on another 40 year old language? Hell! maybe they should re-write the whole stack in Rails! We've seen how successful that has worked out.
That old code, with some new code too, running on modern mainframes forms the backbone of the worlds business. Mainframe technology, though seemingly dated and arcane, is extremely robust and supports exceptionally high volumes using COBOL and in many cases, mainframe assembler.
You don't replace something because it is old, you replace it when the economics of not fixing it demand replacement.
there are 3 kinds of people:
* those who can count
* those who can't
Still uses its tongue to lap up water. So, was there a point to this piece of "sheer genius" expressing concern on Cobol. And lest we forget the fun systems run by Fortran.
Someone could be making mega bucks to sell them a system that does the same thing.
Of course it would be slower, lacking features, years late and way over budget, same as any other modern government software programme
The OP makes the mistake of comparing old hardware to old software. Thus, if old hardware is bad, old software is bad too. And this is wrong.
Old hardware is usually bad, that is true. Computer hardware has a lifespan of between 5 and 10 years, and that's fairly reliable as a guideline. It may last longer than that of course but that's a bonus. Indeed anything beyond 5 years is a bonus.
Software is another matter altogether. Software has no set lifespan. There's no special reason why software cannot endure for centuries or millennia. The world may change around it but as long as the software's essential needs are met, and the software meets an essential need, it can continue running.
That is why comparing old hardware to old software is wrong. The whole argument was predicated on the assertion that the relevance of hardware and software is equivalent, and based upon a simple age in years.
If you want to make the case that old software is obsolete, do so based upon some functional issue. If you do it simply based on age you wind up looking like a facile noob.
Of course being a 54 year old white IT engineer means I will never get the chance to prove it.
That's all I have to say.
from-Slashdot-dev dept
Slashdot, fix the reply notifications... You won't get away with it...
Many banks also use cobol. Nothing to see here, move along. Side note: Note a big fan of using an extremely old, well established, yet un-maintained language (except by a small niche, don't believe what you read on wikipedia, most of the cobol code out there has existed for longer than the average north american lifespan,) I've dealt with it before, I've watched companies dump hundreds of thousands or millions into it...only to discover a bazillion security holes or performance issues in whatever product was being offered (ERP in the cases mentioned above)
Sounds like someone wants a big juicy contract to migrate a bunch of properly working Cobol code to something else. Probably something windows based with all the security holes that come with Windows.
If it's working, don't mess with it. I know other agencies that use Cobol running on Unix/Linux boxes. Works fine.
Department of Homeland Security Still Uses COBOL
So does your Bank ! So what?
"using COBOL" is different from "using compiled code which was originally written in COBOL."
Star Trek transporters are just 3d printers.
Look, I don't like COBOL as a language, never have. I dislike it almost as much as I do Python (for diametrically opposite reasons). Thing is, it has worked for a very long time, and governments around the globe are still using it to this day. I know up here in "where you're moving when Trump wins" Canada, we have a lot of gov't projects to migrate off of old COBOL systems. It's not because the old system is broken: it ain't. It's because the people who can maintain such systems are dying of old age.
It's not a simple matter of watching a Youtube video made by a 12 year old. The language itself is quite simple, it's the fifty years of legacy code that make it a nightmare to find new blood, and the few who can pull it off get to charge whatever they want. On paper, this becomes a steep liability, which is why departments are making the largely financial decision to migrate.
Problem is, governments are legendary at hiring the most incompetent, 7000% over budget, milk-the-cash-cow-dry kind of contractors. Whether it's due to corruption or ineptitude, it's true up here in Apologyland. It's true down there in Gunfreakland. It's probably true across the pond in Thataintfoodland.
Don't blame COBOL, that old dog has done us well for most of our lifetimes. Blame these idiots who can't manage their contractors, and the contractors who can't manage their idiots.
Indeed. An advantage of COBOL is that any shmuck with a minimum of general programming instruction and a good manual can maintain existing code; and it isn't likely to dig into the OS and do serious damage the way erroneous C code, for instance, might.
As you say, the problem is the ancient code with decades of patches of various quality applied and documentation mostly shredded. I've seen code written in "modern" languages within the previous few years which was unmaintainable, mostly because the original specs, if there ever were any, are lost in the mists of time. One particular such is burned into my mind to this day; the correct function of the program depended on a semicolon which should have been there being missing; when that error was fixed, the program always crashed. And it was of such structure that there was no way to despaghetti the code.
Star Trek transporters are just 3d printers.
Can code from other languages be converted to COBOL automatically? Can someone write in C, Java or Basic, for that matters, and have it translated to a valid COBOL code via some translator? The younger languages should certainly have the power to cover the concepts available in COBOL?
Is this approach sensible? Does anyone use it nowadays?
...a stunned silence fell upon the hall.
Any decend coder should not have any real problems with learning COBOL, otherwise go flip some burgers.. Mostly it's due coders thinking languages like C# or JavaScript are the uber languages (as they don't know any other languare/framework)..