Programming Languages
A cross-reference of the general-purpose programming languages documented across this site, gathered here in one place (and compared side by side in the Programming Languages Comparative) for readers who arrive by language rather than by topic — most references below also remain listed under their own topic area (Web Development, Backend Development, Apps → Android) for readers who arrive that way instead; C, C++, Objective-C, C#, Swift, PHP, Groovy, Scala, Go, Ruby, Fortran, COBOL, Visual Basic, R, MATLAB and the JVM build tools have no such secondary home and live only here (the PHP and Laravel section under Web Development covers web applications and links back to the PHP Reference).
Sections
-
Programming Languages Comparative — a sourced, dated comparison of 35 languages (the ones documented here plus 14 more) on popularity and its history, ecosystem, performance, memory and energy, learning curve, security and safety, versatility and the job market, with charts, a Bibliography and recommendations by purpose.
-
JavaScript Development — modern ECMAScript, core browser APIs, and the surrounding developer-tooling ecosystem, plus a downloadable cheat sheet.
-
TypeScript Reference — the typed superset of JavaScript: the type system and structural typing, unions and narrowing, interfaces, generics and type-level programming, the utility types,
satisfiesand assertions, modules and declaration files,tsconfigand the compiler, decorators, and JavaScript interop and migration, plus a downloadable cheat sheet. -
Python Reference — the Python language itself: core types and control flow, functions and scope, OOP and decorators, modern features — type hints, dataclasses,
asyncio— the standard library, unit testing with pytest and mocking, and build automation (pip, Poetry) and publishing, plus a downloadable cheat sheet. -
Java Reference — the Java language and its standard library: language fundamentals, object-oriented programming, records and sealed classes, pattern matching, generics, the Collections Framework, streams,
java.time, I/O and NIO.2, concurrency and virtual threads, the module system, and unit testing with JUnit 5 and Mockito, plus a downloadable cheat sheet. -
Kotlin Reference — the Kotlin language on the JVM: language fundamentals, object-oriented and functional programming, the type system and null safety, collections, coroutines and flows, and Kotlin on Android, plus a downloadable cheat sheet.
-
C Reference — the C language and its standard library, targeting C23 (ISO/IEC 9899:2024): language fundamentals, pointers and the memory model, dynamic allocation and storage duration, the preprocessor and generic programming, the standard library, undefined behavior and the sanitizers, threads and atomics, and the toolchain, plus a downloadable cheat sheet.
-
C++ Reference — C++23: language fundamentals, object-oriented programming, generics and compile-time programming (templates, concepts,
constexpr), the standard library (containers, ranges,std::expected), concurrency and coroutines, and design/performance/tooling, plus a downloadable cheat sheet. Starts from C and diverges: see how the two relate. -
Objective-C Reference — modern Objective-C as implemented by Apple Clang: language fundamentals, objects, classes and messaging, Foundation values and collections, memory management with ARC, the runtime and dynamism, error handling, concurrency, Objective-C++/C and Swift interoperability, and code organisation and tooling, plus a downloadable cheat sheet.
-
C# Reference — the C# language and the .NET base class library, targeting C# 14 on .NET 10 (LTS): language fundamentals, types and object-oriented programming, records and pattern matching, generics and nullability, LINQ and expression trees, exceptions and the garbage collector,
async/awaitand threading, spans and native interop, and the project, tooling and testing story, build automation with MSBuild, thedotnetCLI and NuGet, and publishing libraries, plus a downloadable cheat sheet. -
Visual Basic Reference — the Visual Basic language and its .NET platform, targeting Visual Basic 17.13 on .NET 10 (LTS): getting started and the build pipeline, the
Optionstatements, data types and conversions, operators and control flow, procedures, classes, interfaces and events, generics, collections, LINQ and XML literals, errors,async/await, theMynamespace, files and I/O, Windows Forms and WPF, interop with C# and COM, the VB family (VB6, VBA, VBScript) and migrating legacy code, plus a downloadable cheat sheet. -
Swift Reference — the Swift language and its standard library, targeting Swift 6: language fundamentals, optionals and pattern matching, types and object-oriented modelling, protocols and generics, error handling, ARC and memory safety, structured concurrency with actors and
Sendable, result builders, macros and regular expressions, Foundation andCodable, C/Objective-C/C++ interoperability, and the Swift Package Manager, build tooling and Swift Testing, plus a downloadable cheat sheet. -
PHP Reference — the PHP language, targeting PHP 8.5 with upcoming 8.6 additions marked: syntax, types and the PHP 8 comparison rules, operators and control flow, strings, arrays and functions, object-oriented PHP (readonly, asymmetric visibility, property hooks, enums, traits, attributes), errors, generators and fibers, the standard library, and the Composer, PSR, PHPStan, PHPUnit/Pest, Xdebug and OPcache tooling, with the release and migration history, plus a downloadable cheat sheet.
-
Groovy Reference — the Apache Groovy language on the JVM, targeting Apache Groovy 6.0: syntax and the Groovy truth, optional typing and static compilation, closures, traits and records, the GDK (collections, strings, files and processes), metaprogramming and AST transformations, async/await and concurrency, the module guides (JSON, XML, YAML/TOML, CSV, SQL, GINQ, templates, HttpBuilder), builders and DSLs, integration and tooling, and testing with JUnit, Spock and contracts, plus a downloadable cheat sheet.
-
Scala Reference — the Scala 3 language on the JVM, targeting Scala 3.10 with the 3.9 LTS differences marked: syntax and fundamentals, pattern matching, case classes, enums and algebraic data types, functional programming, the type system (variance, union and intersection types, opaque types, match types), contextual abstractions (givens, extension methods, type classes), collections,
Option,EitherandFuture, metaprogramming (inline, macros, quotes and splices), Scala CLI and sbt, Java interoperability, migration from Scala 2, and testing with the Scala Toolkit (MUnit, OS-Lib, uPickle, sttp, Cask), plus a downloadable cheat sheet. -
Go Reference — the Go language and its standard library, targeting Go 1.27: the toolchain and the
gocommand, types, constants andiota, control flow, functions anddefer, slices, maps and strings, structs, methods and interfaces, generics and iterators, error handling, goroutines, channels,contextandsync, the memory model, packages, modules and workspaces, testing, benchmarks, fuzzing andtesting/synctest, gofmt,go vetand static analysis, the standard library (fmt,io,time,encoding/jsonv1 and v2,log/slog,net/http,database/sql, crypto), reflection,unsafe, the garbage collector, profiling and PGO, cgo and WebAssembly, idioms and migration from older code, plus a downloadable cheat sheet. -
Ruby Reference — the Ruby language and its core classes and standard library, targeting Ruby 4.0: syntax, literals, variables and methods, blocks, procs and lambdas, exceptions, classes, modules and mixins, method lookup, strings, arrays, hashes,
StructandData,Enumerable, pattern matching, metaprogramming and refinements, threads, fibers and Ractors, RubyGems, Bundler and Rake, the standard library, YJIT and the garbage collector, testing with Minitest and RSpec, RuboCop and RBS, idioms and design, plus a downloadable cheat sheet. -
Fortran Reference — modern Fortran, targeting Fortran 2023 (ISO/IEC 1539-1:2023): the toolchain (gfortran, ifx, LLVM Flang, fpm), types and kinds, control flow, procedures, modules and submodules, arrays and allocatables, characters, pointers, derived types and object-oriented programming, input/output, intrinsics and IEEE arithmetic, coarrays,
do concurrent, OpenMP, OpenACC and MPI, interoperability with C viaiso_c_bindingand with C++, Python (f2py) and MATLAB (MEX), CMake and Meson, stdlib, testing, modernization of legacy code and the Fortran 2028 preview, plus a downloadable cheat sheet. -
COBOL Reference — COBOL on the mainframe and beyond, targeting ISO/IEC 1989:2023 with GnuCOBOL 3.2 for every runnable example and IBM Enterprise COBOL 6.5 for z/OS: program structure and reference format, the data division,
PICTUREandUSAGE(zoned and packed decimal),MOVE, decimal arithmetic, conditions,PERFORM, tables, strings and intrinsic functions, sequential, indexed (VSAM) and relative files,SORTand reports, subprograms andCALL, interoperability with C, Java and Python, JSON and XML, JCL, Language Environment, Db2, CICS and IMS, VS Code and Zowe, debugging, testing, DevOps, modernization and legacy features, plus a downloadable cheat sheet. -
R Reference — R as a language and environment for statistical computing and graphics, targeting R 4.6: the console, IDEs, help and startup, syntax, assignment and operators, control flow, functions, environments, closures and lazy evaluation, the native pipe, atomic vectors, missing values, subsetting, attributes, factors, matrices, lists, data frames, strings, dates and encodings, the apply family and functionals, S3, S4, Reference Classes, R6 and S7, conditions, debugging and defensive programming, metaprogramming and formulas, data import and export, DBI and HTTP, distributions, statistical models, base, grid and ggplot2 graphics, the tidyverse and data.table, packages, renv, roxygen2, testthat, lintr and CRAN, profiling and copy semantics, parallel computing, Rcpp and C/Fortran interfaces, reticulate, Quarto, Shiny and plumber, idioms and migration from older code, plus a downloadable cheat sheet.
-
MATLAB Reference — MATLAB as a language for numerical computing and its basic usage, targeting R2026b and base MATLAB only (add-on toolboxes are only listed): the desktop and Command Window, syntax, matrices and indexing, implicit expansion, numeric types and floating point, strings, cell arrays, structures, tables and timetables, dictionaries, control flow, scripts and functions, argument validation, errors and debugging, classdef classes and events, 2-D and 3-D graphics, data import and export, linear algebra, sparse matrices, ODEs and optimization, vectorization and profiling, unit testing and buildtool, calling Python and C/C++, live scripts and App Designer, projects and the MATLAB Package Manager, GNU Octave compatibility, and migrating older code, plus a downloadable cheat sheet.
-
Rust Reference — the Rust language and its standard library, targeting Rust 1.99 and the 2024 edition: the toolchain (rustup, Cargo, editions), ownership, borrowing and lifetimes, structs, enums and pattern matching,
Option/Resultand error handling, collections, strings and iterators, generics, traits and trait objects, closures, smart pointers and interior mutability, threads,Send/Syncand atomics, async/await and Tokio, modules, Cargo workspaces, testing, rustdoc and Clippy, macros, unsafe Rust, FFI, PyO3 and WebAssembly, serde, performance and idioms, plus a downloadable cheat sheet. -
JVM Build automation tools and dependency management (Ant, Maven and Gradle) — the JVM build tools, targeting Apache Ant 1.10.18 (with Ivy 2.6.0 and the Maven Resolver Ant Tasks), Apache Maven 3.10.0 (with the Maven 4.0.0-rc-7 release candidate marked as such) and Gradle 9.8.1: shared fundamentals, repositories and publishing, a side-by-side comparison and migration paths, supply-chain security, CI and IDE integration, then each tool from installation to extension points — Ant build files, core tasks, custom tasks and Ivy; the Maven POM, lifecycle, plugins, dependency management, multi-module builds, releasing and Maven 4; Gradle tasks, the lazy model, plugins, variant-aware dependency management, version catalogs, toolchains, publishing and the build and configuration caches — plus a downloadable cheat sheet.