this post was submitted on 05 Apr 2025
163 points (95.5% liked)

Programmer Humor

35094 readers
53 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 1 week ago

Endl is faster to type

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

They aren't the same thing so the comparison is weird.

endl has a flush which is important when doing something like embedded work or RTOS development. If i was doing multiple lines they all were \n until the last line when i actually want to push the buffer.

Obviously depending on the tuning of the compiler's optimization multiple flushes could be reduced but the goal should always be to write as optimal as possible.

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

but the goal should always be to write as optimal as possible.

Within reason.

Over optimization is a curse on getting done.

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

Who in the hell is using iostreams in an RTOS

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

Sometimes you work in a codebase that was decided on by others for reasons you don't know.

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

Several. Probably dozens

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

Well, Java has System.lineSeparator so, maybe no?

[–] [email protected] 20 points 1 week ago

\n, because I ordered a newline, not a flush.

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

Environment.NewLine might exist in C#

[–] [email protected] -1 points 1 week ago

Microsoft really creating the problem and then forcing you to use their solution.

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

It might do. I encountered it last week as I needed it for a powershell script. So it exists in that at least

[–] [email protected] 3 points 1 week ago
[–] [email protected] 17 points 1 week ago

#define endl "\n"

[–] [email protected] -1 points 1 week ago (1 children)

If you write to a text (as opposed to binary) stream, \n produces \n or \r\n (or \r if old enough) depending on platform just fine.

Nobody should be using C++ anyway, but plenty of languages have silly system newline constants, which do nothing useful.

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

Why should no one be using c++?

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

It's memory unsafe and it's syntax is indistinguishable from the runes which summon cthulu.

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

Memory unsafe C++ is a choice. With modern C++ you have no excuse for accessing raw pointers or arrays without range checking if memory safety is a priority.

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

Yeah, just don't make any mistakes and you'll be fine. Come on guys, how hard can it be?

[–] [email protected] 1 points 1 week ago (1 children)

As I said: There are tools in place in modern C++ that are designed to catch the errors you make. If you are using a raw pointer when you could have used a reference, or accessing an array without range checking, those are choices you've made. They may be valid choices in your use-case, but don't go complaining that the language is "unsafe" when it gives you the option to code with guard rails and you choose to forgo them.

[–] [email protected] 1 points 1 week ago (1 children)

I'm a full time C++ developer, mostly doing high performance data processing and some visualization and TUI tools, and as someone loving C++, it's not as simple as you frame it. In sufficiently complex code you still have to deal with these problems. Rust has some good mechanisms in place to avoid these and there are things on the way for c++26 though.

[–] [email protected] 1 points 1 week ago (1 children)

I don't mean to say that C++ is in any way without faults. If performance is crucial, that can definitely be a reason to forgo some of the guard-rails, and then you're on your own.

I guess my issue with the "C++ is unsafe"-trope, is that it usually (in my experience) comes from people not having heard of all the guard-rails in the first place, or refusing to use them when appropriate. They write C++ as if they were writing C, and then complain that the language is unsafe when they've made a mistake that is easily avoided using stl-containers.

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

Yes I agree on that. A lot of people write "C with classes" and then complain...

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

I think the memory stuff is pretty good nowadays. I'm sure I saw modern C++ can have a garbage collector. And the syntax is only runelike until you learn it, like any language really. As an industry C# developer I've recently taken up C++ as a hobby to better learn the workings of low level code and I've been enjoying it so far.

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

c# has lovely syntax and languages like it and python are pretty readable with basic coding knowledge. C++ if you don't know a symbol there's too many options and the risk of misunderstanding is too high.

I will agree with your claim "if you learn the syntax then you know the syntax" but I don't find this valuable.

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

Rebel side \0

[–] [email protected] 9 points 1 week ago

os.linesep

Lol jk none of my stuff runs on Windows anyway

[–] [email protected] 5 points 1 week ago
[–] [email protected] 9 points 1 week ago (1 children)
[–] [email protected] 2 points 1 week ago (1 children)

I like that you added the absolute namespace identifier or whatever its called

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

I don't always namespace but when I do I fully qualify.

load more comments
view more: next ›