"hallucinated interfaces" : I like it :-).

I think of it as 'data shapes', or implicit contracts.  The added
value/cost over explicit types is it's open to interpretation and the
reader's subjectivity.  Let me tell you, when you work with large amounts
of uncommented clojure code, the flexibility afforded by this is as welcome
as it's terrifying, but the 'dbg'[1] macro is a welcome friend.

There are some projects that address making the implicit contracts
explicit, namely Prismatic's "Schema".

https://github.com/Prismatic/schema

[1] :
http://www.learningclojure.com/2010/09/clojure-macro-tutorial-part-i-getting.html


On Tue, Dec 31, 2013 at 5:08 PM, Dennis Haupt <d.haup...@gmail.com> wrote:

> i solved a few little thingy with clojure now, including some euler
> problems, java interop and an asteroids clone.
>
> my summary would be:
> * very nice to write +1. i used clojure's collections for a lot of things,
> and they made a good impression
> * you need to plan far ahead compared to java. in java, it's easy to
> "hack-fix" something if it doesn't work by adding a field somewhere and
> read its value later, or add a parameter to a call hierarchy. i know this
> isn't the way it should be done, but sometimes code quality is irrelevant
> (for example if you are just making some experiments)
> * the effort to modify code is either very low, or very high - in java, it
> was "kind of always the same". in clojure, it seems to depend a lot on the
> existing code.
> * debugging is impossible (or very hard) if you want to debug like you are
> used to do it in java - meaning stop if condition x is true and evaluate
> expressions at that point. i made some mistakes that i would have
> immediately seen in a standard debug session, but i don't know how i could
> have seen it in clojure. i needed to think a lot more or add debug output
> to understand those bugs - like flipping x and y in a grid. so, fixing bugs
> took longer than it takes in java.
> * how do you deal with complex data structures? since i cannot tell what
> the type of a parameter is, it could be anything, including a map with
> unknown content. i can only see which properties of it are immediately
> accessed. is that the trick? to "not care about what you don't care about"?
> and having something like "hallucinated interfaces"?
>
> what are your experiences?
>
> --
> --
> 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/groups/opt_out.
>

-- 
-- 
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/groups/opt_out.

Reply via email to