Thursday, June 11, 2015
What is Code?
A computer is a clock with benefits. They all work the same, doing second-grade math, one step at a time: Tick, take a number and put it in box one. Tick, take another number, put it in box two. Tick, operate (an operation might be addition or subtraction) on those two numbers and put the resulting number in box one. Tick, check if the result is zero, and if it is, go to some other box and follow a new set of instructions.
You, using a pen and paper, can do anything a computer can; you just can’t do those things billions of times per second. And those billions of tiny operations add up. They can cause a phone to boop, elevate an elevator, or redirect a missile. That raw speed makes it possible to pull off not one but multiple sleights of hand, card tricks on top of card tricks. Take a bunch of pulses of light reflected from an optical disc, apply some math to unsqueeze them, and copy the resulting pile of expanded impulses into some memory cells—then read from those cells to paint light on the screen. Millions of pulses, 60 times a second. That’s how you make the rubes believe they’re watching a movie.
Via Lobsters (but really, many, many, other sites linked to this), Paul Ford: What is Code? | Bloomberg
Wow.
I've been a fan of Paul Ford for many years (I even had a link to his site in the sidebar years ago but removed it as he hasn't updated his site in several years now) so it's always nice when I come across his work elsewhere.
This is a really good article on programming. It's also a really long article (38,000 words) on programming. And while it's ostensibly for the non- programmer (it uses second-person view point (which I do no like, Sam-I-am) to paint you as an executive in a company trying to fund some internal software development) I'm not sure if the average non-programmer won't be overwhelmed by the presentation, or be unable to follow along when it gets technical in spots.
Do I recommend it?
It's not technical enough for a programmer (and some of the details, while in spirit okay, are technically inaccurate) but I'm afraid it might be a bit too technical (or overwhelming) for its intended audience.
But yeah, I would recommend it.
You have been warned.
This is more “bootstrapping a langauge” than it is “creating a language”
Via Hacker News comes presentation on creating a language using only assembly language. It's an interesting project starting with the simplest thing that could work and building successive layers, gaining capabilities as you go.
But it's funny to see this being presented as novel, when that's how it was done back in the late 50s and early 60s. Personally, I might be inclined to go the Forth route instead of Lisp, but that's just me.