Live data from Hacker News

Clojure for the Brave and True (2015)

braveclojure.com

41–50 of 106 posts

Re: Clojure for the Brave and True (2015)

#41

I don't know what's wrong with me but I gave Clojure 3 tries in the past and every time I try to actually build something (aside from 4clojure and solving hackerrank problems with it) I get lost in the tooling and just give up then fallback to familiar frameworks\languages. It just doesn't click with me and the whole leinengen\ring\compojure just seems weird and backhanded.

Mind if I ask what isn't clicking? I've had the exact opposite experience, and have found it very easy to incorporate different libraries. Do you have experience with other lisps? There's certainly a learning curve with clojure and its frameworks.

I think there is too much cognitive load in the first stages of learning Clojure for people who haven't had experience with functional programming, Lisps, Java, and Emacs on top of that if you are following Clojure for the Brave and True. So to barely get started you are tackling a new programming paradigm (functional), a new syntax (Lisp), getting error messages in Java, using tools that are complicated to setup and use.

I think a lot more people would take on learning the language if the day 1 experience was more friendly. Simple tooling, simple install, simple error messages. Something more like Racket offers. Then the initial learning could be more focused on functional programming, and the syntax, which is more rewarding.

Re: Clojure for the Brave and True (2015)

#42

I don't know what's wrong with me but I gave Clojure 3 tries in the past and every time I try to actually build something (aside from 4clojure and solving hackerrank problems with it) I get lost in the tooling and just give up then fallback to familiar frameworks\languages. It just doesn't click with me and the whole leinengen\ring\compojure just seems weird and backhanded.

For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully understand what all the fuss was about). A lot of people talk about when lisp clicks its an ahh-haa moment much like when your first programming language clicks and that is the best way to describe it. When it finally clicks it clicks but you have to put aside so much C rooted concepts and just keep beating Lisp concepts into your head until it clicks.

I once heard C described as learning programming in the constraint of time (e.g A happens first then B) where lisp executes in distance or space (e.g A happens over here and B happens over there). It's probably the best way to describe it but it does not click to somebody that is still thinking in time. It just seems weird and painful. Because you can't do things the way your brain thinks they should do them in the constrain of time.

It finally clicked for me when I build a simple file parser and I think that is a great project to use to understand a lisp.

Re: Clojure for the Brave and True (2015)

#44
post #42

I don't know what's wrong with me but I gave Clojure 3 tries in the past and every time I try to actually build something (aside from 4clojure and solving hackerrank problems with it) I get lost in the tooling and just give up then fallback to familiar frameworks\languages. It just doesn't click with me and the whole leinengen\ring\compojure just seems weird and backhanded.

For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully understand what all the fuss was about). A lot of people talk about when lisp clicks its an ahh-haa moment much like when your first programming language clicks and that is the best way to describe it. When it finally clicks it clicks but you have to put aside so muc…

Would you recommend I start playing around with Lisp before I do clojure?

Re: Clojure for the Brave and True (2015)

#45
post #42

Earlier quoted context omitted.

For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully understand what all the fuss was about). A lot of people talk about when lisp clicks its an ahh-haa moment much like when your first programming language clicks and that is the best way to describe it. When it finally clicks it clicks but you have to put aside so muc…

Would you recommend I start playing around with Lisp before I do clojure?

There's really no need. Most of the Clojure material out there doesn't assume or require Lisp knowledge. Unless you're interested in specifically learning Lisp, of course.

Re: Clojure for the Brave and True (2015)

#46
The entire second chapter is devoted to learning emacs. I find this to be a baffling editing decision.

"Thanks for reading this book, but before we cover what you came for, let's do this other completely orthogonal thing first."

Re: Clojure for the Brave and True (2015)

#47
post #5

Really appreciate the access to the book online http://www.braveclojure.com/clojure-for-the-brave-and-true/ more likely to buy products that you can see. This years challenge, learn two new languages. Clojure might be one of them. The reason? Lisp based and in spite of the fact it uses cough , Java (JVM), it runs on JavaScript. A better language to run/work with JavaScript. That is a good enough reason to learn and u…

I hear this a lot, but it totally mystifies me. You lose all the good parts of clojure when you go into the js runtime; stm, parallel processing, java interop, hot reloading, and it pulls in some really quite large js dependencies, and it's impossible to debug. Even console logging becomes a case of 'convert to readable object and log' using special helpers. What's the benefit? I don't see any meaningful reason to us…

I'm not sure when your last exposure to the ClojureScript ecosystem was, but almost nothing you mention is a problem as of 2016: debugging, hot reloading, large JS deps, etc.

I'm biased, but I think ClojureScript is the best way to use the JavaScript platform today. Awesome core library, consistent build process, best of breed tooling, persistent data structures, flexible syntax (JSX is madness compared to hiccups); I could go on.

JavaScript the platform may have it's warts, but ClojureScript is all beauty :)

Re: Clojure for the Brave and True (2015)

#48
post #46

The entire second chapter is devoted to learning emacs. I find this to be a baffling editing decision. "Thanks for reading this book, but before we cover what you came for, let's do this other completely orthogonal thing first."

I totally agree the overhead of learning Emacs is orthogonal from learning Lisp. IMO, it's a shame that there is such a strong association between that tooling ecosystem and Lisp languages. I think it pushes a lot of newcomers away from the learning process.

One of the design goals of Parinfer[1] is to help reduce the cognitive load of Lisp syntax for newcomers. Hopefully more introductory texts adopt it as part of their environment setup.

[1]:https://shaunlebron.github.io/parinfer/

Re: Clojure for the Brave and True (2015)

#49
post #5

Really appreciate the access to the book online http://www.braveclojure.com/clojure-for-the-brave-and-true/ more likely to buy products that you can see. This years challenge, learn two new languages. Clojure might be one of them. The reason? Lisp based and in spite of the fact it uses cough , Java (JVM), it runs on JavaScript. A better language to run/work with JavaScript. That is a good enough reason to learn and u…

I hear this a lot, but it totally mystifies me. You lose all the good parts of clojure when you go into the js runtime; stm, parallel processing, java interop, hot reloading, and it pulls in some really quite large js dependencies, and it's impossible to debug. Even console logging becomes a case of 'convert to readable object and log' using special helpers. What's the benefit? I don't see any meaningful reason to us…

You don't lose hot reloading. Use figwheel.

Re: Clojure for the Brave and True (2015)

#50
post #42

Earlier quoted context omitted.

For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully understand what all the fuss was about). A lot of people talk about when lisp clicks its an ahh-haa moment much like when your first programming language clicks and that is the best way to describe it. When it finally clicks it clicks but you have to put aside so muc…

Would you recommend I start playing around with Lisp before I do clojure?

either or, Clojure has more of a focus on functional programming and immutability than some other lisp implementations but honestly they don't really get in the way and most lisp lean that way anyways. Personally I would say stick to Clojure or CL as there is a wealth of information and libs available for those two. Others will differ but once you know one it's a matter of style and conventions to adopt a different implementation (until you get under the hood)
Post reply on HN