[Tutor] Two Newbile Questions: porting drawmap.c, & Python as a lifetime language

Alan Gauld alan.gauld at freenet.co.uk
Wed Jul 5 16:03:23 CEST 2006


I missed the original post but I'll chip in anyway...

> dnelson at cae.wisc.edu wrote:
>> 2. Seeing Python hailed as a good language for learning 
>> programming,  how do you rate it as a lifetime language? (I can 
>> imagine that many people have settled into one language for doing 
>> the remainder of their life's work.

There is no such thing as a lifetime language (unless maybe its COBOL
or Fortran) because lanmguages are conmstantly changing.

When I started programming in the mid 70's I was using BASIC and
Assembler. Then when I went to University (as an adult student) I was
tought Pascal and C. (While there I also came across Smalltalk and
OOP but they weren't part of the core curriculum) After some years
using C (and some Lisp) at work I needed to learn Objective C and
then C++ which became my prime language for about 5 years.
(During all this time my personal projects were being done in
Pascal or Lisp  -- or Tcl which I'd found by accident...).

Nowadays almost all my work is done in either Python,
Pascal (Windows GUIs), Objective C (for my Apple) or Java.
I only use Java while at work - I detest it as a language.
But I've used over 30 languages in total over the years,
some I've forgotten, others I still dabble with (such as Smalltalk
and Lisp).

The language is pretty well irrelevant, you can do almost
anything in almost any language. The important thing is to
understand how to structure code and to lay it out clearly
for ease of maintenance. You can learn almost any new
language in less than a week. Learning all the common idioms
may take a few months.

>>     I am pressed, I will choose Perl at this point.)

Perl is just too lmited in scale for my purposes, it's great for
small scripts and up to a thousand lines or so of code.
But I had to maintain a 5000 line Perl program (ie quite small)
and it was not much fun - too many different styles used
and inconsistent design patterns, something Perl actively
encourages.

Once you get to large programs, say over 100,000 lines,
and certainly over a million you need a language with good
support for that kind of work. ADA, Eiffel, COBOL,
(and just maybe C++)  etc

The main reason COBOL has remained the most commonly
used language for large projects is its superlative support for
that kind of environment. Small COBOL programs are a pain
because you have to do so much to set it up, but on big projects
those very same constraints become a godsend. It's interesting
to note that most of the very big projects that fail have tried to use
other languages than COBOL and run into problems. COBOL isn't
necessary but it has a huge culture behind it for these kinds of
jobs - we have learned how to do it in COBOL, we are still
learing in Java, C++ etc.

Alan G. 




More information about the Tutor mailing list