Skip to content

Instantly share code, notes, and snippets.

View dfarquharson's full-sized avatar

David Farquharson dfarquharson

View GitHub Profile
@dfarquharson
dfarquharson / PhilosophicalHistoryOfComputing.txt
Created May 31, 2017 15:41
A Philosophical History of Computing
A philosophical history you say? Now just what exactly does that mean? This will be a history insofar as it is a good-faith attempt to refer to the transitory temporal event-stream, but a philosophical one inasmuch as it focuses on an interpretation of this stream, an attempt to trace a coherently woven thread through its myriad stitchings in the tapestry of time; an invitation to explore a fractal fringe of our human history, and to ponder whether our avocation with abstraction, our infatuation with computation, may constitute the very core of consciousness itself.
We must introduce our silent protagonist: the algorithm. The verb to the data structure’s noun. The active ingredient in the universe. What is an algorithm? A recipe, a procedure, an equation, an instruction set, an abstract process, a program, that, when executed correctly, produces some desired result. It is the encoding of potential energy into pure information, the transcription of mind into matter, replicable for the cost of subatomic particl
@dfarquharson
dfarquharson / WhyProgrammingLanguagesMatter.txt
Last active May 31, 2017 20:12
Why Programming Languages Matter
Let us begin with a proof by contradiction. Suppose that programming languages don’t matter, so long as they’re Turing complete. Once the minimum mechanism of arbitrary computation has been satisfied, all languages are essentially the same, insofar as they are able to express all computable things. Now, suppose I ask you to write me an CRUD app in x86 assembly. I imagine that you would refuse this task, on the grounds that the choice of language would make the task unnecessarily painful, to the point of being intractable, even though the language is technically capable of eventually completing the job. Choosing a different language, such as Python or Java, would make this task significantly more bearable. The instant that we start choosing different languages for different problems we commit ourselves to the position that programming languages do indeed matter. If they didn’t, we would have no qualms with this task, and we would spend our days happily programming in machine code. Believing that Turing complet