Hi Warren, "familiar" implies that your understanding relies on your previous experiences. To get away from "familiar" concepts you need to think "out of the box".
How do you get rid of cabled thinking that brings you back always to the same track ? Or should I say rut ? It's an uneasy experience when you try to toss away your framed habits. Having worked in Lisp, C and other languages, being stuck in Java for a number of years, learning Clojure was a refreshing experience but even then: A) immutability by default let me felt like a one-legged man for a couple of months, were was this assignment thing I was used to ? B) lazyness, this thing drove me nuts a few times, there were a few holes in the wall of my office Overall it took me a good three months to get over that uneasy feeling. I was writing production code.... Not toying with the implementation. That helped in a sense, there was a feeling of emergency. Familiarity is relative, the thing to remember is to be critical of your own thinking. If you let yourself trapped by your old habits, you may miss a whole new (and potentially easier) way of doing things. Clojure does not force fit you in a single approach to problems, it's up to you to pick and choose. That by itself may increase the anxiety but it's worth it :) Luc > > 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 > -- Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad! -- 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