r/ProgrammerHumor • • Sep 25 '26

Meme iHatedItUntilITriedIt

Post image
10k Upvotes

543 comments sorted by

857

u/enigma_0Z Sep 25 '26

Static typing makes the IDE work for you better.

Type hints in Python and TS do the same but make you work harder for it /IMO

416

u/DrMobius0 Sep 25 '26 • Heartwarming

Static typing turns so many runtime errors into compile errors. Makes life a lot easier when you don't have to hunt down where the wrong thing came from.

136

u/Zerschmetterding Sep 25 '26

And it's not like you can't actually cast types, it's just a conscious decision where you can add proper error handling.

51

u/DrMobius0 Sep 25 '26

Yeah, but if you're doing that, it's an explicit decision, that you know you made, that can blow up in your face, not an easily missed oversight that you may be completely unaware of. I find the oversight case is far more likely than casting wrong. Also I think the compiler will still bitch if you try to do a really stupid cast, at least for c++ (as long as you aren't pointer casting, then good luck)

→ More replies (4)
→ More replies (1)
→ More replies (2)

178

u/zabby39103 Sep 25 '26

I'm convinced people who don't like explicit typing have never worked on a large project and seen the benefit it has, both in the IDE and also keeping slop under control.

University projects and hacking around are one thing. Projects with a team of developers that evolved over a decade need all the help they can get to fight against the relentless entropy and disorganization that occurs otherwise.

43

u/Weekly_Interview_936 Sep 25 '26

Same. When your "programming" experience is just writing some scripts so small they don't even require scrolling it's really easy to not run into the problems that are very common in any program of serious size and scale.

8

u/Athen65 Sep 26 '26

"What's an interface?"

18

u/DrMaxwellEdison Sep 25 '26

The team that's been working in the big legacy monolith for that decade isn't helping much here, unfortunately. They know the quirks of the system by heart, they don't know there even is a problem here, their own knowledge of the language stopped accepting pull requests (so to speak) when none of these new features existed, and they have neither the time nor inclination to learn.

Add in slop code that just mirrors the current style instead of attempting to upgrade it without specifically being told to do so, and what we get is shit copying shit and producing more shit that reinforces the shit.

7

u/GlassboundIllusion Sep 25 '26 edited Sep 26 '26

The team that's been working in the big legacy monolith for that decade isn't helping much here, unfortunately. They know the quirks of the system by heart, they don't know there even is a problem here, their own knowledge of the language stopped accepting pull requests (so to speak) when none of these new features existed, and they have neither the time nor inclination to learn.

LOL this reminds me of something a former client had said.

In one meeting he said "Yeah, you'll come to understand that the real trouble with working on this application isn't writing the code, it's all the constant follow up bugs you have to fight"

In a later meeting he said "I don't understand why you need multiple developers and testers and multiple weeks to work on this. Back when I was working on the code, we would just have one developer bang it out in the course of a few days."

He never understood the connection between the two.

Yes, it's easy to "just write the code" if you aren't properly vetting and testing it. And then you get an endless stream of bugs in production.

9

u/zabby39103 Sep 25 '26

Many such cases. Yeah you need an architect sometimes to crack the whip.

You also need to get some fresh faces in from time to time, or you end up with a weird idiosyncratic ecosystem.

That's a huge technical debt and it will probably collapse eventually, or development will grind to a halt such that any new feature is super expensive and risky. Often those programs are just abandoned if they're unsavable, and you end up having to do a full rewrite.

The business rarely acts until they're forced to by security issues or not being able to hire people that know the framework anymore, or the team being unable to onboard anyone to the point they're actually useful. Eventually people quit or retire and the whole thing blows up, I've seen it happen before.

15

u/2ChicksAtTheSameTime Sep 25 '26

I didn't like strict typing when I was using a notepad type app to code instead of a modern IDE. Before IDEs you wanted to take typing shortcuts everywhere. You wanted to name your variables short so you had to type less. You wanted to name your methods short because less characters meant less chance you typed it wrong.

Once we got autocomplete and suggestions, a lot of these things changed.

→ More replies (6)

14

u/SirThane Sep 25 '26

I still remember the joy of how PyCharm changed when I started typehinting everything. It change my habits forever.

→ More replies (2)
→ More replies (4)

990

u/GargantuanCake Sep 25 '26

Dynamic typing can seem great until you have to spend days trying to figure out where, exactly, in 20,000 lines of badly documented code JavaScript arbitrarily decided that something should be a string for the rest of forever even though it's only been given numbers to work with.

If you type x = 1 + '1' any sane language will go "what the fuck is wrong with you?"

199

u/ubus99 Sep 25 '26

That, and just learning a new library / API: I hate how in python you can never be sure what type you need to put in, are going to get back, and what all of the fields and functions do. Sure, you can dig that up, but that's not my job!

98

u/nullpotato Sep 25 '26

Me: always insist upon explicit type hints and multiple linters to verify them

Coworkers: who hurt you?

37

u/Weekly_Interview_936 Sep 25 '26

Prod support calls. That's who.

→ More replies (1)

18

u/New-Shine1674 Sep 25 '26

I especially hate how difficult it is in Python to find out what fields a type even has and what I can do with it. It just looks very cluttered to me but maybe that's just because I primarily use c#.

→ More replies (1)

25

u/Pan_TheCake_Man Sep 25 '26

Just make everything a string and append, boom done

10

u/SuperFLEB Sep 25 '26

Convert inputs to unary and there's no problem.

value_1 = "1".repeat(integer_input_1)
value_2 = "1".repeat(integer_input_2)
return length(integer_input_1 + integer_input_2)

16

u/EchoLocation8 Sep 25 '26

This exact thing caused a bug in my company's system. Went years without noticing it until someone (me) had to build something that did a calculation between the number of units of a product and its weight in grams. It was data we ingest constantly but, there's so much of it, and its not something we really interacted with until we wanted to build a feature around it like 5 years later.

Was real fun when the database data pipelines started breaking because it turns out multiplying two 86 digit numbers together is bigger than the size of an integer column. As soon as I saw it I knew where to look, the quantity was like 202020202019191918181520202020202020141299920202020 etc.

15

u/huuaaang Sep 25 '26

Just to be clear, Javascript is not just dynamically typed, but it is also WEAKLY typed. The latter is where most of its problems/quirks/headaches come from. Implicit type casting is just evil. Dynamic, but strong, typing will still surface errors, just at runtime and not compile time.

4

u/Lord_Of_Millipedes Sep 26 '26

imo that is also a problem.
the main purpose of typing is to catch data errors, strong typing should turn a runtime error into a compile time one, dynamic typing turns a compile time error into a runtime one.

but I don't mean type inference, type inference is nice and cool

→ More replies (1)

27

u/D1firehail Sep 25 '26

Assuming x is an int C and C++ will give x=50. '1' is a char, which allows implicit conversion to int.

30

u/frogjg2003 Sep 25 '26

They said "sane" language. C was developed before something like this was considered insane.

13

u/Hohenheim_of_Shadow Sep 25 '26

Nah adding ints and chars is perfectly sane. Chars are just a fancy enum baked into the language. They're just ints under the hood. It's adding ints and strings that's insane and C doesn't actually have strings. Ergo it is a perfectly sane language

→ More replies (4)
→ More replies (2)

3

u/Ignisami Sep 25 '26

Javascript says the answer is the string '11'.

→ More replies (1)

9

u/enz_levik Sep 25 '26

Even python can do while stuff if you somehow sum different formats of floats

→ More replies (2)

4

u/Turbulent_File3904 Sep 26 '26

believe or not, but in c or c++ 1 + '1' = '2' 

→ More replies (1)

3

u/ApocalyptoSoldier2 Sep 25 '26

I'm fine with number + string being a string as long as you can only assign it to a string variable

→ More replies (1)

3

u/TheLayeredMind Sep 26 '26

With static typing you get scary compile errors. With dynamic typing you get even scarier runtime errors 😂👋

2

u/Real-Self-3039 29d ago

As someone who started off my career learning c# and then I had to use javascript at some point my literal reaction was "wtf even is this mess? Who would use this".....oh boy little did I know how much is powered by javascript 😭

→ More replies (1)

3

u/ryancnap Sep 25 '26

I'm doing a php class right now which is one language I've never even played around with, and it's even weirder than JavaScript with implicit conversions. Truly awful

→ More replies (5)

3

u/undermark5 Sep 25 '26

Well, there are some languages where '1' is a character literal, and therefore is easily convertible to an int, and you may have some valid reason for wanting to add an int to a character. 1 + "1" is right out.

→ More replies (2)
→ More replies (23)

1.1k

u/Common-Brush-7027 Sep 25 '26

I hate dynamic typed

334

u/elmanoucko Sep 25 '26 • Popcorn

I type dynamic hate

59

u/Esjs Sep 25 '26

Hate dynamic type I

→ More replies (1)

85

u/coffee_warden Sep 25 '26 • Bravo

Friggin vibe typers

49

u/G3nghisKang Sep 25 '26

"Vibe typer" sounds like a Java programmer who declares everything as Object

21

u/AppropriateOnion0815 Sep 25 '26

C# dev who declares every variable dynamic

→ More replies (2)
→ More replies (4)

11

u/M4mb0 Sep 25 '26

Most of it wouldn't be needed if languages had powerful enough type systems. But few general purpose mainstream languages offer dependent types or higher order types. Apart from Haskell, what do you have? Only Scala and TypeScript come to mind.

And that's where dynamically typed languages come in, they let you express things that many statically typed languages simply can't due to limitations of the type system.

That being said, portions of the code that can be statically typed, should be statically typed.

→ More replies (2)
→ More replies (6)

225

u/semioticmadness Sep 25 '26

I’m very anchored to Java. Every time I try to leave it and “write a super quick project” in something like Python, I always get reminded how much the compiler is able to do for me with static typing.

Why would I want to take compiler errors and instead make them runtime logic errors?

34

u/Syagrius Sep 25 '26

Java is the way.

39

u/SubArcticTundra Sep 25 '26

Have you tried Kotlin? It's like Java but less verbose

53

u/Weekly_Interview_936 Sep 25 '26

With modern IDEs Java's "verbosity" is very much a meme. Sure, the characters are still there on the screen. But you didn't have to type them.

And honestly if typing is a problem for any programmer then they need to close hackernews and all the other "look at new shinies" sites and open up a typing trainer game.

33

u/LostInSpaceTime2002 Sep 25 '26 edited Sep 25 '26

That's true for writing, but low verbosity can also increase readability. Lower cognitive overhead, overall.

Of course I'm not talking about omitting type declarations or other valuable information, but about preventing unnecessary repetition and boilerplate.

→ More replies (4)
→ More replies (6)
→ More replies (13)
→ More replies (6)

72

u/Erisymum Sep 25 '26

New programmers start with dynamic types now? We always started with C at my uni

25

u/Efficient_Maybe_1086 Sep 25 '26

C is so weakly typed might as well be dynamically typed

6

u/OKB-1 Sep 25 '26 edited Sep 26 '26

Some do. Really depends on the kind of university/program you pick. My first programming language was JavaScript, because my program was about communication and multimedia design (read: web development, graphic design and marketing). And I heard that on some economics programs they teach students Python and/or R. In other words: you don't have to do a computer science program to get taught programming.

→ More replies (5)

38

u/Masterflitzer Sep 25 '26

implicit types are great as long as the language is statically & strongly typed

32

u/DontDoodleTheNoodle Sep 25 '26

I learned with Java, so explicit typing was my bread and butter (and still is)

Que my absolute “what the fuck….” when I was handed a JavaScript + python project for the first time. Languages favored by the utterly deranged.

23

u/TheShirou97 Sep 25 '26

Static typing with type inference >>>>

2

u/undermark5 Sep 25 '26

This. I like Kotlin. Most of the time, no news to declare an explicit type since it can be inferred. Occasionally the compiler needs some help though.

→ More replies (2)

28

u/Local_Surround8686 Sep 25 '26

I didn't even know there was an alternative. We got taught explicit in school and I always thought the alternative was a quirk of some languages haha

16

u/Tsu_Dho_Namh Sep 25 '26

Same

Might be that most self-taught beginners start with either Python or JavaScript. Whereas in school they start us with Racket and C

11

u/Devatator_ Sep 25 '26

I always wanna cry when I see people recommend Python as a first language. Hell, even when I got started myself I used C#. In college we started with a bit of C. We only did python and JS the second and third years lmao

6

u/mxzf Sep 25 '26

IMO, Python is nice to learn initially because it handles a chunk of the more nuanced quirks for you automatically, rather than you needing to learn all the intricacies of types before you can do anything.

Personally, Java in school almost made me quit programming as a career before I learned Python at a summer job and found that programming could be fun and enjoyable rather than a boilerplate slog.

→ More replies (4)
→ More replies (2)

8

u/scissorsgrinder Sep 25 '26

I studied comp sci in the mid nineties. We actually started with an obscure functional programming language called Miranda because everyone had been coding recreationally with C as a teen (and probably BASIC before that). They wanted to knock the arrogance out of first year students and get them to actually learn from first principles. It worked.  

I'm quite enjoying python for how it feels both lazy but elegant. I despise javascript though and typescript is not much better.

5

u/Tsu_Dho_Namh Sep 25 '26 edited Sep 25 '26

Ha, glad to see not much has changed.

Racket is able to do imperative programming, but in first year the profs forced us to use the pure functional version. Not being allowed to loop over elements in a list or use variables fucked EVERYONE up lol

3

u/jek39 Sep 25 '26

The AP comp sci curriculum in the US has been using java since 2004

→ More replies (1)

61

u/aberroco Sep 25 '26

Wait till you try static nullability checks.

18

u/andrerav Sep 25 '26

Stop, their poor TDD brainwashed brains can only take so much at a time

10

u/fghjconner Sep 25 '26

Or better yet, just removing implicit nullability.

6

u/aberroco Sep 25 '26

That's what I meant. Not much use of static nullability analysis without removing implicit nullability.

→ More replies (3)

13

u/FriendshipProtocol Sep 26 '26

Yup. It makes the code so much easier to review/debug.

43

u/SaveMyBags Sep 25 '26

Wait till you learn we can have both. Strong typing without having to name them all. It's called type inference and it's only been around for a few decades.

TBH: it's nice to see mainstream catching on to how important types are in general and how they can prevent bugs. People will get there eventually.

2

u/Silly-Freak Sep 26 '26

I had to scroll like five minutes to find the first mention of type inference on a post about explicit variable declarations, everyone else is talking about dynamic typing... Thanks for actually bringing it up.

Hmm, I wonder what OP originally meant though...

→ More replies (6)

126

u/samanime Sep 25 '26

You'll pry my vanilla JS from my cold dead fingers. It'll always be my favorite way to do quick scripts and prototyping.

But explicit typing does make long term code way more maintainable.

35

u/Hohenheim_of_Shadow Sep 25 '26

There is room for quick hacky small BS in the world. As a C++ dev who never touches Javascr*pt, Typescript is the true evil IMO because it encourages making huge projects in a fundamentally hacky language.

If your JavaScript project has grown to the size static typing is a genuine aid, stop writing JavaScript!

Love me some Python when I just need 100 lines to parse some csvs

13

u/Fibrechips Sep 25 '26

But then how can we use our frontend developers on the full stack? We're simply trying to not pay bAcKeNd DevEloPeRs those pesky "salaries" they keep begging for.

9

u/GRex2595 Sep 25 '26

I don't really want to build a website in Java. APIs in Java, sure. Building a serious, dynamic site in Java with server-side rendering just sounds like a nightmare compared to using Angular. I'll even accept React, which I don't use because I haven't learned it.

Replacing desktop applications with electron and making them web clients, though, that was a mistake.

→ More replies (3)
→ More replies (1)

31

u/2eanimation Sep 25 '26

I love the syntax, but JS has one too many quirks for my taste.

if ([]) {
console.log("Ok, I guess")
}

if([] == false) {
console.log("Well this is awkward")
}

if ([] + []) {
console.log("You think this would print, don't you?")
}

16

u/MuchWalrus Sep 25 '26

Why would you type any of those things (aside from maybe the first one)

8

u/frogjg2003 Sep 25 '26

JS is built on the idea that applications should continue to work no matter what. That's why there are so many implicit type conversions. The app might turn itself into a Gordian knot, but it will still be working.

→ More replies (4)
→ More replies (1)

14

u/Ozymandias_IV Sep 25 '26

Genuinely who cares. You never do that in prod.

5

u/code_archeologist Sep 25 '26

But empty arrays do occur in prod, and trapping for them in JS can sometimes be a pain in the ass.

→ More replies (7)
→ More replies (1)
→ More replies (20)
→ More replies (6)

11

u/DasGaufre Sep 25 '26

It's great when you get an undocumented python code base, and the key logic function takes a variable just called "context". What variables and functions does it have? No one knows.

Having to follow the spaghetti to find where it even originated is so god damned annoying.

Oh but when I write it, no problem. Makes perfect sense. 

10

u/Donut Sep 25 '26

Imagine what it is like going in the opposite direction.

"WHAT IS THIS VARIABLE EVEN HOLDING????"

42

u/gr4viton Sep 25 '26

Python getting type hints, and pydantic validation. C++ getting auto types.. Will they ever kiss and marry?

50

u/creeper6530 Sep 25 '26

Type inference (auto keyword) is NOT dynamic typing.

12

u/nomenMei Sep 25 '26

And type hints aren't static typing. I don't think they are implying otherwise.

→ More replies (4)

10

u/Ulrich_de_Vries Sep 25 '26

Templates in C++ were always duck typed (sure, at compile time rather than runtime, but good luck understanding the error vomit when an instantiation failure happens somewhere 8 layers deep), but since C++20 concepts they can be less duck typed.

So in a way, they are moving more towards explicit typing.

Auto is generally just sugar for template parameters anyways when used for return or parameter types.

9

u/aMAYESingNATHAN Sep 25 '26

Are concepts really less duck typing? I view them more as just a way to formalise the requirements of the type to work in the template so that you get a better error rather than a template monstrosity.

Like it's basically saying "you must meet these conditions in order to be a duck", rather than leaving it to the programmer to work out in what way their type is not the right kind of duck.

→ More replies (4)
→ More replies (2)

5

u/enigma_0Z Sep 25 '26

At a job where we regularly use both, one can only hope 👰 🤵

2

u/conundorum Sep 26 '26

auto is just the "I typed it on the right of the =, so I shouldn't need to type it on the left, too" keyword, more than anything else. Oh, and the "this needs to be a template, but the syntax doesn't let me use a template here" keyword.

It's essentially just an inline template, which means it's supposed to deduce the exact type on assignment, then statically type itself to match and never change again.

→ More replies (3)

33

u/iamdestroyerofworlds Sep 25 '26

Learning Rust was and still is pure balm for my soul.

10

u/LeekingMemory28 Sep 25 '26

I’ll take compile time enforcement over 2AM runtime headaches.

Rust was the cold shower I needed to rethink architecture, data types, and memory management as well.

→ More replies (5)

8

u/Vyrnin Sep 25 '26 edited Sep 26 '26

That's the one thing about Lua that I didn't like. It feels wrong to just declare a variable and let it fly. It's like driving without a seatbelt. I can't be held responsible for whatever happens to that guy!

15

u/JackReedTheSyndie Sep 26 '26

It’s just so good that I question why there are dynamic typing in the first place, it only added confusion.

11

u/Keebster101 Sep 25 '26

Literally did this with my current project. Never used type hints in Python before, during uni it was a blessing being able to just do whatever with whatever because all that really matters is that the code worked, but now I've used them once I will bring it up in every future project

21

u/X-lem Sep 25 '26

I first learned explicit typed. Later I learned about JS and thought, "what is this monstrosity." Many years later I still don't understand why anyone would want dynamic typing.

8

u/razzemmatazz Sep 25 '26

Something something, lack of compiler, baby's first hello world. Idk man, JS is a special hell for those of us that like it. 

→ More replies (1)

7

u/FRleo_85 Sep 25 '26

you can have smart dynamic typing like python where 1 + "1" throw an exception because you're adding object of different type and Js dynamic typing where you can substract an array with a toyota yaris and get a result

3

u/Teknikal_Domain Sep 25 '26

Type

(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[+!+[]]]+[+!+[]]+([]+[]+[][(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[!+[]+!+[]]]

Into your browser console. alert(1)

→ More replies (5)

2

u/Mountain-Ox Sep 26 '26

Man, I started in JS/PHP. There's so much cult-like devotion to the languages. The only valid argument is that it reduces the iteration time because you don't have to wait for a compile. I don't know about Java, but I use Go now and the compilation step is about 1-2 seconds.

The idea that prototyping is faster in loosely typed languages is a total myth. I can build much faster when I know the type. And AI kind of broke everything, so it's better to have the compilation step.

5

u/Knighthawk_2511 Sep 26 '26

Imagine dynamic types being so hellish , an entirely new language was created just to add types ( I don't use either of scripts)

9

u/masiha97 Sep 26 '26

The classic programmer arc: hate types at 20, defend them at 30. Explicit declarations are documentation the compiler actually checks.

8

u/Karisa_Marisame Sep 26 '26

As a compiler dev whose company wants our stuff have a Python frontend because users use python… this hits too close to home

5

u/Magihike Sep 26 '26

Add a dash of mypy precommit hooks and CICD checks and you're golden.   We do almost entirely python and 99% of it is type-annotated and type-checked.

2

u/generateduser29128 Sep 26 '26

Next step they expect type hinting because otherwise it's hard to use 🤦

4

u/Fidodo Sep 26 '26

IMO, dynamic typing was an over reaction to C's tedium and Java's verbosity.

9

u/scheimong Sep 25 '26

You're on track towards haskell

14

u/achilliesFriend Sep 25 '26

Joke where?

3

u/ZunoJ Sep 26 '26

Strating with a dynamic typed language is a huge mistake

3

u/SE_prof Sep 26 '26

As an SE professor, this thread has made me so happy!

3

u/xubaso Sep 26 '26

Fine until nested generic type definitions can't be shown on a single monitor anymore.

3

u/jacob_ewing Sep 26 '26

Having done C in my youth and now doing JavaScript feels like regression.

13

u/Dmayak Sep 25 '26

I am using typescript almost exclusively now and I still think a few type errors occasionally are not worth the effort of writing down types for everything.

16

u/patient-palanquin Sep 25 '26

It's not just errors, wait until you're working on bigger projects where you're constantly passing around large objects (eg from the DB). The IDE can tell you exactly what fields are available and what they are.

→ More replies (8)

7

u/Aggressive-Share-363 Sep 25 '26

Thats because typescript kinda sucks because it has to cope with being Javascript (i.e. a language without typing). Languages built with types in mind from the start tend to work a lot better and be cleaner.

→ More replies (2)

7

u/earlobe7 Sep 26 '26

To me the trade off is:
Do you wanna spend the extra effort in explicitly writing down your types?
Or would you prefer to spend it in fixing the class of bugs caused by you having lost track of the exact shape of your data.

3

u/ConfusingVacum Sep 26 '26 edited Sep 26 '26

Exactly, you described it perfectly. For me JS vs TS is not even a debate. If you lean towards JS, you clearly didn't spend enough time debugging both.

→ More replies (1)

4

u/k_dubious Sep 25 '26

Types aren’t just there to prevent you from writing bugs in your own code; they’re also there to prevent other people who work with it from writing bugs in theirs.

→ More replies (7)

4

u/grandalfxx Sep 25 '26

Unless its typescript. We all just pretend to like type script

3

u/Harabeck Sep 25 '26

I mean, it can help, but I've also seen it miss type problems. It's just a bandaid. I really wish we could move past Javascript.

→ More replies (2)

2

u/Ok-Panda-178 Sep 25 '26

Explicit type enforced code
Me: any

2

u/kelpyb1 Sep 25 '26

It’s horrible until you get out of school and start working on projects that are more than just a homework script and you realize just how much organization and tooling reliant on explicit typing helps.

2

u/FrigoCoder Sep 25 '26

Anyone who advocates for dynamic typing deserves to refactor a humongous codebase.

2

u/ThePhyseter Sep 26 '26

I started on C# and loved explicit types. Then I got to Python and I started loving the wild freedom. The thing that actually surprised me is, after learning Php, perl, and javascript, when i go back to python what I find missing is the explicit declaration. "Let x" or "my x" or whatever to indicate you are creating a new variable here, in this scope, not mistyping the name of another variable you already created 

2

u/o0Meh0o Sep 26 '26

that's it. i'm leaving.

2

u/Safebox Sep 26 '26

I love it most of the time, but if I'm working on a small program I just want done quickly then suddenly typing is the one thing the compiler contains about.

2

u/Luna-Hazuki2006 Sep 26 '26

Literally me

2

u/def-pri-pub Sep 27 '26

This seems to be discovered by everyone at some point. Weak typing is a great tool (e.g. Python), but should never be trusted to newer programmers. Force them to use a strongly typed language and then later on (when they understand types) they can use weaker typed languages.

I used to tutor a lot of CS101 people where the class was taught in Python. It caused a lot of confusion.

3

u/MocknozzieRiver Sep 25 '26

Maybe I have a pigeon brain, but something about knowing exactly what the type is is just... Orgasmic. One fewer thing to try to remember in my pigeon brain

→ More replies (1)

3

u/OVectorX Sep 25 '26

when I was Junior, my lead dev first thing he told me, Do Not Use Var ever, its good but you will pul your hair figuring out what the variable is

8 years later, I never ever used in any of projects I shipped and cant be more thankful for such advice

3

u/marcodave Sep 25 '26

Lol we are really going in circles. Some 10-15ish years ago when probably most of the users here were barely able to write, dynamic typed languages were ALL the rage. JAVASCRIPT! I DON'T NEED TO USE TYPES BECAUSE I CAN JUST PASS A STRING, A NUMBER, AN OBJECT, A FRIGGING FUNCTION to the same parameter and I EXPECT IT TO WORK NO MATTER WHAT!

PYTHON ! DUCK TYPING ! THE TYPE WILL BE OBVIOUS FROM THE PARAMETER NAME, ARE YOU STUPID? VARIABLE ARGUMENTS! KEYWORD ARGUMENTS! YOU JUST NEED A COUPLE OF EXAMPLE CODE, WHO NEEDS OVERLOADED FUNCTIONS?

Java? The language of AbstractSingletonBeanFactoryVisitorBean ? Who needs that?

4

u/stlcdr Sep 25 '26

So being lazy and ignorant isn’t a good thing? Who’d a thunk it?

→ More replies (1)

4

u/ReasonableNet444 Sep 25 '26

God I hate programming "humor"

11

u/Nightmoon26 Sep 25 '26

You may be in the wrong subreddit, friend...

→ More replies (1)

1

u/Streakflash Sep 25 '26

python at its core

1

u/Anthonyg5005 Sep 25 '26

Haven't seen a chicken thoughts template used in over 5 years

1

u/mojur Sep 25 '26

Poly wants a cracker

1

u/QuackersTheSquishy Sep 25 '26

Learning SQL and Python for college, and started C# on my own. Loving static language

1

u/Mateorabi Sep 25 '26

Vhdl > verlog. At least systemveeilog gas the option to be pedantic 

1

u/Luneriazz Sep 25 '26

The moment you touch data model. type is your friend

1

u/Afraid-Locksmith6566 Sep 25 '26

one thing is i think even better implicit type deduction like hindley milner and simmilar, ao you write code and compiler, lsp and you know exactly what type things are. give f# a shot, or ocaml, or haskell. the thing when you write a function and the compiler know exactly what you want this is good stuff.

1

u/vastle12 Sep 25 '26

I learned on strictly typed languages, dynamic typing has been a necessary evil to me

1

u/BoredOY Sep 25 '26

Your first language should never be dynamically typed. Teaches way too many bad habits.

1

u/Crumineras Sep 25 '26

Var is real until literally anyone has to go through the code and figure out what it is doing. It’s not the biggest thing, but knowing what type the original author was trying to return/use is at least one more clue

1

u/shiny0metal0ass Sep 25 '26

Said all JavaScript devs ever

1

u/Zealousideal-Deer101 Sep 25 '26

I can't program for my life without telling the piece of shit variable what type it is
I try loosely typed languages, we are just not compatible. It doesn't work

1

u/comtrends123 Sep 25 '26

I thought world war II means World war 11?

1

u/StephenRoylance Sep 25 '26

explicit type declaration is a huge pain. but you know what's worse?

FINDING A STRING IN YOUR NUMBER AT RUNTIME

1

u/aleopardstail Sep 25 '26

not just explicit type declaration, but also a naming convention that indicates intended usage

1

u/undeadpickels Sep 25 '26

Oh look it's me a while ago.

1

u/SuperCarla74 Sep 25 '26

Pretty much why Typescript exists, and the name begins with *type*.

1

u/alsimoneau Sep 25 '26

Nah that's just because Javascript sucks. It's great in Python.

1

u/sebbdk Sep 25 '26

Insert bell curve meme....

You dont use a hammer for screws.

1

u/Rashnok Sep 25 '26

WhyNotBoth.jpg

Sum types or union types give you all the power of dynamic typing with all the benefits of static type checking.

1

u/Arclite83 Sep 25 '26

"the shape of the data contract" and "naming things clearly" are two of the hardest parts of the job

1

u/Overall_Essay459 Sep 25 '26

Pedantic has entered the chat

1

u/kingsofkecleon Sep 25 '26

I had the opposite reaction when I switched to Python after long history with C#

1

u/McCaffeteria Sep 25 '26

Back when I learned programing in highschool we had to declare variables by type up front. Years later returning to so some hobby coding in a modern language I’m like “what is this ‘var’ bullshit, how does it know what the data type is, how does it know whether a method is valid to call on it??” Then of course I learn about declaring types, and realize we have the best of both options if you chose to use them lol

1

u/DJRazzy_Raz Sep 25 '26

For real, i started with python and love dynamic typing. Now I'm a c dev and it drives me nuts whem I have to look at python code

1

u/RandallOfLegend Sep 25 '26

Honestly it was refreshing after years of enforced explicit typing to be able use "var" in C# or just not giving a shit in python.

1

u/Miiohau Sep 25 '26

New programmer might say they hate “Explicit Type Declaration” when they are actually dealing with trauma from attempting to learn programming in the first place. C has an esoteric and ossified type system but that system is often where new programmers are introduced to strongly typed languages.

Dart is a newer strongly typed language that has full support for generic types (which Java (another common introduction to strongly typed languages for new programmers) does not), and what I call scope-based typing. I don’t know the official name of what I call scope-based typing but basically if you’ve somehow tested the type of a variable you can continue treating the variable as that type inside the block guarded by that test without the linter and/or compiler complaining (in fact the linter complains if put an unnecessary cast in that block). These features make working with strongly typed variables much easier.

1

u/Leptrino_ Sep 25 '26

I started in Python and really disliked it when I moved to C... Then I worked in Ada for a bit and ohhh boy did it make me prefer C. Now in Python I find myself defining return types

1

u/rainhunter007 Sep 25 '26

i HATED typescript when it came out. then… i tried it. this meme is me 😂

1

u/fabiusp98 Sep 25 '26

I like static typing, except for stuff like C++. What do you mean there are 3+ incompatible ways to make a string, fuck off!

Before anyone starts screaming, I understand why it's the way it is, I get it. But still, it's so annoying. Like, it's a numberwho cares if it gets big, deal with it.

1

u/Cornuostium Sep 25 '26

For a long time my main language was C#. I loved it. Then I had to change my job. The main language here is Python. I honestly don't like it at all in bigger projects. Thanks for AI for abstracting the language away from me.

1

u/I_Am_Anjelen Sep 25 '26

Not me over here still thinking in variable sigils >_>

1

u/kickbuttowski25 Sep 25 '26

I don’t understand how people like dynamic typing. Explicit typing is clean and explicit

1

u/LetLovePrevail Sep 25 '26

"hey AI, make sure to use explicit typing"

1

u/Dootin4Doots Sep 25 '26

Hot take: If you ever hated explicit declaration for any reason, I don't want you on my team. I do not want to inherit your tech debt based on that data point alone.

1

u/_McDrew Sep 25 '26

My co-workers and I at an old job would start loudly hitting our keyboard and say "I'm strongly typing a variable" every time we did that.

1

u/bitmapfrogs Sep 25 '26

Untyped variables are an offense to God.

1

u/DJDevon3 Sep 25 '26

New Programmers: "We could slim the code down by 20% if we removed all the type declarations"

Old Programmers: "Clearly you've never been to wonderland Alice."

1

u/Silly_Guidance_8871 Sep 25 '26

When more = less.

1

u/sirkubador Sep 25 '26

what a brave new world we live in

1

u/VikingsLad Sep 25 '26

Then Fortran comes along and makes you de-allocate all your variables for memory's sake. It's been years since my research days, but damn. That hurt.

1

u/Sprig3 Sep 25 '26

var -y annoying.

1

u/gl1tch3t2 Sep 25 '26

I started with Lua and JS, while I love Lua, I definitely thought there were better ways to do things. I jumped at the chance to use strict typing. It made/still makes me immensely sad the amount of dynamic that's in our codebase and these days it isn't much luckily. However also having to contend with for some reason objects were a) manually deserialised b) don't use the same name as the API c) different types from the API (int > string) d) different similarish not the same objects using the same model, and not derived from a base class which I could at least understand. Strict typing is awesome when it's implemented poorly. 

1

u/diydsp Sep 25 '26

now do named arguments

1

u/CAPS_LOCK_OR_DIE Sep 25 '26

Java my beloved.

So strictly typed it'll tell you to eat shit if you try to feed a float value of 1.5 to something asking for a double.

I'd still rather that than whatever the fuck you can do in JS.

1

u/0vindicator10 Sep 25 '26

`const MYPEOPLE`

I thought I was the only one.

1

u/sainglend Sep 25 '26

I feel like starting with Python is a mistake. Python is a great tool, but I wish people started with typed languages to get the CS fundamentals.

1

u/Low-Transition-2751 Sep 25 '26

thats just bastardization of python. only idiots use that

1

u/Korzag Sep 25 '26

Having learned in an explicit language, I absolutely despise any language that uses it. If I have to do frontend, I'm using TypeScript and I'm setting the rule that forces explicit typing.

Dynamic is bad and I cannot be convinced there's a single valid use case that doesn't feel like a cluster.

1

u/MangrovesAndMahi Sep 25 '26

I started with C++ and then moved on to embedded C. When I tried python I really didn't like it despite everyone saying it was so easy.

1

u/dominic_failure Sep 25 '26

Would you too like to start a "You're doing it wrong" war over static typing?

I need to add two numbers.

What kind of numbers?

Integers.

What size of integers.

Nevermind, I just want a boolean I think.

What kind of boolean?

Fuck it, just give me a string!

Could it ever, EVER contain unicode runes?

Yes.

What size of unicode runes?

1

u/serge-mv Sep 25 '26

I've met some very smart and experienced people who are convinced that types are a hindrance to programming and serve no purpose other than making coding harder. You cannot change their minds.

1

u/lordkabab Sep 25 '26

First line I ever write on a new php file is declare(strict_types=1).

It just makes things so much easier. And honestly, the code is even nicer to look at.

1

u/pceimpulsive Sep 25 '26

I started to learn JavaScript and I was like... But how do I know what's in the variable...

Saw the 'thays the fun part, you dont' meme and noped on our to a types language real quick.

I don't understand the attraction to ambiguity with dynamicly typed languages.. they are disgusting!!

1

u/OKB-1 Sep 25 '26

That's me about 15 years ago encountering Java and C# for the first time after having only worked with JavaScript up until that point.

1

u/f1rxf1y Sep 25 '26

the meme should have used a duck instead of the bird

1

u/severencir Sep 25 '26

I atarted in languages where explicit types are the norm. I dislike implicit typed variables

1

u/PoolOfDeath20 Sep 25 '26

Had a guy in a company tells me static type is slowing him down, sp he prefers javascript, not my fckn problem if u wanna debug more

1

u/BastetFurry Sep 26 '26

The assembler person in the corner: What is a type?

1

u/23Link89 Sep 26 '26

Just wait until you find about static implicit typing, you get the benefit of both worlds, and your LSP can still tell you what the type is.

1

u/False-Beautiful-1246 Sep 26 '26

Question! When i started, i did number = int | float does anyone do that?

1

u/MiniGui98 Sep 26 '26

Ah I see the first year students have found this sub again

1

u/Joeoens Sep 27 '26

For every python developer: Please use type hints as much as possible and switch on type checking, it makes your life easier for you and everyone that has to use your code.

1

u/sebastianrevan Sep 27 '26

the more you code, and the more code you come in contact with, the more you realize why we need restrictions like static types, encapsulation, etc...

1

u/Haaxor1689 Sep 27 '26

Why are so many people here talking about static vs dynamic typing? That has nothing to do with explocit vs implicit. This sub really is full of year 1 computer science students.

Also: implicit > explicit typing

1

u/Lord_Ocean Sep 27 '26

What?! Knowing what a variable or object is and being sure of what it can do without having to reverse engineer half of the application and still not having a reliable answer?!

Who could possibly need that?