UNIX redone (254)

1 Name: dmpk2k!hinhT6kz2E 2005-06-04 11:30 ID:IaN0/d9q This thread was merged from the former /code/ board. You can view the archive here.

We’ve all used UNIX or one of its derivatives. A lot of us use it for development and server applications. Quite a few of us love it. And I’m sure we’ve all got things we hate about it too. Is it time for a new Unix-Hater’s Handbook?

I have a few bones to pick:
a) Inconsistent command-line options:
Most programs use -- in front of their options. For example, mc --version. Some don’t, like dd, find, and other utilities from the Stone Age.

(backward compatibility, blah, blah, blah, it’s been several decades, blah, blah, blah)

b) Directory structure:
Yes, we’ve all heard the reasons why there’s a /bin, /usr/bin, /usr/local/bin, and /usr/local/*/bin, or why there are multiple library locations, or why there’s a /usr and /usr/local, etc. So what?

And then there’s the programs that think they’re somehow special so their default installation location is something like /usr/local/mysql (cough). Or libraries that think they’re special (hello, Qt, I hate you with a passion).

The directory tree is a mess, no matter what the reasons given.

c) Libraries and binaries:
Related to the above, all the binaries and libraries are thrown into a huge pile. Take a look in /usr/lib. Do you know what every library in there does? What its dependencies are? And what about /usr/bin? Don’t forget /usr/local/lib and bin too! And what happens if you have different versions of a library in /usr/lib and /usr/local/lib? Fun!

Yes, in this era of shared libraries and commands accessible from everywhere (ie, ye olde PATH), that’s one solution. Yet, while DOS didn't have shared libraries, its layout was a whole lot simpler. Want to install a program? Put it in its own directory. Want to remove it? Delete directory.

It's not that hard to devise a solution that combines simplicity and consistency with shared libraries and programs. Where is it?

d) The shell:
Zsh/BASH/tcsh, etc, are all a lot better than the windows world. On the other hand, shell scripting is amazingly ugly. Why isn't the shell more extensible? Perl may not be an ideal language, but the perl shells I've seen were a lot saner when it came to making shell scripts. Oh, sh and friends also have a convoluted configuration system.

e) Configuration:
I love doing a ls -la of my homedir. ~90% of the crap I see there are dot files. It’s like every program thinks it has a god-given right to throw a file in there.

And then there are the ones that don’t put a dot file. Nor a dot dir. Nope, they put a _normal_directory there (hello GNUstep, zinf). So now not only is my –la listing full of junk, normal listings are too. Thanks guys.

Why can't they standardize on something like ~/.config/* ? At least then there'd be only one uninteresting entry clogging up the file listing. It’s not that hard to cd .config to get at my settings.

f) Init system:
So how do you like your poison? BSD or SysV? Do they treat you well at night too? Or are you one of the crack-heads who made your own custom init system that uses a makefile so you can parallelize you boot? That makefile’s pretty brittle, huh?

People are having flamewars and religious arguments over BSD and SysV, but they simply both suck (although SysV sucks more, hah!). Maybe Apple is right? I don’t know much about initd, but Apple has a point.

g) Editors:
The major editors are all terrible. Emacs is a monstrosity that required bizarre key-combinations. Vi has that horrible dual-mode (and also has byzantine sequences of keys). I prefer vi myself, and I know vim can remove the dual-mode, but why aren’t there any sane and powerful default editors out there?

h) Library, library, on the wall...:
Since I’m one of the strange people in this world who still downloads source tarball and compiles, I’ve noticed an odd trend: more and more programs are making useless libraries. The developers think it’d be brilliant to put all functionality in the library, and leave some tiny stub program in the binaries.

Of course, nobody ever uses that library other than the original proggie. So why did they make a library in the first place? You’re writing a program, not a library.

Linux-land, at least, has gone library mad. They make and use libraries like it’s air. Then there are the fools who make major pieces of software that require either KDE or Gnome to be installed. And eventually we end up with several pieces of software that use either.

Nah, we’re not using GTK or QT, we’re going all the way, baby!

Wait, I’m running two desktop environments now? At the same time? WHY?!

i) ZOMG FREEDOM!
Does h) sound familiar? Do you often hear the refrain, “but it’s freedom to do and use whatever you want! Evolution! Yayayayay lololol!”

Guess what? As a user I don’t give two hoots about your freedom. I want a system that works, and isn’t held together by cruft and duct-tape.

Guess what? As a developer I don’t care about your fucking freedom either. I want a single API to target (and isn’t held together by cruft and duct-tape)!

Why do I have to use an additional abstraction layer so I’ll be able to use either QT or GTK depending on what’s available?! And what’s the whole deal with autoconf?

If you had a free hand, what would you wish was changed? Do you disagree with me? Flame away and show me where I’m wrong.

205 Name: #!/usr/bin/anon 2006-02-19 02:19 ID:Heaven

> This is part of it. However, OS X has pretty much achived making a user-friendly system out of Unix.

That's rather subjective, but nonetheless, not a conversation I'm interested in, nor do I see why it belongs on /code/. Programming has little in common with interface design.

> "More diversity in general" makes no sense, when no other OS comes close to Unix for running a server.

Well, that was kind of the point. Only one choice on servers => no diversity.

206 Name: #!/usr/bin/anon 2006-02-19 02:20 ID:Heaven

>>203
if you are a hobbyist, windows 98 can be enough. i used it for years.

207 Name: #!/usr/bin/anon 2006-02-19 02:28 ID:An+mbvwN

.config/ is a silly idea. It doesn't help organize anything because there's no reason for dotfiles in your home directory to be anything but configuration and other program-generated files. It's not an accurate name because dotfiles are used for other purposes: .w3m has cached pages and my bookmarks file in it, .bsflite has IRC logs.. It'd just be more typing for no reason.

208 Name: dmpk2k!hinhT6kz2E 2006-02-19 02:43 ID:Heaven

> It doesn't help organize anything because there's no reason for dotfiles in your home directory to be anything but configuration and other program-generated files.

I've reread that several times, and I'm still uncertain what you're trying to say. Could you please rephrase?

209 Name: #!/usr/bin/anon 2006-02-19 02:50 ID:Heaven

> Programming has little in common with interface design.

is now the funniest line in all thread, and a good insight into the UNIX mentality

> .config/ is a silly idea. It doesn't help organize anything because there's no reason for dotfiles in your home directory to be anything but configuration and other program-generated files.

No. Dotfiles can also be backups and temporary files for your own use (faster than /tmp). And it helps organizing stuff. But what about using Config/ instead of .config/ ? After all, it is something important and useful, exposing it would be a nice idea, then it'd contain one subfolder for every app, maybe in reverse-dns notation to do it really clean.
Oh, wait, it's already been fixed, as usual, by OS X.

210 Name: #!/usr/bin/anon 2006-02-19 03:02 ID:Heaven

>>208
What dotfiles in your home directory would not go in .config?

211 Name: #!/usr/bin/anon 2006-02-19 03:17 ID:Heaven

>>210, see >>209. Mostly backups.

212 Name: !WAHa.06x36 2006-02-19 13:48 ID:ho+qSQgc

> If you are an hobbyist, OS X can be enough in some cases.

If you use OS X for a server (remotely, at least), you're really just using plain old Unix. There's no significant difference.

> Well, that was kind of the point. Unix is the only choice on servers => there's no diversity.

Right. But then what does "promote diversity" mean? Going around saying, "boy, I wish there were more server OSes"? Writing my own OS?

213 Name: #!/usr/bin/anon 2006-02-19 17:42 ID:Heaven

>>212
Sure. You're already going around saying "Boy, I wish Unix was more to my liking", aren't you? Why would going around wishing for something else be less effective?

214 Name: #!/usr/bin/anon 2006-02-19 19:26 ID:Heaven

> There's no significant difference.

Push butan. Receive server up.

> But then what does "promote diversity" mean?

Plan9 and GNU/Hurd, of course!!

215 Name: !WAHa.06x36 2006-02-19 23:05 ID:Heaven

>>213

Because cleaning up Unix is marginally less of a pipe dream than someone suddenly creating a whole new OS with widespread support?

Or, I guess, Windows stopping sucking as a server OS. I really can't even imagine what the odds of that are.

> Plan9 and GNU/Hurd, of course!!

"GNU/Hurd" was a good joke to throw in, but unfortunately it doesn't quite work since that's just more Unix anyway.

216 Name: #!/usr/bin/anon 2006-02-20 03:07 ID:56krFIOL

>>215
GNU is not unix!

217 Name: #!/usr/bin/anon 2006-02-20 03:37 ID:Heaven

>>216
That's a hacker joke that really means "GNU is a clone of Unix", but good try.

218 Name: #!/usr/bin/anon 2006-02-20 03:52 ID:Heaven

>>216,217 GJ at ruining the joke by explaining it!

219 Name: #!/usr/bin/anon 2006-02-20 10:34 ID:56krFIOL

I knew someone would take that bait... I just didn't think they would be that retarded. I like this 56ker ID. I should get another modem and shotgun them for the AMAZING SPEED.

220 Name: hmm 2006-02-20 11:12 ID:Heaven

m

221 Name: #!/usr/bin/anon 2006-02-20 12:10 ID:Heaven

>>219

KAMI!

222 Name: #!/usr/bin/anon 2006-02-20 15:02 ID:Heaven

>>219
It was so unfunny I figured you were just confused. Next time you want to make a joke, try being funny.

223 Name: binhqx 2006-02-20 17:04 ID:Heaven

I always thought Hurd was a good idea. Particularly when you think of its clustering potential. Keep your kernel small and its dependancies minimal. Everything else can live in user space.

224 Name: #!/usr/bin/anon 2006-02-20 19:45 ID:56krFIOL

>>222
It IS funny though. GNU means GNU's not UNIX. Thus the proper response to calling GNU just like UNIX is to say that GNU's not UNIX.

225 Name: dmpk2k!hinhT6kz2E 2006-02-20 23:13 ID:Heaven

>>223
Why wait? Use QNX instead!

Talking about which, I just discovered that QNX was bought out in 2004. Ouch.

226 Name: #!/usr/bin/anonymous : 2006-05-13 13:38 ID:Heaven

UNIX is not user-friendly. But windows or macos X aren't either. Computers aren't for mouth-breathers regardless of what billy h. gates farts out of his upper orifice.

227 Name: dmpk2k!hinhT6kz2E : 2006-07-08 04:00 ID:Heaven

Today's catch:
_It doesn't have to be this way. Lisp programmers, for example, rarely write command line parsers because they can simply use S-expressions and use the Lisp reader to parse them. Moreover, Lisp programmers rarely have to learn new command line syntaxes for the same reason. S-expressions are a universal command-line syntax. Everything can be expressed as an S-expression.

Contrast this state of affairs with the unix command line syntax (or lack thereof). Because there is no universal syntax, the unix world is a Babel of dozens of different syntactic conventions. For example, sometimes the '-' sign is an operator (subtraction), sometimes it is a keyword indicator (the conventional command syntax), sometimes it indicates a function call (in conditionals in some shells), sometimes it denotes a range (e.g. in some regular expression syntaxes), etc. etc. etc. In lisp '-' has no special syntactic meaning. It is merely a constituent character like the letters of the alphabet._

228 Name: #!/usr/bin/anonymous : 2008-02-26 22:33 ID:Heaven

>>2

  • your *board still* **sucks,** __*NIGGER*__

229 Name: #!/usr/bin/anonymous : 2008-02-26 22:34 ID:Heaven

>>2

  • your *board still* **sucks,** __*NIGGER*__

230 Name: #!/usr/bin/anonymous : 2008-02-26 22:34 ID:Heaven

>>2

  • your board still sucks, __*NIGGER*__

231 Name: #!/usr/bin/anonymous : 2008-02-26 22:35 ID:Heaven

>>2

  • your board still sucks, __ NIGGER __

232 Name: #!/usr/bin/anonymous : 2008-02-26 22:35 ID:Heaven

>>2

    • your board still sucks, __ NIGGER __

233 Name: #!/usr/bin/anonymous : 2008-02-26 22:36 ID:Heaven

>>2

    • your board still sucks, __ NIGGER __
    • sucks,
    • __ NIGGER __

234 Name: #!/usr/bin/anonymous : 2008-02-26 22:36 ID:Heaven

>>2

    • your board still
    • sucks,
    • NIGGER

235 Name: #!/usr/bin/anonymous : 2008-02-26 22:37 ID:Heaven

>>2

    • your board still
      - sucks,
    • NIGGER

236 Name: #!/usr/bin/anonymous : 2008-02-26 22:37 ID:Heaven

>>2

    • your board still
      sucks,
    • NIGGER

237 Name: #!/usr/bin/anonymous : 2008-02-26 22:37 ID:Heaven

>>2

    • your board still
      1. sucks,
    • NIGGER

238 Name: #!/usr/bin/anonymous : 2008-02-26 22:38 ID:Heaven

>>2

    • your board still
      1. _fucking
    • 2. sucks,
    • NIGGER

239 Name: #!/usr/bin/anonymous : 2008-02-26 22:38 ID:Heaven

>>2

    • your board still
      1. _fucking_
    • 2. sucks,
    • NIGGER

240 Name: #!/usr/bin/anonymous : 2008-02-26 22:39 ID:Heaven

>>2

    • your board still
      1. **fucking**
    • 2. sucks,
    • NIGGER

241 Post deleted.

242 Post deleted.

243 Post deleted.

244 Post deleted.

245 Name: #!/usr/bin/anonymous : 2009-01-16 22:30 ID:Heaven

`multline
code`

246 Name: #!/usr/bin/anonymous : 2009-01-16 22:31 ID:Heaven

`multline \
code`

247 Name: #!/usr/bin/anonymous : 2009-01-16 22:32 ID:Heaven

multline 
code

248 Post deleted.

249 Name: #!/usr/bin/anonymous : 2015-09-09 11:32 ID:Heaven

ugh make a new thread if you want to continue >>1's topic

250 Post deleted.

251 Post deleted.

252 Post deleted.

253 Name: Anonymous Techie : 2022-06-29 13:30 ID:Heaven

        Worse is Better Wasshoi!!
     \\ Worse is Better Wasshoi! //
 +   + \\Worse is Better Wasshoi!/+
        ∬ ∬    ∬ ∬    ∬ ∬  +
   +     人      人      人     +
         (__)    (__)    (__)
  +    (__)   (__)   (__)     +
.   +   ( __ )  ( __ )  ( __ )  +
      ( ´∀`∩ (´∀`∩) ( ´∀`)
 +  (( (つ   ノ (つ  丿 (つ  つ ))  +
       ヽ  ( ノ  ( ヽノ   ) ) )
       (_)し'  し(_)  (_)_)

254 Name: Anonymous Techie : 2022-06-30 13:08 ID:Heaven

command line needs to die, this is the graphical user interface age

Name: Link:
Leave these fields empty (spam trap):
More options...
Verification: