当前位置: 首页 > 科技观察

前端开发的5个JavaScript替代方案

时间:2023-03-13 15:43:02 科技观察

JavaScript是一种流行的语言,但它并不适合所有人,那么有哪些替代方案呢?本文将分析5个JavaScript替代方案。1995年,Netscape(网景通信公司)聘请BrendanEich为当时最流行的网络浏览器NetscapeNavigator添加一种新语言。Netscape希望提高网络的可编程性。LiveScript于1995年底作为浏览器的测试版发布,并在最终版本发布之前更名为JavaScript,以利用Netscape与流行Java语言背后的公司SunMicrosystems的合作关系(尽管JavaScript与Java本质上无关).关系)。Mozilla的创始人之一是Eich,他在10天内开发了JavaScript的原始版本。在接下来的25年里,JavaScript从一种不受欢迎且受到严格限制的语言发展成为构建现代Web应用程序的强大基础。如今,JavaScript通过Node.js主导浏览器和大多数服务器。然而,JavaScript并不是所有开发人员都喜欢的语言。Eich早期做出了一些古怪的决定,这些决定一直持续到2019年,包括规范继承、“this”以及JavaScript的激进和不一致的类型强制转换。近年来,开发人员创建了JavaScript的替代品。JavaScript仍然是唯一在浏览器中运行的语言,因此这些新语言大多被编译或转译为JavaScript。CoffeeScript是同类产品中的第一个,但很快被众多竞争对手超越,每个竞争对手都在JavaScript上进行了改进。DartDart是Google创建的一种面向对象的c语言,用于替代JavaScript。它摒弃了JavaScript的原型继承系统,转而采用更传统的面向对象的方法,任何使用过Java或C++的人都熟悉这种方法。与JavaScript不同,Dart是一种静态类型语言,消除了JavaScript代码中常见的错误来源。Dart支持类型推断,因此无需在每次声明变量或函数时都包含类型样板。也许Dart最令人兴奋的特性是它在网络之外的可用性。Dart代码可以转换为JavaScript在浏览器中运行,但它也可以用于独立应用程序和服务器端开发。Google的FlutterUIKit是一个可移植的前端框架,可以在桌面、移动和Web上用于构建原生应用程序。TypeScriptTypeScript是Microsoft朝着更好的JavaScript迈出的第一步。与Dart不同,TypeScript不是一种全新的语言,而是JavaScript的超集。TypeScript编译器可以编译有效的JavaScript,但TypeScript添加了几个新功能来改进和现代化JavaScript的局限性,其中最重要的是可选类型系统。许多JavaScript问题是由于缺少静态类型造成的,这导致编译器在运行前检查时受到限制。顾名思义,TypeScript实现了一种类型表示法,开发人员可以使用它来安全地对Web应用程序进行编程。与Dart一样,TypeScript支持类型推断。值得一提的是,TypeScript比其竞争对手Google更受欢迎。例如,虽然Angular是一个Google项目,但它的框架是用TypeScript开发的。TypeScript也可以与React和Vue一起使用。ElmDart和TypeScript与JavaScript和C.Elm有明显的亲缘关系。它是一种静态类型的函数式语言,比Haskell更类似于C,但没有Haskell令人头疼的复杂性。Elm本质上是一种用于构建Web前端的特定领域语言。Elm不是像JavaScript那样的通用语言,相反,创建者EvanCzaplicki专注于构建最佳的前端Web应用程序开发体验。Elm的主要优点是它通过静态类型和不可变值消除了前端代码中的许多潜在错误。Elm标榜自己是一种“在实践中无异常运行”的语言,这意味着如果Elm程序运行起来,它不太可能在生产中遇到性能阻塞错误。下面是一个Elm代码的例子Elm代码看起来一点也不像JavaScript,但是语法简单直观,Elm对于学过JavaScript的人来说应该不难。ClojureScriptClojureScript是编译为JavaScript的Clojure编程语言的一个版本。Clojure是在Java虚拟机上运行的Lisp。与Elm一样,Clojure也是一种具有不可变数据类型的函数式语言。与Elm不同,它是一种通用编程语言,可以通过JVM在后端使用,也可以通过JavaScript在前端使用。与所有Lisp一样,Clojure是用括号分隔的s表达式编写的。用Clojure创始人RichHickey的话说,ClojureScript试图用Clojure(一种简洁而强大的编程语言)取代JavaScript,从而解决客户端/嵌入式应用程序开发中的薄弱环节。Clojure可以与React和其他流行的JavaScript框架一起使用。当Netscape聘请BrendanEich时,他们计划将Scheme集成到Navigator中,而不是创建一种新语言。Scheme是Lisp的一种,所以如果历史稍微改变一下,Lisp可能会成为世界上最流行的编程语言家族。JavaScript通过一流的函数、闭包和lambda保留了一些“Lispiness”。在JavaScript的发展中起到关键作用并发明了JSON的道格拉斯·克罗克福德(DouglasCrockford)将JavaScript称为“披着C衣服的Lisp”。PhoenixLiveView在编译为JavaScript之前所说的语言,它们允许开发人员在不编写JavaScript的情况下构建客户端应用程序。PhoenixLiveView则不同。Phoenix是一个用相对较新的Elixir编程语言编写的Web框架。Phoenix是一个服务端框架。但是为什么我们要在一篇专门介绍浏览器JavaScript替代品的文章中讨论它呢?因为LiveView在很多Web开发场景中可以替代JavaScript。Phoenix的创建者ChrisMcCord将LiveView称为“一个令人兴奋的新库,它使服务器呈现的HTML能够提供丰富的实时用户体验”。LiveView使用Phoenix通道在浏览器和服务器之间创建双向连接。LiveView基于Websockets无需编写JavaScript即可创建交互式体验。人们自然会担心这种方法太慢而无用,但LiveView旨在最大限度地减少数据传输,并且在实践中可用于构建低延迟界面。但是LiveView有局限性,我们不建议在LiveView中构建像GoogleDocs这样复杂的应用程序。如果离线功能对应用程序很重要,那么LiveView也不是合适的解决方案。但是,对于表单、实时界面更新和数据验证等功能,PhoenixLiveView是JavaScript的可行替代方案。它比大多数JavaScript应用程序小得多;LiveView的浏览器代码大约是React的四分之一。总结我们研究了JavaScript的五种替代方案,每一种都提供了创建Web应用程序和交互式界面的不同方式。当然,大多数人仍然使用JavaScript,因为它是Web浏览器唯一支持的语言。但随着WebAssembly被更广泛地采用,这种情况可能即将改变。所有主流浏览器都支持WebAssembly,它很可能成为未来面向Web语言的默认编译目标。对于Web开发者来说,探索WebAssembly的可能性是一个很好的方向。