Why is it no one learns Fortran or COBOL anymore?

Status
Not open for further replies.

lopoetve

Extremely [H]
Joined
Oct 11, 2001
Messages
33,891
Cobol is EVERYWHERE in the business world... everywhere. And Fortran? Find me a better language for scientific work... we need speed, and Fortran delivers. There are jobs for people that know those languages, yet no one learns them any more. You learn c++ (which is useful, yes) and Java (I question Java's usability in real-world apps, namely those where there are JOBS available right now), but none of the other languages which are not only useful, but in demand! My job now was open for some time before they found me, and now that I know Fortran, I'm indispensible!

So... why is it that those languages are so frowned on and never taught now?
 
Couple theories:

1) They're in need of replacement.
2) They're wholly uninteresting from a CS perspective. Anyone can pick up their syntax in a week once they understand conceptual programming.
 
My school still requires CS majors to take COBOL if you're on the Application Development track. Although next year they're getting rid of all the pre-defined tracks and allowing students to pick their own classes, except for Software Engineering (which will be it's own track)

I'm actually in COBOL right now. It's extremely boring, but hell, I'd take a job in COBOL post-graduation if it was offered to me....at least to hold me over until I get a job that I'd much rather do.
 
Actually, I can't see why fortran would need replacing. It might be more used among scientists (physicists and the like) than among compScientists, which would explain the lack of fortran in compSci courses.

Cobol, well, it might have some redeeming qualities, though I can't think of any. I suspect most cobol-related jobs will be mainetance, not creation of new programs, so there's not so many people needed.
 
I hope I never have to learn such an outdated language, this is like saying why dont we still program on punch cards.
 
lomn75 said:
Couple theories:

1) They're in need of replacement.
2) They're wholly uninteresting from a CS perspective. Anyone can pick up their syntax in a week once they understand conceptual programming.

1. No they're not. Maybe COBOL, but there is no replacement for Fortran. C++ is too slow, same with c. c# is a joke, java is a crawling baby in comparison to the stability and speed of Fortran.
2. They get you a job.

Lord of Shadows said:
I hope I never have to learn such an outdated language, this is like saying why dont we still program on punch cards.

I hope you have a clue someday... Outdated? Hardly. Fortran 95's been out, well, since 95, and they're updating for the next version soon. BTW, C was created in the 70's...

Fortran does things in a way that no other language does, and it's incredibly good at what it is designed for (FORmula TRANslation).

HHunt said:
Actually, I can't see why fortran would need replacing. It might be more used among scientists (physicists and the like) than among compScientists, which would explain the lack of fortran in compSci courses.

Cobol, well, it might have some redeeming qualities, though I can't think of any. I suspect most cobol-related jobs will be mainetance, not creation of new programs, so there's not so many people needed.

CompSci -> programming in scientific field, really...

I dare ANY of you to find a replacement for Fortran. It has to be:
1. Portable between ANY system with NO pre-processor lines. I've got a 300,000 line Fortran program that will work on OSX, Solaris, x86, linux, ANYTHING, with the standard Fortran77 compiler, with ZERO preprocessor lines for dealing with the different archetectures.

