Back to: Why I want Bitcoin to die in a fire | Forward to: Commercial announcement

Over-Extended Metaphor for the day

Yesterday, after writing my way past the notional halfway point (both of the current novel manuscript, and of the trilogy it's the middle volume of), I went and over-indulged in food and drink with friends.

Over the beer, the conversation turned—for no sane reason—to computer operating systems. There being some non-technical folks at the table, I then had to cough up a metaphor to contextualize the relationship between Mac OS X and UNIX, thuswise:

There is one true religion in operating systems, and it is UNIX. Or maybe it's not the one true faith: there's an earlier, older, more arcane religion with far fewer followers, MULTICS, from which UNIX sprang as a stripped-down rules-deficient heresy in the early days of the epoch. Either way, if MULTICS is Judaism (and the metaphor is questionable at this point, for unlike MULTICS, Judaism is still alive), then UNIX is Christianity.

In the early days, the UNIX faith spread underground among nests of true believers; but they evangelized their friends and neighbours and gradually it began to spread in strange communities. And with the spread came the great split. By the mid-1970s there were two main sects: AT&T UNIX, which we may liken unto the Roman Catholic Church, and BSD UNIX, which we may approximate to the Orthodox Churches. And then lo, there were many schisms.

In an attempt to control the schisms, the faithful formed learned congregations who at major conferences defined a common interoperating subset of the one true religion that all could agree on—the Nicene Creed of UNIX is probably POSIX, but let us not forget the congregation of the X/Open Portability Group and others. The bishops and cardinals of UNIX were fierce in the defense of their own particular schismatic sect, and formed alliances to develop credos that excluded their rivals while cunningly embracing their temporary peers: thus was the holy war prosecuted.

Today, the biggest church within the Orthodox community—possibly the biggest church in the whole of UNIX—is Mac OS X, which rests on the bedrock of Orthodox BSD but has added an incredible, towering superstructure of fiercely guarded APIs and proprietary user interface stuff that renders it all but unrecognizable to followers of the Catholic AT&T path.

But in the late 1980s, the Catholic Church succumbed to the sins of venality and simony, demanding too much money from the faithful. And so, in 1991 or thereabouts, Linus Torvalds nailed his famous source code release to the cathedral door and kicked off the Reformation. The Reformation took the shape of a new, freely copyable kernel that all the faithful could read with their own eyes. This Protestant heresy spread like wildfire among the people but was resisted with acts of vicious repression by the high priesthood of Corporate IT (arguably in connivance with the infidel invaders from the Caliphate of Microsoft). The Linux wars were brutal and unforgiving and Linux itself splintered into a myriad of fractious Protestant churches, from the Red Hat wearing Lutherans to the Ubuntu Baptists.

Reformation came at a price: another wave of religious conclaves that tried to hammer out a common ground between the various reformed churches. (See also the Linux Standard Base, and also the internecine war between packaging systems such as RPM or DPKG—the correct way to print and bind a Bible. This was, arguably, won by DPKG, which should therefore be considered the King James Version of the Linux holy scripture.)

More recently, a deviant faith has sprung from Linux, grafting an entirely new user interface revelation atop the same kernel: Android, which true adherents of the UNIX faith (even die-hard reformed Church Linuxers) mostly deny the UNIX-dom of. Android is the Church of Latter Day Saints of UNIX: hard-working, sober, evangelizing the public, and growing at a ferocious rate. There are some strange fundamentalist Mormon Android churches living in walled communities under the banners of Samsung and Amazon, but for the most part the prosperous worship at the Church of Google.

Note that, as with all religion, those sects with most in common are the ones who hold the most vicious grudges against one another.

Is that clear?

217 Comments

1:

Don't forget the gnostic gospels like Idris and OS/9 and QNX, and the adopted pagan cults like AmigaDOS and BeOS and blatant grafts like Eunice and Interix.

2:

Ok, it's perfectly obvious where the "Beast of Redmond" lies in this metaphor, but where does it place VAX VMS?

4:

NT is descended from VMS.

The real Q where does ITS and its Descendant Primos and Dialcomos sit.

5:

Excellent post / analogy.

I especially liked "the correct way to print and bind a Bible".

6:

I particularly like Multics as Judaism - the root of the tree. That sets older mainframe and mini OS's as the various flavors of paganism against which Judaism set itself: the cult of Ashtarte, the Babylonian, Egyptian and Greek pantheons, etc. working for the VM/CMS's and RT-11's of the world.

Of course, back in the day, I was a Multician....

7:

It's important to remember:

"GNU is Not UniX" and "Linux Is Not UniX"

the disclaimer is built in.

8:

Only three questions left:

What is the religious equivivalent to users forced to use different OSes (e.g. at home, at the workplace)?

What happens if one uses a virtual machine?

And what is the OS of the big pantheons, i.e. Paganism or contemporary Hinduism?

9:

Virtual machines are the secularism of operating systems.

10:

Ok, it's perfectly obvious where the "Beast of Redmond" lies in this metaphor

Scientology? Greedy for money and suing everyone who looks at them the wrong way?

11:

OGH mentions the unmentionable, the Caliphate of Redmond, somewhere above.

12:

I must be really weird, but yeah, that all made nearly perfect sense to me.

13:

So, who is Richard Stallman? A Jan Hus who isn't staked but is still around to gripe at Luther for getting it all wrong?

14:

iOS, I suppose, is evangelical protestantism, and Plan 9 is the Society of Friends?

15:

Actually, IMHO Stallman would be akin to a John Calvin; you either are predisposed to using free software and thus saved, or already damned.

16:

Not really, iOS is a BSD based unix very similar to OS X. They even have the same development tools, and whole bunches of libraries are derived from NextStep. I guess you could describe it as culturally Catholic - has all the same traditions, but only observes the more popular holidays - as opposed to the more devout OS X followers.

If you have a smartphone, you almost certainly have a device equivalent to a high end desktop PC from about 10 years ago running either BSD or Linux.

17:

FWIW, it made me smile.
Then think about robot religious wars.
Which again, made me smile.

18:

That would mean that Charles Babbage and Ada Lovelace were Adam and Eve? Alan Turing would be Abraham and Ken Thompson/Dennis Ritchie the human/divine entity Jesus?

19:

So, iOS is Anglican?

20:

Well I was thinking of more of modern Ireland, France and Germany, where there are long traditions of Catholicism, but most people aren't too keen on the observance, they just follow along for the traditions, because it's what they grew up with.

Torturing the metaphor: piping application A into App B, is something our grandparents had to do, but we just use the "Share this pic using another app" icon.

Although speaking of Anglicanism, I understand the Queen is heavily involved as the head of the church. Recent OS X and iOS interfaces have been called Thunderbolt and Lightning, so I guess there might just be a Queen fan in Apple. I wonder who it could be...

21:

Err, Mac OS X is not Roman Catholic, but Orthodox, so iOS is most likely not Anglican.

Where I'm not that sure if Charlie means Eastern or Oriental Orthodox:

http://en.wikipedia.org/wiki/Eastern_Orthodoxy
http://en.wikipedia.org/wiki/Oriental_Orthodoxy

For the actual relations, see:

http://en.wikipedia.org/wiki/Non-Chalcedonianism

Eastern Orthodoxy and Roman Catholicism are, at least IMHO and the one of most guys not sitting on some rock in Greece only to be inhabited by males[1] not that far removed, and IIRC most RC hardliners favor reconciliation with them over the one with Protestants, though then, as Charlie said, the closer two strains, the hotter the infighting. If MacOS X is part of Orthodoxy, and iOS is its descendant, we could argue BSD Unix is the Patriachate of Constantinople or another of the four ancient ones,

http://en.wikipedia.org/wiki/Orthodox_Church_organization#Four_Ancient_Patriarchates

MacOS X is the Patriachate of Moscow,

http://en.wikipedia.org/wiki/Ecumenical_Patriarchate_of_Constantinople#Autocephalous_churches_formerly_under_the_Ecumenical_Patriarchate

and iOS is the Orthodox church in America:

http://en.wikipedia.org/wiki/Orthodox_Church_in_America

[1] Speaking of Athos and eggs and milk:
http://www.straightdope.com/columns/read/2383/is-there-a-monastery-in-greece-that-wont-even-allow-female-animals


22:

Do you expect the succession of Balmer to end up with a split as nasty as the succession of Ali ?

23:

VMs read the bibles as mere literature.

24:

Comparing Redmond with Islam doesn't really work here, since Islam very much belongs in the Abrahamic tradition.

One could probably make a stronger case that NextSTEP and its descendants are Islam, an offshot of the Orthodox faith but now very much its own thing. The older traditions are still tolerated, but viewed as suspect. I think Mac OS X can be compared to the shia, while iOS is sunni, and then you have the sufi GNUStep.

25:

Heinomatic: you are definitely going to Hell and it will, in the beginning, be Word.

26:

Some great comments coming in on HN: "I would have cast Jobs/NeXT as Constantine, bringing unix to the desktops of the common user."

27:

Due to another piece I'm currently writing, I read this entire article in Cate Blanchett's Galadriel opening-narration voice, and it works surprisingly well. Much that once was open-source is now closed, for none now live who can hack it; and lo, UNIX version 7 was given unto the race of Xenix administrators, who above all else, desire power.

28:

After some though I think this over simplifies it after all where do the really early OS's fit eg IBSYS BOS/360 - was trying to think how the triumvirate of DEC os's (RT11 RSX 11 and RUSTUs) fitted into the father son and holy Ghost

All UNIX variants could be considered protestant I was reminded of the very funny emo philips jokes. So linux distros are all baptists :-)

Once I saw this guy on a bridge about to jump. I said, "Don't do it!" He said, "Nobody loves me." I said, "God loves you. Do you believe in God?"

He said, "Yes." I said, "Are you a Christian or a Jew?" He said, "A Christian." I said, "Me, too! Protestant or Catholic?" He said, "Protestant." I said, "Me, too! What franchise?" He said, "Baptist." I said, "Me, too! Northern Baptist or Southern Baptist?" He said, "Northern Baptist." I said, "Me, too! Northern Conservative Baptist or Northern Liberal Baptist?"

He said, "Northern Conservative Baptist." I said, "Me, too! Northern Conservative Baptist Great Lakes Region, or Northern Conservative Baptist Eastern Region?" He said, "Northern Conservative Baptist Great Lakes Region." I said, "Me, too!"

Northern Conservative†Baptist Great Lakes Region Council of 1879, or Northern Conservative Baptist Great Lakes Region Council of 1912?" He said, "Northern Conservative Baptist Great Lakes Region Council of 1912." I said, "Die, heretic!" And I pushed him over.

29:

