JavaScript不是最好的语言,尤其是在复杂的应用程序中,它可能无法竞争。为了避免这种情况,创建了现有语言的一些新语言或编译器。您可以生成可以在浏览器中运行的代码,而无需编写JavaScript行或考虑该语言的局限性。
本文介绍了可以编译为JavaScript的几种语言,可以在浏览器或node.js中执行这些语言。
从代码的角度来看,个人仍然更喜欢clojurescript,您可以使用简短的代码来实现复杂的逻辑。
我想尝试使用打字稿来开发最新的项目,因为我看到的报告可以看到Google到处都可以看到Typescript图,而且我也想体验Typescript项目的开发。
官方网站:开始打字稿
Typescript是Microsoft和开源开发的编程语言。这是一组JavaScript;有效的JavaScript项目也是一个有效的打字稿项目,只需添加静态类型。编译器也可以用作ES2015+的当前实现的翻译器,因此您始终可以获得最新功能。
与其他语言不同,Typescript保持了JavaScript的完整精神,但是除了添加增加代码可靠性的功能外,这些功能是类型注释和其他类型的功能。由于在重建过程中添加了静态分析仪和其他工具等专业工具,这些功能使JavaScript更加有趣。此外,添加类型可改善应用程序的不同组件之间的接口。
类型诊断是支持的,您不必从一开始就编写所有类型。您可以快速编写代码,然后添加类型以使代码更稳定。
Typescript还支持高级类型,例如跨类型,组合类型,类型别名,可以识别联合和类型保护。您可以在Typescript网站上的高级类型页面上查看它。
如果您使用React,也可以通过添加React类型来支持JSX。
官方网站:开始使用Clojurescript
Clojurescript是一个编译器,将Clojure编程语言转换为JavaScript。它是一种支持动态类型和无法可变数据结构的常见功能语言。
这是此列表中LISP系列系列的唯一编程语言。当然,它具有许多功能。例如,代码可以被视为数据并支持宏系统,这使元编程技术成为可能。
对于新手来说,其语法可能看起来很恐怖,但具有深远的意义。从长远来看,您一定会感谢这种方法。语法的简单性和语法抽象使LISP成为解决需要高级抽象的问题的强大工具。
尽管Clojure主要是功能性的语言,但它不像Purescript或Elm那样纯净。副作用仍然可以发生,但是其他功能特征仍然存在。
Clojurescript使用Google Clos来优化代码,并与现有的JavaScript库兼容。
官方网站:开始DART
飞镖是一种典型的面向对象的语言。一切都是一个对象,任何对象都是类的实例(对象也可以表现为函数)。它的特殊性用于为浏览器,服务器和移动设备创建应用程序。它由Google维护,用于驱动下一代AdWords UI.Adwords UI是Google利润的重要产品,这也证明了其数量的实力。
该语言可以作为浏览器的JavaScript编译,也可以通过DART VM直接解释,该语言也可以允许您构建服务器应用程序。可以通过Flutter SDK创建Mobile应用程序。
复杂的应用程序还需要一系列由任务设计的成熟库和语言特征。DART有这些。例如,一个流行的库是Angulardart,它是DART版本的角度版本。
它允许您编写非不创类型的安全代码,但这不是必需的,因为它们可以自动检测到类型。它可以让您快速构建原型而无需过多思考。一旦需要它,就可以添加类型以使其更强大。
至于VM中的并发编程,与共享内存线程相比(DART是单线线),Dart使用So -called隔离株,该分离物具有自己的桩内存,并且通过信息传递了通信。在浏览器中,情况有些一点不同:与创建新隔离株相比,您可以创建一个新的工人。
官方网站:开始榆树
ELM是一种纯函数编程语言,可以将其编译为JS,HTML和JS.S.您只能通过ELM创建一个完整的网站,这使其可以很好地替换JavaScript框架,例如React。使它快速。大型奖金项目是一种内置的结构,使您忘记了数据流,但要注意数据声明和逻辑。
在ELM中,所有功能都是纯净的,这意味着它们总是返回给定输入的相同输出。传达外部世界的功能,订阅功能监视回复。另一个纯点是该值是不可变的。当您需要所需的内容时,您会创建一个新值而不是更改它。
榆树接受可以很温柔;您可以使用端口与JavaScript或其他库进行通信。尽管ELM尚未到达版本1,但它已用于复杂和大型应用程序,这使其成为复杂应用程序的可行解决方案。
ELM的吸引力之一是初学者的友好编译器。它生成可帮助您修复代码的信息,而不是生成困难的信息。如果您正在学习此语言,则编译器本身是一个很大的帮助。
官方网站:开始使用Coffeescript
CoffeeScript是一种旨在揭露JavaScript并提供干净语言并保留语义在合适位置的语言。尽管近年来该语言的受欢迎程度正在下降,但它正在改变方向,现在新的大版本支持ES2015+功能。
您使用Coffeescript编写的代码直接转换为可读的JavaScript代码,并与现有库兼容。从第二版本开始,编译器将与最新版本的Ecmascript兼容。例如,每次使用课程时,您都会在JavaScript中获得课程,并且如果您使用React,那么好消息是JSX与Coffeescript兼容。
该编译器具有非常独特的功能,能够处理以识字样式编写的代码。与强调代码和使用注释作为添加方式相比,文字样式相比出现。唐纳德·诺斯(Donald Knuth)推荐此编写代码方法,使代码文件与技术文档非常相似。
与其他语言相比,可以直接在浏览器中执行coffeescript代码。变成JavaScript。
官方网站:开始使用PureScript
PureScript是Phil Freeman创建的一种纯粹的功能编程语言。它旨在为可用的JavaScript库提供强大的兼容性,该库类似于Haskell,但维持JavaScript的核心。
纯粹的一个很重要的点是它的最低限度。它不包括任何在其他语言中被认为是必要的库。例如,编译器本身包含生成器和承诺,但是您可以使用特定的库来完成任务。您可以选择要为所需功能实现的内容,以便在使用PureScript时可以实现高效且个性化的体验,同时保持尽可能小的生成代码。
其编译器的另一个重要功能是,在保持与JavaScript的兼容性时,它可以通过库和工具生成整洁且可读的代码。
像其他语言一样,PureScript也有自己的称为Pulp的施工工具,可以与Gulp进行比较,但用这种语言使用。
关于类型系统,与ELM不同,即另一种ML型语言,PURESCRIPT支持高级功能,例如更高的类型(高级类型)和类型类(类型)(类型)(类型)(类型)(类型)类型,允许创建复杂性。
官方网站:开始使用scala.js
Scala.js是一个编译器,可将Scala编程转换为JavaScript语言。Scala语言的目的是将对象编程和功能编程合并为一种语言,并创建一组功能强大的有用工具。
作为一种强大的语言类型,您可以在灵活类型系统中获得本地类型的好处。最大的值是可以推测,但其功能参数仍然需要强制性类型描述。
尽管它支持许多常见的面向对象的模式(例如,每个值是一个对象,并且操作是方法调用),但您还可以获取功能功能,例如支持第一级函数和非变量数据结构。
scala.js的一个特殊优势是,您可以从熟悉的对象的方法开始,并以更有功能的方式移动,不需要做很多工作。与您的Scala代码兼容。
新手Scala开发人员会发现这种语言与JavaScript没有太大不同。比较以下等效代码:
官方网站:开始理性
原因是Facebook创建和维护的语言。它为OCAML编译器提供了新的语法,并且可以将代码转换为JavaScript和本机代码。
作为ML家族的一部分,它是一种功能性语言本身,它固有地提供了一个功能强大但灵活的类型系统,并伴有类型推理,代数数据类型和模式匹配。也称为其他语言的通用类型),但在OCAML中,它还支持面向对象的编程。
您可以通过Bucklescript使用现有的JavaScript库。您还可以在Reason代码旁边混合JavaScript。插入的JavaScript代码不会严格检查,但也适用于快速维修和原因。
如果您是React开发人员,则可以使用绑定,并且该语言也支持JSX。
我介绍了许多可以编译为JavaScript的语言。并不是说您要放弃JavaScript。现在,主流前端开发正在使用打字稿。JavaScript现在越来越好。无论哪种语言,它都是最好的。