| Paul Sheer on Sun, 3 Sep 2000 23:45:16 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| ADV: Python (Was: Re: Programming) |
On Sun, 03 Sep 2000 22:34:10 Stewart Hurrell wrote:
> >
> > On Sat, 02 Sep 2000 13:20:39 Stewart Hurrell wrote:
> > > Hi,
> > >
> > > I'd value some input from you. I've programmed in Cobol for a long time
> > > now.
> > > I'm also a Linux evangelist in the company. What I need is to learn a
> > > language
> > > that I can use in Linux. The requirements will be produce general
> > > commercial
> > > apps - Point of Sale, Accounting apps etc etc.
> > >
> > > What is the best to learn - not neccesarily the easiest - what will I get
> > > the best
> > > results from.
> > >
> > > Regards
> > >
> > > Stewart
> >
> >
> > Python, www.python.org
> >
> > -paul
> >
> >
>
>
> Thanks
>
> Bear with me - Python looks like a high level language, with complexities
> I've
> never seen in something like COBOL. Yet it's called a scripting language.
> How does that compare to a "real" language?
>
> Scripting is a term that won't be easy to sell to higher ups.
>
> Regards
>
> Stewart
For GUI applications written in Python with Gtk or wxWindows,
you absolutely won't be able to tell the speed difference to a
compiled application. Python byte compiles like Java.
Python is quite simply:
the easiest to learn
the fastest to develop in
the easiest to maintain
its very difficult to write unreadable code in python, because
there is always only one good way to do things. this is python's
design philosophy.
Python programs will typically take a third of the time to
develop than any other language. I reckon they will take
a tenth of the time to develop than in COBOL.
Python is not an arbitrary choice either. It has been compared
to every other development method. It comes out tops in every
respect. The only reason why its not taking over the world
is because its free, and therefore has little commercial backing.
Among Free software developers, python remains unrefuted.
There are really two types of developers: those that are python
zealots, and those that haven't even looked at python.
The RedHat installation program was written in Python (both
the text based AND gui versions). The new linux
kernel configuration program is written in Python.
The Zope web server was written in Python. These are HIGH
profile Python programs used by millions of people.
Python is a properly Object Oriented programming language,
very similar to Java. COBOL is not really considered a language
at all in my circles - most think of it as assembly language
pseudo-code, used only because banks are stuck with lots
of old COBOL programs. Well, at least thats what people *think*.
There are no ``complexities'' in Python that do not exist in Java,
since the two are very similar.
It sounds like you have only ever programmed in COBOL, and are
not yet familiar with where languages have come since COBOL.
Since COBOL we have had procedural languages, like Pascal, C and
millions of others. Since procedural languages we have had Object
oriented languages like C++, Objective C and hundreds of others.
Next to Python there are several choices:
Tcl/Tk - is widely considered the standard cross platform
development environment. It is more widely supported
than java. Its not ``really'' object oriented and
not as clean and readable as python.
Lisp - Used widely in the free software world. Some consider
it antiquited. It is the most expressive language around.
I haven't tried it. Its not object oriented - its called
a `functional' language and is difficult to learn by
comparison.
Perl - you can do anything with perl, but its difficult to maintain
anothers code. Its not really for GUI or interactive desktop
applications. its easy to write unreadable and complicated
perl scripts.
Objective C: somewhat esoteric, but good for large projects that
HAVE to be in a compiler language.
C/C++ - not for rapid application development. You can write C modules
easily for Python - thus smooth out any bottlenecks later on
in your development cycle. C++ just takes too long and requires
too much expertise.
VB, Java, C#, Delphi: These are all commercial. none of them comes
close to Python, and all require spending lots of $$$
Only java has a development kit for Linux. Delphi
say they will real-soon-now(TM).
You may ask: isn't python just the fad of the day? python is so easy
to learn it doesn't matter. it will take a person a week to learn to
program Python, if they have ever programmed in any other object
oriented language (like C++, Java, VB). You will always be able to
train someone to maintain your old python stuff.
You don't have to say `scripting'. Say it `on-the-fly BYTE compiles'
that it runs `cross-platform'. Everyone likes the words `cross-platform'
and `byte-compiles'.
A good, (well motivated) python programmer can produce a commercial grade
accountancy application in one week, and a point of sale system in 2 days.
-paul