>>
|
No. 1941
[Edit]
>>1940
With the state of modern web dev, there's probably also something to be said about the relative "simplicity" of PHP in terms of the abstraction level. Though the actual language itself might be terrible to work with, it's pretty easy to see what it does: you give it a "templated" html file and the interpreter spits out a version with the stuff within the php tags evalauated. A small, natural improvement over raw CGI scripts (although personally as someone who hasn't touched webdev much, I adore CGI since I can just use any language and treat the browser as stdin/stdout. Since my personal pages are minimalistic anyway, generating html by hand isn't too much a pain). But on the flip-side this probably does quickly turn into spaghetti for more complex sites (but maybe we can just call that a feature, since you really shouldn't be writing web "3.0" client-side applications in the browser anyway. Create a native app!)
Now it's probably the case that more "modern" backends like nodejs/etc. don't *necessarily* have to be coupled with the entire ecosystem (it is after all just an interpreter like any other, and I'm sure you could coax it just being a simple cgi-esque interpreter), but it sure does seem that there's a lot more abstractions you've got to deal with: the entire npm craziness, frameworks that change every week, etc. Of course I could be wrong, but almost every intro has you download this mess of dependencies which seems like overkill for most static sites and simple CRUD-style apps.
>seeing as Python and whatever textbook has supplanted SICP, your opinion is aligned with MIT's admin.
Interestingly even though both Berkeley and MIT switched from scheme to python, Berkeley's course is still highly scheme influenced. Python is learned through the lens of environment frames, and there's a heavy emphasis on grokking lambdas, recursion, and the nature of first-class functions so it's not too different from scheme in that regard. The course also does culminate with a dive into scheme, and the final project is implementing a scheme interpreter in Python.
|