[CLUG-chat] Intro into programming.
cayle at chemeng.uct.ac.za
Thu Aug 3 09:37:18 SAST 2006
You mentioned that you want to code for the *nix platform. I presume you
don't want to get into any linux development (app or kernel)- in which case
your best choice would be C/C++. However, for an initiate to programming I
would prescribe a 3rd/4th generation languange. Loosely put this means:
- It follows the Object Orientated paradigm (OO)
- It has good RAD (Rapid application development) support (i.e. integrated
tools for building GUI)
- It has a nice IDE and integrated debugger to help you code faster, make
fewer mistake and quickly fix the ones you do make.
To this end, I'd recommend (in order):
1. python (with pydev and eclipse) - python is OO, and very easy to
learn/use; and has a huge library of 3rd party code. It's also
cross-platform, so your *nix programs will usually run under windows. With
pydev/eclipse you have a decent IDE. There is no real RAD support, so you'll
have to struggle with bindings for something like wxPython. But overall
python is my second choice for development.
2. Java (with eclipse) - Java has pretty much the same pros and cons that
python does. Except that the syntax is more difficult to learn (in my
opinion). On the other hand, Java is 100% cross platform and arguably has a
bigger following than python. Of course it's not Free (as in speech)
software either, if that makes a difference in your life.
3. Freepascal/Lazarus (http://www.lazarus.freepascal.org/) - I've been using
Delphi to code for over 9 years, and overall, I think it's by far the best
compromise of speed, ease of use and power of all the languages.
FreePascal/Lazarus is the OpenSource version of Delphi and as Lazarus
approaches version 1.0 it is becoming a very powerful alternative. Lazarus
is also cross-platform in the sense that the same source code can be
compiled to either Windows or Linux native binaries.
The pro's of Lazarus are: OO, RAD, fast compiled code (Depending on your
application, Lazarus programs will run, up to 100 times faster than their
python or javaequivalents) and a really good IDE/Debugger. The major con is
that Lazarus is still fairly new; as such it doesn't quite have the library
support that other languages have managed to build up.
Since I write modelling software (highly numerically intensive), I use
FreePascal (Delphi actually); but for a complete newbie, I'd recommend
python as the first port of call.
Hope this helps
Senior Process Engineer
Sasol Technology R&D/ University of Cape Town
email: cayle at chemeng.uct.ac.za
fax: (+27) 11 522 8662
cell: (+27) 83 556 9472
More information about the clug-chat