When I was playing too much Civilization II, I had a dream in which my science adviser told me, "I think we should research LAMBDA CALCULUS so we can build LISP MACHINES."

The breaking of the MIT AI Lab does seem to be filmed in the Peter Jackson style of the Second Age flashbacks in The Fellowship of The Ring.

30:

And this makes BASIC Sunday School stories that are overly simplified for children, but don't really relate to anything going on in the real world anymore.

31:

This is really pushing it, but I've a noting that there's a poem called something like "In the land of Redmond" and something like Tolkein's one about the rings.

32:

So, what is the NSA?

33:

Minix - some extreme hermetic/ascetic variation of early Christianity where you kinda suspect the adherents who do stuff like sitting on top of poles or getting sealed up in windowless cells for 40 years are more into the masochistic aspects than religion.

34:

The thing about analogizing the history of Unix with that of Christianity is that Christianity was dominant in its society for millenia, and I'm not sure Unix ever was. At least outside of academia, through the end of the 20th century and years into the 21st, it was always in an environment dominated by other operating systems (Windows, VMS, OS/360 and successors) which regarded it as a barely-tolerated intruder at best. Rather like the Jews.

So, if we analogize Unix to Rabbinic Judaism, what of the rest of the pre-history?

You can push the pre-history of these things further back: MULTICS was a designed successor to the earlier Compatible Time Sharing System. (Compatible with what? Batch Fortran, so far as I can tell.) And CTSS had an influence on the shape of Unix, too. Unix absorbed in toto its conception of what a computer utility ought to be, with files owned by individual users, an editor that could handle any sort of text, compilers that dealt with editor-format files as source code, the original RUNOFF text formatting program, and even a manual divided into multi-page "pages", each describing an individual program or library routine, with a synopsys of operation right at the top. Someone had to invent all that stuff; CTSS was where it happened.

So, if that's how things started, what of the others? MULTICS is the Judaism of the temple priests, an elaborate, ritualistic version of the original concept, full of pomp, ceremony, and elaborate totems, now defunct. Other timesharing systems that took similar ideas from CTSS (and similar university timesharing systems of the time) are Samaritans --- preserving the same holy writ, or something very much like it, but not adapting to the times and barely hanging on.

Which would make current Unix-alikes splinters of Rabbinic Judaism. And from Hasidim (including the hard-core Haredi who live in Israel while denying its legitimacy, since the Messiah hasn't come yet), to Orthodox, to various flavors of Reform and Reconstructionist... the problem with drawing analogies to individual flavors of tech is that there's just too many choices!

35:

I would have over-extended the analogy to say Microsoft was Scientology .. however in a twisted alternate universe where it became the dominant religion in the space of a decade.

The Cult of Apple requires no analogy.

36:

In the beginning was the command line.

(Oh wait, different religious historian…)

37:

@till: http://en.wikipedia.org/wiki/Anusim

I also wonder if you can stretch this metaphor even further, to account for the differences between RISC and CISC CPU architectures, and why one or the other is a better fit to any given operating system (maybe something akin to "is Man good or bad by nature").

38:

And a zealous group of monks (somewhat related to the Church of EMACS) is still working to bring about the arrival of the HURD, as prophesied by the Saint IGNUcius... seems like you nailed it! ;-)

39:

"Their tags shall blink until the end of days."

40:

In the beginning was the command line,
And the cursor did move on the green phosphor,

41:

No in the beginning was the plugboard :-)

42:

Early operating systems where batch ones basically a crude monitor type program true multiprocessing came later

43:


and the teleprinter did move upon the face of the paper tape.

44:

You really need Zoroastrianism in there somewhere. There is no religion more naturally binary than the faith of Zarathustra.

45:

Not really, iOS is a BSD based unix very similar to OS X.

Not really. iOS was derived from OS X. With a lot of feed back going back into OS X. (Some of it shouldn't make it back. 27" dual displays don't really work with the "touch" metaphor.)

46:

I also wonder if you can stretch this metaphor even further, to account for the differences between RISC and CISC CPU architectures, and why one or the other is a better fit to any given operating system

Liturgical services vs. preaching oriented services?

47:

The thing about analogizing the history of Unix with that of Christianity is that Christianity was dominant in its society for millenia, and I'm not sure Unix ever was.

Now we get into the debate about "what is a computer"? If you count iOS and Android shipments I think you get close to or surpass the Win installed base. Or at least we're headed that way.

48:

Interesting analogy. As others have mentioned it skips over huge early and still around and kicking installed bases of mainframe things. MVS and all it's predecessors. And the entire mini-computer thing in the 70s and 80s seems hard to explain to younger folks. They seemed to take over then vanished all in about 25 years. ModComp, Interdata, Wang, DEC, DataGeneral, Prime, and a few dozen others just in the US alone. Anyone here but me every see a TI minicomputer? I mean with real big (physically) disk drives and multiple terminals attached?

And to complete the metaphor there's a reason many debates about which THING is best in computing are called RWARS (religious wars). Logic isn't always front and center.

49:

Two short replies:

cdodgson@34:
There are a number of viewpoints with which to look upon the question of market penetration. From the desktop standpoint, UNIX and its ilk have only a trivial share. From the enterprise servers perspective, the tide of "Windows can do everything!" peaked well below 50% market penetration, and has subsided to fileservers for desktops, AD, Exchange, and sometimes Sharepoint. Around here, the description for companies trying to run enterprises on Win is "Bankrupt".

Charlie@0:
Again from the enterprise perspective, my one quibble: dpkg, no. More than half the non-Google-internal-OS servers in the SF Bay Area - and what I understand of other environments nationwide - are RHEL or CentOS. RHEL is doing the Solaris thing - stable, enterprise grade, compatibility, testing, etc. Companies dig that.

Desktop / end user perspectives vary widely.

50:

I'd have to dig out my copy, but didn't that Prophet, sorry Author, declare support for BeOS within?

Speaking as a former Taoist, of course (aka embedded systems running close to the metal - unless that just comes down to Voodoo...)

51:

Wouldn't transubstantiation and consubstantiation be a better metaphor? When the bell rings and the compile finishes, you have the actual executing instructions and not some substituted Microcode?

52:

So, if Android is equivalent to the church of the Latter-Day Saints, what does that make Cyanogen?

53:

Who needs one of those "operating system" things when you can run ROM BASIC?!

54:

When the bell rings and the compile finishes, you have the actual executing instructions and not some substituted Microcode?

Me thinks you are confusing P-Code vs. machine code and complicated instruction sets vs. reduced instruction sets.

55:

Calling OS X and iOS unix is stretching it a bit. Yes, they still have a POSIX API, although almost no one uses it, and a bash shell. But they no longer have the original unix kernel, file system, device driver architecture, or networking stack. Most users never see the original unix UI either.

It's more like saying modern Christianity is based on ancient Druidism. You can see the basic elements of the Druid holidays in Christianity, but that's all.

56:

I will shamelessly steal from the Unix-Haters Handbook to add that networks and distributed operating systems have further complicated the theology of operating systems. In for example NFS, one can decide that all gods are manifestations of the one divine essence, and therefore a setuid root binary on an NFS exported file system runs with full godly powers on other machines. More commonly though we find ourselves in a Greek / Roman polytheism in which they all conspire and compete against one another, and as such the followers of any god/goddess must turn on root_squash and nobody=-1 to protect themselves against the machinations of other deities.

And what are the correct theological terms for the modern trends of app stores and containers? Once upon a time, if a program began babbling wildly and distributing poisonous snakes among the brethren, the operating system assumed this was meant to be and took no action. Now though we have attempts to purify apps before they enter the world, and to restrain them should they attempt to deviate.

57:

"Today, the biggest church within the Orthodox community—possibly the biggest church in the whole of UNIX—is Mac OS X"

I believe iOS is actually the biggest church, although users don't have direct, unmediated access to the Host.

I'm not sure what religion it would be. It'd be a new, much larger offshoot of a smaller parental sect (OS X).

58:
Yes, they still have a POSIX API, although almost no one uses it, and a bash shell. But they no longer have the original unix kernel, file system, device driver architecture, or networking stack.

Mac OS is actually certified as UNIXTM.

For the rest: nobody uses the original file system any longer (*BSD these days use UFS2, which is very different from the original filesystem in V7); there was not really an original device driver architecture (cdevsw and bdevsw being about it, and yes, not in use by Darwin); and the original UNIXTM had no networking.

Your objections are ... not quite accurate.

59:

Nah, in the beginning was the loom.

60:

My lord, hating on MICRO$OFT in the comments, brings me back to Slashdot 1999.

61:

Who needs one of those "operating system" things when you can run ROM BASIC?!

Who needs ROM BASIC if you can run ROM Forth?

62:

Hmmm. I wonder where System z, which traces itself back to the 60s and probably still can run code from back then unchanged, fits in. It's too sober to be wiccan. Confucianism or Shinto?

And that make a Turing machine the string theory equivalent, with Alan as Darwin. And the counterpart to Dawkins would be played by Donald E. Knuth, mayhaps.

63:

What a funny account name I ended up with. I think the G+ sign-in isn't quite working right, Charles ;-)

64:

Anyone here but me every see a TI minicomputer?
Texas Instruments? If so, no, because everywhere I worked was a DEC, IBM or Prime house. But hey, we both know what minicomputers are.

65:

No confusion :)

I was referring to the micro programming that exists to translate compiled instructions for the CPU in a CISC architecture; it means that each instruction can take several cycles to execute. In a RISC machine, it's one cycle per instruction.

My first job after graduation in the late 1980s was writing hand-coded assembler for a VLIW SIMD machine built around a bit-sliced ALU running DSP algorithms... You know it's bad when the circuit diagrams are a primary debugging reference :)

66:

It's a known bug. AIUI if your name is already in use by someone else who's ever logged into the blog, then you end up with a funky URL rather than a human-readable name. If it bugs you, create a throwaway account -- all it wants is a name and password.

(The sole reason for making commenters log in is that it deters about 90% of spammers before they even get started.)

67:

Maybe Windows is something like Zoroastrianism? I thought that was a bit fundamentalist, shall we say, with rituals and set ways of doing things, without which you can't get anything done.

68:

Yes OS X is a real certified UNIX™ like Solaris, AIX, HP-UX, IRIX and a few others. Linux and BSD are UNIX-like. From Wikipedia : "The most common version of Unix (bearing certification) is Apple's OS X, while Linux is the most popular non-certified workalike."

69:

@52: "So, if Android is equivalent to the church of the Latter-Day Saints, what does that make Cyanogen?"

Jack Mormons.

70:

Apple has sold more than 700 million iOS devices since 2007 and Google has activated more than 750 million Android devices. The oldest devices will have been retired but since sales were much lower in the early years and are still increasing the installed base of mobile devices running on UNIX (like) OSs is probably over a billion.

71:

Perhaps Apple is better thought of as Sun Myung Moon's Unification Church (aka 'the Moonies'). Based on Christianity but with some distinctly odd admixtures.

72:

@59:
Nah, in the beginning was the loom.
---
And it was a real-time system!

73:

@69: "Jack Mormons"

Very good. So, do we consider the Cyanogen adherents to be unbaptized sympathizers or lapsed, friendly members?

74:

The Spanish Inquisition?

Anyway, I run on bare metal.

Atheism FTW !

75:

Ah, nobody expects the Spanish Inquisition.

Now, the Linux Inquisition...

Our chief weapons are fear, the command line, and a ruthless adherence to POSIX!

76:

Assembler is for atheists. And you're only doing it right if you hand-switch the relais.

77:
The thing about analogizing the history of Unix with that of Christianity is that Christianity was dominant in its society for millenia, and I'm not sure Unix ever was. At least outside of academia, through the end of the 20th century and years into the 21st, it was always in an environment dominated by other operating systems (Windows, VMS, OS/360 and successors) which regarded it as a barely-tolerated intruder at best. Rather like the Jews.

You've never lived and worked in the Bay Area, have you? Unix is dominant here. If it's a mixed environment, generally, the other system is what the accountants and marketers use.

Also, Unix systems dominate the web server market (and, really, any server connected to the open internet, really, web or otherwise). I'm pretty sure this has been true since shortly after BSD got a TCP/IP stack.

78:

