521
submitted 2 years ago by [email protected] to c/[email protected]
all 50 comments
sorted by: hot top new old
[-] [email protected] 85 points 2 years ago

"Typed language? Yeah, I'm using a keyboard."

[-] [email protected] 55 points 2 years ago

I am currently teaching python and JavaScript devs Typescript. Everytime they hit a problem they switch to any

Sigh

[-] [email protected] 17 points 2 years ago

Must be the same people who just comment out failing unit tests.

[-] [email protected] 6 points 2 years ago

"Your crappy tests are failing again on my branch. I've commented them out until you fix them."

[-] [email protected] 2 points 2 years ago

Sadly that sort of thing got so common where I work that I'll run the tests three times before considering looking into the error message to see if it is something I broke.

From time to time we take some days just to fix tests with inconsistent results, but there's always more popping up.

load more comments (1 replies)
[-] [email protected] 1 points 2 years ago* (last edited 2 years ago)

...or skip em

[-] [email protected] 8 points 2 years ago

the beatings will continue until typing improves

[-] [email protected] 7 points 2 years ago

That's why I kinda don't like Python and JavaScript anymore. Every time I want types for a library it's gonna take me time to get it working. For every serious project I do, I use a strongly typed language.

[-] [email protected] 7 points 2 years ago

Eslint is your friend :)

[-] [email protected] 6 points 2 years ago

Just create a al Inter rule that rejects Any types and a pre-commit hook that refuses the commit if the linter fails. Sometimes the brute force approach is the best way to teach

[-] [email protected] 13 points 2 years ago

I am happy there is no obvious "any" type in Rust.

[-] [email protected] 2 points 2 years ago

There is, it's just not easy to use

[-] [email protected] 11 points 2 years ago

Yeah, at some point my new team switched off null safety, because some consultants told them to.

[-] [email protected] 5 points 2 years ago

Ride into the Danger Zone ...

[-] [email protected] 4 points 2 years ago

Indeed, and just as my old team fell for consultants, my new team also went ahead and let them add some overcomplex garbage into their codebases. And crap still keeps piling up. It's just like it's impossible for them to understand that from an average consultants perspective the only way to go forward is to keep adding complexity, wether they are aware of it or not.

[-] [email protected] 3 points 2 years ago

Oh, the consultants know, but they get paid, don't complain about "risks" and "code debt", and management only sees their delivery on time without increasing operation costs

[-] [email protected] 1 points 2 years ago

This. However, in our specific scenario dynamics were even slightly worse. In a first meeting said consultants apparently met some resistance but management decided to go through with it anyway. So in a later meeting, if I was the consultant, would I go and claim "Alright, I fucked up, got paid and got you gaslighted, but now we have to refactor to clean up our codebase with no immediate tangible benefit for your bosses" in front of everyone? Honestly, I don't think so.

[-] [email protected] 9 points 2 years ago

Does it compile???

... Compile???

[-] [email protected] 8 points 2 years ago

i like when my strongly typed language can type itself, why should i have to type extra words because the compiler is stupid?

[-] [email protected] 16 points 2 years ago* (last edited 2 years ago)

So that next time your coworker uses the wrong type, the compiler can scream at him: "NO I WONT COMPILE THIS YOU DUMBASS, LOOK JOHN SAID ON LINE 863 THAT IT SHOULD BE A DOUBLE, NOT A FLOAT FOR FUCK SAKE"

[-] [email protected] 4 points 2 years ago

Tell me you are a Java dev without telling me you are a a Java dev ๐Ÿ˜‚

[-] [email protected] 0 points 2 years ago

As a JS dev, I can only wish we had those types ๐Ÿฅฒ

[-] [email protected] 1 points 2 years ago

you can still have that without having to declare the type manually. check out Swift or OCaml for example

[-] [email protected] 4 points 2 years ago

And if you have linter rules preventing any as a boundary type you just use Record<String, any>.

[-] [email protected] 2 points 2 years ago

I mean that is the first step. ยฏ_(ใƒ„)_/ยฏ The next step is to start defining the types more strictly than any.

[-] [email protected] 6 points 2 years ago* (last edited 2 years ago)

Hmmm a more reasonable first step would be to just not even type anything until you're ready. But TS makes it hard to iteratively type parts of your codebase over time. One could type using JSDoc syntax for these cases, though.

[-] [email protected] 1 points 2 years ago
[-] [email protected] 2 points 2 years ago

Well, you can always just add the type definitions later on.

I did port some C code to D, by just pasting it in a D file, then fixing the differences (changing type names, rewriting precompiler macros with D metaprogramming and inline functions, etc.).

[-] [email protected] 1 points 2 years ago

typescript is not a strongly typed language

this post was submitted on 17 Jul 2023
521 points (97.6% liked)

Programmer Humor

24670 readers
374 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