ActivityPub is the new .com biz and/or new crypto ICO and/or new buzzword you can show people while keeping your actual project slightly out of view so that morons will think that it's amazing and The Future because it involves $technology which is Uniformly Good

The cold hard truth of it is that ActivityPub is bad for almost all use-cases, and not great for the exceptions

@sir I think the worst is that people are speaking about:
- ActivityPub based on Mastodon UX
- git based on GitHub
- email based on epicly broken shits
- web based on (Firefox|Chrome)
- Matrix based on Riot+matrix.org on a powerful machine

@lanodan that people don't realize they're neck deep in horse shit when they decide to settle down and build a new house on top of it is a major problem in computers

Follow

@lanodan we have the absolute worst standards of any engineering discipline, we have a million poorly educated programmers using toy hammers and orbital lasers to build bridges out of popsicle sticks and children's toys out of refined uranium and everything is on fire and WHY ARE WE OKAY WITH THIS

@sir @lanodan You can teach yourself to tell the computer how to do something you want and become a programmer. You cannot reasonably do the same with civil engineering.
@portpupper @sir Mostly because we have no engineering standard at all.

Like so far I only know OpenBSD and a bit of the linux kernel where a project actually has a standard on evaluating code.
We still have a pile of CVEs that are found with mostly automated tools.
@lanodan @portpupper @sir Hey, we do have a standard, but it's ridiculously difficult to use and do properly (JPL's programming standard)
@alexandria @portpupper @sir IIRC that's used in ANSSI (France's national infosec agency) coding standard.
@lanodan @portpupper @sir I think though, the problem is essentially that programmers do not have Taste. Most artists grow up seeing Good Art, and strive to emulate it, and then later on experiment with that and develop their own Style. We don't have that (And if you're asking why I'm comparing to art, it's because ultimately programming is a majorly creative endeavour -- see Knuth's ACM piece for an argument on that).

It's like seeing the pre-Renaissance paintings where literally nobody had any idea of what Perspective is, and the parts of the view are all over the place, but it's still considered "good", because for the time it _was_. That's basically all, programming at the moment.
@alexandria @portpupper @sir
> And parts of the View are all over the place

Literally webdev, I don't even have to change the vocabulary.

@alexandria

Also, programming is engineering, building _tools_, it is not art, it doesn't carry emotional expressions.

@sir @lanodan @portpupper

@d599f84e

My code carries emotional expression. The emotion is rage, unyielding rage.

@alexandria @sir @lanodan @portpupper

@d599f84e @sir @lanodan @portpupper Art doesn’t have to be about emotion, though.

Knuth himself argues this point here (https://dl.acm.org/doi/pdf/10.1145/361604.361612). It’s more reasoned and well-put than mine, so before responding, please go and read what he says too :) If only to avoid any miscommunication (I’m writing this at 5am without stimulants like caffeine). Paul Graham also mentions about this in “Hackers and Painters”, which is a good read.

Art isn’t about “emotion” — that’s simply one of the things we choose to express through art. A lot of art can be considered “beautiful” without striking any particular emotion within someone. It’s about creativity, and more fundamentally, about Expression. When we talk about “Good Code”, concepts like “Style” and “Aesthetics” are completely appropriate.

Aesthetics and Style are the reason that there are 40 year old, heated flamewars about Bracing Style (K&R or Allman?), Comment Style (Both on the position and content). It’s the reason why APL or J are seldom used, why someone chooses one language over another. Both APL and J are perfectly functional, efficient languages. Indeed, from an Engineering standpoint, they are ideal! Minimal syntax, so the syntax parser has little work, and you do not have to type much. And the concepts they base off (matrix computations) are ideal for translating to SIMD for the fastest execution time! Not to mention, they’re equivalent to any other language!

Surely, if it’s an Engineering practice, bracing style should not matter? Comments should not matter? Surely, how the language that you use looks, should not matter?

The reason why they are not used is Aesthetics, and Style. The Aesthetics of those languages are unfamiliar, so they’re harder to parse (without training). The style you have to write in, performing matrix computations, is not one most people find easy or useful, and are harder to model in your head. These two things also come into how the communities developed. Look at the difference between C++ and C, the one community developing different Taste in what it was appropriate for the language to do, and how it should act as time went on, drawing a divide.

In a deep way, Programming and Art are about expressing an idea from yourself to someone or something else. I’m going to borrow some ideas from Mathematical Platonism, and talk about the “Platonic Space” for a second.

Imagine a platonic realm filled with concepts about implementation. The mechanisms you can create, the data structures you use, and so on.

When you program, you have to figure out which, of the thousands of ways you could implement this program, to choose. You have to pick the data structures that you think fit the constraints best, from which there are many. Making that choice, is not a logical choice. Often one is as good as the other, or they have tradeoffs that make it impossible to choose through a logical method. Ultimately, it comes down to constraints and Taste. Ultimately, the way you write that, comes down to your Taste as a Programmer. Just like artists do. In the many days I would spend talking to my parents about my programs and them, their art, we slowly realised there is more in common than not.

This is why toy languages and environments like the PICO-8 are so much fun for programmers. This is why learning more programming languages is fabled to make you a better programmer. It offers you experience and familiarity with pulling unfamiliar ideas out of that platonic space, forcing you to choose ideas that you have not implemented before, and seeing how they play out when you do that. It’s about expanding your own knowledge of the possible ideas that exist in that space, and how to implement them.

When I say all of this, I say it as the child of two artists, one of whom is an acclaimed Fellow for the Society of Botanical Art. They have, throughout my entire life, done their utmost to convey their knowledge to me. We have spent long hours talking about our work, and noticing the similarities in how we approach things, and the forms of expression we are given. I have talked deeply, with artists, about this fact.

I do not believe that craftmanship of programming shares any more with Engineering than the act of “Building a Wooden Chair” does. You can do it as an Engineer, and the chair will be well-built indeed. But you can do it with no knowledge about that and still build a beautiful, functional chair. The point of Engineering, and indeed, Computer Science, is to inform our senses when we wonder if a design for a program or a chair is going to work, and to expand our knowledge of what we can craft. but it should never be assumed to be equivalent.

Thanks for reading :)

