Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Sat, 05 Apr 2003
"Greatest single programming language ever designed."
The O'Reilly Network has an interview with Alan Kay, the inventor of Smalltalk. I saw a quote that I couldn't let pass:
[12:47] |
[computers/programming/lisp] |
# |
TB |
F |
G |
0 Comments |
Kay admires the great set of ideas present in LISP and refers to it as the "greatest single programming language ever designed."
Open source and earning a living
Marc Canter is responding to the conversation on the Oregon Open Source bill:
[12:40] |
[computers/open_source] |
# |
TB |
F |
G |
0 Comments |
This is why I think software should be paid for - based upon the end-user's behavior and usage patterns. If they simply dabble with the software, aren't dependent upon it or relish it - then DON'T expect them to pay. None of this 30 day free trial stuff. But as soon as they become dependent upon the functionality, fun or community aspects of the software - then it's a reasonable time to charge for it. That might be on a monthly basis, yearly or flat rate - one time charge. It's also reasonable to think that super-users will arise - those vocal proponents and advocates who start making demands for features. THOSE folks can get charged even more. I bet there are a LOT of those kind of Radio users. I bet they'd pay $100 or more for advanced versions of Radio - that the rest of us wouldn't even care about not receiving.I think that is one of the ways that good open source projects can pay their developers. In fact, if you look at how IBM is using open source, you'll see that this is exactly what is happening. Let's take Eclipse as an example, since it seems to be an Eclipse kind of day. The base Eclipse product is really, really good (see the last post). It's also open source / free. The Eclipse ecosystem contains a number of entities that are charging money for software. Instantiations and others are charging money for plugins. IBM itself has based its entire WebSphere Studio suite of development tools on top of the Eclipse core, and you better believe they are charging money for that.
I think that this is a viable way for people to make money doing open source. Open source a core part of the product and then charge money for value added stuff. Plugins, early access to new features, features that don't go into the open source core, custom features that only a few customers want, etc.
The idea of "super users" (who want the latest, greatest and most advanced features) as a revenue generating market is a good one. I know that I would fall into that category, and I'd be happy to pay money for this kind of arrangement for the apps that were critical to me. I'd also want some assurance that if the company / people doing this went out of business, that I could get the source code so that I wouldn't be orphaned.
Eclipse == JDAM
Carlos responded to my response (Carlos, I was at the IBM Center for Java Technology in Silicon Valley -- I was part of the team that brought you XML4J, now known as Xerces-J.):
[12:24] |
[computers/programming/java/eclipse] |
# |
TB |
F |
G |
2 Comments |
The Eclipse environment in the programming language arms race is equivalent to those JDAM GPS guided bombs. These weapons are cheap, it changes the battlefield in a revolutionary way. So the next time someone argues to you that C# has a nice syntactic feature, show him how Eclipse makes that irrelevant.As interesting proof of that claim, this morning Simon Fell said:
I think now more than ever, Microsoft's competition is closing in on area's that MSFT has in the past been way ahead of everyone else. For example, development IDE's, for a long time Visual Studio was way ahead of anything else, but now Eclipse gives it a serious run for its money, I find there are features in Eclipse that I miss when I switch back to VS.NET, and that it makes me a more productive Java programmer than VS.NET makes me a C# programmer (although I find the CLR's BCL to be more productive than the Java 1.4 class library).The reason for this is that Eclipse is not just a text editor. It understands programs. The builtin compiler generates a bunch of data structures that are kept around and fed back into the editor/searching whatever. This is where the power comes from.
Harvester
Don Box (and almost every other .NET blogger it seems) is drooling over Chris Hollander's Harvester RSS aggregator. From the articles I've been reading it seems like its going to be awesome, and Chris is going to make the source available so that the rest of us can hack on it. Sounds great!
[12:09] |
[computers/internet/weblogs] |
# |
TB |
F |
G |
0 Comments |
Languages that support community
Today I discovered that Carlos is a former IBM'er too. Of course, that's not that hard. As usual, he's got some good info. Today's interesting tidbit references William Grosso's presentation Why Java is a Better Programming Language than you Think, and calls out a statement regarding how well a language supports communities:
[00:06] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
The single best measure of whether a programming language is worth using is: how well does it support communities. The social aspects of the language dominate the technological aspects of the languageSo how does a language support communities? Here's Grosso's take.
New programmers must be able to get up to speed in the languageThis implies the availability of documentation and free implementations. Java did both of these. The downloadable .NET SDK is a free implementation, but there's not enough documentation. Python is good on both.
Platforms to learn the language on must be cheap and plentifulThis implies the availability of free implementations on multiple platforms. Java did this. .NET did not do this, although the Mono guys are trying to fix this. All Python versions are free.
Programmers must be able to use the language on whatever machine they're usingThis implies the availability of implementations on multiple platforms, and the implementations must not be total resource pigs on the majority of installed hardware. Same as the last item.
Programmers must be able to understand and reuse each other's codeThis means that there is source code and / or binary code compatibility across platforms. Java does this. We'll see what happens as the CLR and .NET framework evolve. C and C++ failed to do this. Lisp and Smalltalk failed to do this. Python does this.
Old code must survive in a useful form (and evolve and improve)To me this means release to release binary compatibility (RRBC). This is an even stricter requirement than the last one. Java has done this so far. We'll see for .NET. Python is okay at least until you start wrapping C code. Everyone else lost on the easy version, so they definitely failed the hard one. It's an interesting list. So let's see how Python stacks up, since I've been doing a bunch of Python hacking lately, and I've really enjoyed that. The language is nice, the libraries are pretty large and the implementations are free. All code is source, and it seems to be reusable, except for features that changed between 2.0/2.1/2.2. However, the amount of libraries available for Python seems much smaller than Java. This is a function of community, and the Python community is pretty healthy. So where's all the code? It's strewn all over a gazillion websites. The Python Index proposed for 2.3 should help this a lot. Every other language community should be learning from what Perl did with CPAN. The Java folks should be trying to build a CJAN (and there've been multiple aborted efforts to try -- jardeps is a stab at this, but is stalled for the moment). I haven't seen anything like this for .NET, but it may be that I don't know where to look. If there isn't anything, the Mono guys should jump all over this. If your language supports community, build in a way to find useful code. The Python tools situation is also poorer. I like Emacs, but after working with Eclipse for Java, going back to any other tool just doesn't make it. I've been using WingIDE to work on PyBlosxom, and that's helped a bit, but it's not Eclipse. I haven't done a lot yet with VS.NET, but I know from some reading that it's still missing things. Tools that understand what programs mean are really powerful. Ironically, it may turn out that Eclipse is what locks me in to Java. I can see the stream of Java code being ported to C#. If the C# people play it smart, they'll get the benefit of learning from Java's mistakes. So it's possible that C# could catch up to Java's libraries, and potentially pass them in quality (since many of the best Java libraries are open source). With the library story at parity or better, then it comes down to tools. Even if VS.NET turns out to be a match for Eclipse, it costs a lot of money. Eclipse as an open-source base is really pretty powerful. It'd be pretty funny if a year or two from now, people are saying, "boy, if they had Eclipse on CLR, I'd jump". Instead of spitting on the Eclipse team, Sun might actually be thanking them. Who knows. Maybe Miguel will decide to port Eclipse.