7 ms·
> 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
by mbrodersen 5y ago
> 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.
- anselmwang 5y agoThis sounds very interesting. Could you explain more about that?
- exdsq 5y agoNot 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
- exdsq 5y agoTo be fair you can do this in a Typed Lisp! But yeah this is a really nice way to develop
- slifin 5y agoCould 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
- mbrodersen 5y agoYep that’s how I would do it in languages that are not statically typed. I just happens to prefer statically typed languages.