A Christmas letter to Sant… err… developers: What Linux needs
Last Christmas, I asked Santa for an AMD Athlon 64, and an ASUS K8V-X motherboard. Don’t do that: Santa sent them really late, and I couldn’t get Linux installed on this board (oopses and panics with any distro).
So, this year, I’ve decided to forego writing to Santa, and write a (somewhat early) letter to OSS/FS developers around the world instead. Here is it:
Dear OSS/FS developer:
Linux does not need anything we’ve seen pushed by pundits lately.
Linux doesn’t need insurance. It doesn’t need lawyers. It doesn’t need corporate backing. It doesn’t need broader hardware compatibility.
Depending on your point of view, these items may be means to an end, or ends unto themselves. Funding, corporate backing, hardware compatibility, platform support, consortiums, world domination, eternal bliss, are all items on a checklist. The problem is, that checklist will never be finished unless there are people willing to do the most important job: write software.
And what we need to conquer the world is already here: us. Hard-working, honest, generous, community-focused people who keep improving parts of the system, in an organic fashion. We are the quintessential means to reach our collective goals.
We only need to put the extra oomph to get the details right. And here’s why and how.
We are many more than a few years ago, and Open Source has gone mainstream. The OSS/FS project landscape has changed a lot. It’s no longer enough to be the first to fulfill a need with an application. Nowadays, your application is measured against 20 other applications, and perhaps 2 or 3 proprietary products. This increased public exposure means that, to appeal to users, your application needs to fulfill a growing list of common requirements:
- compliance with standards,
- guaranteed stability,
- a pretty, usable and HIG-compliant user interface,
- binary packages,
…and so on. Fail in one or more of these requirements, and your user community will shrink drastically to a core group of hackers who know how to bear with your program, to get it to compile, or to “do the right thing”.
That may be good enough for you, but the extra mile you go in your project may well be the difference that makes your user base grow tenfold. Let me emphasize: you need users to accelerate your application’s improvement process.
A couple of tips to get there:
- Pay attention to your users. Especially to beginners; while hackers may lead you to interesting ways to solve a problem, the beginners will provide you with fresh perspectives on how to present your solution to that problem (yes, UI and HCI). Have your application be the easiest to deploy, manage and remove among your competitors’ offerings. Provide accessible feedback channels for them (even directly in your application, if you can). All of this will be easiest if you…
- …plan, in order to save time. Remember that many of these common requirements will ultimately be easier to achieve by the technical choices you make early in your project, which will…
- …save time for creativity. Don’t be afraid to reengineer, work with prototypes and write throw-away code - experimentation is paramount. But don’t reinvent the wheel. Reuse commonly-deployed libraries and platforms, and follow embraced specs. Make tools program for you. Use gruntwork-saving languages, like garbage-collecting environments. Follow proven engineering practices, like object-oriented paradigms or unit tests. Hopefully, this will also buy you time to…
- …get friends on the OSS/FS bandwagon. They are the raw material our community needs to fuel their exponential growth. Sooner than later, they will feel they “own” their applications, and start contributing in various and interesting ways to their pet projects. That will lead to a faster increase in overall OSS quality, and user-centered applications.
In closing: Be proud of your work. You’ve accomplished a lot so far. Now go for the polish and the (remarkably hard) ten lines of code which will get your application to critical mass. Once you get there, your good graces can only go up.
Merry Christmas for all of you!
Well, now would be a good time to call Santa’s tech support (or ASUS’, maybe). Oh, by the way, if you have any ideas on how to get Linux to run on this board, please let me know!. For now, I hope you enjoyed reading this letter as much as I enjoyed writing it.
December 3rd, 2004 at 3:49
1) The most important problem in Linux is usability. Now is write by hackers for hackers. Isn’t write for common people. Command line is a must: GUIs are less powerful and less common. 2) Developers work to a very big number of projects: if community works at less projects we have speedy usable software. 3) Usability is the key for boost Linux: Firefox docet.
December 3rd, 2004 at 4:49
I agree, but being a home user, I think the most important issue with Linux is program installation.
I use Fedora C2 and 75% of the programs I use come as .bin, .gz etc which I have to extract and install manually. This sometimes throws up Make errors which acan be very annoying.
My solution, therefore, is everything that can run on a RedHat system should be done as an RPM file. This will make installs much nicer for me and the other users of Fedora.
December 3rd, 2004 at 6:43
Hi,
nice article! I will try (and did try) to act accordingly in my project, http://acx100.sf.net.
However, maybe it’s better to buy any brand other than ASUS in order to avoid having to call their tech support. After all, ASUS has TERRIBLE Linux support (one could say they actively do not support it), as can be read on various internet sites.
December 3rd, 2004 at 8:06
Respect the distributions. Dont drive the user to the library versioning hell. Use only the libraries that comes with that distro out of the box. Disable features in your product if doing that requires new libraries not delivered.
December 4th, 2004 at 21:46
If we educated users to use the shell plus an easy GUI script based IDE like Runtime Revolution, we wouldn’t need standard apps. We could all make what we wanted for ourselves, which would work just how we wanted it to. An if we learnt how to use the cron daemon with our scripts, we could get the Linux box to work for us, instead of following the MS model where we work for it. A brave new world, fuelled by end users ideas and needs would be born.
December 7th, 2004 at 17:38
I agree!
May 23rd, 2005 at 18:15
Hi~everyone~I’m also a user of ASUS and find that there’s a prob when i install rh9 as i can’t find the lan driver for K8V-X
May anyone do me a favour to send the driver by mail?
My mail: one_heart2003@163.com bow~~
thx~~