j2ee vs. python (and what our evil competitors are saying about python)

Mark McEahern marklists at mceahern.com
Mon Jul 8 19:56:28 EDT 2002


> Summary
> Python is often used as pseudocode to conduct rapid development. Its
> major users are web sites that do not reuse code and often conduct
> “throw away” development to meet internet development time
> tables. It is a very new language and has very little support compared
> to the Java development community. It is also not J2EE compliant.

Python is something like 10 years old--how old is Java?

Some metrics for support:

	activity of comp.lang.python
	projects on sourceforge, freshmeat, etc

Also interesting in the way of comparison:

	comments from eric raymond
		http://www.linuxjournal.com/article.php?sid=3882
	comments from bruce eckel
		http://www.mindview.net/Etc/FAQ.html#Ruby

I'm not a Java expert, but you might want to point out something about
Jython.

> Platform Drawbacks
> As a new relatively untested development platform in the licensed
> software community, Python has certain deficiencies with which all
> users and developers should be aware.

Oh boy, bring on the FUD...

>  Issues and concerns
>
>  ·         No integrated GUI (Graphic user interface) support.

Tk, wxPython, etc.

> ·         No compiler to the native code.

Advantages here are that Python is probably more easily portable than Java,
so I've heard.  ;-)

> ·         No automatic garbage collection.

http://www.python.org/doc/current/lib/module-gc.html

> ·         Does not have vast number of libraries as that of Java,
> Perl, C++; etc.

What matters, of course, is whether it has the libraries you need.  Python
is known for its batteries included approach.  Does it please everybody?  Of
course not.

> ·         Since Python is an interpreted language, it requires
> frequent run-time checks and thus does not provide the speed,
> performance and efficiency of compiled languages like Java, Perl and
> C++, which is a major issue.

Python is compiled.  The important point is that it's dynamic.

If you need speed, building extensions in C/C++ is a snap:

  http://www.python.org/doc/current/api/intro.html

Of course, the thing to tout here is Python's speed of *development* and
easy maintenance.  There's probably some study somewhere showing these are
where projects typically fail.

> ·         Python does not provide multiple ways to perform tasks as do
> most other languages.

Yeah, that's right.  There is only ONE way to do it in Python.

Who fell off the clue train here?  This sounds like someone who heard wind
of TMTOWTDI, heard that Python strives for having One Right Way(tm), and
forgot that Python is Turing Complete.

> ·         It takes a lot of time for Python to adjust to the
> indentation style of the structuring code.

Um, Python is compiled.  So indentation makes no difference at runtime.
Correct me if I'm wrong here.

Besides, what shop doesn't have indentation standards?  Python merely
enforces those at the language level.

> ·         Since Python is relatively a new language, there are only a
> few resources available for information on its latest developments.

Huh?

> ·         Limited documentation- only two English language books exist
> which provide tutorials or a library reference for Python.

Amazon appears to think differently:


http://www.amazon.com/exec/obidos/tg/browse/-/285856/ref=br_bx_c_2_6/102-735
8375-9932923


> ·         The language is restricted to fewer code modules.

What on earth does this mean?

> ·         Lacks native threading capabilities.

I've heard threading in Java is superior to Python.  I don't really know the
details here and I haven't had to care yet.

> ·         Lacks basic tools such as integrated source level debuggers.

I'm not up to speed on this issue.

> ·         No packaging methods for software distribution.

distutils.

> ·         Lacks tools to solve typographical and type mismatch classes
> of errors.

It's called unit testing.

> ·         Python cannot write docstrings in C++.

Is that true?

> ·         Python is difficult to read.

This is a matter of opinion.  The common opinion is that Python is easy to
read and learn.  See Eric Raymond's comments.

> ·         Dynamic loading is not available on all systems, requiring
> that a developer use static loading.

Huh?

> ·         Prototyping and development

Python excels here.

> ·         Platform independent graphic user interface applications

I'm not a gui person, but isn't that what Tk, wxPython, et al, deliver?

> ·         Internet scripting/applications

Python is so easy for web scripting that everyone writes their own web app
server!  ;-)

> ·         Automated test harnesses

pyunit

> ·         System administration applications

it excels here.

> ·         Shell scripting/OS Scripting

> ·         Text processing

I'm not an expert here, but it has support for regular expressions!  ;-)

> ·         Database Interfaces

I use PostgreSQL just fine from Python via pyPgSql.

> ·         Application Extensions

?

> ·         Distributed Programming

checkout twisted.

Cheers,

// mark

-






More information about the Python-list mailing list