Live data from Hacker News

Structure and Interpretation of Computer Programs – JavaScript Adaptation

sicp.comp.nus.edu.sg

171–180 of 188 posts

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#171

Earlier quoted context omitted.

No JS developer would do that. We all know that is global. Nowadays you use `const` or `let`. Any JS developer will have a linter that will tell them incase they somehow made that mistake.

That's all fine, but those are all workarounds for a design mistake in the language.

No it's a choice, apparently people can't have one.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#172

Earlier quoted context omitted.

Lisp in general is not the epitome of simplicity. Lisp-2s like Common Lisp add some cognitive load for those used to simpler languages (although Lisp-2s have their advantages). And of course, Lisps that include meta-object protocols (Flavours, Common Lisp again, &c.) deliver power, very elegantly, but for people unfamiliar with them, there is a learning curve to climb.

You're mistaking Lisp for a programming language. Which Lisp is not. Lisp is an idea (or rather a set of ideas), based on which different PLs can be implemented.

He said Lisps and Lisp-2s, so obviously knows this.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#173
post #49

Every now and then a great movie comes out. Then it gets its American remake. It's been proven you can put Al Pacino, Robert de Niro and Bruce Willis in any movie (with predictable results!). This is the book equivalent of an American remake for me. Is Javascript the new pseudocode? Honestly I'd rather be forced to learn a new language to understand a book than to read the book adapted to JS.

I just wanted to take 2 minutes to thank you personally for that comment. Honestly its amazing to find another person on this planet who has the exact same reaction to this idea ! I was going to type out what you said pretty much word for word, and then I'm reading what you wrote & I'm like, hey, who's this person who has read my mind & how're they doing that ? For a minute it was like, completely mindblowing.

I think most of the comments below are entirely missing the point & thinking of this as JS hatred. Its more about...cultural degradation...Pedestrianization. sicp was holy grail. you looked up to it, you cherished it, it was something few people have partaken of & it was nice that way. then gradually that got diluted over time. berkeley did the python3 gig & that itself was icky but now this is a whole new low. sicp in js ?! jesus. what next ? are we going to sicp in qbasic ? why not a sicp do-over in Visual Basic so all them fogey 90s microsoft-for-life developers! developers! developers! on win95 code up COM DLL interpreters in Notepad++ ? where does the madness end ?

sicp & scheme. buttons & bows. mac & cheese. bread & butter. things that go together.

Now, sicp & js is...is..what is it ? mustard & jam ?

you know what would be real cool ? sicp in J !!! Now that's a marriage made in heaven. if i was a rich vc i would happily fork over a million for a sicp in J effort. the apl family has so much to offer! now that i recall, there was actually an effort called aprol http://www.cs.trinity.edu/~jhowland/aprol.paper.pdf

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#174
post #162

Earlier quoted context omitted.

I have to use Javascript almost daily at work, I hate it. Up until a year ago or so I hadn't really had to use it much, I'm finding it so bad I'm seriously looking at how I can get into an alternate career. Working with JS is a profoundly miserable experience. I hate what this industry has become.

what were you using before JS, and in what domain is the work? Genuinely curious

Previously I was working on C# and SQL. I'm no fan of either of those, but at least with C# I can understand what the designers were thinking. Ideally I would be working in Clojure if it was up to me. Or Scala or F#.

Now it's Javascript as that is the code base our client uses. The client runs a number of production factories and have an internal web app that is mostly Javascript on the front end for monitoring these production lines.

It's made me angrily punch my desk and consider just quitting on the spot on a number of occasions.

I don't know how anyone tolerates using this day to day and doesn't want to jump off the roof. It's absolutely idiotic.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#175

Earlier quoted context omitted.

You're mistaking Lisp for a programming language. Which Lisp is not. Lisp is an idea (or rather a set of ideas), based on which different PLs can be implemented.

He said Lisps and Lisp-2s, so obviously knows this.

I'm perfectly aware of that. My point stands - using a concrete language to generalize over some abstract ideas might be confusing for those who are unfamiliar. In general, Lisp dialects strive for simplicity.

That is exactly the reason why Scheme was chosen for SICP.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#176

Earlier quoted context omitted.

He said Lisps and Lisp-2s, so obviously knows this.

I'm perfectly aware of that. My point stands - using a concrete language to generalize over some abstract ideas might be confusing for those who are unfamiliar. In general, Lisp dialects strive for simplicity. That is exactly the reason why Scheme was chosen for SICP.

Can we agree on this?

“Lisp dialects strive for elegance.”

Elegance is not always synonymous with simplicity. For example, Smalltalk’s use of Class and Metaclass is very elegant, but most programmers encountering this for the first time would not call it “simple.”

After they got over the hump and grok how the two things work together to serve as the foundation for Smalltalk’s OOP and allow programmers to alter Smalltalk’s OOP... Then the elegance emerges.

I think elegance is a measure of the simplicity of a tool relative to the complexity of the problem domain, whereas simplicity feels like a more absolute measure.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#177

Earlier quoted context omitted.

I'm perfectly aware of that. My point stands - using a concrete language to generalize over some abstract ideas might be confusing for those who are unfamiliar. In general, Lisp dialects strive for simplicity. That is exactly the reason why Scheme was chosen for SICP.

Can we agree on this? “Lisp dialects strive for elegance .” Elegance is not always synonymous with simplicity. For example, Smalltalk’s use of Class and Metaclass is very elegant, but most programmers encountering this for the first time would not call it “simple.” After they got over the hump and grok how the two things work together to serve as the foundation for Smalltalk’s OOP and allow programmers to alter Small…

Yes! This is probably the most accurate description. I take my hat off. Thank you!

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#178

Earlier quoted context omitted.

Lisp in general is not the epitome of simplicity. Lisp-2s like Common Lisp add some cognitive load for those used to simpler languages (although Lisp-2s have their advantages). And of course, Lisps that include meta-object protocols (Flavours, Common Lisp again, &c.) deliver power, very elegantly, but for people unfamiliar with them, there is a learning curve to climb.

You're mistaking Lisp for a programming language. Which Lisp is not. Lisp is an idea (or rather a set of ideas), based on which different PLs can be implemented.

McCarthy not only had an idea, he and his team a specific programming language. It even had a manual.

This is the Lisp I manual:

http://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Man...

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#179

Earlier quoted context omitted.

Eh, I actually like JS but I have definitely forgotten to add a "var" or "let" a few times, or sometimes I will do it correctly, get a bit overzealous with cutting, and accidentally remove the initial var declaration. I'm not saying that it breaks the language, but it definitely is irritating, especially if you're not using a linter.

I come from Lua so I'm used to declaring local variables with "local". Also, I like knowing which variables won't be reassigned (const), and which will (let).

Whilst I do find it irritating, I don't mind about the scope default so much, but I've certainly run into it (forgetting to specify) a lot.

Mostly because JS is not the only language that I'll be working with at a time, and if I'm dancing between three or four and they have similar syntax, then mistakes creep in.

Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation

#180
post #118

Earlier quoted context omitted.

That might change now. Someone might pick this up after completing a few JavaScript chapters in a JS specific book. I haven't read the book yet so I can't comment on the concepts, but based on your list it's a great resource for any newbie programmer, especially to those who are self taught like me. > What are you doing in the industry that familiar syntax is top priority? The question is more like: "Do I want to inv…

It is a great book for self-taught programmers. But the book is about programming language concepts and paradigms, and explores these though the development of multiple languages, interpreters and compilers. It is fundamental to the book that you have to learn a bunch of small languages. Scheme just makes it really easy to implement new languages.

That makes sense looking at it from this angle.
Post reply on HN