Some rambling on "expert" programs...
Typically, people think that "expert needs" need a complicated and powerful interface.
Well, that's true. But "experts" also need an easy interface to things. A good user interface makes easy things easy, while not making complicated things impossible.
A good example on this misthinking: A clueless computer book author once described EDLIN.COM (a particularly hard-to-use editor) as "primarily intended for programmers". Now, what did real MS-DOS programmers use? Not the "hard" editor, but rather a simple but powerful editor called qedit.
Do experts choose their work software by their unforgiving interface? No, they buy what they buy to get their job done.
I don't need to invent a new type of drill to make a hole to the wall, I can buy a pre-packaged, ready-to-use drill and guidebook "How to drill holes to your walls without electrocuting yourself, causing pipe leaks or collapsing the whole building".
My job? Graphics and web design, mostly. Some years ago, I would have gladly bought a good graphics program. Nowadays, I use GIMP. I chose it because it costs less than other programs and gets my job done. It's also a good example of good UI design: It's easy enough to learn, but even true experts can find more and more new cool features under the hood. GIMP is a very powerful program for "dumb users" and script maniacs alike.
I'll take two examples of my experiences here. Both are about things that I'll rather do in Windows at the moment, mostly because the software is, I think, too expertish on Linux side.
Sound editing. I have found an excellent non-linear sound editing tool for Linux, and it's called Ecasound (comes with well-equipped distributions). Very cool for making all sorts of modifications to sound files. Problems? Yeah, it's cool that I can do all sorts of effects from shell scripts, probably cool if I'm mass-converting stuff and need to add same fade-in/out effect on all files, but I don't want to remember how to write a kilobyte of commands to do that for one file! There are not too many interesting GUI sound editors for Linux...
Video capture, editing and encoding: Linux video capture works - in theory. Looks like I need a vastly faster disk drive and stuff for that, though, and the capture software (streamer) isn't too forgiving and segfaults all the time. Video editing software (Broadcast2000) is nice, but rather... clumsy. (If you're making an UI, at least make it usable and obvious...
Encoding MPEG program streams is an entirely new chapter, then. This is, I'd say, illegally hard. For example, how should it work on command line?
$ mpeg_encoder -v --profile=videocd videoclip.avi videoclip.mpg
Encoding MPEG-1 program stream
videoclip.avi: AVI, MJPEG compressed, 320x200 @ 25fps, 44100 Hz 16bit 1 channel, 37542 frames (00:25:02)
INFO: Resizing video to 352x288
INFO: Splitting audio to 2 channels
Encoding video stream, frame 3137/37542 (8% done)...
That's how. Now, how does it work in Real World? I would need to "explode" the AVI/QuickTime either into separate frames and sound file or separate QuickTime video (soundless) and .wav audio files, which requires special tools.
After three hours, a 10-second test clip that I captured was MPEGed. I used streamer (part of xawtv) and mpegtools packages, and the quicktime clip was split to video and audio parts via broadcast2000. Video picture flickered, was WAY below designated framerate and sound was out of synch. But hey, I wasn't an expert, maybe that's why.
Never mind I had never had such experiences in Windows98SE with "amateur" drool-proof tools like VirtualDub and bbMPEG. I have no idea do the professional digital video people have that Linux-style hell with Adobe Premiere... but hey, they're professionals, don't blame me, I just wanted to convert some TV programs into VideoCD format.
Now, I'm not saying this stuff totally sucks. It's just painful for the uninitiated to use! All I wanted was to capture some stuff and store that as VideoCD-compliant MPEG. In Windows (and Mac, I'm sure), no matter how "expert-preferred" or not the program is, the simple things are simple. In Linux, it seems, sometimes the painful tasks are painful, but so are the easy tasks.
Yes, I know, the main reason why people haven't made proper tools for Linux is that they're not needed here. I have seen a big attitude problem here: For example, when some people asked support for SBLive!'s some arcane features, people just said "who the hell needs that?" Yeah, just make the drivers capable of playing MP3s, keep 99% of the users happy...
If there's anything you should remember when making stuff, here's the thing: Simple things simple. Hard things not impossible.
-- Weyfour WWWWolf, a lupine technomancer from the cold north...