为什么总有人黑 JavaScript?就真的那么差吗?——爱创课堂

划重点

我真的不理解为什么一些人总是黑 JavaScript。我喜欢 JavaScript,它不是万能的,但它最接近于我们所期望的能“运行在任何地方”!看下文详情说明。

使用 JavaScript,你可以编写应用让它运行在:

  1. 你的浏览器上(几乎所有浏览器)。
  2. 你的手机和平板电脑(比如 React Native,Cordova)
  3. 你的桌面软件(比如 electron 运行在 mac、linux 以及 windows)。
  4. 你的服务器上即 node。
  5. 甚至在你的数据库中(比如 mongo db)。

使用 JavaScript,你不需要下载一个 4GB 大小的 IDE 来创建一个 hello world 程序,你不需要等待 30 秒来编译然后才能执行你的 app,你所需要的一切只是一个文本编辑器。

的确 JavaScript 有缺陷,但是,其他任何语言在适用性和灵活性方面都与 JavaScript 相距甚远。

我对 JavaScript 工具、框架和库的革新(和爆发)感到喜悦。我知道它可能让学习者心累,但是这些新东西很好玩,而且,你没必要学全所有的新东西啊。

我希望说,我们能停止在 JavaScript 之上创造“语言”,也停止在你的项目中使用这些新语言。我们已经有足够多这些语言了:TypeScript、Elm、CoffeeScript 以及其他。我强烈推荐你不要在你的项目中使用这些新语言。

我将描述为什么不要使用它们,但是首先,我想表达的是,我很欣赏这些创造,它们为我们的开发提供了多样性的选择,而且尤为重要的是,我非常感谢那些创造了伟大工具和“语言”的人。

我曾经是一名坚定的 CoffeeScript 粉。几年前我决定在一个项目里使用它,而随着项目发展我很快意识到这是一个我曾经做出的最糟糕的选择,随后我花费了六个月的时间深入项目,把整个项目完全用 JavaScript 重写了一遍。

以下是为什么使用 CoffeeScript 是个坏选择的一些理由:

  1. 我需要额外的构建步骤来“编译”它到 JavaScript,不是什么大问题但有时候很烦。
  2. 它难以调试,因为你在浏览器中看到的是编译后的代码,与你的 CoffeeScript 源文件中的内容不同 —— 大部分情况下,它的可读性也很好,但是你还是需要在脑中转换一下。
  3. 目前最大的问题是对任何加入团队的新成员来说存在比较陡峭的学习曲线,因为他们必须要学习一门新的语言。
  4. 大部分在线的例子(99%)都是用 JavaScript 写的。
  5. 团队开始丧失一部分 JavaScript 技能。慢慢地,JavaScript 代码开始读起来像是另一种语言,我们希望所见的一切都是 CoffeeScript 的。
  6. 我们不能完全跟上 JavaScript 的发展脚步,比如 ES6 —— 箭头函数、解构等等。
  7. 我们不能直接将几行代码放在 script 标签里运行来做一些简单的测试,而如果我们要做测试,我们还得先用 JavaScript 来测,然后在测试之后将它“翻译”回 CoffeeScript。

虽然我没有深入使用 TypeScript 或 Elm,但我想它们应该也有类似的问题。

RE: TypeScript —— 非常酷的概念,我理解使用它的一些好处,但我们为什么要强迫一个动态语言“表现得”像静态语言那样?C# 正绞尽脑汁地想要表现得更动态一些,而现在我们又在绞尽脑子地让 JavaScript 表现得更静态一些。搞什么呀!!!

长话短说(TL;DR)。

  1. 别再黑 JavaScript,开始喜欢 JavaScript。
  2. 别在 JavaScript 之上搞其他语言。
  3. 拥抱 JavaScript 的动态特性。
时间: 2024-11-05 22:43:18

为什么总有人黑 JavaScript?就真的那么差吗?——爱创课堂的相关文章

《总有人因为清醒自知而走的更远》

我最大的正能量源泉是一个肤白貌美的勤奋姑娘.她就读于北京某高校,两年制的金融学硕士,现在已经毕业,在某银行北京分行上班.在研一的这一年间,她做了如下事情:(1)专业排名前3%,关键是最让我头痛的高级微观经济学和高级计量经济学,他都考了90+,其中一门甚至是95+:(2)考过了CFA的一级和二级,考过了CPA的五门:(3)学习之余她还从从容容地实习着,两家公司都是全国排名靠前的券商. 去年冬天,在如此严峻的找工作形势下,她也不免磕磕绊绊,在家乡省会城市拿到了一个相对较好的offer之后,家人难免劝

