Open source rocks/sucks! Deal with it :-)

February 7th, 2007

I think Jason misses a few points in Why Programmers Don’t Trust Other Programmers (via dzone)
Code is a Verb not a Noun: Reinventing the Wheel is a Good Thing… especially if you are adding tyres. Reinventing wheels is about learning about wheels, learning about motion, not about churning out another wheel. In fact when teaching a new programming language people tend to use something called a Fibonacci which I think is a flavour of ice-cream, not because it’s a useful thing to do, but because it’s a recognisable wheel.
Standards not Products: Open source products tend to suck. Often not less than the commercial counterparts. Hell, lots of software sucks. Where open source (for me) really flies is in the area of standards… such as XMLRPC, unix, HTTP, PHP(ugh!), Python(yay!), HTML, SQL. Yes there are some great open source products such as Wordpress and Eclipse, but the best open source tools are low level… like some C code that resizes pictures. Now there’s a problem I would like, or be able to solve myself.

The thing is… as long as I can interface to something in a recognized and standard way. I’m then free to recreate my own wheel as badly as I like. Maybe even making a raft from inner tubes or something. I’ve done worse…

Ideas not Standards: Of course, when you use any standards you find out there’s no such thing as a standard standard and it tends to be the ideas or concepts behind them that are the things with the true value. Ideas such as object-orientation (not bad), templating (very practical), versioning (a good idea), group moderation (how cool) which, when wired together using standards, is guaranteed to succeed… how could it fail?
Expectations: If you are looking to integrate 2 complex systems, it probably won’t work. If you expect people to have created a true component-based modular system that you can bend to your needs with 2 lines of code, grow up. One of the best attempts made at this in my experience was Zope and yet very rarely could plug-ins (or Products as they were called) be easily integrated. The best one could do was…well, often pretty shoddy. ( Having said that, have I said how totally stunning Eclipse is? I’ve been using it for a fortnight and it is the best MacOS X Python/HTML editor ever! All the plug-ins work! Amazing!)
The Experience Trap: In order to assess a system, you get corrupted. A great example here is open source content management systems. Is it me or do they all suck? I have tried loads and I pretty much hate them all on grounds of usability. But the problem comes when, to trial a CMS you have to live with it, sometimes for years, you have to hack it, reinvent wheels, integrate standards based bits and bobs, worth with their plug-in architecture, by which time… you are now adept. And swapping being adept for not being adept, learning a new system needs some bloody big promises to be worth it. Computing power corrupts.
Abilities: Most of the open source software I come across is written by people with more ability than me, but they don’t have my sensitivities. When I have complained or suggested certain usability features the reply I have universally received is, “great idea, now go do it… here’s the cvs server”… In order to work well with an open source project, you normally have to understand it in its entirity.. which if I could do, I would probably disagree with it on architectural grounds and fork my own version…. perhaps.
I haven’t been a D-list blogger for 7 years for nothing. The open source community doesn’t listen to good ideas or suggestions, it listens to actions (or code).
The Boringness Factor: The “desire to be solving problems” that you talk about has a lot to answer for. For example, because someone has “solved” Social Networking sites, there are probably dozens of versions out there that I can download and have running in an hour or less. Now, unless I was bringing something extra to the table, I personally can’t get excited about solving that particular problem. So, I’d lower my expectations and run with an existing version, sure it may not be modular or as usable as I’d like but it would hopefully have some code for handling round-trip emails, and forgotten password tools and all those other things that every site needs but which, if possible, I’d rather not write again.

And, in certain circumstances, lowering your expectations has advantages… such as.. having plumped for an open source Social Networking site, I will, as long as I don’t hack it too badly, benefit from maintainance updates, something no real programmer likes doing :-)

I’m both a total devotee and hater of open source software. I use a Mac and love Python.
This week, as I’ve said, I’ve been massively impressed by Eclipse (which after about 5 years is now fast enough for my MacBook Pro to be usable) and OpenWYSIWYG (which is a good start for web rich text editing… about time!!!!) And I’m old enough to still remember the days when, having posted a project-killing but simple replicable bug to Macromedia, I would hear that they were “right on it” and that it would be “fixed asap… in the next 6 months”… ouch! ouch! ouch!
Open source rocks/sucks!  Deal with it :-)

Share me:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • StumbleUpon
  • LinkedIn
  • SphereIt
  • Technorati
Tagged with:

Leave a Response