5 ms·
Is rigor even that important? Is a flawed and quirky language really a problem when you are learning? I'd expect that keeping the learner's momentum going is
by ianbicking 12y ago
Is rigor even that important? Is a flawed and quirky language really a problem when you are learning? I'd expect that keeping the learner's momentum going is more important – if they keep producing they will be able to engage with the crap, or make their own new kinds of crap. Quantity over quality, you know? With that in mind, stuff like developer tools is more important... and maybe community (which is eclectic for Javascript – there's lots of material out there about Javascript, but a lot of it is crap material).
- moron4hire 12y agoWe can have good, rigorous semantics and simple syntax in the same language. Python is, indeed, a good example. Ruby as well. I would even start to say Scheme is a very rigorous language that is quite easy to learn--if you first haven't been tainted by curly-bracket languages and second lived in a world in which there were a Scheme implementation with as many and as complete of a selection of libraries as Python. A flawed, quirky language is a problem when learning, because it increases the number of things that have to be learned. But yes, your other points are correct. Tooling is far more important.
- yoklov 12y ago> ... a Scheme implementation with as many and as complete of a selection of libraries as Python. It's not quite the same size, but the Racket standard library is fairly close in size to pythons. It also has better GUI support, IIRC. It's selection of other libraries isn't quite as broad either, but it's decently sized, and you can use some things written for other implementations (well, mainly ones written in pure scheme).
- moron4hire 12y agoI had used Racket for my personal projects for well into a year. It was a lot of fun, so it definitely filled a good niche for me at the time, but I eventually gave it up as I started to want to be more productive and start finishing projects, rather than just writing any ol' random code. It is definitely the most complete Scheme available, which I believe is why they gave up the PLT Scheme name, to disassociate from the "bare bones" assumption of Scheme. And yes, it's GUI support is relatively better than Python's. But it's not objectively good. It tends to have mostly bare-minimum implementations of libraries. For example, the work done for connecting to databases is basically nothing more than a DB connection. Web development is basically no more than HTTP request parsing. There's no Django or Rails or even Express for Racket.
- zodiac 12y agoA quirky language might slow a learner's momentum by making it necessary to explain all the quirks. As a simple example, javascript's rules for casting values to boolean is quirkier than scheme's rule in the sense that scheme's rule ("#f passes conditional tests, everything else fails") is shorter to explain than javascript's rule ("NaN, false, 0 etc fail conditional tests, except new Boolean(false) passes it, etc"). As an experienced javascripter I've grown used to the quirky parts of JS, and some of the quirks are even rather convenient; however it's that much more that needs to be explained to the beginner that isn't strictly necessary.