Learning Path to Clojure

48 views
Skip to first unread message

Ronald Reynolds

unread,
Nov 8, 2014, 11:18:17 AM11/8/14
to codes...@googlegroups.com

Dear Brian Will:
Great Blogging Sir,  keep it up I'm going to donate tomorrow.  I had started to learn Scala as  a first language but I'm thinking Clojure would be more my cup of tea I love the sound of lisp (McCarthy) ideas.  Especially the macro's with code returning code.  But I'm still very newbie.  I want to be sure that the Python and JavaScript belong in my learning  path which I imagine to be focused on Clojure.  Since the pigeon stuff feels very worth it to me, I suppose I'll just study the material all in order.  You think that's best?


Ethashamuddin Mohammed

unread,
Nov 8, 2014, 9:10:07 PM11/8/14
to codes...@googlegroups.com
Brian would provide you quick reply, if you can place the comments under the relevant youtube video.



On Sat, Nov 8, 2014 at 9:48 PM, Ronald Reynolds <bum...@gmail.com> wrote:

Dear Brian Will:
Great Blogging Sir,  keep it up I'm going to donate tomorrow.  I had started to learn Scala as  a first language but I'm thinking Clojure would be more my cup of tea I love the sound of lisp (McCarthy) ideas.  Especially the macro's with code returning code.  But I'm still very newbie.  I want to be sure that the Python and JavaScript belong in my learning  path which I imagine to be focused on Clojure.  Since the pigeon stuff feels very worth it to me, I suppose I'll just study the material all in order.  You think that's best?


--
You received this message because you are subscribed to the Google Groups "codeschool" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codeschool+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Brian Will

unread,
Nov 9, 2014, 2:55:13 AM11/9/14
to codes...@googlegroups.com
Scala's a hard place to start, and Clojure is my favorite language but also presents some barriers for newbies. Javascript and Python have the easiest entry path. Even if you move on quickly from these languages, they're the best place to start (and Javascript is the new lingua franca that every programmer should know). You also should learn a bit of C, even if you don't use it at all. Java you could skip, but familiarity with the Java environment helps with learning Clojure.

The videos are made to be watched in order, but you should probably skip "the Internet", "HTML and CSS", "Javascript in the browser", "2D graphics", "Unix system calls", "Unix terminal and shells", "the Java language", and maybe "server-side web programming". I'll have revisions of these videos posted over the next few months, so probably best to wait before watching these.

If you have any questions or feedback, please post them here or as youtube comments. Good luck!

On Sat, Nov 8, 2014 at 8:18 AM, Ronald Reynolds <bum...@gmail.com> wrote:

Dear Brian Will:
Great Blogging Sir,  keep it up I'm going to donate tomorrow.  I had started to learn Scala as  a first language but I'm thinking Clojure would be more my cup of tea I love the sound of lisp (McCarthy) ideas.  Especially the macro's with code returning code.  But I'm still very newbie.  I want to be sure that the Python and JavaScript belong in my learning  path which I imagine to be focused on Clojure.  Since the pigeon stuff feels very worth it to me, I suppose I'll just study the material all in order.  You think that's best?


Ethashamuddin Mohammed

unread,
Nov 9, 2014, 7:59:19 AM11/9/14
to codes...@googlegroups.com
Brian,
As you said, one could skip Java. Is it because every OOP paradigm real world application can be implemented with ease using Functional paradigm?
For me, OOP paradigm approach looks more close to real world.
Because Funtional programming is programming with pure functions without impurity/side-effects, which is not practical. for example, Any User interface layer is impure.


Regards
Sham

Brian Will

unread,
Nov 10, 2014, 9:20:58 PM11/10/14
to codes...@googlegroups.com
OOP and functional programming are orthogonal (meaning not mutually exclusive). You can do both at once. I just don't like how Java forces everything into the OOP mold. For superficial examples, OOP may seem like it models the real world, but in practice the way it models the world is very problematic and often more hindrance than help.

Even in functional languages you will have impure code, but if you're doing functional programming properly you can keep the amount of impure code relatively small. Interactive programs seem to be inherently about state change, so how best to write interactive programs in functional languages is not obvious. Honestly, this is not a question that has been fully answered yet, but recently there have been many promising ideas. For example, look into om/react and FRP (Functional Reactive Programming) with Rx (the Reactive Extensions--not to be confused with React).

--Brian

Ethashamuddin Mohammed

unread,
Nov 11, 2014, 2:05:22 AM11/11/14
to codes...@googlegroups.com
Hello Brian,

1)

For your point: "OOP and functional programming are orthogonal"
I agree(&feel) that FP and OOP working together makes more sense. I know many enterprise apps that would have some core components(sitting in the middle of arch) which are automata based(for example) which does not have any necessity of any impurity hetting injected. These components can be implemented using FP.

This is one good example,
which is simply a functional abstraction, but unnecessarily implemented as class and people call it as factory, so i named as 'Critterfactory' ):




2)

For your point: "Even in functional languages you will have impure code
Dr. Erik Meijer says, Functional programming is programming using pure functions like 'return x + 5;' rather than `return x + random();` for any x.
If you mean, Functional languages come up with new concepts that can handle impurity, that is different issue. It is just to make FP programmers happy instead of following the definition of functional programming.


Regards,
Sham



Reply all
Reply to author
Forward
0 new messages