Nikolaj Baer wrote:
My curiosity extends beyond just python's suitability as an enterprise
level language. It seems the most compelling argument for java over
python (and ruby) is python's difficulty with concurrency.
Python doesn't have a difficulty with concurrency (well, no more so than
most languages that aren't called Erlang ;-). It has severely limited
with regards to working with threads, but threads are far from the only
way (some would argue they are in fact the worst way) to do concurrency.
However, when thinking about applications that are request based, I have
difficulty thinking of common uses for concurrency, aside from the
most extreme processing requirements.. in which case with python you
would best off dropping into C and ultimately being more efficient
(and you could disable the GIL and fire up some threads).
It depends a lot on the kind of applications you are doing. Threads make
it easy to correctly share objects and CPU time between requests. A lot
of times the latter isn't that important and the former is downright
undesirable.
The exception, i guess, would be transactions, which I have not had to
deal with in detail at the scale in which I work.
Actually, process level concurrency models more closely with the
semantics of transactions.
I am still looking
for the key to what 'enterprise' is, and I am curious what the use of
concurrency is in the "enterprise level". Is it for transactions? What
are the major challenges with transactions? If anyone knows any
articles/papers to this effect that would also really be appreciated.
Enterprise: basically means you can charge more for doing less. ;-)
Seriously, enterprise mostly is about the maturity of a platform. You
want easy integration with all the other pieces of your platform, a
large market place of developers and tools to help you get the job done,
easy to spin people up on a new project, a proven track record solving
the usual enterprise database and messaging workloads, etc.
As I said in my article, Python's lack of an efficient runtime doesn't
speak too well about its maturity as an enterprise platform. If you look
beneath that you can see the factors where it is still weak (still not a
huge market place of developers and tools, integration with a lot of
other enterprise technologies is a little weak, etc.) and other places
where it is strong (easy to spin up new people, pretty solid integration
with specific technologies, etc.).
--Chris
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg