Posted on 11/19/2013 6:44:17 PM PST by re_nortex
This article in in PDF form so be aware of that. Here's a snippet that's indicative of the overall style and the points that Mickens makes:
When you debug a distributed system or an OS kernel, you do it Texas-style. You gather some mean, stoic people, people who have seen things die, and you get some primitive tools, like a compass and a rucksack and a stick thats pointed on one end, and you walk into the wilderness and you look for trouble, possibly while using chewing tobacco. As a systems hacker, you must be prepared to do savage things, unspeakable things, to kill runaway threads with your bare hands, to write directly to network ports using telnet and an old copy of an RFC that you found in the Vatican. When you debug systems code, there are no high-level debates about font choices and the best kind of turquoise, because this is the Old Testament, an angry and monochromatic world, and it doesnt matter whether your Arial is Bold or Condensed when people are covered in boils and pestilence and Egyptian pharaoh oppression. HCI people discover bugs by receiving a concerned email from their therapist. Systems people discover bugs by waking up and discovering that their first-born children are missing and ETIMEDOUT has been written in blood on the wall.
(Excerpt) Read more at research.microsoft.com ...
Do you pine for the days when men were men and wrote their own device drivers?
/johnny
Widely acknowledged as one of the greatest scholars of his generation, James Mickens ran out of storage space for his awards in 1992, and he subsequently purchased a large cave to act as a warehouse/fortress from which he can defend himself during the inevitable robot war that was prophesied by the documentary movie The Matrix. In his spare time, James Mickens enjoys life, liberty, and the pursuit of happiness, often (but not always) in that order, and usually (almost always) while listening to Black Sabbath.
$1 to xyzzy at r.s.f.c. for the poast [sic] of the article. IMML.
Now that was funny. I have bled in that wilderness - debugged assembly language with a digital oscilloscope because there plain was no user interface. I’ve worked inside OSes, device drivers, and written my own real-time executive. I’ve lived through projects where getting output to a terminal was considered a huge leap forward in debugging capability. Your IDE is a luxurious syntax highlighting editor and make.
Computerwelt
In an announcement that has stunned the computer industry, Ken Thompson, Dennis Ritchie and Brian Kernighan admitted that the Unix operating system and C programming language created by them is an elaborate prank kept alive for over 20 years. Speaking at the recent UnixWorld Software Development Forum,Thompson revealed the following:
"In 1969, AT&T had just terminated their work with the GE/Honeywell/AT&T Multics project. Brian and I had started work with an early release of Pascal from Professor Niklaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power. Dennis had just finished reading 'Bored of the Rings', a National Lampoon parody of the Tolkien's 'Lord of the Rings' trilogy. As a lark, we decided to do parodies of the Multics environment and Pascal. Dennis and I were responsible for the operating environment. We looked at Multics and designed the new OS to be as complex and cryptic as possible to maximize casual users' frustration levels, calling it Unix as a parody of Multics, as well as other more risque allusions. We sold the terse command language to novitiates by telling them that it saved them typing.
Then Dennis and Brian worked on a warped version of Pascal, called 'A'. 'A' looked a lot like Pascal, but elevated the notion of the direct memory address (which Wirth had banished) to the central concept of the language. This was Dennis's contribution, and he in fact coined the term "pointer" as an innocuous sounding name for a truly malevolent construct.
Brian must be credited with the idea of having absolutely no standard I/O specification: this ensured that at least 50% of the typical commercial program would have to be re-coded when changing hardware platforms. Brian was also responsible for pitching this lack of I/O as a feature: it allowed us to describe the language as "truly portable".
When we found others were actually creating real programs with A, we removed compulsory type-checking on function arguments. Later, we added a notion we called "casting": this allowed the programmer to treat an integer as though it were a 50kb user-defined structure. When we found that some programmers were simply not using pointers, we eliminated the ability to pass structures to functions, enforcing their use in even the simplest applications. We sold this, and many other features, as enhancements to the efficiency of the language. In this way, our prank evolved into B, BCPL, and finally C. We stopped when we got a clean compile on the following syntax:
for(;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
At one time, we joked about selling this to the Soviets to set their computer science progress back 20 or more years.
Unfortunately, AT&T and other US corporations actually began using Unix and C. We decided we'd better keep mum, assuming it was just a passing phase.
In fact, it's taken US companies over 20 years to develop enough expertise to generate useful applications using this 1960's technological parody. We are impressed with the tenacity of the general Unix and C programmer. In fact, Brian, Dennis and I have never ourselves attempted to write a commercial application in this environment.
We feel really guilty about the chaos, confusion and truly awesome programming projects that have resulted from our silly prank so long ago."
Dennis Ritchie said: "What really tore it (just when AIDA was catching on), was that Bjarne Stroustrup caught onto our joke. He extended it to further parody, Smalltalk. Like us, he was caught by surprise when nobody laughed. So he added multiple inheritance, virtual base classes, and later ... templates. All to no avail. So we now have compilers that can compile 100,000 lines per second, but need to process header files for 25 minutes before they get to the meat of "Hello, World".
Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time.
Borland International, a leading vendor of object-oriented tools, including the popular Turbo Pascal and Borland C++, stated they had suspected this for a couple of years. In fact, the notoriously late Quattro Pro for Windows was originally written in C++. Philippe Kahn said: "After two and a half years programming, and massive programmer burn-outs, we re-coded the whole thing in Turbo Pascal in three months. I think it's fair to say that Turbo Pascal saved our bacon". Another Borland spokesman said that they would continue to enhance their Pascal products and halt further efforts to develop C/C++.
Professor Wirth of the ETH institute and father of the Pascal, Modula 2 and Oberon structured languages, cryptically said "P.T. Barnum was right." He had no further comments.
april fool...
/johnny
Similar to the Necronomicon, a C++ source code file is a wicked, obscure document thats filled with cryptic incantations and forbidden knowledge. When its 3 A.M., and youve been debugging for 12 hours, and you encounter a virtual static friend protected volatile templated function pointer, you want to go into hibernation and awake as a werewolf and then find the people who wrote the C++ standard and bring ruin to the things that they love. The C++ STL, with its dyslexia-inducing syntax blizzard of colons and angle brackets, guarantees that if you try to declare any reasonable data structure, your first seven attempts will result in compiler errors of Wagnerian fierceness:
Syntax error: unmatched thing in thing from std::nonstd::__ map<_Cyrillic, _$$$dollars>const basic_string< epic_ mystery,mongoose_traits < char<, __default_alloc_<casual_ Fridays = maybe>>One time I tried to create a list<map<int>>, and my syntax errors caused the dead to walk among the living.
Life is simple as a cook. You know how you did that day. When you walk away from the kitchen, you are done. And you never, ever have to disassemble and upgrade a meal cooked by someone else working for a company that no longer exists on equipment that can only be found in outer Mongolia. At a flea market.
/johnny
Made my night!
Been doing this since 1970 (FORTRAN) and 1975 (assembler) see my FR profile page for the rest....
Haven’t laughed so hard in a week! Thanks!
Thanks for the laugh. Been there and done that. Seriously.
:’)
I got nuts a week or so ago and downloaded some distros during the lunch hour, then transferred them to a flash drive yesterday, with a view to actually trying some installs on different geriatric hardware around here. :’)
Obviously you need a space between the >> so it recognizes the template declaration rather than a right shift. ;-) And hey, don’t be hating on the STL, doesn’t everyone love the fun little front() pop_front() dance to get a value out of a queue?
About the time I was downloading an EPROM so that I could disassemble the code off of it to recover lost source... yeah, I was longing for my teen years pumping gas. Or when you’ve been hacking so long your wife comes home and finds you writing code in the dark, wearing sunglasses because your eyes are about to bleed. Ah, memories...
good laugh. some bad memories (pun intended).
And for the rest of us who are thrilled each time windows starts when we turn on the computer. All the rest is just magic. :-)
Beat me to it. My hate of C++ was so intense I ripped it out of my resume, just as I did with PL/1 so long ago.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.