An open API service indexing awesome lists of open source software.

https://github.com/jab/unfortunately-named-programming-terms


https://github.com/jab/unfortunately-named-programming-terms

Last synced: 8 months ago
JSON representation

Awesome Lists containing this project

README

          

Unfortunately-Named Programming Terms
=====================================

Because programming would be hard enough if we had good names for things.
I mean seriously.
For an activity that requires such relentless, fastidious precision of its practitioners,
it's miraculous we can even communicate at all.

If you've ever tried teaching programming to beginners, maybe you've noticed.
Or maybe this is the first time you're deliberately considering
how overloaded our terms of art are,
and are maybe surprised by what you find.

Either way, welcome!

Hope you find this interesting,
and please feel welcome to contribute.

*Note: documentating != proposing replacement*

Without further ado:

+------------+-------------------------------------------+-------------------------------------------------+
| term | meanings | issues |
+============+===========================================+=================================================+
| key | 1. unique value allowing efficient lookup | - overloaded, difficult to google |
| | of associated values (e.g. in a map, | - the metaphor works for symmetric key crypto |
| | datastore, etc.) | ("only those with the key can lock/unlock |
| | 2. (non-unique) attribute of data in a | access") but only causes confusion for public |
| | collection by which it can be ordered, | key crypto ("I give my key out to everyone?") |
| | grouped, etc. | |
| | 3. a secret value used for | |
| | encryption/decryption/authentication | |
| | 4. a public value used for encryption and | |
| | authentication | |
+------------+-------------------------------------------+-------------------------------------------------+
| value | 1. the value that a key (e.g. in a map) | - overloaded, difficult to google |
| | is associated with | |
| | 2. any data (e.g. that can be stored | |
| | in a variable) | |
+------------+-------------------------------------------+-------------------------------------------------+
| set | 1. to assign a value | - overloaded, difficult to google |
| | 2. a collection of unique elements | |
+------------+-------------------------------------------+-------------------------------------------------+
| map | 1. to apply a function to a collection of | - overloaded, difficult to google |
| | of elements | |
| | 2. a data structure associating keys with | |
| | values | |
+------------+-------------------------------------------+-------------------------------------------------+
| class | | |
+------------+-------------------------------------------+-------------------------------------------------+
| type | | |
+------------+-------------------------------------------+-------------------------------------------------+
| object | | |
+------------+-------------------------------------------+-------------------------------------------------+
| heap | 1. a pool of memory managed by an | - overloaded, difficult to google because a |
| | allocator | heap-tree is typically allocated on the heap, |
| | 2. a type of tree-based data structure | and a memory heap is itself implemented with |
| | | some sort of a data structure |
+------------+-------------------------------------------+-------------------------------------------------+
| constant | 1. a hard-coded value or 'magic number'. | - if you have a 'constant', it would be |
| | typically a literal expression. | reasonable to assume that its value will |
| | possibly even a value computed at | remain constant, rather than being |
| | compile-time ('constexpr') | inadvertently modified by some other piece of |
| | 2. an attribute of an access path to a | code which holds a mutable reference to the |
| | value, through which the value cannot | data. |
| | be modified. However the value itself | |
| | might be mutable | ambiguous synonyms: |
| | | - immutable (D, transitive) |
| | | - persistent (Clojure, intransitive) |
| | | - final (Java, intransitive) |
| | | - frozen (JavaScript, intransitive) |
| | | - readonly (C#, intransitive) |
+------------+-------------------------------------------+-------------------------------------------------+