UNIX philosophy is a meme

UNIX philosophy is a meme
a single larger program with lot of features to explore is better than muh piping 20 different programs

Attached: 1561804612011.jpg (1920x1080, 277K)

Other urls found in this thread:

youtu.be/86_BkFsb4eI
rationalwiki.org/wiki/Argumentum_ad_populum
docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessa
man7.org/linux/man-pages/man3/posix_spawn.3.html
microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf
twitter.com/SFWRedditVideos

Based.
Eunuchs was a meme from a time when computers maxed out at 2MB of RAM. It's time to drop that shit.

enjoy your 20 programs doing the same thing aka bloat

The truth lies somewhere in the middle.
The Unix philosophy works for certain kinds of tools and breaks down for others.
Non-interactive tools can be made single-purpose, but it's hard to draw the line.
Should ifconfig just display status information or should it also be an actual configuration tool?
Do we really need DNS to be separately set from the ip command? What do we gain, outside of a lot of confusion whenever you switch distros?
And the pipe itself is horrendous because it uses text instead of a structured format. Just look at ip's output - fucking unreadable without the color option, but perfect for machine parsing.
However, if you do use structured data for pipelining, then which program will be responsible for formatting that data when it's output to the user? Should it be done by the originating tool? Should it be done by the last tool in the pipeline? Should there be a dedicated pipeline tool for formatting output? Should there be an entire suite of those tools, like in Powershell?

ah, yet another meaningless fucking thread which will lead nowhere. i love it when catalog is filled with retarded posts like these crafted out of nothing but buzzwords.

>inb4 soothe

having dns and all that crap built into systemd is why systemd makes linux worse than windows and why executing a single line of code can break an entire system forever

10 rupees have been deposited to your redhat account.

there's a real problem with things being unnecessarily separate, especially with as much software as we've got nowadays, but i don't now if that has more to do with UNIX philosophy or fucktarded retard developers
somebody with a brain, remarkable

So, if I need/want a feature that is in one of those 20 elements of a single probram, I have to rebuild the program or else wait for the devs to (maybe) include what I want. I don't get how this is better than simply improving the one specialized program you're piping through - if it's anything more than just changing the arguments to it.

I think unix philosophers have a very different idea of what doing something 'well' means.

That is a stupid statement. If that's your workflow, you obviously don't know what you're doing. A bunch of immutable functionality is more your cuppa.

It's not dead, Unix shells were the larval form. Windows took it to the proper conclusion with powershell. I only run Linux aside from games but PS is absolutely superior across the board.

PS is far from perfect, but overall it's like Bash is a toy compared to Powershell.

The truth is all those "do one thing" programs should be libraries instead.

PS is a good idea but horrible implementation.

>muh systemd
resolved a seperate, optional daemon. In general, systemd adheres fairly well to the UNIX philosophy, it consists of many small tools that do one thing and do it well, and it includes the capability of combining those tools in a useful manner.

>The truth is all those "do one thing" programs should be libraries instead.
But what if, say, a tool does not have a switch for tabular output?
In that case you do need a "do one thing" tool.
Unless you are saying that the shell should allow you to invoke library functions at will, which actually sounds like an interesting approach.

beos was decades ahead of its time

I will never understand why anyone jerks off UNIX. It was fucking garbage that should have never left Bell Labs.

There's no reason for such a thing as a shell to exist at all. An OS should provide a library, a runtime for some language and a text editor. Shell is exactly this but ugly and ineffective.

So, you don't think there is any value in a relatively simple command-line tool to allow you to script various functions and/or programs together to achieve desired results? That is, you're perfectly content with what pre-packaged software and utilities give you? I sure hope you don't pretend to be much more than a hobbyist...

I think command line should be a programming language and command line tools should be library functions. You already have to learn a shell language to use it, why not learn something more useful.

>GetAdDickMyArse
Yeah... Simply ebin

Because most of the additional functionality that you require is already available in time-tested software in the *nix toolbox. If you need more functionality than that, then you need to move to a stronger scripting language - python, perl, etc. Called from the shell, BTW.

>And the pipe itself is horrendous because it uses text instead of a structured format.

Microsoft unironically does this in a superior fashion with Powershell. Everything is treated as an object with typing.

