Hacker News new | past | comments | ask | show | jobs | submit login

You can take solace in the fact that Typed Racket actually does optimizations based on the types. Typed Clojure is more like a linter, AFAICT.



Typed Racket does some optimization based on types and the feature is completely orthogonal to type checking. If Typed Clojure is a linter then so is the type checking phase of every typed programming language.


Ambrose explicitly likened Typed Clojure to Erlang's Dialyzer on the Clojure mailing list. The description of Dialyzer on erlang.org, "a static analysis tool that identifies software discrepancies such as type errors, unreachable code, unnecessary tests, etc.", strikes me as lint-like.

It may be true that the type-checking phase of every typed programming language is, in this respect, lint-like. A typed language's implementation is obviously not required to stop with ensuring that the types check out. It can use the information so derived to do further things, including introduce optimizations.

Insofar as Typed Racket does optimizations based on types it's hard to see how it can be completely orthogonal to type checking, on pain of the optimizations being potentially incorrect; insofar as the optimizations are based on types, it's a use of a type system beyond what Typed Clojure currently offers.


MY MISTAKE: it wasn't Ambrose but someone else (Michael Klishin) who compared Typed Clojure to Dialyzer.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: