在 2015年05月26日 11:13, eric 写道:
I would like to suggest a language neutro interface for all languages inside all browsers.
Web APIs are defined in WebIDL, which is language neutro. However I don't think the implementations of those APIs in browsers can be acutually "language neutro". Most browsers are implemented in C++, so they can provide C/C++ APIs in addition to JS APIs. But if you want to support other languages, you'll have to write wrappers around C/C++ APIs, and these are non-trival efforts (checkout cefglue[1] and geckofx[2]). Additionally, for security and portability reasons, browsers can't expose Web APIs to web pages via unmanaged C/C++.


so the browsers will support all languages by plugin instead of changing javascript into an evil language.
and the rest of programmers will use there languages freely.

What do you mean by "plugin"? ActiveX? NPAPI? PPAPI? NativeClient? or something new?

Supporting languages except JS natively were tried (C/C++ via ActiveX and NPAPI, VBScript, Java Applet, Flash, and Silverlight), but all failed or are failing. Why?

(1) Security. ActiveX and NPAPI are proven to be insecure. Althrough newer plugin architectures like PPAPI are safer, but are not as safe as no plugin at all.

(2) Complexity. Browsers are unwilling to duplicate works if some features are already availible via JS.

(3) Portability. Native codes and most plugins are not portable across CPU or OS, this is unacceptable for most web apps. Portable NativeClient is an exception, but it doen't show significant advantages over asm.js.

(4) Maintainability. Who are supposed to maintain those plugins of additional languages in browsers? Even some big companies are unwilling to maintain plugins for some platforms. For example, MS never implemented Silverlight on non-windows platforms and will drop it in Edge browser; Adobe had discontinued Flash for android and linux. Who want to use a language that is not guaranteed to work in future?

[1] https://bitbucket.org/xilium/xilium.cefglue/
[2] https://bitbucket.org/geckofx

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to