this post was submitted on 13 Oct 2023
784 points (93.4% liked)

Programmer Humor

32042 readers
1375 users here now

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

Rules:

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] traches@sh.itjust.works 5 points 11 months ago* (last edited 11 months ago) (1 children)

Idunno, Ruby was my first language and the other day I was trying to write a one-file script to wrangle some CSV data and even that got irritating. What does this function need? What does it return? Who the fuck knows! Is it even a function? Run it and find out, loser

And I’ve got reasonably popular projects in ruby, I’m not a beginner.

[–] DWin@sh.itjust.works 0 points 11 months ago

Yeah I completely agree with you, but sometimes there are other things that jankier languages allow you to do. Say in python, you can do direct property assignment. This is gonna be annoying for someone later to figure out why their object has suddely changed, and without getters and setters, you'll have a harder time picking apart what's going on. The benefit though is that it's very quick to just tack on a property onto some global object and then have that read elsewhere down the road.

It sucks, and you will curse yourself later, like you don't even know what type it is, or maybe it's just null, however it did allow you to ship a project. Maybe that bodge solution is indicative of needing a complete overhaul on how you structure your project, but until you get to that point where you've scoped out what the final idea looks like, it might not be time for static typing and good code design.

I also think that static typing and such makes you move a lot slower when making changes. I love rust to bits, but maintaining an old project is like wading through treacle. I only jump towards using it now once I've got a really great understanding of all the needs of the system, and have the time to really think about the problem in its entirety. Maybe you suddenly need a mutable self in somewhere that you didn't before, perhaps that means going and refactoring a whole load of traits that were designed without mutability (for good reason).