Monday, December 08, 2008

Freedom and Benign Dictators


Brian Silverman, one of the driving forces behind LCSI for decades, plus Turtle Art, LEGO TC Logo and even Scratch will tell ou that one of the problems with FOSS is that there is no mechanism for leaving out features - a critical design discipline when creating constructionist learning environments for children.

I wish Gary, Brian, and a chunk of the rest of the learning sciences and ed-tech research community would find the time to observe a successful open source community, like, say, the Python community. Sit through one of Guido's "State of the Python Union" talks, where he explains what changes will and will not be made to the language in upcoming versions, or peruse the mailing lists discussions or the Python Enhancement Proposal index. Simplicity and clean design is just as much a core principle in Python as it is in any learning environment for children, Guido strictly protects that simplicity, and it is one of the key factors in Python's established and growing success. There is absolutely nothing about open source software development that says it is a democracy. People will request things, whine and squawk, but the maintainer is free to ignore them.


Sylvia said...

The Enhancement Proposal index is pretty daunting. How much time would someone have to spend managing all that? There are hundreds of proposals here.

The conundrum seems to be, if a project is successful and long-lived, it might generate enough interested parties to keep an open source community active, but that same popularity will inundate any organizer with an unending task of responding in full to everyone who wants to drive the bus.

If a project is too niche-y or not popular, there will not be a sustainable open source community. Perhaps this solves the problem, since whoever is in charge is fully in charge of his or her own empty community.

Does an open source community depend on a benign dictator? And if so, who decides who that person should be? How does that person get paid to maintain this strict vision over years?

I'm hesitant to accept that all open source communities can be extrapolated from examples like Python, which seems to me to be an outlier in the software world.

Happy to be set straight.

Daniel Hickey said...

Check out socialmediaclassroom, a brand new open sources social networking site. It seems like the educational value of social networking is not well captured by the constructionist approaches that you are focusing on, but it is open source and pretty awesome. I am not sure how it would like to other cool stuff like scratch

Dan Hickey
Indiana University
Learning Sciences Program

Tom Hoffman said...

Hi Sylvia,

First off, the PEP index represents 8 years of programming language design work on a language with an installed base of thousands of programmers and probably millions of end users -- so yes, it is complex, but it also has worked. It is no more an outlier than any other successful software development project (arguably, they're all outliers given the failure rate in software development).

But if you install, say, Ubuntu Linux, or use an XO, everything you're using is a more or less successful independent open source project. You don't have to wonder whether this works in theory. It actually has worked and is working in practice for many projects.

I actually think that a lot of the rhetoric about open source development projects as super-cool global collaborations of enthusiast volunteers leads to a lot of the tension you and people like Mitch Resnick. It isn't about democracy and being nice and giving everyone what they want.

The person who starts the project picks the name and controls the source code repository. He or she decides who can commit code and what goes in. It isn't really about collaborative making stuff. It is usually about one person, a company, or a small team making something, and then other people offering contributions. If they do, great! If they're good contributions to the main project trunk, fantastic! If not, it is all usually still useful to the person who wrote it.

Tom Hoffman said...

Also, I was really thinking about the way Guido gives the "State of the Python Union" talks, which is very much "we are going to do this and not do that, and in many cases we won't do this even though you want to because I can't figure out a way to do it that is not ugly or confusing and it would make the language as a whole worse." The PEP part is kind of the opposite point -- that there is a formal community process, but even after you go through it, and ultimately it is more work for the community but less work for Guido, he doesn't have to do what people propose.

A lot of open source development is just plowing ahead with your vision.

Stephen Downes said...

> There is absolutely nothing about open source software development that says it is a democracy. People will request things, whine and squawk, but the maintainer is free to ignore them.

True... but people can fork it, which is what makes it not a dictatorship (unlike proprietary software).

Still not a democracy, either - but we are drifting toward an era of post-democracy in any case, where decisions are made by networks of independent agents (like people who fork software) rather than popular vote.

Tom Hoffman said...

Right, but a substantial fork becomes a different project.

Also, you can run a free software project as a democracy, like Debian, it will just move more slowly.