9 comments

[ 12.5 ms ] story [ 299 ms ] thread
> it [London tube map] totally distorts the geography and geometry of London

It certainly does - back in 1979 I re-located to London and thought on my first day there that it would be a good idea to walk from London Bridge station to Queen Elizabeth College (off High Street Ken), based on the Tube map. It was not a good idea.

Luckily, my new boss Christine had an extremely relaxed work ethic, and we generally spent the firs hour or so of the working day doing the Grauniad crossword (usually succesfuly), chain-smoking and drinking coffee.

Needs (2003) in the title.
Too late for me to edit it I’m afraid
> Lisp is for working with computational ideas and expression, whereas Java is for expressing completed programs

Not my experience at all. I often use the type system to play with and shape ideas before writing any code. The type system is a very high level specification language that allows me to express complex ideas in a few type declarations. With the added benefit that my automatic assistant (the type checker) helps me ensure that I have thought about everything before writing even a single line of code. It is a wonderful way to think about concepts, ideas and the architecture before writing any code.

This sounds very interesting. Could you explain more about that?
Not OP but check out type driven development - there’s a few great F# blogs on the topic and a book on Idris if you want to go further
To be fair you can do this in a Typed Lisp! But yeah this is a really nice way to develop
Could easily achieve this in Clojure with spec and rcf or spec and pre/post

Everytime I inject new code into the running application I can check the static and runtime shape of things with a specification language

In fact there's a choice of specification languages spec is just the in-built one some people prefer maili

I could share those specifications into Clojurescript or in some cases over the wire

Clojure has an assistant checking for mistakes too in clj-kondo they're just not coupled together by default

Yep that’s how I would do it in languages that are not statically typed. I just happens to prefer statically typed languages.