Shirky: Given Enough Eyeballs, Are Features Shallow?
cshirky writes "A persistent criticism of open source is that it is more about copying features than creating new ones. While this criticism is overblown, the literature of open source is richer on the subject of debugging than design. I've written an article about Ben Hammersley's LazyWeb.org, wondering whether open source methods plus RSS distribution can do for feature requests what open source already does for bug fixes, namely parallelize the problem in ways not available to closed source development methods."
To right it's about copying features then creating new stuff.
Why?
Because access to the source (so we can tweak somewhat) is all thats missing with most proprietary software.
We don't have new needs, except the need for source, the freedom Richard Stallman talks about.
Thats why.
Sam
blog.sam.liddicott.com
the problems with Free Software is that its followed by politicians and not innovators; naturally, in open source (that is, not the so-call Free software) this is less of a problem.
Innovators innovate need money, and open source don't provide.
Personally I use the BSD, because it helps innovation with license that provides freedom, but that does not mean that the BSD's them selves do innovate, just that we provide a good system to base innovations on.
Open Source development, as practiced by many Linux programmers, is not about pleasing the masses; it is about scratching an individual itch. As the ratio of users (ie. non-developers) to developers grows, there are bound to be more itches left unscratched.
The reward of scratching your *own* itch is obvious. The reward of scratching other peoples' itches, especially when they are not likely to even send you a "thank you", are more dubious.
I do not mean this as a criticism, simply as an observation of how it really works. Open Source works because of individual need. You cannot expect it to do the same kind of thing as paid development (which also tends to include nasty, unpleasant bits).
We can help a little bit by giving non-developers the ability to participate in a meaningful way. Think translations, documentation, icons, loading screens, project supports, web support, whatever. A lot of this is in place today of course, but it may not be obvious to many. We may need to work on that - both making these things more obvious and 'sharing the fame' with the non-developers who help out in a meaningful way.
The criticism that Open Source is always copying is highly unfair. It is unfair because Open Source is in many ways still catching up to closed source. Many of the tools are growing stronger, but are still lagging a little bit behind. Once that gap is filled I expect the Open Source community will boldly go on to create new and innovative features. Until then... Well, there are only so many hours in a day.
We should always watch out for complacency. Something is not 'good enough' just because it works. We should instead take pride in making OUR source the very best possible. Paraphrasing Apple for a moment, we really *do* need to 'think different'. A copy of Windows is not likely to be 'best'. A copy of UNIX is not likely to be 'best' either.
If we want to evolve further, a point will come where we need to help other people onto our platform. These other people are not users perse, but rather creators of content like us. Unlike us, they create music, pictures, video, etc. We need to provide them with tools to do what *they* do best, and we need to educate them towards our mindset (Open), and they in turn will reward us by sharing *their* work.
Although this is not scratching a personal itch, the job can still be rewarding because these are generally nice and interesting people to work with.
Right, off the soapbox I go...
I've been thinking about this for a while. One of the things that is so powerful about Open Source is that it pools the abilities of so many people. Unfortunately, the mechanisms currently in place in the Open Source world are great for pooling the skills, observations and ideas of programmers and geeks, but they're not good at all at pooling them from end users.
What i'd like to see is a kind of buzilla application completely focused on feedback from end-users. Somewhere where end users could make observations about OSS applications, and perhaps other users could vote or comment on them.
I brought a digital camera the other day. Before buying it, I could go to several web sites (for instance, amazon and cnet) and see lots of comments from other people who had used it. It was really useful to me, but of course could also be of use to the manufacturers themselves to get raw comments from end users. Open source software needs something like this so that developers can see first had what people like and dislike about their software.
So since only developers need the source i guess you're saying closed source software is good enough for the average non-developer.
If the only difference is availablity of source then you are saying free software is no different from closed source to the average user.
Hmmm, behind all the retoric this is really probably the truth.
I really can't understand why people say that free software which copies established UIs is a "bad thing", like a flaw or failure or something.
:) )
The Net, Linux/BSD and the wealth of tools all provide hackers with the opportunity to code endlessly, but one thing we can't do is interface research.
So it's the best of both worlds: we can make use of all the money and time put in by Apple, MS etc. into human/computer interface research, yet capitalise on the power of open source to deliver stable, versatile software.
(Of course, Apple isn't too happy with direct copies of their UI, and I could've worded this better, but only woke up 15 minutes ago
Yep. A piece of software is designed once, and then it may be debugged many times, perhaps forever...
Debugging is a (IMHO silly) way to understand how a program works, to find out were and how it fails or where and how it may be improved. That and the possibility to reuse pieces of code, is all that opensource is about. This gives the public - more specific developers like some of us - the power to fix problems and add features right away.
However I do not see how this idea of communication about features will work. Assume I code some feature I have a need for. I would just submit the modified code. I will not go and see if I made some users happy. So who is going to? Assume you have need for some feature...
...
Well that's where the story ends, I guess. Or you'd have to call me and pay for it.
giel.y contains 2 shift/reduce conflicts
Frankly I'd rather use a poor design that's relatively bug free than some focus group approved design that's loaded with lots of strange quirks and inexplicable hangups. Sure, using a poor design is like learning to ride a camel backwards, but as long as the camel is consistant and gets the job done it beats the dominant camel vendor's approved "industry standard", slick, nice looking, user friendly method when the animal keeps keeling over and dumping your load.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Most projects's site actually have room for user feedback and discussion, usually in the form of forums and/or mailing lists. The problem is that most users do not bother.
I develop and maintain a few small utilities on sf.net, and on roughly a thousand downloads all i have received are two bug reports. I am sure there are plenty of people that are looking for some specific features in my programs, but when they see they are not supported i suppose they just go "oh, well" and look elsewhere. It does not even cross their minds that they could tell me, or even enter a feature request in the tracker directly.
I guess we could try to lower the treshold a bit more (e.g. with big flashing "REQUEST A FEATURE" buttons on the main page), but eventually we cannot force users to do anything.
Pathman, Free (as in GPL) 3D Pac Man
You really nailed it. This guy is a quite a windbag...
And he never even addressed why this criticism is overblown which means that this guy is just another Linux-Is-Perfect-Everything-Else-Not-GNU-is-Wrong Journalist Zealot.
Actually, I find that Open Source/Free Software packages are pretty feature-packed, and for any given feature I can think of, chances are _some_ package already implements it.
Finding those packages can be difficult though - we need enhanced feature discovery.
We ALSO need to maintain the Unix philosphy of SMALL TOOLS THAT DO ONE THING WELL that you can combine - and perhaps develop a GUI paradigm for that, not throw the kitchen sink into every package.
Students who need to do a school project jump immediately to mind. Or professors looking for new programming assignments, instead of assigning Yet Another Space Invaders Clone.
The synergy here could be dramatic. Students learn by taking a stab at solving real user needs that might otherwise go unfulfilled.
microsoftword.mp3 - it doesn't care that they're not words...
Sounds just like Microsoft doesn't it?
Ha-ha. Fat chance that the open source crowd would actually start using real software engineering methodology.
Most of that crowd is still in the 70s (like their programming language and OS) and believe that the documentation and proper design before coding is just a fad. "Real men start coding right away". If you try to say anything to the contrary, you are labelled a poser with a university grade or - gasp! - even a manager type.
... but not necessarily in areas suits would like. It is worth it to remember that Clay Shirky (who submitted this article) is a well-known VC, so from his viewpoint it is understandable that Python would not seem very innovative.
:-))
Open source uber-successes (innovation + usability): Apache, Sendmail, Perl, Python, PHP, emacs, vim (vim adds sufficiently to vi to justify it being innovative imho)
Open source successes (usability): Nautilus, Gnome, KDE, Evolution, the Linux kernel, GPG, glibc, Mozilla, OpenSSL, OpenSSH
Open source failures*: Directory Servers, Calendaring/Groupware servers, Office software, desktop publishing tools, graphics/prepress tools (the Gimp isn't a prepress tool), message queueing systems, heavy duty databases (despite SAP/DB).
I see a pattern here: Open source does pretty well at stock protocols that fulfil community/individual needs, it has even done reasonably well at end-user desktops (Nautilus being the crowing example -- if only the rest of the Linux desktop was that good!
Where we have not done well is about stuff that solves suits' needs: directory servers and groupware being a classic example.
I think we'll need some initiative from the industry now to fill these gaps, because it is not obvious that the community is going to scratch those itches anytime soon. Sun's open-sourcing StarOffice was great, OpenOffice has a chance of catching up with MSOffice in ~2 years. I sometimes wonder what would happen if IBM were to walk the talk and open up *any* of the following: DB/2, Domino+Notes, SmartSuite.
* yes, I am aware of OpenLDAP and OpenOffice, thank you.
I've had to deal with as a systems architect at my job is keeping programmers from committing feature creep. More often I found that the root cause of creep is programmers that wanted to be liked and loved by everyone, and rather than focus on making a program or system lean and mean, they would rather please every user.
_______
2B1ASK1
Two random thoughts about features and open source: 1. Mozilla shows that Open Source *can* do innovative features (or at least, features not found in comparable commercial software like Intern Exploiter): e.g. type-ahead find. 2. The problem with letting users spec features is they will often make suggestions that are too vague, plain impossible or, if actually implemented, would make no sense. It's hard for most people to think about the impact a feature would have without actually trying it out. So maybe the way forward is to use systems which allow interfaces to be modified more easily (like XUL). Even if you can't implement an idea yourself, it makes it easier to find someone who can. The benefit of the feature is easier to understand if you can try out a prototype.
Excellently put. I agree completely.
On the other hand I also feel there are a few Open Source projects that, after years struggling meet the current state of the art in that particular type of application, have finally caught up with it and even surpassed it. A shining example of this would be Mozilla. For years it was a huge pile of bloat, barely useable. Now it is a stable and relatively fast browser, feature-complete by even the most rigid modern standards (at least on Windows, for linux there are still a few crucial plugins missing) and provides features that i sorely miss when, for one reason or the other, I end up using IE.
The point I'm trying to make is that much is dependent on maturity. Maturity of the code that makes up the application, but also of the team that develops it and of the community of users as a whole. And I have the distinct feeling that this maturity has been rapidly increasing that last few months.
Open Source development models do not prevent innovation. They merely provide unusual challenges. Only now are we starting to learn how to deal with those challenges effectively, especially in the arena of desktop/user software.
Pathman, Free (as in GPL) 3D Pac Man
KMail is a decent mail client, but to get it to work properly (after installing it as part of Mandrake 7.2) I had to search Usenet to find out that I had to edit some config files. That's not what someone coming from Outlook Express would expect, and it would probably put them off.
Making initial config and installation easy should be more of a priority than adding "original" features.
That said, Mozilla has done both, so it can be done.
What free software needs most is ardent maintainers.
Too many promising projects end up as working diligently, but then end up never maintained and never compliant with later libs, GUIs etc.
As a free software author myself, I feel qualified to talk on this matter. I'll drop a hint to everybody right now: if you have a feature that you want, or think would be really useful, REQUEST IT!
Send me an email, and ask. What's the worst I'll do? Say "no". I personally wouldn't do that (I'd probably explain why I thought so), but it wouldn't hurt! I'm guessing a huge number of free software developers are sitting out there, very lonely. I *know* I have quite a few users, since I get a steady trickle of downloads, averaging over 20 a day - some of them *have* to be trying it out!
I bought a computer to _compute_. I'm a developer and a user. Back in my day, all home computers came with built-in development environments. Now, a WinXP-PC is essentially a TV-set - the whole OS is structured to discourage exploration, and to encourage users to remain dumb and leave development to "professionals".
I use Linux because it represents a progression of the amatuer computing environment. I would take a dedicated amatuer over a professional any day in computing. I don't care about assholes who think that computers are "just tools". To me, a computer is both a means to an end and an end in itself.
Free source software does not tend to have "that one shining beacon" of a feature to it's name, but what it does do is have a huge amount of breadth with the features - they become incredibly easy to implement, which means that software is easier to right (obviously, you need to pick the right toolkits for this to be true though).
For instance, in writing a KDE application, with a *tiny* amount of effort, your new application will get dockable widgets and toolbars, menus which can be rearranged from a simple document (without a recompile), full internationalisation support, multiple undo/redo functionality as standard, network transparency, automatic layout/resizing management... the list goes on and on.
Now the innovation isn't that these things are new, but that they are incredibly easy to implement and use, which leads to a greater consistancy of application.
Of course, this ins't true of all open source applications, but you will find that the same occurs - whereas in a closed source application, you tend to get innovative features which work in a single application, in the open source world,. the same features will be implemented so generally that any application can use them.
Hobbyists and non-programmers like to read /. to, even articles about programming! What is RSS?
---Technology will liberate us if it doesn't enslave us first.
They sit there, with their lightweight psychology, graphics design, philosophy, women's studies, physical education, etc degrees, and contemplate and measure cost/benefits of how the software should work. When appropriate, they poll users. They perform usability tests on actual users. They monitor how actual users use existing versions of the software in order to both spot common errors and figure out exactly what features are actually being used. They document what they do. They read books and articles on nominally the flimsiest of things, like "the psychological implications of color choice in menu design." Their feature requests sometimes border on the really difficult to implement, and sometimes quite simple.
Theirs is a full-time job. Even, if in your arrogance, you don't believe that it takes particular skill, at least grant them that it takes time to go and set up actual usability testing sessions and so forth.
The implication is that PROGRAMMERS DON'T DO DESIGN (at least, interface / features design). Or, at least, anything a programmer might do is reviewed and analyzed.
Needless to say, this is totally different than in oss/linux, where programers are really the only actors in the whole software development cycle. "design" is accomplished largely by copying other products, whcih inevitably leads to a lack of appreciation for the subtleties that make up for good interface and usability design.
Gimp and Xfig - my two favorite whipping boys, are examples number one and two of programs that nominally have the features, but in practice are painful to use compared to their closed-source equivalents (Photoshop and Visio).
The problem is as well is that there is no plausible way to get designers and similar 'soft skill' people into the OSS cycle today:
- culturally, the OSS 3l337 reject anybody without super-skills. don't even pretend that this isnt true.
- Technically, there are no mechanisms in place for this. CVS is about code. The development model is essentially about continuous 'patching' of the software rather than grand rearchitecting, which design considerations often require.
- economically, there's little hope of getting quality designers involved. Programmers barely get recognition in OSS (blowing to hell ESR's naive theories, btw). Who would care who designed what? How do you get street cred as a designer? I mean, it could happen, but it would take a pretty big mental shift.
Design = customer focus. OSS too often has this not. Profit drive causes customer focus. Alas.Seriously. I installed KDE, GNOME, other window managers, other software. Some worked great for my girlfriend, some didin't. But not once, not even once, did she ask who to go to when she had a question.
Sure, there's google, but who is to think of hunting down xmms's main site, writing a question and waiting a day or two. Whta if I wanted my answer yesterday? Part of the problem is, there is no fast support, much less obvious support.
-
ping -f 255.255.255.255 # if only
While some open source developers work on a project for personal reasons, others don't. Everybody has their own reason for contribution.
I, myself, am working on the Autopackage project because I want to make third-party software installation on Linux easier (and get rid of all the flame on Slashdot and other places about Linux software being hard to install) to make this world a better place, and partially because I want a packaging system that doesn't rely on a database.
Everybody has their own reasons. Some do it for themselves, some do it for others, some do it for fun, and some do it for other reasons. There is no one single answer to why this and that happens.
Example: "open source produces bad GUIs and have no usability experts". Huh? Have you guys never heard of all those usability studies Sun contributed to GNOME? Or the GNOME/KDE Usability Project? Or the GNOME Human User Interface Guide? I mean, they've been here for months, yet people still talk as if they don't exist.
I can only conclude one thing: the world is heavily underinformed or are biased. Go read some websites!
Again: there is no one single answer to why this and that happens. People saying that open source can't do x because of their ego or whatever have a single-minded view on open source.
The most obvious example is Perl. It was made to generate reports, but grew so far and in so many different directions that few Perl programmers have ever used it to generate printed-page reports.
But open-source isn't just about features. It's about rock-solid reliability *and* portability; few commercial products run on as wide a range of platforms as, say, GNU fileutils. And I can still cause most commercial 'pwd' implementations to dump core, but have never done so with GNU pwd :-)
To set the record straight, during 2000 and 2001, I worked at an incubator called The Accelerator Group, where my job was to assess new businesses' technologies. I certainly wan't the one writing the checks, and I certainly do think Python (and perl and Ruby) are innovative.
As for successes, and failures, I detect another pattern in your list. Open Source does better the deeper in the stack it is. Deep in the stack == programmers as users. Tools high in the stack, on the other hand, have a strong split between the people writing the software and the average user. I am wondering if LazyWeb can bring about useful communication across that gap, at least among users capable of describing what they want clearly and developers looking for outside inspiration.
See Von Hippel's papers here.
Enjoy,
Frank Ruscica
(Sounds like a diagnosis of venereal disease, huh?)
The reward of scratching your *own* itch is obvious. The reward of scratching other peoples' itches, especially when they are not likely to even send you a "thank you", are more dubious.
This true, and I address it in the article. LazyWeb, at least as its worked in the past, addresses this in a fashion. Rather than recap, I'll post an excerpt here:
"The canonical motivation for open source developers is that they want to "scratch an itch." In this view, most open source software is written with the developer as the primary user, with any additional use seen as a valuable but secondary side-effect.
Sometimes, though, the itch a developer has is social: they want to write software other people will adopt. In this case, the advantage of the LazyWeb is not just that a new application or feature is described clearly, but that it is guaranteed to have at least one grateful user. Furthermore, LazyWeb etiquette involves publicizing any solution that does arise, meaning that the developer gets free public attention, even if only to a select group. If writing software that gets used in the wild is a motivation, acting on a LazyWeb description is in many ways a karmically optimal move."
This is ridicolous. It's the other way around. Open source / free software has always (long before it had those names) had much more productive innovation.
And of course it has. Open source is all about mimicking the open science research community around all the universities in the world. This scheme has been perfected for centuries with the explicit goal of more innovation.
With open source you don't have to reinvent the wheel. Have a new idea for an operating system feature? Implement on Linux and you can be ready in no time and (which is important) you have plenty of people to show it for, get feedback, and if it turns out good, plenty of users. Creating a new language? Just write a new frontend to gcc and you have modern state-of-the-art code generation and register allocation tools which would cost you millions to develop from scratch.
Five years ago, we already had a complete operating system for us, GNU/Linux, all created within the open community using open tools. Using only some of the thousands of available tools, you could chat with users around the globe using IRC, setting up ad-hoc document collaboration with CVS and LaTeX, develop software etc.
Then we had the whining. Corporate users saw there was money to save by using free software, *if only* there was a free word processor. Word processor! You had emacs, CVS and LaTeX and you wanted a *word processor*! Why? Because the better software wasn't "familiar enough". Familiar. Ok. After several years, both communitites realised that it is only good for us both if we cooperate (it almost always is) so now we have, what, 5 good free wordprocessors?
We had mutt, procmail, GNUS, and some wonderglue called Perl. Corporate wanted Outlook Express. Now we have an insane amount of Outlook clones. Repeat ad infinitum.
Now we find ourselves in the peculiar situation where new users are introduced to lookalikeware such as GNOME, Evolution and Openoffice -- and they complain they are just pale clones. Well of course they are! That's why they were created!
Want a 3D GUI? Available. Unified messaging? Available (at least with some Perl glue). Ad-hoc collaboration systems? Right there.
If you want to understand the innovation taking place in the free software community, start with understanding our basic tools. Understand CVS, LaTeX, Perl and such. Look at the reiser4 filsystem, the XML-UI in Mozilla, Parrot and Perl 6.
Then come back and give us a little bit more well informed complaints about innovations in free software.
I'm sure everybody copies features - the difference is that with FOSS, nobody has to code the same features twice. Not so with proprietary software.
z
What would an EWOULDBLOCK block, if an EWOULDBLOCK could block would? -- me
My attraction to open source -- outside of the Stallman-esque "it's inherantly better by virtue of it being open" argument -- is due to the features it offers that Windows does not. Namely, the ability to customize my desktop to near-absurd levels and an extremely powerful command-line interface.
My
Limekiller
The whole "Open Source Developers are not Creative" line is crap. Sure we copy a lot of features if we think they're useful, but we've been on the leading edge in places where big companies would like to re-write history to take credit for various inventions of ours.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
While this criticism is overblown
Is it? What do you have to back this up? Does anyone have anything to back up the facts that it is not overblown?
While I personally think that open source indeed come up with new and novel designs now and then, and think that they often do the right thing when they copy things so people can use it out of the box, I absolutely hate blanket statements like the above, that serve no other purpose than to try and get published on slashdot.
If you only had said "While I think this criticism is overblown". That would be better, at least.
Personally, I don't think it is that overblown, but it isn't always a bad thing either.
I certainly hope that aircraft or automobiles I am on are not put together like that. What OpenSource _CAN_ do is provide the solutions in parts that can be then put together like the end user wants (or end developer). Instead of saying, "Our tool uses GTK for its front end" try saying "We provide with our app an optional GTK GUI front end as an example" and actually design the system from the beginning to allow for a more abstracted method of output and input. If I want HTML as output, no problem... perhaps GTK is not a viable solution for me, then I will go with X-widgets of some sort I like.
Sometimes this is rather difficult I realize, but if I have to rewrite the core app then I will most likely start from scratch. If however, I want a good app to build around and on top of then I will need to be able to use it much like a library or at the very least a single separate blackbox device that I in turn define the input and output methods and formats (within reasonable limits).
>> ...they just go "oh, well" and look elsewhere.
Doesn't the fact that: (A) open source software costs little or nothing, and, (B) several alternative versions of most application types are available, make it easy for unhappy users to staty silent move on to something else?
When I use free software, I don't have the same motivivation to complain or suggest that I do when I'm using software I bought. It's the difference in seeing yourself (and being seen as) a user rather than a customer. The commercial software folks know they're dependent on customers, while some open source and free folks appear tp be debating whether "users" should influence the direction of their "movements".
-- Slashdot: When Public Access TV Says "No"
While I'm here, let me plug my Shouldexist postings:
Employee of Inrupt, Project Release Manager and Community Manager for Solid
Adding features is easy. But I think often less is more. As an example, I compare Apple's iTunes software with MusicMatch Jukebox. I have both and I much prefer Apple's offering.
When you compare what's under the menus, MusicMatch looks like a mess. In comparison, iTunes seems clean and well designed. I think the ratio of useful features to features follows the 80-20 rule.
It's probably also the reason that I have stuck with Palm handhelds (actually a Handera) when the PocketPC's seemingly have much more to offer.
It is very difficult to make something simpler without losing any essential functionality. And of course what is essential is very subjective. But in the case of iTunes, I think Apple has done a very good job.
Replying to my own post...
For end users it is obviously important to make things easy. Although it is true that many web sites for Open Source projects have forums or email lists for feedback, I don't think that's easy enough. Many end users don't really know or care what software they are using.
What I suggest is a new dropdown item from the menu bar. Just as it is standard practice to add Help->About to an application, so it should perhaps become standard practice in the OSS world to add a Help->Feedback item. This send feedback info. from all OSS applications to a single database, which could then be browsed by OSS geeks to find out where problems are occurring.
I've always wondered why MS never did something like this. I think it would innovation - and a willingness to listen to endusers - on behalf of the OSS community if they did something like this.
...but it is well documented that the requirements and design effort swamp the coding effort in the process of delivering software. I've worked at two companies so far in my carreer where the product was commercial software. Unless you are building an application that programmers will use, one really needs to enlist domain experts to determine what features will be effective. As an example, I developed a number of commercial applications that are used by electron microscopists in performing quality control on prototype integrated circuits. It succeeded not because my manager was a software developer with a Princeton education but because our resident microscopists told me exactly what the tool needed to do based on years of experience in the field.
Now, this tool can be purchased and it's features can be copied...but certainly I never could have built this thing myself from scratch as my background is in computer science and software engineering.
IMO there is absolutely nothing wrong with copying features. In fact, if I were looking for an OSS tool like the one I described above - I think the most important thing I could say about it is that it is just like "X", except it's free (as in beer/speech/or whatever.)
Lastly, it seems to me that since requirements and design consume so much effort/time/expense that one reasonable lifecycle for an application is..
1. Domain experts recognise the opportunity to automate some aspect of their work based upon years of experience in the field
2. They invest the effort/time/expense in developing the requirements/features and create a proprietary application which the sell for $$$ for as long as they can
3. Eventually, other commercial proprietary apps are available with added improvements to compete...so less $$$ available
4. Over time, the set of requirements for this type of tool become known by all.
5. Once the requirements/feature are common knowlege, OSS replicates the tool and the world is a better place.
Clearly, OSS has produced original work that never went through a commercial cycle. But there is no shame in copying features. As Isaac Newton said, "If I have seen farther than others, it is because I was standing on the shoulders of giants."
I want to be alone with the sandwich
I think a more consistent criticism of Open Source, is that it's copying features too slowly. I'd settle for full feature for feature equality with the competition. Innovation will come along at it's own pace.
An article at PCMagazine that touches on that same attitude is Here. (Item #2)
-- -- Warning. Do not stare directly at the sun.
Can not a person be both a politician and an innovator? Caring about the world around you certainly doesn't keep you from having good ideas.
:)
I'd have to argue with the idea that innovation has anything to do with money. My most productive times are when I'm unemployed with lots of time on my hands and no money to pay someone else to write software I could write myself. If someone else has already invented the wheel I play it smart and look at what they have first, then I innovate the rest. If it's something entirely new I innovate it all but given my lack of a marketing department and the fact that nobody is looking for what I'm offering very little noise is made about it's existence.
As a developer I will never use a BSD license because it lets people rip me off without giving me anything back. If I release code under the GPL and they want to distribute changes they've made they have to make their changes available to me and others. If they don't want to do this they have to contact me and work out some other license for which they will pay me the original developer.
All the BSD license does is make it so you innovate and other people can run off with your code, make just enough changes to break compatibility, and make money off of it.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
Good Software is not about more features! Good Software is about doing it safely, reliably and securely. Good software is about doing it well, not doing more.
Adding more features will only make the software worse. More bloat, less easy to understand and use, needs more hardware, and the documentation usually lags behind as well.
Writing software is an art form. It is an exercise in restraint and thinking before you do it, not in gluttony or adding more crap to already crappy software. The world is full of bad software with hundreds of little understood and under-documented features. I'd rather have small, well-documented and reliable software, thank you very much.
Where is the border between copying something and creating something ?
If you apply the same thing to music nothing new has been achieved in the last couple of hundred years. There only 12 notes per octave.
Same applies to literature : its just a copy and rearangment of the same book over and over again, always the same letters.
Programming should be a subject taught to everyone the way reading and math are. Obviously not everyone is going to choose that as a career but they'll be able to do minor programming to solve their own needs. I'm so often asked to write little programs that anyone could whip out in a few hours time that really it irks me that they don't think they can do it simply because they misunderstand what programming is.
Obviously not everyone needs to know C++ but Python/wxPython would be a good start especially if development tools can make it as easy as VB without the limitations of VB. PHP is also an excellent language to teach non-professional programmers because HTML makes UI's so easy to develop. Logo is good but I'm not sure how standardized it is.
The average Joe having a basic understanding of programming combined with opensource is really where things are going to explode in productivity. Thousands of simple single-purpose programs will flood the Net and the more professional level of programmers will get better feedback from their users.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
"the literature of open source is richer on the subject of debugging than design."
I tend to think it's because of the pervasive attitude that design is for wimps; REAL programmers just start coding.
I do everything I can to keep the program lean and mean, and get overruled by the guy who pays my salary. I tend to piss off users by refusing features that aren't in the spec for the next release.
It is not that Open Source software lacks features but that commercial software is packed with an unhealthy amount of features since that is what sells the product.
It is comparable to the 60s when Americans loved fast, cheap, gas guzzling cars and totally ignored how dangerous they were. The YUGO and oil crisis changed this attitude for a lot of Americans. I wonder what products and events will change American attitudes towards Open Source.
Sdelat' Ameriku velikoy Snova!
How many web servers were around before Apache? The NCSA server, which was OS I believe.
How many web browsers were around before Mosaic?
How many email servers were around before Sendmail?
How many web servers had dynamic content before CGI/Perl or CGI/C?
Even if I'm wrong about how innovative these ideas were, there certainly were catalysts for the creation of closed-source and/or commercial products rather than OS just copying featues.
"For a successful technology, honesty must take precedence over public relations for nature cannot be fooled." -Feynman
Getting open source developers, as a group, to be responsive to user needs and requests will require a major cultural shift that I jsut don't see happening.
Of course, the aspect of this that no one likes to talk about is that closed source, commercial software addresses this issue very well. If you don't make users happy, your product doesn't sell, and you lose your job.
Since I can't mail you from the opportunityservices URL, I'll say Thanks here.
"Just as it is standard practice to add Help->About to an application, so it should perhaps become standard practice in the OSS world to add a Help->Feedback item. This send feedback info."
I don't think that will work. Why? Because most people simply don't care. If they think the app suck, then they'll delete it. The last thing most people think is "Let me send feedback to the authors". I mean, a lot of people I know don't even know what version of Internet Explorer they have (they don't even know they have to look in Help->About!!!!)
There are of course always some people who do send feedback. However, a lot of them are very stupid (no offense intended, but it's true). Things like "it doesnt work plz fix it tnx" or "yo dude do me a favor would ya fix this bug, LaTeRZz!" or "It doesn't work." are not uncommon. How do I know what to do if all I get is "it doesn't work" or "it crashes"? Also, for smaller projects, the authors do not always have time (school/work/social life/whatever).
I think it's much better to teach the users how to give good feedback. Or better: encourage them to contribute. The problem is: are people willing to learn or to help?
In the Other Model of program development, one person comes up with the idea for a feature, and someone else implements it. There's a mechanism in place that puts both sorts of people on a project.
:)
In the Open Source model, there's no mechanism for people with great ideas but no hack-fu to get their ideas to the programmers.
So for truly innovative things to come from Open Source development, you have to find someone who's a competent programmer _and_ who has good ideas. This is certainly bound to be much rarer than someone who just has one or the other.
If we want to see more true innovation come out of Open Source, then we either need a mechanism to put idea people together with the hackers (and since folks aren't getting paid for this, there's very little incentive to listen to someone else's desires when you're coding...) or find more Renaissance Men. Or we need to find an idea guy with a better answer who's got sufficient charisma we're all willing to listen to him.
Agreed... until it occured to me while reading the article that maybe by posting a feature request in a public forum, you would get lots of feedback similar to yours.
You might also get lots of people simply saying "it already exists if you do this that or the other".
On the other hand, consistency is extremely important. Too many independent thinkers with divergent goals would lead to a nightmare application... all software development would converge to an emacs-like blob.
But that might come out in the forum... and if the software application (or fork thereof) is 'lead' by a single mind, like the kernel, then it might work.
I'm just not so sure that the idea would fail.
*sigh* There we go again.
The Slashdot opensource prejudgements must die. Now.
"The problem is as well is that there is no plausible way to get designers and similar 'soft skill' people into the OSS cycle today:"
*Ahem*
How to join the GNOME project for non-hackers FAQ
GNOME Usability Project
GNOME Documentation Project
GNOME Translation Project
And of course the KDE documentation/translation teams.
All projects for non-hackers. And they're quite busy.
"Gimp and Xfig - my two favorite whipping boys, are examples number one and two of programs that nominally have the features, but in practice are painful to use compared to their closed-source equivalents (Photoshop and Visio)."
Well course. They were made in a time when Linux GUIs were just born and developers had almost no experience in good UI design.
Compare the situation to today. GNOME 2.0? KDE 3.0? Evolution? Mozilla? All very mature software with modern and usable GUIs - because the developers have more experience now!
"* culturally, the OSS 3l337 reject anybody without super-skills. don't even pretend that this isnt true."
Oh great, the old "elitism" argument again.
I can't hack the kernel. I don't know assembly. I'm not a Unix expert. I'm not l33t. Yet if I join a GNOME mailing list, and I ask things carefully and politely, providing all the necessery details, I almost always get a good and clear answer (unless of course, nobody knows an answer). I never, I repeat, never get flamed down or told RTFM.
The elists are - what? - 5% of the entire population? The only place I've seen developers occasionally say "RTFM" is on the MPlayer developers list. On mailing lists for popular projects like GNOME and KDE, nobody tells new users to RTFM. Except sometimes as a joke (with a smilie of course). Also, on IRC channels such as #linuxhelp, people are also often friendly and helpful.
Obviously, you are brainwashed by the popular Slashdot prejudgement that OSS developers are elists. That is simply not true. Can you give me any proof that most OSS developers are elists? I don't think so.
"# Technically, there are no mechanisms in place for this. CVS is about code. The development model is essentially about continuous 'patching' of the software rather than grand rearchitecting, which design considerations often require."
Wrong.
If you say they don't design when they first started the project, then yes, I agree with you partially. Mike spent months thinking about Autopackage's design before he actually started writing code.
Most open source project design as they write the code. They learn from their mistakes and make a better design next time.
A good example is KDE 1.0 to 2.0 --> a complete rewrite. They learned from their mistake and made a new, better architecture. In fact, the design is so good, that KDE 3.0 is mostly a cleanup release with no mater architectural changes, and is mostly source compatible with 2.0.
Another good example is the Linux kernel. The new build system has been carefully designed from the ground up, and can't be applied in small continuous patches.
"economically, there's little hope of getting quality designers involved. Programmers barely get recognition in OSS (blowing to hell ESR's naive theories, btw). Who would care who designed what? How do you get street cred as a designer? I mean, it could happen, but it would take a pretty big mental shift."
GNOME Usability Project anyone? A lot of usability studies are contributed by Sun and Ximian. Sun also contributed a lot of user documentation.
"Design = customer focus. OSS too often has this not. Profit drive causes customer focus. Alas."
Commercial open source software. 'nuff said.
Regardless of the protocols being used, feedback on OSS programs should be made more convenient to the user.
In many cases I have a comment or feedback on some OSS package or tool I'm using, I write a note about it and just forget about it, or sometimes I try to dig for the target URL/email for feedback, eg by looking in man pages, or in sourceforge or freshmeat etc. You don't want also to annoy the author because many don't like sending bugs/comments to their personal or other wrong emails.
So the problem is getting the feedback to the author or to others interested in it without wasting the user's time/effort. What we need is a feature feedback mechanism that makes it easy and convenient for people to get the feedback to the author or just make it available to the rest of the world.
Here's an idea: if there was some kind of super blog or repository, just like sourceforge is fore code, and every open source project would have an entry in that repository, eg ossfeedback.org/wget, then each GUI software can have a feedback menu option that points a browser page to the software's feedback page at the repository, just like there is an 'about' button, there can be a 'feedback' button. for CLI apps it would be enough to have the feedback page address listed with the help message, but this should become a standard practice.
This would make it much easier to send comments or feature ideas, another benefit of it is to free authors not interested in user feedback from continuous user nag about feature requests, everyone would send their comments to the repository point because its would be the most convenient path, and for the authors it would become a pull model rather than a push one; if they're interested in it they can check it.
For others interested in improving a package, they would get an idea about users feedback about features, or maybe even ideas about new packages, without this feedback being lost in the email/logs/backups of the original authors.
Exactly, features are bad! That's why I only use a special word processor without spell-check or an undo function. Who needs bloat! I'd rather know that the program I am using has clean efficient code than know that it works and lets me get stuff done.
Now if only I could get it to be as easy to install and configure as qmail I'd be SET!
sig:
See the "..for smart people" banners Wired runs here? Look elsewhere guys.
You seem to waver between removing features and making the program simpler.. They can be different things you know! iTunes could easily have all the same features of MusicMatch and still hide them in an area you'd hardly notice unless you needed to. The problem isn't the existence of the features, it's the design that plops them all out in front of you when you're not going to use them very often, if at all.
sig:
See the "..for smart people" banners Wired runs here? Look elsewhere guys.
While this criticism is overblown, the literature of open source is richer on the subject of debugging than design.
Don't think much of other people's opinions, do you? Yes, lets discount every opinion that is in disagreement.*sarc*
Of course, I personally agree there needs to be a strong form of 'copied' features because, frankly, if every app I use has it's buttons in different spots, I'd go insane trying to remember them. MS has led the way here and if it's not FILE EDIT VIEW then it's not right. But new, breathtaking features? Well, alpha skins looks good. But I think thats all I've seen so far I like.
The Code *IS* the Design - think of Open Source dev as Really Aggressive Prototyping...
Patriotism is a virtue of the vicious
OSS is, we all know, is largely programed by geeks to 'scratch an itch'. Geeks don't itch for "features", they itch for functions. Tools.
A "feature" is something that was invented by the software *industry*, and has little to do with actual functionality. The purpose of a feature is to cater to *customer* demand, or to drive the upgrade cycle to maintain cashflow into the company even though they havn't developed any new *functionality* in years.
As Rex Roberts noted in his book "Your Engineered House" way back in 1964, no one makes money by telling you you don't have to paint your house at all.
Geeks are, by and large, perfectly happy with vi and emacs because they *work.* They not only work, but if you *combine* them with other other tools they can do far *more* than, say, MS Word. So why would a geek spend his time programing a less *funtional* "product"?
He doesn't have to convince to buy new stuff all the time just to suck money from your pocket into his.
He also understands that *stability*, both temporally and in the computer sense is an important "feature" because it increases *funtionality.*
What has OSS come up with in terms of "innovation"?
Well, Perl, Python, Ruby. In fact, OOP itself is the result of "open source" thinking. So is the relational database. These don't have much in the way of "features" though, in the way you've been led (and yes, you've been *led*) to think of them.These are geek tools. No wonder the magazine "pundits" don't know what OSS has done. Everything it's done is under their radar even though they benifit from these geeks tools every day.
Oh, by the way, I'm an "old fart", so I'm more fully aware of one fact of the state of the art of computer software and hardware than most. Before 1980 Open Source was a fairly normal way to go about things, and in many respects the entire computer industry is built on a open source base. It was the *closing* of source in the '80's that strangled development and put it on the same plane as selling chrome on a refridgerator as a "feature".
So what has OSS done? It *created* computer science. I was there. I saw it. I know *why* RMS behaves in some of the goofey ways he does because I fully understand the *stimulus* that resulted in it.
So you want better and more "innovative" software? Ok, the first thing you have to do is drop the entire concept of *feature*. A feature is chrome, bells and whistles added as a *sales tool*. It isn't innovation and it isn't technology. They are generally trivial and completely *devoid* of technology but exist simply to get "the masses" to oooooh and ahhhh over them.
The odds of your being able to do this are slim though. You've been well trained, since birth, to think of software as "technology", and a *product*, not a tool.
Pundits are, for the most part, *paid* members of the "software industry." Their own salaries depend on, either indirectly or *directly* on pushing new features to drive sales.
It isn't even in their interest to notice true innovation and most of them wouldn't recognize it if it bit them on their proverbial asses.
Is it any wonder they might bitch about the lack of "innovation" in OSS because it hasn't come up with any spiffy new "feature" the masters who pay them can take and sell?
Software as a *tool* follows the same slow, evolutionary and *function* based development pattern that say, the hammer does.
Software as "features" follows the same development pattern that leads clothing fashions to change overnight or tailfins on cars to get bigger every year.
OSS has no incentive to make the tailfins bigger.
Thank God.
KFG
So open source has the code/unit testing phase down, and now this attempts to solve the design part. But I think to truly compete with Windows, Linux has to handle the others. So, given sufficient machines, does wide-scale regression testing become shallow? Given enough authors, does documentation become shallow? Given enough online advocates, does support become shallow? Given enough technical users, does evangelism become shallow?
OK so some of those weren't the most elegantly stated, but hopefully you get the idea. It's the way Microsoft has done it, and though you might dispute the quality of some of the components as produced by Microsoft, I don't think you can dispute the advantages of all of them being there.
- adam
What you are describing is 1989 technology that ran on 8Mhz CPUs with 512K of RAM.
There's no good reason that a word processor with features enough for most of us can't fit into a palm pilot and not be a burden when being run by a full scale modern desktop computer.
A Pirate and a Puritan look the same on a balance sheet.
You know, one thing I've noticed is that many people tend to have a erroneous perception of the complexity of their jobs. I mean, after working (or studying) in a given field for a couple of years, you start forgetting how much you know and understand it. Many tasks seem utterly moronic to you even though a very bright specialist in another field would be completely helpless in front of them.
/. are proficient in CS/CE. Many threads on /. are totally obscure to me. Sometimes, I don't even know what is the subject. Yet, I'm often appalled by the complete lack of understanding of financial basics of the /. crowd. One example? The RIAA/P2P "debate". How many times have I read "reasonable" arguments like "A CD costs $1 to burn and the majors charge 20 bucks. They are overpricing!!!"? Yet a quick look on yahoo! finance will provide you with most majors' annual reports and you'll see that their operational profit (whoops, I do it myself, do you know what operational profit is?) represent around 5% of their sales. Does this mean that a CD costs $19 to be brought to the store? No, of course. First, the 20 bucks is not the major's revenue it's the retailer's revenue, and he keeps a margin. Then, there's sales tax in most states. Then there are fixed costs, investments that are not proportionnal to the number of CDs you sell. Then there's price elasticity: volume increases if prices decrease. Then there's competition etc... Sounds complex? It's not. For me, it's like 6th grade common sense. Yet, many educated and clever people (though unfamiliar with accounting/finance) suck at that.
The reasons are many. Language: read any doc in any field and you'll see countless acronyms, names, references that an outsider has no chance to understand. Mindset/methodology: in each field, there's a "best practice" way to present problems and solve them; and you get (grok) it only through experience. Information: every field (not only IT) is evolving quickly and most people don't know where to look for useful info; in many cases, they don't even realize that information is available.
This holds true in every field, not only scientific or technical fields. It's true in finance, sales, marketing, journalism, politics, you name it. That's the reason why it's so hard to make different kind of people to work together (like R&D and marketing). Very few people are able to reduce the level of previous expertise needed to (really) understand what they are talking about.
One illustration: My field is finance, i guess most people on
It's the same with programming. I want to code something, what should I do? Wow, lots of questions come to my mind. Which langage, which platform, which IDE, which compiler, which database? How do I use any of these things? What do these words really mean in the first place? What is their syntax? Should I write the whole thing or use an existing GUI? Which one? Does this question even make sense? I'm confident that I could do it eventually if I commit enough time. It's not worth it!!! It's far more efficient if I outsource that task to a tech-savvy person.
To conclude: No, everybody is not a developer. And even in the future, most people won't ever do something that you would call developping. The problem goes far beyond GUIs and user-friendliness. You just grossly under-estimate the amount of investment needed to develop even the simplest piece of code.
It would be nice to be sure of anything the way some people are of everything.
Good point.
I actually ran into this with iTunes a couple of weeks ago. I often will turn on the visualizations because my 15 month old daughter loves to watch it. She also likes to hammer away at the keyboard.
One day, after some hammering, the visualization stopped changing. It was stuck on one and never changed. I looked through every menu I could find and never figured out what the hell was happening. Then I read in a newsgroup that if you type option-h (or is it apple-h) you get a configuration menu. AFAIK, this isn't available any other way.
So there is a bunch of other stuff buried in there somewhere...
The original UNIX developers limited their feature sets because that was their philosophy. Open source projects limit their feature sets because they rationally decide that the time and effort it takes to implement and maintain the feature are not warranted by its utility.
Microsoft, however, has the resources to implement every nifty feature they can think of. It doesn't make their systems better, it turns them into Rube Goldberg systems. The NT kernel really is "the most modern kernel in the world" in terms of having lots of features that CS researchers ever dreamed up, and that is not an asset. Microsoft developers get paid to add features, not because they need them or because it makes sense to do so, but because they can and because it looks good on glossies. Many people go to work for Microsoft because they can finally get their ideas into a shipping system without such pesky details as having to convince customers that they actually need it enough to pay for it--all they need at Microsoft is buy-in from a few managers.
Or, to continue the dermatological paradigm, if you keep scratching itches you only imagine you have, you are going to get scratch dermatitis. Too much scratching is bad for you, as is too much fiddling around with software.
Linux should keep things simple. Some of the attention from big companies and the resources they contribute (IBM, Sun, etc.) threaten to cause Linux to make the same mistakes Microsoft is making. Fortunately, Linux is still much more modular, so all that stuff can be left out. But it will be the end of Linux when the kernel and desktop will ship with all the "commercial grade" stuff lots of vendors have contributed.
Unfortunately because there's no external pressure to strive for innovative improvements, it's no surprise that OSS stagnates when it comes to creating "features." The OSS nerds pour their heart out on OSS mostly because of the programming gestalt that comes from making elegant code. The MS nerds, on the other hand, probably have a stronger motivation coming from fear of losing their job and therefore their survival, and as a result, seek new features. - philipd
Philosophistry
Microsoft and Open Source are just opposite sides on the Coin of Suck.
it sounds like a recursive spiraling effect
As it happens I am a physicist. MS Word's "features" are just fluff. I wouldn't go near it for a scientific paper with a ten mile long super collider. There are actually a few commercial products that exist specifically because of its failings in this field.
The one thing MS Word maybe does a better job of is the quick and dirty prototyping of a paper. For print, if you want a really nice job, you'll have to save it to ASCII and start over from there anyway.
vi does a better job. The fact that you don't understand vi and its functionality, and how to implement it, doesn't mean it does't exist.
But again, there's no money to be made in getting you adopt ASCII as a valid everyday format. You probably think you have to paint your house to "protect" it too, despite the fact that you've probably seen, or at least seen pictures of, wooden buildings that have stood for hundreds of years without a speck of paint on them.
Marketers just *love* cognitive disonance.
KFG
Can he use Latex? (high probability: no, although I'm sure someone'll come along to prove me wrong :-))
;o)
He could, with Lyx...
I think that the problem is
that sourceforge don't have bugzilla style
voting in there bug/feature tracker.
Good Software is not about more features! Good Software is about doing it safely, reliably and securely. Good software is about doing it well, not doing more.
The problem with this view is that your unnecessary, "bloat" feature may be my part of my essential workflow. I never use the equation editor, footnotes, or fancy citations in Word, but mathematics instructor, secretary, and lawyer I know use those features it all the time.
OS developers are much too quick to write things off as unnecessary without considering how other people actually use the software. This limits the potential user base to that subset of users that have needs similar to those of the developer. And leaving things out because they're not "done well" is not generally preferable to putting them in and taking the time to do them well.
Writing software is an art form. It is an exercise in restraint and thinking before you do it, not in gluttony or adding more crap to already crappy software.
Commercial software developers and designers have realized that ultimately it's not about them, it's about the users. When you're developing for yourself it's an art. When you're developing for someone else it's a combination of talent, down-to-earth engineering, and intelligent compromise.
It's like building a house. If I want a seperate bathroom for the kids then it's not up to the architect or the contractor to veto my request just because they feel it would be "bloated". They do need to bring their professional knowledge to the task and advise on the best way to accomplish the goal, but rejecting it out of hand based on personal preferences is disrespectful and counterproductive.
I think that's what frustrates me most about this problem. Open source development has the potential to be far more responsive and interactive than closed source development has ever been, but closed minded attitudes and the lack of design experience are preventing that potential from being realized.
For example, newdocms is a case of a complex feature, which could be sub-divided to make it easier for more programmers to contribute. Implementing portions of it as a lower-level kernel driver, a user-space daemon, and separate graphical UIs for GNOME, KDE, etc., rather than as a single KDE component, would be both more flexible (e.g. a user could categorize documents from the console) and easier for contributors to work on the separate pieces (assuming the interfaces between them were well defined).
Life's a lot like money-- you spend it, then it's gone. Spend wisely.
Let's say your a programmer who is itching to start flexing their PHP/Perl/C muscles. Would you rather:
1. Get coding, or
2. Go and ask a bunch of people what they want
I feel that the answer is self-evident.
For what it's worth, I am planning on developing a tool written in PHP to help Open Source projects manage feature requests AND provide some monetary incentive. This could be known as something like "feature bounties" or some other name if anyone has an idea of anything more creative.
Basically, users of the software can promise cash rewards for whoever adds the feature(s) they need. If it is a large feature, users can pool their 'bounties' until the reward is great enough that somebody decides to develop it. At this point, the feature becomes "adopted" by that developer.
This idea is not really new, but I don't think it has been fully explored. It could be implemented initially as an honor system, but some sort of escrow system could also be possible.
Please comment if you have any ideas!
I think that the parent was a beautifully worded post and deserves every one of its +5 mod points...
...but...
We have tens of millions of people working in the IT sector now. And it isn't as though no work is being done. Sure, we haven't developed what we thought we would develop back in the 70s... but we've made huge strides in other directions that we didn't even dream of then...
Cellular phones, wireless networks, wireless everything, the web, MP3, DVDs, digital photography, the human genome project, DNA fingerprinting, ebooks, ATMs, laptops...
Some of the problems we thought we could solve turn out to be really tricky things that our current ways of computing have trouble tackling. Other things -- like the very short grocery list above (which I would LOVE to see others reply and expand upon!) -- are everywhere today and were near unimaginable in the 70s.
Computers aren't magic. They won't solve every problem. They are very well suited for solving specific kinds of problems. We are just discovering together what those kinds of problems are...
I would have to say that explosives are the most abused technology in all of history.
I think the problem with thin features is not a bug, but a feature.
.WAV file editor, Sound Forge, so that Sound Forge launches with that wave file if I double-click it.
A lot of the people who buy into the OSS concept also buy into the small tools philosophy -- where it is more powerful to have a lot of small tools that each do one little thing well than to have a handful of large tools that duplicate each other's functionalities to varying degrees.
Take digital audio editing, for example. I use SONAR for writing music now, which has some high-end features to make editing digital audio for music simple, along with support for plugins. I can also attach it to my favorite
But neither Sound Forge nor SONAR have the ability to do some of the audio processing things that CoolEdit can do. And of course, CoolEdit lacks features the other two have. So for me to use all of these features, I have to repeatedly open and reopen the wave file between the various editors until the file sounds the way I want it to.
The idea behind small tools would be to make each audio effect its own self-contained unit. Then you'd have another unit, the GUI for finding and merging all of these together. The music software (the SONAR equivalent) would then use the GUI for editing individual digital audio tracks, and then there's a whole separate batch of programs for dealing with MIDI, SMPTE, and other functions.
There can be several GUIs that all use these different functions. There can be several music software packages. And they all essentially work together.
This is how UNIX basically works. It's part of why getting anything done in Linux is a research project, and part of why we generally love Linux so.
Take CVS for a good example of the small-tools approach. It does one thing well: Merging multiple versions of files that many developers are working on around the world. That's really its only feature. But you can then use script files that it calls to enhance its functionality so that it sends you mail, updates a web page, works with BugZilla. You can integrate CVS into your IDE, and there are dozens of graphical front ends for it that can give you better views of changes. You can switch out what programs CVS calls, you can switch out the front ends, you can integrate it into your Emacs or your ProjectBuilder.
CVS thus becomes a version control software that can do everything even though it is a small tool that really just does one thing plus respecting the small tools approach -- although it needs a bit of configuration to work the way you want it to at first.
Linux itself is such a beast as well: It has invaded many markets simply because it is so configurable that it can be a server OS, a palmtop OS, a desktop OS, or even part of a mainframe system.
So I don't think feature-thinness is a problem; I think it is a philosophy that when applied correctly (as CVS and Linux do) that results in software that can do more than the most feature-rich bloated closed-source software out there.
In Open Source, one usually has an issue with the software (like a bug or there is something I want it doesn't do) so one fixes it or logs it in a bugzilla.
In closed source (usually commercial sw) one thinks how to sell the next version, i.e. what to add to the features list. Features sell.
Conclusion: OSS developers don't have the drive to come up with features. No wonder OSS doesn't seem to innovate so much.
Yesterday was the time to do it right. Are we having a REVOLUTION yet?
Egad! Are you completely mad?
Seriously. Anything over the
complexity of a few equations
and inserts, and Word starts
to annoy me to the point that
I froth at the mouth.
I really wish there was a
version of Framemaker for
Linux, though. Sinff.
There is no normal curve, right? Just two tails hanging in space, six standard deviations apart.
On one hand you're banging out straight ASCII on the world's most overengineered Selectric, and on the other you're twirling your mustache deviously as you hand-set complex equations and twiddle with the kerning between the H and E in every alternate instance of "the" just for the sheer hell of it. Anything between those extremes is a bunch of manufactured demand whipped up by marketing drones, am I right?
Incidentally, what's the hand-hacked physics-paper equivalent of salting your prose with asterisks and scare quotes? Do you paste foil stars on the paper, or throw in giant exclamation points every now and then, or what?
you'll still have a cdrom drive. Failing that, you'll still be getting something in the mail from AOL.
Cars were more than 20 years old before Henry Ford popularized them.
selectric circa 1978. My mustache isn't twirlable. I've never bought foil stars. I don't recall using exclamation points, giant or otherwise, in other than a Strunk and White approved manner, but yes, I do default to old usenet habits when posting online, which has nothing to do with physics papers.
And yes, marketing drones whip up demand for "features" that already exist as available technology so that they can add them later to resell the product. It's called planned obsolesence, it's existed as an overt business policy since the 30's. It's well underdstood, they even teach how to do it in business schools and it works.
If you would prefer I stick to MS products everything I've said of vi is equally applicable to notepad. There isn't a single feature of Word that can't be implimented in notepad with free tools as well as vitually any feature you can *conceive* of. Throw in a little MFC or VB and you can even attach buttons to them to make them "features."
Features are *so* trivial that people who aren't even really programers make them up by the dozen, on the fly, just to use once for a special case and then throw away.
You can download them, literally, by the thousand.
Now go paint your house or it will rot before the week is out. I know. People who sell paint told me so.
KFG
The parent to this post is a prime example of the rampant elitism in the open source community.
So someone has suggested certain features and what is the response?
"You don't really need those features and you are obviously stupid for even asking for them".
Can you believe this poster actually suggests that an average user code up his own "features" and plug them into vi or notepad?
Sorry some people actually have WORK TO DO they can't sit around on their lilly ass reimplementing features that have been in a commercial product for years.
You say "There isn't a single feature of Word that can't be implemented in notepad with free tools as well as vitually any feature you can *conceive* of." What is the point of that? Should Joe Sixpack spend hours of time in the non-productive task of dicking around with notepad getting it to do basic shit or just use MS Word?
That is exactly the kind of thing that guarantees linux gets no where on the desktop. What's worth it more to a company? Have workers waste time dicking around trying to get basic functionality to work or just buy the software package that already does it? Sure the tools may be "Free" but if the user has to dick around with it for hours just to get it to work you just wasted the money you think you saved.
Just because a user isn't a vi nerd doesn't mean they are stupid either. I know civil engineers who are so much smarter than the C monkies that churn out these editors, but that's doesn't mean they are gonna blow an afternoon trying to hobble together some feature on a shitty ascii editor when there is real work to be done.
To the people that say claim there is no elitism in open source look no further than the parent post!
Essentially saying "I'm so manly when i need a feature i code it myself and if I don't need a feature neither do you".
No one seems to fathom this:
Price of commercial word processor: $150
Price of employees actually able to get shit done: Priceless
Commertal develupers try and guess what people want while open source develupers do what they know they want.
The old rule of marketting is if one person complains 1,000 are silent. Open source is sort of like that. Only implementing features wanted by vocal users.
Comertal develupment is about making every feature a user might want available.
This seams like a good idea on the face of it. But this can lead to features that aren't very useful. Scripts in Microsoft Word documents? This is helpful? Maybe but only in implementing the features Word needs.
Most features make me say "What inspired THAT?"
In the past commertal software confined itself to the features the develuper needed. Much like open source dose today. I could see the reason behind each neat hack.
But todays commertal software just leaves me cold. To many features not enough of them worth anything. Sure I'll copy the good ideas and scrap the bad ones then I have a smaller faster and for my needs better application.
I don't actually exist.
Those people who have the power to command but don't know how to produce or design systems produce requirements, not designs, not even crummy pseudo-designs. Occasionally among those requirements is that some specific software, hardware, or technique of the week be used; there's no meta-requirement that all requirements be rational. :-)
Designs are important on larger projects where the majority of programmers are not skilled in design and architecture! Even if you did speak their language, do you think Ivan Sixpack could design trusses for the bridge given just outside dimensions and strength/rigidity requirements?
Programmers vary widely in ability and areas of expertise, and most have strengths and weaknesses. Some can cobble up scripts but have trouble understanding recursion; others can code quicksort from memory while trying to do graph cycle detection makes their heads hurt; still others can comprehend almost any computational problem but crap out on synchronization and distributed computing.
...when you're writing a game...tweak the difficulty of "Easy" to something [your mother] can cope with. -- onion2k
If you make half as many typos in your code as in your AC posts, I wouldn't let my grandma touch your software!
No wonder you don't want anybody looking at your code...