Ted Leung on the air: Open Source, Java, Python, and ...
The aggregator is always good for some serendipity. Here's today's.
Sam Ruby wrote about Bruce Tate's new book, Beyond Java:
In particular, I agree that in the next few years we are likely to see a shift from a small number of dominant languages/platforms to a plurality of solutions focusing on approachability, community, and metaprogramming.
It was interesting to me that when Sam analyzed Tate's list of alternative languages, there was a little discussion of metaprogramming/DSL's, but not much on approachability or community. Earlier in the aggregator session I had read Ian Bicking's post Friendship and hand holding, which gets at the community side of approachability (versus the approachability of the language), and adds some thoughts on the Python community, mostly from the point of view of friendliness. But there's more to a community than friendliness, as Ian points out:
Now I'm not saying comp.lang.python is a mean-spirited place. But Python has calcified in certain ways that Ruby has not. Just like a child is more flexible than an adult, the Ruby community is more flexible than the Python community. I think there's more open space in Ruby than Python, there's more openness to some new ideas, there's more acceptance of the opinion of outsiders. The barriers to contribution are smaller. Backward compatibility? Not as big a deal with Ruby. Add new syntax? Suggestions along those lines won't be dismissed for Python, but all new syntax is met with extreme suspicion; all the moreso if you aren't aware of past conversations on the matter. And there are lots of past conversions on just about any new syntax you'll think of -- which makes it hard to jump in and contribute ideas on that level. So I suspect you'll get a more friendly reaction from Rubyists on syntax. But then, the cutting edge of Python hasn't been the core language for a long time (by design).
When looking at Python, Bruce and Sam say that it needs a "killer app". Bruce dismisses Smalltalk (and I would assume Lisp, which didn't even get a mention), because they haven't been adopted after 30 years or so, which kind of sounds like it also needs a "killer app". Arguably, Ruby has a "killer app", Ruby on Rails. So my question is: What is it (if anything) about these three communities that results in only one "killer app" amongst the three? Rails could have appeared in Python, Smalltalk, or Lisp. But it didn't. Some people will say it's just the timing, that it's just iteration n+1 of web frameworks. But I'm not so sure. Look at what iteration n+1 of the Java web frameworks look like. The culture of a community is a powerful influence on what it chooses to pursue, and the means by which those pursuits are undertaken.
Posted by Tim Parkin at Wed Nov 2 02:37:46 2005
Posted by Gordon Weakliem at Wed Nov 2 08:15:46 2005
Posted by Ian Bicking at Wed Nov 2 09:05:15 2005
DHH also has a strong opinion on aesthetics of code, and the cohesive design of the whole thing reflects that. He recently said something about trying to make Rails Apple-like, which i think is a decent analogy. Most Python projects are (IMO of course) more akin to custom-built white boxes with the newest, overclocked AMD chip and all the other current best parts obsessively gathered and assembled. Maybe that's a bit overdoing it, but the fit and finish of Rails is a big sell for many, alarming as that may be to many programmers.
Posted by ToddG at Wed Nov 2 16:11:14 2005
Posted by Matt Williams at Sun Nov 6 02:40:16 2005
We're also seeing LOTS of cross platform GUI apps now written in Python, too.
Posted by Boris Mann at Wed Nov 9 00:23:18 2005
I'd be interested in pointers to some of the apps that you are seeing. The cross platform GUI aspects of Chandler have been quite challenging.
Posted by Ted Leung at Wed Nov 9 23:42:23 2005
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk