23 ms·
Religious and spiritual folklore surrounding programming
- wheelerof4te 4y agoMuch of it has been reduced to memeing on the Internet using crude or overused jokes. It all has it's place when compared to the bland seriousness of real work.
- funnybookbinder 4y agoFor me the "mythological" aspect comes in when trying to understand some recursive processes. SICP compared them to incantations. Sometimes it's hard to keep in one's head all that a tree-recursive process is doing. It's not technically magic, of course, but has some of the character of an incantation.
- LanternLight83 4y agoI've only got a second, but feel the need to highlight the Technical Interview series[1] and the many fan-works that pay homage to it. I enjoyed the anthropomorphising of a Package Manager Murder Mystery[2], and the creative writing of Common Tech Jobs Described as Cabals of Mesoamerican Wizards[3]. 1: https://aphyr.com/tags/interviews https://aphyr.com/tags/interviews 2: https://artemis.sh/2022/04/11/package-manager-murder-mystery.html https://artemis.sh/2022/04/11/package-manager-murder-mystery... 3. https://etiennefd.substack.com/p/common-tech-jobs-described-as-cabals https://etiennefd.substack.com/p/common-tech-jobs-described-...
- andrei_says_ 4y agoWhat a fun treasure trove - thank you.
- anthk 4y agoZork and the learning what do game "spells" do on objects (and specially with Spiritwrak) are obviously related to the process on learning arcane/obscure commnds and their arguments. Pre-infocom Zork I-II-III's ambient (Dungeon) was obviously related to the MIT and its rooms. In Adventure, you explored the Mamooth Cave. With Zork, you learn about the "mystical place" of programmers with weird spells, magical-techy places (heck, Zork is anachonistic) and figuring out the mechanics by yourself as hackers do.
- simulo 4y agoRelated academic publication: "Worship, Faith, and Evangelism: Religion as an Ideological Lens for Engineering Worlds", Ames, Rosner, Erickson,2015 "...a common ideological framework that appears across four engineering endeavors: the OLPC Project, the National Day of Civic Hacking, the Fixit Clinic, and the Stanford d.school."
- bklaasen 4y agoTerrific, thanks. That's new to me. Laurent Bossavit's "The Leprechauns of Software Engineering"[1] is fun and accessible. It claims that much of what we consider fact in software engineering is actually folklore. [1] https://leanpub.com/leprechauns/ https://leanpub.com/leprechauns/
- gumby 4y agoIn terms of the fetishization of ancient relics: In the photo of RMS, his "halo" is a disk platter (looks like an RP06 platter but likely was from some "winchester" drive of the 80s). The diameter is about 360 mm (14 metric inches), because the entire drive was 19 inches wide to go into a rack. Those large drives could store an enormous amount of data: sometimes as much as a megabyte per platter!
- dale_glass 4y agoOne weird thing I noticed over time is the enshrinement of old and crappy technologies, in the face of all reason. Some examples: Some people for some reason I can't understand have warm and fuzzy feelings about FTP, despite it being a horrible protocol in multiple ways. Yet, for a long time it was often thought of being the "proper" way to download stuff, even though even HTTP is technically better in many respects. You still find plenty people harping on about the Unix Philosophy, even though that in modern times it's nigh irrelevant, and significant parts of it are technically obsolete. Yeah, parsing text streams was sorta okay in the 80s, but is very troublesome and brittle in the modern age. And there's an odd amount of people who are still mentally stuck on the Linux of the 90s and having trouble to understand that things have gotten more complicated since then, and software has had to adapt to things like laptops and wifi.
- SQueeeeeL 4y agoI feel the need to be "that guy" cause this is hacker news, but the Unix philosophy isn't really about parsing text streams, it's about decomposability of a problem. It's way easier to test and debug 4 simple programs feeding into one another other like a flow chart than building a mega program with an insane internal state (the your problem can be decomposed into 4 subproblems). The basic core revelation that the Unix folks had was "gee wiz, I seem to need to sort data/open a socket/make a directory super often, and every time I personally try to code one of these operations up it's a huge headache that adds hours to dev time"
- dale_glass 4y agoEverything has good and bad cases where it can be applied of course. But I see this as a good example of a religious issue because you can often find people think that it's a principle worth rigidly adhering to, regardless of whether it actually does produce better results in a given case. For instance my experience is that such a model tends to get bad when things get sufficiently complex. Things like GPG and cdrecord are painful to interact with, and would arguably work much better if they were a library because a text stream is actually a pretty bad communication channel. And sure, I agree that back when Unix was created the model made sense, but it's increasingly less and less relevant.
- ArtWomb 4y agoI use Deities & Demigods for hostnames, and create John Bunyan-esque Pilgrim's Progress maps for VPC config. No downsides to being a medievalist in '23 ;)
- thesuperbigfrog 4y ago>> I use Deities & Demigods for hostnames I do the same. My primary development machine is 'ptah': https://en.wikipedia.org/wiki/Ptah https://en.wikipedia.org/wiki/Ptah Firewall is 'anubis'. Had a print server named 'loki'. Never again.
- the_af 4y agoI hate to be a kill joy, but none of these are true examples of religion or mysticism. They are at best playful examples of hacker culture, and at worst examples of arguments with opinions "strongly held"; i.e. flamewars. "Religious wars" in tech is not to be taken literally, nobody thinks these are spiritual in nature; it's an analogy to the fury of real world religious wars. The Tao of Programming takes the trappings of Taoism but is not to be taken seriously as a religious or spiritual text. When someone says a programming book is "the Bible of X" this is no more religious than when videogame creators refer to their documents collecting their fantasy world data as "their bible", as in "the Fallout bible". This is just borrowing the popular image of the Bible as the "authority" on something. It's common usage, not religious. TempleOS is an outlier, and not a good example. Its author is arguably mentally ill. If I remember correctly he is also a bigot, and nobody would claim bigotry is an essential part of working with computers. It's not true that most hackers are Buddhists, where's the evidence for that? Folklore.org is about anecdotes about early Apple (I wouldn't discount some have religion as the background because I haven't read them all, but I can attest the vast majority are non spiritual in nature, and instead about nerds, tech and infighting). They are fascinating because Apple is a major player and its early history is full of quirky anecdotes. It's not folklore in the sense of gnomes and ghosts. Stallman is an atheist; his "saintly" photo is a joke. And so on, and so on. I know the author of TFA knows all this; I bet most readers of HN also do. So why am I such a bore? Because someone will take this literally.
- kragen 4y agoterry's mental illness was not at all arguable and he has killed himself now
- m3047 4y agoThat may be the falsifier somebody is looking for: How much software lasts? How many programmers last? There may not be "illegal" people but there are people who gain entry by illegal means. There may not be "suicidal" software but there is software which is so recklessly constructed that it is bound to crash and burn regardless how brightly shines the gold it showers on its creators and acolytes. There is "original sin" in programming. There is a hell of a lot of venality. Most programmers don't last either; their lords and masters recognize this, just as lords and masters throughout history have tolerated religiosity in their serfs... up to a point.
- coretx 4y agohttps://en.m.wikipedia.org/wiki/TempleOS https://en.m.wikipedia.org/wiki/TempleOS
- stared 4y agoIt reminds me of "If Programming Languages were Religions" (2008), http://kokizzu.blogspot.com/2015/02/if-programming-languages-were-religions.html http://kokizzu.blogspot.com/2015/02/if-programming-languages... I think it deserves and update - 15 years is quite some time.
- JonChesterfield 4y agoReferenced under that is the claim: > most popular modern languages are incomplete subsets of it that obsess over artificial restrictions of their own creation which honestly hits a bit close to home
- teddyh 4y ago> websites like The Tao Of Programming The Tao of Programming is not a website. It’s a book. If you saw the whole thing on a web site, that was an illegal copy. Of course, it was also most certainly missing the illustrations, foreword, etc.
- thefounder 4y agoThere is no "illegal copy".
- teddyh 4y agoA copy made by infringing copyright, then.
- kragen 4y agoif geoffrey james asks me to i'll take it down but i've had it online for i think 26 years and i don't think he minds http://canonical.org/~kragen/tao-of-programming http://canonical.org/~kragen/tao-of-programming
- teddyh 4y agoYour use of the ASCII character sequences `` and '' as substitutes for “ and ” are antiquated at best. It only looked good on old X11 fonts, and that was a misfeature of those fonts to begin with. There is also many mistakes in your text: Where, in 1.1, your web page has “The user is pleased and there exists harmony in the world.”, my book (7th edition) has “The user is pleased and there is harmony in the world.” In 1.2, my book has “Each language expresses the yin and yang of software.”, but your text capitalizes: “Yin and Yang”. In the following paragraph, your text writes “COBOL”, but my book has “Cobol”. There are many more (including missing words, wrong words, etc.), but I don’t want to write them all here. Buy the book.
- typedfalse 4y agoImagine haranguing someone on the internet for work they did nearly 30 years ago, and having the audacity to insist they change it.
- sovietswag 4y agoVery endearing post :). I’m keeping a collection of computing holy wars that I come across if anyone wants to check it out: https://josh8.com/blog/wars_of_computing.html https://josh8.com/blog/wars_of_computing.html I’ll add a footnote to this post, it captures the spirit well. If anyone has suggestions for things to add to my list it’d be much appreciated
- bank6062 4y agoI wish I could find it, but the Jacob Thornton vs Doug Crockford semi-colon in JS war was fun.
- sitkack 4y agoCrockford punctuated the hell out of that guy.
- teddyh 4y agoYou’re missing Little-Endians versus the Big-Endians: https://www.rfc-editor.org/ien/ien137.txt https://www.rfc-editor.org/ien/ien137.txt
- 082349872349872 4y ago> "Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration." - SK-B
- teddyh 4y agoMissing: Tabs vs. spaces.
- teddyh 4y agoDiscussed a few days ago here on HN: The CamelCase vs. snake_case issue: https://news.ycombinator.com/item?id=34525139 https://news.ycombinator.com/item?id=34525139
- joeman1000 4y agoGreat post, but I don't think the author really knows what 'flamer' means when he uses it to describe Linus Torvalds
- mikewarot 4y agoFlamer: One who flames people on the internet, often the wearer of asbestos underwear, a frequent participant in flame wars. Linus has flamed plenty of people
- sk0g 4y agoLinus explicitly uses flame in that context too. > Time for some serious flamefesting! > I don't usually get into flames, but I'm touchy when it comes to linux :)
- antonvs 4y agoWhat do you think flamer means? You may be thinking of it in some other context.
- wsc981 4y agoWell if he’s not a flamer, at the very least he’s a righteous git!
- klankbrouwerij 4y agoFor those who are missing some context, a flamer can also mean a very flamboyant ("flaming"), effeminate gay male [1]. [1] https://en.wiktionary.org/wiki/flamer https://en.wiktionary.org/wiki/flamer
- raphlinus 4y agoA lot of the cultural phenomena around Rust can best be explained in religious terms. It's no accident that we are sometimes referred to as the "Rust Evangelism Strike Force," and the word "zealot" is frequently used, of course largely by critics. There's a deeper level as well. The concept of "memory safety" which is a core principle of Rust has, I believe, a lot in common with religious concepts of purity and cleanliness. Undefined behavior, by contrast, is an undesirable form of uncleanliness, emotionally similar to trayf in Jewish culture or haram in Muslim culture. Rituals include the `#[deny(unsafe_code)]` incantation, or using cargo-deny or similar tools to make sure uncleanliness hasn't crept in through dependencies. It's not just Rust, although that's a nexus for a lot of tension and conflict around this issue. Tools for avoiding and mitigating unsafety are often given names evoking cleanliness: "Purify" and "sanitizers."
- LAC-Tech 4y agoI'm not sure if this was meant in seriousness or in jest, but regardless I really enjoyed it.
- 082349872349872 4y agoThat'd explain some of the pushback around https://news.ycombinator.com/item?id=34557840 https://news.ycombinator.com/item?id=34557840 ; the people who think we all ought to be using the same languages and tools are akin to believers in proselytizing religions? (don't mind me; you might find me upon occasion with the animists, worshipping at the altar of '*' and '&')
- devwastaken 4y agoEating pork won't cause memory corruption.
- eternalban 4y agoA dirty read, actually.
- makeitdouble 4y agoIt probably did a lot at some point. Pork requires more preparation/cooking discipline than beef for instance.
- LAC-Tech 4y agoIdolatry might be an interesting, if contentious path to explore! (your computing idols of course. yours are all false prophets mine are all legit)
- labrador 4y agoTerry Davis and Temple OS. God communicated to him through the random number generator. This article is meant to be humorous, but I think it unintentionally hit on some important truths. Terry Davis Was Right Religion Is Computing, Computing Is Religion Terry’s big idea was that it is not possible to separate religion from computing. Since the beginning, every complex society has been based on a shared socio-cognitive operating system, a religion. Your religion says you must live a certain way. It tells you what is valuable and what is disgusting. It gives you your fundamental paradigm and ontology of belief through which you interpret the world. It tells you to read certain texts, listen to certain traditions of wise men, and meet with like-minded others at certain places and times. It tells you to avoid certain influences, and seek out others. It gives you techniques for structuring thought and mind and memory. When you have doubts, it gives you procedures to ask for and receive insight. It tells you who you are, and what your life is for. https://www.palladiummag.com/2022/04/01/palladium-is-now-templeos/ https://www.palladiummag.com/2022/04/01/palladium-is-now-tem... I'm researching these ideas more since ChatGPT has shown me how to make certain religious and spiritual ideas more accessible. Levandowski shut down his AI church after he got in trouble with the law for something unrelated. He was too soon, so it's only a matter of time one starts up again. https://www.wired.com/story/anthony-levandowski-artificial-intelligence-religion https://www.wired.com/story/anthony-levandowski-artificial-i... Bonus link: Terrance McKenna. Culture is your operating system https://www.youtube.com/watch?v=9c8an2XZ3MU https://www.youtube.com/watch?v=9c8an2XZ3MU
- aebtebeten 4y agoWhat sort of religious/spiritual folklore could we come up with? Turing meeting his end with the apple is an obvious one, but I'd rather imagine that, for having brought computing to the mortals, he's chained to a rock in perpetuity, when he attempts to port DOOM to the ACE, only to be foiled each evening when the moths show up and immolate themselves, destroying various valves, requiring him to start afresh each morning... Shannon came down from the mountain and gave us sequences* of symbols; various later prophets (McCarthy, Crockford, etc.) have added new structures on top but it's difficult to go very wrong if one hews to the mitzvot of the old ways: after all, string homomorphisms stream. (Rabin & Scott introduced monotapism in https://news.ycombinator.com/item?id=34561797 https://news.ycombinator.com/item?id=34561797 ; polytapists suffer [both in this world and any possible successor] by losing the grace of Boolean closure, for ever and ever. Amen) Very near the Western Wall is a mosque whose wall contains the parallel port where Englebart (peace be upon him) plugged in the divine Mouse. Every generation rediscovers Confucian Rectification of Names for themselves; that's why we have so many names for the same things in Informatics. (cue https://xkcd.com/927/ https://xkcd.com/927/ ) When Siddhārtha Gautama left the palace for the first time in his life, he encountered legacy code, bit rot, abandonware, and an Agda programmer. Shocked at the rampant suffering in software, he started his noble quest to free software... * Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk. — LK
- xwdv 4y agoI did a stint at an old monastery in Estonia that was converted into a sort of hostel for international programmers. I was assigned a dorm where I spent much of my time wearing simple muted clothes, quietly writing code on an old computer with an IBM mechanical keyboard, just like all the other programmers. When we were not writing code, we did chores around the monastery, usually I was sweeping the cobblestones or fetching supplies from the small town near by. Some took to more technical chores such as managing the local area network of the monastery; there was no internet access but computers at the monastery could still communicate with each other locally. Most days we would start off by listening to sermons from wise old programmers in the grand hall. The past Christian iconography had been taken down. The simple stone architecture that remained with its thick pillars holding up soaring ceilings far above our heads encouraged pure creative thought. We did not sully our thoughts with pointless conversations, a brief nod while passing another programmer in the halls was enough social interaction for the day. Anything else could be taken online to the monastery’s IRC channels. The best part was the libraries. Books upon books about programming that you’ve never heard of or even seen, that were never sold commercially. Binders filled with notes from ancient programmers printed on pages now yellowing with the passage of time. All manners of topics and languages were available here. Floppy disks with ancient programs, old punch cards, vintage machines and peripherals. Secrets that you could not learn anywhere else. Maybe some day I’ll return and spend my days pontificating over a new generation.
- djedr 4y agoThe article mentions SICP aka the wizard book. In it, there are a lot of metaphors pertaining to magic and spirits, which IMO makes the book much better than if they weren't there. One of the authors of the book, Hal Abelson, famously said: > There's a good part of Computer Science that's like magic. Unfortunately there's a bad part of Computer Science that's like religion. This points to perhaps a useful distinction that is to be made here between religion (as in tribalism which leads to holy wars) and mysticism/spirituality/magic (as in deep fascination in search of ultimate truth).
- Quarrelsome 4y agoSomewhat off-topic question: if I wanted to try to re-interpret assembly as a religion (i.e. knowledge left for us by our creator as opposed to a programming language for a technology we understand); which book about assembly would be most appropriate to choose as the core holy text?
- AlotOfReading 4y agoI quite like the idea of Assembly being a vague network of cultic religions without shared canons. If you had to choose texts though, the Story of Mel and Hacker's Delight would definitely be in there.
- JonChesterfield 4y agoThat's a tricky one because there is no "assembly language", so much as N different ways of mapping text onto numbers that a processor can interpret. First the target instruction set changes. You may have a `mov` for copying between registers but you may not. For that matter, you may not have registers. You probably can write raw bytes in the middle of an instruction stream for instructions that the assembler doesn't know about, and if you wrote the entire program like that, you'd (almost) have the binary itself. Then there are common conventions like `label:` and being able to write basic arithmetic in a place that an instruction expects an immediate operand, but they're at the whim of whoever wrote the assembler. There's probably a macro layer or two. There is a strong analogy remaining though. Some creator gave us the processor, with documentation of some quality about how to make the piece of sand do anything, and on top of that someone (who may have been the same creator but may not) usually writes mnemonics for the instruction set and from that, an assembler. The core holy text for a given processor is then something like https://developer.amd.com/wp-content/resources/Vega_Shader_ISA_28July2017.pdf https://developer.amd.com/wp-content/resources/Vega_Shader_I... - an incomplete description of what the magic sand does, from which one who is sufficiently determined can construct arbitrary computation.
- _gabe_ 4y agoI love how in the link to the Linus Torvalds flamed rebuttal about Minix, one of the arguments they were having was whether a micro-kernel or monolithic kernel was better... This was in 1992! It's funny how some things never change :)
- deleted 4y ago[deleted]
- yazzku 4y ago> You've been visited by St. Ignucious. Upvote for success in FOSS St. Ignucious would not use the term 'FOSS': https://www.gnu.org/philosophy/floss-and-foss.en.html https://www.gnu.org/philosophy/floss-and-foss.en.html
- slavik81 4y ago> Not everyone agrees to who belongs in the pantheon, but for them there are fictional hackers, like Mel Mel wasn't fictional. Melvin Kaye was an application programmer at Librascope, and there's a photo of him in the company newsletter. https://www.freecodecamp.org/news/macho-programmers-drum-memory-and-a-forensic-analysis-of-1960s-machine-code-6c5da6a40244/ https://www.freecodecamp.org/news/macho-programmers-drum-mem...
- JonChesterfield 4y agoThere was quite a long period where he was known to be fictional though, probably including when the OP was written. Which if anything makes listing Mel within the pantheon more appropriate.
- praptak 4y agoMy closest to religious experience was a C program crashing after removing an unused variable. I repeated this and tested multiple times by adding and removing the variable and running the program. Now I obviously have a believable rational hypothesis for that behaviour but then it was mystical. I left the variable and got a passing grade (it was a student program).
- Gigachad 4y agoThis is usually the result of undefined behavior somewhere else. Undefined behavior is so insidious because it creates exactly these unexplainable situations. Probably the compiler was running some kind of reordering or optimization which is proven to be safe for defined behavior but when run on UB code, causes the program to segfault on changes that would normally be no op.
- nurettin 4y agoIt sounds like an array size problem. int a[50]; int unused; a[50]=55; // UB, but compiler probably placed unused after a[49] which prevented the crash.
- JonChesterfield 4y agoDeleting a dead function won me a segfault in the last year or so. That turned out to be an oddity related to shared libraries.
- mark_undoio 4y agoComputers are extremely haunted. It's often remarkably they were working at all before you made the change, then you prod and all the goblins come out. Similar experiences I've had: * Putting a big array on a stack (early in C programming career) - compiles fine, instant crash at runtime. * Colleague discovers that a function needs padding with NOPs to achieve precise timing. Number of NOPs needed varies depending on code changes (even NOPs added or removed) in functions higher up the same source file. * Occasional crashes in low level routines on ARM64 after changing completely unrelated code. The stack appears to contain a struct from elsewhere in memory instead of ... a stack. (First one was probably just the array was too big for sensible stack management/ growth and a friendlier compiler would have just told me. Second one was to do with the size of memory pages in the flash - there was a delay if you ran over a boundary. Third one was, IIRC, the variable containing the base of a temporary stack occasionally getting splattered to point into other data structures! The actual stack was fine but you couldn't see it anymore)
- smitty1e 4y agoEverything about code is deterministic and material. Actual faith is orthogonal to all of the data and the logic. Sacrifice not humanity on the altar of technology.