Python -- (just) a successful experiment?

P

Paul Rubin

Eric Pederson said:
Maybe:
-- Automatic dependency handling
-- Tightly coupled GUI package ("tightly coupled" ~= "Pythonic")
-- High level IDE (i.e. intuitive drag and drop GUI builder)
-- High level database framework (perhaps a mature, killer Dabo)
-- Powerful web framework as good as the language (and simple enough for the PHP guys to use)
-- Etc.

Are you saying Ruby on Rails has all that in the quick-install?
 
E

Eric Pederson

Raise your hand if you think the best technology wins!


For those of you with your hands in the air, tell me: if Python is so good, why has PHP achieved such greater adoption and mindshare? Why do web scripters still cling to their Perl, even in corporate environments? Why hasn't Python made inroads against Java? Why is Ruby, and Ruby on Rails, getting such strong play?

Are these better programming languages, or is it other factors?

On a whim I installed Ruby on Rails today - pretty much a one-click deal. It was a very slick (Windows) installation, as it automatically figured out and downloaded dependencies - there was no question it was properly installed, and I ended up with a couple "IDE"s for Ruby, examples, etc. Markedly better than installing Python - no contest - and this downloaded a useful and easy to employ application, with a clear path to show me how to use it..

As I perused the tutorial like documentation, I realized I wasn't anxious to jump into the language (Ruby), but I saw that I could certainly achieve a quicker success putting together a web application with RoR than with (take your pick: Perl, Lisp, Java, etc. etc.) If my mind wasn't appreciative of the Python language, though, Ruby would have hooked me right there.

While I perceive that the future of the language Python is in good development hands - well debated, and thoughtfully strategized; the Python accoutrements can be lacking.

Imagine, if you will, a new car, that does 0-60 in 2 seconds, 60-0 in .2 seconds, has a top speed of 185 mph, corners on par with an F-1 car, costs no more than a Volkswagen Passat... but comes without tires or seats, and you have to install the electrics and brakes yourself.

Sure, car geeks are going to love it, but you just are not going to see that many at the grocery store, or doing car pool duty, and no garage really works on them much... forget about finding parts, you have to make your own replacements.

I am not saying Python is that car, but I do think that "Python", as opposed to "Python the computer language specification", is done a great disservice by the lack of certain accoutrements. I do not know if there are features of the language (specification or philosophy) which thwart the development of the complementary items, but I firmly believe that the lack of them is a factor in Python's ho-hum adoption rate.

A good computer language is great, but it pales in comparison with what can be done with such a language.

What is missing?

Maybe:
-- Automatic dependency handling
-- Tightly coupled GUI package ("tightly coupled" ~= "Pythonic")
-- High level IDE (i.e. intuitive drag and drop GUI builder)
-- High level database framework (perhaps a mature, killer Dabo)
-- Powerful web framework as good as the language (and simple enough for the PHP guys to use)
-- Etc.

Applications like Zope and Plone help drive more people toward the language, though the competition is stiff.

Dozens of competing half baked tools/applications... they just confuse people and take up their time with decision paralysis, though they may be fun to write.


Is it wrong to appreciate Python as a language, but want to have the nice accoutrements we see in some competing languages?



EP
Disclaimer: only recently downloaded Eric3 for Windows, and it looks good, but I haven't had time to learn it yet. Whatsup with the troll, though?



::::::::::::::::::::::::::::::::::
domainNot="@something.com"
domainIs=domainNot.replace("s","z")
ePrefix="".join([chr(ord(x)+1) for x in "do"])
mailMeAt=ePrefix+domainIs
:::::::::::::::::::::::::::::::::::
 
K

Kay Schluehr

Eric said:
Raise your hand if you think the best technology wins!

Who is interested in such a matter? Is this a forum dedicated to some
programming language or a popularity contest?

If Python dies in a few years / looses attention but the Python Zen
survives in another language I have nothing to complain.
For those of you with your hands in the air, tell me: if Python is so good,
why has PHP achieved such greater adoption and mindshare?

PHP, Ruby and all this stuff is just the fashion of the day. If the
flow of money takes another direction away from Web programming I
believe there will still be C, some successor of Python, some members
of the ML/Haskell family rooted in CS, a deviation of C++/Java/C# and
some Lisp offspring and of course the new fashion of the day.

And in the end if the success of any language becomes dangerous somehow
it will be cloned and *improved* by Microsoft.

Kay
 
P

Paul Boddie

Eric said:
Why do web scripters still cling to their Perl, even in corporate environments?

Ignorance. One could argue that Python should be promoted more, but
Perl had the "cool tool" buzz a good ten years ago. Such habits don't
fade away very quickly.
Why hasn't Python made inroads against Java?

