As someone who wrote a linter this year for Clojure and has been mulling over how one might introduce a Typescript-like static analysis to Clojure, this project interests me greatly. Clojure is both more and less open than Javscript, but it relies much more on higher order functions and macros, which make most static analysis hard. clj-kondo is able to do minor local analysis (knows when a local variable is a literal type and warns when it’s passed to a function expecting a different type), but it doesn’t try to do larger analysis. Could Plumatic’s Schema or Metosin’s Malli be relied on as the foundation syntax for such analysis? I’m not sure, but I’m very intruiged.
Are you aware of Typed Clojure? I’ve never used it in anger, but I’ve been following it for quite a while now — it seems it’s up to date with 1.11 and reasonably active.
I’m aware of it but haven’t used it much. It seems very cool but it’s also verbose and when I last looked, it felt intrusive in a way that Malli doesn’t. I might just be misinformed tho.
The introduction with the history and challenges of compile-to-JS languages was well articulated. Ectype seems like a great idea and interesting implementation. I will be watching it closely.
Strange Loop 2023 talk by the author. The talk is really compelling but I prefer discussing code itself.
As someone who wrote a linter this year for Clojure and has been mulling over how one might introduce a Typescript-like static analysis to Clojure, this project interests me greatly. Clojure is both more and less open than Javscript, but it relies much more on higher order functions and macros, which make most static analysis hard. clj-kondo is able to do minor local analysis (knows when a local variable is a literal type and warns when it’s passed to a function expecting a different type), but it doesn’t try to do larger analysis. Could Plumatic’s Schema or Metosin’s Malli be relied on as the foundation syntax for such analysis? I’m not sure, but I’m very intruiged.
Are you aware of Typed Clojure? I’ve never used it in anger, but I’ve been following it for quite a while now — it seems it’s up to date with 1.11 and reasonably active.
I’m aware of it but haven’t used it much. It seems very cool but it’s also verbose and when I last looked, it felt intrusive in a way that Malli doesn’t. I might just be misinformed tho.
The introduction with the history and challenges of compile-to-JS languages was well articulated. Ectype seems like a great idea and interesting implementation. I will be watching it closely.
[Comment removed by author]