"It should be simple to code"

This is important.

Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

Every programmer starts out writing some perfect little snowflake like this. Then they’re told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers’ snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day. Next week, everybody shovels more snow on it to keep the Picasso from falling over.

12 Likes

That was hilarious!

I did think this thread was getting a bit AI-heavy for the topic, but it’s funny how AI can become relevant to any topic these days. It’s also funny how misunderstood AI is… People often think “Terminator” or like “HAL” from 2001 A Space Odyssey, but it’s really more like “statistics on steroids”:

I guess what I’m saying is AI is no big deal and “should be simple to code” :wink:

9 Likes

Even with ASIO, Windows still doesn’t prioritize audio well. Even using a high-end gaming laptop (*from 2018), the usable latency in WIndows is literally way more than double what I can use on my new M2 Max laptop with the same MOTU interface.

2 Likes

Fair enough, everyone’s hardware/software setup is different. My experience with my Audient interface is comparable on both a MacBook Pro 13 (2018 intel) and my main Windows 11 Alienware (12th gen intel).

A lot of it is definitely a crapshoot based on a smattering of different chipsets and drivers, and without the tighter coupling of MacOS. It took RME devices for me to have solid latency, less so with even my MOTU interface.

ASIO4WIN helped in some circumstances, but had its own limitations that I don’t blame the developers for.

I’ve used Alienware & other “gaming” PCs in the past, but while they had plenty of CPU power to spare for number-crunching the low level subsystems weren’t ideal.

Audient provide their own ASIO driver, and works well with the native WASAPI too, using Windows for Audio certainly requires more careful considerations and choices of equipment than macOS for sure. The latest crop of 12th gen alienware are very good, much better than the previous generations.

I would have probably stayed with macOS if I didn’t need performant virtualization support of x86/amd64 architectures for both windows and rhel VMs for work stuff.

1 Like

And that’s before the Git merge where the WFH collaborator hosed the repo, and you spent four straight days trying to reconstruct your perfect snowflake. Then you said it doesn’t need to be perfect, it just needs to pass the regression tests. And then you said it doesn’t need to exactly pass the regression test, you’d settle for squashing the merge conflicts and getting it to compile again. Just please God, Zeus, Ramtha, Cthulhu, whoever is listening, let it compile again.

2 Likes
6 Likes

This level of over the top AI exuberance has happened every time there’s some notable improvement in ML/Statistical learning like we’ve magically found the missing link for AI Takeoff.

Then we hit the “well it kind of works but look at the nonsense it comes up with at times” and it dies down as it turns out we can’t just blindly jam it into everything.

In general, I’d advise people to try not to get to invested in the various technology hype trains that come and go or you may find yourself spending your life savings on NFTs and other passing fads.

7 Likes

image

14 Likes

You know the person that wrote this has never listened to music in their life, because “Electronica.” It’s a good blurb. Speaking from anecdata and friends’ experiences, I get the sense that almost all project work has the symptoms, buffoonery, etc described in this thread - rather than being limited to software projects.

Are people still reading Hacker News? It got to be a bit of a bad candy for me. Had to leave the cynicism and negativity. Had to come to the light. The light is nice. We have punch here.

4 Likes

My HackerNews intake dropped a lot after I found this place.

4 Likes

I’ve been reading Hacker News for some 13 years now and… Absolutely 100% agree with you, I’m getting so fucking tired of the cynicism/negativity in there, on top of it there’s also loads and loads of hubris. I feel completely disconnected from that world, the only reason I keep looking at Hacker News is because I still find great articles shared in there, avoiding most of the comments section when I can. Well, once in a blue moon there’s some good discussion, but I’d say some 90-95% of the times is a bunch of out-of-touch tech people laying out their opinions as “The Truth™”, a lot of pedantry, and a lack of humbleness that slowly sucks the life out of my soul :joy:

Same here.

5 Likes

Oh that’s me. Sorry. HN brings the “somebody wrong on the internet” out of me so strongly.

2 Likes

means ZIP 64 in case that was the question… That thing is called “local header” and is followed by other local headers for each file followed by global header below all data. In other words you can safely rename it to zip and run it thru zipinfo or well - unzip. Super easy - not easy. Not easy because it must be compliant to the official format and secured otherwise it is ridiculous easy to funnel malicious stuff in your beloved machine. So the securing part is either ignored - uneasy feeling , or properly coded - also uneasy feeling. lol.

I know extremly little about coding but I’ve always thought that a function in code is as easy as the context it is in, meaning that if you have coded a system which interacts everything with everything (I.e Octatrack) even the smallest change can have huge consequences, butterfly effect etc.

That’s why I’ve always assumed that it’s never easy

2 Likes

The whole Computer Science discipline is about decomposition, decoupling, isolation and preventing unwanted side effects :slight_smile:
There is still a risk to break everything by a single change, but in well designed system engineer usually clearly understands what exactly may be affected.

2 Likes

this thread made me invent new word:

impossimple

12 Likes

That will most definitely make things simplicated :+1:t2:

2 Likes

That’s what we call “spaghetti code” when it becomes so coupled and intertwined that any small change might have unknown and unforeseen consequences. The job as a software engineer is to try to keep this complexity explosion under control, to the point where it’s possible to modularise/compartmentalise and reason about each separate component of the system by itself, and model interactions between different components as predictable (and with as little cognitive load) as possible.

It’s a job about predicting future pain points and containing them, decomposing problems into smaller parts, and building up the whole system in a cohesive way made of smaller parts so it’s possible to reason about a very complex systems just by the interactions of these smaller subparts.

3 Likes