> Contrast LISP to the complicated order of precedence operations you find in almost every other programming language, as well as their huge grammars and syntax. That takes a lot of brain space.
I disagree. I rarely find myself slowed down by the grammar or operator precedence in Java and C#. In C++, only when I have to do something rather esoteric (pointer-to-member, member function template specializations, etc.).
On the other hand, I critically rely on types. The IDE is able to narrow down suggestions about applicable methods to a handful. But since `js->clj` is a function `string -> map` (a very generic signature), there must be hundreds of them with the same signature. Context-sensitive discoverability with the help of IDE becomes nearly useless.
Yes, that's how I learn APIs these days. Types, intellisense + reading the documentation to learn about possible edge cases. I cannot imagine being productive in something like Clojure.
I also find Java 11 + VAVR rather pleasant to work with.
> I cannot imagine being productive in something like Clojure.
Of many languages I used (dynamically and statically typed) Clojure turned out to be the most productive one for me personally.
Nowadays if I have a problem to solve and not allowed to use Clojure, I would still first prototype it in Clojure and then rewrite it in whatever language. I am still faster that way.
Some people would argue that Lisps are optimized for writing, but are difficult to read and maintain. Although I've experienced that to certain degree with other Lisps, somehow I don't feel that is the case with Clojure.
I disagree. I rarely find myself slowed down by the grammar or operator precedence in Java and C#. In C++, only when I have to do something rather esoteric (pointer-to-member, member function template specializations, etc.).
On the other hand, I critically rely on types. The IDE is able to narrow down suggestions about applicable methods to a handful. But since `js->clj` is a function `string -> map` (a very generic signature), there must be hundreds of them with the same signature. Context-sensitive discoverability with the help of IDE becomes nearly useless.
Yes, that's how I learn APIs these days. Types, intellisense + reading the documentation to learn about possible edge cases. I cannot imagine being productive in something like Clojure.
I also find Java 11 + VAVR rather pleasant to work with.
reply