~/talk

Java Sucks (So C# Didn't Have To)

Talkat NDC Copenhagen 2025 · 2025-09-08..09-12· [java, c-sharp]
slides:none on file

Looks at concrete tradeoffs: shows a Box generics demo and explains why Java uses type erasure (added in Java 1.5 for backwards compatibility), why libraries like Jackson need explicit type tokens, and how checked exceptions force clunky try/catch workarounds inside lambdas. Describes runtime surprises from virtual threads (Java 21) — thread pinning that caused deadlocks and the subsequent mitigation in later releases — and the decade‑long slog of Project Valhalla to add value types, summarised as checked design tradeoffs vs. modern ergonomics.

AI-written summary · about

  1. 0:00Introduction
  2. 7:52Java’s origins and design
  3. 12:26Xerox PARC influences
  4. 15:40Robustness and security
  5. 17:27Portability and architecture
  6. 18:31Performance and JIT
  7. 20:41Java’s developer frustrations
  8. 21:25Type erasure in generics
  9. 26:24Generics delay story
  10. 28:54Java’s community evolution
  11. 31:43C# generics and reification
  12. 33:30Checked exceptions impact
  13. 37:43Workarounds for exceptions
  14. 40:33Boilerplate and shortcomings
  15. 41:21Virtual threads challenges
  16. 44:51Project Valhalla delays
  17. 49:06Valhalla’s progress and debt
  18. 51:57Re-evaluating Java’s legacy
  19. 54:25Java’s enduring value
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.