The X.org folks have taken explicit steps to make sure that X remains DFSG (Debian Free Software Guidelines) free. David Dawes has taken steps to make parts of XFree86 DFSG-nonfree.
That's in the works in the freedesktop.org X server, which is currently in development (but features like alpha-blending and shadows already work if you're interested in checking the source out of CVS). The X.org server is the 'stable' continuation of the XFree86 codebase.
CLOS is way more object-oriented than Java and C++. Java and C++ have non-object types. CLOS is all objects, all the time. And CLOS is based on generic methods rather than member functions --- a much more powerful concept that can do everything member functions can and more. Annoying things like the visitor pattern become completely unnecessary with multimethods, which fall naturally out of using generic functions. As for protection:
1) If the user is actively trying to circumvent protection (by using slot value), then he should be allowed to do so.
2) Lisp makes protection orthogonal to the class system. Protection is handled via packages, objects are handled via classes. You can achieve the effect of a Java-style class by declaring it in its own package then exporting only the 'public' members.
Well, Lisp doesn't force any particular style of programming on you. You can very easily write procedural Lisp code, or object-oriented (CLOS) Lisp code.
Eh? Paren-counting only happens with dumb editors. Lisp *requires* a smart editor to use. In return, it gives you a lot of benefit (ease of editing without using mouse, *macros*). However, if you still think Lisp is really wonderful except for its syntax, try Dylan.
Of course, there is a combination of economics of scale and diseconomics of scale. The maximal efficiency happens when the first is maximized and the second is minimized. If it was more efficient for phone companies to get larger, they would have already expanded.
Hear hear. I don't believe that Microsoft is beyond redemption, but like IBM, I think they have to have a falling out before they can be considered worthy of respect again.
I dunno about electron-beam microscopes, but you can make your own scanning-tunnling microscopes at home. Not great quality, but its doable. I knew somebody in high-school who did it as a senior-year project. He used a thin wire (apparently, cutting it with a dull scissor gets pretty close to a few-atoms-thick point) and some piezo buzzers from radio-shack for actuators. If you had better piezo actuators, you could probably get a lot better quality.
I regularly download things to the Desktop, both in Windows and OS X. It is a folder in the FS. Most Windows users do not see it that way. Indeed the fact that users prefer flat organizations to hierarchies can be seen in the fact that many Windows users keep *everything* on their desktop.
I can open the.dmg or.zip file right there and run the app. I can leave it there is I want to. I don't think a system that basically makes it so users will have all their apps on their desktop is a good one. If the system can be smarter to make things easier for the user, it should be.
admin/guru to help them until our OSes come with an AI to take on that role. We don't need an AI. An omnipotent package manager that handles all the dirty work of taking care of apps and just gives the user a little entry in a menu is pretty close.
I disagree with your blanket statement that Windows users do not understand DnD. Windows doesn't use DnD anywhere. It can use it, but doesn't. Further, Windows doesn't use the filesystem. In XP, you can't even see the contents of your C drive by default! Windows users adopt an application-centric rather than file-centric mode. The first thing they do is open up an application that does what they want to do, and then find the file they want through that app's interface. A GUI like Synaptic fits that model, 0install does not.
Python. With PyKDE available to access all of KDE's services (including the media subsystem) you can do everything from writing a quick script to control your webbrowser to writing a complete Integrated Development Environment (eg. Eric3).
I think we fundementally disagree. I think the filesystem should be hidden deep within the bowels of the system, with the only thing exposed to the user being their home directory and a start menu. That's the way Linux and Windows are heading. Heck, even Apple is realizing that people have trouble understanding hierarchical structures. Why do you think iTunes, which is exalted for its usability, has a giant flat list of songs rather than a hierarchical structure?
All files for a given program spread out in 8 or 9 different directories. It doesn't matter. From the system's point of view, each type of file is in its own directory, which makes sharing easier. Since the FS is a black-box to the user, this is an implementation detail.
Names like "/etc" instead of "Configuration" and "/usr/bin" instead of "/User/Applications", relics from when the majority of users preferred the command line. Again, this is an implementation detail. Users shouldn't know that their apps are in/usr/bin. Apps are just an entry in the start menu./etc is only accessed indirectly through GUI tools like YaST or gconf.
Hardcoded paths in most programs that use this system make it very inflexible to change. Which programs use hardcoded paths?
Difficult to manage more than one version of an application without modifying the application. Only if you insit on mucking around at the filesystem level instead of letting the system (package manager) do the work for you.
Okay, you're right about the appdirs. BeOS had a special directory, so I just kind of assumed.
However, you still have to know about the filesystem to use it. You have to get the.dmg file and drag it to a directory in the FS. That's beyond the capability of a lot of Windows users I know. You don't seem to understand just how limited they are. They aren't even aware that there is a filesystem. They open apps from the start menu, and open files from the file dialog. If they accidentally change directories in the file dialog and save somewhere else, they cannot find the file! A huge number of Office workers, who do anything but use Internet Explorer and MS Word, have no understanding of the FS.
Drag & drop and the filesystem is not a skill Windows regularly exercises. Indeed, XP goes out of its way to *hide* the filesystem. As such, the majority of computer users do not understand these things. For these people, 0Install is not appropriate.
No we don't. There aren't any problems with the underlying system. The underlying system is designed to be optimal for the system. Apt is designed to be optimal for the user. The appdirs model is a compromise between the two that isn't optimal for anyone. The system has to deal with lots of unshared data, while the user has to deal with futzing around in the filesystem to install apps, instead of using a simple high-level interface.
No, they don't. They get an icon. Moving it moves the app, double-clicking it launches the app. Mac users might be comfortable with drag & drop and the filesystem hierarchy, but Windows users decidedly are not. Windows users make up the majority of computer users out there, and if we're going to do things to make it easier for converts, its better to target them.
So just because Windows is a broken GUI that doesn't understand drag & drop, any other system should give up on it? Drag & drop sucks for other reasons too. Its far too manual, and reeks of the outmoded "real-world metaphors" movement. Read this document on the Anti-Mac interface. The truth is that there are two types of computer users these days:
- Those that have learned to use computers. These are mostly Windows users. We have to pay attention to them because they form the largest body of existing users who will transition to Linux.
- Those that grew up with computers. Kids today readily understand the abstract nature of computers. They don't analogize the computer to "real world metaphors" but understand interfaces in their own terms.
The traditional Finder-style UI interface doesn't serve either of these users. Existing Windows users aren't familiar with it, while the next generation of users doesn't need the artificial, time-wasting concrete metaphors. The web is the perfect example of an anti-mac interface. There aren't "real world" metaphors on the web. You don't waste time dragging and dropping. You've got infinite-length pages, linked words between pages, a search-based (Google!) UI, etc. Going forwards, that's what UIs will look like.
That alone is complicated. You need to map "the app you want" to some name in a list. That's an entire parallel, cryptic, redundant hierarchy to understand and operate. Huh? You want php, so you find php in a list? Do you think people have trouble mapping from the food they want to order to a listing in a menu? The Mac equivilent of the a dinner menu would be a giant table full of cooked dishes, with the diners pointing and grunted at what they want!
The problem with getting rid of the applications menu is that most users don't understand the filesystem. So if you put apps in the filesystem, people will have trouble finding them. Indeed, in the future, with things like WinFS and Storage, the filesystem hierarchy is going away, with files hidden behind a query interface.
I was talking more about the appdirs system. You do still need to understand the filesystem to do things like find the installed apps, delete apps, etc.
APT is very difficult for the inexpert user. How so? Or have you never used a GUI for it?
For example, if I want to test php5 how can I do this with APT?, impossible, or too complicated for me. Because average users use unstable development releases so often! If you want to install php on Debian:
- Start up KPackage - Click the "Search" icon - Find php4 - Select it - Click install - Click install - Click done
The major problem is that there is no a place where one can see or change ALL the configurations. We're not talking about that, however. We're talking about software installation.
How do I know what packages I have installed, what versions, where are installed? Start up KPackage. Click on the "Installed" tab. Want to uninstall an existing program? Select it and click Uninstall. How could it possibly get easier???
When installing a program with APT surprises much to me that the program installer does questions to me like: You're not comparing the same things. The Windows/Mac installers don't do software configuration, while Apt/DebConf do. That's why DebConf asks you those questions --- because its not just installing the program for you, but setting them up too. In Windows and Mac, you'd have to do the configuration manually.
- where is library xxxxx? Again, I don't know !!! check that yourself!!!! What are you talking about? APT handles library dependencies automatically!
Do you want to use the existing configuration or you want to change it by the maintainer's one? Are you installing via the command line? No wonder! Use a GUI! A GUI configured for new users would not ask those questions, but use the defaults.
If you want to change the timezone use 'tzconfig', if you want to see your network configuration use 'ifconfig', etc., etc.
It's ridiculous. That has nothing to do with package management! And I've been using Linux for years and I've never used tzconfig. I adjust the timezone by going into KControl. I don't use ifconfig either --- the Debian installer autodetected my network. If you do need to change it, most distros (SuSE, RedHat, etc) have nice easy GUI tools.
no, apt is not easy. it can be, once you fiddle around with how it works, but to the new user, or to the smart user who think it isn't worth his time to fiddle with a program that should be easy, it is hard. Have you ever used KPackage? How could you possibly say that it requires fiddling to use? Installing a program in KPackage/APT requires:
The GUI could be even more streamlined to eliminate a couple of more steps. Its easy enough for anyone who can use a web-browser to use. That is not the case for the appdirs system, which actually requires a user who understands the filesystem (which, in my experience, many users do not).
That's precisely what APT + a GUI does! How could it possibly get any simpler than just double-clicking on the application you want? The Mac installer mechanism requires so many extra concepts. They need to understand the concept of an installer package, app directories, drag & drop (the majority of computer users do not understand that, because Windows doesn't use it very much), and the filesystem. Selecting an app in an APT GUI just requires knowing what app you want, and how to double-click.
Most people don't want to learn a new packaging system. With APT, they don't have to. They just have to be able to double-click on the program they want. I've seen lots of Windows users who love the concept and wish Windows had it.
The problem with Apt is it relies on someone else saying 'oh, that's great, I'll make some debs.' Isn't that true for installers as well? Somebody has to make those too.
And it only works for someone with Debian or a Debian-compatable system like Lindows, Xandros, Knoppix, et al. Ximian has a nifty tool called Build Buddy that automates the process of generating packages compatible with not just RPM and DEB systems, but Solaris and HP-UX package managers too.
Additionally, to install a deb you need to be root. This needs improvement, yes.
Not really. You just have to teach them to type in the superuser password when prompted. I do think apt should allow you to install apps local to each user, though. However, I don't think it needs to be changed fundementally, just improved in implementation.
Synaptic and KPackage still require way to many clicks for a conceptually simple operation. I have high hopes for Kapture, which is still in development.
This is an example of Linux *regressing* to better fit the model of Mac/Windows. We've already got a much superior installation method: APT. What we need is a simple GUI for APT (or Yum or whatever) not a complex "app folder" system. APT is about as simple as installation can get. You double-click a program, and its installed and right in your programs menu. No manually searching for an installer, opening up the "applications folder", dragging & dropping, etc. Think about it: that requires so many more extra concepts for the user to learn! They have to first understand the filesystem (many users do not). Then they have to understand the concept of installer images. Then they have to understand how to drag & drop (many users do not). Then they have to understand the concept of a special "applications folder." Contrast this to the a GUI front-end for APT. Users would just have to understand how to start a program (which they already do), how to select the program they want, and how to double-click. It reuses existing concepts so much better.
The X.org folks have taken explicit steps to make sure that X remains DFSG (Debian Free Software Guidelines) free. David Dawes has taken steps to make parts of XFree86 DFSG-nonfree.
That's in the works in the freedesktop.org X server, which is currently in development (but features like alpha-blending and shadows already work if you're interested in checking the source out of CVS). The X.org server is the 'stable' continuation of the XFree86 codebase.
CLOS is way more object-oriented than Java and C++. Java and C++ have non-object types. CLOS is all objects, all the time. And CLOS is based on generic methods rather than member functions --- a much more powerful concept that can do everything member functions can and more. Annoying things like the visitor pattern become completely unnecessary with multimethods, which fall naturally out of using generic functions. As for protection:
1) If the user is actively trying to circumvent protection (by using slot value), then he should be allowed to do so.
2) Lisp makes protection orthogonal to the class system. Protection is handled via packages, objects are handled via classes. You can achieve the effect of a Java-style class by declaring it in its own package then exporting only the 'public' members.
Well, Lisp doesn't force any particular style of programming on you. You can very easily write procedural Lisp code, or object-oriented (CLOS) Lisp code.
Eh? Paren-counting only happens with dumb editors. Lisp *requires* a smart editor to use. In return, it gives you a lot of benefit (ease of editing without using mouse, *macros*). However, if you still think Lisp is really wonderful except for its syntax, try Dylan.
Of course, there is a combination of economics of scale and diseconomics of scale. The maximal efficiency happens when the first is maximized and the second is minimized. If it was more efficient for phone companies to get larger, they would have already expanded.
I'm a reasonable person. I'd settle for razing just the main Windows and Office development buildings.
Hear hear. I don't believe that Microsoft is beyond redemption, but like IBM, I think they have to have a falling out before they can be considered worthy of respect again.
I dunno about electron-beam microscopes, but you can make your own scanning-tunnling microscopes at home. Not great quality, but its doable. I knew somebody in high-school who did it as a senior-year project. He used a thin wire (apparently, cutting it with a dull scissor gets pretty close to a few-atoms-thick point) and some piezo buzzers from radio-shack for actuators. If you had better piezo actuators, you could probably get a lot better quality.
Well OpenOffice is scriptable from Python. So is Gimp. Tie that up with Ghostscript and the Python networking libraries, and there you go.
I regularly download things to the Desktop, both in Windows and OS X. It is a folder in the FS.
.dmg or .zip file right there and run the app. I can leave it there is I want to.
Most Windows users do not see it that way. Indeed the fact that users prefer flat organizations to hierarchies can be seen in the fact that many Windows users keep *everything* on their desktop.
I can open the
I don't think a system that basically makes it so users will have all their apps on their desktop is a good one. If the system can be smarter to make things easier for the user, it should be.
admin/guru to help them until our OSes come with an AI to take on that role.
We don't need an AI. An omnipotent package manager that handles all the dirty work of taking care of apps and just gives the user a little entry in a menu is pretty close.
I disagree with your blanket statement that Windows users do not understand DnD.
Windows doesn't use DnD anywhere. It can use it, but doesn't. Further, Windows doesn't use the filesystem. In XP, you can't even see the contents of your C drive by default! Windows users adopt an application-centric rather than file-centric mode. The first thing they do is open up an application that does what they want to do, and then find the file they want through that app's interface. A GUI like Synaptic fits that model, 0install does not.
Python. With PyKDE available to access all of KDE's services (including the media subsystem) you can do everything from writing a quick script to control your webbrowser to writing a complete Integrated Development Environment (eg. Eric3).
I think we fundementally disagree. I think the filesystem should be hidden deep within the bowels of the system, with the only thing exposed to the user being their home directory and a start menu. That's the way Linux and Windows are heading. Heck, even Apple is realizing that people have trouble understanding hierarchical structures. Why do you think iTunes, which is exalted for its usability, has a giant flat list of songs rather than a hierarchical structure?
/usr/bin. Apps are just an entry in the start menu. /etc is only accessed indirectly through GUI tools like YaST or gconf.
All files for a given program spread out in 8 or 9 different directories.
It doesn't matter. From the system's point of view, each type of file is in its own directory, which makes sharing easier. Since the FS is a black-box to the user, this is an implementation detail.
Names like "/etc" instead of "Configuration" and "/usr/bin" instead of "/User/Applications", relics from when the majority of users preferred the command line.
Again, this is an implementation detail. Users shouldn't know that their apps are in
Hardcoded paths in most programs that use this system make it very inflexible to change.
Which programs use hardcoded paths?
Difficult to manage more than one version of an application without modifying the application.
Only if you insit on mucking around at the filesystem level instead of letting the system (package manager) do the work for you.
Okay, you're right about the appdirs. BeOS had a special directory, so I just kind of assumed.
.dmg file and drag it to a directory in the FS. That's beyond the capability of a lot of Windows users I know. You don't seem to understand just how limited they are. They aren't even aware that there is a filesystem. They open apps from the start menu, and open files from the file dialog. If they accidentally change directories in the file dialog and save somewhere else, they cannot find the file! A huge number of Office workers, who do anything but use Internet Explorer and MS Word, have no understanding of the FS.
However, you still have to know about the filesystem to use it. You have to get the
Drag & drop and the filesystem is not a skill Windows regularly exercises. Indeed, XP goes out of its way to *hide* the filesystem. As such, the majority of computer users do not understand these things. For these people, 0Install is not appropriate.
No we don't. There aren't any problems with the underlying system. The underlying system is designed to be optimal for the system. Apt is designed to be optimal for the user. The appdirs model is a compromise between the two that isn't optimal for anyone. The system has to deal with lots of unshared data, while the user has to deal with futzing around in the filesystem to install apps, instead of using a simple high-level interface.
No, they don't. They get an icon. Moving it moves the app, double-clicking it launches the app.
Mac users might be comfortable with drag & drop and the filesystem hierarchy, but Windows users decidedly are not. Windows users make up the majority of computer users out there, and if we're going to do things to make it easier for converts, its better to target them.
So just because Windows is a broken GUI that doesn't understand drag & drop, any other system should give up on it?
Drag & drop sucks for other reasons too. Its far too manual, and reeks of the outmoded "real-world metaphors" movement. Read this document on the Anti-Mac interface. The truth is that there are two types of computer users these days:
- Those that have learned to use computers. These are mostly Windows users. We have to pay attention to them because they form the largest body of existing users who will transition to Linux.
- Those that grew up with computers. Kids today readily understand the abstract nature of computers. They don't analogize the computer to "real world metaphors" but understand interfaces in their own terms.
The traditional Finder-style UI interface doesn't serve either of these users. Existing Windows users aren't familiar with it, while the next generation of users doesn't need the artificial, time-wasting concrete metaphors. The web is the perfect example of an anti-mac interface. There aren't "real world" metaphors on the web. You don't waste time dragging and dropping. You've got infinite-length pages, linked words between pages, a search-based (Google!) UI, etc. Going forwards, that's what UIs will look like.
That alone is complicated. You need to map "the app you want" to some name in a list. That's an entire parallel, cryptic, redundant hierarchy to understand and operate.
Huh? You want php, so you find php in a list? Do you think people have trouble mapping from the food they want to order to a listing in a menu? The Mac equivilent of the a dinner menu would be a giant table full of cooked dishes, with the diners pointing and grunted at what they want!
The problem with getting rid of the applications menu is that most users don't understand the filesystem. So if you put apps in the filesystem, people will have trouble finding them. Indeed, in the future, with things like WinFS and Storage, the filesystem hierarchy is going away, with files hidden behind a query interface.
I was talking more about the appdirs system. You do still need to understand the filesystem to do things like find the installed apps, delete apps, etc.
APT is very difficult for the inexpert user.
How so? Or have you never used a GUI for it?
For example, if I want to test php5 how can I do this with APT?, impossible, or too complicated for me.
Because average users use unstable development releases so often! If you want to install php on Debian:
- Start up KPackage
- Click the "Search" icon
- Find php4
- Select it
- Click install
- Click install
- Click done
The major problem is that there is no a place where one can see or change ALL the configurations.
We're not talking about that, however. We're talking about software installation.
How do I know what packages I have installed, what versions, where are installed?
Start up KPackage. Click on the "Installed" tab. Want to uninstall an existing program? Select it and click Uninstall. How could it possibly get easier???
When installing a program with APT surprises much to me that the program installer does questions to me like:
You're not comparing the same things. The Windows/Mac installers don't do software configuration, while Apt/DebConf do. That's why DebConf asks you those questions --- because its not just installing the program for you, but setting them up too. In Windows and Mac, you'd have to do the configuration manually.
- where is library xxxxx? Again, I don't know !!! check that yourself!!!!
What are you talking about? APT handles library dependencies automatically!
Do you want to use the existing configuration or you want to change it by the maintainer's one?
Are you installing via the command line? No wonder! Use a GUI! A GUI configured for new users would not ask those questions, but use the defaults.
If you want to change the timezone use 'tzconfig', if you want to see your network configuration use 'ifconfig', etc., etc.
It's ridiculous.
That has nothing to do with package management! And I've been using Linux for years and I've never used tzconfig. I adjust the timezone by going into KControl. I don't use ifconfig either --- the Debian installer autodetected my network. If you do need to change it, most distros (SuSE, RedHat, etc) have nice easy GUI tools.
no, apt is not easy. it can be, once you fiddle around with how it works, but to the new user, or to the smart user who think it isn't worth his time to fiddle with a program that should be easy, it is hard.
Have you ever used KPackage? How could you possibly say that it requires fiddling to use? Installing a program in KPackage/APT requires:
- Select 'New' tab
- Select app you want to install
- Click install
- (Install Summary pops up) Click Install
- Click Done
The GUI could be even more streamlined to eliminate a couple of more steps. Its easy enough for anyone who can use a web-browser to use. That is not the case for the appdirs system, which actually requires a user who understands the filesystem (which, in my experience, many users do not).
That's precisely what APT + a GUI does! How could it possibly get any simpler than just double-clicking on the application you want? The Mac installer mechanism requires so many extra concepts. They need to understand the concept of an installer package, app directories, drag & drop (the majority of computer users do not understand that, because Windows doesn't use it very much), and the filesystem. Selecting an app in an APT GUI just requires knowing what app you want, and how to double-click.
Most people don't want to learn a new packaging system.
With APT, they don't have to. They just have to be able to double-click on the program they want. I've seen lots of Windows users who love the concept and wish Windows had it.
The problem with Apt is it relies on someone else saying 'oh, that's great, I'll make some debs.'
Isn't that true for installers as well? Somebody has to make those too.
And it only works for someone with Debian or a Debian-compatable system like Lindows, Xandros, Knoppix, et al.
Ximian has a nifty tool called Build Buddy that automates the process of generating packages compatible with not just RPM and DEB systems, but Solaris and HP-UX package managers too.
Additionally, to install a deb you need to be root.
This needs improvement, yes.
Not really. You just have to teach them to type in the superuser password when prompted. I do think apt should allow you to install apps local to each user, though. However, I don't think it needs to be changed fundementally, just improved in implementation.
Synaptic and KPackage still require way to many clicks for a conceptually simple operation. I have high hopes for Kapture, which is still in development.
This is an example of Linux *regressing* to better fit the model of Mac/Windows. We've already got a much superior installation method: APT. What we need is a simple GUI for APT (or Yum or whatever) not a complex "app folder" system. APT is about as simple as installation can get. You double-click a program, and its installed and right in your programs menu. No manually searching for an installer, opening up the "applications folder", dragging & dropping, etc. Think about it: that requires so many more extra concepts for the user to learn! They have to first understand the filesystem (many users do not). Then they have to understand the concept of installer images. Then they have to understand how to drag & drop (many users do not). Then they have to understand the concept of a special "applications folder." Contrast this to the a GUI front-end for APT. Users would just have to understand how to start a program (which they already do), how to select the program they want, and how to double-click. It reuses existing concepts so much better.