this post was submitted on 23 Jun 2026
153 points (97.5% liked)

Programmer Humor

31948 readers
442 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 3 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] jjj@lemmy.blahaj.zone 5 points 9 hours ago (1 children)

strong typing

Grrrrrrr. (this term is ambiguous but still very popular for some reason https://en.wikipedia.org/wiki/Type_safety#Strong_and_weak_typing)

There are other well defined ways to describe a type system, such as:

  • Static vs dynamic
  • Implicit vs manifest

e.g.

  • Rust's is mostly static and sometimes optionally implicit
  • Haskell's is static and optionally implicit
  • Python's, Lua's, etc is dynamic and implicit
  • C's is static and manifest
[–] bss03@infosec.pub 2 points 6 hours ago (1 children)

If you read the literature, particularly "Types and Programming Language", you'll find that "dynamic typing" isn't even considered typing. If you can have a type error at runtime you've defeated the reason to add a type system: to reduce runtime errors. The hope is that "well-typed programs don’t go wrong" tho there are some limits to what any type system can do (e.g. Rice's Theorem).

That said. Static v. Dynamic is much more precise than Strong v. Weak and should be preferred.

Implicit v. Manifest is less useful just because it's a broad spectrum, basically inculcating how much type inference is done and "how much" generally depends a lot the input program(s). Haskell does whole-program inference, tho GHC (the only Haskell compiler) has a number of syntactic forms that can't be inferred. Scala only does local inference. C doesn't infer types, though is gets close with how it treats functions with no-argument in the prototype and varargs stuff. C++ uses auto for some type inference, which is still somewhat manifest, but also mostly implicit.

I think weak typing is a good name for when there are invisible coercions, but that doesn't actually have much to do with proper types.

Anyway, great comment, If more people would use static/dynamic and explicit/implicit instead of strong/weak, there'd be less miscommunication.

[–] jjj@lemmy.blahaj.zone 1 points 5 hours ago

Practically, dynamic typing is quite different from no typing, such as with the B programming language, although I agree that it often defeats certain benefits of type systems.