6 ms·
One major benefit here is how approachable this is. One could even simply open Dev Tools on their browser and use the console as a REPL. As someone who installe
by nobleach 5y ago
One major benefit here is how approachable this is. One could even simply open Dev Tools on their browser and use the console as a REPL. As someone who installed Scheme/Dr Scheme/Dr Racket long ago, it's nice to say, "you can get started right now". I know there'll be a lot of complaint about JS as a language choice but, it's pretty ubiquitous. And, much like Scheme, no one's saying, "you should use this for your next app that you have planned"
- boardwaalk 5y agoThough I'm sure there are a few Scheme interpreters written in JS or that compile to WebAssembly and so are just about as accessible.
- nobleach 5y agoRight, but if we're looking for the quickest path, "right click on this page, and select 'Inspect'" and boom. You're there. Certainly one could go to https://replit.com/ https://replit.com/ and choose from a host of "better" languages. My approach was trying to avoid someone having to install anything at all. As soon as you say, "ok, you'll need to install NodeJS, then use npm to install this package....", things get dicey. Someone who's serious about learning will fight through it, but someone who's just starting out may be put off.
- turminal 5y agoThis is the wrong kind of approachable, because you have to learn a ton of random web things before you do anything outside the repl and before your program can even process user input and then people struggle with those two concepts that would be trivial to them if they could be introduced earlier. Having seen what having javascript as a first language does to first year students I can't understand why this is considered a good idea.
- mwcampbell 5y agoI'm an uncle of 6 children, ages 7 and under. My guess is that if any of them have ever seen a VT100 terminal emulator or Windows console window, it was probably only when watching me or my brother-in-law. So traditional line-oriented programs, with plain text input and output, will be alien to kids of this generation. I know Racket has an integrated GUI toolkit, but will this new generation be able to run it on their tablets? One benefit of the great variety in front-end JavaScript frameworks, often criticized as churn, is that we're more likely to arrive at an abstraction that will be approachable to beginners. I look forward to watching how this generation learns to program.
- mftb 5y agoBringing the best education materials to the most widely used environment, and language doesn't seem very difficult to understand. Nothing prohibits them from learning, "better" languages after you reach them, but first you have to reach them.
- eggy 5y agoI 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 Fortran programs, viewing them in terms of maps, filters, and accumulations. He found that fully 90 percent of the code in the Fortran Scientific Subroutine Package fits neatly into this paradigm. One of the reasons for the success of Lisp as a programming language is that lists provide a standard medium for expressing ordered collections so that they can be manipulated using higher-order operations. e programming language APL owes much of its power and appeal to a similar choice. In APL all data are represented as arrays, and there is a universal and convenient set of generic operators for all sorts of array operations.
- thot_experiment 5y agoI wanted to say Shen will never be relevant or useful without a change to it's licensing model, but looking at the website it seems like that exact thing has actually happened? It's hard to find concrete info so I'd love for someone to confirm, but IIRC Shen was encumbered by some sort of distasteful closed source model previously but it looks like that's no longer the case? Very excited to dive in if that's the case. EDIT: > In 2021 the SP kernel was returned to open source forming the basis for the S series of kernels on which this manual is based. (https://shenlanguage.org/OSM/History.html https://shenlanguage.org/OSM/History.html)
- eggy 5y agoI actually subscribed for a while to SP, but I didn't like having to be connected to the internet to run it. I own two TBOS editions, and it scratches my Haskell, Lisp, Forth (because Klambda), and Prolog itch. I've toyed with the WaspLisp version, and I really want to dive into it. Deech's YT video years ago showing how you could program the front and back end in Shen, because there was a Ruby and JavaScript port really sold me. To me it is relevant, because I can use one language deployed on so many ports. Plus, I just really got into combinators after reading the beginning chapters of Stephen Wolfram's book on them. I don't live and die for open source-only projects. I think only the SP kernel, not all the libraries (grahics, etc.) were. I believe they are still in SP, but I may be wrong.
- pvg 5y agoIt's definitely a benefit but the trade-off is rough - the book itself is 'approachable' in the sense that it's written well in an accessible style. But it's dense in concepts and ideas and smacks you with them right off the bat. A lot of them are much more convoluted when expressed in JS, especially for the first time. Take a look at the sort of challenge the authors had to deal with: https://sicp.sourceacademy.org/chapters/1.1.7.html#ex_1.6 https://sicp.sourceacademy.org/chapters/1.1.7.html#ex_1.6 We're just a few pages in and the original instructive exercise of 'why can't I make my own if out of cond' involves learning the JS ternary operator.