Live data from Hacker News

Religious and spiritual folklore surrounding programming

deusinmachina.net

31–40 of 122 posts

Re: Religious and spiritual folklore surrounding programming

#31
post #24
post #21

Earlier quoted context omitted.

A copy made by infringing copyright, then.

if 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

Your 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.

Re: Religious and spiritual folklore surrounding programming

#32

Earlier quoted context omitted.

It's a fuzzy matter because it doesn't have a single agreed on definition. But yes, some parts are definitely showing their age: > Write programs that do one thing and do it well. Putting things together from a kit of parts isn't necessarily the optimal way to do many things. In many cases tight integration actually produces superior results, and debugging a system made from many cooperating bits isn't necessarily an…

>> Write programs that do one thing and do it well. > Putting things together from a kit of parts isn't necessarily the optimal way to do many things. In many cases tight integration actually produces superior results, and debugging a system made from many cooperating bits isn't necessarily any easier. Define "optimal" here. Without a definition this is a meaningless statement. But even if your definition of "optimal…

That is kind of the point, you have to define the problem and the tradeoffs involved. Then sometimes one approach better than another. That determination should be made on a case-by-case basis, rather than as a religious matter.

So for instance stringing too many things together also leads to confusion due to the many interactions between disparate bits.

At some point you can end up too much parsing/serialization in the mix, too much accumulation of startup costs, or dealing a system that has components written in shell script, Perl, Python, C, C++ and Rust making the whole system difficult for any random person to comprehend fully.

Re: Religious and spiritual folklore surrounding programming

#33
A 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."

Re: Religious and spiritual folklore surrounding programming

#34
post #23

Earlier quoted context omitted.

I much prefer Unix philosophy to contenerized microservices for Todo list app philosophy.

I'm not convinced they are different. Take a large program and break it down into smaller programs with a singular purpose.

Unix is text processing.

Contenerized microservices is also text processing, but you add 2 new layers of abstraction for every operation you do.

Re: Religious and spiritual folklore surrounding programming

#35

Very 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 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

You’re missing Little-Endians versus the Big-Endians: https://www.rfc-editor.org/ien/ien137.txt

Re: Religious and spiritual folklore surrounding programming

#36

Earlier quoted context omitted.

Everything 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 cdreco…

> Things like GPG I, for one, would very much prefer GPG to be decomposed to follow the unix philosophy - I think I would have a much easier time understanding and composing commands like `gpg-sign --keyfile ~/mykeyfile somefile | gpg-encrypt --to ~/someperson.pub | gpg-asciiarmor > somefile.gpg` than whatever the monolithic incantation is. This would make it much less painful to interact with, especially because GPG…

And that'd be awful for many use cases, because maximizing that would make it incredibly unwieldy and brittle.

For instance if you want to deal with keyrings, and be fully philosophy compliant, then that might be a gpg-keyring tool, which means now we have a problem. A signature operates on both a key and a file, and a pipe only works on one stream. Then there's the issue with error handling, since any of those bits can go wrong, and then somebody has to figure out a good way of dealing with all of that.

Or, we could have libgpg instead, in which case our mail client could avoid screwing around with text streams, signals and process management, and just have a nice API with features like callbacks and well defined datatypes that would be a lot more comfortable to use.

EDIT: Even with just the 3 primitives you've outlined, we already can create a huge mess. Is it sign then encrypt, or encrypt then sign? We can combine signing, armoring and encrypting in any order and any amount, requiring the recipient of this insanity to somehow figure out what we did, and then somebody else will do it differently.

Re: Religious and spiritual folklore surrounding programming

#37
post #9

I 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 ;)

>> I use Deities & Demigods for hostnames

I do the same.

My primary development machine is 'ptah': https://en.wikipedia.org/wiki/Ptah

Firewall is 'anubis'.

Had a print server named 'loki'. Never again.

Re: Religious and spiritual folklore surrounding programming

#38

Very 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 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

> "Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration." - SK-B

Re: Religious and spiritual folklore surrounding programming

#39
post #9

I 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 ;)

>> I use Deities & Demigods for hostnames I do the same. My primary development machine is 'ptah': https://en.wikipedia.org/wiki/Ptah Firewall is 'anubis'. Had a print server named 'loki'. Never again.

Same here, except Lovecraft deities. My domain is rlyeh, and my hostnames at the moment are yog-sothoth, azathoth, and nyarlathotep. cthulhu, dygra, and yidhra are retired hosts.
Post reply on HN