this post was submitted on 05 Apr 2025
141 points (88.1% liked)

Programmer Humor

22262 readers
556 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
[–] [email protected] 7 points 1 day ago
fprintf(stdout, "%c", '\012');
[–] [email protected] 6 points 1 day ago* (last edited 1 day ago) (1 children)
[–] [email protected] 4 points 1 day ago (3 children)

I just learned that in Python, it's fucking terrible. Python is a fucking mess and my next script will be in a different language.

[–] [email protected] 4 points 1 day ago (1 children)

Perhaps TS is not a terrible language for shell scripts after all

[–] [email protected] 2 points 1 day ago* (last edited 1 day ago)

Never tried it, but I will probably be more at home than python.

[–] [email protected] 4 points 1 day ago

python is a bad joke that never ends

[–] [email protected] 3 points 1 day ago (1 children)

As a python lover, I have to ask, what don't you like about it and what languages do you generally prefer?

[–] [email protected] 1 points 1 day ago

I prefer strongly typed languages. Using bytes isn't intuitive.

Transforming certain data types into other data types is often not straightforward.

The identation is the worst though. Let me format the code however I want.

[–] [email protected] 10 points 2 days ago (2 children)

Fuck endl, all my homies hate endl

[–] [email protected] 2 points 2 days ago (2 children)

Cout << "\n"; is dumb and you should feel bad

[–] [email protected] 1 points 2 days ago (1 children)

You're right, that is incredibly dumb. Just not for the reasons you think it is. Imagine using iostream rather than stdio and unironically trying to clown on \n

[–] [email protected] 1 points 2 days ago* (last edited 2 days ago) (1 children)

Is this not a debate for freshman students and other assorted opinionated know-nothings? Or just people shitposting.

My mistake. You think it's srs.

(And your opinion is still bad)

[–] [email protected] 0 points 1 day ago (1 children)

Oh no! Did I hurt your feelings by clapping back when you insulted me on a shitpost comment chain? Your lack of self awareness is astounding

[–] [email protected] 1 points 1 day ago

bloods 4 lyfe

[–] [email protected] 23 points 2 days ago* (last edited 2 days ago) (1 children)

I am very sorry to remind everyone about the existence of Visual Basic, but it has:

  • VbCrLf
  • VbNewLine
  • ControlChars.CrLf
  • ControlChars.NewLine
  • Environment.NewLine
  • Chr(13) & Chr(10)

And I know what you're asking: Yes, of course all of them have subtly different behavior, and some of them only work in VB.NET and not in classic VB or VBA.

The only thing you can rely on is that "\r\n" doesn't work.

[–] [email protected] 4 points 1 day ago (1 children)

Apology not accepted, fuck you for reminding me!

[–] [email protected] 3 points 1 day ago

great reminder to avoid microsoft products as much as i can

[–] ulterno 18 points 2 days ago* (last edited 2 days ago) (1 children)

Simple. \n when you just want a newline.
endl when you need to flush at the moment.

Useful in case you are printing a debug output right before some function that might do bed stuff to buffers.


Edit: I wrote println instead of endl somehow. Guess I need more downtime

[–] embed_me 5 points 2 days ago (2 children)

I only program in C. I was under the assumption that \n also flushes

[–] [email protected] 3 points 2 days ago* (last edited 2 days ago)

It depends on whether you are printing to a terminal or to a file (and yes the terminal is also a file), and even then you can control the flushing behaviour using something like unbuffer

[–] ulterno 2 points 2 days ago

I remember having to fflush a couple of times.

[–] [email protected] 48 points 3 days ago (3 children)

No debate, std::endl can be a disaster on some platforms due to flushing crap all the time.

[–] [email protected] 36 points 3 days ago (2 children)

It's a very C++ thing that the language developers saw the clusterfuck that is stream flushing on the kernel and decided that the right course of action was to create another fucking layer of hidden inconsistent flushing.

[–] [email protected] 10 points 2 days ago

I hear C++ was greatly inspired by the fifth circle of hell.

[–] [email protected] 2 points 1 day ago

programmers manage to do stupid shit in every language. i was wondering if there was a way to stop them, and golang comes close but maybe proves it can't be done. idk!

[–] [email protected] 20 points 3 days ago

Just because the box says something is flushable doesn't mean you should flush it.

[–] [email protected] 1 points 1 day ago

Considering std::cout should only directly be used when you are too lazy to place breakpoints, I totally get the decision to auto-flush.

[–] [email protected] 29 points 3 days ago* (last edited 3 days ago) (1 children)

printf is superior and more concise, and snprintf is practically the only C string manipulation function that is not painful to use.

Try to print a 32-bit unsigned int as hexadecimal number of exactly 8 digits, using cout. You can do std::hex and std::setw(8) and std::setfill('0') and don't forget to use std::dec afterwards, or you can just, you know, printf("%08x") like a sane person.

Just don't forget to use -Werror=format but that is the default option on many compilers today.

C++23 now includes std::print which is exactly like printf but better, so the whole argument is over.

[–] [email protected] 3 points 2 days ago

I went digging in cppref at the format library bc I thought c++20 or c++23 added something cool.

Found std::print and was about to reply to this comment to share it bc I thought it was interesting. Then I read the last sentence.

Darn you and your predicting my every move /j

[–] [email protected] 17 points 3 days ago* (last edited 3 days ago) (1 children)

I prefer \n for 0.001% better performance

[–] [email protected] 25 points 3 days ago (1 children)

I prefer \n for less typing.

[–] [email protected] 2 points 2 days ago (1 children)

I prefer endl for more typing because it lets me pretend to work more than I am

[–] [email protected] 2 points 1 day ago

^ least deranged coder

[–] [email protected] 16 points 3 days ago
std::cout << "\nwhy not both" << std::endl;
[–] [email protected] 5 points 3 days ago (1 children)

In PHP it exists as well. I try to use PHP_EOL but when I'm lazy I simply do "\n".

[–] [email protected] 1 points 2 days ago (1 children)

For me the answer is “Building backend applications with it instead of CLI applications, like Lerdorf intended.”

But also "\n" because it's easier and PHP_EOL is just an alias for "\n"; it's not even platform-dependent.

[–] [email protected] 2 points 2 days ago (1 children)

PHP_EOL depends on your host system, it's \r\n on Windows.

I don't really want to use what Lerdorf intended, PHP <= 4 was horrible, 5.x was mainly getting slowly rid of nonsense and with 7.x PHP started its slow path of redemption and entered its modern era.

While Lerdorf's vision was great at that time for its intended use case, I wouldn't want to build anything serious in it.

[–] [email protected] 1 points 2 days ago

It actually outputs "\n" on a Windows system, but modern Windows to recognise that as enough of a newline, nowadays.

I don't really want to use what Lerdorf intended, PHP <= 4 was horrible

Actually a great point!

[–] [email protected] 3 points 3 days ago (1 children)

Maybe c# has similar. There's \r\n or \n like c++ and Environment.NewLine.

Probably it's similar in that Environment.NewLine takes into account the operating system in use and I wonder if endl in c++ does the same thing?

[–] [email protected] 4 points 2 days ago

C# also has verbatim strings, in which you can just put a literal newline.

string foo = @"This string 
has a line break!";
[–] [email protected] 3 points 3 days ago

Just puts(“I’m a teapot”); :)

load more comments
view more: next ›