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