Javascript大师说服我,我应该使用Javascript过度编译为js语言,比如Dart或Typescript
您好,我即将开始开发大规模前端应用程序,我正在研究什么是客户端生态系统的最佳选择。我是一个有Java背景的人,做了一段时间的Spring应用程序,在我空闲的时间里,我在我的私人项目中工作,它的大部分逻辑部分都驻留在浏览器中。这是一个基于web的图像处理和图表应用程序,需要大量的图形处理、高级用户交互(如拖放),我希望代码库足够大。我处理过写得很糟糕的大型js代码库。我很头疼。然后我对javascript产生了坏名声。起初我在看谷歌网络工具包。但我发现它不适合我的应用程序,在GWT中开发的成本非常昂贵,因为它的抽象非常复杂。我完成了研究和计划阶段。最近我也换了Ruby做我的日常工作 我从一开始就在跟踪开发,对它印象深刻。我喜欢类库、mixin、内置库方法(对我来说,这是Javasript的巨大优势)、流/承诺和Web组件等特性。我喜欢它的严格性。dart语言的可选静态类型将应用程序的错误行为降至最低,并帮助我编写更有效/优化的代码。重要的是,我可以应用Java世界中使用的熟悉的设计模式和编程技术。现在我决定继续,或者给它更多的分数 最近,我花了很多时间发现Javascript的更高级用法。刚刚读完约翰·雷斯格的《JavaScript忍者的秘密》,我的眼睛完全睁开了。我可以看到使用RequireJS和Grunt可以管理我的大型代码库。我读过一些人的观点,他们说使用Dart有长期风险。关注的问题是:Javascript大师说服我,我应该使用Javascript过度编译为js语言,比如Dart或Typescript,javascript,dart,client-side,Javascript,Dart,Client Side,您好,我即将开始开发大规模前端应用程序,我正在研究什么是客户端生态系统的最佳选择。我是一个有Java背景的人,做了一段时间的Spring应用程序,在我空闲的时间里,我在我的私人项目中工作,它的大部分逻辑部分都驻留在浏览器中。这是一个基于web的图像处理和图表应用程序,需要大量的图形处理、高级用户交互(如拖放),我希望代码库足够大。我处理过写得很糟糕的大型js代码库。我很头疼。然后我对javascript产生了坏名声。起初我在看谷歌网络工具包。但我发现它不适合我的应用程序,在GWT中开发的成本非常
飞镖很容易学。最难的部分是你在为Web开发时所面临的所有特性(CSS、浏览器错误、客户端/服务器应用程序架构等),语言本身通常是最简单的问题。我赞成普通的JavaScript。任何时候,当您引入一种编译成JavaScript的新语言时,您都会在框架引入的众多层之外得到另一层抽象。您最好将时间花在评估JavaScript框架上,而不是学习一种转换成另一种语言的语言 我构建了大型前端应用程序,你最好学习前端技术,因为相信我。当应用程序代码或浏览器本身出现bug时,您需要了解它们 由于您来自Java背景,假设每台计算机操作系统至少有4个JRE可用,但您不确定它是哪一个。哦,所有这些JRE都是由不同的供应商构建的。现在,您需要构建一个厚客户机GUI,并希望编写在编译时转换为Java的Ruby,因为您了解Ruby,但不了解Java
你也面临同样的情况。我回答了一个类似的问题。正如你在我的总结中看到的,我也不认为这些理由足以放弃飞镖的好处。我主要关心的是如何找到Dart程序员,因为您将自己的应用程序描述为巨大的,但Dart非常直观,任何具有类似语言背景的人都可以很快了解它。“另一层抽象”如果您使用Dart编写良好且经过测试的代码,这并不是一个问题,编译器将生成比手写js更高效的js。我假设dart2js编译器在所有可能的情况下都经过测试,以尽量减少副作用。将JQuery或下划线视为另一个抽象层,因为我不知道它的每一个细节。因此,我可以看到编译后的dart:core代码是下划线,dart:html代码是jquery。无论如何,像一些JS框架一样,抽象层是必要的,以抽象出JS的丑陋和局限性以及浏览器的差异。为什么不使用适当的抽象来提供工具(自动完成、过梁、摇树、缩小)