Live data from Hacker News

Programming and Programming Languages

papl.cs.brown.edu

21–30 of 68 posts

Re: Programming and Programming Languages

#21

Earlier quoted context omitted.

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.

@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. (-:

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

#22
post #16

@shriramkmurthi may I know what license PLAI and PAPL are released under? I couldn't find it on the linked page.

PLAI's license is CC BY-NC-SA (3.0 US). I have not yet decided for sure with PAPL. At any rate, I'm committed to having a full copy of the book available for free to all, as is also true of HtDP (we were one of the pioneers in this space) and PLAI (which has even more free/commercial options than HtDP). You may assume at least a CC BY-NC-ND, which lets typical users have at it right away.

Could you please change the body text color to something closer to #000, if not #000 itself? The current contrast ratio fails WAG AA and AAA standards for normal sized text.

Re: Programming and Programming Languages

#23
post #4

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.

The paper describes it; it's only 14 pages and is quite readable.

Re: Programming and Programming Languages

#24

His other book was PLAI which was pretty cool: http://cs.brown.edu/courses/cs173/2012/book/ I worked through it for a class, and I distinctly remember a moment where I thought "what the fuck - did I just write a working type inferencer?". It has a great way of simplifying things to the point where adding a complex new language feature isn't a distant theoretical proposition, it seems like a simple and straightforward…

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 Pyret. So I suppose PAPL will switch to static typing in the future, but I think it would be better (for readers/learners, novice programmers) to start with (static) types in the first place.

EDIT: just skimmed through the text, you seem to be using "type-like annotations" mentioned in Pyret docs.

Another thing to note - Pyret is much more readable/enjoyable (and I guess writable :)) than the previous lisp languages you've used. Thanks!

Re: Programming and Programming Languages

#25
post #4

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.

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

#26
post #24

Earlier 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…

My understanding is that it is useful for beginners to run their programs, complete with type errors, so they can see where they fail. Debugging type errors if difficult without a strong model of evaluation and type inference. Since beginners are learning these very things, type errors can be very confusing to them and hinder learning.

I'm sure Shriram will correct me if I'm wrong.

Re: Programming and Programming Languages

#27
I 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)

Re: Programming and Programming Languages

#28

I 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

#29
post #25

Earlier 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.

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 pow…

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

#30

His other book was PLAI which was pretty cool: http://cs.brown.edu/courses/cs173/2012/book/ I worked through it for a class, and I distinctly remember a moment where I thought "what the fuck - did I just write a working type inferencer?". It has a great way of simplifying things to the point where adding a complex new language feature isn't a distant theoretical proposition, it seems like a simple and straightforward…

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?
Post reply on HN