Legacy Language Discussion

  • (3 Pages)
  • +
  • 1
  • 2
  • 3

44 Replies - 4956 Views - Last Post: 22 April 2012 - 10:22 PM

#1 Joe Klemmer  Icon User is offline

  • New D.I.C Head

Reputation: 7
  • View blog
  • Posts: 15
  • Joined: 02-April 10

Legacy Language Discussion

Posted 19 December 2010 - 07:37 PM

The idea that COBOL is dying is an urban myth. It's not going anywhere for two primary reasons. First, no other language can do what COBOL does better than it. Second, COBOL is one of the most up-to-date programming languages in the industry. The current standard is 2008 with work progressing on the 201x standard. It's really a shame that there is this misguided conception of the language.
Is This A Good Question/Topic? 1
  • +

Replies To: Legacy Language Discussion

#2 dorknexus  Icon User is offline

  • or something bad...real bad.
  • member icon

Reputation: 1256
  • View blog
  • Posts: 4,618
  • Joined: 02-May 04

Re: Legacy Language Discussion

Posted 20 December 2010 - 02:22 AM

Quote

The idea that COBOL is dying is an urban myth. It's not going anywhere for two primary reasons. First, no other language can do what COBOL does better than it


The idea that COBOL is dying is a myth, is a myth. In a survey taken in 2006 of 352 companies 62% said they were currently using COBOL in some way, shape, or form. Of those respondents, 75% said they were using it "a lot." However, 36% of those companies said they were "gradually migrating away" from it. When 1/3 of companies say they are drifting away from using a language, you can't really say that language is "not going anywhere."

Quote

Second, COBOL is one of the most up-to-date programming languages in the industry. The current standard is 2008 with work progressing on the 201x standard.


A standard does not make a language "up-to-date." A language standard just means the usage and implementation of that language has been standardized by various consortiums. Take note that Python has no language standard, and never has (to my knowledge). Yet Python has a far more advanced feature set than COBOL, and, thus, I would classify Python as more "up-to-date" than COBOL. Same goes for most modern programming languages (and not so modern, like LISP's).

Quote

It's really a shame that there is this misguided conception of the language.


It's really a shame that you're spreading misinformation because you have an obvious bias for a language.

The real reason COBOL is still hanging around and not dying out more rapidly is because there are 100's of billions of lines of COBOL floating around. Changing that code is expensive. "Why fix what ain't broke?" comes to mind. Does this mean COBOL is the right tool for the job or is in some way superior to the alternatives? Absolutely not.

This post has been edited by Dark_Nexus: 20 December 2010 - 02:32 AM

Was This Post Helpful? 1
  • +
  • -

#3 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 03:22 AM

View Postmacosxnerd101, on 19 December 2010 - 06:00 PM, said:

This week's challenge is a blast from the past with Legacy Language week.

While legacy languages are dying out, many organizations are still relying upon and maintaining software that is more than twenty years old, and written in languages like COBOL, ObjectPAL, FORTRAN, and even Visual Basic 5. So this week's challenge is to utilize one or more of your favorite legacy languages.

Resourecs:


First of all what the hell is ObjectPAL? Is it the API to PayPal ;)

What constitutes a legacy language? If you mean a language which is not used for new development then I think COBOL, FORTRAN, and VB have to be taken off the list. I know for a fact all 3 are being used for new development.
Was This Post Helpful? 0
  • +
  • -

#4 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 03:33 AM

View PostJoe Klemmer, on 19 December 2010 - 06:37 PM, said:

The idea that COBOL is dying is an urban myth. It's not going anywhere for two primary reasons. First, no other language can do what COBOL does better than it. Second, COBOL is one of the most up-to-date programming languages in the industry. The current standard is 2008 with work progressing on the 201x standard. It's really a shame that there is this misguided conception of the language.


