what is easier to learn first?...
Russell E. Owen
owen at astroNOJNK.washington.edu.invalid
Tue Mar 21 20:04:23 CET 2000
In article <sddpupuilul18 at corp.supernews.com>, "Collin Greene"
<greene at hctc.com> wrote:
>C+/+ or python or perl, I need an unbiased opionion here. I have NO
>programming experiance. thanks for your time.
>greene at hctc.com
An interpreted language (Python or Perl, not C/C++) is much easier to
learn, because you can try things out right away rather than having to
compile and link everything before you run it.
Also, I find it helps to get a really good book on the language and to
have a project in mind -- something you're keen to do, and that you can
learn the language as you do it.
Having said that much, which I suspect is pretty innocous, I'll now
attempt not to ignite a flame war while giving you my opinion of various
languages. Please realize these are only my opinions. I am personally
enomored of clean design, simplicity and reliability. I know C well, the
others less well.
If you mostly want to do quick and dirty processing of text files, Perl
is hard to beat. There are lots of good free implementations and tons of
good books about it (for instance "Learning Perl"). But Perl is an ugly
language -- lots of shortcuts, not a lot of consistency. It does not
scale well to large projects and will not teach you to be a good
Python is a good place to start. The basic structure is reasonable --
flexible lists, good exception handling, adequate object model. It has
quite a few design quirks (such as no class methods and unsafe class
variables), but they pale in comparison to Perl or C++. I'm still
looking for a good book on it (I have "The Quick Python Book", but want
something that goes deeper into the topics it covers and also something
to help me figure out the class libraries -- not only explain the
modules, but also help me figure out what is where, where to look for a
C is a very simple language. It is missing a lot of useful stuff, such
as exception handling, objects, decent character strings. Also, it has
an excessive reliance on dangerous pointers. But it's so simple and
basic that it makes a very reasonable place to start and it will prepare
you to use lots of other languages ("C-like syntax" being, unfortunately
very popular). Lots of good books. Compiled.
C++ is very complex. In some ways it's a "better C" (adding exception
handling and real strings). In other ways it's really messy. It takes a
lot of work to really learn the language, use it well and use it safely.
It has more ways to shoot yourself in the foot...
Other languages to consider:
- Java: somewhat slow, ugly and unfinished, but reasonably safe and
wildly popular/hyped. Lots of books; I'm not so sure about good ones.
Compiled (to byte codes, so combines the hassles of compilation with the
slow speed of an interpreter).
- Smalltalk: a very simple language coupled with an extensive class
library. A combination I find appealing. It includes the best
"collection classes" (lists, etc.) I've seen. The GUI stuff is rather
messy, unfortunately. It takes awhile to learn the class library, but
you can learn a bit at a time, as you need stuff. If you are interested,
get the VisualWorks Noncommercial (free) or Squeak (also free, smaller
but rougher edges). This is, hands down, my personal favorite language.
Interpreted, so great for learning and prototyping.
- Eiffel: supposed to be clean, sensible and industrial strength. I do
not speak from experience, though I want to learn it.
- Visual Basic: reportedly good for quick and dirty user interfaces and
pretty ugly for larger stuff (lots of features thrown together, not
cleanly designed -- a very Microsoft approach). RealBasic is a
competitor worth examining.
- ...lots of others
More information about the Python-list