为什么用coffeescript而不是javascript?[关闭]


24

我认为以某种方式构建一种可编译为另一种语言的语言从一开始就是一个坏主意,而不是从一开始就正确地学习javascript。查看道格拉斯·克罗克福德的好零件,然后您就迷上了。而且javascript并不难-无论语言如何,编写好的代码都很难!如果您使用javascript编写糟糕的代码,则可能会用coffeescript或lattescript编写糟糕的代码,或者今天的风格。并说coffeescript语法很漂亮,这让我感动。我喜欢花括号和C语法-最好使用类似这样的语言(对不起,VB!)。再有更多的玩具,语言和框架可以一遍又一遍地做同样的事情,这对我来说不再是进步!


5
因此,将Java编译为字节码并将C#,VB.NET和其他.NET语言编译为IL也是个坏主意吗?
Oded

10
不同之处在于,人们通常不直接使用字节码和IL编程(除非我弄错了),而Java编程则很常见,因此他会感到惊讶/疑问。
wildpeaks

14
这个“问题”包含三个感叹号,没有问号
azheglov 2011年

如果您想用IL编写代码,那我错了。我只是认为javascript就足够了。并且当它移至ECMAScript 5并将在浏览器中实现严格模式时,它将变得更好。但是我并不是说做其他事情是完全错误的。我想讨论一下优缺点,以及为什么您更喜欢js以外的东西。
marko

3
___很烂,对吗?
TRiG 2012年

Answers:


21

CoffeeScript在JavaScript之上主要是一种不同的语法。

如果您了解JavaScript并真正了解JavaScript,则允许您使用CoffeeScript(如果您说的话),请选择空格和 ->

我认为JS和CS之间的区别与争论相同

if (thing)
{
  // code
}

if (thing) {
  // code
}

(后者更好。做前者的人都应该被枪杀)。

无论如何,coffeescript的主要问题是让人们进入(主要来自rails)然后在不知道javascript的情况下编写coffeescript。

因此,coffescript具有与jQuery相同的缺陷。它们只是不良程序员编写更多不良JavaScript的更多切入点。我们确实需要以某种方式解决代码质量。


8
offopicthe latter is better. Anyone who does the former should get shot-它取决于语言-我喜欢第一种风格,但与我的主要语言JS 兼容;)
c69 2011年

1
it depends on the language.我认为他的意思是关于JavaScript。
Vardhaman Deshpande

1
还有一些您在CoffeeScript中根本做不到的事情。您对对象创建等的粒度控制要少得多。
埃里克·雷彭

只是增加了C69的评论,格式化第一种方式可能会导致实际的问题:encosia.com/...
Buzzology

1
(后者更好。任何使用前者的人都应该被枪杀)-证明!无论谁,何时何地,极端主义都是有害的。
hrishikeshp19

13

对JavaScript作为“玩具”语言存在误解。这使人们将其视为可玩的东西,而不是用于大量的东西。再加上较低的进入门槛(即您已经拥有一个浏览器和一个文本编辑器,因此您可以开始编写JavaScript),最终导致许多不了解该语言的人编写大量代码,并且“骂“ JavaScript”。

还有不良JS不是因为知名度大增的其他语言的高(绝对)量。随着不良代码在整个网络中传播以及人们查看未经准确性或良好实践审查的页面上的源代码,不良习惯变得司空见惯,因此JavaScript最终以一个不良名称而告终。

由于这些原因,人们感到有必要构建可转换为JavaScript的更熟悉(更“真实”)的语言。他们想要舒适的经典OO,静态键入以及其他语言中出现的其他功能。他们看到了由缺乏经验的程序员使用JS造成的怪异现象,并认为这一定是由于该语言的“根本性缺陷”(引用Google)所致。

</ rant>

无论如何,使用您想要的。我会坚持使用我的对象文字,动态类型和原型OO,谢谢。


2
嘿,但是飞镖不能解决我们所有的问题!(</
sarcasm

但愿如此!(不是飞镖评论!)
marko

现在是2018年,JavaScript屈服于以下压力class:-/
ankush981'3

4

我认为这样做的好处(免责声明:除了在网站上玩示例之外,我没有使用过CoffeeScript)是它使JavaScript对其所迎合的人群(即Ruby / Python人群)更加直观。

我个人认为不需要CoffeeScript,因为我喜欢JavaScript语法。但是,我知道它如何有用。


1
是的,我认为ruby / python语法对我来说似乎是可疑的,因为我主要使用Java风格的语言(例如Javascript,C#,PHP,actionscript和java)进行编码。
marko

4
在我看来,大多数情况下(->和和=>语法除外)都很好,因为我已经使用了Ruby / Python,但是由于它无处不在,所以我们不应该尝试隐藏JavaScript。是的,它有些笨拙,但是学习“纯” JavaScript是IMO更好的投资回报,因为“纯” JavaScript在野外泛滥。
韦恩·莫利纳

0

无论您是否喜欢该语法都是主观的,但是事实是CofeeScript会处理一些令人讨厌的JavaScript缺陷。当然,仍然尚不清楚是否值得引入一种新语言并应对编译步骤。


6
CoffeeScript不会“烦人的JavaScript疣”,它只是提供了糖和语法。我自己可以避免疣,我也可以。
雷诺斯2011年
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.