What's Missing from Free Software?
dan.hunt asks: "Klaus Knopper was interviewed here and the interviewer, technobeast, asked: 'If you were asking the questions, what would be the 1st one you would ask?' Klaus answered in part 'What are you missing in the available Free Software, and how would you like to change that?'"
Easy. Source distribution should be optional. If I recommend a free piece of software to somebody in the windows world I want it to come in one downloadable file, with an installer with lots of dialogue boxes.
www.HearMySoulSpeak.com
What's missing from open source software has little to do with the software itself, but with the approach to it.
Consider a sampling of successful and focused OSS projects: Perl, Python, Ruby, Linux, Apache, GCC, GNU file/text tools. What is it about themthat makes them successful? They focus on a single audience. Perl, Python, Ruby, and GCC focus on developers, and serve them well. Apache focuses on web serving (and, in its subprojects, web development), and does it well. The GNU utilities focus on the Unix user, and provides the expected interface well. Linux focuses on providing OS support for a wide variety of hardware (I am speaking solely of the kernel and its modules here), and does it well.
Now consider some less focused, yet still popular, OSS projects: GNOME, KDE, Mozilla. They try to be all things to all people. This is, indeed, one of Microsoft's (many) failings: for example, Windows attempts to be a home, workstation, and server OS using the same interface, and Word attempts to provide word processing for Grandma as well as document creation for technical authors and collaborative document management for corporate teams and everything in between. They are mediocre for all of their supposed purposes.
Mozilla is a bloated pig because it can be used for so many different things. (I happen to use much of the bloat, but that doesn't justify its lack of focus.) This is why it is being broken up into separate tools, and rightly so.
Ultimately, compelling software is compelling not because of how many people can find a use for it, but how well it serves some particular audience. This is the inverse of the "right tool for the job" platitude: make your tool the right one for some job, not a tolerable one for several jobs.
I will point out what I believe is (much of) the proximate cause of this tendency to lack focus. The mantra "release early, release often" encourages a lack of focus; once a community of users springs up (which is vital for a successful OSS project) they begin pushing and pulling the developers to support this feature or that. One hopes that some of the users will actually contribute code, which means that features that stray from the focus of the tool may be harder not to include than to include. If the developers do not keep a firm grasp of their focus, it will stray.
This is not to say one should not "release early, release often," but that one must maintain focus in the midst of users and contributors who have their own goals. I applaud the mutt team for keeping it a MUA, and nothing more. Sure, I'd like to see NNTP support, but there are perfectly good newsreading tools out there and, instead, mutt development can focus on being the best MUA it can be. I applaud Linus for rejecting innumerable patches when they don't fit his focus for the kernel. Project leads must discipline themselves if they wish to produce compelling software.
Consistency.
But the whole nature of free/open software is that everyone wants to do things their way (myself included), so it's something that's impossible to fix.
No one is reaching out to the graphic design community. While they also have a tradition of copyleft, free fonts, and royalty free no cost photography, the two communities simply don't talk to each other.
(Which really isn't all that surprising since both of them tend to look down on each other as worthless parasites.)
I'm sorry, it looks good enough for programmers, but it doesn't look good. And there's a difference, especially if you want the masses to adopt it.
No Zen is good zen
- Documentation, including *examples*.
- Good UI. For the love of all widgets, *please* take a UI course, before bestowing us with your gift. KDE is looking *real* sweet, but there's 9,000+ other programs that look like crap, and guess what, they aren't as usable as the majority of Windows/Mac programs. Guess there is a lot to be said for a standard.
I'd say the key thing that's missing is speed. Sure, the software that you need/want eventually comes out. However, it takes forever before it does. Part of this is that good software takes good time, and the continual peer review slows down the process. Much of it is also the emulation of existing software packages that take time, since you have to work on something that already exists, so there's a seeming lag.
However, large corporations can crank out huge software projects that are high quality such as Final Cut Pro, Photoshop, Office, Studio MX, etc. Perhaps part of it is also because their programmers don't have to worry about having enough money to eat and pay their rent. If only there were a realistic open source model that's good for the programmer, this would work better. Sure, you can charge tech support, but how many programmers really want to do that anyway?
TeX is great, and LaTeX is a great abstraction layer. However, we lack a mature DTP application which allows us to readily and easily design new documents (newsletters, company letterhead, etc.), especially in a GUI. Scribus is a good start, but we really need something like InDesign.
Also, fonts are a problem. Great progress has been made here (TTF support for X, etc.), but I want a good way to manage my fonts such that my fonts in X are available to TeX and vice versa. I shouldn't have to do 50 steps to install a font for LaTeX and not have it available in OO.
LaTeX, being essentially a markup language, needs to be reformulated in XML (with Unicode encoding) and brought into the 21st century. It appears that XHTML 2 is becoming very LaTeX-ish (markup represents soley the structure of the documents), and styling is done via stylesheets kinda like LaTeX packages. If both were XML-based, translation would be a breeze, and we would have a nice convergence of print and online publication, something that has been very shitty to this point.
I would also like to see categorized font browsing in applications; I want to go to choose a font, choose sans-serif, then choose Helvetica from a list of 20 faces, not having to find it in a list of 200.
Just my $0.02.
I can't count the number of times I've tried to read a man page to get the basic usage of a tool, only to get frustrated by endless pages of options and no examples. Inevitably, I end up searching Google Groups, or Google...