Atlas · Details
Tin Foil Hats and Rubber Ducks
AI Notes
The essay runs on a constraint. Hammer two spikes into the productivity list — fix the number of engineers, fix the lines of code — and watch what's left. Steve walks the candidates one at a time: faster typing, ANTLR-style complexity tools, more hours, agile practices, design patterns. None of them moves a single engineer by an order of magnitude. The only variable left is the language itself, and specifically a language's ability to grow new abstractions inside itself. That's what lands him at the closet Lispers' table at Amazon — the smart engineers he'd been noticing for months, with their tin-foil hats and rubber-duck life-preservers, who'd quietly seen the martian radio waves first. He joins the table, noting that Lisp is the classical music of programming languages and conceding he didn't want the answer to be Lisp.
Scheming Is Believing six weeks earlier announced the conversion; Tin Foil Hats shows the reasoning that produced the verdict.
Related listings
-
2005
Scheming Is Believing
Six weeks earlier. Scheming is the conversion; Tin Foil Hats is the reasoning that produced the verdict.
-
2005
Effective Emacs
Same season — once Steve has committed to Emacs and Lisp, Effective Emacs is the first guide he writes to the half-of-the-stack everyone else can use immediately.
-
2005
Decision Time
Two months later — the same thought experiment scaled up from one engineer to a whole company. Tin Foil Hats is Steve picking; Decision Time is Steve asking Amazon to pick.
From the peanut gallery
Read the rest of the thread · 3 more
-
>> I've come to realize that Lisp is the classical music of programming languages.
This is a great metaphor, IMO.
Hey, here's a cool-looking lisp that I stumbled across. I've only glanced at the docs but it looks clean, small (20KB footprint) but surprisingly featureful. It has an interesting macro system too. And even TCP/IP support :)
http://www.oliotalo.fi/hedgehog/
I know it's not appropriate for our purposes, but the nice thing about lisp dialects is that if you see a neat feature you like, you can almost certainly implement it yourself in the lisp you do intend to use.
-
http://dirkgerrits.com/erlisp/
Very early stages yet, but could end up as the best of both worlds.
I loved the 'Concurrent Programming In Erlang' free-download book. The conceptual model, the language, and the runtime environment all sound wonderful. The book itself is one of the simplest, clearest descriptions of a language I've ever read. But in a production system, I think you may need to be able to alter or enhance the runtime (which of course the authors can, as they also build the runtime...).
-
If you want erlang style concurrency in a lisp dialect you need to check out Gambit Scheme. Erlang has actually been implemented on top of it in the past.
Hrmm, apparently I've been Outside the Asylum for quite some time, then. I wasn't aware that the common perception was that more programmers and more SLOC were good. I just assumed that more SLOC was a result that was tolerated (but that I tried to explain didn't have to be), and more engineers was a result of there being so many SLOC (one of those cycle things that's vicious).
I guess I've been fighting the wrong fight. Here I am trying to show that you can get rid of SLOC and programmers, but I'm showing it to people who don't even see why you would want to in the first place.
Count me in for the revolution.
/me sharpens his parentheses.
— Greg P · March 14, 2005 11:01 PM
I'll probably keep following along the ride. I finally committed to Emacs a couple of weeks ago, even going so far as to make "vim" an alias for "xemacs -nw" in my rc files. That way I don't have to worry about my finger habits betraying me ;-)
Ruby is doing a lot to satisfy my conventional OO tastes, but the other side of my brain has been wandering into Rebol a whole heck of a lot. Funny thing is, Rebol is starting to look like Lisp with some cool macros added. In fact, everything is starting to look like Lisp. Maybe it's something in the coffee. I am starting to understand the idea that Lisp is part technology and part ... well ... idea.
I've had my tinfoil for a while, but I didn't know it was a hat until now. Apparently, I had been wearing as underwear.
— Brian W · March 11, 2005 02:19 AM
heh you got to love the 'i wont try to sell you lisp' rhetoric :), yet you haven't failed to mention it in all your blogs (I dont mind, but it's just so ironic that you'd say that :).
who has done performance studies that measure productivity between fluent Java (or any other language, let's say) and Lisp programmers? What were the gains by using one over the other for the same type of task? Just curious. Lisp has my interest, and even though I'm not apt at it, I'd be willing to learn it if I can be convinced it has something in it for me that will allow me to stay lazy - or lazier than I am. :).
— John Doe · March 31, 2005 11:26 AM