FWIW, the first thing I did when I encountered Clojure was built a Tiny
CLOS like system with inheritance. I've since come to the conclusion it was
a waste of time and Clojure offers an equally good set of tools.

After examining a few powerful paradigms, OO, FP, LP, etc I'm not sure what
"natural" could possibly mean besides "familiar" which is a limited metric
in my opinion.

David

On Sun, May 20, 2012 at 6:17 PM, Warren Lynn <wrn.l...@gmail.com> wrote:

> Thanks for the suggestion. I understand part of the joy (and pain) of
> learning a new language is to change the way of thinking. So I
> probably need to take on something no-trivial but also not
> overwhelming to understand the issue or benefit better.
>
> But eventually, a language cannot meet everybody's needs/tastes. In my
> view, there are certain patterns that are just "natural" to most
> people (not simply because they were taught like that in school), and
> a language will be more productive for those people to have those
> patterns (maybe with extra enhancements and enlightenment). I am sure
> with maps and multimethods you have actually a superset of any OO
> systems, and certain people find it much productive, but lacking
> direct support of certain natural patterns will lose many capable but
> non-genius programmers (which is nothing wrong if that is not part of
> the language's objectives). Part of my learning here is to find out if
> the language is right for me.
>
>
> On May 20, 5:37 pm, Bill Caputo <logos...@gmail.com> wrote:
> > On May 20, 2012, at 4:23 PM, Warren Lynn wrote:
> >
> > >> defrecord, deftype, and defprotocol provide extensible low level
> > >> abstractions like the kind Clojure is built on.
> >
> > >> As a Clojure programmer you should only need them rarely.
> >
> > >> As a beginner you should never use them.
> > > Well, I don't want to be a beginner for too long, :-)
> >
> > I am not a clojure beginner (though far from feeling I know all there is
> to learn about it). I have been using clojure for almost a year; my team
> has rebuilt the central part of our system (which is relied on by just
> about every other team where I work) out of clojure and have had it in
> production for 6 months.
> >
> > I've yet to even learn *how* to use defrecord, deftype & defprotocol.
> >
> > IMO, If you're not doing a lot of java interop (i.e. where your clojure
> code is being consumed by java clients) you might never need them.
> >
> > As someone who came from, C++, C# & Ruby (and a little Java) - i.e. OO -
> to clojure & FP, I *strongly* recommend that you take a project (preferably
> one that you aren't hanging your livelihood on, but trust me it's a real
> rush) and try *really* hard to solve your design problems just with maps,
> vectors and the other core data structures (I first tried this in ruby, btw
> - a great learning experience and gave me a strong appreciation for the
> optimizations that clojure provides to make such code practical).
> >
> > IOW: pretend for a project that OO doesn't exist. When you're done,
> you'll have learned a lot, you'll still have what you know about OO, and
> when you're done you'll have lost nothing except your time and your
> perspective. You'll be doing yourself an enormous disservice if you simply
> try to map clojure onto your current way of working/thinking.
> >
> > bill
>
> --
> 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 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

Reply via email to