Erlang Versus Python

Vladimir Ulogov <>
Tue Feb 29 22:23:36 CET 2000


In my humble opinion it is no way to compare Erlang and Python.
This is absolutely different languages. The key points are:
- Python is OO dynamic language, Erlang - functional;
- Python is not message oriented, Erlang is;
- Python is not multi(task/threaded) initially. The fork() and thread
package are supported not on all ports, The task are one of atomic types
in Erlang;
- Python internally do not have any network support, the
CORBA/ILU/socket modules are system dependent, the no standard ways to
connect to Python worlds over net (it's a couple libraries on the net,
but none is a standard de-facto), the socket module presents on most
platforms but you are having raw socket interface a-la old-good Unix and
should take care about everything youself, Erlang - .... is;
- Distributed database in the standard Python distribution ... what are
you talking about, Erlang - having mnesia;
What's good in Python and Erlang doesn't having:
- Easy access to the module internals (functions, classes, variables);
- On-fly compilation (if the source was changed, the python going to
recompile bytecode itself). This is really nice but dangerous feature,
if the updated module contains bugs, all system are going to crash;
- Half automated way to create extension modules on C/C++ using swig, IG
are very complicated for the most developers. 
- Easy pipes. If I'm spawning some task using popen I'm having as much
instances as I'd spawn those tasks. In the Erlang open_port with the
same portname means the same port (please correct me if I'm wrong),
os:cmd(unix:cmd) also non-parallel if spawned from the different tasks.
- It's possible to load module in the "private" space. In the Erlang,
all available modules are global (correct me if I'm wrong)

And this list are close to be infinite list :),
So, the briefly speaking:
- Python: Object Oriented general purpose dynamic interpreted language,
well ported (even for DOS and Vax/VMS), having lot of network oriende
modules/ GUI toolkits/ database connectors. Easy to extended with C/C++,
SWIG extention available;
- Erlang: functional development environment, with nice network
capabilities, standard database and GUI, nice embedded possibilities for
distributed computation. Pretty difficult to extend on C/C++.

-- 
%% Vladimir I. Ulogov () AT&T Labs
"Where lands meets water. Where earth meets air. Where body meets
mind. Where space meets time. We like to be on one side, and look 
at the other." D.Adams "Mostly harmless"




More information about the erlang-questions mailing list