Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^2: Right tool for the job?

by Anonymous Monk
on Sep 27, 2005 at 20:34 UTC ( #495545=note: print w/ replies, xml ) Need Help??

in reply to Re: Right tool for the job?
in thread Right tool for the job?

A useful list of popular languages that you may need to work with includes Perl, C, ASM, shell, Java, PHP, and Python
While learning a popular language may make you more popular, learning an unpopular language will probably be more beneficial in terms gaining programming wisdom. Choose one from each of the following categories...

Comment on Re^2: Right tool for the job?
Re^3: Right tool for the job?
by zshzn (Hermit) on Sep 28, 2005 at 02:47 UTC
    Certainly. However, he mentions programming languages as tools to solve particular tasks that may come up, not so much in a 'pure' kind of interest for the sake of learning. Although any of those would be very beneficial to a programmer's knowledge of concepts, learning a few popular languages will not only teach new concepts and wisdom, but also will be very practical.
      I disagree. The difference between Perl and Python is mostly a matter of slightly different syntax and maybe a few different libraries. Any problem you that can solve in Python in X number of lines of code, you can also solve in Perl in X lines of code (plus or minus 10%). About the only wisdom you'll gain is knowing that whitespace can be made significant. Now compare to something like Prolog. You can solve some "Real World (TM)" problems in X lines of code, which would take 10X-100X lines of Perl (or Ruby, or Java, etc.). If a person doesn't know many other languages besides Perl, they won't necessarily know that some languages are based on completely different paradigms. Perl, Python, Ruby, and Java are (gasp) pretty much cut from the same cloth. If you know one of those languages, you won't learn new ways of thinking by learning one of the others. Just having a brief encounter with a language like Prolog or Haskell will interesting and exciting and it will enable different ways of thinking that you'll appreciate later.
        I have studied Haskell in college, and it was certainly different. I actually had no understanding of what map was doing in Perl until I saw some Haskell. The line between theoretical and practical knowledge is not one that I could draw.

        I think Perl is more similar to Ruby than it is to Haskell in some ways, but I think the difference between Perl and Ruby is still significant. The idioms, the philosophy, the approach to solving problems, those things are significantly different in Perl and Ruby. You could say there's little difference between the syntax of C and Perl, but even though I can write Perl that looks very much like C, I certainly don't. I don't think Ruby people write Ruby that looks like Perl either.

        I'd say learning Ruby if you already know Perl is like learning German if you already know English. Learning Haskell when you know Perl is like learning Japanese when you know English. (The analogy likely doesn't make sense unless you've studied all three of those, but anyways...) There can be benefit in both.

        It's something to think about. I will consider diving into Haskell again. (I still have nightmares from last time though.)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://495545]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (6)
As of 2014-10-02 00:02 GMT
Find Nodes?
    Voting Booth?

    What is your favourite meta-syntactic variable name?

    Results (41 votes), past polls