Jeff ironically SV never had a real old school computer company IBM and the US members of the 7 dwarves plus DEC where mostly all east coast based - (Btw where does Leo fit into this and the ICL George series of OS's)

SV only really had HP and they only dabbled in computers they here more a calculator / instrumentation in the "you have to ask you cant afford it" camp until they started making printers and "princess" led them into perdition.

79:

Linux doesn't have the original kernel either, and OSX has got the standard UNIX API and shell and file system model deep in its core, and does a better job of integrating them with the GUI through osascript than any X11 based system does.

SEF has it right, OSX is completely UNIX.

The thing is, even the pagans (VMS, NT, and IBM's various operating systems) have incorporated UNIX. Sometimes literally, in the case of IBM's penguin farms, but you can get a functional UNIX shell on VMS, and NT borrowed heavily from UNIX in its file APIs (don't forget, the flat stream-of-bytes file model was a huge break from traditional operating systems, not even Multics went that far in hiding record access).

80:

"Anyone here but me every see a TI minicomputer? "

I'll see your TI and raise you a GEC 4000. Or even a Marconi Radar Systems LOCUS 16 :-)

81:

Raise a Data General Nova and a DEC PDP 7 cluster.

82:

It'd probably work better to compare it to really early Christianity. Microsoft is the Roman state religion, the UNIXes are the infighting branches of christianity. My early Christianities history just isn't good enough to overextend it, but it probably works.

83:

If DPKG is the King James Bible, then, as we all know, it was written in vi (Old Testament) and vim (New Testament). Only Apocrypha were written in...shudder...EMACS.

I guess then the Dead Sea Scrolls were written in ed, which is the One True Editor. Before that all was passed orally from one to another with echo and pipes.

Not sure what was written in pico.

84:

What, no love for the Appalacian snake-handlers of OS/2 Warp?

Didn't think so...

85:

Re GEC 40000 so wonder what OS4000 count as :-)

86:

I'm generally pretty happy that Unix-based OSs are gaining ground over Windows, having started using OSX/Ubuntu in my work. Coming back to Windows and trying to port my Python code feels clunky and awkward, although OSX's lack of inbuilt apt-get alternative doesn't help this. Not that Windows is anywhere near dead, but supporting it as an afterthought is more and more appealing, especially if you jump to mobile development.

Also I'm amused that, having started out on an Acorn Archimedes, I still have an ARM processor in my computer to this day, even if the computer calls itself a phone and looks nothing like the beige floppy-disk-driven behemoth we had parked in our study when I was five.

87:

Er, vi is a text editor (direct mode) or text processor (batch mode).

88:

So what about Plan9 and Inferno? Perhaps they are gnostic sects that have kept alive the original dogma long-forgotten by the heathens: everything is a file. EVERYTHING IS A FILE!

89:

That's more than a metaphor -- it's a metaphive at least, maybe even a metasix.

90:

It's interesting that you would link Android to the smaller of the two major Mormon sects; the Church of Jesus Christ of Latter-Day Saints claims some fifteen million members (though perhaps only ten million identify as such), while the one you linked to, formerly known as the Reorganized Church of Jesus Christ of Latter-Day Saints, has around a quarter million members.

91:

I'm surprised that no one has mentioned Tenex and TOPS 20. When I started at the University of Utah in 1973 they had two PDP 10s running Tenex. One was single user and the other was a timesharing system.

For a while Tenex and its successor were the one real rival of UNIX in academic computing. You might liken it to Mithraism in relation to Christianity.

DEC chose to kill it off in favor of VMS.

92:

While I appreciate the deliciousness of metaphorising Linux as the "Protestantism of OSes"...

I do have to point out that Android isn't actually related to Linux other than by the virtue of it being the OS on which it runs.

That may sound like a nitpick, except that Xamarin has ported Android to Windows where it works quite well. This is because the core of Android is essentially a Java VM, not an OS (well, one could argue that a Java VM *is* an OS, and that's probably valid - just not Linux).

People who use Android as proof of the popularity of Linux miss two huge points: the first is above - Android isn't Linux, but the second is actually much more entertaining.. because to get people to actually *like* Linux - someone had to write an entire second OS in a VM, then place it like a bag over the head of an ugly sexual partner in order to hide the underlying mess in order to get anyone to like it.

I'm not quite sure who would consider this a 'victory'...

Well, other than Linux fans... of course.

93:

@92

"a bag over the head of an ugly sexual partner in order to hide the underlying mess" isn't much of an metaphorical extension of orthodox religions in describing their various schisms based on personal revelation and other kind of religious reform.

And no, there doesn't seem to be a metaphorical berth for atheism in this. Corporate orthodoxies oppose schism and independence, and open source gravitates towards destructive fads like pulseaudio or millenarian crypto-paranoia. There doesn't seem to be much more than the barest of specifications for atheist software, which would be put together with transparent and self-documented tools at every level. Instead, everything's a priesthood... especially assembly. People that code assembly are the inner circle, the enforcers and bankers of orthodox and reformed circles alike. They may not be committed in their hearts but as long as they are held down to corporate hardware and corporate lives in the real world, they provide their functionality and don't stray far.

94:

Your version breaks; the foundation of Microsoft post-dated UNIX by several years, and the Windows OS family is of another lineage -- originally a rip-off of CP/M with a rip-off of MacOS bolted on top, then they swapped out the bastardized CP/M by-blow and replaced it with VMS. Moreover, CP/M itself was a cut-down partial copy of DEC minicomputer OSs of the 1960s.

Basically, the Windows lineage doesn't fit on this map at all. Approximating it to Islam -- large, aggressively hegemonising warrior religion invading and conquering the territories of the bickering mediaeval Christian sects -- is just an approximation based on behaviour rather than ancestry.

95:

Well, you know, mormons are so thin on the ground in this city that I don't think I've ever met one to ask which sect they belong to ...

Edit: Per wikipedia, "As of January 1, 2011, The Church of Jesus Christ of Latter-day Saints reported 26,826 members in 5 stakes, 40 congregations (27 wards and 13 branches), 1 mission, and no temples in Scotland." That's less than 0.5% of the population. However, it seems high. The wikipedia entry went on to add: "The 2011 Census in Scotland found only 4,651 people reporting that they belonged to the Church of Jesus Christ of Latter-day Saints" and notes that there are no LDS temples in Scotland. Which sounds more like it to me; I suspect the Church itself is padding the numbers to make them sound less dismal.

96:

The LDS church sends his young adults all around the world to be missionaries for a year or two. They end up in the strangest places. Even here in Eindhoven in the south of the Netherlands. And it seems they always travel in pairs. I had a hard time understanding their english, like they were speaking a very strange american dialect that had no connection to any known from TV or movies.

97:

There is only one Orthodox Church, as there is only one Catholic Church.
The head of this Church resides in Istanbul.

Great article!

98:

Not strictly in Edinburgh, but just outside the bypass; we live about 100yds from a fairly large LDS church. One of my colleagues for three or four years was a Mormon; genuinely lovely bloke, didn't realise it for the first three years until we saw him and his wife driving out of said church.

(When he mentioned once that he'd spent a gap year prior to University working as a volunteer at an orphanage in Russia, I'd assumed that he'd been brought up in an evangelical family. We got along very well - I may be an atheist, but I respect people's private beliefs. I've got a lot of time for people who practise as they preach, especially for someone who would graft fairly selflessly in lousy conditions to look after the worst-off).

Even given the proximity of the LDS church, I think we've only ever had two cases in the past fourteen years of terribly polite and well-dressed young men ringing the doorbell to proselytize...

99:

Great post. CS languages and OSs are as arbitrary as human languages and religions. But religions are an authentic and poignant comparison to OSs.

It is fascinating to think of how the constraints of empiricism (the physical world) coerce the OSs. OSs must be tied to some technology, and technologies are tied to physics and our understanding of how to manipulate matter/energy. Make a device smaller, faster, more portable, more energy...all of these factors play a role on how the OS will be transformed. And OSs must evolve since they interface between humans and the technology and this interplay is necessarily competitive. Though the competitive process is far from rational, equitable and, most unfortunately, aesthetically pleasant (think MS products).

100:

till@8:

"What happens if one uses a virtual machine?"

That would be an ecumenical matter.

Heinomatic@18:

"That would mean that Charles Babbage and Ada Lovelace were Adam and Eve? Alan Turing would be Abraham and Ken Thompson/Dennis Ritchie the human/divine entity Jesus?"

How about Gödel as Lucifer?

And as everyone knows, seL4 is The One Provably True OS.

101:

Now we've got to 100 posts
( & I note that BASIC has already appeared )
How about the true language for serious programming: FORTRAN.
??

102:

"The 2011 Census in Scotland....I suspect the Church itself is padding the numbers to make them sound less dismal.

Or perhaps baptising the Scottish dead?
The only Mormon I've halfway known was a kid in high school. I wonder if he was kicked out after coming out of the closet --assuming he ever realized he was in one.

Sorry, I got nothing to add to the actual discussion, my first computer was an Atari 800. I've never known much about the about the Holy Wars.

103:

I've a friend who makes a living doing contract COBOL programming on IBM iSeries machines (I think she said).

104:

It's fun to read, and I appreciate the talent required to create such on the fly when friends put you on the spot. Still, it seems a silly sort of question. We've reached the point where, outside of select groups of professionals, all OSs fall under the broad description of "a multitasking kernel, a batch of services (files, network, video, audio, etc), with a GUI bolted onto the front." Most of the religious wars these days are about the GUI. Which one is prettier? Touch for desktops? Will Apple force the iOS GUI on Mac users? Has MS dumbed it down to much? Or my own, "Why the hell can't you give me something that can do a good approximation of a pen and paper?"

In the spirit of the "I remember older OSs than you do" comments, and with GUI debates as the important religion, some of us were fortunate enough to use PLATO terminals in the mid-70s. A relatively huge metal box with a small, orange, gas-plasma bitmapped display and a keyboard that looked like some hobbyist had assembled it out of parts from the garage. Most of the application processing happened on a mainframe back in Illinois, but they provided a lot of the services that are popular today: e-mail, chat rooms, real-time multi-player games, and so on.

105:

Yes I was surprised by how close CP/M was to RT 11 tokk me ages to work out digital research wasn't a subdivision of Digital and of course originally the IBM came with the option of CPM/86 as well as PC Dos.

106:

"Testify brother testify!"

Surprised that FORTRAN hasn't got a shout out in the laundry series as I suspect that Bob has to work with legacy code.

Redoing the services tools in kiddy c and c++ would be risky as the consequences of a memory leak are a bit more drastic viz you brains get splattered over the ceiling if your lucky - the other option would be ADA but case night mare green would be over by the time the port had been finished.

There is a great answer on quora where some script kiddie is moaning about how physicists prefer FORTRAN to more modern languages the first line is "because this is hard fucking work" :-)

ps yes I have built billing systems in FORTRAN :-)

107:

Basically, the Windows lineage doesn't fit on this map at all. Approximating it to Islam -- large, aggressively hegemonising warrior religion invading and conquering the territories of the bickering mediaeval Christian sects -- is just an approximation based on behaviour rather than ancestry.

I think that Islam is a bad match for MS windows, for one the strong desire to accumulate money is missing. Also the tendency to use lawyers to overpower their enemies fits much better to Scientology.

And your characterization of Islam might as well fit for the RCC: aggressively hegemonising (Europe until 16th cent, America 17th-19th cent.) warrior (templars) religion and conquering other Christian sects (about all wars in Europe from Albigenser crusade until 30 year war).

108:

Also #98 - There's a building described as the "Church of Jesus Christ of Latter Day Saints" about a mile and a half from where my mother lives. Even with self-selecting bias that's 2 Scots managed to identify the locations of congregations.

109:

You can write Fortran in Ada; Been there, done that, got the tee-shirt for not just a successful compilation, but linking and executing the code with results matching an earlier bench test.

110:

That's the problem with converting big fortran systems to c++ the amount of work to reprove the model is immense.

I laughed at a recruiters whose trying to find C++ guys to convert a big Fortran CFD system would be cheaper to retrain C or C++ programmers.

111:

Surprised that FORTRAN hasn't got a shout out in the laundry series as I suspect that Bob has to work with legacy code.

He coded in Fortran like hell,
wrote programs with whistle and bell.
Now feels that this tool
has made him a fool
but cannot get rid of its spell.

From a 1970s volume of software proceedings, I think.

112:

Fortran

I THINK it was the 3rd language I learned. IBM 1130 assembly was the first (actually bits but ...) then APL then Fortran. Back in 72 I think.

Then a few years later there was this circuit analysis program the university had that was written in Fortran. Some of us thought it would be neat to extend some of it's features so we looked at the source code.

Thud (sound of head hitting the desk.)

The Fortran was just a front end to the input processor and output formatter After the input was processed the Fortran code filled these big arrays with all sorts of bizarre floating point numbers then executed a jump to the address of the arrays. They were basically custom filling the arrays with IBM machine code tweaked based on the circuit definition to have the machine code do the analysis. This thing was a few years old and when first written apparently the speed up was that noticeable.

We sort of dropped the idea of modding the program.

This was running on an IBM 360 model 50 or 60 at the time.

113:

Microsoft is a different family of world-organizing memes: city-states, feudalism, empire, colonialism, mercantilism, the White Man's Burden, "free markets", globalization. It is difficult to wholly separate the early Protestant church from opposition to the Holy Roman Empire.

114:

That's the problem with converting big fortran systems to c++ the amount of work to reprove the model is immense.

... because of nasties like these:

You used to call me paranoid
FORTRAN
But even you can not avoid
FORTRAN
You swore that ENTRY's a sure road to ruin
Now here you are with old code
COMMON blocks are misaligned
Assigned GOTOs disturb your mind
And you cannot handle FORTRAN

That's one verse of a filk song I've found, "FORTRAN" by Thomas Koenig.

115:

So we had the prehistoric religions of Pascal and Leibniz, who donned masks of gears and shook digit wheels over French tax collectors to bless them. Their masks grew more complicated, but still basically the same. Babbage drew the most ornate masks of all, made primarily of shiny brass, but didn't actually construct them and wear them, though modern replicas by paleoarcheologists do exist. Babbage did foresee that all the shamanistic practices could be subsumed into a Druidic faith, worshipping a single entity and all that follows from it. But it never caught on, and is only followed by people who dress up on weekends.

116:

Depends whether your Mum lives in/near Dalkeith - have you considered that we're talking about the same location?

On the other hand, it would never hold 4k+ worshippers, so given that the nice guy I mentioned comes from Dundee (ish), two locations at least.

117:

I see your point, but I knew you were talking about somewhere near Embra and my Mum lives near Glasgow, so that makes 3 locations. It still doesn't mean that they have many worshippers, just that they are findable if you ask the right people.

118:

If you really want to talk about non-UNIX UNIXes, you need to go back to the late 1970s and early 1980s for things like Whitesmith's Idris, Alcyon's Regulus, and Charles River Data Systems' UNOS, and then HP-UX on the HP 9000 Series 500, where HP (a UNIX licensee) rewrote the System III and then System V kernel in a Pascal-like language called Modcal and ran it on top of a somewhat smaller operating system called SUNOS (no relation to Sun Microsytems).

Reading sef's reply makes me think some more about that HP-UX. The underlying on-disk file system was something HP-peculiar called Structured Directory Format or SDF, and one of the the differences was that the notional parent directory was maintained in the SDF directory header so there was no need for a ".." directory entry. So there wasn't one, but there was code here and there to do what was needed to handle ".." in names and show one for "ls -a".

It's an interesting question, what is UNIX? Now there are standards and certifications. Then, I think there was a case for saying it's what is described in section 2 of the manual, because if you had that working, and a C compiler, you could probably get the rest of it going.

119:

mjwalshe @ 106 & David L @ 112
Well, I'd learnt simple uncompiled BASIC by 1973, then got introduced a year or so later to FORTRAN IV.
80-chars-per-line punched-card-stack read-in.
An IBM "mainframe" ( System 360 IIRC - don't laugh) with less than 10k of memory.
It certainly made you think carefully.

gravelbelly & paws @ 116 & 117
Dalkieth?
That is horribly suspiciously close to Rosslyn, isn't it? If you are talking about international religious orders & strange mystic rites?
Even without cloning off substitutes to distract the opposition & multitask your projects.....

120:

And Greg? I've not been saying where, but my Mum lives West of Glasgow, which isn't that near Rosslyn in terms of trip time.

121:

Since you bring up Rosslyn, I have a somewhat relevant surname, and I drive or cycle through Roslin Glen on my way to or from work.

But it's rather an anti-climax. I've never been invited to join any conspiracies, don't have a cowl, robe, mask, or secret sign; and have never taken part in any midnight ceremonies that didn't involve either alcoholic indulgence and loyal toasts, or strictly sober declarations that no, the Guard are in good order, the bars were now closed, the last soldiers had crawled back from the delights of the local township, and that as Duty Officer I could now sod off back to bed and let the Guard Commander carry on...

...I'd thought you'd suggest the town of Temple instead (just up the road).

122:

Paws
It was gravelbelly who mention Roslin/Rosslyn.
I hope people noted the reference to the "Institute" as well?

123:

oops
Forgot - gravelbelly - your surname isn't "Sinclair" perchance?

124:

The NSA is the Inquisition, putting us and our systems to the question, to save our immortal souls from terrorism.

125:

Yes, I had a pair of 960's running ATM test stands through the early 90's. I got the job because I had used a microcomputer version in the 1970's.
Hardware had a large, single bit IO space called CRU, somewhat similar to the byte or double wide IO space on x86. Used in process monitor apps to monitor switches, thermostats, etc. and actuate valves, relays, etc.
Boxes I had loaded code from cassette tape in a TTY terminal, with a very small rom loading a first stage boot. Emergency boot was loaded from front panel switches, with blinkenlights and a single step switch for debug. Software was written in Fortran and TI assembler, Instruction set was load-and-store, similar to IBM 360.
Ancestor hardware was the guidance system for Miniuteman. Packaging was quite different, the guidance system was rated for 300 G during launch, missile was solid fuel.

126:

Be careful, OS/2 is still running ATMs somewhere.

127:

Fortran is out of favor, most programmers cannot handle languages older than they are. C will follow soon. What were you doing at midnight GMT, Jan 1, 1970 ?

128:

Nobody has said CDC yet, with Kronos and NOS as operating systems. Cray design, 6 bit words, 60 bit floating points.

The closest ref was PLATO, which ran on CDC in ?Champaign, Illinois?. Bill Norris of CDC supported it until his death. Predecessor of MOOC masses ?

129:

I'm trying to work a Cthulhu cult into this somehow but I'm drawing a blank. Anyone?

130:

@ 129
Err PS/2 ??
There was a wierd & wonderful "language" beloved of computer-department academics in the 70's ( Though it started much earlier, IIRC) that did not have any apparent input/output procedures, which struck me as utterly loopy - ah, my memory has returned ...
ALGOL.

131:

OR SQL, the "language" with no Booleans.

132:

Ah, ALGOL. The language that put me off computers and programming for life.

(I accidentally ended up having to code in FORTRAN in a job, and realised there were languages not quite so bad and I could actually get along with computing. Yes, Virginia, there are languages out there worse than FORTRAN.)

I seem to recall that Pascal had some of the same issues that I/O was a pain. But then it was a teaching language. And amusingly you've got a clear line of descent from ALGOL-60 -> Pascal -> Object Pascal (Delphi) -> C#

133:

See "Beyond the Wall of Sleep" H P Lovecraft: Algol.

134:

Not just any Algol, but Algol 68 (E). How about Coral 66 or BCPL?

135:

You win. I have no idea what BCPL is.

136:

There was a wierd & wonderful "language" beloved of computer-department academics in the 70's ( Though it started much earlier, IIRC) that did not have any apparent input/output procedures, which struck me as utterly loopy - ah, my memory has returned ...
ALGOL.

The meetings [of the Algol60 design committee] were exhausting, interminable, and exhilarating. ... Progress was steady and the output, ALGOL 60, was more racehorse than camel. This language proved to be an object of stunning beauty. It was sufficiently perfect and complete so that ensuing implementations were able to append necessities, such as input-output, in the style of ALGOL 60 but their addition propagated no significant changes in the body of the original language.
— Alan Perlis, "The American Side of the Development of Algol", HOPL-1: The first ACM SIGPLAN conference on history of programming languages, 1978.
Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors.
— Tony Hoare, "Hints on Programming Language Design", Stanford AI Lab Memo 224, December 1973.

You have to compare Algol with the other languages of its time. These were, as far as I know, mainly Fortran and various assemblers. Think how much Algol's control structures improved on Fortran's, and consider how much they have influenced subsequent languages. Think of the precision with which the Algol60 report defined Algol. Contrast with Fortran, one of the early standards for which had been described as a loving compilation of all the bugs in the IBM compiler. (I don't have the exact quote, but I think this may have referred to the bizarre specification for the DO loop.)

As for I/O, I suspect the problem was that machines' hardware (e.g. byte size) and operating system features (e.g. filenames, directory structure, buffering) varied so greatly. Machines were slower, programmers had less experience, and there was much less space for the layers of I/O routine that would hide these low-level details from the Algol60 programmer. So bearing in mind these variations and the lack of space and speed, the design committee just couldn't work out a portable set of I/O routines in time.

137:

BCPL is Basic CPL - a simplified form of CPL designed in 1966. It's a delightfully simple systems language: in the canonical book, the language itself is described in 78 pages, and that is then followed by the annotated source code of its own lexer and parser, taking up about 44 pages (explanation on the left page, code listing on the right).

It gave rise to B, which was then followed by C, giving the following descent:

CPL -> BCPL -> B -> C -> C++ -> D

138:

For a moment there I thought you wrote COMAL, a language I briefly knew in the mid 80s.

(It was sufficiently similar to BBC BASIC that you could convert from one to the other without too much mental effort.)

139:

You have to compare Algol with the other languages of its time. These were, as far as I know, mainly Fortran and various assemblers.

The History of Programming Languages I which reviewed the major languages before 1967 listed: ALGOL, APL, APT, BASIC, COBOL, FORTRAN, GPSS, JOSS, JOVIAL, LISP, PL/I, SIMULA and SNOBOL. The second edition covering up to mid 80s listed: Ada, ALGOL 68, C, C++, CLU, Discrete Simulation Languages, FORMAC, Forth, Icon, Lisp, Monitor and Concurrent Pascal, Prolog, Smalltalk.

There have been many old languages, some still very influential through their descendants, which are somehow forgotten among programmers.

140:

Why are some high level languages thought to be superior to others? I would have thought with sufficiently good compiler design they should be equal (depending on what you want to do). Anyone remember the transputer?

141:

the reason I mentioned the transputer was the
statement:
// Inline assembler "sees" D variables.

reminded me of the PAR (parallel, i.e. do the following at the same time) statement in the transputer. But ultimately I suppose a HLL is ultimately dependent on how efficiently it uses the target processor, which is down to the compiler.

Bugger, down to the last bottle of wine...

142:

You need to look at what was there in the 50s.

Going mostly by Wikipedia (yes, I know, but it's an arena where it's mostly accurate)

FORTRAN - 1957
Lisp - 1958
APT - ~1959?
COBOL - 1959
JOVIAL - 1960
GPSS - ~1961?
SNOBOL - 1962
APL - 1964
PL/I - 1964
BASIC - 1964
JOSS - 1966
Simula - 1967

Whereas:

ALGOL - 1958

So when ALGOL was being designed, FORTRAN was probably visible, but most of the rest of them postdate it, and Lisp was pretty well simultaneous.

Your point about a whole bunch of forgotten languages is a good one, and there were probably a whole bunch out there that aren't on this list (CPL *cough* *cough*), but looking at the ones that were widespread enough that memory of them has survived, and were there when ALGOL first came out, mainly Fortran and various assemblers is a pretty good summation.

143:


This may amuse, if it isn't already known:

http://www.youtube.com/watch?v=hi8OaGJUa6U

Mastermind on HP Lovecraft.

144:

Cheers.

Also ref #142, I recognise most of those, as names, although I've never even seen code in about half of them

145:

A quick review of the oldies (my interpretation at least):

Lisp: still pretty alive (have you used EMACS recently?)
COBOL and BASIC are infamous enough without further introduction
APT, GPSS and JOSS: I have no idea
JOVIAL: still alive in orbit around Saturn (as part of Cassini)
SNOBOL: the granddaddy of the scripting languages (Perl, python, PHP...)
APL: mostly a mathematical language. I think matlab language borrowed a lot from it.
PL/I: A bloated FOTRAN
Simula: the motivation behind Smalltalk, which started the whole object-oriented programming craze

146:

So when ALGOL was being designed, FORTRAN was probably visible, but most of the rest of them postdate it, and Lisp was pretty well simultaneous.

Exactly. And of the languages irvanian1349 mentions, Jovial was based on Algol anyway. The name stands for "Jules's Own Version of the International Algorithmic Language" (*), and "International Algorithmic Language" was a name originally proposed for ALGOL 58.

Although the concept of control structure was well known because fundamental, I suspect that the syntax used in Algol is a once-only invention. So if you see a language that has Algol-like block-structured if's, for's, and while's, and sequencing via semicolons, it probably derives ultimately from Algol, rather than having been invented independently.

Rather like a Harry Harrison short story I once read whose protagonist discovers a race of what seem to be aliens, and concludes that they must be much-mutated (or engineered?) humans because their alphabet contains a letter which is obviously descended from our letter L. I seem to remember the study-of-alphabets-scholar protagonist being described as an abbiciologist, but Google doesn't find that word, so perhaps I'm wrong.

For a very different way of embodying the control structures (paws4thot @ 144 may like to see this), may I point you at an intro I wrote for Dr Dobbs to Snobol? "Programs That Transform Their Own Source Code; or: the Snobol Foot Joke".

(*) And why shouldn't inventors praise themselves?

147:

There are people working to resurrect Multics. The machine emulator is currently running the hardware diagnostics to find emulation problems. Perhaps a booting of Multics will occur in 2014.

148:

{brain cell creaks into action} ;-)
Back in my "history of computing" lectures, I think we were once told that ALGOL stood for "ALGOrithmic Language".

149:

Why are some high level languages thought to be superior to others? I would have thought with sufficiently good compiler design they should be equal (depending on what you want to do).

Oh, all sorts of reason. Ease of expressing certain operations, for example string manipulation (Snobol), logical inference (Prolog), interactive array and vector hacking (R). Robustness against typos, for example via strong type-checking (Pascal, Modula, Ada). A simple syntax and semantics, making code fragments easy to transform mathematically, which is very useful in proving programs correct (Lisp).

Alfred North Whitehead's "The Importance of Good Notation" is worth reading here:

It is a profoundly erroneous truism, repeated by all copy-books and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilization advances by extending the number of important operations which we can perform without thinking about them. Operations of thought are like cavalry charges in a battle they are strictly limited in number, they require fresh horses, and must only be made at decisive moments.

And as a case study of why one language is thought to be superior, may I cite these quotes by Edsger Dijkstra in praise of Lisp:

Then LISP emerged as programming vehicle for symbol manipulation. LISP can be viewed as a highly successful exercise in the mechanization of applied logic. For computing science, its cultural significance is that it liberated computing from the narrow connotations of number crunching by including all formal processes —from symbolic differentiation and integration to formal theorem proving— as computational activities.
— "On a cultural gap", The Mathematical Intelligencer, 8(1986), 1: 48–52, http://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD924.html
.
The third project I would not like to leave unmentioned is LISP, a fascinating enterprise of a completely different nature. With a few very basic principles at its foundation, it has shown a remarkable stability. Besides that, LISP has been the carrier for a considerable number of in a sense our most sophisticated computer applications. LISP has jokingly been described as “the most intelligent way to misuse a computer”. I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
— "The Humble Programmer", ACM Turing Lecture 1972, https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html
.

150:

And of the languages irvanian1349 mentions, Jovial was based on Algol anyway. The name stands for "Jules's Own Version of the International Algorithmic Language" (*), and "International Algorithmic Language" was a name originally proposed for ALGOL 58.

Perhaps that should be "International Algebraic Language". According to "Unraveling Algol: US, Europe, and the Creation of a Programming Language" by David Nofre, it was.

151:

Oh, all sorts of reason. ... in proving programs correct (Lisp) And even "ease of variable declaration", for example "Visual BASIC" which allows implicit declaration and type-conversion on the fly.

152:

I did a bit of SNOBOL once. It's not a scripting language; what it is is the granddaddy of pattern matching languages -- think Awk or Icon -- and by that lineage it fed into Perl (and thence the scripting languages of today).

The scripting languages arguably started out with the Bourne shell (or maybe the UNIX v7 shell?) then forked: Perl was originally the bastard offspring of a collision between /bin/sh, awk, sed, C (for overall flow of control and syntactic sugar) and the POSIX library (for doing the Swiss-army chainsaw thing). Then Perl acquired OOP. Then Guido wrote Python because Perl was inelegant (only a UNIX command line hacker like me could love Perl), and then, and then ...

153:

As the first system I worked on as an AS/400 and the language was RPG/400, I feel that I'm some sort of South American race that sacrificed people on top of Ziggurats.
*grabs golden dagger and gaudy headgear*

Give IBM its due , they were really well built Ziggurats, and the internal structure was well designed , it just LOOKED ugly....

*mixed metaphor confusion*

154:
Lisp: still pretty alive (have you used EMACS recently?)

Clojure too. Really nice Lisp variant that runs on top of the JVM amongst other places. Been used on quite a few new heavy duty projects and getting a real foot in the door in old Java shops. It's on my list of languages to learn properly in 2014 after playing with it a little this year. Does my old Lisp hacker heart good ;-)

On the obscure languages front... anybody here use Pop-11 apart from me?

155:

Also see Greenspun's tenth rule of programming:

"Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

:-)

156:

On the obscure languages front... anybody here use Pop-11 apart from me?

I've used it for teaching AI. The Poplog system came with a lot of teaching examples, such as David Hogg's and Aaron Sloman's TEACH MSBLOCKS, a demo program that read simple natural-language commands which it parsed, semantically analysed, and used to control a virtual "hand" living in the blocks world.

I've also used Poplog Prolog, which was nice because its control flow worked using continuations implemented as Pop-11 functions. By hacking these, one could tinker with the way Prolog searched through clauses, e.g. for hooking it up to a database. I once did this, interfacing Prolog to a rhyming dictionary, for a student who wanted to write a poetry generator, and who needed a Prolog predicate that returned all the rhymes for a given word.

There's a paper explaining how the Prolog uses continuations, published at IJCAI-83, called "Integrating Prolog Into the Poplog Environment" by Chris Mellish and Steve Hardy.

(For those who haven't come across them, a continuation is a way of representing the rest of the computations a program will make. This is useful in describing the semantics of jumps, labels, loops and so on. But it can also be implemented, so that programs can be given access to, and allowed to manipulate, their control flow. It makes it possible to write a program that implements backtracking, or coroutines, for instance. I don't suppose that will mean much without some examples, which one can find by Googling "introduction to continuations".)

157:
There's a paper explaining how the Prolog uses continuations, published at IJCAI-83, called "Integrating Prolog Into the Poplog Environment" by Chris Mellish and Steve Hardy.

Yay Poplog ;-) I was on the Poplog dev team for many years in days dim and distant. When I need something Prolog-ish I still occasionally roll-my-own stuff using continuation style coding (even, to pick one of OGH's fave languages, in perl ;-)

(I think we may have bantered briefly via email in the 90's about Eden, Technosphere & getting Poplog-ish stuff on the web when I was still working at Sussex)

158:

Well, as an Ada programmer, I'm familiar with exception handling, multi-threading, tasking and rendezvous. If I'm reading correctly, you're just adding a partial transaction log to this?

159:

"Midnight January 1, 1970"

Probably having nightmares about the Malmstadt-Enke analog computer I was nursmaiding along. Yeah. All those lovely matched sets of 12AX7 tubes, a gnat's hhair from breaking into oscillation. Plugboards. Patch panels.

I got better.

Xenix 1.0: Microsoft buys a 7th Edition tape and has an illegitimate love child with a Zilog processor. (I still have one of the Multibus processor cards in the garage.) I did drivers for that thing and bolted in interesting bits from the early BSD distros. Cross-development from the mighty 11/70 in the corner office. Since I seemed to enjoy playing at the hardware/software interface, I jumped to small spinoff company that built stuff.

SIMD parallel processing? Yup. Bitslice hardware, even. Hacked PCC to develop a C-like dialect with funny keywords like 'parallel' and new operators like 'any()' and 'all()'. Got to implement a whole floating point package on that thing. Then they discovered transputers... Some of the other folks there did a sort of C compiler for T-800s, and we started wiring them into various topologies and running a monster graphics renderer on them. I had the honor of grabbing some AT-bus transputer cards, stuffing them in a shiny new '286 box, and figuring out how to bootstrap the renderer, texture mapping system, and film-resolution output on a DOS 5.0 box. Thanks to OGH, I now know why I felt like my brain was being nibbled at. Dho-Nha geometry for the transputer topology does render things really fast, though. P-complete from NP-complete...

Life after that was mostly boring microprocessors; 68030, 68040, 88110... The usual. Not as much fun, but still interesting, especially while I still had access to the hardware lab.

160:

APL: mostly a mathematical language. I think matlab language borrowed a lot from it.

APL was all about unique symbols that operated on arrays. And most of the operations were math oriented. I learned it on an IBM 1130 with 8 or 16 K 16 bit words. And for a long time (until graphical displays got cheap) you could only use it on a product with an IBM Selectric type ball as you needed a special ball with all the symbols to use it. (You could really confuse people if you forgot to put the regular ball back.)

It was typically called a write once never read language. Incredibly dense. It was hard to figure out code you had written the day before.

Watch this for a laugh.
http://www.youtube.com/watch?v=a9xAKttWgP4

161:

Perl

I've never dealt with Perl but some friends who have to maintain Perl systems talk about how there are 58 ways to do anything in Perl and it seems that Perl wizards try and use all 58 in every program they write.

162:

Why are some high level languages thought to be superior to others? I would have thought with sufficiently good compiler design they should be equal (depending on what you want to do).

Almost all computer languages have warts. And most of these are due to the hard ware limits at the time they were designed. Cobol and Fortran had to run in 16KB/KW of space which had to include EVERYTHING needed for the code to run. I/O routines for one big one.

Which is why data structures as we know them now just didn't exist outside of some languages like Algol which were treated as toys as you couldn't write code with them that did much on the hard ware of the day.

The display of one screen on my iPhone takes more ram than most computer had until the 90s. Late 90s likely.

163:

88110? I've got the manuals for that kicking around somewhere... Harvard architecture 2-chip design for heavy computational loads as I recall. A friend was looking into using a bunch of them as a general-purpose video effects engine talking to a couple of framestores. He got seduced by the INMOS side of the Force instead...

First personal computer I got my hands on was a 4040-based Opus microcomputer, a teaching aid from the Open University. I bought a Science of Cambridge (Clive Sinclair's first computer company) Mk14 kit and soldered it together, still got it kicking around somewhere. I hacked on it quite a bit so it's not worth anything nowadays.

164:

I think there is something of a consensus around the idea that programming languages are for people to read and understand. There is so much unused computing power even in a smartphone nowadays that optimising to the hardware level is a very niche activity that might belong in kernels and device drivers, network stacks and such but nowhere else. The reality is that most code is read much more often than it is changed (by someone trying to work out wtf is going on) so every obscure and clever trick of the sort in the obfuscated C contest is counterproductive.

Also compilers are much better now and processors with out-of-order processing and shadow registers and 0-cycle branches are the norm so that almost any kind of hand tuning of binary operations or declaring register variables probably just baffles the optimiser.

So high level languages automate memory management (no leaks) have (with each) instead of (for) to eliminate fencepost errors and so on. Naming all the parameters (like Objective-C) is more of a pain to write but so much easier to read.

OOP is great if you remember that composition is better than subclassing most of the time.

And I have written 6502 and 68000 assembler to get things done in the dim and distant. And learned FORTRAN around 1975.

165:

I (shuffles sheepishly) wrote an EPOS terminal emulator in Perl. Only it ran as a pre-forked multi-headed server 8process, taking requests in an I-rolled-it-myself-because-JSON-didn't-exist protocol, firing them over X.25 at the online authorization servers of various British banks, and then generating nightly batch jobs for settlement. And it emulated multiple virtual EPOS terminals for multiple merchants who were using one or more banks and suspense accounts and optionally taking transactions in foreign currencies. The whole thing ran to around 25,000 lines of perl in about 12-14 classes (it was fully object oriented and documented to within an inch of its life). It started as a rigged demo for the CEO (it wasn't even Y2K compliant as written in 1997 because we knew we'd have replaced it by 1998) and they finally retired it in 2008, or so I'm told. Eight years after I left the company.

So yes, you can do a lot with rigidly enforced coding standards, good documentation, and some compiler pragmas ("use strict" in Perl -- i.e. go into whips and bondage mode, insist on all variables being lexically scoped and declared, eschew implicits like $_, and so on).

166:

Well, as an Ada programmer, I'm familiar with exception handling, multi-threading, tasking and rendezvous. If I'm reading correctly, you're just adding a partial transaction log to this?

Here's an example. You jump out of a procedure. But before you do that, you make a continuation that represents the rest of the procedure. You carry this with you as you jump (or store it in a global variable, or whatever), and keep it. Then, at any time thereafter, you can decide to apply that continuation, and thereby re-enter the procedure.

You could even keep a whole stack of continuations, representing all the procedures you've ever jumped out of, and choose which one to re-enter.

So it makes the future progress of your program into a "thing": a first-class value that you can assign, put into data structures, pass to functions, select between several of, and so on.

For Prolog, this is good because Prolog predicates act like procedures that search through a list of alternatives. In my post about Poplog and rhyming dictionaries, I needed to search through a list of all the rhymes for a given word. So: a predicate searches for a rhyme for "cat". It finds "fat". Prolog jumps out of the predicate, and hands control to the next predicate. In the poetry generator, this was one that tried to make a meaningful sentence that also scanned. So it tries to make a sentence with "cat" and "fat".

Let's assume it can't. So then Prolog says "Ah, I have to backtrack into the rhyme-finding predicate". So it applies the continuation which represents the rest of that predicate's progress. I.e., it resumes the predicate. The predicate moves the database pointer down the rhyming dictionary. It finds "hat". Prolog jumps out of it, and again hands control to the sentence maker.

And because cats can sit in hats, this time the sentence maker succeeds. So it never needs to re-enter the rhyme finder again.(Unless some predicate even further along fails... which is why we retain these continuations for as long as possible.)

167:

Just a little something for Arduino and Pi fans:

http://uk.farnell.com/stmicroelectronics/stm32f3discovery/eval-stm32f3-cortex-m4-discovery/dp/2215108

I'm using one for a prototyping project at work.
TLDR - ARM Cortex M4 dev board - £9.28

168:

To the tune of Billy Joel's "Pressure", I presume? Good stuff!

169:

Yay Poplog ;-) I was on the Poplog dev team for many years in days dim and distant. When I need something Prolog-ish I still occasionally roll-my-own stuff using continuation style coding (even, to pick one of OGH's fave languages, in perl ;-)

Oh gosh. Continuations in Perl? I boggle at the landscapes of coding obscurity that this could open up.

(I think we may have bantered briefly via email in the 90's about Eden, Technosphere & getting Poplog-ish stuff on the web when I was still working at Sussex)

I thought I recognised your name, Adrian. Nice to talk again. Eden, I should explain for other readers, was a 2-d grid-world virtual environment I wrote in Pop-11 and Prolog for my students to implement artificial intelligences in. The idea was that they could start by modifying existing AI's (supplied by me), and thereby do something interesting straight away, without having to spend ages learning to program first. I tried hooking it up to Java, to provide a GUI, and there's a picture of that here. The "Eden II" window shows the microworld, with the triangles being AI's. The text in the other windows displays the AI's' "thoughts".

By the way, Adrian, I still have a lightbulb joke that you posted to the Poplog forum:

In Pop-11 it would take three programmers:
o One to write BulCPPoP (BULb Changing POP-11) a
superset of Pop-11 for changing lightbulbs (with the
usual cute acronym which took more time to think up than
it took to code the library)
o One to write the bulb changing code
o One to write the VED interface

I should explain that the first bullet point reflects the unusual extensibility of Poplog. If I remember correctly one could:
* Invoke the compiler at run time, compiling either strings or lists of tokens into executable code.
* Run code at compile time, thereby giving yourself macros.
* Plant Poplog virtual-machine instructions in your code, thereby bypassing normal type-checking, implementing new control structures, etc.

I know of no other language that's so extensible. You wouldn't want to control missiles in it, but it was great for teaching AI, because it was so easy to implement specialised notations for the entities and concepts involved.

170:

Thanks; I hadn't realised that you could make a continuation of the rest of a sub-program after the branch point but beyond that I think it's working pretty much how I thought.

171:

Oh gosh. Continuations in Perl? I boggle at the landscapes of coding obscurity that this could open up.

You haven't lived until you've played with AUTOLOAD in Perl and used it to generate virtual classes on the fly ... then tried to debug them. In a mission-critical back-end application handling real money. (Because SCIENCE! -- or something like that.)

172:

It occurred to me - yonks ago - that an analogy could be made between open source software and the the movement in the reformation to 'open source' the bible by translating it from Latin into national languages, allowing (read-only at least) access to the liturgy to anybody literate.

173:

Back in the 90's built the the server for an e-commerce system in Perl. Originally it was a quick hack purely for testing the ObjectiveC client that was being built first (That client was being built as a Director extension. None of the new fangled web based nonsense for us. We delivered the shop to the customer as an application on a floppy! TCP just used as the transport protocol). First version was in Perl 4 too. Perl 5 was out at the time but I only had the original Camel book to hand.

That then turned into the $management demo for investors. Complete with yellow ethernet cable strung across the office helpfully labelled "The Internet" for the hard of understanding.

Evolved eventually into pre-forked server that had an uptime measured in years, taking orders from various clients, and phoning up customer hardware in shops to print orders out on till-roll printers. Code was pretty darn readable too.

Removed the "# This is a short-term-hack" comment from the top of the main loop after about five years ;-)

My take on Perl's reputation for opaqueness is that it's mostly down to it being so darn popular in the first web boom. Lots of people without any training on how to develop were thrown at it which resulted in some... odd... code. Never seen decent developers have a problem with producing perfectly readable and maintainable code.

174:
I should explain that the first bullet point reflects the unusual extensibility of Poplog.

Yup. Where folk these days would write an embedded DSL, Poplog folk would be more tempted to write a compiler for a new language. You could compile at runtime which gave development a similar feel to the Smalltalk-ish image based environments.

Everything compiled down to the PVM - a stack-based virtual machine. That in turn compiled down to PIM which was a RISCish register based VM. That in turn was taken all the way down to machine code. At runtime if need be.

So, in theory, all you needed to do to port Poplog to a new platform was re-write the PIM->native layer and - since everything else was written in something that compiled to PIM - you were done.

The core "supported" Poplog languages were ML, Common Lisp, Prolog and Pop-11 - all compiling down in the same way. So you could (and many did) have Lisp code that called out to Prolog that called out to Pop-11 and so on. Using the most appropriate language for the particular problem at hand.

... and this was in the 80s. Sigh.

175:

Excuse me, but isn't "perl" merely (?) a specific sub-set of whicever flavour of UNIX you are using this week?

176:

No. It's a programming language. Parts of it may indeed look like bits of various utilities, but that's down to Perl being Pathologically Eclectic by nature.

(On Windows, a lot of stuff that a Unix coder may do between backticks will be done natively, since spawning a new process is horrendously expensive and slow.)

I did discover an interesting leak in the Win32 Perl - on instantiating an interpreter, it would allocate enough space to hold the current PATH, and never free it. Not a problem until you have a process instantiate the interpreter a few million times, at which point hundreds of MB went poof!

We got that fixed, and thereafter we saw a leak of about 1 bit per instance. Damned odd, given that the allocation granularity of the memory manager was 16 bytes, but that was slow enough that a weekly restart kept it from being a problem.

As an embedded language it was usable but a real pain. In comparison Lua is utterly gorgeous.

177:

What no Presbyterians? What about the Scottish Covenanters?

178:

Years ago I wrote http://multicians.org/multics-humor.html#classical
which begins

OS comparisons to classical literature

Multics - Iliad
Full of heroes & exploits.
Modern firepower renders most of its tactics obsolete.

Unix - Aeneid
Studied in more classrooms than the Iliad.
Doesn't make it better or more of a success.
Different language, different cultural matrix, different goals.

179:

The first church I attended was an HP MPE church. There I learned to pray in SPL and Fortran. All these new-fangled religions have a ways to go before they come close to the MPE's 28 year long production and support lifetime. After attending MPE I moved on to some other short lived religions like Cyber, RT/11, RSX/11M and VMS which led to BSD (the alternate free OS you could run on your digital hardware). At that time, Unix had BSD/System V/Sun OS/many more schisms, but combined they were a minority compared to the real Catholics at the time (IBM) and the Muslims(VMS - VMS adherents at the time were famous for their beards). The Unix religion is more akin to the new wave religions and I'll go ahead and accuse Linux as being most like scientology where the underclass slaves away for free believing the propaganda fed to them that if they keep plugging away adoption/salvation will occur -- completely missing the point that it is products that are adopted not operating systems.

180:

I think a much clearer line of descent is Java --> J++ --> C#. C# is just everything MS wanted to do to Java that Sun would not allow. C# is the clear replacement for Microsoft's J++ which Sun sued to stop.

181:

Linux isn't UNIX. As the engineer behind Mac OS X becoming UNIX certified, I'd have to say that Linux doesn't really care. I worked on Chrome OS (both the Chrome browser, and the Linux based OS) at Google for a year after I left Apple, Linus really doesn't give a shit about standards or anything else, and I say this as someone who has both patches and drivers in the current Linux, starting around 1992 when I fixed a stupid memory leak in the path lookup code.

Technically, between myself and Ed Moy, we basically, to use his words, lifted everyone off the planet by 10 feet, and replaced the planet out from under them before we set them back down. People then bitched about the dust on their shoes. In the process, 7% of Mac OS X's kernel is my code. Mine. 500 million devices. My code. Almost 1 millions lines, out of the 13 million in the kernel.

In case you were wondering, Mac OS X is the only System V non-derived code to be UNIX certified. And as religions go, that's important as all heck, since my and Ed's and Karen's and Len's and Hymie's work saved Apple 200 million dollars worth of legal butt-hurt. We all got screwed on the money side of things, but in the process, we touched the lives of half a billion people, which isn't a bad thing to be able to say.

182:

that an analogy could be made between open source software and the the movement in the reformation to 'open source' the bible by translating it from Latin into national languages, allowing (read-only at least) access to the liturgy to anybody literate.

But to date, AFAIK, all burning at the stake over open sourcing has been figurative.

183:

You haven't lived until you've played with AUTOLOAD in Perl and used it to generate virtual classes on the fly ... then tried to debug them. In a mission-critical back-end application handling real money. (Because SCIENCE! -- or something like that.)

Aaargh. Were the virtual classes the same every time the program ran, or did they depend on the input? The latter would really be fun — not.

Actually, I've done something vaguely similar in Prolog, though not nearly as mission-critical. Prolog has things called "terms", which is just its way of saying "data structure". Terms are, in essence, records with a named constructor. But terms have the same syntax as definitions of predicates (i.e. Boolean procedures). And by invoking the compiler at run-time, you can compile a term into a procedure. The constructor name becomes the procedure name, and the fields of the record become the arguments of the procedure. I'm oversimplifying, but that's the idea.

So you can generate arbitrarily complicated terms as your program runs, then compile them into program. This makes it possible to extend Prolog, and is often used to bolt on an object-oriented system, which core Prolog lacks. I've done this, and so have found myself generating classes on the fly.

I've also used it to implement a kind of AI-ish version of classes, called "frames". These were a schematic object-oriented-like way to package up common-sense knowledge about the features typical of a room, or a restaurant, or a bird, or whatever. A bird has wings, can fly, eats worms. A sparrow is a bird. Tweety is a sparrow. A penguin is a bird. It is black and white. It lives on ice. It can't fly. Tux is a penguin. If you see a black and white flightless bird, pattern-matching tells you it's a penguin, so you can fill in the other features and infer that it lives on ice.

Frames are explained in Marvin Minsky's famous paper "A Framework for Representing Knowledge". For AI demos, I've implemented them in Prolog, and so once again found myself generating classes on the fly.

But I'd hate to do it when money is at stake.

184:

... and this [Poplog and its extensibility] was in the 80s. Sigh.

Yeah. Why did it die? I know there've been attempts to revive it, but they don't seem to have succeeded. My impression was that it just needed too much work to port it to Windows and put on a GUI. A waste of a great language.

185:

As a programmer and former Protestant, who is now an Orthodox Clergyman (in real life, not metaphorically), I found your piece very entertaining. Now I know why I've always liked BSD and OS X. Thanks for the laugh.

186:

my and Ed's and Karen's and Len's and Hymie's work saved Apple 200 million dollars worth of legal butt-hurt

That was roughly what AT&T were charging for an unrestricted SVR4 license back in the early 90s, wasn't it?

Back then I was inside SCO's UNIX techpubs team, writing man pages and updating everything while the EMEA dev group next door basically white-room cloned SVR4. They had the unrestricted license to SVR3.2, and were able to modify it, but AT&T wanted about a year's gross revenue for the company for that SVR4 license; so SCO OpenServer's kernel was re-written pretty much from the ground up, retaining only the copyright notices in the header files.

Then management had to spoil things by making a bad bet on hard disk prices staying high, so they rewrote the universe to run on a link farm so it could be sold as a client desktop for diskless workstations. Which sucked, utterly, because by 1995 the price of hard disks had crashed ... and OpenServer shipped about two years later than planned due to this exercise in gambling on commodity futures.

(Then SCO ran into trouble and sold their name and trademarks to Caldera, who renamed themselves and turned into a brain-eating litigation zombie. Thereby taking a messy diarrhoeal shit all over my resume, among other things. But hey ...)

Anyway, respect. I've seen those flaming certification hoops, and getting a BSD-derived OS through them can't have been easy.

187:

That then turned into the $management demo for investors. Complete with yellow ethernet cable strung across the office helpfully labelled "The Internet" for the hard of understanding.

Wonderful. That deserves a page of its own.

188:

And from where I'm standing C# is wiping the floor with Java

189:

Windows - Leaking memory since 1980. ;-)

190:

There was a certain networking version:

ONE %RING TO RULE THEM ALL, ONE %RING TO FIND THEM,
THIS LINE INTENTIONALLY LEFT BLANK.
ONE %RING TO BRING THEM ALL, AND IN THE DARKNESS BIND THEM,
IN THE LAND OF ARMONK, WHERE THE SHADOWS LIE.


191:

It was basically over the use of the UNIX trademark. The Open Group insisted Apple buy a license to SVR4 to call themselves UNIX, and my (small group) said "What if we just pass the F-ing tests instead?". lol.

So I made a one line change to decide what would break as a result of our doing that, and killed 154 Apple builds, including iTunes and Final Cut. Sent them patches to fix their stuff, and the change went in. I should probably include Nathan Wertman in the credits, since we got away with as much as we did with the compliance of the Apple build team who build everything that Apple sells.

After that, we mostly lied to management about the amount of effect we'd have on things, and we lied in our bug reports, putting in 10's of thousands of lines of code in when the bug report only had like 5 lines of diffs reported. "Fix credentials" was my favorite, since it was about 50,000 lines of diffs where I basically rewrote the entire user/kernel security for Mac OS over about 4 weeks. The diff was a structure change. lol.

Ed occasionally got cold feet, and I had to tell him "It's OK; if they get pissed, point them at me" while we were rewriting all the header files. Did not make any friends in the people who liked to use CodeWarrior, since they had a thing that liked to rewrite header files to make them CodeWarrior-rific, but a note from Steve could pretty much shut any complainers up quick. Saved me two weeks of rewriting header files for the complainers, and about that time, Apple announced Intel about 2 weeks after Motorola divested the Intel part of CodeWarrior, so it became moot.

I think it's actually amazing how much technology happens because of lying to management. :D

192:

David L
That is because (most of the time) burning at the stake was done by the established reactionaries (RC) to the "reformers" - yes, I know, J Calvin burnt people alive, but, hey he was just another religious mass-murderer, copying the methods of his opponents.....

193:

Errr
You sure?
I ask, because I used to have a giant "UIX for beginners" type tome, (from O'Reilly IIRC) which had a chapter on perl.
Then there's this from the Wikipedia page ...
Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier
Which states, unambiguously, that it's part of UNIX.
Or doesn't it?

194:

My understanding:-
Unix refers to the kernel.

perl, like, for example awk and vi, are applications which you can run in a Unix kernel. In which context, there are implementations of awk (command script and I/O compatible) for Windows command line.

195:

Nice analogy, but you got the first schism's date wrong. The Berkeley Software Distribution (BSD), first release as an addendum to AT&T UNIX, was March 9, 1978, which isn't (quite) the mid-seventies.

The real schism came later, in 1979, with BSD3, which supported virtual memory on the DEC VAX minicomputer. Even then, you needed a UNIX license to legally run BSD. That was true until the University of California and BSDi won the lawsuit with AT&T over trade secret violations, incidentally setting the stage for Linux, which also would have run into a legal battle with AT&T had AT&T not already lost this battle.

Check the Wikipedia page for BSD, or read A Quarter Century of UNIX by Peter Salus for the definitive history.

Rik

196:

Interesting ... yet incomplete ... a couple of questions not discussed yet that immediately leap to mind whenever I hear 'religion'.

1- Which OS has the richer (history of) hallucinations/delusions?

2- What are these various OS's 'end-of-times' scenarios?

197:

Oooooh! That little thing does everything that a circa-1980 Shps Inertial Navigation System did, in a 6 foot high rack. 3 axis gyros, accelerometer, and magnetic compass. (Less precision, and Some Assembly Required, but the functionality is all there.) There are some very interesting possibilities in cheap, light inertial navigation platforms.

In the OS theocracy inheritance graph, these littlt gadgets must be the crazy country preachers that somehow develop a huge following. Or not. Anyone?

198:

Hi, Terry!

I was astounded at how little we wound up changing in the Window Server. The biggest tweakage in that era was the gunk to run the server on one architecture while clients were on the other (big-endian vs little-endian, with random structures flying across the process bounderies as a legacy of previous little tweaks...)

One of those projects where management is saying "Isn't it wonderful?", while the trench dwellers are all spinning their prayer wheels and mumbling "Please don't explode... Please don't explode... Please don't explode...", as the CEO demonstrates the results on stage.

Who says there's no religion in system software?

199:

I work with Angstrom Linux--lots of little do-it-yourself communities on embedded systems. I guess that makes me a Quaker.

As much as I like the idea of Windows as Scientology, it better fits this metaphor to think of Windows as Voodoo/Santeria. Lots of little parts borrowed from Christianity and other traditions thrown together randomly.

200:

You seem to be having comprehension problems.

a general-purpose Unix scripting language

i.e. A general purpose language that can script Unix. Or whatever other platform it happens to be on. Just as C is a Unix development language, but isn't Unix per se.

The important part of the description was "originally developed". It's moved on a bit since then, and a specific sub-set of whicever flavour of UNIX you are using this week is wildly inaccurate if it's running on Windows. Or on an IBM zSeries running z/OS, though you can put a Unixy layer on top of that.

201:

I would beg to disagree slightly:

Research edition 5 begat BSD.
BSD begat OSF/1.
OSF/1 begat Digital Unix.
Digital Unix begat Tru64.

and behold, Tru64 was certified by /usr/group as Unix(TM), though it was not derived from System V.

Now, of course, you can argue that Digital is no more, but Digital was bought by HP, and HP still offers Tru64 at http://h30097.www3.hp.com/ though none know for how much longer.

There may be others.

202:

A general purpose language that can run scripts in Unix surely? Or something like that. Anyway, the point is that you can have Unix without the perl daemon, or a perl daemon on another operating system.

203:

Well, to follow along with the Unix religion metaphor, was Caldera/SCO Unix the equivalent of the PTL Club's Jim and Tammy Baker fraud.

204:

This over extended analogy is great! Surely the SFS and Richard Stallman must represent the fundamentalist movement of the UNIX world.

Then there are all the old OS's: VMS, Os2, many variants of DOS, CP/M, BESYS and plan 9, OS/360, MVS and as aleady noted the whole OS400 I-series.

These must surely be the old pagan deities. The only major remaining form of these old religions would be the IBM mainframe which would be like Hinduism.

And Unix-ianity is not without its eschatology whether that be the promise of a coming earthly millennium of Unix and free software on all computers to dreaded anti-Christs like Bill Gates.

205:

Which OS has the richer (history of) hallucinations/delusions?

About 1/2 of the marketing material for the Wang Labs VS line. :)

206:

without the perl daemon

What Perl daemon?! Perl is a programming language, not a background process. You can write a daemon in Perl, and for some tasks that may be better than doing it in C, but it itself is a language.

207:

reminded me of the PAR (parallel, i.e. do the following at the same time) statement in the transputer.

That wasn't quite a transputer statement; it was part of a language called OCCAM that was intended to support the parallel mechanisms that the transputer was designed to offer (see "Meiko" and "Computing Surface"). As I understand it, OCCAM gained most traction as a harness language describing coarse-grained parallelism; we used it as part of our second-year CS course.

The transputer was good, but unfortunately it was single-sourced. I was told that it was one of the reason our radar division chose not to use it in our shiny new MIMD processor design. Instead we used the SPARC, for which we could buy full rights.

209:
Yeah. Why did it die? I know there've been attempts to revive it, but they don't seem to have succeeded. My impression was that it just needed too much work to port it to Windows and put on a GUI. A waste of a great language.

Well - it's open source now and still runs okay on Ubuntu with sufficient effort I think http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog/#ubuntu ;-) But you're right - realistically it's pretty much dead now.

Why? Lots of reasons I think.

The difficulty of a Windows port was certainly a factor for mass appeal at the time.

The bigger issue was probably it's odd nature as a commercial product marketed by ISL and developed in "academia" by Sussex. Once ISL focussed all it's efforts on Clementine and got bought by SPSS Poplog was basically dead as a commercial entity (they ported Clementine to C++ in the end IIRC).

While there was a fairly large group of Poplog users at various organisations - there weren't a lot of Poplog developers. Especially at the more gnarly end of PVM/PIM stuff. There was a lot of that low-level info only sitting in one or two people's heads. Open-sourcing was, in some ways, a reaction to the developer team dissipating and came too late.

Also, most of the planet still wasn't sold on things like virtual machines, garbage collection, etc. for "real world" projects. This was before, or just at the start of, the rise of Java which - if nothing else - managed to persuade the world that VMs etc. weren't a liability.

Finally (and this is more of a guess) I wouldn't be surprised if the PVM/PIM layer wouldn't have gotten much harder to do well with modern processors. To get the best out of modern processors I think there would have had to have been some clever additions around branch prediction 'n' stuff. From what I recall of that layer some significant effort would have been involved.

210:

I suppose I should mention, for any Windows user who would like to experiment with Poplog, that there is an implementation. It runs on Vista, and XP (which I tried it on): I don't know about more recent versions. I used it to run the examples in "Poplog, continuations, Eliza, AI education, and Prolog". This includes, by the way, an explanation with examples of continuations. There's a link to Windows Poplog at the end.

It would be great to see someone read this and donate enough money to fund a team to address the points Adrian mentions, bringing Poplog up to the present day. Any billionaires read Charlie's blog? Roman, Bernie, Richard, Liz,...?

211:

Umberto Eco got to this meme first: http://www.themodernword.com/eco/eco_mac_vs_pc.html

212:

Hypertalk = buddhism? easy, relaxed, friendly, boundless, not a religion, more a philosophy (why do the work the hardest way only because it's... harder? i remember when i was about 17/18, at school: a friend of mine was so pride to do everything with ms-dos, 386 pc, green monitors and streams of sweat, while i was already using graphic interfaces with "next", "back" and "home" buttons, and so on... and 25 years later, i'm using the very same language to build app for the iphone, while out there people's sweating on xcode :D )

213:

Why do people think Mac OSX is Unix? I don't even know why Apple insists on pushing that flavor of Kool-Aid.

Let the truth be known from the scrolls of the intitiates: .

You'd think Jobs would be proud of keeping his creation (NextStep) alive...

So perhaps OS-X is the Islam of the OS world, since its a new religion which adopts the facade of the old.

214:

Hmmm, looks like URL's are prevented. Lets try this:

developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/Mach/Mach.html

215:

Or this:

developer.apple.com/library/mac/documentation/Darwin/
Conceptual/KernelProgramming/Mach/Mach.html

216:

That's how OSX was originally described; as being a Mac-style X environment layer over a Unix kernel.

You're allowed 0 to 2 valid hyperlinks before your message will be automatically submitted to the moderation stack. Does that explain your "missing" submission?

217:
Why do people think Mac OSX is Unix? I don't even know why Apple insists on pushing that flavor of Kool-Aid.

Because it is. It conforms to the UNIX 03 specification. It's a bit unusual (BSD userland running on top of a Mach microkernel) but since it conforms to specification what does it matter if it has different sort of kernel?

Specials

About this Entry

This page contains a single entry by Charlie Stross published on December 26, 2013 11:27 AM.

Why I want Bitcoin to die in a fire was the previous entry in this blog.

Commercial announcement is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Search this blog

Propaganda