Javascript大师说服我,我应该使用Javascript过度编译到像Dart或Typescript这样的js语言



你好,我即将开始开发大规模的前端应用程序,我正在研究什么是客户端生态系统的最佳选择。我是一个有Java背景的人,做过一段时间的Spring应用程序,在业余时间做我的私人项目时,它的大部分逻辑部分都位于浏览器中。这是一个基于网络的图像处理和绘图应用程序,需要大量的图形处理和高级用户交互,如拖放,我希望代码库足够大。我处理过写得不好的大型js代码库。这让我很头疼。然后我在javascript方面名声不好。起初,我在看谷歌网络工具包。但我发现它不适合我的应用程序,在GWT中开发的成本非常昂贵,因为它是复杂的抽象。我完成了研究和计划阶段。最近,我也开始使用Ruby进行日常工作。

自Dart语言开发之初,我就一直在跟踪它的发展,并对它印象深刻。我喜欢它的特性,如类、mixin、库的内置方法(对我来说,这是Javasript的巨大优势)、Stream/Promise和Web Components。我喜欢它严格的本质。dart语言的可选静态类型最大限度地减少了应用程序的不当行为,并帮助我编写更有效/优化的代码。重要的是,我可以应用Java世界中使用的熟悉的设计模式和编程技术。现在我决定接受它,或者给它更多的分数。

最近,我花了很多时间来发现Javascript的更高级用法。刚读完John Resig的《JavaScript忍者的秘密》,我大开眼界。我可以看到使用RequireJS和Grunt可以管理我的大型代码库。我读过一些人说长期使用Dart有风险的论点。关注的问题有:

  1. 编译的javascript源代码可能会出现意外错误,并可能影响应用程序行为
  2. Javascript正在发展。Ecma.next提供了一些不错的功能,比如模块、映射和类。即使是正确的,我们也可以使用traceur编写Ecma.next代码
  3. 如果谷歌在chrome中提供原生dart vm。我的应用程序在其他浏览器中的性能会有所不同。这不好
  4. 它并没有被广泛采用,所以当你的应用程序增长时,很难找到用Dart编写代码的好人

对我来说,这些还不足以说服我放弃达特。所以,如果你在Dart和Javascript方面都有一些有趣的观点,请告诉我

这听起来可能让我感到困惑,但这只是我研究的一部分。当然,除了特定的编程语言或技术之外,开发还有其他部分,如应用程序架构/设计和模式

1)Dart有助于消除浏览器差异。我认为这样的技术很可能会因为目标的移动而出现错误。如果你想自己处理浏览器的差异,这也很容易出错(IMHO更是如此),或者你使用的库像jQuery一样也很复杂,很可能会有错误。

2) 但我认为这是Dart的好处之一,它有助于弥合浏览器的差异。我认为这是建议使用JavaScript的最大弱点,因为它也有一些很酷的功能。只有当所有目标浏览器都支持这些功能时,才能使用它们。在Dart中,您可以使用这些功能中的大部分。

3) 如果有一个浏览器的性能更好,那有什么不好呢?您仍然可以在Chrome上运行JavaScript版本,即使它支持原生Dart。

4) 不管用什么语言都很难找到好人。但我认为好人很可能会对新技术产生兴趣。飞镖很容易学。困难的部分是你在为Web开发时所面临的所有特性(CSS、浏览器错误、客户端/服务器应用程序架构等)。语言本身通常是问题最小的。

我投票支持普通的JavaScript。每当您引入一种可编译为JavaScript的新语言时,您都会在框架引入的众多层之外获得另一层抽象。你的时间最好花在评估JavaScript框架上,而不是学习一种被转化为另一种语言的语言。

我已经构建了大型前端应用程序,你最好学习前端技术,因为相信我。当你的应用程序代码或浏览器本身出现错误时,你需要了解它们。

既然你有Java背景,想象一下每个计算机操作系统至少有4个JRE可用,但你不确定它是哪一个。哦,所有这些JRE都是由不同的供应商构建的。现在,您需要构建一个厚的客户端GUI,并且希望编写在编译时转换为Java的Ruby,因为您了解Ruby,但不了解Java。

你也面临同样的情况。

最新更新