CoffeeScript还是纯JavaScript?

时间:2011-07-21 14:31:04

标签: javascript asp.net coffeescript

当普通ASP.net C#程序员(除了编写一些hide()show()效果之外的JavaScript知识非常差)将不得不从构建ASP.net WebForms应用程序转换为RIA JavaScript应用程序(客户端 - 服务器体系结构)喜欢)。

对他来说可能不那么痛苦了:

  • 学习CoffeeScript并将其用于“编码JavaScript”??
  • 正确学习JavaScript并直接使用它?

我正在考虑

  • 正确调试
  • 编码语法
  • ...

有没有人有过类似场景的经历?

5 个答案:

答案 0 :(得分:11)

TL; DR:最好的办法是学习JavaScript。

图书:

切角:

如果你想偷工减料/有死线要看Script#或其他C# - > JS编译器。

关于CoffeeScript:

但是我不同意@jAndy的部分内容。我相信CoffeeScript足够稳定可以使用。

您可以从中学习不需要JavaScript知识。

如果你喜欢coffeescript使用它。我更喜欢JavaScript语法,所以我使用它。

学习RIA:

我个人觉得CoffeeScript vs JS是一个偏好的问题,你仍然需要学习HTML / CSS / DOM。

RIA开发还有很多东西,只知道JavaScript。

CoffeeScript问题:

然而,没有学习JavaScript会有一个很大的问题,调试coffeescript就意味着调试自动生成的JavaScript,如果你不知道,那就很痛苦。

个人推荐:了解ES5。没有JS知识的调试是一场噩梦。

JavaScript不是一种糟糕的语言:

有些人认为JS是一种可怕的语言,其原因是ES3的平庸实现。但是EcmaScript5是一种可靠而可爱的语言。人们将浏览器合规性和浏览器错误与语言混淆。我个人很想说学习ES5比学习CS更好。

答案 1 :(得分:6)

我是CoffeeScript: Accelerated JavaScript Development的作者,刚刚出版。我写这本书的方法 - 与Smooth CoffeeScript形成鲜明对比,本篇帖子中的其他人提到过 - 我试图向读者传授CoffeeScript和JavaScript。我对“我应该学习哪些内容?”的看法。问题一直是:如果不学习JavaScript,就不应该学习CoffeeScript。

调试是理解JavaScript的一个好的,显而易见的理由。一个不太明显的原因是,作为现实世界中的CoffeeScript开发人员,您将依赖于JavaScript库(如jQuery)。您需要能够理解这些库的文档(理想情况下,它们的源代码)。

好消息是这两种语言非常非常接近。 CoffeeScript没有自己的标准库;它不会修改原型;输出与输入的顺序相同(非常小的例外情况除外,例如能够写f() if x而不是if x then f())。因此,如果您已经拥有一点 JavaScript知识 - 如果您是众多开发人员之一,他们并不完全理解this的含义,或者原型继承是如何工作的 - 那么我认为你应该开始学习CoffeeScript。在此过程中,您将成为更好的JavaScripter。

将CoffeeScript和JavaScript视为同一语言的两种方言。在一个人中获得流利,你会发现另一个是自然而然的。

答案 2 :(得分:4)

过去几天我们在Stackoverflow Javascript Chat对这个主题进行了长时间的讨论。一般的结论是,CoffeeScript是一个很好的工具,可能会创建“ok”的javascript代码。但是,如果你知道自己在做什么,你可能希望直接在javascript中编码,而没有“更高级别”的语言,而这种语言是半编译的。

我对CoffeeScript并不是很有经验,所以如果我说错了,我会很乐意得到纠正。例如,我无法分辨CoffeeScript对ECMAscript3到5(甚至6)差异的反应。 CoffeeScript会自动为每个代码创建回退代码,还是只生成ES3代码?

所有这些问题和怀疑是我尽可能使用普通Javascript的原因之一。如果你不在乎这么多事情,你需要快速的结果,这可能是一个很好的方式。

答案 3 :(得分:3)

CoffeeScript提供更短的语法,一些合成糖,并帮助避免几个javascript陷阱 - 如0 ==“”。

就是这样。而已。没有惊人的,令人兴奋的概念,没有完全不同的方法。 如果你是一个好的javascripter,你可以使用coffeescript将你的效率提高10-15%。您将始终需要编译源代码,但这不是什么大问题。例如,在portlet创建者看来,他们每次想要查看更改时都会编译源。世界仍然在旋转:)用一些聪明的方法,你不会感到不舒服。

但是,从javascript开始是更好的方法。 Coffeescript很不错,但距离承认它是一个生产标准有很大的距离。我甚至可以想象当coffeescript发展将被放弃的情况。它可能会给你带来一些(不是很大但很烦人)的麻烦,如果你那时候会有大量的coffeescript代码。

此外,coffescript中的编码不会让你免于学习很多不同的东西 - 关于DOM,关于事件,关于基本对象等等。我再说一遍,这是方式,更好地学习javascript。然后,当你已经拥有javascripter的经验时,由你来决定是否需要使用任何特定的js编译器。你知道,这就像吸烟一样。这是你的选择,但你应该是成年人)))

答案 4 :(得分:0)

我对人们的建议是尽早跳上咖啡。你必须把它编译成js,所以你会看到你编写的内容编译,因为你的问题的大部分答案都是javascript,你自然会同时学习。并使用此工具:http://js2coffee.org/。尝试使用coffeescript将使你成为一个更好的javascripter,我看到很多后端开发人员迁移到javascript并且他们写的代码非常糟糕,很可能他们也没有编写出色的后端代码,但是,但是,如果他们正在编写coffeescript,他们会清理他们的代码,并开始自然地更好地编写他们的代码。

我们处在一个伟大的领域/特别是安全方面,但是保持最新,强烈建议采用未来的技术coffeescript现在随附RubyOnRails,尽管我不使用RubyOnRails已经足够我采用,因为如果一个项目出现在我必须使用它的地方,我不是从头开始。

考虑到人们在C#早期获得的所有资金,早期的RoR,早期的JQuery ......有很大一部分jQuery用户从不费心去学习如何编写自己的插件,这非常容易做到,而且只有合并其他人,或者他们对代码重用的想法是复制和粘贴。

在这个领域取得进展并不需要太多。学习使事情变得最有效的语言,让你不要养成不良习惯,然后学习创建可扩展的插件或任何开源项目,你永远不会因工作而受伤。

简而言之,如果你试图推动你可以做的事情,那么学习javascript是不可避免的,因为开发人员可以通过coffeescript来争取同行竞争同样的工作。