I still find it really weird that everyone in clojure calls them “specs” and never uses the word “contract”.
Don’t get me wrong, contracts are both amazing and criminally underused, but they’re not a new or groundbreaking idea. This would just be a terminology peeve, except I’ve met more than a few clojurists who thought spec was wholly unique to clojure.
As you note, runtime contracts are very much underused and most people aren’t familiar with the concept. Since Rich decided to call them specs everybody working with Clojure calls them that now. It’s really unfortunate Racket contract system isn’t well known, as it’s quite comprehensive and was clearly an inspiration for Spec.
I still find it really weird that everyone in clojure calls them “specs” and never uses the word “contract”.
Don’t get me wrong, contracts are both amazing and criminally underused, but they’re not a new or groundbreaking idea. This would just be a terminology peeve, except I’ve met more than a few clojurists who thought spec was wholly unique to clojure.
As you note, runtime contracts are very much underused and most people aren’t familiar with the concept. Since Rich decided to call them specs everybody working with Clojure calls them that now. It’s really unfortunate Racket contract system isn’t well known, as it’s quite comprehensive and was clearly an inspiration for Spec.