Frank Lloyd Wright Lego

Two more for the wish list. The Guggenheim and Falling Water. Spotted on Boing Boing.


Lambda Chair

Spotted by Shriram Krishnamurthi. Thanks, Shriram!


Slashdot: 'functional programming languages can beat C.'

Spotted on Slashdot by Greg Michaelson's brother.
John Fremlin has released what he believes to be the worlds fastest webserver for small dynamic content, teepeedee2. It is written entirely in LISP, the world's second oldest high-level programming language. He gave a talk at the Tokyo Linux Users Group last year, with benchmarks, which he says demonstrate that 'functional programming languages can beat C.' Imagine a small alternative to Ruby on rails, supporting the development of any web application, but much faster.



Robin Milner back in Edinburgh

Robin Milner has returned to Edinburgh as a visiting professor, and he just completed an enlightening series of lectures on bigraphs. This is how he began:
I always get nostalgic when I return to Edinburgh. On this visit, when I got off the train, a woman rushed up to me and asked "Are you Earnest?" I have a feeling that if I had said yes, I would be having a very good time right now.
(Audience rolls on the floor.)


Jan Wielemaker, Doxygen

Jan Wielemaker is speaking at ICLP on "Enabling serendipitous search on the Web of Data using Prolog". I wonder about whether there is some way to get web pages to publish logic formulas which could be used for inference during a search, and this looks like it might be close. RDF is aimed at this, of course, but I'm unclear on what sort of inference its triples enable; using Prolog sounds plausible for more serious inference.

Two Wielemaker papers of interest: Using Prolog as the fundament for applications on the semantic web and PlDoc: Wiki style Literate Programming for Prolog. The second mentions a popular non-Prolog documentation tool called Doxygen.



Hackers can sidejack cookies

A collage-homage to Guy L. Steele and Eric S. Raymond. Poetry in the 11 May 2009 New Yorker by Heather McHugh. Spotted by Ezra Cooper--thanks, Ezra!



A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Several folk have pointed me at this, since Haskell and myself get a mention. I'm delighted to learn that "a monad is a monoid in the category of endofunctors"---anyone know where I can find a good tutorial?


6.001 RIP

Jerry Sussman has taught the last class ever of 6.001, Structure and Interpretation of Computer Programs, the introductory computing course at MIT. Here's a summary of the reasoning, taken from Dan Weinreb.
In 1980, computer engineering was based on starting with clearly-defined things (primitives or small programs) and using them to build larger things that ended up being clearly-defined. Composition of these fragments was the name of the game.

However, nowadays, a real engineer is given a big software library, with a 300-page manual that’s full of errors. He’s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?). The engineer must learn to perform scientific experiments to find out how the software and hardware actually work, at least enough to accomplish the job at hand. Gerry pointed out that we may not like it this way (”because we’re old fogies”), but that’s the way it is, and M.I.T. has to take that into account.

My own take on this is that you need both. Yes, one of the great advances of modern times is that we have large systems with large libraries, and students must learn to work with that. But, no, that doesn't mean that fundamental skills taught in SICP are any less relevant.

As Joel Spolsky points out in The Perils of JavaSchools, it is vital that schools of computing continue to explode the minds of incoming undergraduates by exposing them to Scheme (or Haskell or Erlang or Prolog or anything else far from the mainstream).

This page is powered by Blogger. Isn't yours?