Live data from Hacker News

Clojure for the Brave and True (2015)

braveclojure.com

51–60 of 106 posts

Re: Clojure for the Brave and True (2015)

#51
post #35

This book is painfully unfunny, filled with corny drawings and poorly structured with weak examples. I have the book, and I do not like it. I read it while learning, and returned to it only to realize what it did wrong, and why I learned nothing from it. It saddens me to see this post.

I would agree with you on unfunny and corny points, but I guess it is very much a personal taste issue. On the matter of substance I have found the book to be quite OK. Could you point to any specific examples of what it does "wrong"?

Coming at clojure as a java developer with a firm grasp of programing necessities, trying to bootstrap my awareness of the language, and re-apply existing experience and establish a frame of reference by reading this book alone was not possible. The book was not written for consumption by java developers.

Having been a novice programmer in the past, as a natural starting point, trying to start with clojure as a blank slate using this book as an introduction was also ineffective. When I tried to read the book and approach clojure on its own terms, as if I knew nothing and would not be aided by prior experience, the book's attempts at cuteness were tangential and distracting. It's examples did not build on each other.

This was one of the first books on the book shelf at the book store that I noticed as being specifically about clojure. After getting nothing out of the book, I went elsewhere and searched other books that gave me the information that I needed.

After gaining further awareness of the language, and establishing competancy through the use of other resources, I revisited the book, to figure out why it didn't help me.

One of the books that did bootstrap my core concepts was:

https://pragprog.com/book/btlang/seven-languages-in-seven-we...

In the first sentence it plainly states clojure is a lisp. In its forty pages on clojure, that book gave me most of what this book did not provide in 300 pages.

Knowing now that clojure is a lisp, I went and got Land of Lisp:

http://landoflisp.com

That is an example of a book with jokes that are clever and informative. I was able to approach lisp on its own terms in isolation with that book. That book's table of contents are properly structured for reference, rather than as a framework for layered jokes.

Only after I was able to bootstrap the fundamentals of lisp, and drawn parallels with java, was I able to see where this book goes wrong. It is not written for new or non developers. It is not written for developers familiar with other languages.

It's written for people who already know clojure, and might applreciate the cute inside jokes it makes, that you might get if you already know clojure. I don't envision anyone else gaining anything from it.

New developers are not informed of why data structures are useful and when. Things like primitive data types (booleans, integers, characters, strings) are not highlighted as foundational building blocks. Execution scoping is not properly addressed. Project structure and source code files trees, and namespacing are poorly explained. An entire chapter on emacs is inadequate for practical learning, and actual essentials for handling lisp or clojure, within an editor like emacs is beyond the scope of the book.

Based on these details, I have no use for the book as a reference manual, and I also cannot recommend it as starting point for first time programmers, or even inexperienced programmers searching for more learning exercises.

I can't even recommend it to other clojure developers for the jokes, because even the jokes are not funny.

Re: Clojure for the Brave and True (2015)

#52
Try spacemacs everyone, it's incredible, and the cider repl for clojure is the real deal. I was a long time vim user who tried to switch to emacs for a month but abandoned it for intelli j, and then atom for while. The spacebar mechanism to trigger the top level navigation that you drill into is an amazing mechanism for memorizing key short cuts (or not remembering and being able to use the menu to get what you need). spc p f inside a project has changed my life, I can't go back to a tree directory for navigation. Frees a lot of my working memory up.

Kind of a rant and off topic, but I think it's the bees knees and it's ace for clojure / common lisp / javascript / flow / anything else.

Re: Clojure for the Brave and True (2015)

#54
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 lose all the good parts of clojure when you go into the js runtime;"

Easy, develop one language, ship using another to the largest user base.

"You.. just like the syntax?"

Code as data, macros, immutability, concurrency, access to libraries.

Re: Clojure for the Brave and True (2015)

#55

Earlier quoted context omitted.

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'm biased, but I think ClojureScript is the best way to use the JavaScript platform today. ... JavaScript the platform may have it's warts, but ClojureScript is all beauty :)"

I've been slow to this, but yes this summarises why this particular language is good to use as a better JavaScript.

Re: Clojure for the Brave and True (2015)

#56
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…

If you're developing a web app, you can share code between the frontend and backend and still use the JVM on the backend.

Re: Clojure for the Brave and True (2015)

#57

Earlier quoted context omitted.

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…

I still teach in and prototype in Light Table, even though it is losing its "instarepl". Live evaluation visually matched up to an expression removes a lot of the cognitive load. Clojure stack traces are a big mental overhead.

Re: Clojure for the Brave and True (2015)

#58
The best Clojure book in my personal experience (and fwiw) is O'Reilly's "Clojure Programming" by Chas Emerick, Brian Carper, and Christophe Grand. Extremely clear writing, and very knowledgeable authors. I really enjoyed working through the book.

