(注* 此文章引起比较大的争论,并不代表OurJS赞同其观点,这是继 JavaScript就是一种垃圾语言 后,另一篇黑JS的文章)
在你的软件职业生涯中,JavaScript不应该成为你的首要语言
作者 Matthew Mombrea
1 月 09, 2014 (几天前,我写了一篇文章关于在你的职业生涯中应该学习的编程语言。这个引起比较大的争论)
在我向大家推荐语言的时侯,一个主要的告诫就是,不要考虑JavaScript。在我没有表达我的观点以前,很多人很快地向我建议 A) JavaScript是显而易见的选择, 还有 B) 我没有把JS加入名单,显得我很无知。在这里我会详细地说明,我为什么不像大多数那样,建议你将JavaScript作为职业生涯中的主力语言。然后我会接受你的评判。
一个反复出现的, 由JavaScript传道士提出观点认为: 她是最简单的能最快起步和运行的编程语言,他们的举例无非是使用记事本编程的能力。他们提到不需要编绎器,他们举例这种语言广泛的全球支持性(在任何浏览器上)。最后他们举例这种语言本身对于初学者来说是多么容易。我100%同意这些有效的观点。
想象一下,你正想成为一个赛车手,然后XYZ团队正在寻找一辆新车。相比找到一辆能在赛道上跑的赛车来说,找一辆自行车去完成自行车比赛是更容易一些。自行车的成本很低,学习曲线很浅,你可以很快很容易的上手。让我们假设你参加自行车竞赛5年以后就可以非常地擅长了。现在你向往的XYZ团队的新职位可能会无视你5年的自行车竞技经验。他们将会雇佣一位在赛车方面拥有更少经验的人,相比你的自行车竞赛经验来说,他们的基础更好,而且未来成长地更快。
如果我招聘一些软件开发工程师,然后一位侯选人进来说他有5年的JavaScript开发经验,这会给面试造成非常坏的映像。这个人缺少一套完整的解决方案开发经验,他们在斜坡上的时间将显著超过那些只有两年例如c,c++,Java,C#,Python,Ruby,PHP开发经验的人。
如果我只雇佣一位Web开发者,这个精通JavaScript的家伙显然更加的有吸引力。因为他加入的只是一个自行车竞赛团队。
我说是软件开发这点很重要,软件工程师,端到端的系统编程,不仅仅是孤立的web开发。[在这里插入反驳理由:Node.js]。是的,Node.js我知道。但是一位有经验的软件专业可以擅长多种语言,他们不需要在各种场合仅使用一种语言。你可以用锤子砍倒一棵树,但是用电锯更有意义。
我承认,JavaScript可以被认为是一门面向对象的语言,我只是认为她不是一个好的例子。尤其作为你的主力语言。你通过JavaScript实现的大多数面向对象语言的途径,会大大降低你掌握其它语言的能力。这本身并不是一件坏事,我只是认为你首先应该接触那些更加通用的面向对象风格,然后你接触基础C风格的面向对象语言会更加地容易。
在我的观念里,理解类和类的继承关系是非常重要的[在这里插点CoffeeScript的事情,是的,我知道]。然后你开始JavaScript开发了,然后你会看到JavaScript的constructor和prototype扮演着OOP的角色。我忽然也想到强类型变量对于软件开发来说非常重要。
除了刚开始那些将JavaScript作为首要编辑语言的观点,这个当然也是对的,但一部分原因也是因为他们都是些业余的“程序员”。在这方面,JavaScript是完美的第一语言。如果你只想会一点蹩脚的编程,如果你想调整你的Wordpress博客,或者仅将编程视为一种业余爱好,我衷心推荐你使用JavaScript。这不是说JavaScript更容易掌握,只有很少的人能够精通JavaScript,而且那些人可能已经在其他语言方面积累了非常丰富的经验;但是也有很多人写了一点JS就认为自己是一名程序员。你不会想成为他们中的一员。
如果你想在软件开发做出一番事业,这里有很多路可以走。有很多好的语言可以选择,这个决定可能已经在大学里做出了(我所知道的计算机科学里没有教JavaScript的)。在这篇文章中提到的这些,是我不建议那些想成为专业程序员首先学习JavaScript的原因。
在你的软件职业生涯中,JavaScript不应该成为你的首要语言
作者 Matthew Mombrea
1 月 09, 2014 (几天前,我写了一篇文章关于在你的职业生涯中应该学习的编程语言。这个引起比较大的争论)
在我向大家推荐语言的时侯,一个主要的告诫就是,不要考虑JavaScript。在我没有表达我的观点以前,很多人很快地向我建议 A) JavaScript是显而易见的选择, 还有 B) 我没有把JS加入名单,显得我很无知。在这里我会详细地说明,我为什么不像大多数那样,建议你将JavaScript作为职业生涯中的主力语言。然后我会接受你的评判。
她没有一个好的基础
一个反复出现的, 由JavaScript传道士提出观点认为: 她是最简单的能最快起步和运行的编程语言,他们的举例无非是使用记事本编程的能力。他们提到不需要编绎器,他们举例这种语言广泛的全球支持性(在任何浏览器上)。最后他们举例这种语言本身对于初学者来说是多么容易。我100%同意这些有效的观点。
想象一下,你正想成为一个赛车手,然后XYZ团队正在寻找一辆新车。相比找到一辆能在赛道上跑的赛车来说,找一辆自行车去完成自行车比赛是更容易一些。自行车的成本很低,学习曲线很浅,你可以很快很容易的上手。让我们假设你参加自行车竞赛5年以后就可以非常地擅长了。现在你向往的XYZ团队的新职位可能会无视你5年的自行车竞技经验。他们将会雇佣一位在赛车方面拥有更少经验的人,相比你的自行车竞赛经验来说,他们的基础更好,而且未来成长地更快。
如果我招聘一些软件开发工程师,然后一位侯选人进来说他有5年的JavaScript开发经验,这会给面试造成非常坏的映像。这个人缺少一套完整的解决方案开发经验,他们在斜坡上的时间将显著超过那些只有两年例如c,c++,Java,C#,Python,Ruby,PHP开发经验的人。
如果我只雇佣一位Web开发者,这个精通JavaScript的家伙显然更加的有吸引力。因为他加入的只是一个自行车竞赛团队。
我说是软件开发这点很重要,软件工程师,端到端的系统编程,不仅仅是孤立的web开发。[在这里插入反驳理由:Node.js]。是的,Node.js我知道。但是一位有经验的软件专业可以擅长多种语言,他们不需要在各种场合仅使用一种语言。你可以用锤子砍倒一棵树,但是用电锯更有意义。
JavaScript是一门糟糕的面向对象语言典型例子
我承认,JavaScript可以被认为是一门面向对象的语言,我只是认为她不是一个好的例子。尤其作为你的主力语言。你通过JavaScript实现的大多数面向对象语言的途径,会大大降低你掌握其它语言的能力。这本身并不是一件坏事,我只是认为你首先应该接触那些更加通用的面向对象风格,然后你接触基础C风格的面向对象语言会更加地容易。
在我的观念里,理解类和类的继承关系是非常重要的[在这里插点CoffeeScript的事情,是的,我知道]。然后你开始JavaScript开发了,然后你会看到JavaScript的constructor和prototype扮演着OOP的角色。我忽然也想到强类型变量对于软件开发来说非常重要。
结论: 每个人都 “懂” JavaScript
除了刚开始那些将JavaScript作为首要编辑语言的观点,这个当然也是对的,但一部分原因也是因为他们都是些业余的“程序员”。在这方面,JavaScript是完美的第一语言。如果你只想会一点蹩脚的编程,如果你想调整你的Wordpress博客,或者仅将编程视为一种业余爱好,我衷心推荐你使用JavaScript。这不是说JavaScript更容易掌握,只有很少的人能够精通JavaScript,而且那些人可能已经在其他语言方面积累了非常丰富的经验;但是也有很多人写了一点JS就认为自己是一名程序员。你不会想成为他们中的一员。
如果你想在软件开发做出一番事业,这里有很多路可以走。有很多好的语言可以选择,这个决定可能已经在大学里做出了(我所知道的计算机科学里没有教JavaScript的)。在这篇文章中提到的这些,是我不建议那些想成为专业程序员首先学习JavaScript的原因。
扯
对于一个十几年的作家来说,用英文还是中文来写一篇好的文章,是不是语言也仅此一工具而已?我觉得作者说的或许有些道理。
网页设计和这个主题没有联系啊,网页设计属于视觉设计吧,不能算程序员的
作为一名前端工作者,我从来没把自己看做为程序员。
字里行间充满了所谓的“程序员”优越感, 用JS的就不是程序员, 然后你就瞧不起了是吧 , 你优越了是吧, 真正喜欢钻JS的本来就不是程序员,那叫前端, 真心不知道你那可怜的优越感从何而来,现实中的你该是有多么多么的自卑, 真搞笑 , 什么时候“专业的程序员”也成了炫耀的资本优越的所在?
偏执论.对编程文化持有偏见,井底之蛙的见解
评论有的,也基本上就是我想说的。 1.作者根本不懂js 2.很多后端大师其实前端写的比后端好. 3.作者纯属 一派胡言,误人子弟 a lot of shit. 4.0 bug门这种事发生在有这些观点的开发身上不足为奇。