Re:Clojure will affect the way you think about programming
by christophilus on Friday August 04, 2017 @09:07PM
(#14933661)
I love static typing. I really dislike almost every dynamic language I've ever worked with. But Clojure is currently my favorite language. I've done C#, F#, Go, JS, Ruby, Dart, C, C++, dabbled in Haskell, OCaml, purescript, D, Nim... (I like programming.) Anyway, once I dove into Clojure, I couldn't go back to any other language. I do wish it was more general purpose (not so slow to boot, had a decent native / non JVM, non JS target.)
Re:Clojure will affect the way you think about programming
by taylodl on Tuesday August 08, 2017 @06:42AM
(#14956391)
You should check out Ferret: http://ferret-lang.org. It compiles to C++11. I haven't tried it myself yet, so I don't know its limitations.
Re:Clojure will affect the way you think about programming
by keymone on Friday August 04, 2017 @03:08PM
(#14931132)
the static typing part - yeah, you just have to try and let go. there is typed.clojure for gradual typing though last time i checked it was quite slow. clojure.spec is a great attempt at bringing some discipline and provides quite a bit more than your usual typing system can do, though not entirely on compilation level.
as for compiler part - you're in for a treat. clojure is a compiled language - everything compiles down to jvm bytecode. the surprise part is that due to homoiconicity you get a compiler that's happy to let you hook into particular pieces of your code and (since code is literally represented as usual clojure data structures - lists/maps/vectors/etc) modify it on the fly before compiling. you basically define `f(code) -> other_code` - the ultimate metaprogramming.
How does it hold up for those of us that really love static typing and compilers?