Language Suitablilty
Michael Sparks
zathras at thwackety.com
Sat Jun 12 15:52:52 EDT 2004
On Sat, 12 Jun 2004, Jens Thiede wrote:
> I'd like to know what other people think about Python. In particular, what
> is Python best suited for?
Programs you want to get done, run at a reasonable speed with clear places
and routes for optimisation should that _need_ to happen, and have fun
along the way.
In more concrete terms, I would take this to mean data rich applications
using databases, algorithmic rich applications (eg analytic/simulation
systems), network servers (twisted is one of the best event based
frameworks (*) I've seen), GUI applications, and writing games.
(*) By contrast, Perl's POE is one of the most hideous systems I've ever
worked with (despite how well it does actually work), and no C++
event based framework I've looked at has ever looked pleasant to work
with.
> Could anyone comment on how Python fares against C++, Java and Perl?
I'm not going to compare against Java/C++, but with reference to perl,
having written programs almost day in day out for 5 years in perl before
coming to python I would say that they're comparable languages. For
programs that require *lots* of string transformation, perl is a more
natural fit IME, but for many, many, many other projetcs, I've found
python to not just be a better fit, but a more enjoyable fit.
One observation regarding perl/python have over C++/Java is the lack of
compile cycle generally results IME with more people writing unit tests,
and distributing unit tests with their code. Make of that what you will -
IMO it's a _very_ positive plus for both languages. For a highly trustable
opinion on C++/Java vs python/etc I would suggest looking for the
interviews with people like Bruce Eckel on his thoughts on the matter.
One final point I feel though - python strikes me as a having a greater
likelyhood at being maintainable. Perl often tends to become more and more
obfuscated with time. The edit/compile/test cycle of Java/C++ IME often
leads to greater chance of awkward to find/fix errors occuring. In
contrast, the heavily used python idiom of ' if __name__ == "__main__": '
tends to lead to a modularity I've not personally seen in many other
languages.
Bearing in mind that a lot of code is maintained by people who weren't the
original developers... Given that 90% programmers aren't in the 10% of
best programmer rankings, this strikes me as a good thing. Given that 90%
of programmers tend to think they're in the top 10% anyway and will use
features they don't really understand properly, using a language which is
geared well towards maintainability strikes me as a strong positive.
Michael.
More information about the Python-list
mailing list