Skip to content

Programming Languages

Programming languages make different trade-offs in type systems, execution, memory management, abstraction, interoperability, and control over resources. This section studies each language on its own terms before comparing it with others.

Current tracks

  • Java: object-oriented programming, design principles and patterns, generics, collections, streams, JVM execution, concurrency, testing, and the foundations used by the Spring Boot track.
  • C++: value-oriented and object-oriented programming, explicit lifetime reasoning, deterministic resource management, generic programming, the standard library, and concurrency.

Comparison method

A useful comparison separates at least four levels:

  1. Language semantics: behavior required, permitted, or forbidden by the standard.
  2. Standard library contract: portable facilities provided with the language.
  3. Implementation: compiler, runtime, ABI, optimizer, and platform decisions.
  4. Engineering practice: guidelines that improve safety or maintainability but are not language rules.

“Language X is faster” is not a meaningful general claim without a workload, implementation, optimization configuration, measurement method, and semantic constraints.