langwhy

Glossary

The words that come up on the cards, each explained for someone who has never programmed. Wherever one appears on this site, it links here.

actor model · actors
Small independent workers that share nothing and talk only by sending each other messages. When one fails, the others keep running. source
API · APIs
The agreed way one program asks another for something, such as a weather service answering with today's forecast. source
async · async/await, asynchronous
Starting a slow task, such as a network request, and doing other work until it finishes, without a separate thread for each task. source
backend · back end, back-end, server-side
The part of an app that runs on a server, out of sight: it stores data, checks logins and answers the app's requests. source
bytecode
Compact instructions a compiler writes for a virtual machine instead of for a real processor. source
command line · command-line, terminal, shell
A window where you type commands to run programs instead of clicking. Command-line tools are programs used this way. source
compiler · compilers, compile, compiles
A program that translates code people write into instructions the processor runs, before the program starts. The result needs no translator alongside it. source
concurrency · concurrent
Handling many tasks in overlapping time, such as thousands of website visitors at once. source
device driver · driver, drivers, device drivers
Code that lets the operating system talk to one piece of hardware, such as a network card or a printer. source
dynamic typing · dynamically typed, dynamic types
The kind of each value is checked only while the program runs. Code is quicker to write, and some mistakes show up only when that line runs. source
framework · frameworks
A large library that gives a program its shape. You fill in the parts and the framework calls them: Django for websites, Flutter for apps. source
garbage collector · garbage collectors, garbage collection, garbage collected
Part of a language that finds memory the program no longer uses and frees it on its own. It removes a whole family of bugs, but it runs when it decides to, not when you do. source
global interpreter lock · GIL
A lock in Python's main interpreter that lets only one thread run Python code at a time, so threads alone cannot use several cores. source
GPU · GPUs, graphics card, graphics cards
A processor with thousands of small cores, built for drawing graphics and now used for AI and other heavy math. source
gradual typing · gradually typed, gradual types, type hints
Types are optional: you add them where they help and leave them out elsewhere. source
green threads · green thread, goroutine, goroutines
Threads managed by the language instead of the operating system. They are cheap, so one program can run hundreds of thousands of them. source
infrastructure as code
Describing servers, networks and databases in files or code, so a tool can set them up the same way every time. source
interpreter · interpreters, interpreted
A program that reads code and carries it out step by step while it runs. Nothing has to be built first, but the extra layer makes the code slower. source
JIT compiler · JIT, just-in-time, just-in-time compiler
A compiler that works while the program runs and turns the code used most often into machine code, which makes virtual machines and interpreters faster. source
library · libraries, package, packages
Ready-made code someone else wrote that you add to your program, so you do not write everything yourself. source
machine code · native code
The instructions a processor understands directly. A program compiled to machine code runs without any helper program. source
manual memory management · manual memory
The programmer asks for memory and gives it back in the code. Nothing runs in the background, but forgetting a step, or doing it twice, breaks the program. source
memory safety · memory-safe, memory safe, memory unsafety
A guarantee that a program cannot read or write memory it should not touch. Without it, a small mistake can crash the program or let an attacker in. source
microcontroller · microcontrollers
A tiny computer on a single chip, with kilobytes of memory, inside things like washing machines, thermostats and car keys. source
open source · open-source
Software whose code anyone may read, change and share. source
operating system · operating systems, kernel, kernels
The base program that runs a computer and shares its memory, processor and devices among other programs. Linux, Windows and macOS are operating systems; the kernel is their core. source
ownership · borrow checker, ownership rules, ownership model
Rust's rule that every piece of memory has exactly one owner. The compiler checks the rules and frees memory itself, so there is no garbage collector and no freeing by hand. source
package manager · package managers
A tool that downloads libraries and keeps their versions in order: npm for JavaScript, pip for Python, Cargo for Rust. source
reference counting · reference counted, reference-counted, automatic reference counting
Each piece of memory counts how many parts of the program still use it and is freed when the count reaches zero. source
runtime · runtimes
The support code a language brings along while a program runs, such as memory clean-up and thread handling. Some languages carry a large runtime, C carries almost none. source
shader · shaders, shading language
A small program that runs on the GPU, written in a language the GPU accepts. source
standard library · standard libraries
The ready-made code that comes with a language: reading files, handling text, talking to the network. source
static typing · statically typed, static types, static type
Every value has a kind (number, text, list) that is checked before the program runs, so some mistakes never reach the user. source
thread · threads, multithreading, multithreaded
One line of work inside a program. A program with several threads can use several processor cores at the same time. source
transpile · transpiles, transpiled, transpiler
To compile from one programming language into another, as TypeScript is turned into JavaScript. source
undefined behavior · undefined behaviour
A mistake whose result the language does not define, mostly in C and C++. The program may seem to work, crash, or do something else entirely. source
virtual machine · virtual machines, VM, VMs
A program that acts as a pretend computer. Code is compiled once for it and then runs on every real computer that has the virtual machine installed, as Java's JVM does. source
WebAssembly · Wasm
A compact instruction format that browsers run next to JavaScript. C, C++, Rust and other languages compile to it to get into a web page. source