this post was submitted on 10 Sep 2025
524 points (98.2% liked)

Programmer Humor

26281 readers
1355 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] Cruel@programming.dev 63 points 2 days ago (1 children)

I took great pains last week to convert a big python project to make it typed. (shoutout to MonkeyType)

It's so much nicer to develop now...

[–] jjjalljs@ttrpg.network 17 points 2 days ago (1 children)

Oh that's a neat library. Type annotations in python are really nice, and you don't have to add tooling like when you switch from JS to TS.

[–] Cruel@programming.dev 7 points 2 days ago

Yeah, I stopped developing in JS for good ~1.5 years ago. After using TS, it seems crazy to go back.

[–] kubica@fedia.io 63 points 2 days ago (3 children)

Empty string used to be like my own version of null pointer.

[–] marcos@lemmy.world 46 points 2 days ago

Oh, you worked at Oracle by any chance?

[–] DScratch@sh.itjust.works 29 points 2 days ago (1 children)

Dark times…

Like -1 for an Int nil value.

[–] uranibaba@lemmy.world 8 points 2 days ago (2 children)

Which language can nil an int?

load more comments (2 replies)
[–] baines@lemmy.cafe 10 points 2 days ago

easy there satan

[–] panda_abyss@lemmy.ca 44 points 2 days ago (4 children)
[–] joyjoy@lemmy.zip 31 points 2 days ago

Me: Puts a boolean into sqlite

Me: Asks for that boolean

SQLite: "Here's that int you asked for"

[–] asperan@programming.dev 20 points 2 days ago (3 children)

It is also the bash approach, isn't it?!

[–] AllNewTypeFace@leminal.space 10 points 2 days ago (2 children)

Also, Tcl (a cute little scripting language from the 90s, best known for giving the world the Tk UI toolkit; it was somewhat Lispy, only under the hood, worked like sh, where everything was a string).

[–] brian@programming.dev 7 points 2 days ago

more directly, sqlite was originally for tcl which is why they share the semantics.

also I'd argue that sqlite is a bigger contribution than tk, but I suppose in a more roundabout way

load more comments (1 replies)
load more comments (2 replies)
[–] saltesc@lemmy.world 6 points 2 days ago (1 children)

God, I'm so over SQL.

It's great, but it is so old and shows it. Feels like 99% of my SQL queries are just cheese.

Works though, and quick.

[–] mesamunefire@piefed.social 21 points 2 days ago (2 children)

SQL is the only bedrock in my entire career. Its the one thing that has stayed relevant.

