Hacker News new | past | comments | ask | show | jobs | submit login

Tangent, but that's what made getting into Linux/Unix really hard. You have all these folders and files and no README.md to explain what is what. And there seemed to be no logic at all with how things were organized or named (and names often were shortened to abbreviations that I couldn't comprehend). I'm wondering what a modern system made to be readable and understandable would look like.

The other thing, coming from windows, was not understanding where to install things. In windows there's like a single place where you install all your stuff.




> You have all these folders and files and no README.md to explain what is what.

Markdown is a novelty. Back then, it would be just README (with no file extension at all).

> In windows there's like a single place where you install all your stuff.

Windows was even worse. Whenever you installed something, parts of it were in a new directory at the root of C:\, and parts of it were dumped in C:\WINDOWS\SYSTEM together with all the rest that's already there, often overwriting files of the same name (and the names were limited to 8 characters plus the extension, so they were quite opaque) used by other software you had installed earlier (that's the original scenario of what is now called "DLL hell"). On later Windows versions, instead of a new directory at the root of C:\ it was a new directory within "C:\Programs Files" (or is it "C:\PROGRA~1"? Or perhaps "C:\Arquivos de programas" aka "C:\ARQUIV~1"? Or something else?), and instead of C:\WINDOWS\SYSTEM it was now C:\Windows\system32, and there's also the "Common files" directory somewhere. And since there's no package manager (actually there is one, but not everything uses it, and it's very complex), you don't know which file came from which software. Oh, and if the program you installed overwrote a "protected" system file, the operating system overwrites the file again with its own copy.


There is a package manager, what’s missing is a directory tree owned by the package manager and protected from smuggling in unexpected crud without a big red warning for administrators.


As a user everything was in program files/


It wasn't, though.


It was, I really have no idea what you guys are talking about, everything I installed mostly went there and it was always easy to find applications. Again, as a normal user.


The executables, yes. But poke around Common Files, AppData, etc and you’ll see precisely what everyone is talking about.


Not to mention applications can and do (could and did?) put things pretty much anywhere they liked and there’s never a way to really know for sure. I’ve had to hunt down dozens of directories for programs that just did not give a fuck about being easy to uninstall.


Take a look at "man hier": https://www.freebsd.org/cgi/man.cgi?hier


"Link a man to man and you solve his problem for a day, teach a man to man and you've enlightened him for life."

Side note, calling the file system layout "hier" has got to be the stupidest naming choice. Did they want this to be lost forever so that nobody ever finds it?


Once upon a time, the manpages were a printed object. This, coupled with some of Bell and later BSD's quirks about naming things, led to some historic naming conventions. See also: this entire damn conversation on naming directories.

One wasn't intended to call man directly, instead calling apropos first, finding the appropriate page to open.


But what if I need to read on how to use apropos? Then I need to do `man apropos` and I'm stuck in a cycle! /s

https://www.man7.org/linux/man-pages/man1/apropos.1.html


There is "man hier" and also "man file-hierarchy": https://www.man7.org/linux/man-pages/man7/file-hierarchy.7.h...


Well, as the man page itself says:

  HISTORY
     A hier manual page appeared in Version 7 AT&T UNIX.


"that's what made getting into Linux/Unix really hard. You have all these folders and files and no README.md to explain what is what"

In the old days, I read books for that.


Well, you can look at MacOS for a basic inspiration. Hide all the ugly Unix parts and expose sensible directories like Applications, Preferences, Volumes, Users.


This. Although I wish Apple would follow MS's suite and remove "spaces" in directories. Right now we have something like

    /Users/behnam/Library/Application Support
which is _nasty_ when working in a terminal.

MS tried to fix this by making directories like:

    C:/Users/AppData/Local/


The irony is, Microsoft originally put a space in "Program Files" intentionally, to force software developers to support paths with spaces in.

I don't know why developers have apparently collectively decided to go backwards. If your software doesn't support spaces there's a reasonable chance it doesn't support more exotic characters either, which really sucks if you are not natively English speaking.


> If your software doesn't support spaces there's a reasonable chance it doesn't support more exotic characters either, which really sucks if you are not natively English speaking.

The problem with space is that it's often a separator, which will not be the case for exotic characters. Fixing issues with exotic characters will not necessarily fix issues with spaces, and vice versa.


I honestly prefer having these spaces. It forces tools to actually cope with them instead of pretending spaces don't exist and breaking when they do.


It's not as much issue with tools as it is an issue when working from shell. You have to make sure to quote such paths, and autocomplete gets confused sometimes when it auto-escapes the space with \


>In windows there's like a single place where you install all your stuff.

Open a cmd box and type

     PATH
How many folders do you see? They all count as places.

But I completely agree with everything you said about Linux!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: