Perl was not taught in colleges because it is dying, and colleges are aimed to produce people who can at least easily find a job. Don't make this sounds like a fault of those colleges. It is really a fault of Perl.
When CGI was the buzz word, Perl was buzz word compliant, and no Perl programmer complained about buzz word, actually they probably liked buzz word more than anyone else. Even today, CPAN is a buzz word Perl programmers waging quite often, when it is highly questionable whether a centralized code repository really provides much unreplacable benefit. Java doesn't have CPAN, but Java has google. C# doesn't have CPAN, but c# has google. You can easily find everything just googling or yahooing.
Perl is not taught in colleges because it's not a good teaching language. You learn a programming language at school because it demonstrates techniques and features that the teacher thinks you need to know about. Java, C, assembler, Prolog, Scheme, all of those demonstrate certain features clearly and so are useful pedagogical tools. Perl does not, and so is not.
"techniques and features that the teacher thinks you need to know about"
Unless we are saying that all those people made that same decision independently were wrong and stupid, otherwise you have just provided very good hint why Perl is dying. It was (notice the past tense I am using) not killed by buzz words, but killed its lack of structure and feature.
New programmers, including a big chunk of those in college/university, need discipline more than they need Perl. Not all of them can find discipline on their own.
College tends to teach discipline first (Fortran, Pascal, Java), and then cover more freeform languages like C, Perl, and Lisp.
I can imagine how many CS dropouts there would be if the first language taught was whitespace, or even Conway's Game of Life (yes, it seems to be Turing complete, if exasperatingly large and slow).
Last I checked, they don't teach sex in college either (well, not in most of them, anyway), but sex isn't dying out. And they don't not teach sex because there's something wrong with sex -- there are other reasons^Wexcuses not to teach it.
...lack of structure and feature...
Perl has plenty of structure. Perhaps "lack of structure" is confused with "TIMTOWTDI". I would say Java has structure -- too much for my liking. When a language forces me to write constructs in a certain way because the language designer thought it was a universal requirement, ...well, let's just say I have a requirement for said language designer. Imagine a sculptor's frustration if s/he was required to work only with bricks -- stone just "didn't have enough structure", at least, according to some camps.
Features? What is Perl missing that some other language has in spades? Can it be added in? Do we want it in? I'm aware of certain classes of tasks it does worse at than certain other languages, and how to work around that. I'm also aware of the accelerated development cycle that Perl lends itself to over most other languages.
Finally, you left out the low volume of new books and other material, compared with "flavor of the day" C, PHP, and anything Micro$oft. M$ is particularly bad, because they will fund book efforts so they can sell more software. What bean counter in his right mind would choose to use software where the primary book titles from 10 years ago are still valid purchases? Why not choose some hot new language based on the number of new releases on Amazon? At least there will be a lot of entry level programmers, right? (And entry level programmers get paid less than experts, right?)
(I must admit, I saw little reason to buy the last 2 editions of the camel book, since my first edition still does everything I need. Of course, I might want something that's not more dog-eared than a flea circus train wreck for the authors to sign at the next barn-raising.)
I don't recall my C books being that useful. Heck, I have to have a special book just to find out how to run C on my machine -- the college textbook I have didn't tell me that!!!
If Perl or any other language dies off, it will be because of apathy and ignorance, not passion. But I do know, and I do care.
Quantum Mechanics: The dreams stuff is made of
I was arguing about why perl was not taught and not about whether it is dieing. The two are very different. See also: making a nice cup of tea. Which is not taught at schools and shows no signs of dieing out.
(1) Perl is not taught in colleges for the same reason that other interpreted
languages are not: they are poor choices for teaching fundamental programming
techniques and OS manipulation (memory manipulation, I/O, etc.). This is not to
say that such languages shouldn't be taught at the college level -- just that
traditional CS programs are more likely to stick with what they know and can
teach a student in four years.
As noted in other replies, a solid programmer in any language -- such as those
actually taught in colleges -- can likely be introduced to perl and become
proficient in a matter of a week or two.
(2) I'm not sure where you're coming from, but the buzz word 'CGI' never implied
perl to me. It implied a dynamic site that was using any of a number of
languages behind the scene -- C and perl being most common, but not the only
players on the block (I saw sites written in shell).
(2a) Regarding CPAN, it's not just about the central, searchable repository;
it's also about the fact that CPAN: is a distribution mechanism that tracks
dependencies; provides a testing framework; provides nightly builds of
documentation; and more.
"the same reason that other interpreted languages are not"
You are not saying that you never heard of VB, actually people even taught Quick Basic. So go find a different reason.
"but the buzz word 'CGI' never implied perl to me"
Bravo!!!I gave you the credit for this. At last some Perl guys showed the correct understanding of CGI. CGI was a protocol, until it was totally misunderstood by some other perl guys, and abused it as the name for a module that was not even slightly related to CGI.
The term of CGI was misused in Perl, but was the buzz word for Perl's ability to deliver largely static web content, which is not relevent any more in today's fast advancing IT environment.
I think you have a different view of "college" than most people here. The only place I have ever encountered serious courses in VB are at the community college (in continuing education courses) and at two-year ITT-Tech type places.
I know that my undergraduate school used to teach Pascal as an initial language, but has now moved to Java.
Even today, CPAN is a buzz word Perl programmers waging quite often, when it is highly questionable whether a centralized code repository really provides much unreplacable benefit. Java doesn't have CPAN, but Java has google. C# doesn't have CPAN, but c# has google. You can easily find everything just googling or yahooing.
I might have given you the benefit of the doubt until this comment. Its quite clear that you havent the foggiest idea about what you speak. Google is so far from a replacement for CPAN that it isn't funny. Every time I've had to search for useful free code for any other language I've come away thanking the powers that be that I use Perl and have CPAN to back me up. While not everything on CPAN is quality software, lots of it is. The same can't be said of Java's or C#'s collections available from Google.
You keep trolling this site bashing Perl and apparently promoting Java. Its not clear why. Perhaps Larry Wall didnt talk to you at a convention, perhaps you are just an attention seeker, perhaps you are a shill for Sun or Microsoft. Whatever. Most people here don't care, and would rather you just wander off back to where you came from.
If you have anything constructive or useful to add to the site other than regularly repeating "perl is dead" then please do so. Otherwise just bug off.
Perl is not taught in colleges because (a) there are not textbooks, (b) it has only recently become mature enough to use for demonstration CompSci concepts, (c) the vast majority of CS professors don't have years of experience with Perl (as a result of b). No one is really blaming anything on anyone; but it is perfectly reasonable to say that new Perl jobs are harder to come by, in part, because new CS graduates have not been taught Perl but other languages instead.
Only a very few people CGI means Perl: most people realize that it is a method for a web server to generate dynamic pages by executing code (which can be written in any language, in theory). There is, of course, a CGI module that made writing CGI scripts and applications easier in Perl than in many other languages. That is why Perl quickly became a very common tool to produce CGI-based web sites.
As for CPAN, it's not a buzzword, but it is a powerful point toward choosing Perl for Rapid Prototyping or Rapid App. Development projects. Yes, Java and C# code can be readily located using Google searches, but CPAN is more than a centralized repository. CPAN, in combination with the CPAN module (or Bundle::CPAN) has full dependency tracking, and is supported by the CPAN Testers, so that one can know a module has a test suite and the like.
I think many people make the mistake that Perl is trying to compete with other languages, or that people will chose Java, C#, or some other language instead of Perl.
The reality, of course, is that most Perl programmers don't program only in Perl. Many very knowledgable Perl folks use C, Java, or even one of the .NET languages. Perl does what it does very well, and continues to be used (albiet more quietly than in the past) to maintain a huge extant code base and to create new applications.
Unfortunately, because Perl is not in the limelight (marketing, magazine articles, etc.) nor taught in programming classes, Perl programmers are harder to find. Because there are fewer Perl programmers than, say, Java programmers, management is more likely to select Java because they know they can find a replacement coder if someone quits.
What gets used for big software projects has almost nothing to do with the quality of the language, and everything to do with management's confidence in finding good people (and being able to afford to pay them).