4 ms·
Because clojure's spec is nothing new? programmers in dynamic langs have being doing it for ever, spec just gives you a framework to save on boilerplate. Also,
by Scarbutt 7y ago
Because clojure's spec is nothing new? programmers in dynamic langs have being doing it for ever, spec just gives you a framework to save on boilerplate. Also, spec's runtime performance is atrocious.
- dominotw 7y ago> spec just gives you a framework to save on boilerplate. > spec's runtime performance is atrocious. How is that though? If you are reading stuff off of database/api you still have to do the same datavalidation even in scala, for example. I might be misunderstanding what you are saying but what runtime data validation have specifically do with spec.
- pron 7y ago> Because clojure's spec is nothing new? You're absolutely right, but dependent types are nothing new, either. They're just new to Haskell. So contract systems aren't new, but they're new to languages some people actually use (or rather, that a contract system is used by a non-vanishingly small set of programmers is new). > Also, spec's runtime performance is atrocious. Have you tried writing deductive proofs with dependent types? I think the point was about using spec for development, not for runtime validation.
- fulafel 7y agoCan you give some concrete examples on older spec-like things in other languages? It's not really clear what aspects of spec you refer to with this. It's easy to miss the details that give it a quality of its own, like the composability, property based testing support, and preservation of extensibility in APIs if you just have a quick look at spec.