I agree that in its problem domain COBOL is king. But I think the updates they have made to it in the last decade or so have made things alot worse rather than better and the COBOL code being written today is definitely worse than what was written until the 1980s. They are now attempting to stretch and redefine the language into areas it was never intended to go, and this is going to eventually break things.
Was This Post Helpful? 0
  • +
  • -

#5 calvinthedestroyer  Icon User is offline

  • D.I.C Lover

Reputation: 167
  • View blog
  • Posts: 1,911
  • Joined: 13-October 07

Re: Legacy Language Discussion

Posted 20 December 2010 - 03:45 AM

Ah, no QBasic? I'm disappointed.

Wait, that must mean it's still a viable language!
:)

I used to work at a factory that used a QBasic program.
--shivers--
Was This Post Helpful? 0
  • +
  • -

#6 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 03:45 AM

View PostDark_Nexus, on 20 December 2010 - 01:22 AM, said:

Quote

The idea that COBOL is dying is an urban myth. It's not going anywhere for two primary reasons. First, no other language can do what COBOL does better than it


The idea that COBOL is dying is a myth, is a myth. In a survey taken in 2006 of 352 companies 62% said they were currently using COBOL in some way, shape, or form. Of those respondents, 75% said they were using it "a lot." However, 36% of those companies said they were "gradually migrating away" from it. When 1/3 of companies say they are drifting away from using a language, you can't really say that language is "not going anywhere."


COBOL is written less than it was, but in its niche it is still a primary choice, *and* new COBOL is indeed being deployed. Without knowing exactly which and what types of companies were surveyed you cannot learn alot from the statistics. Even if 1/3 or more companies *intend* to move away from a language, that doesn't mean it's going to happen. We have seen numerous initiatives to do things in technology that people found out, after wasting alot of time effort and money, weren't feasible. Until they actually "drift away" all the intentions in the world don't mean anything. And when you consider the huge linecount of existing COBOL, and the new deployments which are significant, you really can say the language "isn't going anywhere". 1/3 of infinity is still infinite. Even if all new development in COBOL stopped today, there is enough code to keep everybody who ever coded COBOL who is still alive and not retired, in business until they retire. Probably even enough for the H1B's.

View PostDark_Nexus, on 20 December 2010 - 01:22 AM, said:

Quote

Second, COBOL is one of the most up-to-date programming languages in the industry. The current standard is 2008 with work progressing on the 201x standard.


