Live data from Hacker News

Blunt and necessary review of programming language books.

drdobbs.com

81–90 of 112 posts

Re: Blunt and necessary review of programming language books.

#81
post #13
post #2

I agree 100%. K&R is the standard all authors should strive for. The length of these books is also our fault. Bigger books sell better. I hope there is a backlash brewing. K&R, Little Schemer, Smalltalk Best Practice Patterns, were all great small books.

I found Little Schemer to be too elementary. I feel comfortable with lexical scoping and recursion, I was actually looking for more meat (let vs. let* vs. letrec). I'd recommend "Teach Yourself Scheme in Fixnum Days".

'The Little Schemer' is not intended to be a tutorial on Scheme. To quote the preface, "The goal of this book is to teach the reader to think recursively". Similarly, the other books in the series have well-defined goals.

Re: Blunt and necessary review of programming language books.

#82

I'd been meaning to pick up a new language, and a few weeks ago I pared down my list of choices to two languages: Scala and Go. Then I went looking for "official" tutorials/references. For Scala I found Scala by Example , a 145 page PDF that comes with the Scala docs. For Go, I found the Go tutorial -- a very short tutorial with a bunch of examples. I picked Go because, seriously, I don't have time to read 145 pages…

I'm the exact opposite. I hate to "tinker" around with languages or frameworks. I hate the feeling of not knowing what I'm doing and have to google for every bit of progress.

I think this is where modern trends in programming language books, and by extension language learners who enable these books, gets it wrong. Everyone is trying to teach you the bare minimum to get started, and they leave you to struggle with the rest. This is a big reason why there are so many programmers who barely know anything below the surface of the language they've been using for years.

I like taking a fairly broad tour of a language before digging in. I like knowing what the essence of the language is. I like knowing whats possible and what isn't. I hate the feeling of being blind, feeling around the room for the door knob to get me into the next room where the process is repeated.

Re: Blunt and necessary review of programming language books.

#83
post #13
post #2

I agree 100%. K&R is the standard all authors should strive for. The length of these books is also our fault. Bigger books sell better. I hope there is a backlash brewing. K&R, Little Schemer, Smalltalk Best Practice Patterns, were all great small books.

I found Little Schemer to be too elementary. I feel comfortable with lexical scoping and recursion, I was actually looking for more meat (let vs. let* vs. letrec). I'd recommend "Teach Yourself Scheme in Fixnum Days".

Did you take a look at The Seasoned Schemer, the sequel to the Little Schemer? It might have been better suited to you.

Re: Blunt and necessary review of programming language books.

#84
post #44

Earlier quoted context omitted.

Every time I try to learn Scala I get the feeling that it's too big.

It struck me the other day that I would love a "Scala: The Good Parts". Wouldn't it be great if there was a small, powerful kernel in there, somewhere, and someone explained it...

While definitely not small, the stairway book, "Programming in Scala" by Odersky, mentioned in the article, is an excellent tutorial style book. The second edition was just released in January.

Re: Blunt and necessary review of programming language books.

#85
post #41
post #21

Part of this stems from a pre-internet mentality. "Of course I need a full function reference! Where else would I find it?" Now you just Google it. A thinner book can leave the reference to the search engines, but for some reason this older way has become entrenched.

Yes, but that attitude is not dead: how many projects have you come across where the only documentation is the JavaDoc or equivalent? It allows someone to tick the box that yes the documentation is done, with minimal effort, but it's not that useful to the next programmer, who really needs sample code, oh, I get this from that, and this from there, then I feed them both to the function...

JavaDoc can be good, there's nothing to stop you including short usage examples for a class. Not that it's that common...

Re: Blunt and necessary review of programming language books.

#86
post #44

Earlier quoted context omitted.

Every time I try to learn Scala I get the feeling that it's too big.

It struck me the other day that I would love a "Scala: The Good Parts". Wouldn't it be great if there was a small, powerful kernel in there, somewhere, and someone explained it...

Even if there were such a book, you'd have to deal with other people's code that used the "Bad Parts" of Scala. I dread deciphering clever Scala one-liners.

Re: Blunt and necessary review of programming language books.

#87

Earlier quoted context omitted.

The first chapter of K&R is a tutorial introduction, it explains the entire workings of the C language for someone familiar to programming in a small number of pages(It misses pointers, but it covers a lot). Every book on a language needs this. The best I have seen was in a python book where the author stopped and told the reader enough had been learnt to write any program. The closet to the K&R model I have seen is…

The best I have seen was in a python book where the author stopped and told the reader enough had been learnt to write any program. You must be referring to Think Python: http://www.greenteapress.com/thinkpython/thinkpython.html

Think Python is a fantastic intro-programming text. After mucking about with bits of code for a couple of years, I picked up Downey's previous version of the book, and that's when I became a programmer.

I highly recommend it to the handful of HN readers who are in need of an intro text.

Re: Blunt and necessary review of programming language books.

#88

I've been begging publishers to let me have a go at a ~100 page F# tutorial book, but they've told me again and again that books without a wide enough profile on the shelf just won't sell. It's sad really. I hope ePublishing fixes this.

It's not worth the trouble to go through a publisher anymore. You're not going to make any money on a tech book no matter how popular it is. The smart move in the modern age is to work on the book in the open with a blog and then self publish an ebook. If you like you can even sell it or ask for donations.

[deleted]

Re: Blunt and necessary review of programming language books.

#89

I'd been meaning to pick up a new language, and a few weeks ago I pared down my list of choices to two languages: Scala and Go. Then I went looking for "official" tutorials/references. For Scala I found Scala by Example , a 145 page PDF that comes with the Scala docs. For Go, I found the Go tutorial -- a very short tutorial with a bunch of examples. I picked Go because, seriously, I don't have time to read 145 pages…

> I picked Go because, seriously, I don't have time to read 145 pages just to get started.

You don't need to read 145 pages to get started. Most people I've talked to only know 20-30% of Scala. But they feel that they already know enough to benefit enormously. Most of the Scala I know comes from the Tour of Scala, which consists of succinct, bite-size explanations of its main features.

On a related note, Scala is a big language because it is a dual language: It has features that are intended to facilitate application development, but it also has features that are intended for framework writers. These features are overkill for you if you're an application writer, and you don't have to learn them, but they are a godsend if you're writing a framework. This is evidenced by the fact that many features that are traditionally done in the compiler of other languages are implemented in the library!

Re: Blunt and necessary review of programming language books.

#90
post #89

I'd been meaning to pick up a new language, and a few weeks ago I pared down my list of choices to two languages: Scala and Go. Then I went looking for "official" tutorials/references. For Scala I found Scala by Example , a 145 page PDF that comes with the Scala docs. For Go, I found the Go tutorial -- a very short tutorial with a bunch of examples. I picked Go because, seriously, I don't have time to read 145 pages…

> I picked Go because, seriously, I don't have time to read 145 pages just to get started. You don't need to read 145 pages to get started. Most people I've talked to only know 20-30% of Scala. But they feel that they already know enough to benefit enormously. Most of the Scala I know comes from the Tour of Scala, which consists of succinct, bite-size explanations of its main features. On a related note, Scala is a b…

IMO, Scala is a tasteful collection of the best features from a bunch of different languages, including ML, Haskell, Smalltalk, and Clojure. [1] If I taught a survey course of programming language features, such as Stanford's CS 242, Scala is the language I would use to teach it.

[1] And they are not transplanted unmodified; often, since Scala has the advantage of hindsight, they are often modified to be even better!

Post reply on HN