in reply to Disadvantages of Perl?

Contrary to some peoples beliefs, there is no "wrong" first language. The only time a first language is "wrong" is when it's chosen to accomplish a task that it isn't suitable for. For instance, if you're going to be writing Linux kernel code, Perl *is* the wrong choice.

For decades, there have been people who say "Oh if you learn that language first, you'll never be able to write decent code for the rest of your life." BASIC was one of the earlier culprits of that thinking. BASIC, like most languages, has it's time and place. Under Windows, for example, you can prototype a GUI faster in Visual Basic than Perl/TK, and it will look more like a Windows application.

Different languages have different strengths and weaknesses. One of the skills you should have as a programmer is knowing several language, and know which one to use when. Perl is an excellent general purpose langage, and especially strong in text processing. Forth, on the other hand, has none of the intrinsic string handling that Perl has, but it's a lot smaller and faster (complete Forth interpeters WITH editors have been done in 4K of memory). 'C' is more suitable for operating system work, and assembly is the tool for when you really need get down to the bare metal.

Learn Perl, but not only Perl. Learn 'C', Java, and a few others. Know when to use them, and don't become emotionally attached to a language. Learn how to implement common algorithms in all the languages you learn. Often you'll see how to write better code in one language by playing with another.

Perl can let you develop sloppy habits. So can every other language. As I like to say periodically "You can write Fortran in any language". Don't condemn languages you haven't used (except for COBOL...). They were all developed for a reason, and have all certain strengths. Don't sneer at Visual Basic because it's BASIC. More interactive production applications ship in VB than in Perl (Perl is not really good for writing word processors and spreadsheets).

I think you see the point I'm driving at. Perl is as good a first language as any. It will allow you to rapidly express your concepts, there's a huge base of user written modules, and there's a lot of information available (witness perlmonks.org. Tried to find COBOLmonks.org lately?) But it's not the only language, and it's not always the right language.

--Chris

Replies are listed 'Best First'.
RE: RE: Disadvantages of Perl?
by JanneVee (Friar) on Jun 13, 2000 at 19:58 UTC
    "Learn Perl, but not only Perl. Learn 'C', Java, and a few others. Know when to use them, and don't become emotionally attached to a language. Learn how to implement common algorithms in all the languages you learn. Often you'll see how to write better code in one language by playing with another. "

    Pure Genius... When you get more mature. Learn SQL too and how to Normalize databases. Get into OO concepts.

      Very Good Points. I want to emphasize learning algorithms. Computer languages are tools and only tools. Perl is not the best choice or every application, but I've learned that it makes a great prototyping tool if I need develop an idea. Don't listen to language or Operating System bigots. They are giving out opinions, not facts. Best of Luck with Perl. "Let us go then, you and I. With the earth stretched out beneath the sky, like a patient etherized upon a table..." T.S. Eliot, The Love Song of J. Alfred Prufrock
RE: RE: Disadvantages of Perl?
by redmist (Deacon) on Jun 13, 2000 at 20:20 UTC
    I think that you make some very good points here, jcwren. The is a purpose for every language. I think that maybe thew key issue here is that the language adapts to your skill. What I mean by this is that if I become very, very good at Perl, I will be able to push Perl to do anything (aside from writing a bootloader or something) I want it to. I can definitely see this quality in Perl.

    Another good point that you had was about the ability to make mistakes in other languages. I suppose one just has to be concious about what is going on behind the scenes if one is using a certain method or practice that has any significant impact on the program.

    redmist