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.
What is missing much of the time is honest labelling. At download.com, much of what is called "free" or "freeware" is really crippleware.
That is a valid point, but it is however not open source software you are refering to. The post was talking about the "Open source community" and if you search Freshmeat instead of Download.com you will find a quite different result. Let's not confuse OSS with the crippled spyware you find at Download.com.
Scitne aliquis remedium potimum crapulae?
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.
- 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.
Documentation is where Linux applications often fall down. Granted, it's not always that good on Windows either, but there is generally an expectation among Windows users that it should be there.
1. KDE means K Desktop Environment. I guess thats even more descriptive than windows. Excel, Outlook, Entourage, ... all very descriptive. You can't just name everyone of the gazillion open source web browsers "Web Browser", can you?
/etc/init.d/ifconfig start
...)?
2. No, doing things graphically doesn't work for everyone. If people understand what they are doing, they can do most of the stuff that requires a console (which isn't that much, anyways) on the console; if they don't understand that, they probably won't be helped all that much by a GUI.
3.
4. Sure, just convince Microsoft to release the specs.
5. You want to simlify(?) installation by making ppl open up their computer and install a hard disk (jumpering, master/slave,
6. You could always just make symlinks with "human-readable" names to those dirs, couldn't you?
7. Well, Joe Blow. You understand that 2005 > 2003, so far so good. Now imagine a few of those numbers, separated by dots. The most significant number is on the left, and the least significant on the right. Anyways, aren't RedHat et al. doing exactly this already?
Free as in mason.
And then, there's this new export to PDF/Shockwave feature that's a kickass thing to have, especially in academic environments (the corporate world, as I see it, is still steeped in .doc files)
More than mere navel gazing.
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...
I would like to run one command, or click one button, to install an app. I HATE having to download a variety of libraries to install something. It's stupid.
This should be a universal thing across all distributions. Or, there should be one distribution with all the niceties of Windows. It's just too fragmented and finicky to go anywhere.
"Would it kill you to put down the toilet seat?" -- Maya Angelou