The /dev/null Dictionary: Tech Edition
Channeling Ambrose Bierce for the Internet age.
Warning: Some entries are a bit technical and can be offensive to programmers, mathematicians and computer 'scientists'. Proceed at your own judgement.
Academe
Academia
- An institution of smart people whose primary goal is to demonstrate how smart they are to other smart people. Any utility society derives from the work they do to demonstrate their intelligence is purely incidental.
Peer review
- A system where unpaid, overworked grad students check the work of other unpaid, overworked grad students to produce scientific work of the greatest quality.
Academic Journal
- An institution whose aim is put the results of publicly funded research behind a paywall.
Mathematics
- A field of study where exquisite, elegant systems are built from axioms that were pulled from someone's backside.
Computer Science
- A degenerate form of Mathematics. Also, not actually a science.
Programming
Maintainabilty
- The ease or difficulty of keeping code in working order as requirements and environments change.
- Incomprehensible to students and academics who never have to keep code working beyond the current course project or research grant.
Static typing
- A programming language type system where type errors are checked at compile time.
- A necessary but not sufficient condition for a programming language to NOT be an unmaintainable piece of garbage.
- A mechanism by which the size of source files are multiplied ten-fold by defining types (usually in CamelCase) with names ten times longer than the variables that use them. Size increases twenty-fold if it supports generics.
Dynamically typed language
- Unmaintainable garbage (see static typing above).
- Very popular with new programmers (or above-metioned academics) who claim it is better because they can write code a third the size and in half the time it takes to do the same thing in a proper typed language. They then take 10 times longer to debug the code when it inevitably breaks.
Javascript
- A dynamically typed(?) programming language (see above) designed in the 1990's that is used in all browsers today.
- When used as a teaching language, will ensure that the next generation of programmers will make the exact same mistakes as the last and will have to 'invent' the exact same solutions.
Functional programming language
- A type of programming language that is specifically designed to allow programmers who use it to look down their nose at other programmers who don't.
Declarative programming language:
- A language designed to have extremely concise definitions for solving specific problems and be utterly undebuggable when it breaks (see SQL. Also: CSS).
Debugger
- A crutch used by unsophisticated programmers to batter their code into correctness, whereas sophisticated programmers design their programs to be correct from the start.
- A tool unused by sophisticated programmers when they design their programs, which leads them to create perfectly correct programs that solve the wrong problem.
git
- A distributed version control system.
- Comes with a set of command verbs so obscure that led to the formation of a multi-billion dollar company just so users don't have to type in the commands themselves.
Framework
- A collection of classes and functions that make coding twice as fast by providing implementations of commonly used features while making debugging 10 times as slow by forcing you to debug code you didn't write (or even worse, code generated by code you didn't write). See also: transpiler.
Javascript Framework
- A framework (see above) for writing webapps in Javascript. Some popular examples:
- Angular: Too. Much. Plumbing.
- React: Designed by people who have had their minds destroyed by too much time coding in PHP.
- Vue: Black magic (great when it works, impenetrable when it doesn't).
Unit Test
- A set of tests that check the correctness of a small part of the code.
- 'Useless' tests that no-one actually wants to write, and is usually delegated to the most junior members of the project. Who then write tests that do not actually exercise the code, thereby further reinforcing the perception of the uselessness of unit tests.
Startups and Business
Actual Revenue
- Money a firm takes in from its operations.
- Must be avoided by startups at all costs so 'potential revenue' can be based on hype and fantasy and not actual numbers.
Disruptive Technology
- What your startup does, and what other startups don't.
Progress Meeting
- A meeting of 10 people of whom 9 would rather be coding, and one who would also like the other 9 to be coding but needs to write a report on why not enough coding is being done.
Line Manager
- Type 1 : a software engineer who is good at coding and is recognized for his competence by taking him away from code. Takes out his frustrations on the people still allowed to code.
- Type 2 : a software engineer who is bad at coding and is promoted to management so he can do less damage.
- Type 3 : a software engineer with good people and project management skills. Is quickly noticed for his talents and is promoted or poached to a better position, making room for type 1 and type 2 line managers.
fat4eyes
2018/11/14