SQL is great but when you start having issues processing what is actually going on, its fine to pull out what you need and throw another language on top (python, C#, etc...etc...). Getting it to work slow is one step in making it fast again.

[–] Valmond@lemmy.world 4 points 2 days ago (4 children)

Yeah it's curious that it hasn't really undergone some major changes or had some major challengers (except NoSQL I guess).

[–] mesamunefire@piefed.social 15 points 2 days ago (1 children)

Its been a while but yeah NoSQL was the closest.

I remember a good 4-5 years where developers all around me were using couchdb, mongodb, and a host of others. mostly json in <-> json out kind of systems. And VERY hard to maintain after the initial TODO. I remember so much debugging and finding out old records didnt have a way to deal with changes in the "tables" or equivalents. It was maddening.

Dont get me wrong, it did create some really awesome specialty tools but you cant really get around ACID compliance when dealing with databases.

I think SQL has some awesome properties that keep it going:

  1. Most major distributions are rock solid stable.
  2. Its optimized and fast for data.
  3. Its understandable to many types of industries. Software development is only the start.
  4. Its integrated with everything already. So ODBCs can just plug and play most of the time.
  5. Its the devil we know. ACID, transactions, etc... are all things we know about and are proven to work very well. Definitly when you need to MAKE SURE a thing made its way into the system.
[–] Valmond@lemmy.world 5 points 2 days ago

Yeah 100% with you, had this mongo database where the first entry was like a description, the nr 2 and on the actual data. I mean if there were a description... Sometes 2 descriptions...

Why oh why.

And for sure SQL is kind of the cement of DB today, don't get me wrong, I like that what I learned yesterday actually still works, I'm just pondering the fact that it is so.

Maybe SQL isn't the hip language so people doesn't try to reinvent it all the time 😁

[–] panda_abyss@lemmy.ca 9 points 2 days ago (3 children)

It has though

Window functions were an addition, but more recently struct, json, and array fields with native support. Pipe syntax is getting multiple implementations.

Match recognize is a whole new standard abstraction of window functions.

Union by name is being added (fuck union by position).

load more comments (3 replies)
load more comments (2 replies)
load more comments (1 replies)
[–] JackbyDev@programming.dev 5 points 2 days ago (2 children)

They finally added strict tables which avoids most (all?) of those shenanigans.

load more comments (2 replies)
[–] JackbyDev@programming.dev 28 points 2 days ago (4 children)

I am strongly strongly statically typed pilled and I will not apologize.

load more comments (4 replies)
[–] magic_lobster_party@fedia.io 28 points 2 days ago (1 children)
[–] InternetPerson@lemmings.world 7 points 2 days ago

We don't touch that unless we really know what we're doing.

[–] BenLeMan@lemmy.world 22 points 2 days ago* (last edited 2 days ago) (1 children)

God, that reminds me of the debate on XML that I had with a developer about fifteen years ago.

Both our companies were working for a client who needed to publish product catalogues in several languages twice a year.

They had implemented a sort of Content Management System which they used with a plugin to feed data into Quark Xpress files as well as their website, IIRC. Cross-media publishing, essentially, and they had their own little set of format instructions to make words appear in bold, different colors, etc.

Since my company was tasked with translating the text into various languages, I suggested they come up with a way to store their data as XML. The standard tools in the translation industry can be easily customized to work with that, and XML would be a good way to future-proof their software. After a lot of delaying, grumbling, and ho-hum, they agreed to implement this plan.

Lo and behold, when the first meeting on the new XML format came around they showed it to me for the first time and... everything was in CDATA sections. Entire paragraphs of text with proprietary formatting instructions. 😐

When I tried to explain, very politely, and very patiently, that this was not going to work, the lead dev started insulting me. I swear to God, I've never been this close to punching someone in the face at a business meeting. 🤬

Thankfully, the client understood the issue and we eventually got an XML-based data exchange going. It is probably still in use today.

load more comments (1 replies)
[–] kiri@piefed.social 17 points 2 days ago (1 children)
[–] Jerkface@lemmy.world 12 points 2 days ago (1 children)

... Little Endian or Big Endian?

[–] squaresinger@lemmy.world 6 points 2 days ago (4 children)
[–] JackbyDev@programming.dev 5 points 2 days ago (1 children)

I made a joke about that lately after someone suggested YYYY-DD-MM.

load more comments (1 replies)
load more comments (3 replies)
[–] apfelwoiSchoppen@lemmy.world 15 points 2 days ago (1 children)

The NHL banned the use of 00 as a number in the 95-96 season because they claimed their databases couldn't handle it. They still are fools because this continues to be a banned number to this day.

[–] AmazingAwesomator@lemmy.world 6 points 2 days ago

(i am old) both my brother and i were number 00 in our younger hockey years. we were goalies, so we got first pick of numbers on all new teams we played on, heheheh.

[–] lime@feddit.nu 10 points 2 days ago (2 children)

some of you have never programmed in tcl and it shows

[–] magic_lobster_party@fedia.io 19 points 2 days ago (1 children)

I opened a TCL script once. It’s use of uplevel scared me. I’ve never dared to return since.

For those who don’t know: uplevel is a command that goes up one level of the stack frame, and then executes code there. A function can therefore execute code in its callers stack frame.

[–] lime@feddit.nu 13 points 2 days ago* (last edited 2 days ago)

tcl is pretty fun actually, it's like bash on steroids.

for a preview of the insanity: anything surrounded by "" is a string, with the variable expansion you'd expect. anything surrounded by {} is also a string, but with no expansion. the equivalent in bash is the backtick string. but you don't need to know that to write tcl. if you approach {} as "code blocks" like in other languages, it just works. reason being that tcl evals everything, constantly, attaching little tags to strings that tells the language how things are used, like "this string is an integer" or "this string is code and here is the result from last time it ran". it's madness and, weirdly, robust as hell. Xilinx writes all their tooling in tcl. SQLite started life as a tcl module, and it's still the only api that is not provided by a plugin.

[–] frezik@lemmy.blahaj.zone 4 points 2 days ago (1 children)

I have. I quickly learned not to.

Tk is overlooked, though. It's not pretty, and its approach is archaic, but it's one of the few GUI toolkits that Just Works on every platform I tried it on with minimum fuss.

load more comments (1 replies)
[–] ICastFist@programming.dev 9 points 2 days ago (1 children)

Me, trying to learn flat assembler: "What is even an object?"

[–] expr@programming.dev 6 points 2 days ago

Me, as a professional Haskeller: "What is even an object?"

[–] desmosthenes@lemmy.world 9 points 2 days ago

lol I think this when I see “any”

[–] kruhmaster@sh.itjust.works 9 points 2 days ago (4 children)
load more comments (4 replies)
[–] trxxruraxvr@lemmy.world 8 points 2 days ago (2 children)
[–] Feyd@programming.dev 5 points 2 days ago (2 children)
load more comments (2 replies)
load more comments (1 replies)
[–] KindaABigDyl@programming.dev 8 points 2 days ago

Just use enums

[–] baines@lemmy.cafe 7 points 2 days ago

where my Ada bros not committing war crimes at?

[–] fibojoly@sh.itjust.works 6 points 2 days ago (1 children)

Haha! Reminds me when I arrived in a team whose API accepted JSON and all the booleans were "True" or "False" (meaningful case, obv.) That was fun.

load more comments (1 replies)
[–] Lemminary@lemmy.world 6 points 2 days ago

[Laughs in computed TypeScript strings]

[–] kewjo@lemmy.world 5 points 2 days ago

at the end of the day everything's a []u8 if you want it to be

[–] svcg@lemmy.blahaj.zone 5 points 2 days ago

This certainly Tcl'd my funny bone.

load more comments
view more: next ›