That's one downside, ideally (in my world) spec would be a compile/test time 
dependency - esp. since AFAIK it's not recommended to turn it on at run-time 
for day-to-day operation.

We use clojure.spec extensively in production code so that certainly isn’t 
true. You might not turn on instrumentation for production but spec is far more 
than instrumentation and far more than generative testing.

In addition, clojure.core.specs.alpha leverages clojure.spec.alpha to provide 
“compile-time” specs for macros, which you can argue is not “production” if you 
argue for AOT only – which I’d strongly push back on.

since clojure.jar depends on an alpha, when that comes out of alpha, we'll need 
patch releases of Clojure core.

Not true. You can specify the version of clojure.spec(.alpha) independently of 
the version of Clojure itself. The same is true for clojure.core.specs.alpha. 
That’s part of why spec was split out from Clojure itself: so that it could 
evolve on a separate timeline. It’s how Clojure 1.9.0 went to release without 
spec coming out of alpha and how Clojure 1.10.0 has continued to evolve without 
lock-step against clojure.spec versions.

Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood

From: Mark Derricutt<mailto:m...@talios.com>
Sent: Monday, July 30, 2018 6:48 PM
To: Clojure<mailto:clojure@googlegroups.com>
Subject: Re: What Happened to "java -jar clojure.jar hosehead.clj" ?


On 31 Jul 2018, at 9:08, Payter Versteegen wrote:

I'd've hoped that clojure wouldn't have become as tightly-coupled with spec 
(for instance), but maybe I just need to read the Rationale page more deeply. 
Dependency hell blows, especially if your work environment is disconnected from 
the global internet.

Welcome to source based dependencies/languages. That's one downside, ideally 
(in my world) spec would be a compile/test time dependency - esp. since AFAIK 
it's not recommended to turn it on at run-time for day-to-day operation.

I wonder if it'd be possible to have no-op versions of spec APIs in clojure.jar 
that are replaced with implementations if you include the actual... 
implementation.

I hit this recently with clojure.osgi and the move to the latest clojure, I had 
to include spec - which, as Sean mentions - is just part of the build process ( 
Maven in this case ), but I did feel dirty about it - since clojure.jar depends 
on an alpha, when that comes out of alpha, we'll need patch releases of Clojure 
core.

Mark
Lover/Loather of static types, and build/deps systems :)


"The ease with which a change can be implemented has no relevance at all to 
whether it is the right change for the (Java) Platform for all time." — Mark 
Reinhold.

Mark Derricutt
http://www.theoryinpractice.net
http://www.chaliceofblood.net
http://plus.google.com/+MarkDerricutt
http://twitter.com/talios
http://facebook.com/mderricutt
--
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<mailto: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