Live data from Hacker News

Steve Yegge's foreword to Joy of Clojure

manning.com

41–50 of 77 posts

Re: Steve Yegge's foreword to Joy of Clojure

#41
post #16

4.2 on the Rant-o-meter. "fashion-driven to a degree that would embarrass..." more Yegge yadda-yadda. Not sure if i prefer "class-five tropical storm" or a fire hydrant book shoved up. But those fire hydrant books, say, - Wampler / Payne's Scala book, or - Cesarini /Thompson's Erlang book - Syme/Granicz/Cisternino for F# - (dunno if real World Haskell is a fire hydrant; dunno which are scheme/common Lisp fire hydrant…

thanks for the list !

Re: Steve Yegge's foreword to Joy of Clojure

#42

Earlier quoted context omitted.

> Then it becomes clear that "I" is correct. No, it's not. Your sentences are correct, though, but you altered them from the original by adding a verb, thereby requiring the presence of a subject. The original sentence doesn't have a verb, therefore they need the object form. In other words: "You're stronger than I am" "You're stronger than me" This last sentence is the form used in the article.

Sigh. English grammar is hard. The word "than" is a conjunction (like "and"), but it can also be used prepositionally. Your second sentence is more colloquial American English, and it's not wrong, but it's also not wrong to keep the nominative case ("I"), as in your first example. If the verb in the subordinate clause is the same as in the main clause, it can be assumed. tl;dr Being a grammar nazi is a mug's game.

Ah, so you're a conjunctionist, uh? :-)

Conjunctions are supposed to connect whole sentences, and while "I am" is a complete sentence, "I" is not, which casts doubt on the correctness of "than I", thereby hinting that "than" in this case is a preposition, which mush therefore be followed by an object, e.g. "me".

It's a two century old debate, but I say we settle it right now, right here, on Hacker News, once and for all.

tl;dr: "than me" and "than I am" are correct. "than I" is not.

Re: Steve Yegge's foreword to Joy of Clojure

#43

It would be nice, when there is a thread on Clojure, if at least one person chimed in and gave an example of a problem where this lisp dialect on JVM helped them to solve a problem faster than using an existing language, like Python, C#, Java, or whatever. "Drinking through a fire hose", "understanding corner cases", and such are just euphemisms. Where's the beef?

I learned Clojure with Joy of Clojure, the early access version, coming from a Python background with very little practical experience in Java or Lisp. It's an excellent book.

The biggest advantage for my coding has actually been in my day-to-day Python work, where I'm much improved at designing functionally, parallelizing with multiprocessing, and building decorators and context functions to remove boilerplate code. So my Python is faster and cleaner; this is all thanks to being able to to think better about code design after working in Clojure.

For a good example of "why Clojure" take a look at Cascalog:

https://www.assembla.com/wiki/show/d9Z8_q-Omr35zteJe5cbLr

which leverages Hadoop/Cascading Java libraries and combines them with a Lisp-style custom query language.

Re: Steve Yegge's foreword to Joy of Clojure

#44
post #34
post #7

Just a word.. not that it is really relevant but I wanted to share this with fellow hackers. To encourage the Clojure community/language, I've pre-ordered the book Joy of Clojure on amazon. On the book's website, it is clearly stated that you also get a free pdf of the book before the release date . So, I was pretty enthusiastic about starting to read the book. But then, I find out that you only get the pdf if you or…

Yes, you're over-reacting. Your post sounds spiteful, and your threat of bad publicity sounds more like revenge than warning your fellow consumers. The way I see it, it would've been nice of them to give you a free MEAP copy, but it was well within their rights to refuse. Similarly, it's well within your rights to write a nasty blog post about how Manning is a bunch of meanies, but it'd be nice if you let it go, admi…

[deleted]

Re: Steve Yegge's foreword to Joy of Clojure

#45
post #34
post #7

Just a word.. not that it is really relevant but I wanted to share this with fellow hackers. To encourage the Clojure community/language, I've pre-ordered the book Joy of Clojure on amazon. On the book's website, it is clearly stated that you also get a free pdf of the book before the release date . So, I was pretty enthusiastic about starting to read the book. But then, I find out that you only get the pdf if you or…

Yes, you're over-reacting. Your post sounds spiteful, and your threat of bad publicity sounds more like revenge than warning your fellow consumers. The way I see it, it would've been nice of them to give you a free MEAP copy, but it was well within their rights to refuse. Similarly, it's well within your rights to write a nasty blog post about how Manning is a bunch of meanies, but it'd be nice if you let it go, admi…

Even with what happened to me, I can't help but be happy for you if it makes your live slightly-better ;)

I don't totally agree with the "nice from them to give it, nice from me to not post". I don't want to start philosophical debate about what is "right" or not, but in my sense, being "nice" is the right thing. As someone who truly try to be nice to everyone, it pisses me off when some people aren't like that with me and, in these situations, I feel like it's right for me to point them out.

And, in all honestly, it's not really that much about money or about the book, but more about the way it happened. I first sent an email basically saying