Due Disclosure:

1. I was an experienced Haskell and Java programmer, when I read the books, so I didn't have to go through any culture shocks wrt either Java or FP.

2. I have used Clojure only for toy projects. My 'daily use' tools are Haskell, C and Lua.

3. I am not in the audience targeted by 'cute cartoons and corny jokes' books. the _why style, nothing wrong with that, I just find most of this 'cute' style to be wasting my time. If it works for you that is awesome

4. I found the tooling around Clojure weird and unintuitive, especially Leiningen. Apparently there are better alternatives now

All that said, if I had to work on the JVM again, I'd use Clojure in a heartbeat. If I start a Clojure based company, Clojure Programming would be what I ask new employees who are unfamiliar with Clojure to work through.

I can't recommend the book enough. There was some talk of an updated edition, which I'd buy the instant it came out.

Re: Clojure for the Brave and True (2015)

#59

This was a good book. It would have been better if he had a more critical perspective of the language. As much as I love Rich Hickey and Clojure, the language does have pitfalls and rough edges, and this book was a little too starry-eyed to tackle them head-on like Crockford's book on JavaScript.

I agree.

I think this book and a lot of others fall into the _why's Poignant Guide to Ruby which i still totally don't understand the appeal of if you already know how to program.

I mean, _why is an interesting dude, who did a lot of interesting things, but (1) the whole 'chunky bacon' thing just is not my cup of bacon smoothie and (2) it was not really a great book for people who already know a lot about programming.

More broadly, I feel like _why's Poignant Guide to Ruby is an example of what I call John Bonhamization. John Bonham plays drums in Led Zeppelin. His whole style is crazy: rope-a-dope with the beat, playing mostly with the singer, playing "lead drums" and it's awesome! It's so good! It really, really works in the context of Led Zeppelin because John Bonham was a freak of nature and it just went along with their band in a magical way.

But it works for almost no one else ever. It's exactly the wrong thing to copy. It's like when people in Silicon Valley are like "well, Steve Jobs was rude as shit, I'LL be rude as shit and then *I'LL invent the next iPod!!" And then you have generation after generation of people trying to copy someone else's magic and not hitting it, when they'd've been better served trying to do the normal thing and, maybe, if they were lucky, finding their own magic.

I also think there's a bigger problem with people not writing books for people who know about programming. Odds are, if you are reading a book about a programming language, you already know a fuck ton about programming languages, but most programming language books fall into one of two categories: - Books that try to teach programming via the language in question. - Books about advanced techniques or exhaustive library documentation, cookbooks, etc. for people who already know the language.

The overwhelmingly most common case of someone reading a PL book (for a language that's not one of the world's ten most popular) is "I know a dozen other programming languages but don't know this one." Only fairly advanced programmers even bother reading books about Clojure, or D, or Rust, or Dylan, or Self, or Racket, or Julia...

Personally, I really like the Joy of Clojure. If I had to compare it to another PL book tough it would be the Matz Ruby book, not Crockford. It's pretty good though.

Re: Clojure for the Brave and True (2015)

#60
post #26

Earlier quoted context omitted.

Kind of reminds me of this: http://web.archive.org/web/20160304105922/http://www.lambdas... "Another feature about this guy is his low threshold of boredom. He'll pick up on a task and work frantically at it, accomplishing wonders in a short time and then get bored and drop it before its properly finished. He'll do nothing but strum his guitar and lie around in bed for several days after. That's also part of the patt…

That's a very nice essay—and unfortunately, I found myself described very accurately in it. I'm currently unemployed, sitting adjacent to a large pile of empty Indian food takeout bags, skimming a book on Abstract Algebra to better understand a paper on theory of deep neural networks—all of which has no connection to any lasting thing I'm doing aside from not working on a side project which happens to be at a local m…

An ADD diagnosis in my twenties and an Adderall prescription have done wonders for my depression (gone), unemployment (working), self esteem (good), ability to maintain interest in projects (more fun than video games), sleep schedule (regularish) and social life (I now actually initiate plans to do things with humans now and then).

Before consulting with professionals, I'd never considered this might be my problem because I've never been hyperactive... But after doing some reading, it seems that this sort of disorder can present in a variety of ways, only one or two of which include hyperactivity.

If you are reading abstract algebra books because you want to, maybe this would encourage you as much as it did me - many people with various presentations of ADD are diagnosed in grade school because they "hit the wall" - they reach a significant level of dysfunction re: attention span, etc. and people around them are able to notice. However, the more a student is able to rely on their own natural intelligence to carry them (rather an ability to study), the longer it can take for a problem to appear. I was a junior in a CS degree at an excellent university when I finally hit my wall and realized I had to change something or everything would fall apart.

Post reply on HN