Earlier quoted context omitted.
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...
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.
Programming and Programming Languages
31–40 of 68 posts
Re: Programming and Programming Languages
#32I like their definition of an object: "The simplest notion of an object—pretty much the only thing everyone who talks about objects agrees about—is that an object is: a value, that maps names to stuff: either other values or “methods”." (I don't want to start a debate or anything, just thought it was a practical, minimal definition)
Minimal definition: "behaviour and state".
Re: Programming and Programming Languages
#33Earlier quoted context omitted.
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.
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 (…
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
#34Re: Programming and Programming Languages
#35Earlier quoted context omitted.
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...
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,…
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
#36Re: Programming and Programming Languages
#37Earlier quoted context omitted.
PLAI is almost completely subsumed into PAPL. With each revision, though, the PLAI material gets reorganized and distributed across PAPL, so at some point it will no longer be an identifiable subset. The idea is that programming inspires new programming languages, while programming languages help us make sense of programs. Therefore, the two should be tightly intertwined. The first edition of PLAI tried one way to ac…
Shriram, thank you for the PLAI and I'm looking forward to take a look on PAPL as well. But one thing I don't like - types (static typing) for the implementation language is an afterthought in your books. This happened to PLAI, and later it switched to "plai-typed" language (which was a good move). Now we have PAPL, but again using a dynamic language. Although, as I can see, static typing is a planned feature for Pyr…
I don't know why you say types are an afterthought. HtDP teaches a profoundly _typed_ discipline of programming. The datatype mechanism in PLAI continues this with more enforcement. And plai-typed is anything _but_ an "afterthought", right?
PAPL is written as if types work. We have an internal type-checker that I've been using off-and-on this semester (but it's still in development). As soon as it's ready, all programs in the book will pass through it and the book will be almost completely typed.
I'm not going to get into an argument here about whether it is better to start with static types. Though I somewhat share @noelwelsh's viewpoint, I think the full situation is far more complex and demands actual research — HCI research — as opposed to just matters of opinion (including mine).
Re: Programming and Programming Languages
#38Earlier quoted context omitted.
PLAI is almost completely subsumed into PAPL. With each revision, though, the PLAI material gets reorganized and distributed across PAPL, so at some point it will no longer be an identifiable subset. The idea is that programming inspires new programming languages, while programming languages help us make sense of programs. Therefore, the two should be tightly intertwined. The first edition of PLAI tried one way to ac…
does this also subsume HtDP?
Re: Programming and Programming Languages
#39Earlier quoted context omitted.
Minimal definition: "behaviour and state".
It's surprising to me how few developers, even hardcore OO developers, are able to just give this minimal definition. It's the core of the entire paradigm, that an object is state and behaviour on that state, and yet everybody always gives some convoluted, hardly understandable-to-a-beginner definition. If you're going to be teaching people, "behaviour and state" should be your starting point, not "a value that maps…