3 ms·
don't you get a similar benefit in common lisp by generously adding declarations? (esp. in sbcl with high levels of SAFETY)
by blue1 15y ago
don't you get a similar benefit in common lisp by generously adding declarations? (esp. in sbcl with high levels of SAFETY)
- marijn 15y agoAs far as I know, no. You can get SBCL to point out some intra-function inconsistencies through declarations (or, in fact, often even without declarations), but I haven't found a way to make it warn when, outside of function X, I'm calling it with types different from the types associated with the arguments through declarations.
- blue1 15y ago(declaim (safety 3) (ftype (function ({argument types}) {return types}) {function name})) It checks both at compile time and at run time. I find it great for bug squashing. See http://www.sbcl.org/manual/index.html#Declarations-as-Assertions http://www.sbcl.org/manual/index.html#Declarations-as-Assert...
- marijn 15y agoThat's neat. Thanks. Might be worthwhile for APIs.
- cageface 15y agoI suppose you get at least some of the benefit. The other half of the advantage of a relatively simple statically typed language like Java is that IDEs can do really amazing structural transformations of your code. When I'm working in IntelliJ I'm constantly aggressively refactoring my code in ways I wouldn't dare in a language with less rigid syntax.