Book 14 · Cheat sheet
Programming Languages
The languages developers write in, what each one is known for, and where you are most likely to meet it.
Software Dictionary · softwaredictionary.org/categories/languages/cheat-sheet
- 01Assembly Language
- Assembly language is a low-level language whose instructions map almost one-to-one onto a processor's machine code, written as short mnemonics like mov and add.
- Each assembly instruction usually maps to one machine instruction.
- Every CPU architecture, such as x86-64, ARM64 or RISC-V, has its own assembly language.
- An assembler converts assembly text into binary machine code.
- 02BashBourne Again Shell
- Bash is a Unix shell and scripting language, the default on most Linux systems, used both to type commands interactively and to automate tasks with scripts.
- Bash is a Unix shell and scripting language released in 1989.
- It is the default command line on most Linux systems.
- Pipes, variables, loops and functions glue programs together.
- 03C
- C is a compiled, low-level programming language that gives direct control over memory and is used to build operating systems, drivers, and embedded software.
- C compiles directly to machine code, which makes it fast and predictable.
- Memory is managed manually with functions like malloc and free.
- It has no classes, exceptions, or garbage collector.
- 04C#
- C# is a statically typed, object-oriented language that runs on the .NET runtime with garbage collection and is used for web backends, desktop apps, and games.
- C# is statically typed and object-oriented, with many functional features.
- Code compiles to Intermediate Language (IL) that the .NET runtime turns into machine code.
- Memory is managed by a garbage collector.
- 05C++
- C++ is a compiled, statically typed language that extends C with classes and templates while keeping low-level control over memory and performance.
- C++ compiles to native machine code and offers fine-grained control over performance.
- It supports procedural, object-oriented, and generic programming styles.
- Memory is managed through scope-based RAII and smart pointers rather than a garbage collector.
- 06Clojure
- Clojure is a modern, dynamic dialect of Lisp that runs on the JVM, emphasizing immutable data, functional programming and interactive, REPL-driven development.
- Clojure is a Lisp dialect that runs on the JVM and can use Java libraries.
- Its core data structures are immutable and persistent.
- Code is written as data, so macros can extend the language.
- 07COBOLCommon Business-Oriented Language
- COBOL (Common Business-Oriented Language) is a language from 1959 for business data processing that still runs critical banking and government systems.
- COBOL is a business programming language from 1959.
- Its English-like syntax was meant to be readable by non-programmers.
- Programs have identification, environment, data and procedure divisions.
- 08Dart
- Dart is a statically typed, garbage-collected language from Google that compiles to native code and JavaScript, best known as the language of Flutter apps.
- Dart is an object-oriented, statically typed language with sound null safety.
- It compiles ahead of time to native code, and to JavaScript or WebAssembly for the web.
- JIT compilation during development enables fast hot reload.
- 09Elixir
- Elixir is a dynamic, functional language that runs on the Erlang virtual machine and is known for building fault-tolerant, highly concurrent systems.
- Elixir runs on the BEAM, the Erlang virtual machine, and interoperates with Erlang code.
- Lightweight processes and message passing make massive concurrency practical.
- Supervisors restart failed processes, which helps systems recover automatically.
- 10Erlang
- Erlang is a functional language created at Ericsson for telecom switches, designed for massive concurrency, fault tolerance and systems that must keep running.
- Erlang was built at Ericsson for telecom systems that must run continuously.
- Lightweight processes communicate by message passing and share no memory.
- OTP supervisors restart failed processes, following the "let it crash" philosophy.
- 11F#
- F# is a functional-first, statically typed language for .NET that pairs concise, type-inferred code with full access to the .NET ecosystem and C# libraries.
- F# is a functional-first, statically typed language that runs on .NET.
- Strong type inference means most code needs no type annotations.
- Discriminated unions and pattern matching model data clearly and safely.
- 12FortranFormula Translation
- Fortran is the first widely used high-level language, created at IBM in 1957 for science and engineering and still used in high-performance computing.
- Fortran was created at IBM in 1957 for scientific computing.
- It was the first widely used high-level language.
- Modern standards add modules, array operations, OOP and parallelism.
- 13Go
- Go is a compiled, statically typed language built for simplicity and fast builds, with garbage collection and built-in concurrency through goroutines.
- Go compiles to a single native executable with no separate runtime to install.
- It is statically typed and garbage-collected, with a deliberately small feature set.
- Goroutines and channels make concurrent programs simpler to write.
- 14Haskell
- Haskell is a purely functional, statically typed language with lazy evaluation, known for its expressive type system and mathematically precise code.
- Haskell is purely functional: side effects are tracked in the type system through types like IO.
- It uses lazy evaluation, computing values only when they are needed.
- Its static type system infers most types and uses type classes for shared behavior.
- 15Java
- Java is a statically typed, object-oriented programming language that compiles to bytecode for the Java Virtual Machine, so programs run on many platforms.
- Java is not related to JavaScript; the similar name is a historical marketing decision.
- Code compiles to bytecode that runs on the Java Virtual Machine (JVM).
- It is statically typed and strongly object-oriented.
- 16Julia
- Julia is a high-level, dynamically typed language for scientific and numerical computing, designed to be as easy to write as Python and as fast as C.
- Julia is a fast, dynamic language for scientific and numerical computing.
- It was announced in 2012 and reached version 1.0 in 2018.
- JIT compilation through LLVM gives speed close to C.
- 17JVMJava Virtual Machine
- The JVM runs Java bytecode, so the same compiled program works on any operating system; Kotlin, Scala and Clojure compile to that bytecode too.
- The JVM runs Java bytecode, so a compiled program works on any operating system.
- It manages memory with a garbage collector and speeds up hot code with a JIT compiler.
- Kotlin, Scala, Clojure and Groovy also compile to JVM bytecode.
- 18Kotlin
- Kotlin is a concise, statically typed language that runs on the JVM, works seamlessly with Java, and is widely used for Android and server-side development.
- Kotlin compiles to JVM bytecode and interoperates fully with Java.
- Types are non-nullable by default, which helps prevent null pointer errors.
- It is statically typed with strong type inference and concise syntax.
- 19Lua
- Lua is a small, fast scripting language designed to be embedded in other applications, making it popular for game scripting, plugins and configuration.
- Lua is a tiny scripting language designed to be embedded inside other applications.
- Tables are its single, flexible data structure for arrays, maps and objects.
- Arrays in Lua start at index 1 by convention.
- 20MATLABMatrix Laboratory
- MATLAB is a matrix-based language and environment from MathWorks for numerical computing, used by engineers and scientists for data analysis and simulation.
- MATLAB is a language and environment for numerical, matrix-based computing.
- It began in the late 1970s; MathWorks has sold it since 1984.
- Toolboxes and Simulink serve engineering fields such as control and signal processing.
- 21Objective-C
- Objective-C is an object-oriented superset of C with Smalltalk-style messaging, and it was the main language for macOS and iOS apps before Swift arrived.
- Objective-C is a strict superset of C with Smalltalk-style objects and messaging.
- Method calls are messages written in square brackets and dispatched at runtime.
- It was the main language for macOS and iOS development before Swift.
- 22Perl
- Perl is a mature, dynamic scripting language famous for text processing and built-in regular expressions, long used for system administration and web scripts.
- Perl is a dynamic scripting language built for text processing.
- Regular expressions are part of the core syntax.
- Sigils like $, @ and % mark scalars, arrays and hashes.
- 23PHPPHP: Hypertext Preprocessor
- PHP is a dynamically typed scripting language designed for web development that runs on the server to generate HTML pages and respond to browser requests.
- PHP runs on the server and sends only its output, such as HTML or JSON, to the browser.
- It is dynamically typed, with optional type declarations and a strict types mode.
- Memory is managed automatically and released at the end of each request.
- 24PowerShell
- PowerShell is Microsoft's command-line shell and scripting language for automating administration, passing objects rather than plain text between commands.
- PowerShell is Microsoft's shell and scripting language, first released in 2006.
- PowerShell 7 is open source and runs on Windows, macOS and Linux.
- Cmdlets use Verb-Noun names such as Get-Process.
- 25Programming Language
- A programming language is a formal language with exact rules for writing instructions a computer can carry out, such as Python, JavaScript, Java or C.
- A programming language has exact rules (syntax) and meanings (semantics) for writing instructions.
- Programs are compiled, interpreted, or compiled to bytecode for a virtual machine.
- Languages range from low level, close to the hardware, to high level.
- 26Python
- Python is a general-purpose, dynamically typed programming language known for readable syntax and wide use in data science, automation, and web backends.
- Python uses indentation to define code blocks, which keeps code visually consistent.
- It is dynamically but strongly typed, with optional type hints.
- Memory is managed automatically through reference counting and garbage collection.
- 27R
- R is a programming language and environment for statistics and data analysis, widely used in research for data visualization, statistical models and reports.
- R is designed specifically for statistics, data analysis and graphics.
- Operations are vectorized, so they apply to whole vectors without explicit loops.
- Data frames are its core structure for tabular data.
- 28Ruby
- Ruby is a dynamic, object-oriented programming language designed for developer happiness, best known for readable syntax and the Ruby on Rails web framework.
- Ruby is a dynamic, object-oriented language focused on readability and developer happiness.
- Everything in Ruby is an object, including numbers and nil.
- Blocks and metaprogramming make concise, expressive code possible.
- 29Rust
- Rust is a compiled, statically typed systems language that provides memory safety without a garbage collector by checking ownership rules at compile time.
- Rust compiles to native machine code with performance comparable to C and C++.
- Ownership and borrowing rules give memory safety without a garbage collector.
- The compiler prevents data races in safe code, making concurrency safer.
- 30Scala
- Scala is a statically typed JVM language that combines object-oriented and functional programming and is widely used for data engineering and backend systems.
- Scala runs on the JVM and can use Java libraries directly.
- It combines object-oriented and functional programming in one language.
- Case classes, traits, pattern matching and immutable collections are central features.
- 31Swift
- Swift is a compiled, statically typed language designed for safety and speed, used mainly to build apps for iPhone, iPad, Mac, and other Apple platforms.
- Swift is the main language for building apps on Apple platforms.
- It is statically typed, with optionals that make missing values explicit.
- Memory is managed with Automatic Reference Counting (ARC), not a tracing garbage collector.
- 32Visual Basic
- Visual Basic is Microsoft's family of beginner-friendly languages, including classic Visual Basic, VB.NET and VBA, which automates Office apps with macros.
- Visual Basic is Microsoft's family of beginner-friendly languages.
- Visual Basic 1.0 in 1991 made visual Windows app building popular.
- VB.NET, from 2002, is supported but no longer gets new language features.
- 33Zig
- Zig is a low-level systems programming language that aims to be a simpler, safer successor to C, with manual memory management and no hidden control flow.
- Zig is a systems language positioned as a modern, simpler alternative to C.
- Memory is managed manually through explicit allocators passed to functions.
- comptime runs Zig code at compile time instead of relying on macros.