rc3.org Strong opinions weakly held

Posts Tagged ‘open source’

Practical open source

Tim Bray on answering questions about Android for developers:

Quite a few of the developers who walked up haven’t learned about Practical Open Source; that you can answer an immense number of questions by just downloading the system source code and plowing through it.

One of my standard two part interview questions of late is, “When is the last time you solved a problem by looking at the source code for a library or framework you use?” and then getting them to explain what they found out. I consider it a strong warning sign when a developer doesn’t bother to download the source to the open source tools they use or isn’t willing or able to answer their own questions by reading the source code.

It’s a Maven world

Dave Johnson on why he’s migrating his build scripts for Roller from Ant to Maven:

I was a Maven hater and resisted it for a long time but over the years Maven has gotten much better, it’s well supported in IDEs and as far as I can tell, Maven has replaced Ant as the de facto build system for Java projects. If you want new developers be able to easily build, debug and run your code via command or their favorite IDE then Maven is the way to go, and that’s especially true for open source projects like Roller.

This is my impression as well. I started to create a new, open source Java application the other day, and it occurred to me that for the build script, I should use Maven because it seems like that’s the way everybody is handling dependency management these days. Dave’s post is one more indication that I was probably right about that.

Tim Bray on MySQL

Tim Bray worries:

It’s like this: MySQL just isn’t a very big business, by any measure. And it represents the sort of Open-Source entanglement that essentially every major technology player now has one or more of. So, my worry is: If, in a merger or acquisition, partial control over a financially-insignificant Open-Source project can now be expected to result in many months of anti-trust review, that’s going to have a massive negative effect on the viability of M&A transactions all over the technology landscape.

I would argue that MySQL is “special”. It may not be a very big business, but it has a very large footprint on the technology scene. It’s the “M” in LAMP. It’s the database that powers most Rails applications. On the other hand, MySQL is not evolving that quickly, and the versions that are already out will probably work perfectly well for long enough for a fork or replacement to become the new standard.

RMS opposes Oracle acquisition of MySQL

RMS and some other open source advocates are urging the EC to prevent Oracle from taking over MySQL. Here’s why the GPL is inadequate to preserve MySQL, in their estimation:

Defenders of the Oracle acquisition of its competitor naively say Oracle cannot harm MySQL, because a free version of the software is available to anyone under GNU GPL version 2.0, and if Oracle is not a good host for the GPL version of the code, future development will be taken up by other businesses and individual programmers, who could freely and easily “fork” the GPL’d code into a new platform. This defense fails for the reasons that follow.

MySQL uses the parallel licensing approach to generate revenue to continue the FLOSS development of the software. If Oracle acquired MySQL, it would then be the only entity able to release the code other than under the GPL. Oracle would not be obligated to diligently sell or reasonably price the MySQL commercial licenses. More importantly, Oracle is under no obligation to use the revenues from these licenses to advance MySQL. In making decisions in these matters, Oracle is facing an obvious conflict of interest – the continued development of a powerful, feature rich free alternative to its core product.

As only the original rights holder can sell commercial licenses, no new forked version of the code will have the ability to practice the parallel licensing approach, and will not easily generate the resources to support continued development of the MySQL platform.

The acquisition of MySQL by Oracle will be a major setback to the development of a FLOSS database platform, potentially alienating and dispersing MySQL’s core community of developers. It could take several years before another database platform could rival the progress and opportunities now available to MySQL, because it will take time before any of them attract and cultivate a large enough team of developers and achieve a similar customer base.

Their conclusion is not obviously insane:

We recognize the support Sun provides to increase competition in numerous markets through its support of FLOSS and open standards. We also recognize that Oracle’s acquisition of Sun may be essential for Sun’s survival. However, Oracle should not be allowed to harm consumer interests in the database market by weakening the competition provided by MySQL. For the reasons elucidated above, we ask that you block Oracle’s acquisition of MySQL.

Links for August 28

What do you guys think of the new link format? Good? Bad? Should each link be a separate post?

On the GPL

