Re: Ruby, Perl, Python



On Wed, Feb 13, 2008 at 11:50:44PM +0900, M. Edward (Ed) Borasky wrote:
J. Cooper wrote:
As a new programmer (still in school), I'm curious as to the world of
scripting languages and their roles. I am learning Ruby (played a bit
with Rails a year ago, but more recently have been using it for my own
scripting projects), but I have zero experience with Perl and Python,
which seem to be pretty household names and thus I feel out of the loop.

I guess what I'm asking is: assuming I become a proficient Rubyist, is
there a reason to learn Perl or Python (beyond someone handing me a pile
of code in one of those languages and telling me to maintain it)?

Thanks,
J

Well ... in the absence of a financial motive, like being paid to
maintain code in Perl or Python, I would recommend learning them only if
there is some functionality implemented in one of them that you want to
hack on. Focus is a wonderful thing, and Ruby is deep enough that such
focus will be repaid.

Someone else on this thread recommended learning a functional language
like Haskell. While knowing a functional style is important in the
theoretical computer science world, it isn't necessarily going to make
you a better programmer. I think it's really more the other way around
-- if you're a good programmer, you'll learn functional programming
easily and think that it made you better. If you're not a good
programmer, you're better off getting good in one (imperative) language
for a few years.

I disagree. Learning new paradigms of programming well enough to really
grok how they work teaches new patterns of thinking -- which broadens and
deepens one's understanding of programming in general. It makes one a
better programmer. Only those incapable of really grasping the
underlying philosophies of varying programming paradigms will not benefit
from learning a new language whose focus is in a different paradigm than
previous languages. Even learning different languages in the same family
will make one a better programmer, when the reasons for these differences
are understood.

I learned more about MS Windows by three months of familiarization with
Linux systems, when I first encountered Linux, than I had in the
preceding three *years* of in-depth use and support of MS Windows.
That's because I learned a lot about the differences between MS Windows
and Linux systems, which gave me valuable insights into the reasons for
these differences -- good, bad, and just plain different. The same
applies to learning more programming languages.

That's not to say that one should split one's focus between multiple
languages early on. As much as possible, new programmers should focus on
learning *a language* for quite some time. When really proficient with
that language, *then* learn a new one. Learning to program well is best
pursued with a philosophy of serial monogamy, as far as I'm concerned,
with enough dalliances with past programming language partners to stay
familiar with them and be able to reasonably compare and contrast them
with the current focus. As more languages are learned, the time and
effort necessary to learn a new language should decrease. An arbitrary
guesstimation of a schedule of learning languages might look something
like this:

Foo: Five years.
Bar: Three years.
Baz: Two years.
Qux: One year.
Quux: One year.
Quuux: One year.
Quuuux: One year.
. . .

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Thomas McCauley: "The measure of a man's real character is what he would do
if he knew he would never be found out."

.



Relevant Pages

  • Re: What things should successful programmers-to-be learn right now?
    ... more to the point: In what industries are the languages used ... >targetted at learning about programming. ... >These teach you about the power of higher-order programming, lists and ...
    (comp.programming)
  • Re: Is Unicode character a vowel?
    ... Some years ago I became convinced that we are teaching programming all wrong. ... acquired some books on infant learning and language learning, ... English by saying "A noun is a name word, and names a person, place or thing. ... Not the height of foreign languages but weird enough to notice. ...
    (microsoft.public.vc.mfc)
  • Re: Lisp Ruby Scheme
    ... :>: Someone has stated that languages teach you to think inside ... :> teaches you that particular programming style. ... will probably make you a better Scheme or Lisp programmer. ... this is also part of the learning. ...
    (comp.lang.scheme)
  • Re: Please Help!!! Lisp Newbie.
    ... computers and programming. ... topics like memory-management, CPU architecture and the factors of the ... Languages. ... learning a little Lisp, and I found it very interesting, especially ...
    (comp.lang.lisp)
  • Re: Why Writers Buy Asbestos Undies
    ... why there were no OpenVMS books in their review database. ... rambling introductions to programming on OpenVMS in a number of ... programming languages: DCL, BASIC, Fortran, COBOL, C and C++. ... languages implemented on the operating system to match functionality ...
    (comp.os.vms)

Loading