Leave the complexity of learning what Python is, the 2 vs 3 issue, 32/64 bit versions, appending locations to your path, CLI, etc., for when the user is ready to start with dynamic web pages.
The book had failed to mention that I need to include the compiler in my PATH.
I returned to programming when I learned about Quickbasic. That just worked and had an extensive help system that was suitable for self study.
Personally, as a person who used python in my programming job, I don't remember when for last time or even I have ever typed mentioned by you command to start a local server.
It (almost, kind of) is now, actually. Running python on a recent Windows 10 box without python installed will prompt you to install it.
https://devblogs.microsoft.com/python/python-in-the-windows-...
$ busybox httpd -p 8080 -f
-p for port (also possible to bind to specific IP: -p 127.0.0.1:8080), -f for foreground, also optional -h for served directory (default is .).
But the difference between doing almost nothing, a double click once and then it stays there even between restarts, to giving a specific command in a terminal is monstrously huge.
However the barrier of entry is still higher than simply editing a .html file and loading it from the browser with file://
The question is, what is more important? Shouldn't this functionality be optional at the very least?
php -S localhost:3000 -t ./How is that easier than putting file://path/to/foo.html into my browser window, as someone getting started in web development?
Edit: Here are 16 for example: https://gist.github.com/willurd/5720255
Even for people on Mac and Linux, having to start by learning the terminal is a pretty big and unnecessary obstacle to just getting to writing some JavaScript. Sure, you and I think it's easy, but it's a completely different paradigm which requires practice to get comfortable with.
Even if you can be there right by someone learning to program, and help them set up a web server, they will have to remember how to do that when they want to play with programming while you're not there. That's actually quite a lot to remember when you don't yet understand what the commands mean; you think of it as "go to the directory, start SimpleHTTPServer", but they have to memorize the text they have to type. Maybe you're the one who cd'd into the correct folder for them, and they remember to type `python -M SimpleHTTPServer` in the terminal you created; they will then have problems they don't know how to solve when they go home and open a terminal and type the command and it doesn't work because they weren't in the correct directory.
On topic, I agree that this is throwing the baby out with the bathwater. A compromise would perhaps be an explicit whitelist of allowed directories to serve via the file:// protocol, set by the user (while disallowing traversal upwards of these, of course).