Live data from Hacker News

SICP: JavaScript Edition available for pre-order

mitpress.mit.edu

81–90 of 123 posts

Re: SICP: JavaScript Edition available for pre-order

#81

I have a copy of SICP right next to me, and it's one of my favorite computer science books. I'm not sure how I feel about this javascript edition though...

I was doing some Javascript coding today. A false != x test failed for a zero-valued x; had to make it !==. WTF? I never want false and 0 to be other than different objects. Almost every twist and turn in this language is an imbecillic clusterfuck. I had one instance of a if (foo.bar = 0) typo; no warning from the implementation. Why do we want stupid C mistakes in a higher level language, without the C fixes for the…

Once you learn the quirks of JavaScript you get used to it. Also you should not use forEach in JS, take a quick look at this page. https://phoenix35.js.org/good-practices.html

Re: SICP: JavaScript Edition available for pre-order

#82
post #17

Note to the unaware, both* this version and the classic (Scheme) version are Creative Commons-licensed and freely available online. (*edit: thanks to keithwinstein for enlightening me -- I wrongly thought it was just the one. The publisher's site doesn't advertise this at all!) https://sicp.sourceacademy.org/ (JS version) https://mitpress.mit.edu/sites/default/files/sicp/index.html (1984 classic)

https://sicp.sourceacademy.org/ brings me to something called "Comparison Edition". I was looking for a straight JS version with editable/executable code, and found it at the link named "Interactive SICP JS" (which takes you to https://sourceacademy.org/sicpjs/index ) The in-line editor is a bit intrusive (fills up most of my screen, unlike say eloquentjavascript.net) but it's still pretty neat to have run-able examp…

Is this version the same as the one that's going to be released on paperback?

Re: SICP: JavaScript Edition available for pre-order

#83
post #19

Earlier quoted context omitted.

I agree in contrast to the previous reply I made. I still play with Shen, and I would love to see SICP in Shen, since Shen has ben implemented for many languages including JavaScript, but it's still a Lisp. I should try my hand at it if I really want to learn Shen. I am also an APL/J fan and this footnote in SICP rings true: [15] Richard Waters (1979) developed a program that automatically analyzes traditional Fortra…

> [15] Richard Waters (1979) developed a program that automatically analyzes traditional Fortran programs Anyone have a PDF link to a paper about this Fortran analyzer?

https://dspace.mit.edu/handle/1721.1/5777

Re: SICP: JavaScript Edition available for pre-order

#84
post #73
post #56

Earlier quoted context omitted.

It won't take longer than 15 minutes to get racket installed, and that's being extremely conservative. If you can't spend 15 minutes getting setup done, why would you finish a dense book on the theory of computation?

The scheme version was aimed at students who might never have touched a computer before. Why should this book be different, though these days aimed at students who’d only operated a computer before.

When the Scheme version was written, all the programming languages were equally weird to incoming students. So Scheme was as good a starting point as any other.

Today, Scheme is still weird, but JavaScript is familiar. It's something the incoming students are at least likely to have heard of. So it makes more sense to ease them into the material with the familiar rather than drop them into something weird.

Re: SICP: JavaScript Edition available for pre-order

#86
post #58
post #8

First they replace Scheme with Python for their CS classes, and now SICP in JavaScript! Isn't this another portent from Nostradamus about the coming of the end of the world?

It's not the worst thing to happen, but for the love of god, couldn't they have at least chosen an expression oriented language?! Even Ruby for god's sakes would've been better than JS!

Ruby’s awesome. This would have slapped in Ruby.

Re: SICP: JavaScript Edition available for pre-order

#87
post #75
post #71

Earlier quoted context omitted.

I've really noticed that people rage that Javascript and npm removed so much of a barrier to tech. Try publishing a dependency for Java. Now try doing it for JS. Everyone was able to do highly concurrent workloads. Something that was extremely difficult before Javascript. It just smells of elitism to me. It's a wonderful language that brought the async await system to everyone.

You mean it's super hard in java? All they have is maven with hard links into eclipse from my observation. Npm is light years ahead in execution and usage. Python distribution is.... interesting with eggs & poetry

I agree. I don't find it's hard in Java.

But with that being said, in the JavaScript world, the tooling treat developers more like "users" rather than "engineers". For example:

- Many documentations are cohesive, well-thought, and well main-maintained.

- There are usually handy shortcuts for things like `npx` or `npm i `

- And many other improvements strive for developers' life-quality, such as call back-end and databases with strong typing, but without messy code generator at the same time.

Meanwhile, I have worked with Java and C# for quite a while, those documentations are so daunting, they feel like math textbooks from the Soviet Union. And companies like Microsoft never bother to fix their blur resolutions for SQL Server Management Studio and such. It's just like nobody cares, and they make working really feels like screwing codes on production lines.

Re: SICP: JavaScript Edition available for pre-order

#88

I have a copy of SICP right next to me, and it's one of my favorite computer science books. I'm not sure how I feel about this javascript edition though...

I was doing some Javascript coding today. A false != x test failed for a zero-valued x; had to make it !==. WTF? I never want false and 0 to be other than different objects. Almost every twist and turn in this language is an imbecillic clusterfuck. I had one instance of a if (foo.bar = 0) typo; no warning from the implementation. Why do we want stupid C mistakes in a higher level language, without the C fixes for the…

I feel your pain, but these mostly fall into the same category of frustrations you'd get when doing something like switching operating systems, e.g. going from Windows to Mac or vice versa. You run into all kinds of things that seem stupid and you're bombarded with things that should "just work" and seem not to.

But, they disappear and are mostly non-issues once you use the alternate system/language regularly for a while. Some I think you will come to see as benefits, sensible, or find that there are trivial workarounds.

One quick improvement. The more commonly used contemporary syntax in JS for something like your list.forEach example is: `list.forEach((item, i) => ...)` —writing out the full `function` keyword is indeed an eyesore :)

Re: SICP: JavaScript Edition available for pre-order

#89

Earlier quoted context omitted.

I believe they are both CC-licensed. See https://sicp.sourceacademy.org/ A ton of work seems to have gone into this -- they have a meta-circular evaluator in JavaScript (and it's not that much longer than the original Scheme)!

Very respectfully disagree; but long or short, this looks really bad: list("sequence", list(list("constant_declaration", list("name", "size"), list("literal", 2)), list("binary_operator_combination", "*", list("literal", 5), list("name", "size")))) https://sourceacademy.org/sicpjs/4.1.2 ( "4.1.2 Metalinguistic Abstraction / Representing Components" ) This isn't an ideal language for doing this stuff. The Scheme versi…

Making sense of those parentheses is genuinely hard for a newcomer, too. The Scheme version is more readable to you because you already know it - anyone who's actually working through this with a class level of effort instead of skimming pages is going to spend an equal amount of time learning how to read the syntax you quoted, and they'll be fine once they do.
Post reply on HN