Some interesting points have been brought up in this thread. However, I think we need to step back a little, and look at these langauges in the time they were designed, not now, with 20/20 hindsight.
When COBOL was designed, it was an attempt at a language that allowed computing concepts to be express as natural language. Rather than terse, cryptic statements, it was *intended* to be wordy. This allowed programmers to think in more in English, and less in langauges like Fortran. COBOL was targetted at the business community, and not at the scientific/computing communities like other languages of the time.
By our standards, today, COBOL is a horrific langauage, an anthesis of everything we think a language should be. At the time, the idea was debugging would be reduced because concepts were expressed in
an 'English' like language.
People hadn't grown up with computers, like we do today. It wasn't all that long ago in the great timeline that computing facilities of any consequence were either company owned, or existed only on university campuses. What we take for granted today didn't exist back then, so there are a great number of comparisons that just aren't valid.
We consider Perl a pinnacle of development at this point in computing history. But
let's be realistic. Perl serves a very useful purpose, but as languages go, it's just as obscure as 'C', APL, and few others. We have odd little symbols that are not self-documenting. We have 25 different way of expressing a concept, all valid, but incomprehensible to the un-
initiated. If you were to explain basic logic constructs to a lay-person, odd's are they would have a better chance understanding a COBOL program than a Perl program. Certain langauges like LOGO are even more understandable. Oh, we may not consider them efficient, or elegant, but the reality is that what makes a langauge is more than just readability, just terseness, or just (fill in your favorite concept here).
I'm not very fond of language bigots. All languages serve a purpose, even if we never
learned what they are. The ones that died in the Darwinian pond of computing are ones that never went mainstream. I used to write in XPL0 on the Apple ][ (note correct use of brackets here!) I've written Forth, dozens of assembly variants, Fortran, Pascal, Logo, Perl, 4GL database langauges, PL/1, PLM, other stuff that you may or may not have heard of. Some I learned because they were there. Others because they filled a programming need that had to be satisfied. Not all were fun. Not all were even good. PLM was a wierd cross of high level IF constructs
combined with straight assembly. Not intuititve, and difficult to debug. Yet, the code ran. It was what the customer wanted. And it was the tool we had available, at that point in computing history.
It's important to remember that Perl is a young language, as langauges go. New langauges are introduced every year than the previous year. Because we grow up with tools like Yacc, and Lex.
Compiler design is no longer the rarified air of academics. We can do it at home, and it's easy. We've got the tools, we've got the code samples, we've got the net access to find out what we need to know.
Yea, we all like Perl. But again, Perl is a means to and end. It has it's place and it has places it shouldn't/never will be.
You aren't going to find Linux device drivers written in Perl. It's not the tool for the job. And 20 years from now, Perl programmers may get paid lots of bucks to maintain that old Perl code that no one uses anymore.
There is no 'best' language, in a general sense. There are 'best' languages for the job at hand, but NO language replaces all the others and leaves the in the dust. I won't say COBOL has a place much anymore, not with all the new tools we have. But the fact is, there are big iron machines out there only have COBOL and Fortran. And they run big expensive applications that people don't have the time or money to port over to modern machines. And as long as the hardware keeps running, they're going to run
their apps, because they server their need. And that's what computing is all about. Filling a need. Not arguing that your langauge is better than mine. Maybe at a given task yours excels, but there is *always* some that mine
will be better at. So get over language differences, and argue the tool to solve the problem, not how to make the problem look like a nail so you can use *your* hammer.
One more thing: Compiler technology has a come a long, long way from the days when COBOL and Fortran dominated the landscape. Computing power is far superior to those times. Keep that in mind when you get ready to start talking trash about the older langauges. We did it with what we had to do. Thanks to the efforts of the giants behind us, we can stand on their shoulders and build betters things. After all, Perl *is* written
in 'C'...
--Chris | [reply] |
Someone once said to me. "I usually don't regret anything, because when I did it I thought it was the best thing to do.". It think it applies to Cobol.
The thing is with my meditation. COBOL has a purpose. Perl has a purpose. PHP has a purpose. Some of the features of the languages are thought of in advance. A sense of structure.
And the only thing that I said with my meditation. "Think of the purpose why your language exists. For it has a purpose. When you realize the purpose. Plan with it."!
| [reply] |
Okay, JanneVee, here we go again :) I didn't respond to this post right away because I wanted to take time to think about it. You say "COBOL has a purpose" and I have to agree. However, I think we will disagree on what that purpose is.
Imagine that your grocery store is 5 miles away. Every day you walk to the store because you can't afford a bike or a car. Because you walk, you can only buy a day's worth of food and your forced to waste a lot of time every day walking. One day, someone offers to sell you a car for the cost of a months's worth of groceries. Do you do it? Not if you want to feed your family, even if the car is a better choice.
COBOL vs. Perl is walking vs. driving. At my last job, management (but not the programmers) knew that COBOL was not the best choice. But the cost of switching was so prohibitively high. The programmers must be retrained, licenses for the new languages may be necessary, the old system needs to be analyzed and determine what is necessary for the new system (many systems contained hundreds, if not thousands of jobs, thus making this incredibly expensive). Further, all systems that connect to yours need to be analyzed. Then, after all of this is done, starts the process of designing, getting approvals, coding, testing, debugging, getting sign offs, implementing, and then fixing everything you missed. And remember: either you've retrained COBOL programmers to do this, in which case they're newbies in the new language (Yikes!), or you've hired a new staff which doesn't know the system (Yikes!).
Continued in a reply, because I was cut off. | [reply] |
Converting from COBOL is often prohibitively expensive, given the massive size of the systems they run. When I mentioned that a system could have hundreds or thousands of jobs, I also should have mentioned that a company can have hundreds or thousands of systems. We did.
So what is COBOL's "place?" It's for companies who have to walk because they can't afford to buy a car. Why is IBM, the makers of the Big Iron that COBOL usually runs on, banking on Linux? Because new companies aren't choosing COBOL. COBOL is dying a sad, slow, but much deserved death.
COBOL is walking, modern languages are driving. COBOL is the horse and buggy up against the automobile. It's the dinosaur vs. the mammal.
For those Monks who are curious as to the genesis of this discussion, check out Perl: Survival of the Fittest.
| [reply] |
Of course... If Cobol is like walking, I should point out that you can't drive everywhere. i.e. the purpose of COBOL is to walk where you have to walk. It is damn expensive to make roads everywhere... To continue the analogy.
Also walking requires different skill than driving. Like uhm... you don't need a license to walk ! .... That means also that you won't spend time walking to the wrong place. You have a goal. When you drive it isn't that expensive when it comes to time when you drive wrong. And so on...
As for Dinosaurs vs. Mammals... There are a few dinosaurs left... the crocodiles are descendents from the dinosaurs. They are quite succsefull predators aren't they?
| [reply] |
Actually, I would say that Perl is like Toyota. Toyota makes many many many types
of motor vehicles, from small motorbikes to helicoptors and just about everything in
between. If Perl/Toyota can't get you there, well then.
COBOL is like my old 1977 Thunderbird. Innovative in it's day, powerful for it's time.
It still runs now, though not as good as it could, and it's wasteful because it
has that big steel frame (Sections, Paragraphs, etc) that weigh it down. People still drive the
COBOL Thunderbird, some people still enjoy it, and there are still mechanics who will
work on it. Hell there may even be a factory somewhere that still makes brand new ones.
But I don't drive it anymore. If someone else wants to drive it, so be it. I prefer something
smaller, nimbler, and cheaper on the gas...
Cheers! :)
| [reply] |