"Art vs. Design" and Code 120
This text is inspired by the title of Knuth's famous series: "The Art of Computer Programming".
I have done very little programming. I have, though, been involved in the Linux movement for about 4 years.
I am really playing devil's advocate here. At the same time I am presenting some of the problems with OSS (as I see it). I don't have time to read each and every OSS paper written, so many of my ideas have been probably been addressed.
This started out as an idea on a lazy afternoon near the pool (yes, it's SUMMER in the Southern hemisphere!) I haven't done any research as to the original author(s) of nc, Eric's papers (I haven't read the C&B paper, for example).
Anyway: enough with the disclaimers. Forward!
Commercial art is different to true art. True art is an expression of the artist's soul. Commercial art is aimed at customers: getting them to buy something.
A graphic-design house is not founded to produce true works of art. Sure, there is almost always a spark of genius at the core: if there wasn't, nobody would buy their products ("they can't draw - I don't know how they can call themselves graphic designers").
Graphic design companies will thus attempt to gain a balance: keep the artists happy, but make money too. You do not expect true art from an advertising/design company. The true art is done by their staff after hours, though staff may harness this creative energy and put it into one of their projects.
The same applies to software companies: doing something because you have to will never allow you to harness your creative energies (and believe me, programming requires creativity, as many of you know). Creativity doesn't only apply to lines, colours and sounds: to come up with a truly elegant solution to a problem almost always requires lateral thinking.
So, what does this have to do with free software? Just as an artist does their best work (or at least their most creative work) away from work, programmers do their best work in their free time.
The program may not be rigorously tested (there is no time), it may not be what the client wants, it may not obey any list of standard rules (since when do you regularly use gotos in C code?), but it's creative, it's elegant. It's true art.
The Linux Kernel is a bit like a huge mural: people notice flaws, patch them up (pun intended), other people correct these in turn. Occasionally a master painter will re-do a particularly flawed section. The cool thing about this is other people's changes can be reverted easily, so a punk with a bottle of spray paint cannot ruin years of work.
Like the analogy?
I thus submit the following ideas for consideration:
- Commercial code will never be really elegant. If it is, it's
because the core programmer(s) liked the idea, and treated the
project as a work of art (just off the top of my head:
consider the 'nc' program for DOS; I believe it was developed
by Norton staff after hours... I am quite likely wrong,
though: apologies if my facts are messed up).
The next version will be significantly more inhibited (once the core developers get bored or frustrated).
It's a bit like a re-draft of an artist's first sketch: remove the way-out ideas, clean it up, make it more conventional. Make it fit for general consumption.
If it's commercially developed, it's not the software that we love.
- Free software will never be really user friendly: it will never be
fit for general consumption. Why? Because the focus isn't on
making users happy: it's on making something that works
efficiently, or that has elegant code, or is simply damn
useful (perl).
A coder hired by someone like RedHat to make a nice front end will fit into section 1 unless they are REALLY into their project.
Quite often there is a conflict between elegant code and pretty output. The fancy boot-up graphics that you see in Windows don't really belong there: it does make Windows seem more friendly though (what's more relaxing than looking at clouds). To someone like Linus, putting the code into the boot loader to do that kind of stuff irks his sense of code aesthetics.
If code is user friendly it's because it's similar to some commercial app... consider KDE and StarOffice.
OSS will never be a viable alternative to windows... having users spend lots of time trying to learn a program is costly, more expensive than windows. IT people may use OSS on their core machines, but users will never have it on their desktop: if they do, it's because someone like Corel figured out that there is a demand.
- Artists feed on each other. In some ways it is mutual respect, in
others it is competition. There will always be infighting in
the open-source community. Just as some people's minds are
wired up to enjoy 'classic' art, and other's are wired for
impressionism, there will never be resolution of the Emacs
vs vi argument, nor the Linux vs FreeBSD argument.
On the other hand, perhaps more and more will see the beauty of the other's mural: but I cannot see one mural anywhere in the future.
- There are a limited number of artists. If the open-source
idea takes off, and thousands of companies release their
code as source, who is going to hack at all of it? Not Linus,
not Alan. (Sorry FreeBeasties: I don't keep track of your
gurus!)
I believe that Netscape is already falling foul of this: there are a lot less C++ coders than C coders. I know a bit of C, but since I have no experience of OO programming I can't really hack around the Netscape source.
In short: the overall number of eyes to discover bugs is actually quite small. Unless there is company involvement (like the support IBM is giving to the Apache people) then the movement will fail. I have already asked my company if they are willing to donate to OSS groups like li.org: they said no. On the other hand they are willing to buy hundreds of copies of Microsoft programs (because it's the LAW!)
I think that one of the only ways forward here is to create some sort of communal 'D' (as opposed to 'R&D') department, where people literally hack whatever they want to... I believe that Red Hat have been doing this to some extent already, but I believe that it will work best if large groups of people finance other large groups of people. Finding sources of income here is going to be the problem
Linux is hard to use? (Score:1)
Linux is hard to use?
Sorry, pal. Linux may be different than Windows or Mac, but it takes no more effort to use these days. I mean, I set my computer-moron parents up with a Linux box with KDE installed and they love it.
Now, it's true that they're not hacking code with it, but they didn't hack code in Windows, either. They're not tinkering with the command line, but they don't need to. Hell, they even installed Netscape by themselves. They use their computer like 99% of the people out there: to check their email and buy stuff off the web.
The reason they like it so much is that I, 300 miles away, can fix it when it breaks without having to walk them through moronic wizard dialogs or phone conversations where "What does the screen say now?" makes up for my entire end of the conversation. Hell, I'll bet they've already saved a couple hundred bucks in phone charges.
Now, if you want hard to use, try to figure out how to make Windows do anything even moderately advanced. It's commercial code, but if you're trying to do anything beyond running prepackaged applications you're in for a tough ride.
Linux hard to use? Compared to what?
----
Yes, BUT... (Score:1)
Frank Lloyd Wright? (Score:1)
My favorite architects are Roger and Martyn Dean (see the coffeetable books Views and Magnetic Storm for examples). They have actually built at least the model houses for wild organic cavelike rounded homes of many levels. The design is _wild_, but at the same time, people loved it! When demonstrated at a home exhibition, people shoved past the ropes and things to constrain spectators, and roamed all over the designs, making themselves at home and happy as clams. The Deans tapped into a set of values for architecture which to my knowledge _still_ have not been fully explored.
Of course, these homes they made have absolutely horrifyingly nightmarishly bad acoustics... see how complicated design is? Next stage, making softly organic comforting hobbit-hole homes _and_ keeping the acoustics good
Philosophy of Programming/Unix etc Mailing list (Score:1)
Interesting article, of course programming is an artform, and art becomes more meaningful if more people see it.
There's a good mailing list that a good friend of mine started up called (void), which is about the philosophy of programming and unix; we chat about this sort of thing there. Here are some inspirational quotes from the list blurb:
"We are what we think. All that we are arises with our thoughts. With our thoughts, we make our world."
- Buddha
"If we can dispel the delusion that learning about computers should be an activity of fiddling with array indexes and worrying whether X is an integer or a real number, we can begin to focus on programming as a source of ideas."
- Harold Abelson
"There are two major products that come out of Berkeley:
LSD and UNIX. We don't believe this to be a coincidence."
- Jeremy S. Anderson
If you want to join, mail majordomo@slab.org with 'subscribe void' in the message body, or see http://slab.org/void.html [slab.org] for more info.
Ta
Wrong issue (Score:1)
The differences in commercial and OSS code do not derive from programmers being free (or not) to choose their own projects. The differences arise from programmers being free to choose their working environments.
Right now, most OSS code is produced in spare time. Because of that, it is produced in a flexable environment well suited to artistic expression and craftmanship. Thus OSS code reflects craftmanship.
In proprietary code, the programmers do not control the working environment. Some shops are open and flexable, and tend to produce well crafted code. Others are regimented and produce assembly line code. Note that the largest desktop software producers are (so I understand) quite regimented. Thus, commercially produced code reflects the assembly line mentality.
As business starts producing OSS code, some will continue to reflect craftmanship, and others will not 'get it', and will still produce crap.
I see the same thing in other industries. In some, management likes to leverage human resources in a consistant micro managed business process to generate synergy in the buzzword of the week and thus strategize the buzzword to produce y2k compliant iso-9000 doorknobs. These are the companies that will consistantly screw up and produce shoddy products. Others hire people to work together to make quality doorknobs. These companies will be responsive to the customer, and tend to care about quality.
btw (Score:1)
Right on (Score:1)
In a corporation, I can exercise my creativity to make great applications with this technology, AND I can help shape the development of future technologies because there are paying customers out there for this stuff.
OSS is a great cause to support, but it has to be balanced in perspective - it is ONE way of thinking about things in a pluralistic society, and although it's a noble cause, it's not going to change the face of capitalism - far greater trends are already doing that.
Hmm. (Score:1)
Chefs do not need to know the physics behind how a microwave oven works in order to prepare meals. If they were required to learn the scientific/physics basis behind how everything in their life worked, they would have no time left over to do what they're trying to do.
It's all about simple economics and marketing. If you invent something and bring it to market in two different ways, one with a complex/powerful interface requiring the operator to know its details, and one with a simple/efficient interface that required little knowledge of the internals, the latter would sell to the general public while the former would sell to those that were willing to learn (or already understood) the internals of the invention.
People should not be *forced* to spend hours (or weeks or months) effectively learning someone else's specialization (that's what it is, a specialization) in order to do relatively simple tasks.
Buddy, its all about economics. (Score:1)
People KNOW that they can learn how to do the things that they pay others to do (repairmen, for example), but they CHOOSE NOT TO. The likelyhood that equipment is going to break down for them is low enough that they can afford to pay someone else (assuming they don't have a friend) to fix it.
People should not be required to learn how to repair and/or re-program the tools they use every day. The tools should be designed in such a way as to make them reliable and easy to use for its target consumer.
Another load of tripe (Score:1)
Have you ever used Debian? They consider undocumented or poorly packaged software to be a bug. Some package maintainers seem to be more committed to quashing problems in their packages than other but overall stuff gets done.
And they are most assuredly not a commercial entity.
Daniel
Linux is hard to use? (Score:1)
(btw..I don't really know many people who can 'maintain' Win95 or MacOS either, usually they come around to be or another resident computer nerd and ask for help. So my conclusion is that no software is easy to use.
Daniel
gotos in MFC vs. Linux 2.2.1 (Score:1)
Couldn't resist doing this. Draw your own conclusions folks.....
maple> grep -c goto `find
97
maple> grep -c goto `find
6097
Btw, linux is 1.5 million lines, whereas MFC is about 150k. Plus linux is an OS, so, where low-level performance tweaks are a must, gotos are more forgivable, I suppose.
Personally, I conclude from this pointless exercise that code should not be judged by its goto count.
Developers are morons! (Score:1)
Most programmers are well-rounded people, with interests in the arts. A *lot* of programmers are artists on the side; and a lot of us know how to design and build user interfaces. Take a look at the Gimp-- version 1.1 has a *great* UI. Very user-friendly. And Gnome and E have very nice configuration utilities-- very user-friendly. Far beyond the commercial equivelents.
The free-software crowd can produce whatever we want, at whatever level we want. And as OS development is evolutionary, you only see the rough first-draft of the user desktop right now. Even KDE has a long way to evolve-- but the evolution is evident right now. Just 18 months ago people were saying Linux would never have a decent UI-- now we have KDE and Gnome. And soon we'll have Gnustep. And now you prophesy that free software can't have commercial-grade applications without commercial help? That's a little short-sighted.
The source of power in all corporations are the people who produce something. In the software market, there is no cost of creation or distribution (and yes, my time is worth something-- my self-respect). So, for raw resources, software makers have absolutely *nothing* that free software projects don't.
Direction? Have you ever been involved in a large free-software project? Direction is from within, and usually better-organized and with steadier direction than corporate development. Corporate development tends to have shifting goals, based on shifting markets or changing management. Rewards? Me, I work as a DBA. I make enough money to support my habit-- coding. Am I a good coder? Not really. But I don't try to lead projects. I just follow, and help where I can.
So there is no inherent advantage to software companies over free-software alternatives. And as the free-software platforms evolve, you will see more and more users move to the easier-to-use, more flexible, free platforms.
Linux is hard to use? (Score:1)
That's just it. You had to make Linux easy-to-use. I'm willing to bet it took hours; it takes hours even for experts. That should not be. This is the one area in which Linux is lacking. Coming from its Unix roots I don't see how it can be easily fixed, but if NeXTStep and Apple can do it I suppose it's possible. The point is to make it easy-to-use without destroying the power features; this idea that power and ease of use are mutually exclusive is nothing more than a myth put forth by coders who are too lazy to do it right the first time. And yes, I do code; I know it's hard. But if you really love a project, then ease-of-use becomes part of the artistry as well. Look at Balsa. Look at the GIMP, which has room for improvement but is certainly easier than a lot of applications.
Professional Graphic Design (Score:1)
For examples of what professionals would make of the technology, have a look at Kaleidoscope [kaleidoscope.net]. It's a Mac program, so there are almost certainly graphic design professionals among the few hundred or so scheme authors. And some of the schemes look very elegant.
-- acb [not a designer by profession, though a fan of good graphic design]
Recognition at last! Programming as art (Score:1)
Yea! At last someone voices the opinion I've held since my early days at the Commodore Pet.
Programming can be art, especially if it is hobbyist code (or is "open source code" the politically correct term for hobbyist code these days? I remember when *all* code was open source by default
Sure I design code to be fast and efficient. But given a near negligible difference in performance between nice artistic code and nasty obtuse code I choose nice every time.
What makes code "nice" and "artistic"? Well, human readability first and foremost. Computer's can't appreciate art so the ONLY things appreciating "artistic" code are humans. Well commented code can be art. Multi-component systems, which have an overall holds-it-all-together style can be art. Logical code can be art (you may ask "how can code be illogical?"; I say ask a COBOL programmer). Neatly laid out code can be art. All these kinds of frills are SOLEY for us humans' benefit; most of these frills are stripped out when the source code meets the compiler.
Examples of "non-artistic" code include using different variable names to refer to the same thing; indentation nightmares; unnecisarily obfuscated code (as opposed to neat concise tricks); poorly commented code; illogically or poorly structured code... the list goes on.
I feel appreciated now! Someone else has realised that my job cannot be done by robots!
Ease of use? Try consistency. (Score:1)
Part of what makes an OS easy to use is consistency - if it worked this way in the other program, it should work this way here. Radically jumping between interface styles and widget appearances between applications jars even the experienced user - and annoys those anal people like myself who want all the programs running under a given OS to look like they belong together. (When one program won't respect the color scheme you've chosen, it's annoying and it looks unprofessional. X Window is the king of this - a typical screenshot looks like a mockup, with four or five GUI styles mixed and matched like the Screamshot. A NeXT-style window manager with Motif widgetry in one window and Win95-style widgetry in the next... a confused observer might think you've gone emulator crazy.)
The solution to that kind of scrambled interface would be to have a style guide - but that requires making all the toolkits conform to it, and the toolkits usually have their own style guides. In OSS there seems to be little incentive to make things interoperable - and far less incentive to obsess over the UI style. This wouldn't be a problem with the application coders - they should have a reasonable expectation that the toolkit provides such consistency. Just having the major toolkits look in the same place for appearance and configuration info would be a big step up - if I want an aqua-green OS, I don't want half my apps to ignore my request!
That the GNU tools on the command line are completely style-guide compliant and are fully interoperable makes this situation in X that much less acceptable. It CAN be done. Why isn't it being done?
Forced Analogy and C++ (Score:1)
This takes an analogy that is somewhat forced and then tries to draw conclusions based on it. This is a fatal flaw in the articles's arguement.
The open source as a mosaic does not make sense from an art point of view. Great works of art usually have one point of conception, one vision and one direction even when other people help the artist. This is anything but true of open source software. Many disparate groups of programmers with different objectives and different levels of experience. Open source systems grow and evolve. (Evolution would have been a much better analogy BTW). Really beautiful apps are usually the creation on one or a very small group of skilled and experienced programmers.
At the end of the day, the art analogy is a feel-good thing. We can get the same feeling from creative programming as we can get from art. (trust me - I do both). But taking the analogy further is inappropriate. People are more productive when they are enjoying themselves. But they are not necessarily being more artistic (several times I have got the source for something, looked at it with an eye to adding to it and given up becuase it was so ugly. Much "hacker" code is incredibly ugly and difficult to work with - even though the hacker probably enjoyed himself writing it.) Only the big projects get fixed by other people.
Commercial and free code
Commercial code can be very elegant and free soft ware can be very user friendly. These are massive and inaccurate generalisations based on the flawed logic of taking an analogy too far. Elegant design has major commercial advantages (massive reduction in costs) and the beauty of a user friendly design (not to mention scratching the itch) can be a huge motivation for a developer. I suspect the author may have also made the classic mistake of equating ease of use with how quickly an idiot can pick things up. Ease of use is more fundamental and affects all skill levels of users. May OSS projects have a lot of power user easy-of-use features. They do tend to lack novice user support features. But many of them are written for a particular type of user and use. There is nothing wrong with that.
C++ and C
The C++ v C problem is a real weakness in open source. An artist must learn the abilities of all their tools and build their skills, learn various techniques and study the various schools of style. The decision to limit a project to C (and thereby horribly limit your design and ability to do things) is akin to Leonardo DaVinci drawing the Mona Lisa in crayon because the apprentice who was helping him thought oil paint was too tricky. This attitude is insulting to real programmers (and disenfrancises them) and is about as anti-art as you can get. C++ is a far, far more artistic language that C. It give you so much more room to work and the ability to work quicker. Good toolkits are important as well. (Another analogy is that it is harder create a great masterpieces when you have to spend most of your time making the canvas, the brushes and the paint.)
(Someone is bound to come up with "but you can program in an object oriented way with C" or "You can write a C++ wrapper object for a C library". These are just excuses. You still lose a lot. You still have to do extra boring work.)
Having said all that I'm not a huge fan of C++. But I would use it anyday over C (for a major project). Becuase I'm want to create something rather than program in C. Python, now that is an artistic language ;-) (and easy to understand for the lamers too). Sometimes C++ is the right tool for the job and I'm not going to use C for the benefit of some lamer.
Final Quibble
At the start the author states that he has not done any research. I don't think it was appropriate to have posted his article to a public forum until he had at least read ESR's stuff.
agree (Score:1)
other can be dissapointed, can disagree, ...
because this topic is clenaly about personal opinion
:>
FLAME ON---- :) (Score:1)
so maybe there will be more able people in future (in handling computers) but for example how much people realy know (understand, etc.) how engine in the car works and therefore how to correctly and efficiently use it? how much people know how TV set, CD player, ... works? how to use it?
we can argue about that; we can flame about that but facts are plain
on the other hand, i'm not advocating lamers: i realy do not like people doing something they do not understand and i hate when they are arguing with experts (in that particular subject) ...
like "common" PC users argue about how Windows are stable and efficient and
What a great argument for avoiding Linux (Score:1)
Thing is, I'm a Linux user, I enjoy developing on it and I really really want it to succeed. But it's never going to succeed if it doesn't get easier to move to, and the way you're talking, it never will.
The sooner that a load of ignorant flamers get off their "It was easy enough for me to install, so it doesn't need any more work" horses, the better it'll be for everyone.
User friendliness can be aestetical! (Score:1)
never conquer desktop market, just becouse
writing user friendly program is too boring
and gives too few aestetic pleasure to author.
This is true with already available programming
techniques, like Motif, Qt or even FLTK.
But this is not so true with Tcl/Tk or SmallTalk.
When language and basic concepts supports GUI
programming, writing friently code is no more boring than writing efficient code and gives
no less aestetic pleasure.
Only one problem remains - invent metaphora of
GUI, with would be as powerful and simple
as shell metaphoras (IO redirection and regexp)
in CLI.
Once it is done, writing his own GUI would
be available for average user and OSS GUI
would prosper.
true but too sweeping (Score:1)
but then i also think you forget the third category: between artists and drones there's a broad group of craftspeople whose satisfaction comes from the artists' criteria of elegance and necessity, but whose domain is use rather than contemplation. that's probably as true for coders as it is for designers (and people who make wardrobes), and in each case the thing created finds its expression by working with people.
for a truly elegant solution, in the vast majority of cases, you have to think about the cycles that people waste as well as those wasted by the machine. sometimes a perfect minimalism can achive both (i wish), sometimes one suffers from clutter for the sake of the other.
the problem, as always, is how to bind together diverse efforts and motives. i suspect that the bazaar actually suits craftspeople better than any others, whereas the output of artists tends to end up hung on the walls of the cathedral...
flawed analogy (Score:1)
The analogy falls apart because graphic art serves no purpose other than to be art. This is not to say that art for art's sake is a bad thing, but just that art does not strictly serve any pragmatic purpose other than to please the eye.
I think a better analogy is found in architecture, which (for my money) more accurately captures the dichotomy of art and science.
Of course, exploring this analogy would be the stuff of yet another feature, so I leave that to someone else. However, some of you may get a kick out of Ayn Rand's ``The Fountainhead'' which explores what it means for architecture to be great.
RE: flawed analogy (Score:1)
I had intended to say that about pure art (and definately not ``applied art,'' i.e., graphic art).
Sorry for the mistake, and thanks for the catch.
FLAME ON---- (Score:1)
One point - you're assuming people are computer illiterate. As literacy rises, so too does the ability to comprehend and use complex programs, such as linux, and it's suite of tools.
'nuff said.
--
bleak outlook... (Score:1)
Beware the Graphic Designers (Score:1)
However, it is not good interface per se. A good interface explains itself to the user and uses visual cues to transmit information quickly and accurately. It has nothing to do with glitz. It gives you maximum information return for the time and cognitve-work investment of interacting with it.
Those secretaries... (Score:1)
I think the main problem is that people refuse to learn things that are involved with what they're doing - and then get annoyed when the computer does what they told it to! I do believe that technology should be accessible - and that people should learn the stuff that they need to use for their purposes. I know how to use a unix system, but have no reason or desire to learn how to install and configure one.
While technology shouldn't try and please the lowest common denominator, it also shouldn't require a PhD in order to use a word processor.
Leilah
um... (Score:1)
Leilah
That's _not_ TWICE (Score:1)
Try checking it out before copping the attitude next time - surely your 10+ years of technical experience has taught you the importance of checking for errors?
You might be able to cure some of that misplaced cynicism with a good dose of reality. Hopefully you will learn that with time.
Leilah
They should!!! (Score:1)
I am not arguing for an "idiot society". I am arguing for a society of skilled people who work together to meet their goals.
Comments in the wind... (Score:1)
Defense of "More C coders than C++ coders" (Score:1)
Division of labor, anyone? (Score:1)
Counterexample (Score:1)
To me, all the best art is craft. Failure to take objective criteria into account when creating art results in art that communicates nothing to anyone besides its creator.
As a side note, I think much of the art in our museums today that's less than 50 years old is exactly this way. Perhaps it's just the fact that the 90% of everything that's garbage hasn't yet been culled.
I disagree. (Score:1)
I also disagree that simply because one is being paid to program, or is being told what to create, that it makes the final product worth less. I personally can work better and more creatively when I'm given constraints to work within. Sit me down and say 'just program something useful' and you probably won't get much out of me.
And lastly, "(Sorry FreeBeasties: I don't keep track of your gurus!)". That's because we don't have any. I personally don't see the need to worship one. The creators of FreeBSD are typically low-profile, and that's the way I like it.
just my 1.75 yen...
-lx
That's TWICE my reply to this (sigh...) (Score:1)
-lx
Commercial Soft CAN be creative, too (Score:1)
What's more, don't believe that a good user interface implies that the coder has done a nice piece of code. Two programs can look very alike ( from the user point of view ) and be anyway of very different quality. ( You might thing that I'm just stating rather obvious things, but I've come to think that even people with many years in our profession don't realize that point, nor see so clearly its self-evidence ).
Alphonse Mucha, N. C. Wyeth . . . (Score:1)
You do not expect true art from an advertising/design company.
Speak for yourself . . .
. . . Charles Rennie Mackintosh, Frank Lloyd Wright, the Jugenstil, Maxfield Parrish, probably a dozen others.
Software is in no way analagous to "fine art"; it's very, very close to "commercial art". Most of the points raised in the essay seem valid to me, but let's not go overboard and over-generalize ourselves to death.
My two cents, anyway . . .
Linux is hard to use? (Score:1)
I think you just proved his point.
Along similar lines, my wife is using my FreeBSD box just fine. But there's no way I'd expect her to maintain it.
How to help? (Score:1)
So he isn't a tool. (Score:1)
The idea that an arbitrary naive human should be able to properly use a given tool without training or understanding is even more wrong for computing than it is for other tools (e.g. automobiles, airplanes, guns, power saws).
-- Doug Gwyn
Another load of tripe (Score:1)
> Here I agree with you. There are extremely few
> exceptions to the rule that everyone enjoys
> coding more than packaging, testing, or
> documenting. Thus, when your "workforce" has
> _total_ freedom to pick what they work on (yes,
> this is the theme I said I'd come back to) these
> other tasks get pretty short shrift. The result,
> one might think, is that the core code is all
> elegant and pretty but the ancillary code and
> the non-code are either nonexistent or shoddy.
> In actual fact, the core code isn't that elegant
> or pretty either.
Let's be honest with each other: the majority of code isn't elegant. Not from anywhere. Software from everywhere has proven itself to be good. Free software has proven itself to be (generally) free from the direction of the marketing department more than commercial software has.
As far as being user friendly, it's best to observe the classic wisdom that "all generalizations are false, including this one". What you're saying is just completely bogus. No friend of mine (qua friend) has tied me to a chair and made me do only what he wants me to do. Generally, no free software has either. Lots of commercial software has. Sure, the commercial stuff put explicit labels on all the nobs so instead of reading the manual in a book, I read it on the device. This is arguably more convenient. It's also not limited to either domain (free or commercial).
The catch is that the majority of the labels on the nobs in commercial software are poorly designed. The labels are vague quite often. There are so many "user friendly" apps that I've had to go to a manual which is generally fairly crappy because the software is "user friendly". I couldn't find what I wanted to know anywhere. And let's not forget those utterly useless "user friendly" error messages. Some of them make me wonder why the programmers didn't just use a smiley face or a frowning face instead of text.
And what happens with all these "user friendly" applications? Geeks figure it out themselves, and everyone else buys the books or asks the geeks. I've fixed win95 problems for people way to much to buy into the idea that it's easy to use. It's easy to use for non-technicle people because they aren't the ones who deal with the problems, we are. An F14 is easy to use if you are going for a joy ride and the pilot is the one flying the plane.
Besides, have you seen Econf (I think that that is what it is called)? It's the all-new half-price free-trial-offer open-source buzzword compliant configuration editor that looks both (a) really pretty and (b) really easy. It's open source. It is free. Look at gnome. Look at KDE. Hell, configuring the kernel is 9/10 times a brainless activity (just do a make xconfig and click on the pretty buttons with the nice labels next to them, it's what I do). Why don't we all get over our X will never Y nonsense. Life isn't black or white, it's a giant and complex checkerboard, you'll find pieces of black and white all over the place.
Oh, about debugging, that's what lots of users do, they test the edge cases. After all, with OSS someone uses every edge case, that's why its there. It's just about never the case that every user only uses 90% of a program (or even 99%). If you ever read Changelogs, how do you think that all those absolutely obscure bugs are fixed? (hint: someone tried the edge case and found them.)
To sum up, I'll use a paraphrase of a quote from a movie which I only saw 5 minutes of and never caught the title: "It's hard all over". If anyone has a tragic flaw that will be its downfall, it's commercial software for having the marketing department and the shareholders. OSS can do anyting that it wants to, and someone wants to do everything.
Another load of tripe (Score:1)
However, part of what you are missing is that OSS and what you were doing are catering to two different client bases. OSS is catering to the group who are all capable (or at least, in general, capable of learning) of debugging their problems. Commercial software is, for the most part (from what I understand of the situation, at least) catering to non-programmers. Thus the target community takes part in the debugging process. What's been happening, I think, is that a lot of people have been realizing, "Hey, this stuff has lots of features and works pretty well. Sure it isn't perfect, but neither are our alternatives." That's at least quite true of the Linux vs. Windows world. Having Used different versions of windows for years, it feels like they didn't use debugging tools.
There are, from what I understand, programmings shops that built ultra-high quality systems that were virtually crash-proof, for those systems that really are mission critical (e.g. NASA). That isn't the majority of people. Most people don't have that type of budget and don't need that kind of stability. If you're operating system hosting your web server goes down once every two or three years, that's fairly acceptable, considering that we live in an imperfect world. Most likely, you'll down the box yourself more often than that. Properly configured, I've heard stories and seen figures on Linux boxes with multi-year uptimes.
Please don't misunderstand, I'm not trying to put down commercial endevors. The fact that many corporations do act sort of liek they are evil does bother me, but that isn't all corporations. I've worked in a bank that was quite humane, at least to its employees, and it seemed to bend over, at least close to backwords, for its customers. My point is that OSS is a different method, it's a different paradigm (God, I hate that word, but I can't think of one that's better).
It's all a matter of what you are trying to accomplish. I don't think that anyone in their right mind is suggesting Linux on a pentium to control NASA's next deep space probe. On the other hand, I hope that noone is suggesting a multi-million dollar hyper-tested crash-proof system for a businesses web serving, print sharing, file sharing, or desktop environment. Everything has its place, and frankly, I'd prefer OSS-debugged software anyday over the barely debugged Windows software that's the alternative (or at least software that behaves as if it was barely debugged).
Different tools for different jobs. Btw, what makes you think that RedHat won't eventually hire some people to run debugging programs on Linux & associated programs?
"Art vs. Design" thoughts (Score:1)
being split into Commercial Art (bad) and High Art (good). Such a split is
hundreds of years old, of course, predating code writing by quite a bit.
I noticed the author drew the demarking line by intended usage or whether
the creator got paid for the work. Commercial Art was strictly to persuade
the masses to part with their cash. "High" art was for its own sake. Kind
of an existential view of art, don't you think? Also seemed a bit of
artist-elitism or snobbery. Like having a practical use denigrates
something. To be "art" it has to NOT have a practical use.
Historically, the lines weren't all that well drawn, as you know. What we
consider High Art now was very often done 'for hire'. Michaelangelo did not
paint the ceiling of his own bedroom, just for fun, in his spare time. He
was a paid professional, hired to perform his craft in accordance to the
wishes of his employer. Could Michaelangelo have put dragons and monsters
on the ceiling of the Cistine Chapel if he wanted to? Of course not. He was
hired to put a picture of God giving the divine 'spark' to Adam up there.
Seems to me, what separates "Art" from mere decoration or mundane craft, in
history, is not whether the artist got paid or had to follow an employer's
directions, but rather, it was the skill or "gift" of the artist. I mean,
you can imagine that some poor sot could sit in his basement studio
painting all the really awful paintings he wanted (maybe dragons and
monsters), following his own inner voice (existentialisim can't provide any
value assessment here), but his product still wouldn't qualify as "Art".
His having not gotten paid for his bad paintings won't elevate them to
"art". They're still bad.
Staying in the visual arts analogy awhile, it also seemed the author was
quietly presuming that one of the features of "art" was that it was NOT
intended to do some job. Done for its own sake and not to satisfy some
'customers' or a market. Again, existentialism leaks out. Elitism too.
But think about it. Does visual art (like a painting) really serve NO
purpose? Did Matisse or Van Gogh, or Beethoven or Goethe, for that matter,
really create their works of art for NO purpose? Of course not. Part of
the definition of good or successful or recognized art is how well that
creation fulfills its purpose. In many cases, that purpose was to
communicate some message. Maybe the message was deeply personal, but the
"art" was intended as a means to communicate that message. There had to be
an intended "customer", someone who would receive the message and
understand it. (hopefully)
Back in the world of programmers, I can see where there is a commercial
priority to produce a product that will satisfy some market need and thus
provide income for the programmer and his employers. Like hired farm
hands. They're there to help bring in the crops. The farm family benefits
and pays the laborer's wage. (sorry. slipped into another analogy) If the
farmer wants his beets dug up, that's what the laborer does. It isn't
elegant, but it was the work to be done. The laborer doesn't have to like
beets, or like digging. His preferences aren't in the equation. Most
programmers, I figure, are like the farm laborer. Their bosses have some
work they want done. It might not be elegant, but they're willing to pay
the guy to do it. No big deal. Beets gotta get dug.
Something that seems at play with painters or programmers, is that there
are some guys (or gals) who are just plain good at their craft, be it
painting or composing, or writing code, or digging beets. In any craft,
there are a few gifted souls who excel at the work. Then, there will be
people (maybe most) who are good enough to stay alive and below them, a
body of hacks who dabble or struggle at it, but really aren't good enough
for anyone to value their work. Such "artists" can be loners, developing
software on their own, of course (Some composers in the 1700s and 1800s
were wealthy aristocrats who could afford to dabble, not worrying about
bills or food, but they happened to have been good at the "art" too). Some
"artists" can be employed to do someone else's work for them. (Mozart was
hired to write several concerti for flute which have stood the test of time
as "art" -- but Mozart hated the flute and did not enjoy writing for it)
Still, a true artist can create art, even if 'for hire'. Middle-of-the-road
artisans (note that I avoided the use of the Artist label) can still
perform work worthy of pay even if the result is heralded as "art".
I think the author hit upon one of the keys, though. He referred to
programmers who had a passion for their project. Even hired-gun programmers
could do great work, he said, as long as they were "really into" their
project. Such passionate involvement CAN produce better results. Someone
who really cares about the project is just more apt to put in the personal
investment to achieve quality. A person who really couldn't care less just
isn't going to go that extra mile. And, with Mozart as a proof text, the
truly great ones can create great stuff even when their heart ISN'T in it.
In that we are told to "do all things as unto the Lord." It seems we are
expected to MAKE ourselves passionate enough about the task -- whatever it
is -- to do a quality job. God didn't make us all Mozarts, however, so
expecting passion alone to produce "art" will be disappointed. Still, as a
programmer with some skill, one can still see ways the task at hand could
be done better, more simply, or more 'elegantly'. To intentionally avoid
taking these steps may be a directive from one's employer..."Don't spend
any more time on that". To intentionally do a feeble job when you could
have done better (and were actually being paid to do better) would be the
irresponsibility that the Bible cautions us against.
To sum up, (bet you were wondering if I ever would, eh?
assertion that free software is inherently of better quality than paid-for
software, seems flawed. Good software, as he also notes, comes from passion
or commitment. Same with anything else created by men's hands. Whether the
guy got paid or charged for his product, doesn't seem a vital (or even
salient) part of the equation.
Stated simply (Score:1)
If you create something because you love to, because it inspires you, the creation will be superior.
The degree of elegance and artistry in a (so called) finished program will be directly related to the degree of freedom and heart involvement experienced by the developers in creating it.
Whether or not a program is commercial or open is actually irrelevant. It's just that, generally speaking, a commercial environment is less conducive to following your bliss. Some people are lucky enough to get paid what they love to do. Most are not. If we as a society can learn how to redress that balance, things will change. I'm hoping the GNU/Linux/OSS movement can help do that.
My 2 cents.
Linux is easy to use (Score:1)
The Point of open source? (Score:1)
I think that the thing about opensource that I like most is that its impossible to say that Opensource or freeware projects will/will not ever be something.
The simple fact is that because its open there is room for people to mould it to whatever they want - I have yet to contribute to any OS project but that has mainly been due to the lack of a machine at home (and more reacently time).
Saying that OS software will never be user friendly is not in my opinion a valid statement... what I am waiting to see is the graphic desginers of the world join in... people who enjoy making usable cool interfaces.
I had a long discussion with the graphic designer in our office a month or so ago... we both choose our professions because we wanted to be magicians...
The difference is I wanted to make things happen, affect forces, move things, blow things up, etc...
he wanted to be a stage magician and produce the gasps from the audiance.
Opensource will never become a viable solution for the general domestic user as long as it is purely devleoped by coders... my hope is that sometime soon it will attract some magicians who specialise in the glamour which the home user wants.
Tom
So is a VCR (Score:1)
The result of all this innovation? Blinking midnight.
And you expect these same people who don't set their VCR clocks because they're "too complicated" to take the time to learn Linux? Is an AOL for Dummies reader really looking for the power of the underlying OS?
Normal Windows users don't spend a whole lot of time working with the registry or writing batch files. They "don't do anything useful." Those, like you, who are frustrated with such limitations already know about (and probably use) Linux.
Right now, Windows provides the easiest methods for setting your clock and taping Matlock. Linux may allow you automatically strip commercials and sort episodes by original air date, but you'll have to press a few extra buttons to get there.
And people are afraid of buttons.
-tak
Objections and agreements (Score:1)
I think that your point #3 is pretty accurate. Personally I use Linux at home, but I'd hate to see FreeBSD go away.
Point #2 makes a big assumption: that no programmer is interested in user interfaces. I think that's a bad assumption. I've no data to back it up, but it seems to me that the existence of things like KDE and GNOME indicate that there are programmers who like making things look as good as they work. And I think you underestimate the consequences of OSS programmers just plain getting ticked off and saying "I can do a better-looking job that that!".
Point #4 makes the assumption that the number of programmers capable of understanding the code is constant. I think that's wrong, and that as more and more complex code is available and people get more used to looking at code we'll see more and more people who understand it. I do know that, over the years, I've gone from being able to handle a few thousand lines of code at a time to a few hundred thousand lines. I can't be unique in that progression.
They should!!! - Do you? Yes (Score:1)
I'm sorry, but there are so many hours in the day. Accept the choices people make and remember - it may only take a couple of minutes for you to understand, but that is hardly a guarentee that they will pick it up as easily.
No they shouldn't (Score:1)
...or a plumber?
...or an electrician?
You may know a tiny bit about plumbing, cars, and wiring to be able to do simple stuff but can you rebuild an engine, install a new pump, install a new breaker panel. Huh?
Get the point?
Consider it a service industry.
Your mechanic may not use a computer for more than printing bills, but he fixes our cars and we fix their computers.
I'm sure at the end of the day mechanics sit around at a table discussing what non-mechanic idiots are doing to their cars!
Commercial vs True Art (Score:1)
Actually you are professing a Romantic concept of art which is mystical and worth not a nickel. Art is about expressing beauty or truth, according to the values professed by the artist's culture -- or "climate of opinion".
As to the Romantics the most important thing was one's own sentiments, their concept of art became attractive to all egotistic artists (almost all of them, as they are common people and not a bunch of altruistic angels) and is perpetuated until today, with much loss to beauty, truth and even communication (expression) in art.
Free software should not be Romantic, even if Idealist.
Linux is hard to use? (Score:1)
Ease of use? Try consistency. (Score:1)
Or to put it another way, there have traditionally been so many different window managers, toolkits, etc., etc., etc., each of which had their own way of setting preferences, that there was no hope of picking a One True Configuration Mechanism that everyone could write to.
Come to think of it, you do have a point after all. After all, the Linux community has been able to standardize on things when it really wanted to. It's just that a standard UI has been a low priority (as well as being something which tends to be highly personal, and thus has resisted standardization).
Personally, I have hopes that KDE and GNOME will change this. If one writes a Linux app, checks for one of these being present, and uses its settings to pick colors, widget styles, fonts, etc., one's app will respect the user's global config settings on a (comparatively) large proportion of Linux boxen. (I'm a bit ignorant on the guts of these things, but it might be possible even to support KDE and GNOME, at least partially -- at least up to using common colors and fonts (common widgets may be too much to hope for).)
How to help? (Score:1)
I find that the free software community is most intractable on certain issues. I sometimes observe a subtle bigotry: 1) the belief that programming is inherently superior to other skills, 2) the belief that free software only needs to be for programmers. I have encountered that bigotry but mostly I encounter many people who are simply crazy busy with their appointed tasks. Be prepared for the "programmer prima donna" experience, but don't feel that you ever need to genuflect to the "elect" or to apologize for yourself. Good programming is a team effort that involves the skills of many people. There are many astute members of the free software community, who understand the need for teams of people, of many talents. At this time, there is a severe cultural bias against non-programmers, but the situation is improving. Ego based programming is slowly giving way to ego-less team based free software efforts.
Your goal should be to find a free software team where you can volunteer your help. Pick a free software product that is of interest to you. You can learn the product and report bugs and offer suggestions to the maintainers. Offer to write some documentation. Offer to create flashy interface components. Use your existing tool set to create compelling, multi-media tutorial and reference content. Use your experiences in discovering free software, as fodder for your work.
I assume by your question that you do not want to learn programming. It would be easier for you if you were willing to do that but you would have to give yourself about six months for such a task. Unless you really want to do this, I would advise against it.
You could try to fit in by using the tools provided on Win95 but I would generally advise against that approach, because your involvement would be too peripheral. You will probably want to install GNU/Linux and begin to play with the free software tools. If you have at least 4GB of hard drive, it is a simple matter to partition your hard drive to contain multiple operating systems. You will have to learn some simple system administration techniques. Various listservs and Usenet news groups will be helpful. Give yourself about three months to complete this task. You will need to pick a distribution. I am using the Debian distribution because I want its copyleft purity. I am considering switching to the Redhat distribution in the hope of getting easier installation.
If you haven't done so, I recommend a visit to the GNU project's site and the OpenSource(tm) site to study the philosophical underpinnings of the free software culture.
To find good tools, I recommend the linart listserv as a nice way to connect with other graphic designers.
You will need to pick a graphical interface. I recommend the Gnome interface and its tool set. In fact, this may be the best place for a graphic designer to offer assistance. The Gnome interface is under active development and may become the foundation of the graphic designer tool set. If I were a graphic designer, that is what I would do.
This post tells you where I have been and where I am going. Good luck in your journey. I encourage you to hang in there, because the free software community is in dire need of your talent.
A two minute genius! (Score:1)
They should!!! (Score:1)