Linked by Thom Holwerda on Fri 25th May 2012 14:55 UTC
General Unix James Hague: "But all the little bits of complexity, all those cases where indecision caused one option that probably wasn't even needed in the first place to be replaced by two options, all those bad choices that were never remedied for fear of someone somewhere having to change a line of code... They slowly accreted until it all got out of control, and we got comfortable with systems that were impossible to understand." Counterpoint by John Cook: "Some of the growth in complexity is understandable. It's a lot easier to maintain an orthogonal design when your software isn't being used. Software that gets used becomes less orthogonal and develops diagonal shortcuts." If there's ever been a system in dire need of a complete redesign, it's UNIX and its derivatives. A mess doesn't even begin to describe it (for those already frantically reaching for the comment button, note that this applies to other systems as well).
Thread beginning with comment 519563
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Re:
by Vanders on Sat 26th May 2012 11:45 UTC in reply to "Re:"
Vanders
Member since:
2005-07-06

The terminal sucks. The commands have no logical consistency, for example ls prints the result by default, find doesn't


GNU find has printed the results by default as long as I can remember using it. From the man page:

If no expression is given, the expression -print is used


The fact the hard drive unix is installed gets labelled as "/", and everything else is essentially mounted on a virtual folders inside /mnt is also insane.


You seem to have a fundamental misunderstanding of how the UNIX file system hierarchy is constructed and why it is that way. There is no reason at all to change it, even a little bit.

let's at least fix it at terminal/GUI level so we can have HDD2:something.jpg instead of /mnt/hdd2/something.jpg


Why? What's the benefit?

If it helps, most file browsers you're likely to come across these days will show you a bunch of shortcuts, usually these shortcuts include devices I.e. if you plug in a USB drive, a new shortcut will show up. Clicking on it takes you straight to the device. Which is precisely what you're asking for.

Commands should be seperated by ASCII "unit seperator" not spaces.


Just how were you planning to type this non-printable ASCII character?

Using the space as both a seperator and a legit filename character is bad. Which reminds me, control characters should be banned from filenames.


In hindsight, you may be correct about spaces in filenames. But the set of allowable characters in a UNIX filename is not going to change now: it'd break too much stuff.

Reply Parent Score: 6

RE[2]: Re:
by kurkosdr on Sat 26th May 2012 19:34 in reply to "RE: Re:"
kurkosdr Member since:
2011-04-11

Why? What's the benefit?

Simple. Amateur user sees HDD1:Folder/image1.jpg and HDD2:image2.jpg and immediately understands what's going on. User sees /Folder/image1.jpg and says "Da freak is this? Okay, I guess / is the hardrive i installed the OS or something, because this is were my usr directory is" Then he sees /mnt/hdd2/image2.jpg and says "Why is my second harddisk a subdirectory under my first harddisk? What's that mnt folder? Waahhh, I don't understand what's going on!" See, most people don't know the concept of "mounting", and good luck explaning it to them before their attention span ends. As you say, GUIs try (and partially) solve this problem by making it appear a if Unix/Linux has multiple roots, by Gnome still has a "filesystem" button that will expose the nastyness and confuse the user. IMO all GUIs should completely hide from users the fact Unix doesn't have multiple roots, by replacing "/" with HDD1: and /mnt/hdd2 with HDD2: and hiding the mnt folder, and have a switch somewhere in the settings that old timers can activate to get the real filesystem back (if you know how the Unix filesystem works, you should know the button).

Just how were you planning to type this non-printable ASCII character?

This sounds funny, but it's a real problem. It's the lack of a unit seperator button that's causing spaces to be a problem with most CLIs. Just use some key combination like shift+space. No, that would make typing slower. You could mandate double or single quotes, but again some people would complain it makes typing slower. Ok, I don't have an answer. Anyway, this isn't Unix's fault exactly, I admit.

Well tell me why I don't have X.org (or Wayland or MGR or any type of GUI) installed but I can still use graphical programs?

