Really depends on how the brain of the programmer is wired IMHO. To some
people, the intuitive part of programming is fiddling with bits, to others
it's all about abstraction.
On Mar 17, 2016 9:32 PM, "Mark Engelberg" <mark.engelb...@gmail.com> wrote:

> On Thu, Mar 17, 2016 at 11:12 AM, gvim <gvi...@gmail.com> wrote:
>
>> Better to get a foundation in Javascript, Python/Ruby and Java first then
>> add Clojure later.
>>
>
> Disagree.  It's easier to go from functional programming to imperative
> programming than vice versa, so it is better to teach functional
> programming first.
>
> The reason is that imperative programming can be thought of as a small,
> added layer, an extra mutation capability beyond writing pure functions
> that can be used judiciously to achieve certain effects.  Grounded in
> functional programming, it's easy to go to imperative programming, because
> you are *adding* a capability.  You can still write pure functions in an
> imperative language (although the language gives you less support for doing
> so), so your prior knowledge applies.
>
> On the other hand, if you learn imperative programming first, you learn a
> way of writing code that uses mutation in everything.  You develop no
> awareness of the boundary between the set of things you can compute with
> and without mutation.  From your perspective, everything requires
> mutation.  When you try to make the move to functional programming, you
> feel completely lost and completely hamstrung, because a capability you
> imagine is essential for writing any code is now missing.  You have to
> completely relearn how to think about coding, figuring out how to write
> code without mutation.  You are subtracting a capability from your
> language, which is much, much harder, because all your instincts about how
> to code no longer apply.
>
> --
> 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 a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/i1CUQKROJ5U/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/d/optout.

Reply via email to