对于现代开发来说,Javascript就是一种垃圾语言

  英文原文:For modern development Javascript indeed is a s̶h̶i̶t̶ dissapointing language

  我很抱歉,但 Crockford 就是坚持这么写的(I’m sorry, but the Crockford arguments do not cut it.)。

  Javascript 在很多方面都烂透了,而且还极其无趣。我就纳了闷了,大家为啥都义无返顾、群情激奋的跳进 Node 学习的大军里。是!Node 是比 Ruby 快,Node 是基于事件模型处理的,但让我无法理解的是——一些人动不动就想把自己的程序用 Node 重构一下,过过脑子行吗!

  Javascript 的继承,深拷贝问题,不是定义一个新的 ECMA 标准就能解决的,不是套个漂亮的语法外壳(比如 CoffeeScript)就能搞定的,不是用 require 实现个标准化或者引入 classes 就可以万事大吉的,ECMA 语言里不是有个引入 classes 的 ActionScript 吗!那玩意跟 Javascript 一样屎,只要大家继续用它,php 框架的现状就是 JS 的未来——一堆一堆的人前赴后继,日以继夜的为这坨屎一样的语言搭框架、写工具。

  我来说一下为什么 Javascript 糟糕,当然了,它也有好的方面。 但是问题就是太不实用,比如说原型继承(prototypal inheritance)就限制颇多——因为这玩意说白了就是 function override,还有就是那句:“万物皆 function” 也是相当的废柴——因为 function 不是一个对象,也不能当做数据结构来承载数据。

  其实真正的吐槽才刚刚开始,随便列几个吧:

  JS 的调用属性

  看这个屎一样的设计,回顾过去,咱们很难苛责语言的设计人员,因为它们可能处于性能考虑。再者,如果不习惯消息-传递机制的语言的话,你会觉得“怎么一些属性可以被调用而另外一些就不可以呢”!

  哈希对象对于 stable 键不可用

  对象和哈希的混合不是一个好点子,因为它违反了对象可以拥有 metadata 的前提,metadata 允许我们建立基本类型系统或者至少各种类型的 introspection。

  函数对象对于类型系统不可用,因为一个对象不携带任何类型信息

  这可是大事,Ruby 的世界里也是这样,感觉所有的东西都在像鸭子一样快乐的嘎嘎叫。我们经常用 Object$class 来获取对象信息,下面是给 HTML 元素加样式的标准的流程:

<div class='<%= model.class %>' id='<%= [model.class, model.id].join %>' >…

it知识库对于现代开发来说,Javascript就是一种垃圾语言,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。