Regarding complexity budget, slow software, all that:

Very few people do take pride in building simple, elegant, high-quality systems, do they? Why is that? Why are huge shiny things with tons of features more attractive? 🤔

I never explicitly thought about this, to be honest. It was only at the back of my head. And I never tried to teach our younger “students” at work: “Hey, it’s a great achievement to build something simple and elegant. That’s something to be proud of!”

Worse, simple software is often described as “boring”. Yes, in a way, it is boring, because your brain doesn’t have to get into overdrive to understand it. But that’s exactly the point. And it’s hard to achieve that! Simple software isn’t just “fewer lines of code”, you have to be pretty clever to solve a problem in a simple and elegant way. So it’s something to be proud of.

Could this be an intuitive, emotional way to get more people on board the “simple software”-train? 🤔

⤋ Read More

@movq@www.uninformativ.de @prologic@twtxt.net Good analysis! Another aspect is: Trying out new stuff is appealing to a lot of people. I’m certainly not unguilty of that either. But when you experiment, things will naturally go wrong somewhere at some point. You probably don’t even know that at this point in time and realize this only much later. If at all.

To make it better, throwing things away and starting over with the newly aquired knowledge would be the right thing to do. But that doesn’t happen for a myriad of reasons. So you ended up with overly complex stuff.

A bit like building a prototype and keeping it alive forever. “Denn nichts hält länger als ein Provisorium.” – “Nothing is more definitive than the temporary.”

Then there comes in feature creep. And preliminary optim^Wfeatures, “hey, maybe somebody would like to bla in the future, let’s add this”.

⤋ Read More

@lyse@lyse.isobeef.org

Then there comes in feature creep.

This is driving me nuts. Everybody thinks that “development has to be kept alive!” When people see a project without commits in the last 2 years, they think it’s dead and not worth using. Bah, why? Software can be “done”. If no bugs are known, then there’s no need to change anything.

All these ideas are old. I’ve heard about much of this from meillo some 15 years ago and he didn’t come up with it, either.

It’s all super unpopular. Why? Many of my projects see a burst of commits in the beginning and then mostly just maintenance – and that’s great. It saves me from so much trouble and work. For example, my X11 wallpaper setter was written in 2017, I’m using it daily all the time, it just works, boom, done.

A project isn’t dead if it doesn’t see commits anymore – it’s dead if nobody maintains it anymore.

⤋ Read More

@movq@www.uninformativ.de Yeah, I don’t get it either. Some “security” scanner at work also complains about “dead” libraries all the time, just because the most recent commit is a few years or even just months old. What a giant joke.

This mindset might come from today’s kids who can build stuff only with gazillions of dependencies. And plenty of these suck, are full of bugs, vulnerabilities and bad code in general. So they have to be patched constantly. If one is always surrounded by that, it just feels normal. One might even come to the conclusion that it simply has to naturally be that way. And then, the incorrect deduction is that the project is abandoned, once there are no new commits in a week. It maybe doesn’t occur to these people that it is actually possible to work out differently.

To be fair, there is also a lot of unfinished and truly dead code out there. So that assures their theory even further, once they stumble across one of those projects.

And the same doesn’t only happen to private projects. All enterprise software systems also pull in so much stuff, that there is always something to update.

The lack of proper planning, just building and delivering buggy banana software in cycles and the mindset of shipping fast and often and doing things agile in general does not do this any favor. It just feels like today’s sofware is never ever finished. And if it finally reaches such a point, it must be dead.

I know of some otherwise reeeeaaaaally great software developers who also think that way. I don’t understand why they disagree with us here. :-?

⤋ Read More

@movq@www.uninformativ.de Somewhere or another, I think in a William Byrd talk, I heard it suggested that the best ideas in computer science should fit on an index card (ah yes it’s this one: https://paperswelove.org/2017/video/will-byrd-most-beautiful-program/ ). He was referring to the basic principles of LISP/the lambda calculus, which have sometimes been called the Maxwell’s equations of computer programming (by Alan Kay). Simple, short, elegant, but very densely packed with meaning–generations of people have spent their whole careers unpacking what those simple rules can do.

Much of modern software feels like the polar opposite of that. Not only can you not write it on an index card, you never will be able to because people who write software don’t seem to aspire to try. I wish more people thought this way though!

⤋ Read More

Participate

Login to join in on this yarn.