top | item 39143425

(no title)

peterisdirsa | 2 years ago

No static typing...

discuss

order

a-french-anon|2 years ago

(Talking about CL) Isn't gradual typing with a typed standard library enough? Because that's kind of what SBCL provides.

Anyway, some other reasons:

* Baby ducks who can't get over the parentheses (which quickly become invisible to the eye, you read Lisp via its indentation).

* Baby ducks who can't get over too weird/big differences from C/C++/C#/Java/etc... like CL's compilation model.

* ML typing being /the/ fad these days.

* Low-level fetishism. I know a lot about this, since I've had my own C weenie phase (you know, the kind to spit on GC by principle) as a young university student, before turning smug lisp weenie ten years later; Tcl was actually my gateway drug into useful homoiconicity.

* Some hard technical limitations:

  * No user accessible parametric deftype.

  * No recursive deftype (so no typed lists/trees).

  * Gimped hash tables (untyped, lacking literals thus read/write transparency).

  * CLOS being bolted on instead of truly integrated in the language; would need a JIT and something like https://github.com/marcoheisig/fast-generic-functions on system classes to go fast enough, Julia kinda does this (but it hurts my eyes).

  * Lack of LSP; no, SLIME/Sly isn't the same, as you're lacking lexical information that allows to complete/rename stuff.

  * And hundreds of other rust spots sometimes fixed by extensions (e.g. gray streams, extensible sequences) or libraries (loop -> iterate, trivia), very often crutches in look and feel.

Zambyte|2 years ago

Optional static typing. Always strongly typed.

erik_seaberg|2 years ago

We tend to hope so, but CLHS is full of stuff like “the consequences are undefined if the value of the declared variable is not of the declared type” which gives a lot of leeway for generating code that blows up horribly.