I would guess that most people deploying Java want to be able to buy
and deploy some big name product with the pretense that they can always
switch to another big name product later on, all in the name of
"multiple vendor support".
Why is Ruby, and Ruby on Rails, getting such strong play?

Relentless hype from blogging celebrities?

[...]
Applications like Zope and Plone help drive more people toward the language, though the competition is stiff.

If you've tried Plone, you must have noticed that it too installs
itself nicely, or at least it did when I last tried it out on a
proprietary operating system with no development tools of its own. This
observation somewhat undermines your assertion that the vanilla Python
language runtime should be bundled with the kitchen sink in order to
compete with the most hyped solution of the day. Indeed, I'd suggest
Zope and Plone as fairly interesting choices for those people wanting
to dabble with a self-contained Web solution but who don't want to
start choosing from a long list of technologies.

Paul
 
R

Roy Smith

Paul Boddie said:
Perl had the "cool tool" buzz a good ten years ago.

That's true, but I think it understates just how important a development
Perl really was.

Before Perl, unix scripting consisted of awk, sed, grep, tr, a random
assortment of incompatible shells, and lots of duct tape. For all of its
faults, there is no doubt that Perl was a huge improvement over that mess.
Much of the uglyness in Perl's syntax was a deliberate attempt to be
backwards compatable with both awk and shell, which contributed to its
quick uptake by the Unix sysadmin community.

The next thing that drove its popularity is that it was quickly ported to
run on DOS/Windows. If there was a community even more in need of a better
toolkit than the early Unix sysadmins, the DOS/Windows world was it.

Compared to what existed at the time, in both the Unix and DOS/Windows
world, it was the best tool available at the time. No question about it.
Perl also had (AFAICT) a three-year head start on Python. That's a lot of
momentum to overcome.

The fact that 15+ years of experience has shown that there are better ways
to do things, should not in any way take away from Perl's importance. Perl
got where it is because it filled a huge need, not just because it got good
buzz.
 
M

Martin P. Hellwig

Kay said:
Who is interested in such a matter? Is this a forum dedicated to some
programming language or a popularity contest?

If Python dies in a few years / looses attention but the Python Zen
survives in another language I have nothing to complain.
<cut>
Ave!
Although I think that the day that python is considerd dead is the same
day that unix is truly dead.
Ooh yes and I have heard for over two decades that unix-like systems are
obsolete, so why is the install base only growing and has never been bigger?
 
P

Paul Rubin

Paul Boddie said:
Ignorance. One could argue that Python should be promoted more, but
Perl had the "cool tool" buzz a good ten years ago. Such habits don't
fade away very quickly.

I don't think it's ignorance. Some people really do like Perl better
than Python. I can sort of understand why, even though I don't feel
that way myself.
I would guess that most people deploying Java want to be able to buy
and deploy some big name product with the pretense that they can always
switch to another big name product later on, all in the name of
"multiple vendor support".

Come on, this is silly, Java is a lot more cumbersome for doing small,
quick projects, but Python doesn't have the language discipline or the
library support to do heavyweight projects that Java can. There is
nothing like JSSE in Python. There is no JDBC replacement unless you
get a third party module from somewhere. There is no MQ. CPython
doesn't support multiprocessing (multiple threads on parallel
processors, due to the GIL). Python's documentation is full of holes.
Python's runtime library is full of holes. Almost every time I use a
Python module that I haven't used before, I find bugs. Java is
tastelessly designed and clumsy, but its language spec is very
thorough and its implementation (including libraries) is complete and
well-documented. Python is great for recreational projects and
prototyping. It's not yet mature enough for deploying complex,
critical applications, though maybe it's getting there (PyPy will be
an important step).

I'm not trying to bash Python--I know how hard it is to write and
maintain a complex system that doesn't have gaps. And the Python
developers did some very nice work with rather limited resources. But
the magnitude of sheer grunt power that went into Java just completely
overwhelms what went into Python.
Relentless hype from blogging celebrities?

That's an interesting explanation and might be true for all I know.
But it does look like RoR has capabilities that Python (out of the
box) doesn't.
If you've tried Plone, you must have noticed that it too installs
itself nicely,

I looked at Zope a little bit and didn't find it attractive. Plone
sounds more interesting and I hope to check it out sooner or later.
 
B

Brian Beck

Eric said:
Raise your hand if you think the best technology wins!


For those of you with your hands in the air, tell me: if Python is so good, why has PHP achieved such greater adoption and mindshare? Why do web scripters still cling to their Perl, even in corporate environments? Why hasn't Python made inroads against Java? Why is Ruby, and Ruby on Rails, getting such strong play?