A standard does not make a language "up-to-date." A language standard just means the usage and implementation of that language has been standardized by various consortiums. Take note that Python has no language standard, and never has (to my knowledge). Yet Python has a far more advanced feature set than COBOL, and, thus, I would classify Python as more "up-to-date" than COBOL. Same goes for most modern programming languages (and not so modern, like LISP's).


I think what the other poster meant to say was that 2008 and 201x standards show that work is indeed being done on the language at the standards level, which is not something indicative of a dead or dying language. And you should know for enterprise use standardized languages are essential. It may not matter to hobbyists and hackers that language definitions are fluid and dynamic, but when you have to plan big projects and hire hundreds or thousands of staff you need to be working with products that work essentially the same everywhere, it has a direct bearing on your costs in terms of staffing, training, porting, etc.

You can't compare the feature set of most languages to COBOL and make any conclusions, because COBOL was not intended to be a general purpose programming language. In its domain, *business applications* it has no peer. You don't need support for the latest problem paradigms in a language built around doing financial calculations accurately and precisely, and financial reporting. After all, they did put a man on the moon without OO, without agile development, without Ruby on Rails, etc. COBOL isn't for GUIs or web apps (although there are examples of people using it for that).

View PostDark_Nexus, on 20 December 2010 - 01:22 AM, said:

Quote

It's really a shame that there is this misguided conception of the language.


It's really a shame that you're spreading misinformation because you have an obvious bias for a language.

The real reason COBOL is still hanging around and not dying out more rapidly is because there are 100's of billions of lines of COBOL floating around. Changing that code is expensive. "Why fix what ain't broke?" comes to mind. Does this mean COBOL is the right tool for the job or is in some way superior to the alternatives? Absolutely not.


COBOL is the right tool for 99.9 bar percent of the applications for which it was deployed, and the proof is COBOL falls down rapidly when pushed out of its envelope...so...if COBOL can be used to solve a business problem it means it was the right choice.

Business applications in the IBM world consist of the application code and the data base and file systems. COBOL has had the most attention of any language in that environment, to make sure it supported access to DB2, IMS/DB, and VSAM files as simply and as seamlessly as possible. If you are writing a completely new system from scratch and refuse to use COBOL, you still have to have some very ugly code to define structs and mix all kinds of weird function calls and preprocessor stuff into your code to work. If you try to extend a COBOL application with new code written in C++ or Java, you have to duplicate every data base and file-related area from COBOL with a C++ or Java class or struct and now you have to maintain two copies of everything. If you understand the IBM application environment you would understand how essential COBOL is to making life easy by reducing complexity and using language constructs that fit with COBOL that don't fit nicely in other source languages. PL/I is an exception, but not so commonly used.

COBOL is dead simple, the code generated (when the source was coded by somebody who knows how to code- not a slam dunk since the beginning of the 1990s) is efficient to extremely efficient. It's trivially easy to maintain. In every conceivable way it is superior to the alternatives- in its problem domain. Nobody is going to argue that COBOL is better than Python or C++ or Java in a vacuum. But when you use COBOL for what it is for, it is better. It doesn't need a VM or a bytecode interpreter, it runs directly on the metal. Most operations are always pushing against their batch window. They couldn't afford to use any interpreted system for their nightly work.

This post has been edited by Blueline: 20 December 2010 - 04:15 AM

Was This Post Helpful? 0
  • +
  • -

#7 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 04:18 AM

Anyway back on topic, what's your definition of a legacy language? I would say a legacy language is a language that has code still in production but which isn't used for new coding. I can't even think of one of those. I know of many obsolete languages, but legacy is a tough one. Can anybody think of a real legacy language?
Was This Post Helpful? 0
  • +
  • -

#8 raziel_  Icon User is offline

  • Like a lollipop
  • member icon

Reputation: 464
  • View blog
  • Posts: 4,255
  • Joined: 25-March 09

Re: Legacy Language Discussion

Posted 20 December 2010 - 05:00 AM

what do you mean production? like they still sell it or that is used anywhere? i it is used anywhere this is VB6. And it will be used since most of the ppl that ware programing in vb6 program on vb.net are using the same syntax.

Still i`m happy you decided to include kinda VB6 in 52 week of code

This post has been edited by NoBrain: 20 December 2010 - 05:01 AM

Was This Post Helpful? 0
  • +
  • -

#9 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 05:23 AM

View PostNoBrain, on 20 December 2010 - 04:00 AM, said:

what do you mean production? like they still sell it or that is used anywhere? i it is used anywhere this is VB6. And it will be used since most of the ppl that ware programing in vb6 program on vb.net are using the same syntax.

Still i`m happy you decided to include kinda VB6 in 52 week of code


I mean we didn't get a clear definition of what "legacy" means, so I proposed a definition.

Production meaning somebody wrote a system in language X in the past. Even though language X isn't used to write new code today, the system that was written using language X is still running in production somewhere. That would be my definition of legacy because if there is a problem with the system it will most likely have to be fixed by changing or writing source in language X. So even though nobody is writing new code in language X, it's a "legacy" language because products or applications written using language X are still being used.

There, I've probably made it even more confusing ;)

VB is still being used to write new code so I can't see how anybody can call it a legacy language.

This post has been edited by Blueline: 20 December 2010 - 05:25 AM

Was This Post Helpful? 0
  • +
  • -

#10 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10595
  • View blog
  • Posts: 39,246
  • Joined: 27-December 08

Re: Legacy Language Discussion

Posted 20 December 2010 - 09:31 AM

@Blueline: ObjectPAL is an OO implementation of the Paradox Aplication Language to work with Corel's Paradox. My dad used it to write the inventory management software for the business. :)
Was This Post Helpful? 0
  • +
  • -

#11 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 10:12 AM

Thanks macosxnerd101. I kind of liked my guess better tho! ;)
Was This Post Helpful? 0
  • +
  • -

