Looks great - eagerly awaiting a chance to use it.
Alan

On Mon, May 23, 2016 at 7:48 AM, <adrian.med...@mail.yu.edu> wrote:

> This looks incredible and it sounds like something which could immediately
> be put to good use in both hobby and production projects. Excited to test
> it out when the alpha is available. Thank you!
>
>
> On Monday, May 23, 2016 at 10:12:29 AM UTC-4, Rich Hickey wrote:
>>
>> Introducing clojure.spec
>>
>> I'm happy to introduce today clojure.spec, a new core library and support
>> for data and function specifications in Clojure.
>>
>> Better communication
>>
>> Clojure is a dynamic language, and thus far we have relied on
>> documentation or external libraries to explain the use and behavior of
>> functions and libraries. But documentation is difficult to produce, is
>> frequently not maintained, cannot be automatically checked and varies
>> greatly in quality. Specs are expressive and precise. Including spec in
>> Clojure creates a lingua franca with which we can state how our programs
>> work and how to use them.
>>
>> More leverage and power
>>
>> A key advantage of specifications over documentation is the leverage they
>> provide. In particular, specs can be utilized by programs in ways that docs
>> cannot. Defining specs takes effort, and spec aims to maximize the return
>> you get from making that effort. spec gives you tools for leveraging specs
>> in documentation, validation, error reporting, destructuring,
>> instrumentation, test-data generation and generative testing.
>>
>> Improved developer experience
>>
>> Error messages from macros are a perennial challenge for new (and
>> experienced) users of Clojure. specs can be used to conform data in macros
>> instead of using a custom parser. And Clojure's macro expansion will
>> automatically use specs, when present, to explain errors to users. This
>> should result in a greatly improved experience for users when errors occur.
>>
>> More robust software
>>
>> Clojure has always been about simplifying the development of robust
>> software. In all languages, dynamic or not, tests are essential to quality
>> - too many critical properties are not captured by common type systems.
>> spec has been designed from the ground up to directly support generative
>> testing via test.check https://github.com/clojure/test.check. When you
>> use spec you get generative tests for free.
>>
>> Taken together, I think the features of spec demonstrate the ongoing
>> advantages of a powerful dynamic language like Clojure for building robust
>> software - superior expressivity, instrumentation-enhanced REPL-driven
>> development, sophisticated testing and more flexible systems. I encourage
>> you to read the spec rationale and overview
>> http://clojure.org/about/spec. Look for spec's inclusion in the next
>> alpha release of Clojure, within a day or so.
>>
>> Note that spec is still alpha, and some details are likely to change.
>> Feedback welcome.
>>
>> I hope you find spec useful and powerful!
>>
>> Rich
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to