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.
Structure and Interpretation of Computer Programs – JavaScript Adaptation
171–180 of 188 posts
Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation
#172Earlier 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.
Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation
#173Every 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 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
#174Earlier 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
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
#175Earlier 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.
That is exactly the reason why Scheme was chosen for SICP.
Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation
#176Earlier 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.
“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
#177Earlier 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…
Re: Structure and Interpretation of Computer Programs – JavaScript Adaptation
#178Earlier 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.
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
#179Earlier 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).
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
#180Earlier 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.