"Sorry, I made a mistake. I really want to read that book and didn't know about the manning vs amazon ordered thing. I'd be happy to blog about you being awesome if you can give me the pdf :D"

And, then, for them to reply: "Sorry, but that is the advantage of buying from manning only. If you need further assistance, blabha".

So, no explication, whatsoever, about a way to fix the solution. No: "Yeah, I understand it sucks. You know what you could do? Just cancel your order from amazon and order it at manning and I'd be pleased to send you the .pdf as soon as possible!".

I then sent them out an email saying that I was really unhappy about the situation and that they had lost me as a customer. They then replied saying: "We can't give you the pdf because we have no way to make sure you really bought the book. Even if you give us the amazon copy, you could order, give us the message from amazon, cancel and get a free pdf".

Well, you know what, I could get the free pdf illegaly without even contacting amazon or manning or anyone! It'd be way more simpler for me to download it in 30secs instead of ordering, sending proof, canceling. no?

So, finally, you say it would have been nice for me to not post about that story. Why would it have been nice? If someone is harsh with you, is "Saying nothing and letting him/her being an ass with you" nice? Nice for who? Why would I be nice to them?

So, yeah, when I'll read the book, I'm sure it will be a good read and I'll be happy to blog about it. (still linking to amazon, of course ;)

Re: Steve Yegge's foreword to Joy of Clojure

#47
post #20

Damn I miss that guy.

I kind of got the feeling that he's lost some of his writing mojo - I didn't feel like I was reading Yegge. Maybe it was just too short a read for style to be noticeable, but I really do wish that when he truly comes back to blogging (he announced that he was back, but hasn't blogged since that), he will be at full gas again.

Re: Steve Yegge's foreword to Joy of Clojure

#48

It would be nice, when there is a thread on Clojure, if at least one person chimed in and gave an example of a problem where this lisp dialect on JVM helped them to solve a problem faster than using an existing language, like Python, C#, Java, or whatever. "Drinking through a fire hose", "understanding corner cases", and such are just euphemisms. Where's the beef?

Here's an easy example. In some code I'm writing for my startup, I'm attempting to build the DAG that maximizes a scoring function. I permute through the candidates, and then run a scoring function. I perform greedy hill climbing , and return the DAG with the best score.

Since this is Clojure, and my DAG is build from Clojure's persistent data structures, iterating through all possible dags is easy. Clojure's "update" functions return new structs that share structure with the original, both the original structure and the new one exist at the same time. If I were using mutable data structures, I'd either have to deep copy a new DAG (slower), or write "rollback" code (buggy).

Additionally, because the Clojure data structures are purely functional, and Clojure includes tools for multi-threaded synchronization, parallelizing this algorithm is trivial.

A separate example: I have an existing function that can take several minutes to an hour to run. I wanted to add a button to the web UI that says "go run the function". Of course, you don't want multiple versions running at the same time, so you need to queue up the function call, and you don't want the user to queue up 5 calls when they only need 1. It took all of about 4 lines of clojure to make the function run in a separate thread and handle all of the above issues, and I'm guaranteed to never have multithreading bugs in that code.

In summary

* purely functional data structures greatly simply multi-threaded programming, and make some algorithms easier to write.

* Clojure is designed from the ground up to make multi-threading easy and painless. Many multi-threading tools are built into the language, and you don't have to deal with locking and deadlock unless you drop into the Java synchronization primitives.

Re: Steve Yegge's foreword to Joy of Clojure

#49

Earlier quoted context omitted.

The rule of thumb would be to fill in the implied verb and see which one makes sense. "So nobody could be more surprised than I was that a Lisp dialect ..." "So nobody could be more surprised than me was that a Lisp dialect ..." Then it becomes clear that "I" is correct.

> Then it becomes clear that "I" is correct. No, it's not. Your sentences are correct, though, but you altered them from the original by adding a verb, thereby requiring the presence of a subject. The original sentence doesn't have a verb, therefore they need the object form. In other words: "You're stronger than I am" "You're stronger than me" This last sentence is the form used in the article.

A pronoun in a comparison is nominative if it is the subject of a stated or understood verb.

  Sandy writes better than I. (Than I write.)
-- Strunk & White, 4th Edition, section 10.

I realize that grammar discussions are as boring as they come, but this is a case of someone learning English so it's important to be accurate.

Re: Steve Yegge's foreword to Joy of Clojure

#50
post #25
post #22

Earlier quoted context omitted.

Because you have a fever, and the only prescription is more monad? "Monad" is a loaded term and we didn't feel that talking about them in that way added any value to the book.

I don't know what you imply with fever, I am not a native english speaker, but I just paid for your book. I am also a beginner to functional programming and curious about what monads are and I have read about them without really understanding them. I was reading up on monads the last two weeks, these are the good sources I have found for Clojure: http://onclojure.com/2009/03/05/a-monad-tutorial-for-clojure... http://…

I don't know what you imply with fever

Let me help. The "fever" line is an offhand reference to this fairly famous piece of American culture:

http://en.wikipedia.org/wiki/More_cowbell

You should obviously not feel ashamed for missing the reference completely. ;)

Post reply on HN