World Congress 2026 Europe Jul 10, 2026 Session details

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

Adele Carpenter

Java's strict backwards compatibility created massive technical debt, handing C# a clear second-mover advantage. Discover the architectural trade-offs defining both developer ecosystems today.

Pause
Mute Enter Fullscreen
#1 about 4 min

Exploring frustrating elements in Java language design

An initial comparison between Java and C# highlights frustrations like the absence of reified generics.

#2 about 3 min

Origins and early adoption of Java in the 1990s

Pivoting from consumer electronics to the emerging web transforms Java into an internet sensation.

#3 about 4 min

Evaluating the five original design goals of Java

Core principles like simplicity, portability, and native multithreading shaped the language for mass adoption.

#4 about 3 min

Understanding type erasure versus reified generics in Java

Erasing type information during compilation forces workarounds for robust data deserialization at runtime.

#5 about 5 min

Historical constraints justifying type erasure in Java

Strict backwards compatibility and the complexities of multiple virtual machine vendors required keeping the runtime unchanged.

#6 about 2 min

Implementing reified generics efficiently in modern C#

Having a single corporate owner enabled virtual machine updates to natively support runtime type introspection.

#7 about 4 min

Navigating the controversy around checked exceptions

Forcing explicit error handling causes major friction when using closures and functional streaming patterns.

#8 about 2 min

Workarounds for checked exceptions in functional interfaces

Wrapping checked exceptions inside unchecked runtime exceptions removes verbose boilerplate from lambda expressions.

#9 about 6 min

Addressing technical debt with Project Valhalla in Java

Revamped value types aim to eliminate heap allocations and remove indirect memory access for better performance.

#10 about 3 min

Appreciating the maturity and vast ecosystem of Java

Despite evolving design frustrations, backward compatibility ensures critical backend reliability across a vast global ecosystem.

Matching moments

13:57 min

History of C++ technical debt and language design

Stefan Baumgartner · LIVE

21:18 min

Audience Q&A on developer advocacy and Java trends

Josh Long · LIVE

2:09 min

Overview of the Java features presentation

Michael Inden · LIVE

4:55 min

Discussing modern Java language evolution and syntax innovations

Daniel Strmečki · LIVE

4:54 min

Learning Java features and design patterns interactively

Jakov Semenski · LIVE

2:27 min

Summarizing the path forward for Java evolution

Michael Inden · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

Look What Java Can Do Now: Live-Coding a GenAI MCP Server with the JAQ Stack

Suren Konathala

Senior Engineering Leader, Marketing & AdTech, AI GTM & Digital Experience Platforms, Java x AI

Suren Konathala
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala
Open session

World Congress 2026 North America

API = Some REST and HTTP, right? RIGHT?!

Rustam Mehmandarov

Passionate computer scientist

Rustam Mehmandarov
Open session

World Congress 2026 North America

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare
Open session

World Congress 2026 North America

Designing APIs That Survive AI Agents at Scale

Phani Pendurthi

Mastercard, Principal Software Engineer

Phani Pendurthi