-> high-level languages are there to make coding more efficient and effective
-> the whole point of high-level languages is to satisfy our need to express our ideas/logics in a more natural way I'd argue that you're in violent agreement with each other :-) If I can express my idea/logic in a more natural way, I would expect that to make my coding more efficient and effective. I don't think there is such a thing as one "natural" thinking or programming pattern. I think what each of us regard as "natural" has a lot to do with different individuals' giftings, background, and experience. I think it's valid to say that OO is a bad attempt to force a contrived and ill-fitting "physical" world model on computer programs, and it's totally unnatural. That's just a point of view on the "natural"-ness of the programming model for an individual. Even if most programmers think that OO is an ideal model, that still doesn't mean it's the "natural" one. -----Original Message----- From: Alex Baranosky <alexander.barano...@gmail.com> Sender: clojure@googlegroups.com Date: Sun, 20 May 2012 17:42:10 To: <clojure@googlegroups.com> Reply-To: clojure@googlegroups.com Subject: Re: defrecord with "inheritance" I'd argue with you over whether that is the whole point of high-level languages. I might say that high-level languages are there to make coding more efficient and effective. On Sun, May 20, 2012 at 5:16 PM, Warren Lynn <wrn.l...@gmail.com> wrote: > > I agree "familiar" is often mixed with "natural". But nevertheless > that does not mean there is no such thing as "natural" thinking or > programming pattern. In a broader sense, the whole point of high-level > languages is to satisfy our need to express our ideas/logics in a more > natural way, hence the modular design, interface and etc. The > challenge of a language is how to be natural and powerful at the same > time, as human being's natural thinking often is not enough to model > the complexity of the world. > > On May 20, 7:34 pm, David Nolen <dnolen.li...@gmail.com> wrote: > > 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 > -- 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