ANN: Tao Scripting Language 0.8.5 beta released!

Limin Fu fu.limin.tao at
Thu Jan 27 16:54:53 EST 2005

> Since you chose to announce it in this mailing list/newsgroup, may I
> suggest that a comparison with Python is in order?

To make a reasonable comparison with Python, I need to spend more time
to investigate into python, since so far I only know some basic things
in Python :-). But I can ensure that Tao is very different from
Python, and it will be more different in the future.

> Since it is a new scripting language, I'm not suggesting a language war,
> but rather a simple statement of how Tao differs from Python, and what
> "itch" you were trying to scratch when you designed your new language.

Well, I started to design this language, because I work on
bioinformatics and I hardly found any language that really satisfied
me. I found that, a language with simple syntax, convenient text
processing functionality, powerful numeric computation capability, and
simple C/C++ interfaces would be very useful in this field.

Perl is got out immediately due to its complicated syntax and many
possible traps(though there are still many people using it in this
field, I think it is due to historical reasons). Though Python is
great in many aspects, its syntax is also something I don't really
like, and I think its interface to C/C++ is not simple enough. R
language is not well designed according to me, though it's more
popularly used in bioinformatic than Python. So I decided to design a
new language. Though that goal is not reached yet, it is not
unreachable either.

> Basically, how does your design philosophy differ from that of Guido?

I think I agree much of the design philosophy of Guido. But it is just
a kind of guide line, it doesn't imply anything about the structure of
the language and the interpreter. So the same philosophy can come out
completely different language.

> Where did you go left when Python went right?

I will only point out a few such places.

1. Tao use uniform parenthesis symbol for both list/array and
hash/dictionary, that is []. While in Python, [] is used for list, and
{} is used for dictionary.

2. In Tao, there is no "self" argument in class methods as in Python.
And the class syntax of Tao is more similar to that of C++.

3. Some Matlab features regarding numeric types,  multi returned
values in functions and multi assignment etc. are integrated into Tao.

4. Tao provides a very convenient way of declaring array/list which,
to the best of my knowledge, is not presented in any other language.
That is,
a=[10][5] : value/arith/function;
which will create a 10x5 array with elements resulted from evaluation
of the right side of ":".

Best regards,


Homepage for Tao Language:

Tao Language project at

More information about the Python-list mailing list