当我们意识到使用JS编写代码时,我们所有人都必须吃不起眼的馅饼:
资料库
伺服器
操作系统
以及无数的库,框架,渲染引擎和编译语言,
...因为它更好。
认真地,请...听我说。不要射击信使。
询问Microsoft为什么他们以一流的公民身份使用JS构建Windows 8。或Mozilla的新移动操作系统,或IBM的Rivertrail,PhoneGap,ExtJS或WebGL。
如果专家们在执行中没有发现更好的东西,这些公司或项目中的任何一个都会成功吗?
答案是……他们做到了。我们做到了。因此,这里的主题应该明确:有更好的方法。
但是,更好的是主观的:因此我们必须进行深入研究和比较。什么是更好的?
它以AJAX开始...并没有停止。
非阻塞IO。这确实是一件大事,值得一提。在JS中,这是回调模式。事实证明,使用回调可以启用非阻塞服务器:Node.js〜大约8行代码。setTimeout()是一个回调。单线程异步处理。
灵活性。什么?-Java和C具有类和接口,但称为面向对象。JavaScript只有对象。但这被称为……别的东西。
-只具有对象对于灵活性是一件好事,因为成员和方法在运行时是完全动态的。-原型继承并不可怕。一些专家将其描述为对象包。-JS对错误友好。-代码可以混合在一起而无需费很多力气,也无需了解“接口”,“抽象”,“继承”,“封装”,“多态性”即可生成复合组件。好东西,但是像JS中的耐克一样;你就去做。
数据转换。使用JSON,可以将对象从前到后,从后到前传输。没有XML数据转换。JSON很简单。
学习曲线低。可以剪切并粘贴极其复杂的代码,然后逐步对其进行调试。我听到一位同事...“ noobs”。但这不仅适用于菜鸟。
-事实证明,这对于Rapid Prototyping是一个非常不错的功能。利用这种“浏览器内设计”功能的网站越来越多,而且范围更广。运行时原型。检出JSFiddle和CodePen,还有MicroJS。的GitHub
Like Transformers, with JS, there is more than meets the eye.
It is a big deal.
更新:由于此发布,JavaScript现在已被其他语言广泛使用。
In Java - check out Nashorn.
In C++ - check out Emscripten, or ASM.
And there are many more.
The big surprise since the original writing of this answer was JS cross-compilation.
It turns out that many languages can be compiled to JS.
And the community is encouraging that... CoffeeScript, Dart, etc.
This is not my specific area of expertise, but it is going on in big ways.
Simply put, we just don't know how the dynamism of JS is going to hash out yet.