> PHP is a dirty, ugly language held together by duct tape, cracked asbestos-filled spackle
and sadness (http://phpsadness.com/). It is the cockroach of languages: it is invasive
and it is a survivor. It is a hydra; rewrite one PHP app and two more pop up. It is
much maligned and a source of ridicule. It is the source of hundreds of bad practices,
thousands of bad programmers, millions of bugs and an infinite abyss of security holes
and vulnerabilities. It is a language that was born in the wild and raised in the darkness
by two schizophrenic monkeys. But its got character; and in this world, that’s enough.
The very first language I was ever formally taught was Lisp. I haven't used it even one time since then, but it forced me to understand recursion at a cellular level, which has painlessly translated to every language I've used since then.
There's a significant distinction between "I understand how [inheritance|recursion|functional programming|etc] works in <language of choice>." and "I understand how [inheritance|recursion|functional programming|etc] works, period."
By choosing a non-mainstream language, I suspect that it makes it slightly more likely to end up in the second category than the first.
 Note that this applies only to formal computer science training, NOT developer bootcamps, where the end goals are totally different.
I honestly do not think teaching PHP in 101 will achieve the latter case. Combining Lisp/Scheme/Racket and a non-functional language like PHP will probably do.
Also, we need to educate each other that despite all the insecurities with PHP in the 2000s era (because there were plenty of free PHP hosting providers, a gem for kids like me back then), PHP has improved, and let's criticize poor LAMP stack configuration and bad practices. Anyway, I heard, and maybe not true at all, more PHP code at FB are now written without HHVM? Someone from FB please correct me if I am wrong.
I think Lisp or Scheme is great for that kind of pedagogy, though the trend lately has been to use "practical" languages.
To extend your translation analogy, it's rather like learning a natural language in that at first you might think in your native tongue and translate on-the-fly, but to become fluent you must really internalize the new language and learn to "switch" your thoughts into it. I feel like the linguistic concepts of "registers" and "code switching" apply well to formal languages as well as natural ones.
I think "practicality should beat purity" for an introductory course. The students usually will have a chance to catch up on Python in a data visualization class anyway.
PHP is much simpler in terms of understanding, you do not need to explain what WSGI is, what routing is, what template engines do etc. Put your code into <?php and ?> and you're all set.
Anyway, there are various websites which list an "online curriculum" for Computer Science, e.g. https://mindweb.network/board/computer-science-a-full-bachel...