I think part of the issue is that the article dates back to mid-2015 and 
`clojure.spec` wasn’t a thing back then, was it?

Variants feel like a solution to a problem for which we have a much better 
solution _today_ than we did two years ago. The article talks about using 
core.typed and core.match with variants – because that’s what we had then. I’m 
fairly sure that if Eric (and Jeanine) were writing their material today, we’d 
see `clojure.spec` front and center and regular hash maps being used.

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: Timothy Baldridge
Sent: Tuesday, August 22, 2017 6:00 PM
To: clojure@googlegroups.com
Subject: Re: Sum types in Clojure? Better to represent as tagged records or 
asvariant vectors?

I think the article is a bit misleading. Variants were never that popular in 
Clojure. Infact I've never seen them used in production code or the most common 
Clojure libraries. So I'm a bit perplexed as to why the article recommends them 
so strongly. 

So I think the answer is, they are a fun thought experiment in Clojure, but are 
of limited usefulness due to the tools we have available that make them 
unneeded. 

It's a bit like recommending that new users use actors in Clojure. Sure, you 
can shoehorn them in, but there's a reason why they aren't the default.
-- 
“One of the main causes of the fall of the Roman Empire was that–lacking 
zero–they had no way to indicate successful termination of their C programs.”
(Robert Firth) 
-- 
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