银︱钻︱娱︱乐电话13368839993你做梦的时候,总有人在努力

我认识Judy的时候,她160斤,配着158cm的身高,看起来是我的两个.在我们当同事期间,我见过她不吃饭,见过她少吃饭,见过她只吃黄瓜,总而言之,没见瘦下去.我以为她一直就是说说罢了,真的就是说说,毕竟160斤减肥可不仅仅是饿两天跑跑步能解决的. 一年以后,我听说她瘦了,只剩下130斤了,我特别惊讶,虽然130斤相对于158cm的身高依然不算瘦,但对于160斤来讲,已经是足够大的进步.我还在网上看见了她的近照,果然眉清目秀得很多很多. 再过一段时间,她瘦身到98斤,还出了一本书,送了我一本.果

Eclipse就真的那么差吗?

作为一个从2005年就开始使用Eclipse,扩展Eclipse,开发基于Eclipse产品的软件工程师,作为一个曾经是两个Eclipse.org开源项目的Committer, 作为一个不断尝试各种平台(Windows, Redhat, Ubuntu, MacOS), 以及各种IDE/编辑器(Nodepad++, Vi, Emacs, EditPlus, Textmate, Sublime, IDEA, Eclipse, Turbo C, Turbo pascal, Delphi)的开发者,我悲

请别总用“黑科技”给自己壮胆

一个思维逻辑是,你展示的技术确实够黑够未来,好吧,未来的东西总是给人一种贵贵的.不实用的感觉,谁会乐意给你的试验品当小白鼠.如当下的许多3D打印技术. 文/张书乐 刊载于<株洲日报>2016年6月12日天台时评版 最近各种媒体报道中都常常看到一个新词--黑科技.尤其是互联网圈子或IT产业,但凡推出个什么新产品,总免不了在宣传文稿上特意加上个设问句:这个看似不起眼的产品里藏了多少黑科技.这股潮流袭来,似乎连本地的媒体也不能免俗,前不久在一篇报道里,就以"黑科技"为标题,报道了

盗号,黑电脑,黑网站,真的666

盗号,黑电脑,黑网站 要啥有啥 ================================================================================================== 具体方法: 1.此文章是我家经过千万次实验得到的珍贵的成果,是我们的辛勤汗水啊!所以任何人未经允许不可以乱保存的. 2.本文将教您如何成为一名高级的.绝顶聪明的.真正让人崇拜的盗号专家, 如果有人看了本文仍然无法成功的盗别人号的.., 那么我就把 这本珍藏的秘籍送给他

微软为什么总招人黑?

离我们日常生活最近的科技公司非苹果.谷歌.微软莫属,苹果提供最高端最好用的智能手机,谷歌的手机系统安卓无处不在,  微软则是个人电脑操作系统的垄断商, 只要使用电脑,就离不开微软, 当然使用mac的用户除外. 然而奇怪的是苹果和谷歌两家公司总是受到用户的追捧和爱戴, 用户会说苹果的手机是世界上最好用的手机,IPad是21世纪科技界最伟大的创新,mac电脑是高端和品味的象征: 用户会说谷歌是最精准的搜索引擎, 在国内要不是和中国政府对着干,这个领域根本没百度什么事.谷歌家的安卓系统,把智能手机拉进

《在你彷徨时候,总有人在前行》

生活是需要有努力和拼搏精神的.你所能做的,就是抛却迷茫彷徨,拥抱激情洒脱,在人生道路上含着眼泪,忍着疼痛,淌着汗水,奋力向前跑.——张天怡 价值观——职业的探索也不可能一帆风顺,先别说你的白日梦不可能实现,就是你现在努力的方向也很有可能不是你最终要去的方向. 乔布斯“追随我心,并不是指我心里的目标或信念是不变的,而是说我不断在问自己的内心我要的是什么,并努力追寻它.” 俗语云“做好自己喜欢的事情,是本能:做好不喜欢的事情,那才是本事.” 扬长避短,发掘核心竞争力:对于一个集体,需要克服的是“短板

爱创课堂每日一题-Javascript垃圾回收方法?

标记清除(markand sweep) 这是JavaScript最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为"进入环境",当变量离开环境的时候(函数执行结束)将其标记为"离开环境". 垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了 引用计数(referencecounting) 在低版本IE中经常会出现内存

阿里云性能真的是差到了极点……

一个简单的SELECT COUNT(*) 要6秒 select count(*) from tb where status=1 #运行花费6-10秒 吞吐能力 阿里云 [[email protected] ~]# cd /tmp && dd if=/dev/zero of=t.img bs=4096 count=10000 conv= ync 10000+0 records in 10000+0 records out 40960000 bytes (41 MB) copied, 0.99