That is certainly a philosophical question to which I cannot give any
proof to my view. In my view, as long as human beings are still
writing code, you cannot be truly efficient and effective without a
language that can let you express and organize your ideas in a natural
way (which itself is subject to debate). And as LISP looks unnatural
to many people on the surface, it actually makes a lot of things more
natural, hence I am very interest in it (I already did quite some
coding in Emacs Lisp and have some limited experience with Common
Lisp). For example, the "with-open", or a lot of other "with-xyz"
macros, filters out the noises and make people focus on the matter at
hand, which is natural to most people (you can argue it is also more
efficient, but I consider them the same or have a very strong
correlation). Further, the macro system can let you tailor the system
to fit your own particular "natural" style. But it cannot let you
tailor everything, so I am just hoping to gain as much as possible on
the "natural" part and lose as little as possible on the "unnatural"
part.

On May 20, 8:42 pm, Alex Baranosky <alexander.barano...@gmail.com>
wrote:
> 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

Reply via email to