我应该花时间学习Coffeescript吗?[关闭]


11

我是一名自由职业者,我通过帮助他人编写更好的Java脚本代码来赚钱。我对大多数JavaScript框架都有很好的经验。

我想知道是否值得花时间学习咖啡脚本。谁应该学习它,谁不需要?


这是一个相当模糊的问题。谁应该学习?谁愿意。这只是一个偏好问题,最终无论如何都会被翻译成JS。


从专业上来说,当您看到足够多的想要的广告时就可以开始学习东西,除非您碰巧真正不喜欢它,并且可以选择。
Erik Reppen 2013年

Answers:


8

首先,Coffeescript并非很难学习。在短短几天内,我就对它感到很满意,而且我的Java语言非常业余-我相信,如果您有Java脚本方面的才能,那么它会更快地被您使用。

至于是否值得学习,我认为这是一个只有您才能回答的问题。我怀疑这对您是否会像对我一样有帮助-来自Ruby,我发现Javascript的语法令人难以置信,而且我会通过在此处添加分号或在其中添加括号来不断引入错误。Coffeescript使我更容易编写工作代码。但是,如果您已经对编写Java脚本感到满意,那么我会发现您可能觉得它很麻烦。

我的建议是快速浏览CoffeeScript文档,并尝试确定您个人是否希望代码看起来像现在那样,还是示例代码在那里那样,您将得到答案。只是不要被学习曲线吓到-一点都不陡峭。


是的,但是当我不得不使用YUI或JQuery编写代码时,它有什么帮助?
东和尚

很有帮助。YUI虽然是垃圾。
Rein Henrichs

@Akshar Prabhu Desai。CoffeeScript的目的是破坏现有的JavaScript库链接,请阅读第二段
OnesimusUnbound,2011年

7

我自己的经验是,学习CoffeeScript可以帮助我更好地理解JavaScript。当然,我是一个极端的例子-我是一名普通的JavaScript程序员,因此我决定写一本关于CoffeeScript的书:http : //pragprog.com/titles/tbcoffee/coffeescript

因此,有了这种偏见,我会说:每个不是JavaScript的绝对专家(并且想成为一个专家)的人都应该学习CoffeeScript。它为您提供了有关语言的“优秀部分”的全新视角。JavaScript的创建者Brendan Eich曾多次称赞CoffeeScript为JavaScript提供了优雅的语法而又不模糊其语义。

CoffeeScript将在您的自由职业中直接帮助您吗?那很难说。当然,要求CoffeeScript代码的工作没有JavaScript代码的工作那么多(尽管问“使用CoffeeScript可以胜任这项工作吗?”从来没有什么坏处),但是,竞争的CoffeeScript自由职业者的数量几乎没有要么。当然,只要承租人没有特定的代码样式要求,您就可以提交已编译的JavaScript。CoffeeScript的输出可读性很强,尽管当然不如专家手写的JavaScript更好(假设专家知道如何为人类编写代码...)。

最后,我注意到CoffeeScript有一个很棒的社区,您可以寻求帮助。通常,新语言的好处之一是只有精明的程序员才能学习它们(请参阅Paul Graham的文章“ Python悖论 ”)。因此,尽管CoffeeScripters比JavaScripters少,但您可能会发现通过在CoffeeScript领域结识朋友,可以更轻松地解决难题。


3

Coffeescript主要迎合那些使用Python或Ruby成为程序员的人。我曾经学习过python,尽管我使用过其他类似c的语言,例如c#,php或javascript本身,但我总是发现它们的语法繁琐,冗长且丑陋。必须处理所有这些花括号,分号和行噪声,这很烦人。

Coffeescript借鉴了这些语言的最佳创意,同时保持了javascript的“好部分”不变。它只是在顶部简单地添加了更好,更具表现力的语法。有些事情需要使用javascript中的几行代码,而这些代码可以用coffeescript中的一个衬里来表示,并且这些方式更加直观,清晰和富于表现力。

示例:如何创建一个从3到10的数字数组?

myarray = [3..10]

您如何创建另一个项目,其前一个项目乘以三?

newarray = [我的iarray中的i * 3]

只需尝试使用简单的JavaScript进行操作,您就会知道为什么Coffeescript是上帝给我们许多人发送的...


0

我大约在6个月前完成了从JavaScript到CoffeeScript的转换,我喜欢它,在很多地方,语法都使生活变得更加轻松。

例如,您可以在任务中解构对象,所以我只写了一些这样的代码

func = ({io: io, el: el} -> ...

因此,您将其传递给对象并将其分解成各个部分,我真的很喜欢coffeescript

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.