UserLinux Proposal (And Analysis) Now Available
Lucky writes "Bruce Peren's idea for UserLinux was much discussed on Slashdot some weeks ago; however, there was no formal proposal. Linuxworld is running an analysis of the proposal and links to the first draft."
Well, Fedora does the distinct advantage of existence (sorta)...
Roving Web-Teleoperated Robot
Why not a linux-games CD, for example?
There are tons of games on freshmeat.
Generally linux distributions are too scared and following the SYS-V standards: init scripts, a compiler, a shell, GNU shell utils and that's it. No innovation man!
I'm not stuck on the UserLinux name, and would listen to alternatives. I proposed gnUserLinux, but RMS didn't like it! He feels that having the GNU up front would signify that it's an FSF official project. UserGNULinux doesn't roll off of the tongue quite as easily.
I'm wondering why these ideas just can't be incorporated by the Debian project itself. They have a desktop subproject, why not just rally around the Debian banner ?
"Based on Debian" is great, but why not convince the project itself that this is the direction to go? Wouldn't this do nothing but improve the distribution? Who would be against that?
* GUI everything: If it's not a system crash, the desktop PC should be able to handle everything in GUI. Perhaps console programs that have a GUI counterpart (you run guiFdisk and you get a pretty "partition magic" type interface, but the real work is done by fdisk). Both parts would probably need to be written together for this to work seemlessly.
* Look to Windows. I hate to use them as a Linux standard, but seriously! If Microsofts 'Distribution' can do it, UserLinux needs to at least take note of it. Where Microsoft is criticized, Linux in general needs to be careful. I'm not just talking about critisism FROM the Linux comunity, but major distributions need to keep tabs on what excites/displeases regular win23 users.
* I don't know enough to comment on how the system should keep tabs on packages, but it would be nice to be able to make sense of dependancies. This isn't a specific recomendation, just a general thought: remember the "device manager" tree in Windows, something like that with at least two tabs. One would have at the top level only packages that have no dependancies. The next level would be packages that directly rely on them, and then the packeges that rely on them, and so on. The other tab would work the opposite direction, starting with a list of all packages and branching into the packages that they rely on. Perhaps the user would even be able to click on a package and get more detail. Something of this nature would allow users to get a sense of 'whos who' among their packages.
* Shoot for the next generation Linux, but do it while aiming at a more distant target. It would be very nice if 20 years from now UserLinux was not a hack upon a hack to keep it up to date (not suggesting that anyone else is).
* Don't lose track of all the user input. This is probably reduntant for me to say, but I'll say it anyway. Michael Collins who rode Apollo 11 wrote in his book "Carrying the Fire" that he kept a notebook and everytime something ocurred to him about the mission he would write it down. If he was in a resturaunt, he would write it down on a napkin, take it home, and copy it into his notebook. He refuse to launch until every concern in his notebook was checked off. Keep track of all good user input in one place.
Finally,
GOOD LUCK!!!
("You're going to need it.")
I think part of the point of UserLinux, and standards in general, is just to tip the scales when less involved developers make choices.
When I'm developing software I frequently come to a decision point where there's multiple protocols, implementations, or standards I can support. I often (usually!) don't care about which one I use, so long as it's not insanely bad. For example, I don't care where my program's files go, so long as I can find them. I don't care what port I use, so long as it doesn't conflict with other programs. I don't care about the file format, but it would be nice if other tools could handle it. And so on.
Standards make it easy to make a decision in these cases. Because lots of decisions are important but not useful. Let a standard committee figure it out for me -- whatever important details there are that I don't understand, they can think about those. And when they are done, they don't have to present a justification of why they are right -- they just have to tell me, the developer, what I'm supposed to do.
Competition can be useful. But only when it's interesting. I know, things that are interesting to one person aren't interesting to another. I don't care about exim vs. postfix vs. qmail, but I'm sure there are people who care very much. I guess part of a standard is a way of making both of those possible -- making it so I don't have to care (because they all talk SMTP) while another person can make decisions that are useful to them. Of course, SMTP is only a start -- I like /etc/aliases too, because it's easy to understand, but it's also limited. A growing standard might extend that -- and well it should, because having a single way to express aliases would be very useful. In this way a standard can grow, and slowly pick off the pieces where useful diversity doesn't exist (only annoying diversity).
I think UserLinux could be successful if it finds low hanging fruit first -- standardizing boring things, where the participants are easy to convince. There might be things that are more useful to standardize (like a GUI toolkit), but down that road leads certain failure.
I am also more than a little dubious about the announced Sun-China deal and how it will really play out.
Bruce
Bruce Perens.
Don't throw every application into it. As a counter-part to the "gui everything" I think its important that we at some point have a distribution that's is fully and transparently integrated. No more merely cobbling great products together. Success will mean true consistency, maybe then the rest of us will see that its not all that bad.
Quack, quack.
Windows is not what I would consider an ideal end-user experience. Why not look at the 20 years of history of the Macintosh desktop computer, as well as the more recent experience and "lessons learned" with MacOSX. Apple may have created the most beautiful and well-behaved *nix GUI of them all (not like there isn't room for improvement there, either).
Just a thought.
I am all for an Enterprise Debian, I think most companies would also prefer a professinal open solution to RedHat/Novell/Sun. Most developers would.
This project will obviously address the needs of it's sponsors, reading the paper it sounds like this is a for a desktop replacement for Windows, why not be more specific about your sponsors needs. As for KDE/GNOME didn't FreeDesktop address this? What is the future plans for your sponsors? How often do they wish to patch, how often do they wish to upgrade etc etc. More info.
What happens when other orgs want their version of Debian Enterprise, say an LTSP version or a MOSIX cluster? Do we have multiple Enterprise Debians?
I think you will need to be far more strict than you imagine to cut down the packages used. I'm sorta thinking a new release of debian that things from Debian-Stable get promoted from. Or indeed a subset of debian-Stable.
Why not build a testing framework as your version of Linux? Take Debian-Stable, reduce the package count to a minimum. Write the AUTOMATED test. Then anybody can write software for your system. The validation is that after they've installed their software your test framework still executes correctly. Test early, test often.
Cerifitcation will have to happen on many levels. Hardware players IBM,Sun etc need to certify your code. Infrastructure software needs to certify your code. Apps software needs to certify your code. Developer/Admin/User certification will need to be available.
Make no mistake $1m a year is not a lot of change and this is a _HUGE_ undertaking.
Here's how I understand this project: UserLinux is not meant to build a whole new user-friendly distribution.
The purpose, it seems to me, is to apply the distributed, free development model of Linux to services. To prodive a large community of low-to-zero cost consultants who can answer questions, provide fixes, and write documentation.
The target, I'm assuming, is that grey area between home kernel hackers and enterprise-size corporate entities.
It's for the groups who can neither hack things themselves, nor pay large amounts of money to purchase a contract and site licenses.
An example would be, say, a non-profit organization that would like to use Linux, but does not have any programmers on board, and has a very tight budget. They need support if they're going to use Linux, and this is one way they can get that support on a budget, while still possibly contributing back into the Linux community (either financially or with bug reports, etc).
This is my reading of the paper. I may be wrong, but if I am right in my interpretation, I think that this is a brilliant idea.
Richard Stallman thinks so, which is why he opposes proprietary software. No proprietary software, no problem. This is where Richard and I differ somewhat. I think that proprietary software and Free Software should exist together on a level playing field. And personally I am much more interested in working on Free Software.
The Troll Tech folks chose (with a great deal of prodding) to use a GPL + commercial dual-licensing model. They do this so that they can support their families while making good Free software. This is something that we can respect. They don't have to facilitate proprietary software while making the free stuff. They can choose to make money off of proprietary developers.
The only question in my mind is whether we need to make the same choice. Somehow, GNOME (or should I say GTK) got made without dual-licensing.
You may be trying to say something in favor of BSD-like licensing. In that case, I think you should consider that this argument has two sides, and that it is too often seenn only from the standpoint of the person who recieves free software, rather than the person who creates it.
Bruce
Bruce Perens.
Well, I don't agree with your criticism of Debian.
Therein lies the downfall I think Bruce.
Reading through your white paper, I agreee entirely with your analysis and proposals. We desperately need something like this, but a Debian base and iterative development with that project is not going to fly. I think that you have a tendancy to overlook the shortcomings of Debian and that you don't appreciate that the corporate market has little use for Debian-obsolete and Debian-broken.
Further, to get buy-in from the current Linux install base, you need to be offering a viable alternative to the distributions most are accustomed to. Current Redhat users are ripe for conversion, but not if it means a step backwards to Debian-by-another-name.
It strikes me that one of your unstated objectives is to revitalised Debian. If Debian is suitable for your stated objectives out of the box, why is it that you are proposing a new project, as opposed to working inside the existing Debian framework?
Occam's Razor. Kiss (keep it simple stupid)
/..... and makes it simple to use. However it is intellegent, setting up the right parameters correctly, and CONSISTANTLY.
Simple is better than complex. The parent post makes this point about 5 different ways, but not quite getting to the point.
Simplify Everything. Don't make it DUMB, just simple. I will give an example of simple not dumb.
DHCP. It takes a complicated job, IP / DNS / WINS / Gateway
In the words of my dad, "Pick a lane and go!"
* KDE or Gnome Pick one
* commandlines are for geeks, not users
* Consistant AND Easy Versioning
* Pick the best in class client/app
* User Manuals in the style of "Dummies series"
* Want to do THIS, use THAT app.
* commandlines are for geeks, not users.
If LuserLinux is going to be sucessful, the GEEKS and Zealots have got to get out of the way. So what if RMS wants to call everything GNU/linux. Users don't care about such stuff. So what if Perens wants to compile his own kernel. Users don't care. The point is, USERS don't WANT to care about such things. And it doesn't matter to them what RMS, BP or whoever thinks. (and don't get me started on Emacs vs Vim, neither one are usable by users).
Users want easy to use, unbreakable, solid applications that get stuff done. Use simple defaults; default the best options MOST people need, and then hide them.
Put stuff in the background that the average user doesn't need or want to see. Translate things from GEEKSPEAK to Natural Language. "Automate tasks" instead of "Cron Job".
Providing something simple to use, yet powerful takes intellegence. Simple doesn't mean Dumbing down.
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
But the most important thing about installers is that they are run once. People base entire distribution reviews on the installer, which is just stupid.
I used to agree with the above statement until I had to help many newbies "Try Out" linux. Most of them had tried to install on their own, but ran into trouble. Once I got it installed, most were impressed. But some were just entirely turned off from the first impression the installer left them with.
Granted, this was a year and more ago, most distros have improved their installers dramatically; however, I would not include debian in that list.
My $0.02It would help if you could tell me specificaly what you think is wrong with the apt + front-end combination as far as user friendliness is concerned. Try answering these: 1. What don't you like about all existing front-ends. This is not to say that any of them would work for grandma, but it helps to understand why. 2. Why do you feel that the front-end + back-end arrangement is fundamentaly flawed?
Personally, I think that at minimum we need to get to a state where, like most commercial desktop OSs, you download a file which appears as an icon and double-click that to install it on your computer.
I also think it would be better if we did not have to go that far to install software. Perhaps when we reach the point where through a web interface on a site a user could signal his/her intent to use a piece of software (perhaps by clicking a link) and that software would then be downloaded, installed, and launched. It should also be easy to go back to an older version or get rid of the software cleanly.
A good example would not use SourceForge, which is a giant and overwhelming repository. But I understand that your example would work with your personal web site as well.
There are really only two choices when resolving dependencies. Either package all dependencies along with the desired software, a la Windows and (I'm told) Mac, or have some sort of repository of the current package pool, whether it's a DVD or an FTP site, from which you can pull required software to resolve a dependency.
I don't really like the all-in-one-file method, becuase it makes it nearly impossible for library makers to fix their libraries. Unless, of course, the one-big-files are all coming from one central place that does active release management on them, replacing packages whenever libraries change, in which case you are back to one big repository. It also makes it more difficult for shared libraries to help you conserve memory if there are lots of different point releases of the library being used by different applications, rather than one periodicaly-updated copy of the library.
Monolithic repositories can't contain all useful software, but it is easy with apt to load from multiple repositories, where one may be specific to an application and the other is the main repository and resolves all of the dependencies of that application.
I think this is one of the things we got right with apt.
Thanks
Bruce
Bruce Perens.
I also am wondering about this. The buysiness mindset has been "buy windows, we know it is ok" and only allowed Mac for special needs. Now we hope businesses will start to adopt Linux as a mainstream choice for more than just group/departmental servers and web servers. So, will Linux become only Redhat/SuSe as probably will be mandated by the Forrester/IDC predictors? Or will it be open to all Linuces? This is a big question. Unices are fairly open though each company tends to standardize on one or a few for periods of a few years. I hope for the open way as this allows more competition and prevents a monopoly from stalling technology for another decade.
I bought some RHAT, NOVL, and LNUX but really think the pie will be big enough for many major Linux players. Also, one has to think RHAT is on a good course with tieing its future to good service. Maybe the Linux companies actually start to be involved in product and overall support - something that the HW vendors have had to do even though most of the problems are with Windows! In this way it is not just a few OS vendors but many real computer technology companies. The OS becomes a base for the technology company to interact with the business.
As to the desktop, I think a really easy Linux will win. Most home and business users do not want to do much. Check email, visit a few web sites, and, maybe, play some CD's. Run a word processor. Good, easy, and cheap. Just look at the market for other consumer products. The cheapest that actually works always wins. RHAT seems to have its strategy firmly on this too.
Of course, the Linux game platform could also be a major market entry/move for someone. Once the user is hooked into Linux on the game platform then perhaps this platform becomes their computer. Also, alternative business strategies such as ads or gathering statistical information on the users becomes a viable business model (like Microsoft which according to an article I read sends something like 16 different ways from winxp to m$ft not even including if one has a ms mouse or like the google toolbar which can help sellers determine buyer behavior etc.).
My view,
[not dicslosed due to corporate bigbro systems]
Since the US government failed to enforce monopoly laws WRT Bill Gates, Steve Ballmer, and the other humans who operate Microsoft, the price for software will be driven to $0. Only free can compete with a monopoly. So, alternative business models are required. The MSFT perople will continue to give away products (one could have operated much of the year running free Win2003 and Ofc2003 etc.) and otherwise generally abuse their monopoly position. So, selling support and other types of service is the real model for modern OS companies.
Personally, I think that at minimum we need to get to a state where, like most commercial desktop OSs, you download a file which appears as an icon and double-click that to install it on your computer.
Just because Windows forces you to go and download a file and then run that file for every piece of software that you want to install doesn't mean that all operating systems should do the same. Different from Windows does not mean more difficult. In this case, it actually means easier:
Whenever I want to install software, or update my system, I just click the pretty icon on my desktop that's labeled 'Synaptic'. Then, after supplying the root password, I can install any software that is available in the Debian repository. No need to go download a special installer for every program that I want to install. It really is that easy.
For example, in order to update all of my currently installed software to the latest versions, it takes exactly 5 mouse clicks (two to launch Synaptic) and a password. Try that with Windows - and no, 'Windows Update' doesn't count because all that does is update Windows files - not your office suite, database server, integrated development environment, etc.
Or, what if I read about some snazzy new tool on slashdot and I just have to have it on my Debian system? Well, chances are, there's a package in the Debian repository. Fire up Synaptic, use the search, select the package, click the install button, maybe pick a few more things and do likewise, and then finally click the big friendly 'Execute' button. In most cases, that's all there is to do. Some packages require minor configuration which means there may be a question or two to answer, but that's it. Done.
Now, what about the Windows way? Well, first, I'd have to go buy, or download an installer and run it. Then, I'd probably have to decide where to install the software. If my system didn't meet minimum requirements, I might even need to go buy or download additional software to install first. Sure, there would probably be a soothing installer to watch, a progress meter or two, maybe some fancy pictures, etc. Finally, assuming everything goes well, I will more than likely have a shortcut on the desktop and a new group in my Start menu (score one for MS here). Great, all done.
But, here are the things that nobody ever thinks about:
So, in essence what you end up doing is maintaining your very own package repository just so you can be sure that you'll be able to reinstall the software should the need arise. That sounds easy, doesn't it? Hell no! But wait, Debian is happy to do that for me - and you too!
I also think it would be better if we did not have to go that far to install software. Perhaps when we reach the point where through a web interface on a site a user could signal his/her intent to use a piece of software (perhaps by clicking a link) and that software would then be downloaded, installed, and launched. It should also be easy to go back to an older version or get rid of the software cleanly.
See above. We're already there, except no need to use a web interface, the GTK+ interface is just fine. Going back to an older version? Sure. Uninstall cleanly? Do you want to keep the configuration, or nuke that too? It's your choice, but both are already possible and only a few clicks away.
The moral to this little story is: Just because you know how to do something one way does not mean that way is the easiest or best way.
When people ask me if Linux is harder to use than Windows, I usually ask them this question: Is French harder to speak than English? Obvi
I was the second Debian project leader, and took the project through a very critical time. During that period I was responsible for:
- creating the social contract
- creating the official CD policy
- building Debian from 60 developers to 200
- releasing the first ELF version of Debian - it was previously COFF and LIBC5-based
- transferring all of the base system packages to community rather than centralized development
- founding SPI
- no doubt lots of other stuff that I've forgotten
These are possibly the most fundamental changes that Debian has ever gone through. During or subsequent to that, II don't have to prove myself.
But I agree that now it's time to do the work.
Bruce
Bruce Perens.
No, in windows you ship your program with everything it needs in a whole bunch of .DLLs that will cause havoc if messed with. This is all dumped together in a directory so that you end up with the same dlls all over the place a couple times. Now ask yourself:
- Does that matter to grandma? no.
- Does it fill grandma's hard-drive? no
- Does it work as expected? yes
- Is it easy? yes
It's not perfect but it's better that sudo'ing to install stuff you've hand-compiled....
We need to make it as easy but less evil (no libraries sitting everywhere!)
You know, this stuff comes up on Slashdot every so often -- someone notices that Linux is difficult for Grandma to use and suggests that we do something about it. There are lots of people who would love to see Linux take down Microsoft on the Desktop.
When talking about how this should be done, invariably a bunch of people start talking about GNOME and KDE and about making everything a GUI and making it work more like Windows, because that's what users are migrating from. And lots of folks start critisizing what we have currently, saying things like "we must get rid of the command line" and "geeks and zealots must step aside".
To produce a Grandma-oriented desktop, they may be right. But here's one big problem with what they say, and as I see it, it's insurmountable.
Linux is written by geeks and zealots. And the tools (GNU or otherwise) that come with it are too.
I am a geek, and a zealot, and I develop free software. I'm just one example. Most of us are. We are technically minded, and critical of windows. We like the command line, we like text files, and we like to argue about emacs and vi. This isn't just a steryotype -- it's the truth.
Mind you, I'm not talking about Linux users now -- I'm talking about developers. There are an increasing number of not-very-technical users out there who see the benefits of Linux and want to share it with their even less technical friends. And they see our UNIX/command-line/text files/geek/zealot philosophy as a barrier.
They are probably right.
The problem is, that 90% of these people do not write software. As ESR said, every good work of software starts by scratching a developer's personal itch. Not by scratching a user's personal itch, but a developer's. The problem is that users (who, on Linux at least, are increasingly normal folks) and developers (still primarily geeks/zealots) do not see eye to eye on any of this.
I'm sorry, but frankly speaking, the interesting problem to me is not a consistant UI written for grandma to use, but a UI that does what I want. I might put together a GTK front-end and even follow the GNOME usability guidelines or the like, just because I like having a sense that I'm doing something "the right way", but that's the extent of it. If someone wants user-friendliness badly enough, they can send me a patch, and I'll include it -- that's ok.
But I don't have a lot of time to begin with, and there's no way I'm going to spend it doing stuff that I don't care much about. I'm happy with linux the way it is now. You don't agree, and that's fine, but the problem is that you are asking me (a developer) to write you the stuff you want.
Hat's off to the GNOME and KDE developers for caring about this stuff; I salute them. But there aren't enough people who really, really, passionately care about UI programming in the Linux world. It's that simple.
The closed-source model (like Microsoft or Apple's) works well in this regard because the zealots they hire are getting paid to write code they probably don't care much about, under the direction of PHBs who are basically normal folks with normal concerns.
But until the 100,000 Slashdot-reading linux users stop making wishlist requests and begin coding themselves, they probably won't see their personal itch scratched.
This is the open source framework, friends. Either code, or live with things the way they are.
> One of the articles you presented was an exposition of the
> difference between writing for GTK in C and Python and Qt in C++.
> It seemed a little apples-and-oranges, since nice C++ interfaces
> are available for GNOME.
Maybe it -seemed-, yep. Unfortunately, it -is- not, as clearly expressed in another of the articles I presented, that from a Rosegarden developper, written after he switched to Qt/KDE from GTK/GNOME-with-C++. Interestingly, you'll note that the GTKmm maintainers didn't understand either how Qt/KDE in particular made his life a lot easier.
Besides, I still have more articles to link to -- I've been studying that precise issue for quite some time now, you know, and ressources on that matter don't lack. Although I fully understand why you wouldn't want to hear that... Apparently, from the way our minds work, emotional reactions have a lower interrupt level than what philosophers like to call our higher functions, which, frankly, sucks. (Which is why I tried to thoroughly study the depth of -both- desktop environments before I cared either way, if you want to know.)
> If you want to talk about the proprietary companies on GUIs, you
> might consider that HP and Sun do that on GNOME. Even on their
> Unix platforms.
I know, yes. However, and even though for each of these two you could prolly quote as many or twice as many other companies using the other desktop API, there's another reason still why Sun and HP are a subtly, but importantly different matter, I think.
They're selling desktops for OTHER people to develop on. It's -their- best interest to make the offer look as cheap as possible, and then let the customers deal with the (possible) costs of additional development times. Which is exactly what they should be doing, of course. That's what MS does as well, and it works great, commercially speaking.
Besides, you'll note that both Sun and HP are large corporations with money to spare, making them not the best example one could pick when talking about which choice is less costly, I think.
> One of the things I'd like to go for is the principle of least surprise.
I totally agree with you on this! Not on your conclusion, however.
In terms of development, the principle of least surprise would have it that development tools are paid for separately. Sometimes much expensively.
This, frankly, sucks. But that's the principle of least surprise for you, though, I suppose...
The best situtation would be to be able to develop either way without fixed costs, of course. As another poster suggested, the best thing that could happen to the Linux desktop would be if someone like IBM bought off Qt and LGPL'ed it. However, until then, people for whom money isn't a commodity will pick the least costly choice. That's the way this world works, unfortunately. I wish it was otherwise, you can believe me.
-- B.
This sig does in fact not have the property it claims not to have.