this post was submitted on 02 Sep 2024
889 points (98.9% liked)

Programmer Humor

32051 readers
1655 users here now

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

Rules:

founded 5 years ago
MODERATORS
 

Incase it doesn't show up:

you are viewing a single comment's thread
view the rest of the comments
[–] n3cr0@lemmy.world 35 points 2 weeks ago (3 children)

Jokes aside, I struggle more with abominations like JavaScript and even Python.

[–] mogoh@lemmy.ml 24 points 2 weeks ago (1 children)

Do you have a minute for our lord and savoir TypeScript?

[–] n3cr0@lemmy.world 12 points 2 weeks ago (1 children)

As long as it can distinguish between int and uint - yesss!

[–] Zangoose@lemmy.world 19 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

TypeScript is still built on JavaScript, all numbers are IEEE-754 doubles 🙃

Edit: Actually I lied, there are BigInts which are arbitrarily precise integers but I don't think there's a way to make them unsigned. There also might be a byte-array object that stores uint8 values but I'm not completely sure if I'm remembering that correctly.

[–] void_star@lemmy.world 12 points 2 weeks ago (2 children)

Python has its quirks, but it’s much much cleaner than js or c++, not fair to drag it down with them imo

[–] tunetardis@lemmy.ca 10 points 2 weeks ago (1 children)

I think the thing with C++ is they have tried to maintain backward compatibility from Day 1. You can take a C++ program from the 80s (or heck, even a straight up C program), and there's a good chance it will compile as-is, which is rather astonishing considering modern C++ feels like a different language.

But I think this is what leads to a lot of the complexity as it stands? By contrast, I started Python in the Python 2 era, and when they switched to 3, I was like "Wow, did they just break hello world?" It's a different philosophy and has its trade-offs. By reinventing itself, it can get rid of the legacy cruft that never worked well or required hacky workarounds, but old code will not simply run under the new interpreter. You have to hope your migration tools are up to the task.

[–] 0x0@programming.dev 4 points 2 weeks ago (1 children)
[–] tunetardis@lemmy.ca 8 points 2 weeks ago

There were breaking changes between C and C++ (and some divergent evolution since the initial split) as well as breaking changes between different releases of C++ itself. I am not saying these never happened, but the powers that be controlling the standard have worked hard to minimize these for better or worse.

If I took one of my earliest ANSI C programs from the 80s and ran it through a C++23 compiler, I would probably need to remove a bunch of register statements and maybe check if an assumption of 16-bit int is going to land me in some trouble, but otherwise, I think it would build as long as it's not linking in any 3rd party libraries.

[–] jaybone@lemmy.world 2 points 2 weeks ago

The terse indexing and index manipulation gets a bit Perl-ish and write-only to me. But other than that I agree.

[–] unionagainstdhmo@aussie.zone 5 points 2 weeks ago (2 children)

Yeah JavaScript is a bit weird, semicolons being optional and compulsory at the same time: I remember trying to build an electron example ~5yrs ago and it didn't work unless I put in the semicolons which the developers omitted.

Python is just glorified shell scripting. Libraries like numpy are cool but I don't like the indentation crap, I'm getting used to it because University likes it.

[–] UndercoverUlrikHD@programming.dev 2 points 2 weeks ago (1 children)

but I don't like the indentation crap

Do you not use indentation in other languages?

[–] unionagainstdhmo@aussie.zone 1 points 2 weeks ago

Yes but it's difficult in a long program to tell which scope you are in or where one ends. I don't know what is so unfriendly about { and }, my editor can highlight pairs of them, it's just nicer to work with.

[–] flying_sheep@lemmy.ml 1 points 2 weeks ago (1 children)

Python is just glorified shell scripting

Absolutely not, python is an actual programming language with sane error handling and arbitrarily nestable data structures.

I don't like the indentation crap

Don't be so superficial. When learning something, go with the flow and try to work with the design choices, not against them.

Python simply writes a bit differently: you do e.g. more function definitions and list comprehensions.

[–] unionagainstdhmo@aussie.zone 1 points 2 weeks ago

Yeah I meant for that to be a bit inflammatory. I actually don't mind python apart from the execution speed, but the indentation I find makes it more difficult to read stuff that is extremely nested. I use it mostly for creating plots and basic stuff for my science degree but for any serious project I wouldn't consider it