如果你要在浏览器里运行多种语言,就不可避免地需要两种/更多种语言间的互操作——然而语言之间差异巨大,互操作往往会很困难——你需要仔细设计两种语言
的语言特性、库和类型系统使得互操作容易。微软是很少几个做成的公司——所以 IE 可以同时运行多种语言(装了插件连 Perl
都可以),因为它们的类型系统都统一到 COM 的 Automation 对象里去了。
但是语言的特色会让统一的类型系统难以实作——
比如 ASP 虽然可以用 JS 写,但是 VBS 里很好用的 Request.Form('xxx') 在 JS 里就必须写成
Request.Form('xxx').item。此外 VBS 不支持结构化异常而 JS 支持,两者混用势必出问题。
此外,因为需要多语言互操作,对它们的性能优化就会很困难。目前 JVM、.NET 之类的字节码运行时是最好的解决方案,但是字节码显然不适合脚本语言。
因此现在的软件环境通常都只支持一种脚本语言,包括浏览器。回答完毕。
阅读(205) | 评论(0) | 转发(0) |