This post originated from an RSS feed registered with Python Buzz
by Ian Bicking.
Original Post: The Future: Longhorn Shmonghorn
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Ted Leung brings up some
important points and collects some good links in his latest post. To
quote:
Once they [MS] get everything into managed
code, people working in predominantly unmanaged environments are
going to be hard pressed to keep up.
While I agree with the general sentiment, I think the FS/OSS
communities aren't being left behind, but they aren't doing it by
following a commercial effort. To me, Python is the response to
managed code (maybe one of several responses, but I also believe the
most important response).
Right now I believe Python is a clear forerunner among high-level
languages. It might be elitist, but I don't consider Perl to be high
level, or to be a successful general application development language;
PHP is both low level and still solidly server-side; Object C has some
newfound potential, but it still skirts the high level/low level
border... which leaves Java (2500 projects on Freshmeat
as opposed to 1200 Python projects). I'll let you decide on Java's
potential on your own. (I know why I like and can distinguish Python
from Java, I don't know why I would distinguish C#'s "managed code"
from Java's model -- which isn't necessarily praise of Java!)
Anyway, to return to our topic, I see high level languages as the
future for development. At the same time, using Python we don't have
to forgo our low level roots by using C extensions (the old Worse is
Better cliche [truism?]). This layered system gives us the potential
to build wonderful and beautiful new things, without reimplementing
every little thing everytime we make another go at figuring out what
"beautiful" means. I see the goal as a place where, struck with a
notion for a new program (novel or just customized) a developer can
implement, reimplement, refactor, and redesign quickly. Our
applications come and go, they become important and obsolete over time
-- but as long as our fundamental foundation becomes further enriched,
further refined, even just further understood we will still have
accomplished something. I imagine the wonderful applications emerging
from our communities as a matter of course -- when the prerequesites
have been created, those applications will appear, and their emergence
will seem more inevitable than dramatic.
I think high level languages have made significant progress as well.
Python programs are popping up all over the place, both in core tools
and end-user applications. (And it's probably about time people start
dropping the "py" prefix from application names -- it's like a
qualifier, and the time has come that appications don't need to be
qualified by this implementation language, Python has become a basic
piece of the OS infrastructure, not a novel prerequisite)
Python programming also makes backward compatibility issues very
manageable. The core has been successfully backward compatible, and
even when there are issues with third-party library compatibility it
is usually quite easy to work around those issues (much like Python
makes it easy to work around OS differences). Python provides all the
fundamental tools to handle problems as they come up -- things like
exceptions, introspection, or even the crudeness of sys.path
manipulation to get known versions of libraries. (Relatedly, I
believe Javascript's greatest flaw has not been its lack of
standardization, but the lack of the fundamental programming
constructs to work around those problems) I believe Python provides
(right now) a much more robust and flexible technology for
platform independence than found in Java (and probably .NET) -- I
think the same will be revealed in terms of backward compatibility.
Which is all to say: I'm optimistic. People complain that we just
copy commercial software and designs -- but if you think we should do
more you should look for the ways people are already
innovating, not expect the open source/free software community to
innovate in the same way as commercial development. Our path has
always been dramatically different than Microsoft's, and it's
gotten us this far.