this post was submitted on 02 Sep 2024
882 points (99.2% liked)

Programmer Humor

32572 readers
276 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
[–] [email protected] 33 points 2 months ago (3 children)

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

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

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

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

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

[–] [email protected] 19 points 2 months ago* (last edited 2 months 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.

[–] [email protected] 12 points 2 months 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

[–] [email protected] 10 points 2 months 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.

[–] [email protected] 4 points 2 months ago (1 children)
[–] [email protected] 8 points 2 months 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.

[–] [email protected] 2 points 2 months ago

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

[–] [email protected] 5 points 2 months 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.

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

but I don't like the indentation crap

Do you not use indentation in other languages?

[–] [email protected] 1 points 2 months 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.

[–] [email protected] 1 points 2 months 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.

[–] [email protected] 1 points 2 months 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