First computer language

Dick Davies rasputnik at gmail.com
Mon Aug 22 08:55:33 UTC 2005


On 16/08/05, hzs202 at gmail.com <hzs202 at gmail.com> wrote:
> Hi Everyone,
> 
> Firstly, I would like to ask the OP (original poster) if learning Perl
> first was a questionable decision or something you have firmly decided
> upon.
> 
> On 15/08/05 17:01 +0100, Anthony Gardner wrote:
> > Perl is as clean as you wish to make it. To begin
> > programming it's perfect as you don't have to worry
> > about memeory mgt and if you want to program the way
> > you speak, then it's perfect.
> 
> Although you can make Perl syntax read similar to language that does not
> mean that it is *compact*. Compactness is a term which describes the
> design of a programming language in this case can fit in your head. Eric
> Eric Raymond, author of _The Art of Unix Programming_ has a good rule of
> thumb to measure whether something is compact or not. He says, "Does an
> experienced user need a manual? If not, then the design (or at least the
> subset of it that covers normal use [like C for example]) is compact.

ESR talks a lot of bull sometimes. An experienced Brainf*ck programmer
does'nt need a manual, that's what 'experienced' means.

How can you call C compact when it does'nt even have strings?
Taking C as a first language gives new programmers the idea that
checking for memory leaks and buffer overruns is a sane way to spend
your time. So you invariably end up using some (often platform
specific) library to make you life easier (#include <stdio.h> or
<conio.h>?), which gets messy very fast.

That's not to say C isn't Gods Own Language, just that it's too much
too soon. You might as well suggest assembler.

Java is also a bad idea as a first language, for the completely
opposite set of reasons. You'll end up spending weeks learning its
core APIs and quirks, instead of getting the job done.

Perl might have it faults, but at it takes care of the really
low-level drudge work for you without forcing you do solve problems
'The One True Way' as Java does, and lets you spend time learning
algorithms and data structures.
Once you get to the point where you're thinking about OOP Perl, 
run away very fast, preferably onto something like Python or  Ruby.


One last point: to learn a language you have to *use* it. Learning
from books teaches the basics, but then you're much better off getting
some open source package (ideally one you use) and reading through
it's source.

Again, that's a strong case for something like python or ruby IMO, as
it's a lot easier to follow someone elses code in those languages.




More information about the ubuntu-users mailing list