Back in the day, computers were fairly stripped down. To interact with them, you used the command line. To code, you used a text editor that didn’t look that different from the command line (emacs, pico, vi). Even when gui interfaces came along, to make web sites, you often just popped open a text editor (which always functioned as a plain text editor) and then uploaded your files through an FTP client or through the command line (which did more often than not). Many great tools came along that somewhat simplified this process, but some also hid this process, so that if you used, say, a wysiwig html editor, you really didn’t understand that when you saved a file, you were also uploading it.
Nowadays, people don’t edit straight html that much (outside of some professional environments). Now, they type in boxes (as I’m doing now). If you want to teach writing straight HTML, the tools are sort of working against you. TextEdit on the Mac requires setting it to plain text to make it HTML safe, but even it chokes a little on things like apostrophes. Other text editors do a good job, but then one must use an FTP client or command line, which is probably fine if you’re working with, say, 17-20 year olds, but is painful if you’re working with 13 year olds.
Teaching at this level means really thinking about the tools you’re using and whether or not they’re getting in the way of learning the things you’re really teaching. At the college level, maybe you start out with the “tools of the trade”, but at younger levels, starting with Eclipse or IDLE can lead to frustration before students have even begun writing a line of code. We’re not teaching software engineering after all. We’re teaching students how computers work, and how we can make them do cool things for us with just, as one of my students put it, “some random letters and stuff.” I’ve thrown my high school students into command line stuff and for some of them it’s mind blowing and painful. Which is why I’ll switch to something that’s much more straightforward and closer to how they already use their computers. I do want students to understand the innards of computers, but I don’t want them to be frustrated by it. I want them to be fascinated by it. So we’ll use tools that are easy while exposing some of what those tools hide.