How? What is your OS using to draw on the screen? Do you have hardware accel and what drivers are you using? Anyway, the fact most (non-Apple) Linux and Unixes ship with the slow, problematic X.org, is turning people off from using them. If X is not needed, why everyone bundles it with their OS? So that some geeks can boast their OS has a network transparent desktop? Just selve the network transparent desktop most people don't need 'till you have perfected it. Geeks can download and install X by themselves if they want a network transparent dekstop. And since we are talking about graphics and audio stacks, Linux innovates once again by breaking audio too (which used to work in *nix) with pulseaudio, yet another middleman unecessary for most users.

PS: Another problem with *nix is that Unix has a really narrow hardware compatibility list, and Linux tends to break upgrades if binary blobs are used to run the hardware, but I am an optimist, and hope that Sputnik will solve this, by providing a range of laptops with Linux friendly hardware that doesn't break during upgrades, but till that happens, it's still a problem. And when it comes to Unix, it's still "good luck, dude" when trying to find compatible hardware (esp laptops)

Edited 2012-05-26 19:46 UTC

Reply Parent Score: 1

RE[3]: Re:
by Vanders on Sat 26th May 2012 22:32 in reply to "RE[2]: Re:"
Vanders Member since:
2005-07-06

Amateur user sees HDD1:Folder/image1.jpg and HDD2:image2.jpg and immediately understands what's going on.


How do you figure that? I mean, what usability data do you have to support your claim that HDD1: is more unstable than /? Both are symbolic representations of an abstract concept. I'd put money on both being as "understandable" as each other.

Reply Parent Score: 3

RE[3]: Re:
by Soulbender on Sun 27th May 2012 07:39 in reply to "RE[2]: Re:"
Soulbender Member since:
2005-08-18

[A]mateur user sees HDD1:Folder/image1.jpg and HDD2:image2.jpg and immediately understands what's going on. [/q]

Moot point. The amateur user is already using gnome or kde (or whatever) so they have no problem knowing what the drives are and accessing the files on them.

Reply Parent Score: 2

RE[3]: Re:
by JuEeHa on Sun 27th May 2012 11:33 in reply to "RE[2]: Re:"
JuEeHa Member since:
2012-04-24

>>Well tell me why I don't have X.org (or Wayland or MGR or any type of GUI) installed but I can still use graphical programs?
>How? What is your OS using to draw on the screen?
I use Linux framebuffer to draw graphical stuff on my screen. With it I can run at least Links2 with graphics, mplayer, Netsurf and DOSBox. I like it because it has made me able to quit X which took about 65% of my RAM on normal use. (I have 64MB of RAM)

Reply Parent Score: 1

RE[3]: Re:
by Kebabbert on Sun 27th May 2012 19:20 in reply to "RE[2]: Re:"
Kebabbert Member since:
2007-07-27

Why? What's the benefit?

Simple. Amateur user sees HDD1:Folder/image1.jpg and HDD2:image2.jpg and immediately understands what's going on. User sees /Folder/image1.jpg and says "Da freak is this? Okay, I guess / is the hardrive i installed the OS or something, because this is were my usr directory is" Then he sees /mnt/hdd2/image2.jpg and says "Why is my second harddisk a subdirectory under my first harddisk? What's that mnt folder? Waahhh, I don't understand what's going on!" See, most people don't know the concept of "mounting", and good luck explaning it to them before their attention span ends. As you say, GUIs try (and partially) solve this problem by making it appear a if Unix/Linux has multiple roots, by Gnome still has a "filesystem" button that will expose the nastyness and confuse the user. IMO all GUIs should completely hide from users the fact Unix doesn't have multiple roots, by replacing "/" with HDD1: and /mnt/hdd2 with HDD2: and hiding the mnt folder, and have a switch somewhere in the settings that old timers can activate to get the real filesystem back (if you know how the Unix filesystem works, you should know the button).

Now this suggestion is really bad. The main point, the single reason of using a tree (as in filesystem tree) is to have one root. You dont want a forest. You want one root, one mount point.

The algorithms/programming will be much more elegant and less bugs, if you have one root. If you have several roots, a forest of independent filesystems, then your program need to find out how many roots there are, and then run on each root. You have lost elegancy and require additional steps (how many roots are there) before you can run your program.

If you have a single root, with several mount points, the algorithm/programming will be unified and simplified. You just start to run on the root, and it will automatically traverse every node.



