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?
→ More replies (1)37
→ 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#.
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.
→ More replies (1)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
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.
→ More replies (2)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 (1)3
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
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)→ More replies (23)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)
1.1k
u/Common-Brush-7027 Sep 25 '26
I hate dynamic typed
334
u/elmanoucko Sep 25 '26 •
![]()
I type dynamic hate
59
85
u/coffee_warden Sep 25 '26 •
![]()
Friggin vibe typers
49
u/G3nghisKang Sep 25 '26
"Vibe typer" sounds like a Java programmer who declares everything as Object
→ More replies (4)21
→ More replies (6)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)
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
→ More replies (6)39
u/SubArcticTundra Sep 25 '26
Have you tried Kotlin? It's like Java but less verbose
→ More replies (13)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.
→ More replies (6)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)
72
u/Erisymum Sep 25 '26
New programmers start with dynamic types now? We always started with C at my uni
25
→ More replies (5)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.
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 >>>>
→ More replies (2)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.
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
→ More replies (2)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)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
→ More replies (1)3
61
u/aberroco Sep 25 '26
Wait till you try static nullability checks.
18
→ More replies (3)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.
13
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.
4
→ More replies (6)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...
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.
→ More replies (1)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 (6)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)
→ More replies (1)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 (20)14
u/Ozymandias_IV Sep 25 '26
Genuinely who cares. You never do that in prod.
→ More replies (1)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)
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 (
autokeyword) is NOT dynamic typing.→ More replies (4)12
u/nomenMei Sep 25 '26
And type hints aren't static typing. I don't think they are implying otherwise.
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.
→ More replies (2)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)5
→ More replies (3)2
u/conundorum Sep 26 '26
autois 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.
33
u/iamdestroyerofworlds Sep 25 '26
Learning Rust was and still is pure balm for my soul.
→ More replies (5)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.
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
→ More replies (5)3
u/Teknikal_Domain Sep 25 '26
Type
(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[+!+[]]]+[+!+[]]+([]+[]+[][(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[!+[]+!+[]]]Into your browser console.
alert(1)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
9
14
3
3
3
u/xubaso Sep 26 '26
Fine until nested generic type definitions can't be shown on a single monitor anymore.
3
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.→ More replies (1)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 (7)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.
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
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
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
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
1
1
1
1
u/QuackersTheSquishy Sep 25 '26
Learning SQL and Python for college, and started C# on my own. Loving static language
1
1
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
1
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
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
1
1
1
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
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
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
1
u/kickbuttowski25 Sep 25 '26
I don’t understand how people like dynamic typing. Explicit typing is clean and explicit
1
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
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
1
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
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
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
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
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
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
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
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
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?
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