Re: Quick questions...



earthlinkmail@xxxxxxxxxxxxx wrote:
...you experienced programmers of C; did you start with C? What course
of study did you pursue to get to where you are today? Would you
suggest starting with REALbasic first for a n00b? I am completely new
to programming and using a Mac and would like some input as to where to
begin a career in programming.  I know this is probably a somewhat
undefined question, but would appreciate you input/advice. Thanks.

C had not been invented when I started programming, so I didn't have the option of learning it first. Although C is probably easier to get started in (and vastly more powerful than) the FORTRAN II that was my introduction to programming, I don't think I'd recommend it as a first language for a beginner. It is a band saw without a blade guard: the perfect tool for cutting tricky shapes in wood and in fingers.

    Baby-talk languages like BASIC or Pascal don't strike me
as a good way to start, either.  Both have been morphed into
"serious" languages, but seem top-heavy: too many industrial-
strength features loaded onto inadequate substrates.  A kid's
little red wagon is a fine thing, but not the vehicle of choice
for hauling freight cross-country.

    Looking at the languages available today, I'd suggest
starting with either Java or some form of Lisp.  Both are "real"
languages, but both relieve you of worrying about some of the
trickier aspects of "real" programming, especially memory
management.  Also, both come with things like Iterator (Java)
and mapcar (Lisp) that provide canned solutions for some common
and repetitive tasks so you can forget about them for a while
as you concentrate on learning how to reason about a program's
behavior.

    Alas, both languages share a serious drawback: Their error
messages are cryptic and likely to baffle a beginner.  (By
"cryptic" I don't mean merely "terse:" both languages tend to
produce messages that describe a difficulty in their own terms
and not in terms of the problem space.  All computer languages
I've used share this characteristic to some degree, but Java and
Lisp seem a little remoter than most.)  The opacity of their
diagnostics may be somewhat offset by the superior debugging
features that lie within the languages themselves.

    Of course, all this is a bit speculative on my part.  I did
not actually begin my study of programming with either Java or
Lisp, and don't actually know from personal experience how good
or bad they might be.  I think, though, that they'd be better
starting points than C -- I started learning C almost thirty years
ago, and I *still* haven't grasped all of it!

--
Eric Sosman
esosman@xxxxxxxxxxxxxxxxxxx
.



Relevant Pages

  • Re: LISPPA
    ... > memory resources. ... do in Common Lisp with code that runs about as fast. ... >> comparing Lisp with languages like C, Pascal and Basic, ... If by "visual programming" you mean the sort of ...
    (comp.lang.lisp)
  • Re: How Common Lisp sucks
    ... languages than there are jobs that require them as primary programming ... blog entries on Lisp. ... Lisp that sucks, ...
    (comp.lang.lisp)
  • Re: LISPPA
    ... >> a match for such imperative languages as C, ... >comparing Lisp with languages like C, Pascal and Basic, ... I can accept that Lisp tries to compensate of the lack of compile-time ... If you have tools of visual programming, nice editor, advanced ...
    (comp.lang.lisp)
  • Re: How Common Lisp sucks
    ... I could list some web servers written in Common Lisp. ... If a programming infrastructure fails ... underpinning than the p* languages. ...
    (comp.lang.lisp)
  • Re: Head-in-the-Sand Liberals (LA Times Columnist)
    ... You claimed to have known several computer languages, ... If you lie about knowing computer languages, ... of the programming loop for a functional ... You also don't know Java. ...
    (rec.org.mensa)