Windows works the way you describe. You have C: D: E: ... Z:. Now, let me ask you, where do you find the database server? On which disk? Where are all source code? On which disk? Easy to answer, right? Very intuitive, right? One company might use E: another uses Z:. No standard, a new user needs to traverse and examine each drive. Very very very ugly.

Compare to Unix. /opt/database. Or /opt/sourcecode. One root. You always know where to start. In Windows, do you start at D:? Or L:?

A programmer knowledgeable in algorithm theory, always prefer a single tree. The reason you propose your ugly suggestion, is because you are not a computer scientist, that is obvious. If you study some computer science, you will change mind set and understand how beatiful trees can be, and how they simplify the algorithms and programming very much. Recursion is extremely powerful, and makes elegant simple solutions.

Reply Parent Score: 3

RE[2]: Re:
by Zobeid on Sun 27th May 2012 03:33 in reply to "RE: Re:"
Zobeid Member since:
2012-04-28

You seem to have a fundamental misunderstanding of how the UNIX file system hierarchy is constructed and why it is that way. There is no reason at all to change it, even a little bit.


I'm with kurkosdr, it's madness. His (and my) "fundamental misunderstanding" is indicative of just how wacky it is. Your inability, or unwillingness, to explain what we're missing just further underscores this. I'm guessing it would take a major effort to lead us through the convoluted logic to justify a scheme that's so counterintuitive to normal, non-Unix-indoctrinated people.

Furthermore, I've see how well named volumes worked on the AmigaDOS command line. That made sense.

Reply Parent Score: 1

RE[3]: Re:
by Doc Pain on Sun 27th May 2012 09:50 in reply to "RE[2]: Re:"
Doc Pain Member since:
2006-10-08

Furthermore, I've see how well named volumes worked on the AmigaDOS command line. That made sense.


Since many UNIX and Linux systems support file system labels (in different ways), this functionaliy can be considered a standard functionality. It's a feature commonly used today.

You can "mount /dev/label/data2012 /home/db/thisyear", or have the disks in your NAS labeled A1, A2, B1, B2, and SPARE. You can reflect RAID criteria (part of mirror, part of stripe, spare) as well as functional parts (system disk, data disk, program disk, scratch disk, secret disk). You can even automate mount actions depending on labels.

Reply Parent Score: 2

RE[3]: Re:
by Vanders on Sun 27th May 2012 12:41 in reply to "RE[2]: Re:"
Vanders Member since:
2005-07-06

Your inability, or unwillingness, to explain what we're missing just further underscores this. I'm guessing it would take a major effort to lead us through the convoluted logic to justify a scheme that's so counterintuitive to normal, non-Unix-indoctrinated people.


Oh I'm sorry, I didn't realise I was here to provide a CIS lecture. How about you make it your responsibility to educate yourself and then we can have an informed debate on both sides?

From the context of your post I'm guessing you're complaining about the directory structure. That wasn't what the original discussion was about. Whether "everything is a directory" with volumes mounted under / makes sense and whether the names and structure of those directories makes sense are two different things.

I'm actually inclined to agree that the current hierarchy and naming scheme in most *nixes are a complete mess.

Furthermore, I've see how well named volumes worked on the AmigaDOS command line. That made sense.


So do I. Volumes on the Amiga were no more intuitive than everything-is-a-directory on UNIX. Why is LIB: or C: any more easy to understand than /usr/lib or /bin?

Edited 2012-05-27 12:44 UTC

Reply Parent Score: 3

RE[2]: Re:
by Delgarde on Mon 28th May 2012 05:14 in reply to "RE: Re:"
Delgarde Member since:
2008-08-19

GNU find has printed the results by default as long as I can remember using it.


Not just GNU find, either. Every 'modern' UNIX system I've used (AIX, HP-UX, Solaris) behaves this way.


In hindsight, you may be correct about spaces in filenames. But the set of allowable characters in a UNIX filename is not going to change now: it'd break too much stuff.


That, and it's not *that* big a problem. Modern shells with tab completion cope pretty well with spaces in filenames, automatically escaping or quoting characters that would cause parsing problems. An annoyance, certainly, but only a small one.

Reply Parent Score: 2