<div dir="ltr"><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">I would add one more important impact: making data a first class component of the computing environment.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">With the notion of pipes it became possible to operate on data quickly and flexibly.  There was nothing new from a fundamental capability point of view, but the ease with which one could construct pipelines enabled rapid experimentation and encouraged the development of pipe-able components to add to the tool set.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">I may not have articulated this as well as it deserves.</div><br clear="all"></div><div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Marc</div></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>=====<br><a href="http://nygeek.net" target="_blank">nygeek.net</a></div><div><a href="https://www.mindthegapdialogs.com/home" target="_blank">mindthegapdialogs.com/home</a><br></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 4, 2024 at 3:43 AM <<a href="mailto:sjenkin@canb.auug.org.au">sjenkin@canb.auug.org.au</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I was looking at the question of “impact of Unix" and thought that:<br>
<br>
        initiating (Portable) Open Source Software including the BSD TCP/IP & Berkeley sockets libraries,<br>
        the Unix -> Minix -> Linux -> Android sequence<br>
        and BSD -> NeXtstep -> OS/X -> iOS sequence,<br>
        plus running the Top 500 supercomputers and most of the Top 500 websites,<br>
        including the infrastructure for trillion dollars companies, Facebook, Amazon (Netflix uses them), and Google<br>
        plus so many embedded Linux / NetBSD based appliances<br>
        even going into space - on small experiments or driving SpaceX’s Falcon 9 & presumably Starship,<br>
<br>
would be a slam-dunk for “really high impact” <br>
        - dominating everywhere important, except Windows desktops.<br>
<br>
Unix wasn’t just a ’research project’, it was the result of years of work by a team of very capable, professional programmers,<br>
who weren’t looking for kudos or recognition, nor trying to add every conceivable ‘feature’ possible, but the inverse:<br>
<br>
         how _small_ could it be and still be enough.<br>
<br>
When it left the Labs, Unix wasn’t just “Performant”, it came with a very useful set of tools for creating other tools (‘developing’)<br>
and while the kernel wasn’t perfect (some ‘panic’s), it was of “Production Quality”. <br>
<br>
For v6, I believe there were patches for 50-100 bugs circulating, perhaps the first demonstration of “no bug is intractable with ‘many eyeballs’”.<br>
<br>
All that in under 5 years of ‘development’, with the “initial release” stable & performant enough for cash-strapped Universities<br>
to gamble their reputations & budgets on running it.<br>
Imagine the grief academics would’ve got if their basic teaching systems failed continuously!<br>
<br>
This adoption path pushed Unix through another barrier:<br>
<br>
         ’Security’ - with a lot of bright, bored & curious students banging on it as hard as they could for bragging rights.<br>
<br>
How long, in releases or years, did it take for other O/S’s to hit the “very stable” benchmark?<br>
<br>
I don’t know enough of Linux to answer that definitively, the *BSD’s grew there through usage and contribution,<br>
while Microsoft NT derivates widely suffered “Blue Screen of Death” for years.<br>
<br>
Even now, MS-Windows has serious Security / compromise issues, like the highly visible, global “Crowdstrike” event. <br>
Not a break-in or takeover, but an own-goal from Security perimeter control.<br>
<br>
==========<br>
<br>
I now think Unix has had a much larger, direct and important impact<br>
<br>
        - the C language and associated tools & libraries<br>
                 that begat modern toolchains and endless portability across platforms.<br>
<br>
In 1991, Bill Plauger had a year sabbatical at UNSW in Sydney,<br>
and happened to say :<br>
        “C is wallpaper - people expect it everywhere”.<br>
<br>
C gained formal recognition with the POSIX standard, satisfying conservative users / enterprises that it wasn’t the work of a bunch of Hippies or ill-disciplined Hackers.<br>
<br>
Even Microsoft wrote 32-bit Windows NT in C, I presume starting by writing it’s own compiler and toolchain to start.<br>
<br>
Borland, Watcom and many others - including Microsoft - offered (Visual) C compile & build environments for Windows,<br>
directly responsible for creating the ’shrink-wrap’ third party software market that drove sales of Windows and x86 machines.<br>
<br>
Nobody had seen a market for a billion systems before, nor sold 300M+ CPU’s in a single year.<br>
<br>
People don’t buy Silicon Chips or nice Boxes, they buy Applications that solve their problems:<br>
<br>
        Software drives Sales of Hardware<br>
         - something that IBM deeply understood first with first the 1401 line, then 360-series.<br>
<br>
<br>
The other ’small’ achievement of C and Unix was creating the market for RISC chips.<br>
MIPS in the mid-1980’s was only able to design and build the first commercial RISC chip<br>
because it knew it could port Unix to it and find an immediate market <br>
        - not at zero-cost, but a tiny fraction of what every other Vendor had done before <br>
                reinventing the wheel from scratch to provide incompatible O/S & tools for their hardware.<br>
<br>
Unix on MIPS not only came with a host of proven software, that a large pool of people knew how to use,<br>
but it arrived as “Production Quality” - the porting team had to test their parts - compiler, linker, libraries - hard, but could trust the existing high-quality codebase.<br>
<br>
In "A New Golden Age for Computer Architecture”, 2019 by Hennessy & Patterson,<br>
make an aside:<br>
<br>
        In today's post-PC era, x86 shipments have fallen almost 10% per year since the peak in 2011,<br>
        while chips with RISC processors have skyrocketed to 20 billion.<br>