Everything in linux is considered as a file. MS reinvents the wheel yet again!

There is nothing wrong about refactoring the wheel.

I'm sure we can all agree that stone wheels are not the way to go.

He's saying to drop the "shell language" concept entirely and just make the command interpreter like one of those stronger scripting languages. Something like the Python shell.

Attached: 2019-06-30-081115_495x99_scrot.png (495x99, 10K)

>And the pipe itself is horrendous because it uses text instead of a structured format.
What's wrong with text? Why are people all of a sudden so textphobic?

That's why monolithic kernel designs are SO much better
>but they are, that's why everyone uses it
popular != good

Because text has a different structure for every tool and delimiters can also vary.
Parsing the output of any given tool generally devolves into an unreadable mess of regex.
With structured data, you can just say "give me column 1" or even "give me column 'asscancer'".
With text, your column 1 might include a whitespace, which you then have to filter out because it's not supposed to be a delimiter - at least not in that column. In every other column it might be a delimiter. Or it might not, willy-nilly.
One row could have "name surname", another could just be "name" and both could be the same semantic column.

Unix-style interfaces push a lot of busywork onto the user.

You'll be scurrying back to monolithic kernels the moment you realize how shitty microkernels are in terms of performance, in the mean time though, keep up the LARP

This is stale FUD
It's not 1980 anymore. We're long past the days of mach, and microkernel performance has progressed a lot in this post-L4 age. seL4/Genode is looking pretty good right now, it just needs more software and functionality developed for it/ported to it and such (as with any brand new operating system).
Also, even Google understands the superiority of microkernels. That's why their new OS Fuchsia has one.

>Fuchsia
You're not going to convince anyone by namedropping a toy project by the one company that's known for dropping their shit the moment they get bored of it

This desu. A good amount of programs should be done with unix philosophy in mind but some (generally the more complex user-oriented progarms) simply don't work with a decentralized mess of parts.

>you realize how shitty microkernels are in terms of performance

MINIX is installed in literally every modern Intel processor in existence, stop being fucking retarded.

How does that disprove what I said? Just because it's used everywhere doesn't mean it's not shit

tfw MINIX has more marketshare than even Windows or Linux.

Share dlls?

It means that performance isn't a fucking problem when a company using a microkernel for important low-level shit are shipping the fastest processors in the world.

Please get off of Jow Forums if you're going to be an ignorant shithead.

>and the guy who wrote it didn't get a fucking dime because of license autism

youtu.be/86_BkFsb4eI

Performance doesn't really matter when all you're trying to achieve is spy on your users

Why aren't you eating shit right now? Billions of flies can't be wrong, am I right?

we should somehow ban plebs and slavs

Minix is used for ICT and microcode updates as well as UEFI updates. Monokernels are fast, Microkernels are fast and reliable.

utterly btfo, resorting to ad hominem like that

rationalwiki.org/wiki/Argumentum_ad_populum

command line php basically does everything unix tools does in one single exe and you can pipeline internally

what was the unix philosophy meant to accomplish?

>Do one thing and do it well
>gather multiples of these into an OS
>a meme

Kys

>Unix design
>ever having an actual purpose instead of being simple happenstance

The end result is a bunch of basically incompatible tools that you can make work together by applying a lot of regex.

This system only works if there's some kind of enforced standard.
Standard pipeline format, standard parameter format, standard naming policy for tools, etc.
Also, you'd need to classify some of these tools as essentials, which should be developed either alongside the kernel or at least be mandated to be a coherent package.

The problem with keeping your programs simple is you're pushing off the complexity to your users, if you've seen how much reading it takes to use programs like sed and awk you'd realize this

Yes, I agree.
I'm going to go as far as to say that some redundancy in functionality is good.
It's perfectly fine and rational to have, for instance, both your file manager and your image viewer be able to browse images. The same thing may be more conveniently performed in different ways depending on the situation.
Thhe most ironic thing about the bloat boogeyman is that most "bloated" software is written in their beloved C.

There is absolutely nothing wrong with it.

I agree.

Attached: Dv8hiy5U0AAamFV.jpg (1200x1200, 269K)

