
关于JavaScript是好是坏,还没有定论,所以在本文中,我们将讨论JavaScript的优点、缺点和替代方案。
标题问题的简短回答是“不”。
较长的答案比较复杂,以“kindof…”开头,对于开发人员有几种JavaScript替代方案,但是(目前)在部署之前必须将它们转换成JavaScript。
人们讨厌JavaScript
如果我们考虑到这种编程语言的一些明显缺陷(包括IEEE 754的双精度),即许多函数和属性在不同的浏览器中执行的方式不同,强制转换和有问题的全局变量(仅举几个例子),这并不奇怪。
然而,最近一项有98,000名开发人员参与的调查显示,JavaScript实际上是第二大最受欢迎的编程语言,49%的人支持JavaScript。
在我看来,编程语言允许自动完成、滚动和下拉菜单效果、在页面上动画化不同的元素、播放音频和视频以及许多其他能够带来丰富客户体验的很酷的特性,有什么理由不喜欢它呢?
此外,我们正在讨论的是一种与许多其他语言兼容的常青语言,而这种通用性是极其重要的。
JavaScript的好处
说到JavaScript,我们真的很喜欢它,下面是它是最受欢迎和使用最广泛的编程语言之一的一些原因:
当涉及到前端开发和客户端接口时,它是惟一的实际选择,因为它允许程序员创建各种交互元素和动态web页面;
JavaScript很轻,语法简单,使用单线程事件循环模型,消除了很多编程复杂性;
这是prototype-oriented;
随着Node的引入。JavaScript打开了后端编程选项,这些选项曾经只保留给服务器端语言,如Java、Python或Ruby。
JavaScript的坏处
以下是一些开发者尽量避免使用JavaScript的原因:
它是弱类型的,这使得代码比较模糊;
由于用户可以看到代码,JavaScript可能被用于恶意目的,危害客户端安全;
代码发布之前必须在不同的浏览器上测试,因为它不会以相同的方式在每个浏览器上执行;
缺乏调试使得开发人员很难发现问题。
JavaScript的可行替代品
公平地说,JavaScript没有真正的替代品,因为整个JS框架都可以被绕过。
所有这些替代方案实际上都是权宜之计,只允许在编写代码时避免使用JavaScript,但问题是,为典型用户计算机编写的代码需要在其上运行。这些替代方案使用将另一种语言转换为JavaScript的过程。
下面是5个显著改进JavaScript的值得注意的替代方案。
1. 飞镖
Dart是一种面向对象的类似于c的语言谷歌,旨在取代JavaScript。Dart是静态类型的,这意味着它消除了JS代码中一些最常见的错误来源。它支持类型推断,这是一个很大的优点。
尽管如此,这个JS替代方案最有利的特性之一是,它允许您超越客户端开发,创建独立的应用程序。使用谷歌的UI工具包,可以构建本地web、桌面和移动应用程序。然而,作为程序员的新手,Dart在市场上并不常用,它提供的在线资源有限,这意味着一旦遇到问题,就很难找到解决方案。
2. 打印稿
由Microsoft开发的TypeScript实际上更像是一个JavaScript的超集,这意味着它基本上添加了新的方法,改进和更新了现有的JS特性,并消除了它的某些限制,最重要的是添加了可选的静态类型。换句话说,在编译成JS后,用TypeScript编写的应用程序几乎可以在任何浏览器中查看。
例如,Angular.js完全是在TypeScript中构建的。
这个JS的另一个优点是它与Node.js兼容。
但是,社区比较小,用TypeScript编码需要更多的时间。
3.KAFFEINE见面吧
Kaffeine实际上是JavaScript语法的一组扩展,目的是使某些任务更容易。例如,它帮助前端开发人员使用JavaScript的回调函数,因为它支持异步操作。
对于Kaffeine,调试的过程要简单得多,而且除了对开发人员来说很容易之外,这个JS扩展对终端用户也很有好处,因为浏览器不会冻结,这意味着用户体验是平稳的。
同样,一个小得多的社区和资源的缺乏使得这种编程语言有点晦涩。
4. 榆树
Elm是一种静态类型的函数语言,它与Haskell的相似度超过了与C的相似度,但与前者不同的是,它不会让开发人员对其复杂性感到困惑。
它与JavaScript的主要区别在于,它不是一种通用语言,而是一种提供高级前端web应用程序开发经验的解决方案。
在Elm中编码时,当错误发生时,开发人员可以立即得到通知,以便他们能够及时地修正它,这可以防止在以后的开发阶段出现大量的bug。这个程序使用的口号是“在实践中没有运行时异常”,这基本上意味着如果用Elm编写的应用程序开始运行,它就不太可能崩溃。
它的一些缺点包括缺乏服务器端,学习曲线比较陡峭,以及缺少一些高级功能。
5. COFFEESCRIPT
据说CoffeeScript可以提高原始语言的可读性,简化代码并使其更短。它与Node.js的兼容性是另一个优点。
然而,值得一提的是,希望使用CoffeeScript的开发人员仍然需要大量使用JavaScript。它的主要缺点之一是一组有限的特性,以及JavaScript发布的ES6版本升级实际上使CoffeeScript变得多余(这次升级加速了JavaScript,使其几乎与CoffeeScript一样快)。
简而言之,JavaScript目前是一种客户端编程语言,它将一直存在下去。
这些替代方案可以增强它,并解决它的一些缺点,但实际上不能在没有JavaScript框架的情况下运行,因此可以肯定地说,我们仍然需要等待JavaScript真正的继承者能够独立于它工作。
