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 
particular job.)

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

-- Russell

More information about the Python-list mailing list