this post was submitted on 18 Dec 2025
866 points (98.4% liked)

Programmer Humor

27914 readers
917 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
 
you are viewing a single comment's thread
view the rest of the comments
[–] RedFrank24@piefed.social 56 points 1 day ago (5 children)

The only times I've seen devs do inline comments in their code is when it's been done by AI, and I can tell it's AI because the comments are all useless and describing what's happening, not why.

[–] Eiri@lemmy.ca 55 points 1 day ago (2 children)
// Format user object
function formatUserObject(user) {

I've seen lots of such crap written by humans. I guess AI had to learn it from somewhere.

[–] Thorry@feddit.org 18 points 1 day ago

AI mostly learned it from programming tutorials and things like documentation and Q&A forums like StackOverflow. People often add comments in those cases to explain to somebody not familiar with code what is happening so they can learn from it.

In actual code written by people who write code for a living I'd hope the comments are much more useful and usually not as prevalent.

[–] definitemaybe@lemmy.ca 3 points 1 day ago (2 children)

I actually got really clean, well commented code from Copilot earlier this week.

I have no experience with JavaScript to speak of, but realized a Bookmarklet would be a perfect solution for reformatting a particular arcuate for printing. I already had a head replacement with CSS to do all the formatting, and I was using a RegEx to strip all script tags.

Anyway, I asked Copilot to write the Bookmarklet to replace the header, with full contents explaining the training behind the code, and an explanation of how the script functions below. When I got an error, I asked if to fix the error and or identified that Bookmarklets work better as single lines, so it fixed it. Then I added the requirement about replacing scripts, and it did that too, but for commented and a clean one-line version.

The one-live versions even up getting truncated, so I need to copy/paste from earlier (correct) endings, but otherwise it was an incredibly smooth experience.

I spent longer writing the guide for how to use it than the time it took to vibe code it and test it. I was super impressed.

(Granted, that's a pretty easy coding task...)

[–] bitjunkie@lemmy.world 2 points 7 hours ago

no JavaScript experience

knows what a bookmarklet is

[–] Clent@lemmy.dbzer0.com 6 points 1 day ago (1 children)

no experience with JavaScript to speak of

You claim no JavaScript experience, declare confident in the comments and include any examples.

All you've really said here is you vibed coded a solution to a problem using one of the most common languages without knowing the language. And made claims you do not attempt to prove.

[–] definitemaybe@lemmy.ca 1 points 14 hours ago* (last edited 4 hours ago) (1 children)

I know enough to parse the code, especially with the comments. It was a logical algorithm, it worked, and it was just for reformatting a page to print cleanly, so there was basically no risk if it didn't work. I code for work, I just don't know JavaScript syntax or functions.

Anyway, I was impressed it actually worked. I'm an AI skeptic, which is why I thought it was noteworthy to get well documented, clean, functional code from vibe coding—even in such a trivial context as swapping a head tag and removing script tags.

[–] Clent@lemmy.dbzer0.com 1 points 6 hours ago

a trivial context as swapping a head tag and removing script tags.

Very curious what it actually generated here because that sounds really basic but as coders we tend to downplay complexity when describing things (why our documentation is often bad) so maybe it's more than just some trivial dom manipulation.

[–] konalt@lemmy.world 29 points 1 day ago (2 children)

// 🚨 Log error to console console.error(error);

[–] Thorry@feddit.org 24 points 1 day ago* (last edited 1 day ago)

// 🤦 You are totally right! Simply logging the 🚨 error to the console isn't proper error handling. 🫣 We now throw an exception instead. throw new ApplicationException(error);

[–] tauonite@lemmy.world 5 points 1 day ago* (last edited 23 hours ago) (2 children)

I once tried vibe coding a web app using GitHub Copilot. That motherfucker wrapped every single endpoint with

try:
    ...
except Exception:
    return "An error occurred"

What the fuck is wrong with you Copilot? This piece of shit trying to hide all the errors. If I don't know there are errors then there aren't errors. Apparently

[–] bitjunkie@lemmy.world 1 points 7 hours ago

It's actually kind of hilarious how closely it mimics a human programmer who just sucks at it.

[–] ChickenLadyLovesLife@lemmy.world 3 points 20 hours ago* (last edited 20 hours ago) (1 children)

I wish to god Visual Basic was still around so Copilot et. al. could get infected with ON ERROR RESUME NEXT statements. Or its under-appreciated but vastly more horrific cousin ON ERROR RESUME.

[–] pinball_wizard@lemmy.zip 2 points 17 hours ago* (last edited 17 hours ago)

I might make that my first coding project after I retire. I bet I can code up a global import that implements "ON ERROR RESUME" in a couple of modern languages...

[–] nogooduser@lemmy.world 15 points 1 day ago (1 children)

I sometimes suspect that I am actually an AI. I’ve always struggled with captchas and I comment my code exactly as you’ve just described.

[–] vrek@programming.dev 7 points 1 day ago (1 children)

Proper comments describe why... For example say you are using an api which requires guids and your application doesn't care are collisions as much so just use int id's.

You could add in a comment like

// creating a guid to interface with special api.

But just saying

// generate guid

Means nothing, your method should be generate_guid() or GenerateGuid(). Your comment is repeating.

Or this is probably going to hit my last company at some point, there was a system to read a serial number. They also wanted a "status" on the screen to verify the system was connected and running properly but both these values came over same signal wire. Depending on your exact ms timing sometimes you would read the status as the serial number. Another programmer wrote a check to verify the serial number did not start with OK. The comment added was

// add on 11/15/23 by Initials

With no other details. The serial numbers were 8 numeric digits. Someone won't know the history and delete this seemingly useless check and cause a 10s of 1000s of dollars in loss

[–] anomnom@sh.itjust.works 6 points 1 day ago* (last edited 1 day ago) (1 children)

I used to write it all the steps I thought I’d need as these types of comments, then go back and write the real methods. But I usually replaced the comments with more detailed jsdocs style comments with as much detail about the parameters as returnvalues as possible.

Then I quit web dev and moved to the woods.

[–] vrek@programming.dev 4 points 1 day ago

Yeah effectively using comments as psuedocode

[–] eager_eagle@lemmy.world 2 points 1 day ago

yeah, I put rules to highly discourage comments entirely when generating code