#12 dorknexus  Icon User is offline

  • or something bad...real bad.
  • member icon

Reputation: 1256
  • View blog
  • Posts: 4,618
  • Joined: 02-May 04

Re: Legacy Language Discussion

Posted 20 December 2010 - 10:41 AM

What has been said in defense of COBOL could also be said of Fortran. Does that mean Fortran isn't ubiquitous in the realm of science and mathematics? No way. Fortran is all over the place. Does it mean it's old and companies and organizations are phasing out its usage? Totally. For the exact same reasons. Fortran was, at the time, the best tool for the job so much of, now, old code has been written in Fortran. It is less expensive to maintain than it is to overhaul and re-write in a completely new language.

Fortran and COBOL are niche languages but this doesn't mean they can't be replaced by extensions and optimizations made on existing general purpose languages. This notion that modern languages must run on vm's and interpreters is also false. That's just the default implementation and distribution of those languages. Cross compilers exist to convert languages into lower level languages for reasons of efficiency.
Was This Post Helpful? 1
  • +
  • -

#13 Blueline  Icon User is offline

  • D.I.C Head

Reputation: 4
  • View blog
  • Posts: 55
  • Joined: 18-December 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 11:27 AM

View PostDark_Nexus, on 20 December 2010 - 09:41 AM, said:

What has been said in defense of COBOL could also be said of Fortran.


No, there is a big difference. FORTRAN never received the attention from IBM to make it compatible with and support so many pieces of infrastructure that run big business operations. As I said, COBOL is not just about a programming language, it's about how IBM invested virtually everything they had in making it succeed and how now if you want to use anything else for business applications in the IBM world (which is virtually all financial institutions, governments, etc.) you have to jump through hoops because nothing else got that kind of support. I'll make a very inaccurate analogy just for the sake of discussion. It's like trying to displace Visual C++ and Win API with Python on Windows. It's not going to happen, because Microsoft bet the farm on their IDE, tools, and APIs and spent everything they had to make sure there was "one true way" to develop on Win. That's the best, poor example I can give about what you're up against trying to displace COBOL as king of business languages.

View PostDark_Nexus, on 20 December 2010 - 09:41 AM, said:

Does that mean Fortran isn't ubiquitous in the realm of science and mathematics? No way. Fortran is all over the place. Does it mean it's old and companies and organizations are phasing out its usage? Totally. For the exact same reasons. Fortran was, at the time, the best tool for the job so much of, now, old code has been written in Fortran. It is less expensive to maintain than it is to overhaul and re-write in a completely new language.


I agree with part of what you wrote but I disagree with your reasoning and conclusion, and it's obvious you're approaching the issue from a pure language standpoint, which is not sufficient to explain what happened or why. Most of what happened historically with programming languages in enterprise use was much more about marketing and infrastructure support than it was about technology. There isn't a good second choice in extending many COBOL systems but there are plenty of ways to extend FORTRAN systems without much pain, and the only reason to continue using FORTRAN is if you have staff that knows it or you have very pure mathematics applications with almost no need for database access and nothing beyond run of the mill sequential file access. Anything more really hurts. You have to weigh all the factors before you can choose which way to go, because the simplicity of FORTRAN does reduce costs and IBM did spend money on making it fast.

View PostDark_Nexus, on 20 December 2010 - 09:41 AM, said:

