There are only two hard things in Computer Science: cache invalidation and naming things. ― Phil Karlton
Good programmers name things well. Finding the most appropriate and common terms for complex concepts and abstractions may be difficult, especially for non-native English speakers. This page proposes English words and antonyms that are commonly used in programming.
This is a work in progress, feel free to open issues and propose pull requests.
One related effort is Microsoft's list of PowerShell verbs, "Approved Verbs for PowerShell Commands", https://docs.microsoft.com/en-us/powershell/developer/cmdlet/approved-verbs-for-windows-powershell-commands
Concurrent computing. Acquire and release semantics. Mutex, semaphores.
Assembly language. Disassembler.
Coalescing. Fragmentation. Memory segmentation. Memory management.
Granular computing. Granularity.
Rollback. Database transaction. Version control.
Logical conjunction. Logical disjunction. Mathematical logic.
Constructor (object-oriented programming). Destructor. Creational pattern.
Difference Between Contiguous and Noncontiguous Memory Allocation.
Cyclic graph. Directed acyclic graph. Cycle. Cycle graph. Graph theory.
Decidability. Decision problem.
Deterministic system. Stochastic process.
Digital signal. Analog signal.
Free variables and bound variables.
Front and back ends. Multiple buffering.
Greedy algorithm. Lazy evaluation. Greedy and lazy quantifiers in regular expressions. Eager learning. Lazy learning.
14 tail and head commands in Linux/Unix Linked list.
Heap data structure. Stack (abstract data type). Memory management.
Explicit and implicit methods in numerical analysis. Zen of Python.
DEFLATE data compression algorithm.
Intersection. Union. Set theory.
Join in SQL. Joining lists and splitting strings in Python.
Key-value database. Associative array. Attribute-value pair.
Labeled data in machine learning.
Load/store architecture. Load-store unit.
Semantic versioning. Software versioning.
Note: prefer the terms primary / secondary.
Pack and unpack in Perl. Pack and unpack in MPI.
Parent process. Child process. Fork. Tree data structure. Document Object Model (DOM).
Request-response communication.
Compile time. Run time. Runtime system.
Sequential algorithm. Parallel computing.
Stability in sorting algorithms. Stable-unstable semantics.
Supervised learning. Unsupervised learning.
Synchronization. Synchronous programming language. Asynchrony. Futures and promises.
Top-down and bottom-up design.
Total order. Partially ordered set.
Parameterized complexity. Computational complexity theory.
Virtual class. Virtual reality.
Programming antonyms:
Programming glossaries:
- Dictionary of Algorithms and Data Structures (NIST)
- Design and Analysis of Algorithms
- Programming glossary
- Glossary of computer programming
- Programming terms
- Mathematical Programming Glossary
Naming things well:
- How to name things (Peter Hilton)
- Why naming things is hard (Peter Hilton)
- How to get better at naming things (Peter Hilton)
- Naming things (Paul Lloyd)
To the extent possible under law, Cyrille Rossant has waived all copyright and related or neighboring rights to this work.