@d599f84e
Engineering is when you have a reliable methodology that leads to reliable results, and consequences of design decisions can be predicted ahead of time.
Programming is certanly not that. At least in most cases.

@alexandria @sir @lanodan @portpupper

@wolf480pl @d599f84e @sir @lanodan @portpupper I mean hell, even when you have that (When you're making a chair, for example), there are still other things to consider.

@d599f84e @alexandria @sir @lanodan @portpupper

Also, I don't think art must necessarily carry emotional expression.
My maths teacher used to say "derivatives are a craft, integrals are art" because there's no algorythm or methodology for calculating integrals. You have to guess, and you have to guess correctly.

@wolf480pl @d599f84e @alexandria @sir @lanodan

There's nothing that says that traditional art needs to intend to convey emotional expression, either.

@alexandria @sir @lanodan @portpupper

Looks like, after all your replies, that I have no idea what programming is, haha

@alexandria @sir @lanodan @portpupper an interesting viewpoint, perhaps partly supported by ever looking at your own code from say 10 years ago...

@portpupper @sir @lanodan I agree but that said I knew multiple people in college who switched from CE because it was a boring plug and chug field. In software development it's much easier for a single person/small team to make a thing that's useful without necessarily needing to pass the same bar as building a bridge, and that's good. People might build a lot of not so solid tools, but there are enough that work well enough that they dramatically improve productivity (hate that term...) and let people do things they previously couldn't.

I definitely sympathize with this mood, but I also think people saying software development should be like CE makes no sense...

@MonKaiju @sir @lanodan

This is another way that software is different from traditional engineering: we can't even separate ourselves cleanly into "it's important to have professional standards" projects and "who cares?" projects.

One person's CMS they designed for their webcomic might be re-used by someone else writing EHR software. When the security bugs start getting health records leaked, is it the fault of the CMS author who doesn't care if tomorrow's comic goes live a day early or that of the EHR vendor who brought in the dependency?

@portpupper @sir @lanodan oh yeah, I agree that's a problem. I do sympathize with the situation, I just think it's important to keep our critiques at the same quality we're advocating our software to be.

@sir @lanodan imagine if any other business accepted the things software engineering accepts?

"Yeah sometimes your car doors just won't open. Restart it and see if that helps".

"We couldn't make this fridge run on the west coast power grid so we shipped it together with a complete miniature power grid that the user can dock into their kitchen."

"I know this microwave uses 4000W but have you seen the pretty UI?"

@kungtotte @sir Microwave one could actually happen for the smart version.

My kind of microwave is no microwave or the two-knobs one. (also my gaz stove is an hierloom one that is off the grid)
@kungtotte @sir @lanodan
that last example is literally how modern fridges work
less exaggerated, but still
the type of fridges we use most (french door, pull-out freezer on the bottom, single heat pump) is *the* most energy inefficient design available

@sir @lanodan
>WHY ARE WE OKAY WITH THIS

Because that's the only way to cope. That, or giving up everything and moving to the mountains.

@wolf480pl @sir Still have a bit of hope that I could move to HaikuOS rather than doing this, specially as mountains are far away here.

Middle of the forest would work.
Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!