2 Fast. As in 30.8 million algorithm (series of mathmatical functions loops in 10 seconds. For comparison, c++ would take over a minute just for the loops. We run this set of loops 300+ times, so the time adds up REALLY fast.

3. Easy to understand for everyone who reads it. Fortran syntax is VERY human readable.

Good luck.
 
I would love to learn Fortran. But the entire reason I got into programming in the first place is because I've wanted to make games my whole life, so I decided I'd start off with C++, since it's the language for commercial game programming. Now I'm in college and learning Java, but if I had the time then sure I'd try my luck with Fortran any day.

As for the speed issue, doesn't the C++ class library Blitz++ give performance close to Fortran in scientific computing anyway? I'm not trying to challenge your facts or anything, I'm just asking.
 
My comSci/science - point was that scientists (those who use programming as a tool, but work in/studied some other field) might learn/use other languages than those who mainly study programming.

To put it another way, I study programming and I don't know fortran, while a guy that studies, say, material physics might be more likely to learn and use it.
(I do, however, want to learn fortran. Could get useful.)
 
I work at the CitiGroup Development Center and we have about 200 programmers in the building and my preliminary guess is that probably 160 of them do program development and maintenance in Cobol. The sad fact is, though it may be outdated and "clumsy" by today's standards, it just plain works and you don't have to spend years and millions of dollars porting all kinds of financial data and business processes to a newfangled ERP based system programmed in C mark II alpha V beta 4 language. The job market is quite nice for COBOL right now because legacy may mean old, but it doesn't always mean obsolete. Todd.
 
HHunt said:
My comSci/science - point was that scientists (those who use programming as a tool, but work in/studied some other field) might learn/use other languages than those who mainly study programming.

To put it another way, I study programming and I don't know fortran, while a guy that studies, say, material physics might be more likely to learn and use it.
(I do, however, want to learn fortran. Could get useful.)

That I understand, and agree with. Most of wjat I'm working on was coded originally by a group of scientists. I maintain, update, and modify the code as needed.

I_Need_Money said:
I would love to learn Fortran. But the entire reason I got into programming in the first place is because I've wanted to make games my whole life, so I decided I'd start off with C++, since it's the language for commercial game programming. Now I'm in college and learning Java, but if I had the time then sure I'd try my luck with Fortran any day.

As for the speed issue, doesn't the C++ class library Blitz++ give performance close to Fortran in scientific computing anyway? I'm not trying to challenge your facts or anything, I'm just asking.

For anything other than formulaic results, Fortran isn't what you want. No GUI support, no oo programing, and little dynamic memory ability... You could pick up fortran in a day probably...

As for Blitz, it would help with anything that models individual objects in an environment, or that need the c++ implements that it has. We neither need those things (none of our code would benefit from the OO model), nor desire them. Blitz is for OO programming with complex numerical analysis, IE: replace c++ models calling a fortran algorithm with a c++ blitz algorithm. Our entire core is written in fortran, and it's very simple (albeit a lot of) procedural code, repeating the loop as many times as needed. Fortran will probably always be faster at that, due to it's closeness with assembly. I see Blitz replacing some of the models that would be better coded in c, but for data reduction and interpolation, Fortran is king.

You also still have to deal with the portability of the C code with Blitz as well...
 
my college offers COBOL courses, i signed up for one next semester to see what its all about.
 
Alot of people i know stopped using fortran and now just program shit in matlab instead.


yeech.

And I just started a job where I will be moving a bunch of shit away from fortran to c/c++
 
Im not familar with fortran, but you were asking why these werent viable programming languages, not mathmatical scripts. These really arent viable programming languages, how many operating systems are created with cobol, how many new applications are written in these lanuages?
 
I am currently learning Ada as part of my Datastructures class, but the language is a PITA, and tends to piss me off quite a bit. Then again, from what I hear my teacher is a freaking Moron any how (Many teachers won't even touch the books he works on) :(
 
Lord of Shadows said:
Im not familar with fortran, but you were asking why these werent viable programming languages, not mathmatical scripts. These really arent viable programming languages, how many operating systems are created with cobol, how many new applications are written in these lanuages?

Fortran wasn't meant to do everything. It focuses on some tasks, and arguably does them better than any general-purpose language.

Besides, I happen to know that a simulator for chemical reactions written from scratch at the UiO semi-recently uses fortran for some parts, C++ for some, and they're considering a java frontend. This is heavy, serious, programming that'll be used by a lot of people. There is a reason they used fortran where they did, and indeed, there's a reason they didn't use it for the rest.

Just for the perspective.

(edit "anything"->"everything" in the first line.)
 
300,000 line numerical programs with no user interface are
portable, no matter what language they're written in.
FORTRAN got to the position it's in because all high-end
compiler work was focused on making FORTRAN run fast on
vector machines. These days, all compiler work is focused
on making C code run fast on superscaler microprocessors.
I don't believe FORTRAN is any faster than C on current
mainstream hardware.
(There are a few exceptions - high-end MIPS processors
(R8000, R10000, etc) were designed specificly to be FORTRAN
vector-code-friendly, and the benchmarks show it. Also,
pointer-heavy C code is harder to compile efficiently than
FORTRAN.)
If a modern piece of software has a component written in
FORTRAN, it's usually because the person in charge of that
part of the project is an old FORTRAN programmer, not because
FORTRAN is faster than C for that problem.
 
Lord of Shadows said:
Im not familar with fortran, but you were asking why these werent viable programming languages, not mathmatical scripts. These really arent viable programming languages, how many operating systems are created with cobol, how many new applications are written in these lanuages?

Cobol isn't for coding OS's. If that's the primary emphasis, then why is Java around?

As for apps, tons of new ones are written in Fortran and COBOL all the time. I was asking why people don't learn them. The question of their viability is not a question at all, they are both viable in their own right and used every day. And they are not mathmatical scripts either. :rolleyes:
 
Xipher said:
I am currently learning Ada as part of my Datastructures class, but the language is a PITA, and tends to piss me off quite a bit. Then again, from what I hear my teacher is a freaking Moron any how (Many teachers won't even touch the books he works on) :(

ADA is a pain in the ass indeed... ick.

HHunt said:
Fortran wasn't meant to do anything. It focuses on some tasks, and arguably does them better than any general-purpose language.

Besides, I happen to know that a simulator for chemical reactions written from scratch at the UiO semi-recently uses fortran for some parts, C++ for some, and they're considering a java frontend. This is heavy, serious, programming that'll be used by a lot of people. There is a reason they used fortran where they did, and indeed, there's a reason they didn't use it for the rest.

Just for the perspective.

That's what we have. Java builds a driver file. The c++ program loads it, sets up a few things, and calls the fortran loop. The fortran loops does all the interpolation, calculation, and file ops, and then the c++ sorts the results.

shieldforyoureyes said:
300,000 line numerical programs with no user interface are
portable, no matter what language they're written in.
FORTRAN got to the position it's in because all high-end
compiler work was focused on making FORTRAN run fast on
vector machines. These days, all compiler work is focused
on making C code run fast on superscaler microprocessors.
I don't believe FORTRAN is any faster than C on current
mainstream hardware.
(There are a few exceptions - high-end MIPS processors
(R8000, R10000, etc) were designed specificly to be FORTRAN
vector-code-friendly, and the benchmarks show it. Also,
pointer-heavy C code is harder to compile efficiently than
FORTRAN.)
If a modern piece of software has a component written in
FORTRAN, it's usually because the person in charge of that
part of the project is an old FORTRAN programmer, not because
FORTRAN is faster than C for that problem.

Not always, buddy. Many things that can be done rapidly in fortran and c++ require pre-processors in c++ to run on other archetectures. If you're doing any serious file access, string work, etc, you have to know. Fortran deals with all of that in the background so that you don't have to think about it (ie: Char's are different legnths on different os's). The Fortran compiler also does a great job of pointing out errors before hand (including end of array, etc). Fortran doesn't care about 64bit and 32 bit machines, it deals with any conversions/etc that have to be done. It's goal is to make the numbers work.

You don't believe C is slower than Fortran? If that were true, then the Blitz library pointed to above would have been totally unnecessary to code and design. For a basic "hello world" or other simple app, no, it isn't faster. But when you get into scientific computation, the difference is obvious. Fortran is much more efficient for numerical computation than c is, even on normal, everyday systems (ours is a couple of P4's).

Sorry if you don't believe it, but that's the way it is... fortran is faster than c at scientific coding.

EDIT: In addition, your sig is too long (READ THE RULES) and you don't have to hit enter after every line, just type and let the wraparound deal with it, it's MUCH easier to read.
 
lopoetve said:
I hope you have a clue someday... Outdated? Hardly. Fortran 95's been out, well, since 95, and they're updating for the next version soon. BTW, C was created in the 70's...

Nice one ;)
 
Originally Posted by lopoetve said:
I hope you have a clue someday... Outdated? Hardly. Fortran 95's been out, well, since 95, and they're updating for the next version soon. BTW, C was created in the 70's...

C was created in the 70's correct, but has been updated quite a few times since then. I can say the same thing about fortran, except it was originally created in the 1950's. You can argue all you want about how great it is, but then again your asking the question of why no one is teaching / using it.
 
Lord of Shadows said:
C was created in the 70's correct, but has been updated quite a few times since then. I can say the same thing about fortran, except it was originally created in the 1950's. You can argue all you want about how great it is, but then again your asking the question of why no one is teaching / using it.

1. There are many many revisions of Fortran. Probably about as many as there are of C.
2. C was based off of B, which is based off of BCPL, which was done in the 60's.

Who cares when it was created? That's not the point.

I'm not asking why they're not USING it, they ARE using it :rolleyes: There are probably MORE fortran programs than there are C programs in major usage outside the home, because of it's age and speed. I know that there are more COBOL programs.

Read the first line of the post. I want to know why people aren't LEARNING it. It has it's uses, it's out there (and there are many jobs for it), and it's better at many things than more modern languages are. So why isn't it taught/learned?

In fact, to counter your first point: We don't program on punch cards because a physical transfer medium is inefficient, unsafe, and unreliable. Fortran is EXTREMELY reliable, EXTREMELY efficient (it was designed to be as close to hand-tuned machine code efficient as possible), and very easy to learn how to implement. Your entire first point is invalid, since the disadvantages of punch cards are no where near relevant to the disadvantages of fortran...

In fact, I really can't think of a major disadvantage to Fortran, for procedural programming. Other than age (which, I might add again, is stupid), can you?
 
How easy is it to for someone who knows C/C++ to learn Fortran?
 
http://www.acm.org/classics/oct95/

Says most of it. Neither Fortran nor Cobol support popular modern design methodologies. The languages are neither expressive nor elegant. The only real argument for using either is that people are still using it & have written an assload of code in the language.

As for saying that Fortran is portable, I disagree. At work, I have to keep coaxing win95 onto new hardware because some engineer has this Fortran program that only works with this one, long dead, compiler that only works on 95. Given the shitty spaghetti-code that most Fortran is, no sane person is ever going to actually try porting it to a modern environment. Historically, Fortran and Cobol are languages that are littered with vendor-specific extensionss & standards non-compliance.

Why arent't these languages being taught in universities? Because they're ugly, inellegant & inexpressive. Believe it or not, CS is not the same as getting a degree in "programming". Anyone with a CS degree should be able to pick up most of a simple procedural language such as Fortran or Cobol in a week or so. If you ask me, teaching CS in C++ or Java because "it's what industry wants" is already mistake. If you need somebody to teach you a specific tool so you can get a job, there's plenty of community colleges and tech school out there that exist just for that purpose.
 
lopoetve said:
Cobol is EVERYWHERE in the business world... everywhere. And Fortran? Find me a better language for scientific work... we need speed, and Fortran delivers. There are jobs for people that know those languages, yet no one learns them any more. You learn c++ (which is useful, yes) and Java (I question Java's usability in real-world apps, namely those where there are JOBS available right now), but none of the other languages which are not only useful, but in demand! My job now was open for some time before they found me, and now that I know Fortran, I'm indispensible!

So... why is it that those languages are so frowned on and never taught now?

Sorry....coming into this late.

I find it interesting that you think Java has no real-world application. If that's the case, how come everywhere you look in the real business world, COBOL apps are being ported to Java (or .NET)? Businesses don't care how fast a platform can calculate complex scientific algorithms. They want a system which will give them the data they want, when they want it, and in such a way that they can choose an alternative platform without expensive redevelopment. In case you hadn't noticed, that's Java. I'm not saying that other languages don't have their advantages, because they do - however, you have to wonder why, if COBOL and Fortran are still so great, why is the rest of the world moving away from it? It's not *all* down to marchitecture decisions, you know.
 
Elledan said:
How easy is it to for someone who knows C/C++ to learn Fortran?

Very easy.

ameoba said:
http://www.acm.org/classics/oct95/

Says most of it. Neither Fortran nor Cobol support popular modern design methodologies. The languages are neither expressive nor elegant. The only real argument for using either is that people are still using it & have written an assload of code in the language.

As for saying that Fortran is portable, I disagree. At work, I have to keep coaxing win95 onto new hardware because some engineer has this Fortran program that only works with this one, long dead, compiler that only works on 95. Given the shitty spaghetti-code that most Fortran is, no sane person is ever going to actually try porting it to a modern environment. Historically, Fortran and Cobol are languages that are littered with vendor-specific extensionss & standards non-compliance.

Why arent't these languages being taught in universities? Because they're ugly, inellegant & inexpressive. Believe it or not, CS is not the same as getting a degree in "programming". Anyone with a CS degree should be able to pick up most of a simple procedural language such as Fortran or Cobol in a week or so. If you ask me, teaching CS in C++ or Java because "it's what industry wants" is already mistake. If you need somebody to teach you a specific tool so you can get a job, there's plenty of community colleges and tech school out there that exist just for that purpose.

Goto statements? LOL. Fortran has normal loops, Goto has been slated for obsolesence for some time. If you're talking about recursive vs. loop based programming, they're both usable for different things. Modern design philosophys? You mean OO? OO is highly overrated. It's useful for certain programs and ideas, but not all. For mathmatical algorithms, all you need is procedural programming. There is no reason to program everything in an object oriented manner.

Oh, and if you ever met him, Djikstra was an arrogant asshole. But that's another story... :p

As for portable, then that engineer was a dumbass. ANSI Fortran is perfectly portable. There are NO arch specific extensions, unless you write one in a different language, or add asm to your code. And ported to a modern environment? IT HAS BEEN. Fortran 95 is out, Fortran 2000 is coming soon. It's ported everywhere. The Fortran77 compiler is opensource and everywhere! I don't know how you think it isn't ported, because it is! And you don't think you can write shitty spaghetti code in C or anything else? Write good code, support good code, and you've got almost the most efficient app ever.

Then what would you teach them? Theory is shit. It means nothing, gains you nothing, and helps you with naught. There are a LOT of other tricks to using these languages that they don't teach as it is, and should. If you're gonna be a computer scientist, realistically you're either going to be a software engineer, a systems administrator, or a theorist. The theorists don't really get paid, so that leaves the prior two to be serious, mass-market jobs out there (and that's what the degree is for, to prepare you for a career). For both, you need programming experience.

:LJ: said:
Sorry....coming into this late.

I find it interesting that you think Java has no real-world application. If that's the case, how come everywhere you look in the real business world, COBOL apps are being ported to Java (or .NET)? Businesses don't care how fast a platform can calculate complex scientific algorithms. They want a system which will give them the data they want, when they want it, and in such a way that they can choose an alternative platform without expensive redevelopment. In case you hadn't noticed, that's Java. I'm not saying that other languages don't have their advantages, because they do - however, you have to wonder why, if COBOL and Fortran are still so great, why is the rest of the world moving away from it? It's not *all* down to marchitecture decisions, you know.

Then why isn't there an Office suite in Java? An OS? Most apps? Java is still too slow for most desktop applications, in reality. Most of the attempts fail pretty badly. Yes, it's portable, but let's get real... people want responsivity in their programs, and java is too slow for that using the VM model.

The rest of the world ISN'T moving away. There are more apps in Fortran and COBOL than ever before. The question is: Why are people having to learn it on their own (or having the old programmers come back)? There are jobs in this market, and yet the tool that is supposed to provide a method for starting a career is still pursuing the most over-saturatd market ever... c++ and java.
 
lopoetve said:
So... why is it that those languages are so frowned on and never taught now?
Universities no longer teach these languages because they contain no theoretically interesting features (powerful matrix manipulation and straightforward business programming are not interesting to the theory or practice of programming). Additionally, they are poor tools for creating software that is useful to programmers (compilers, assemblers, operating systems, rdbmss, and virtual machine interpreters).

Some businesses are interested in FORTRAN and COBOL code, typically those with scientists and supercomputers or large existing COBOL systems.

Many businesses who do not fall into that category are usually interested in RDBMS manipulation and GUIs, which are areas where Visual Basic and Delphi tend to produce the best bang/buck ratio, but neither FORTRAN nor COBOL has made a strong showing in these areas.

Another subset is interested in RDBMS manipulation (business systems for data storage, retrieval, and reporting) with a browser-based interface. These businesses use a variety of technologies, PHP & MySQL, ASP, ASP & COM, JSP & Java, etc... Again, neither COBOL nor FORTRAN is appropriate.

C and C++ are interesting because of their library-oriented nature (though they often fail to provide good libraries out-of-box). Java is interesting because of it's OO and library-oriented nature, the scope of the provided libraries (I will not comment on their quality), JSP, and webserver integration.

Embedded and realtime systems, 3d games, and other systems which are ill-suited to VB, Delphi, or Java use C or C++. Neither FORTRAN nor COBOL can compete in these areas either.

Of course, FORTRAN and COBOL really lost the future when programming moved out of banks, insurance companies, and scientific research labs and moved into dedicated software compaines. I would wager that Microsoft, Peoplesoft, SAP, and Oracle employ very few FORTRAN or COBOL programmers. I would also wager that (given the choice), most programmers would prefer to work for a software company (where they are essential personnel) rather than at a bank, insurance company, or science lab (where they are inessential and simply another cost).
 
Lord of Shadows said:
lopoetve said:
There are more apps in Fortran and COBOL than ever before.
I really dont see how you can back that up.
I had considered challenging him on that statement, but I interpret it as meaning that some number of new COBOL and Fortran programs are still being written and that most of the Fortran and COBOL code written is still in use.

I think that you could not support the claims "Fortran and COBOL have compose a large share of newly-written software" or "the market share of Fortran and COBOL is growing more quickly (in #programmers or #systems) than that of other languages", but I did not interpret this line in either of those ways.
 
lopoetve said:
Very easy.



Goto statements? LOL. Fortran has normal loops, Goto has been slated for obsolesence for some time. If you're talking about recursive vs. loop based programming, they're both usable for different things. Modern design philosophys? You mean OO? OO is highly overrated. It's useful for certain programs and ideas, but not all. For mathmatical algorithms, all you need is procedural programming. There is no reason to program everything in an object oriented manner.

Oh, and if you ever met him, Djikstra was an arrogant asshole. But that's another story... :p

As for portable, then that engineer was a dumbass. ANSI Fortran is perfectly portable. There are NO arch specific extensions, unless you write one in a different language, or add asm to your code. And ported to a modern environment? IT HAS BEEN. Fortran 95 is out, Fortran 2000 is coming soon. It's ported everywhere. The Fortran77 compiler is opensource and everywhere! I don't know how you think it isn't ported, because it is! And you don't think you can write shitty spaghetti code in C or anything else? Write good code, support good code, and you've got almost the most efficient app ever.

Then what would you teach them? Theory is shit. It means nothing, gains you nothing, and helps you with naught. There are a LOT of other tricks to using these languages that they don't teach as it is, and should. If you're gonna be a computer scientist, realistically you're either going to be a software engineer, a systems administrator, or a theorist. The theorists don't really get paid, so that leaves the prior two to be serious, mass-market jobs out there (and that's what the degree is for, to prepare you for a career). For both, you need programming experience.



Then why isn't there an Office suite in Java? An OS? Most apps? Java is still too slow for most desktop applications, in reality. Most of the attempts fail pretty badly. Yes, it's portable, but let's get real... people want responsivity in their programs, and java is too slow for that using the VM model.

The rest of the world ISN'T moving away. There are more apps in Fortran and COBOL than ever before. The question is: Why are people having to learn it on their own (or having the old programmers come back)? There are jobs in this market, and yet the tool that is supposed to provide a method for starting a career is still pursuing the most over-saturatd market ever... c++ and java.

OpenOffice is written in Java.
 
Banko said:
OpenOffice is written in Java.
Not primarily.
Oo_Org: About us
The OpenOffice.org source code initially includes the technology which Sun Microsystems has been developing for the future versions of StarOffice(TM) software. The source is written in C++ and delivers language-neutral and scriptable functionality, including Java(TM) APIs. This source technology introduces the next-stage architecture, allowing use of the suite as separate applications or as embedded components in other applications. Numerous other features are also present including XML-based file formats and other resources.
 
MonkeyShave said:
I had considered challenging him on that statement, but I interpret it as meaning that some number of new COBOL and Fortran programs are still being written and that most of the Fortran and COBOL code written is still in use.

I think that you could not support the claims "Fortran and COBOL have compose a large share of newly-written software" or "the market share of Fortran and COBOL is growing more quickly (in #programmers or #systems) than that of other languages", but I did not interpret this line in either of those ways.

This is what I intended, certainly there are more c++, java/etc being written NEW now, but tons of additions to old Fortran code, and a few new programs as well. Their head start and mass availability early on gives them the edge.

MonkeyShave said:
Universities no longer teach these languages because they contain no theoretically interesting features (powerful matrix manipulation and straightforward business programming are not interesting to the theory or practice of programming). Additionally, they are poor tools for creating software that is useful to programmers (compilers, assemblers, operating systems, rdbmss, and virtual machine interpreters).

Some businesses are interested in FORTRAN and COBOL code, typically those with scientists and supercomputers or large existing COBOL systems.

Many businesses who do not fall into that category are usually interested in RDBMS manipulation and GUIs, which are areas where Visual Basic and Delphi tend to produce the best bang/buck ratio, but neither FORTRAN nor COBOL has made a strong showing in these areas.

Another subset is interested in RDBMS manipulation (business systems for data storage, retrieval, and reporting) with a browser-based interface. These businesses use a variety of technologies, PHP & MySQL, ASP, ASP & COM, JSP & Java, etc... Again, neither COBOL nor FORTRAN is appropriate.

C and C++ are interesting because of their library-oriented nature (though they often fail to provide good libraries out-of-box). Java is interesting because of it's OO and library-oriented nature, the scope of the provided libraries (I will not comment on their quality), JSP, and webserver integration.

Embedded and realtime systems, 3d games, and other systems which are ill-suited to VB, Delphi, or Java use C or C++. Neither FORTRAN nor COBOL can compete in these areas either.

Of course, FORTRAN and COBOL really lost the future when programming moved out of banks, insurance companies, and scientific research labs and moved into dedicated software compaines. I would wager that Microsoft, Peoplesoft, SAP, and Oracle employ very few FORTRAN or COBOL programmers. I would also wager that (given the choice), most programmers would prefer to work for a software company (where they are essential personnel) rather than at a bank, insurance company, or science lab (where they are inessential and simply another cost).


A damned fine answer, and one I hadn't thought of all the way through. It would be nice if there was an option though.
 
lopoetve said:
This is what I intended, certainly there are more c++, java/etc being written NEW now, but tons of additions to old Fortran code, and a few new programs as well. Their head start and mass availability early on gives them the edge.

Perhaps, then, you need to think about why new apps are not being written in the old languages. That should give you a pretty good insight as to why they're not being taught any more. I used to get taught Latin at school, but all it did was give me a rough idea of where modern languages came from. It certainly wasn't useful in any other way, and I could've learned more useful skills by being taught German or Italian.

The fact that there are tons of additions to old code does not mean that the languages are current or more fit-for-purpose than any other. As an example, one of my old employers had run a mainframe for a couple of decades, running the same COBOL apps all that time. The subject of redevelopment and migration came up on a fairly regular basis, but it was deemed too expensive due to the fact that there was a) insufficient documentation, and b) nobody around who knew the whole picture. As a result, it was always shelved and effort was put into developing the new features using the old code base. Over a period of about 20 years of additions and workarounds, this led to a third reason for keeping things as they were - the fact that there were so many bolt-ons and hacks kicking around that it would require an entirely new product, not a platform migration (amusing aside : one comment the IT director at the time made stuck with me. He described the project to wrap the old COBOL app with a Win32 GUI as "putting lipstick on the pig").

With all this in mind, they quickly decided not to get into this mess again, and set about developing new applications for all new requirements, in the (vain) hope that eventually they would have enough functionality to be able to migrate customers bit-by-bit. 'Course, they went bust before that could happen, because all the COBOL programmers had cottoned on to the fact that they were now indispensable, and put their rates up. There are now about 80 COBOL developers learning Java and .NET, because nobody will pay them the rates they expect for doing COBOL.

Incidentally, part of this (partly irrelevant) story illustrates why some modern languages are better than the old ones for businesses - certainly Java, at least (I haven't spent enough time with the other current languages to be able to say). If the code is written to anything like a current standard, there are tools available which will cheerfully document your code for you.

And on the subject of cross-platform portability, we all know it's possible to recompile almost any non-interpreted language to any other platform for which there is a compiler. However, Java (and .NET with the Mono project, although its success is debatable) is the only one where you can just run the "binaries" anywhere you like.
 
I am in a COBOL class right now and, as much as I hate the language with a passion, I see its usefulness for speed and ease in database applications.

c++ is my favorite and most fluent language, but there really is something beautiful about the fact that you can just plain read a file in COBOL. No pointers, no strings, no bullshit. You just tell it where the fields are, type "READ XXXX" and you're good to go.
 
lopoetve said:
For anything other than formulaic results, Fortran isn't what you want. No GUI support, no oo programing, and little dynamic memory ability... You could pick up fortran in a day probably

Umm.. Fortran most certainly supports OOP. I learned and used it my frosh year of university.
 
SirRuka said:
Umm.. Fortran most certainly supports OOP. I learned and used it my frosh year of university.

Oh really... Then give some code that defines an object, attributes, and methods for said object.

Fortran is for formula translation, not OOP.
 
:LJ: said:
Perhaps, then, you need to think about why new apps are not being written in the old languages. That should give you a pretty good insight as to why they're not being taught any more. I used to get taught Latin at school, but all it did was give me a rough idea of where modern languages came from. It certainly wasn't useful in any other way, and I could've learned more useful skills by being taught German or Italian.

The fact that there are tons of additions to old code does not mean that the languages are current or more fit-for-purpose than any other. As an example, one of my old employers had run a mainframe for a couple of decades, running the same COBOL apps all that time. The subject of redevelopment and migration came up on a fairly regular basis, but it was deemed too expensive due to the fact that there was a) insufficient documentation, and b) nobody around who knew the whole picture. As a result, it was always shelved and effort was put into developing the new features using the old code base. Over a period of about 20 years of additions and workarounds, this led to a third reason for keeping things as they were - the fact that there were so many bolt-ons and hacks kicking around that it would require an entirely new product, not a platform migration (amusing aside : one comment the IT director at the time made stuck with me. He described the project to wrap the old COBOL app with a Win32 GUI as "putting lipstick on the pig").

With all this in mind, they quickly decided not to get into this mess again, and set about developing new applications for all new requirements, in the (vain) hope that eventually they would have enough functionality to be able to migrate customers bit-by-bit. 'Course, they went bust before that could happen, because all the COBOL programmers had cottoned on to the fact that they were now indispensable, and put their rates up. There are now about 80 COBOL developers learning Java and .NET, because nobody will pay them the rates they expect for doing COBOL.

Incidentally, part of this (partly irrelevant) story illustrates why some modern languages are better than the old ones for businesses - certainly Java, at least (I haven't spent enough time with the other current languages to be able to say). If the code is written to anything like a current standard, there are tools available which will cheerfully document your code for you.

And on the subject of cross-platform portability, we all know it's possible to recompile almost any non-interpreted language to any other platform for which there is a compiler. However, Java (and .NET with the Mono project, although its success is debatable) is the only one where you can just run the "binaries" anywhere you like.


That is because java doesn't MAKE a binary :p And it's still slow :p. I'll admit that there isn't a lot of use for COBOL anymore, but there still isn't a language as efficient as Fortran.
 
lopoetve said:
That is because java doesn't MAKE a binary :p And it's still slow :p. I'll admit that there isn't a lot of use for COBOL anymore, but there still isn't a language as efficient as Fortran.

Guess what? That's why I put the word in quotes. And FYI, it's bytecode expressed in binary form, so it is a binary, just not native code.

If you want true efficiency, go for assembler - it's hard to beat. However, there's a reason extremely few people use it to write apps these days - there are features in more modern languages which make development easier. It's the nature of progress.
 
:LJ: said:
If you want true efficiency, go for assembler - it's hard to beat. However, there's a reason extremely few people use it to write apps these days - there are features in more modern languages which make development easier. It's the nature of progress.
Well, actually, alot of compilers have become better then hand coded Assembly. Now, there are still times when hand coded can be better, but as it stand currently, writing an entire program in ASM is far to time consuming and problematic then letting a compiler do it for you.
 
:LJ: said:
Guess what? That's why I put the word in quotes. And FYI, it's bytecode expressed in binary form, so it is a binary, just not native code.

If you want true efficiency, go for assembler - it's hard to beat. However, there's a reason extremely few people use it to write apps these days - there are features in more modern languages which make development easier. It's the nature of progress.

Fortran was designed to get as close to machine code as possible, while being easy to develop one. and I know it's bytecode, hence the ":p" Get your sarcasm detector checked :p :D
 
I met a cobol programmer at uni.

He was a mature age student back there to do a degree in Athropology having been retrenched because he didn't want to change to 'XTREME' programming in modern languages and he couldn't find another job in cobol.
 
Status
Not open for further replies.
Back
Top