经典案例H5电商设计联系报价
微信联系
手机联系
QQ联系
微信联系
手机联系

5种用于前端开发的JavaScript替代方案

发布时间:2019-08-02
发布者:eidea
浏览次数:5351
近年来,开发人员已经创建了JavaScript的替代品。JavaScript仍然是在浏览器中运行的唯一语言,因此这些新语言主要是编译或转换为JavaScript。CoffeeScript是第一个类似的脚本,但很快就被众多竞争对手所超越,每个竞争对手都对JavaScript进行了改进。JavaScript虽然是很受欢迎的语言,但是并不适合所有人,那么有哪些替代方案呢?本文将分析5种JavaScript替代方案。


Dart

Dart是一种面向对象的c语言,由Google创建,作为JavaScript的替代品。它抛弃了JavaScript的原型继承系统,而采用了更传统的面向对象的方法,任何使用过Java或c++的人都熟悉这种方法。与JavaScript不同,Dart是一种静态类型的语言,消除了JavaScript代码中的常见错误源。Dart支持类型推断,因此没有必要在每次声明变量或函数时都包含类型样板。

也许Dart最令人激动的功能是它在网络之外的可用性。Dart代码可以转换为JavaScript以便在浏览器中运行,但它也可用于独立应用程序和服务器端开发。Google的Flutter UI工具包是一个可移植的前端框架,可用于桌面、移动设备和Web,构建本机应用程序。

TypeScript

TypeScript是微软向更好的JavaScript进军的第一步。与Dart不同,TypeScript不是一种全新的语言,而是JavaScript的超集。TypeScript编译器可以编译有效的JavaScript,但是TypeScript增加了几个新特性,改进和现代化了JavaScript的限制,其中最重要的是一个可选的类型系统。

许多JavaScript问题都是由于缺少静态类型导致的,这导致了编译器在运行前进行检查时就被限制了。顾名思义,TypeScript实现了一种类型表示法,开发人员可以使用这种表示法为web应用程序编程保证安全。与Dart一样,TypeScript支持类型推断。

值得一提的是,TypeScript比它的竞争对手谷歌更受欢迎。比如,虽然Angular是谷歌的项目,但它的框架是用TypeScript开发的。TypeScript也可以与React和Vue一起使用。

Elm

Dart和TypeScript与JavaScript和C. Elm有明显的亲缘关系。它是一种静态类型的函数语言,与Haskell相比更类似于C,但没有Haskell那种令人挠头的复杂性。

Elm本质上是一种用于构建web前端的特定于领域的语言。

Elm不像JavaScript那样是一种通用语言,相反,创建者Evan Czaplicki专注于构建最好的前端web应用程序开发体验。Elm的主要优点是,通过静态类型和不可变值消除了前端代码中的许多潜在bug。Elm宣称自己是一种“在实践中没有运行异常”的语言,这意味着如果一个Elm程序运行,它就不太可能在生产中遇到阻止性能的bug。

以下是Elm代码示例


Elm代码看起来和JavaScript一点也不像,但是它有简单直观的语法,Elm对学习过JavaScript的人来说应该不难。

ClojureScript

ClojureScript是Clojure编程语言的一个版本,可以编译为JavaScript。Clojure是运行在Java虚拟机上的Lisp。与Elm一样,Clojure也是一种函数性语言,具有不可变的数据类型。与Elm不同,它是一种通用编程语言,可以在后端与JVM一起使用,也可以通过JavaScript在前端使用。


与所有Lisp一样,Clojure是用括号分隔的s表达式编写的。用Clojure的创建者Rich Hickey的话来说,ClojureScript试图用Clojure(简洁且功能强大的编程语言)取代JavaScript,从而解决客户机/嵌入式应用程序开发中的薄弱环节。Clojure可以与React和其他流行的JavaScript框架一起使用。

当Netscape雇用Brendan Eich时,他们计划将Scheme集成到Navigator中,而不是创建一种新的语言。Scheme是一种Lisp,因此,如果历史的发展稍微有些不同,Lisp可能已经成为世界上最流行的编程语言家族。JavaScript通过一流的函数、闭包和lambdas保留了一些“Lispiness”。在JavaScript开发过程中扮演关键角色并发明了JSON的道格拉斯•克罗克福德(Douglas Crockford)将JavaScript称为“披着C外衣的Lisp”。

Phoenix LiveView

之前讲过的语言可以编译成JavaScript,它们让开发人员无需编写JavaScript就可以构建客户端应用程序。

Phoenix LiveView与众不同。Phoenix是一个用相对较新的Elixir编程语言编写的web框架。Phoenix是一个服务器端框架。但我们为什么要在一篇专门讨论浏览器JavaScript替代方案的文章中讨论它呢?因为LiveView可以在许多web开发场景中替代JavaScript。

Phoenix的创建者Chris McCord称LiveView是“一个令人振奋的新库,它支持使用服务器呈现HTML,实现丰富的实时用户体验”。LiveView使用Phoenix channel在浏览器和服务器之间创建双向连接。LiveView基于Websockets,可以在不编写JavaScript的情况下创建交互体验。人们自然会担心这种方法太慢而无法使用,但是LiveView的设计目的是最小化数据传输,并且在实践中可以用于构建低延迟接口。

但LiveView有局限性,我们不建议在LiveView中构建像Google Docs这样的复杂应用程序。如果离线功能对应用程序很重要,那么LiveView也不是合适的解决方案。但是,对于表单、实时界面更新和数据验证等功能,Phoenix LiveView是JavaScript的可行替代方案。它比大多数JavaScript应用程序小得多;,LiveView的浏览器代码大约是React的四分之一。


总结
以上JavaScript的五种替代方法,每种方法都提供了一种创建Web应用程序和交互式界面的不同方式。当然目前大部分人使用的依然是JavaScript,因为它是Web浏览器支持的唯一语言。

但随着WebAssembly被广泛采用,这种情况可能即将发生变化。所有主流浏览器都支持WebAssembly,将来它很可能成为面向Web的语言的默认编译目标。对于Web开发人员来说,探索WebAssembly的可能性是个很不错的方向。

fun88案例欣赏

柯翌咨询

H5创意型企业官网

新大陆支付

响应式企业官网

中联集团

集团官网,集团官网