Are these better programming languages, or is it other factors?

You make some good points and I agree that more needs to be done to make
python accessible, but you basically ruined the rest of your post right
off the bat. Replace Python with, say, Linux and PHP with, say, Windows.
How the respective technologies got where they are today is not
important to the analogy (except maybe being in the right place at the
right time). There is such a huge counter-example of "the best
technology wins" staring everyone in the face every day, that the first
part of your post doesn't really do anything for me.

But ultimately I am on your side. Python has a long way to go, and it
has nothing to do with the language design...
 
P

Paul Boddie

Paul said:
Come on, this is silly, Java is a lot more cumbersome for doing small,
quick projects, but Python doesn't have the language discipline or the
library support to do heavyweight projects that Java can.

I'm not necessarily arguing that Python goes all the way up to the
upper echelons of enterprise application development, but there seem to
be a lot of people grabbing the chainsaw in order to snap a twig, and
then justifying that choice by mentioning all the chainsaw vendors by
name.
There is nothing like JSSE in Python. There is no JDBC replacement unless you
get a third party module from somewhere. There is no MQ.

I won't doubt that there are pieces missing, although JDBC is something
of a red herring, given that Python does have a half-decent API
standard for database access and that you still need JDBC drivers (cf.
third party modules) to connect to actual database systems.

What I've argued for all along, in contrast to the endless advocacy of
language microfeatures that save ten seconds of typing in an average
working day, is increased attention to library support for actual
applications and solutions. So I don't disagree with everything you're
saying here. ;-)

[...]
Python is great for recreational projects and prototyping. It's not yet mature
enough for deploying complex, critical applications, though maybe it's getting there
(PyPy will be an important step).

I'd be interested to hear an amplification of the last statement.

Paul
 
K

Kay Schluehr

Martin said:
<cut>
Ave!
Although I think that the day that python is considerd dead is the same
day that unix is truly dead.
Ooh yes and I have heard for over two decades that unix-like systems are
obsolete, so why is the install base only growing and has never been bigger?

Of course "dead" has no absolute meaning for things that were never
alive.

May "infertile" be a better characterisation? If no new projects were
started using a certain language the language ( more precisely it's
runtime/libraries ) might become legacy and will be replaced
continously.

When the PyPy runtime becomes more mature and it's API somehow stable
we might see what is possible in the dynamic language area beyond the
current state of Python and also beyond Guidos projected Python3000. I
guess it will sprawl into several dialects pronouncing different
aspects: functional programming, concurrency, declarative programming a
mainline Python3000 and a legacy Python 2.X which remains to be
maintained.

Thinking about this prospects I don't actually believe that
Ruby-on-Rails will become a Python killer, just because it has a nice
installer.

Kay
 
C

Cliff Wells

Relentless hype from blogging celebrities?

This is certainly part of it, but I feel it ignores the much deeper
reasons which are the root of this hype. I recently went to FOSCON (a
free seminar coinciding with OSCON put on by the local Ruby UG here in
Portland) and listened to a few presentations on Ruby and Rails by David
Hansson (the creator of Rails) and others. By the end it was clear that
Ruby is wonderfully suited to writing domain-specific languages (DSL)
and that Rails is an excellent example of a DSL geared toward writing
database-driven web applications. A friend of mine is writing a book on
Rails for a large publisher and admitted to me that he barely knows Ruby
(and has used Rails for only around six months).

The second presentation (I don't recall the speaker's name) specifically
covered metaprogramming (writing DSLs) and one of the things I found
interesting was that despite Ruby having far more syntax than Python in
general, the resulting Ruby-based DSLs presented had far *less* syntax
than had they been written in Python. This is undoubtedly the reason
why Rails is apparently completely usable even if one knows very little
Ruby.

Regards,
Cliff
 
P

Paul Rubin

Cliff Wells said:
The second presentation (I don't recall the speaker's name) specifically
covered metaprogramming (writing DSLs) and one of the things I found
interesting was that despite Ruby having far more syntax than Python in
general, the resulting Ruby-based DSLs presented had far *less* syntax
than had they been written in Python. This is undoubtedly the reason
why Rails is apparently completely usable even if one knows very little
Ruby.

Interesting. But if we can generalize from that, then Lisp should be
ruling the web.
 
C

Cliff Wells

Interesting. But if we can generalize from that, then Lisp should be
ruling the web.

Well, that is perhaps the other key feature: the Ruby/Rails community
seems pretty friendly and eager to help people jump to their side of the
fence (much like the Python community, btw), whereas Lisp community is
an oxymoron.

Regards,
Cliff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top