Nothing, the Unix philosophy was merely an a posteriori rationalization of bad design decisions. Probably the most glaring example of this is the origins if the Unix filesystem hierarchy.
Legitimate complaints about software bloat were made by Wirth, who went on to develop Oberon, an OS written in the eponymous language which managed to be extremely lightweight, yet also well-integrated, much better than Unix ever did. The user interface, for example, is a mix of GUI amd command line, there is no real distinction. And most "processes" are just functions/libraries, in the spirit of Genera (which greatly inspired Emacs, even before GNU Emacs).
It is unfortunate that most people, evem on this board, believe Unix was somehow the only relevant OS that has ever existed, when it did many things worse than even older OSes. AT&T manages to lie and distort history to shill their broken OS, and now with POSIX they have managed to further poison the computing environment for years to come.

Attached: sento_isuzu.jpg (800x1133, 200K)

It doesn't remain modular though which is a core Unix philosophy value...

If you make it branch off into a bunch of linked dependencies you are doing more damage than if it were a single program.

elogind and apulse are programs to help to fill some stopgaps but there's nothing official and more components are pre-built assuming you have pulseaudio/systemd or one of the various systemd-tools

you can't always find a program that does what you want hence piping and all that shit.
it's faster to write something in bash than anything else if it's not complex. not sure why someone would be against sh so much.

>it's faster to write something in bash than anything else if it's not complex. not sure why someone would be against sh so much.
At least give it a sane syntax.
Powershell manages to do that. Let's ignore all of the other changes for this point.

>>Rust fags complain about C code being unsafe
>>Paradigm to keep it safe exists
>>Too stupid to understand something
It must be a meme!

different programs
DURRR I DON KNOW WHAT BASH SCRIPTING IS HURRR I DUN NO WHAT RESPONSIBLE BUG FREE PARADIGMS ARE SO BIG BLOATED VIRUS CODE IS FUN TO EXPLORE HUUUUURRRRRRRRR ANIME

This is how you know this person doesn't know anything about software, OS or any technology beyond fucking video games.

If you feel this way just get a console and babbys first smart apple phone like every other braindead normie and leave the tech shit to us. Fucking retard dunning kruger fags

Image having to compile something just to view logs or kernel messages.
>>DURRR YOU JUST MAKE IT A SCRIPTING LANGUAGE

Like.. BASH?!

Wow what an absolute fucking newfag.

It was meant to run the phone system in the USA.

The idea of piping came trying to automate telephone operators switching cables between circuits.

Unix (and all Unix like OS) is basically the backbone of the real world. It (and AS400) are what everything runs on. 99% of business. The Unix philosophy is unironically what allows the modern economy to exist.

Arguing against it and its methods not only shows hubris (a classic European trait) because you are somehow smarter than the smartest people on the planet, it shows ignorance. The people in this thread are not just dumb, they're dumb and arrogant. Many probably dislike it simply because its American tech

>>a single larger program with lot of features to explore

You mean and Operating System? :D :D :D

Fucking RETARD.

>sane syntax
that's a very subjective feature. i prefer bash, personally.

One large casket contain more bugs than many tiny caskets.

Attached: 1491638440951.jpg (460x460, 28K)

Oh cool, another stupid thread that's meant to create a flame war.

This post is so hopelessly pathetic and ignorant that I don't even know where to start.

T. Asshat

Isn't NT sort of a micro kernel?

The entire reason the shell exists is because the language most of the Unix userland was written in (C) was exceptionally bad for scripting and automation.
It became obvious that they needed a different language. This meant forcing everything written in C to be a separate process so that they could be "glued" together by the shell, and, together with the non-invention which are pipes, now they had to serialize and de-serialize data at every pipe, so much for the "universal interface" that text supposedly is.
Both Multics and Lisp machines never needed such things. Having most of the userland written in the same language used for scripting, you can just reuse the code directly. That's what meant by just a "library and runtime for some language".
You don't need a separate shell at all if the OS is written in a good enough language to begin with.
The only reason you not only believe it's necessary, but are also arrogant enough to claim people disagreeing with this supposedly know nothing about software is because your brain has become so hard-wired to the inferior Unix approach that you can't possibly conceive of anything different. You can't think of anything else. To you, an operating system MUST behave exactly like Unix. If someone dares do something different, he is ignorant.

