为什么浏览器不能解释更多编程语言? [关闭]

While there are a large number of programming languages, there are a small number of programming languages that browsers interpret. <script> tags have a type attribute that can be set to javascript or ecmascript. php may be embedded in html with a <php [code] ?> tag. Why aren't there similar mechanisms for embedding python/haskell/c/etc? They lack the browser environment (e.g. javascript's 'document' object and php's superglobals), but a similar environment could be constructed as a module in those languages. Many programming languages have cgi modules, so there is a precedent for this.

Most browsers interpret one programming language: JavaScript.

Internet Explorer also supports (or supported) VBScript. There is (or was years ago) a plugin that would add support for PerlScript to IE.

They don't support more because if one browser introduced support, then anyone writing code using that language would have it work on only one browser without being able to do anything they couldn't do in JavaScript. A decade ago, that wasn't a problem for Microsoft since they had dominance over the market and more so for corporate Intranets. Today, that has changed.

PHP is not interpreted by the browser, in the context of the WWW, it is processed on the server. You can use any language you like on the server, including Python, Haskell and C. Recently I've been using Perl (via Apache+FastCGI) and JavaScript (via Node.js).

Quite a lot of languages have means to allow you to embed the code directly in an HTML document (e.g. Perl's Mason). However, it is generally preferred to separate the display logic from the other logic using a templating DSL (such as Template-Toolkit, Smarty or Handlebars).

Browsers do interpret more languages through the use of plugins. Flash and Java come to mind. PHP is not browser interpreted, it is processed by the server, which sends pure HTML to the browser. Javascript is the one exception in that it works without a plugin.