Fortran and COBOL are niche languages but this doesn't mean they can't be replaced by extensions and optimizations made on existing general purpose languages. This notion that modern languages must run on vm's and interpreters is also false. That's just the default implementation and distribution of those languages. Cross compilers exist to convert languages into lower level languages for reasons of efficiency.


There hasn't been anything to replace COBOL and no amount of extending current languages is going to get the job done. What has to happen is IBM has to decide to make language X "the enterprise language" and make an investment like they did in all the environmental support to make it possible. That is a huge undertaking and will cost billions of dollars. Personally I don't see them spending it. Again, it's not just making a new language for business or extending a current language, but getting huge resources together to write new interfaces to all their data bases and services. They've done that to some degree with C++ and Java but they haven't thrown everything they have at it. These things make a huge difference in how easy it is to do stuff COBOL already did easily for the past 20 years with some other language that may be a better programming language on paper. The issue here is interoperability and how things fit together, not how good this or that language may be from a purist's standpoint. Even if they spent the billions on that, they still have to keep everything around so 20 or 30 year old COBOL applications still work. That's the IBM way, nothing ever has to be recompiled and no new OS or product breaks anything that used to work, because when companies spend millions on software they mean it. That's tons and tons and tons of code just to keep old stuff alive. Neither IBM nor their customers can afford to abandon it. It may be inertia, but it's also a hell of a lot of production code.

As far as default implementation v. what's possible, that's just an academic argument. There are no examples of Java or other interpreted languages being compiled to native code on large IBM systems. Until then, and even then, there's no competition for COBOL in its problem domain and the only competition for FORTRAN on IBM systems is C++ (with the right libraries, and I have no idea if they're even available for IBM) PL/I, and Ada, none of which have made much impact market wise even though they all have many good points. Bottom line is to have acceptable production performance you need a language that's compiled. Java is used plenty on IBM now, but it's strictly a front-end operation (GUI, teller terminals, etc.) Nobody is processing money or doing their nightly work with Java on mainframes.
Was This Post Helpful? 0
  • +
  • -

#14 Joe Klemmer  Icon User is offline

  • New D.I.C Head

Reputation: 7
  • View blog
  • Posts: 15
  • Joined: 02-April 10

Re: Legacy Language Discussion

Posted 20 December 2010 - 11:34 AM

View PostDark_Nexus, on 20 December 2010 - 11:41 AM, said:

Fortran and COBOL are niche languages but this doesn't mean they can't be replaced by extensions and optimizations made on existing general purpose languages. This notion that modern languages must run on vm's and interpreters is also false. That's just the default implementation and distribution of those languages. Cross compilers exist to convert languages into lower level languages for reasons of efficiency.


Good post, Dark_Nexus. Just because there is something new doesn't mean the old ones are obsolete.

FORTRAN is still being used because it does the job it's supposed to do well. However, there are newer languages that are as good and, in some cases, better. There is nothing better for the task it was created than COBOL. Is it a cutting edge dev tool? No. Is it a language I program in? No. If I had a task to do massive data manipulation would I use it? Yes.

Programming languages are tools. You don't stop using a hammer because it's not currently a cool tool.
Was This Post Helpful? 0
  • +
  • -

#15 SixOfEleven  Icon User is offline

  • using Caffeine;
  • member icon

Reputation: 945
  • View blog
  • Posts: 6,342
  • Joined: 18-October 08

Re: Legacy Language Discussion

Posted 20 December 2010 - 11:38 AM

Two languages that didn't make the cut are Pascal and Modula-2, an object orient Pascal of sorts. Pascal was the third language I was introduced back in high school. The first was, BASIC, run on a main frame. All and all a simple language to pick up though I wouldn't want to write more than demo programs with it to understand computing topics. The second was COBOL, again on the same main frame. Pascal is a decent structural programming language and was around for quite some time, and is still around to some extent in different forms.
Was This Post Helpful? 0
  • +
  • -

  • (3 Pages)
  • +
  • 1
  • 2
  • 3