为什么我不建议你将JavaScript作为主力语言


发布者 ibloging  发布时间 1397547429336
关键字 大话编程  JavaScript 
(注* 此文章引起比较大的争论,并不代表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可以被认为是一门面向对象的语言,我只是认为她不是一个好的例子。尤其作为你的主力语言。你通过JavaScript实现的大多数面向对象语言的途径,会大大降低你掌握其它语言的能力。这本身并不是一件坏事,我只是认为你首先应该接触那些更加通用的面向对象风格,然后你接触基础C风格的面向对象语言会更加地容易。

在我的观念里,理解类和类的继承关系是非常重要的[在这里插点CoffeeScript的事情,是的,我知道]。然后你开始JavaScript开发了,然后你会看到JavaScript的constructor和prototype扮演着OOP的角色。我忽然也想到强类型变量对于软件开发来说非常重要。 

结论: 每个人都 “懂” JavaScript


除了刚开始那些将JavaScript作为首要编辑语言的观点,这个当然也是对的,但一部分原因也是因为他们都是些业余的“程序员”。在这方面,JavaScript是完美的第一语言。如果你只想会一点蹩脚的编程,如果你想调整你的Wordpress博客,或者仅将编程视为一种业余爱好,我衷心推荐你使用JavaScript。这不是说JavaScript更容易掌握,只有很少的人能够精通JavaScript,而且那些人可能已经在其他语言方面积累了非常丰富的经验;但是也有很多人写了一点JS就认为自己是一名程序员。你不会想成为他们中的一员。

如果你想在软件开发做出一番事业,这里有很多路可以走。有很多好的语言可以选择,这个决定可能已经在大学里做出了(我所知道的计算机科学里没有教JavaScript的)。在这篇文章中提到的这些,是我不建议那些想成为专业程序员首先学习JavaScript的原因。





回复 (11)
  • #
  • #1 kaka 1397743868384

  • #2 Jim 1397730469000
    那是因为我们没得选!这个你知道么
  • #3 空灵魂 1398003307000
    说的有一定的道理,但有点为了证明论点而强加论据的感觉。 我觉得JS是一门代码异常精简,精简到其它语言有必要学习、参考的语种。 另外,学会多门语言确实是需要的,PHP .NET C++ JAVA,每一门语言都有它的特点和特长,能做到有需求就能顶上,才是大才。
  • #4 redstone 1398042380000
    这个蛋扯的有点厉害。淡然牛逼程序员从来不会把某个特定的语言作为主力语言,对于10几年开发经验的程序员,语言仅仅只是个工具。
  • #5 oceannut 1398393021000
    @redstone

    对于一个十几年的作家来说,用英文还是中文来写一篇好的文章,是不是语言也仅此一工具而已?我觉得作者说的或许有些道理。
  • #6 彼岸花 1398398524000
    看你要从事什么样的项目开发吧。 要做网页设计你不能说先学 c 吧。等你学成也饿死了呗.
  • #7 超级木木1164在搜狐 1399610844000
    @彼岸花

    网页设计和这个主题没有联系啊,网页设计属于视觉设计吧,不能算程序员的
  • #8 still_sun 1406193669454

    作为一名前端工作者,我从来没把自己看做为程序员。

  • #9 姬户幼 1433388299328

    字里行间充满了所谓的“程序员”优越感, 用JS的就不是程序员, 然后你就瞧不起了是吧 , 你优越了是吧, 真正喜欢钻JS的本来就不是程序员,那叫前端, 真心不知道你那可怜的优越感从何而来,现实中的你该是有多么多么的自卑, 真搞笑 , 什么时候“专业的程序员”也成了炫耀的资本优越的所在?

  • #10 蒋尖见 1457244727620

    偏执论.对编程文化持有偏见,井底之蛙的见解

  • #11 史央好 1562595924072

    评论有的,也基本上就是我想说的。 1.作者根本不懂js 2.很多后端大师其实前端写的比后端好. 3.作者纯属 一派胡言,误人子弟 a lot of shit. 4.0 bug门这种事发生在有这些观点的开发身上不足为奇。

微信扫码 立即评论