Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v3unvu$21g4g$2@dont-email.me>
Deutsch   English   Français   Italiano  
<v3unvu$21g4g$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Lawrence D'Oliveiro <ldo@nz.invalid>
Newsgroups: comp.os.linux.advocacy
Subject: Command Line Versus Command Line
Date: Fri, 7 Jun 2024 10:38:55 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <v3unvu$21g4g$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 07 Jun 2024 12:38:55 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="21a6995757d724b8d83dd14f044d030a";
	logging-data="2146448"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+vyyYwSbHx287kXxrFWejp"
User-Agent: Pan/0.158 (Avdiivka; )
Cancel-Lock: sha1:ogPePAuWFZGKKhepvC1MMiZwS/Q=
Bytes: 2969

Microsoft copied its idea of the command line from Gary Kildall’s
CP/M, which in turn copied it from the DEC operating systems of the
1970s. This is just a simple string/array of characters. Implicit in
these systems is the idea that one program cannot directly execute
another; it has to go through a “command interpreter”, which has to be
given a “command” to “interpret”.

Compare the Unix concept of a command line: it is not a “line” at all, but
an array of strings. One program can directly execute another without
having to go through a shell: it can construct and pass this argument
array without having to worry about “special” characters that might be
(mis)interpreted by some CLI/shell intermediary -- unless you choose to go
through such an intermediary.

Those old DEC systems tended to have more complex syntax for their
commands than what is supported by your typical *nix command-line
program. But then, the sheer wealth of *nix command-line tools,
compared to what is available on Microsoft DOS/Windows/NT/PowerShell
and indeed all the proprietary OSes put together, shows that the
*nix-style command line is far more versatile. In *nix, most of the
sophistication is delegated to the shell language that is used to
invoke these programs, while the programs themselves can usually parse
their arguments using a fairly modest amount of code, with little or
no need for some more sophisticated command-line-handling library.

Just to reinforce the direction that Microsoft took, Dave Cutler,
the brains behind Windows NT, also came from DEC, where he was
part of a nest of Unix-haters.

So Microsoft’s recent rediscovery that “the command line is cool”
remains hampered by this brain-dead underlying architecture. The
requirement that most if not all process creation has to be mediated
by some command-line “shell” makes it quite clumsy to emulate the kind
of multi-process pipelines that are all in a day’s work on a Linux or
other *nix system. It also leads to some interesting security
vulnerabilities.