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

Kris_zcl 发布于 2014/04/15 15:48
阅读 1K+
收藏 0

在你的软件职业生涯中,JavaScript不应该成为你的首要语言

转自:ourjs.com


作者 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的原因。  


原文: http://ourjs.com/detail/534ce1a58d074b970600000c


加载中
0
火眼金睛容嬷嬷
火眼金睛容嬷嬷

非常同意。不推荐显然不是在黑,文章说得很诚恳。

0
游而不击
游而不击

javascript最大的缺点就是容易让代码变得无法阅读。除此以外,它是一门很优秀的语言,特别是出现nodejs以后

0
南湖船老大
南湖船老大

没有完美的语言,也没有一无是处的语言。 但是,教学或者第一课,JS并不是好的选择。

0
李品勇

对于计算机语言来说,我们更应该知道的是数据结构和算法,在此基础上是面向过程的编程语言,后来才是面向对象,最后才是脚本形式。javascript我认为很强大,但这种认知是在系统的了解了编程语言的基础上的,说一个最简单的问题,在学习的时候,你怎么理解链表在内存中存在的形式?

总需要先了解这是什么,然后才能说如何。就我所知,javascript在运行环境下是受到总总限制的,在浏览器里无法对文件读写操作,无法操作系统功能,在服务器端同样如此,还是需要靠外部来解决。所以,javascript并不是一个学习语言的首选。它是一个很好的粘合剂,而非造房子所用的砖头。房子是离不开砖头的,反而没有好的粘合剂可以使用差的,甚至可以使用糯米水。

javascript和其他编程语言(c、pascal、basic、java)的位置关系大概如此。

0
Arrowing
Arrowing

看编程排行,有用武之地就好,选择与否在个人,在环境,不在言语

0
回去干活
回去干活

真正的程序员没有语言之分,是对计算机这个东西理解的深度。

0
BugScanner
BugScanner

CoffeeScript可以当替代品吗?

0
OSC首席键客
OSC首席键客

看了一遍,忘干净了!

0
mingshun
mingshun

觉得JS是一个自由度比较高的语言,面向对象方面并没有像Java、C++这些有很严格的机制来把控。如果先是玩过Java的人再去玩JS,的确会觉得一团糟。但到了真正明确JS的面向对象的设计的用意的时候,又会觉得很自由,没有Java那样的束缚。感觉用一种语言还得以那种语言的方式来思考,不要老把不同语言的设计观念与思维方式来比较,毕竟不同的东西都有它适用与不适用的地方。

对于是否把什么语言作为教学用途或主力技术,就看个人的需要与习惯吧。一概而论的话,对很多东西的眼光会变得狭隘,不利于发展。

0
梅开源
梅开源

有个过程

jquery和node已经征服世界了

剩下的就是各环节的生产链稳定和传播出来

cyper
cyper
同感,jquery无处不在, node底层是c, 上层是js, 无敌
返回顶部
顶部