<br>
        Today, 99% of 32-bit and 64-bit processors are RISC.<br>
<br>
i suggest this goes back to PCC followed by the MIPS R2000 - made possible by Dennis’ C language.<br>
<br>
The 1977 invention of ‘pcc’ and rewriting of Unix for cross-machine portability was the first time I’m aware of this being done.<br>
 ( Miller @ UoW did a one-off hack, not to devalue his work, he ported, didn’t invent a multi-target portable compiler )<br>
<br>
One of the effects of “portable C” was creating whole new industries for third party software developers<br>
or enabling niche products, like CISCO routers and the many embedded devices.<br>
<br>
C and Unix came with the tools to create new languages and new tools.<br>
AWK, sed (!) and shells are obvious examples, with Perl, Python & PHP very big in Internet of 2000.<br>
<br>
C was a new class of language - a tool to create tools.<br>
It creates a perfect mechanism to bootstrap any new language, tool or product,<br>
allowing to be refined & used enough to become reliable before being made self-hosting.<br>
<br>
Very widely used languages such as Python are written in C.<br>
ORACLE achieved its market dominance by providing ‘portability’ - exactly the same on every platform.<br>
Underpinned by portable C.<br>
<br>
The original 1127 team went on to create other systems and languages,<br>
not the least being a new Software Engineering tool, “Go” / golang,<br>
addressing a whole slew of deficiencies in the C/C++ approach and <br>
<br>
We’d have no Internet today without Apache written in C and being ported to every environment.<br>
<br>
Also, there’s a connection between C and ‘modern’ Software Engineering <br>
  - distributed Repositories, automated builds & regression tests, and the many toolchains and tools used.<br>
<br>
They tended to be built in C to address problems (Open Source) developers were finding with existing toolchains.<br>
‘make’ arose at Bell Labs to automate builds, along with PWB and Writers Workbench.<br>
<br>
There’s two questions / observations about 50 years of C in broad use:<br>
<br>
        - Just how much C is out there and used ‘in production’?<br>
<br>
        - C is ‘obviously’ a product of the 1970’s, not reflecting needs of modern hardware, networks, storage and systems,<br>
                but _what_ can replace it?<br>
<br>
                There is simply too much critical code written in C to convert it to another ‘better, modern’ language.<br>
                Any new language that is a simple 1:1 rewriting of C cannot address any of the deficiencies,<br>
                while any incompatible language requires redesign and reimplementation of everything - an unachievable goal.<br>
<br>
The Linux Kernel’s “rust” project shows the extent of the problem <br>
   - even with the best team of the best developers, its a mammoth undertaking, with uncertain payoffs, unquantifiable effort & deadlines.<br>
<br>
My thesis is that portable, standard C:<br>
<br>
        - not only co-evolved with other tools & needs to create the Modern Software Engineering environment, the basis for multiple Trillion dollar enterprises (FAANG)<br>
but<br>
        - drove the biggest, most profitable software market ever seen (Wintel)<br>
        - which drove sales volume of x86 chips (& DRAM, motherboards, LAN, GPU, monitors, peripherals…) over 2-3 decades,<br>
        - which drove Silicon Valley, paying for new generations of Fabs and lowering chip prices further & further<br>
        - and eventually created the Fabless RISC CPU company,<br>
                which in the Post-PC era absolutely dominates chip sales.<br>
<br>
No Software, no Silicon… <br>
<br>
Gordon Moore, in an early comment on his 1968 startup with Robert Noyce, said:<br>
<br>
        “we are the real revolutionaries" (vs Hippies & 1967 Summer of Love).<br>
<br>
I think Ken & Dennis [ and 1127/ Bell Labs folk ] can say the same.<br>
<br>
==========<br>
<br>
I’ve written some notes, with links to Programming Languages, especially Jean Sammet’s Histories,<br>
and would like some critiques, suggestions & corrections if people have time and interest.<br>
<br>
Unix and C are intimately related - neither was possible or useful without the other.<br>
<br>
i think there’s an interesting article in there, but I’m not sure I have what it takes to write it, not in a finite time :)<br>
Very happy to help anyone who does!<br>
<br>
Did-C-lang-create-modern-software-industry.txt<br>
        <<a href="https://drive.google.com/file/d/1k936sgqHc-vHBvfCdLoSxFhdT9NaijU2/view?usp=sharing" rel="noreferrer" target="_blank">https://drive.google.com/file/d/1k936sgqHc-vHBvfCdLoSxFhdT9NaijU2/view?usp=sharing</a>><br>
<br>
steve jenkin<br>
04 - dec - 2024<br>
<br>
==========<br>
--<br>
Steve Jenkin, IT Systems and Design <br>
0412 786 915 (+61 412 786 915)<br>
PO Box 38, Kippax ACT 2615, AUSTRALIA<br>
<br>
mailto:<a href="mailto:sjenkin@canb.auug.org.au" target="_blank">sjenkin@canb.auug.org.au</a> <a href="http://members.tip.net.au/~sjenkin" rel="noreferrer" target="_blank">http://members.tip.net.au/~sjenkin</a><br>
<br>
</blockquote></div>