Daniel Jalkut posts on the disadvantages of the GPL. He argues that the viral nature of the GPL is off-putting to some developers who may otherwise contribute to a project that is licensed under a BSD-like license. That’s completely true. But it’s also beside the point. The GPL is explicitly and intentionally political. The goal is to force more software into the open source world.

The political nature of the license is certainly going to alienate some people, but any true advocate of the GPL will be completely OK with that. Knowingly choosing the GPL means you’re willing to take the “bad” with the good. The problem Jalkut describes has more to do with people who mistakenly equate “open source” with “GPL”.

Developers need to study the licenses before they choose one to release their software under. I’m not sure the GPL is the ideal license for WordPress, but clearly it hasn’t hindered its success. Complaining about the GPL’s encumbrances is sort of like complaining about the fact that when you buy Sierra Club merchandise, part of the money funds environmental causes. That’s the whole point.

Tim O’Reilly on Aneesh Chopra

Since President Obama said he’d name a “federal CTO,” I’ve been watching with interest to see who he’d pick. A lot of people expected that he’d pick a big name industry figure, but he went another direction and chose Aneesh Chopra, the Secretary of Technology for the state of Virginia. Chopra’s name is not one I’d heard before, but Tim O’Reilly makes a compelling argument for why he’s a good choice.

Chopra’s experience is specifically in driving technological advancement in government. I agree with O’Reilly that picking someone who’s never worked in government would limit what can be achieved, because learning how things work in a government setting takes time. Chopra is not going to need to get up to speed.

What I’d like to see is Chopra writing a blog himself, or at least Tweeting. If the federal government is doing interesting things on the IT front (and I expect it will be), part of the value he can provide is teaching states and municipalities what they could be doing as well. I hope he takes the outreach part of the job seriously.

Links from March 23rd

There are a whole ton of links in the backlog today.

Programmers should study a little economics

So the big news on Twitter among Ruby programmers is that the “hashrocket” operator has been deprecated. For those of you who aren’t Ruby programmers, here’s what that means. If you want to declare a hash literal in Ruby, right now you can do it like this:

my_hash = { :foo => "1", :bar => "2" }

Also, many methods accept hash literals as an argument, so you can do things like this:

url_for :controller => 'posts', :action => 'index'

At some point, that notation will be unsupported, and hash literals will have to declared in a different way.

When the version of Ruby is released that doesn’t support this notation, it will be incompatible with a massive amount of Ruby code. My advice to the Ruby developers would be not to do it. I don’t know what the rationale is for removing it, but the result is going to be lots and lots of servers that are simply never upgraded to that version of Ruby.

They should take a lesson from the PHP people. The migration from PHP 4 to PHP 5 has taken forever as a result of much smaller incompatibilities than this one.

Economics tells us that we have to be careful about the incentives that result from our actions. Removing the hashrocket operator creates a strong incentive to leave the Ruby upgrade path.

Update: Sometimes rumors on Twitter are just rumors on Twitter. I don’t see any mention of deprecating the => operator in the Ruby Subversion repository.

jQuery is awesome

I’ve been convinced for some time that jQuery is the best JavaScript library around. What I am coming to realize is that it’s also one of the best-run open source projects around as well. jQuery 1.3 (released today) has a new selector engine, a key component of any modern JavaScript library. To encourage other projects to adopt their selector engine, the jQuery project has turned it over to the Dojo Foundation, which currently manages the Dojo Toolkit, a jQuery competitor:

More importantly, though, we’re taking a big leap with Sizzle: We’re releasing it as a completely standalone project to be collaborated upon by many library creators and developers. We saw an opportunity to give something back to not just the jQuery community but to the JavaScript development community as a whole; and at the same time be able to collaborate with developers of other libraries on a single, unified, selector engine. We feel that there’s too much competition and not enough collaboration occurring and so we put our coud out on the line as a good first step towards working together.

As a sign of good faith and willingness to collaborate, we’ve turned over Sizzle to the Dojo Foundation (an excellent non-profit well suited for this project, not to be confused with the Dojo Toolkit). We wanted a common meeting ground where all developers would be able to work together and under which there would be a clear long-term copyright holder.

← Before