Are you retarded? They needed a shell because C is a compiled language, and compiling every command that you need is fucking retarded.
And how would you launch a compiler without a shell in the first place? Do you just want it to be a GUI?

>They needed a shell because C is a compiled language.
There is nothing preventing you from interpreting C. In fact, interpreters, while uncommon, do exist. No language is inherently "interpreted" or compiled.
And even then, compiling a single command is often so fast you would barely even notice, even on older machines, although interpreting it would probably be simpler.
>And how would you launch a compiler without a shell in the first place?
You know, a function in the main programming language? A shell is after all, yet another programming language. You don't need a GUI at all for that. Even nowadays, Common Lisp has a function that is literally called compile-file, guess what it does.
I said it once, and I'll say it again. You still believe every OS must be like Unix. Realize that this isn't the case, as not only different (and better) IS possible, but it already existed decades ago, even before Unix.

Linux is essentially unusable because of its over reliance on the command prompt and the billions of commands in it.

It's not really the 1980's anymore and there is no excuse not to make things straightforward and functional especially in an environment where computers are more than a weird geek hobby.

Windows has its problems too but at least its slowly its getting better instead of being stuck in the past tied by some rancid philosophy nobody actually cares about.

>interpreters, while uncommon, do exist.
The only widely known interpreter is HolyC, but its author died.
GUIs are inferior to the command line, while you could spend 5 minutes clicking around I could write a command in a few seconds.

Ok, show us some command-line and intuitive blender or gimp, bro

GUIs are not "inferior". They are different. They are worse for some things, such as automation, but better for others, especially visually oriented tasks such as image editing or music composition.
Some form of CLI will likely still exist for the foreseeable future, but claiming it is the objectively best way to interact with a computer all the time is naive.
Even fucking TempleOS, made by someone who unironically said that niggers can't into CLI, had graphics and mouse support.

Nah you're wrong, the opposite is true, KYS.

Attached: geee_wizzz.jpg (644x924, 57K)

Lol, there's like 10 commands that get used 99% of the time.

I agree. An OS should be practically synonymous with a programming language. Ideally one where not everything is a string (looking at you, sh).

everything nowadays is just a bunch of redundant statically compiled binaries behind 10 load balancers all communicating with each other via rpc + protocol buffer
so we are still piping together 20 different programs, but with a bunch of network overhead too

Don't worry, the unitards realized this too. Almost every program has multiple responsibilities now.

And even back then it was a terrible, inefficient abstraction.
The fork syscall alone is a complete disaster that has ruined operating systems and their userspace for decades. And X11, my god. Compare the resource use of that to Amiga or Windows in the 80s and you see those being safer, much more efficient, much more pleasant to look at and much, much more resource friendly.

God, UNIX was a mistake.

Why don't you come up with something better then?

To add, the text output also means that UNIX tools can never, ever change their output format. Powershell can just add new key-value pairs to its objects and programs that don't read them are fine.
But if a UNIX program were to just add new columns to its output, all scripts that rely on the current order and amount of columns would break.
That's why most modern UNIX commands require you to set like 4 flags for them to be useful. Just look at netstat -tulpen, for example.

Instead of Fork? docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessa

The Positards eventually saw the light and pretty much copied that, via man7.org/linux/man-pages/man3/posix_spawn.3.html
However, fork() will forever be there for backwards compatibility: microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf

For X11? Well, Wayland also sucks, but at least it keeps being improved with new protocols so it will eventually be able to do what Quartz and DWN can do.

why don't people just write scripts for those 20 tools

Programs are obsolete, big or small. All of the software running on your computer should be one program, composed of late-bound functions separated into namespaces, all adhering to one calling convention. Don't pass text files between programs, don't serialize and deserialize buffers within the local machine - pass the system's programming language's native data structures between functions directly.

Attached: tk.png (900x717, 1.16M)

That paper is pretty interesting.
I was never was a real fan of fork/exec as a pattern, but didn't realize it was quite that bad.

Honestly, the real issue is that it was an absurdly early decision that seemed useful forever ago, and then was popularized because Unix was popular.

You're really fond of the Lisp Machine and seem to be obsessed.