News for hackers. Stuff that matters.
Re:Programming and Programming Languages by yzzxy on Sunday December 14, 2014 @10:30PM (#8750553)
At first glance this book appears in many ways to be a spiritual successor to SICP... does this hold up for anyone who has read it more throughly?
Re:Programming and Programming Languages by pgbovine on Sunday December 14, 2014 @10:59PM (#8750614)
More like a spiritual successor to HtDP, which is somewhat opposed to the SICP philosophy, even though both use Scheme variants:

http://cs.brown.edu/~sk/Publications/Papers/Published/fffk-h...

Re:Programming and Programming Languages by yzzxy on Sunday December 14, 2014 @11:37PM (#8750687)
Interesting...

It seems to me that FP is having quite a renaissance recently, which could limit the relevance of that paper's contentions today. I'm also seeing quite a backlash against OOP and especially OOP as the One True Paradigm that it was pushed as in throughout the 00s - this can be seen not only in FP language growth but also in the design of other new languages like Go that lack many OOP features.

Honestly, I would argue for the "Never Compromise" route for undergraduate regardless of current trends. I've found firsthand that mid-to-high-achieving high school students are able to grep SICP just fine, even if they haven't been introduced to calculus as of yet. But I haven't read HtDP or PPL yet, so I can't really pass judgement on which book would be better.

Re:Programming and Programming Languages by shriramkmurthi on Sunday December 14, 2014 @11:43PM (#8750697)
The paper's premise is a broad one. Its authors are hard-core functional programmers, but believe that eventually students have to learn something beyond just pure FP. Too often, introductory curricula are designed with a "screw what happens later" attitude, which ends up being self-defeating. The paper's point is that they should instead provide a gradual progression, and that this progression should be over at least two different time-scales.
Re:Programming and Programming Languages by dagw on Monday December 15, 2014 @08:01AM (#8751718)
It seems to me that FP is having quite a renaissance recently

It seems that FP is always having a renaissance. I distinctly recall lots of people (including me) talking in 2001-2002 about the big FP renaissance just round corner. I also recall a few old school lisper rolling their eyes at us and saying that they where saying the same thing back in the early-mid 80's.

Re:Programming and Programming Languages by shriramkmurthi on Monday December 15, 2014 @09:35AM (#8752123)
Doesn't mean it's not true. There is now hard-core industrial use growing, which has never quite been true in the past two decades. Not to mention, mainstream languages have mostly all now accepted the starting premise of FP (closures as first-class values). That's the first step; there are many more to come.

Old Lispers' eyes are stuck in a permanent roll position, like the Agena-Gemini 8 dock.

Re:Programming and Programming Languages by taeric on Sunday December 14, 2014 @11:38PM (#8750688)
I am curious what evidence there is that SICP is responsible for "[many introductory] courses quickly disappeared again due to shortcomings of the book and the whimsies of Scheme."
Re:Programming and Programming Languages by shriramkmurthi on Sunday December 14, 2014 @11:41PM (#8750691)
It's a comment based on our view of the historical record, having been present during the rise and fall of SICP. It is not a formal evidence-based claim.
Re:Programming and Programming Languages by taeric on Sunday December 14, 2014 @11:56PM (#8750728)
Fair enough. And I hasten to add that I do not have any counter evidence. I think I heard rumors of the book when I was at gatech in the late 90s. Never took a course in that book, though. I wasn't in CS. CmpE was an interesting beast back then.

It seemed that the money was heavily pushing Java and that most curriculum immediately jumped to where they thought future money was. Sometimes they would back off and try to get back to a more theoretical or instruction based methodology, but would always hedge with a language that was seen as friendly to industry.

Re:Programming and Programming Languages by shriramkmurthi on Sunday December 14, 2014 @11:58PM (#8750732)
@taeric, by "the book" do you mean SICP or HtDP? HtDP was used for a few years at Georgia Tech, and then that stopped. There are various views on why. (-:
Re:Programming and Programming Languages by taeric on Monday December 15, 2014 @12:03AM (#8750749)
Apologies for the ambiguous pronoun. Sadly, I wouldn't have known one from the other back then. When I found SICP, some of the things I recalled hearing from CS friends made sense. So, I assumed that was the book.

Curious if there are any expansions on why it was dropped.

Re:Programming and Programming Languages by krat0sprakhar on Sunday December 14, 2014 @11:09PM (#8750633)
How is HtDP opposed to the SICP philosophy? From my reading both come off as espousing the more or less same ideas for building programs.
Re:Programming and Programming Languages by nhjk on Monday December 15, 2014 @03:31AM (#8751116)
Here's a good quote from the paper "... sicp suffers from a serious flaw. While the course briefly explains programming as the definition of some recursive procedures, it does not discuss how programmers determine which procedures are needed or how to organize these procedures. While it explains that programs benefit from functions as first-class values, it does not show how programmers discover the need for this power. While SICP introduces the idea that programs should use abstraction layers, it never mentions how or when programmers should introduce such layers of abstraction. Finally, while the book discusses the pros and cons of stateful modularity versus stream-based modularity, it does so without explaining how to recognize situations in which one is more useful than the other."
Re:Programming and Programming Languages by agumonkey on Monday December 15, 2014 @06:18AM (#8751454)
True, having discovered SICP while deep in college, I already went through many languages, paradigms and such, giving ground to SICP ideas. For a newcomer it might be pure fluff.
Re:Programming and Programming Languages by agumonkey on Monday December 15, 2014 @06:27AM (#8751470)
One is that SICP had a fair amount of math (I believe caused by Electrical Engineer authors), so while you're trying to grok recursive logic, you also have to deal with arithmetic invariants (convergence with reals). HtDP had much less. Based on https://www.coursera.org/course/programdesign (which is inspired by HtDP) you only deal with simple data and logic but focus on regular and precise analysis of ad-hoc types (at first) to derive solid program structures. I felt anyone could follow the ideas in it.
Re:Programming and Programming Languages by shriramkmurthi on Monday December 15, 2014 @08:50AM (#8751890)
SICP and HtDP are two very different books that have the unfortunate feature of using somewhat similar languages (which are syntactically very similar, hence causing the confusion).

I was recently re-reading SICP, and was amazed by how cleverly structured it is. It somehow goes for an entire fifth of a book without any data structure at all. It retrospect, I consider it something of a virtuoso achievement to have pulled that off while writing a book that is utterly compelling on every page. However, the only way it can achieve that is by focusing _entirely_ on what we call "domain knowledge". As the kind of person who has always loved the play of numbers, I was immersed fully and barely noticed what was happening when I read it as a student. To most students, however, this material is both uninteresting and difficult, and difficult material that isn't even relevant to the domain is especially uncompellling.

Of course, diving into data early means you need a lot more help structuring your programs. HtDP focuses precisely on that problem, _using_ the data to drive the structure (inspired by earlier efforts such as The Little Lisper). And this highlights exactly how very different the two books are. It is much like the comment about the US and UK: "two countries separated by a common language". The coincidence of using (almost) the same language in both books has, sadly, created a great deal of confusion on this point.

Re:Programming and Programming Languages by agumonkey on Monday December 15, 2014 @09:18AM (#8752033)
Wasn't HtDP written to address issues in SICP ? completely or partially ? I always felt that HtDP was sharing more than a language to express programs in.

> It somehow goes for an entire fifth of a book without any data structure at all

Funny, in the MOOC I linked, from what I remember, they spent a lot of time writing programs without compound data types too. Only by having naive conventions (item0, item1,...) to let us recognize the logic behind complex type in the problem data and let it sink in our minds. I don't know how close to the book this was though so I don't wanna give off conclusions.

Re:Programming and Programming Languages by shriramkmurthi on Monday December 15, 2014 @09:33AM (#8752110)
> Wasn't HtDP written to address issues in SICP ? completely or partially ?

Absolutely. (Though that wording suggests a stronger causal link than was really present. It was written to address a need, a need that happened to not be addressed by SICP.)

Re:Programming and Programming Languages by hga on Monday December 15, 2014 @07:20AM (#8751603)
One is that SICP had a fair amount of math (I believe caused by Electrical Engineer authors)

Errr, not really, both are CS professors, although Sussman is very interested in EE and teaching it.

Rather, it was written for MIT students, who arrive at a bare minimum ready to learn the calculus, and taking the SICP course 6.001 was strongly discouraged during your first term (it's a lot of work, even for students who know programming and Lisp).

And the core curriculum 6.001-4 that all EECS students had to take back then included two math not optional EE courses. MIT's vision of what a CS student should know includes a lot of EE, which is common in department that started from EE (e.g. UC Berkeley), and less so in ones that didn't, e.g. that started from Math.

That said, most any MIT student could take 6.001 and benefit, the use of math is simply based on the fact that it was a common body of stuff all the students taking 6.001 would know.

Re:Programming and Programming Languages by wtbob on Monday December 15, 2014 @01:02AM (#8750862)
The paper describes it; it's only 14 pages and is quite readable.
Re:Programming and Programming Languages by shriramkmurthi on Sunday December 14, 2014 @11:41PM (#8750690)
What @pgbovine said. (-:
Re:Programming and Programming Languages by pgbovine on Sunday December 14, 2014 @11:15PM (#8750645)
read the linked paper :)
Re:Programming and Programming Languages by shriramkmurthi on Sunday December 14, 2014 @11:45PM (#8750699)
With all due respect to @pgbovine, it is intended as a spiritual successor to both, but is also its own thing. It is being built atop the design methodology of HtDP, which SICP sorely lacks. It has some topical overlap with SICP. But it has an entire second textbook contained in there about the study of programming languages, which neither SICP nor HtDP has. Hence the title: P _and_ PL. It's two books in one, but (increasingly) intertwined.
Re:Programming and Programming Languages by acbart on Sunday December 14, 2014 @10:55PM (#8750603)
The author is one of the big people in the Racket curriculum.
Re:Programming and Programming Languages by moron4hire on Monday December 15, 2014 @09:09AM (#8751983)
So that is why this looks like PLT's documentation format.
Re:Programming and Programming Languages by shriramkmurthi on Monday December 15, 2014 @09:41AM (#8752156)
Yep, it's written in Scribble [http://docs.racket-lang.org/scribble/]. Which is magical for writing substantial documents. You notice the build time for your book has crept up to 30 seconds because you've forgotten to run the separate compiler in a while. You do it — which compiles all the chapters (taking a little over 30 seconds) — after which subsequent compiles are back down to 4 seconds. Good luck getting that with most other writing tools.