这是一个发布在 Quora 上的问题,提问者是一名Java转JavaScript的程序员,他想了解现在学习哪种技术更好:Angular、jQuery还是Node.js?其中 Mattias Petter Johansson (一名 Spotify 的开发人员) 的回答获得了2k+的赞同,分享给大家。
以下为译文:
欢迎来到前端的世界,Java程序员。
与其他语言相比,JavaScript社区的有些人员就像更换袜子一样经常更换方法、框架、构建系统甚至虚拟机。因此,更重要的是了解这个语言本身的基本特性,而不是学习一个特定的框架。如果你在某项技术中投入过多的话,那么你就会进入一个受伤的世界。
幸运的是,与其他语言相比,JavaScript是一门比较小的语言,所以你可以快速的掌握它。我经常推荐人们从《JavaScript: The Good Parts》这本书开始,这本书虽然有些年头了,但由于JavaScript的开放性标准以及语言本身变化缓慢,它还是适用的。
总得来说,下面这些都是JavaScript社区中比较火的内容(列表可能有些偏向):
- React 和 Flux 是比较火的新兴事物(尤其是刚刚发布的React Native,由Facebook开发并在使用,非常棒)。
- Angular(有些年头,但很流行,由Google开发),目前有两个非常不同的主流版本,所以我选择暂时不选用它们,直到尘埃落定。
- Backbone 是一个适用于处理客户端东西的比较好但有点老的MVC框架。
- Node.js 和 io.js。它们是同一种东西,只不过 io.js 是最新的一个分支。可以参考hudson/jenkins的分离。现在可以使用Node.js,而 io.js 有可能会最终胜出。
- npm 是JavaScript主要的包管理器,它包含了一切的模块。另外还有jspm 和 bower。jspm非常棒,但是太新了,而bower过于笨重,应避免使用(参考:为什么已经有npm了还要使用bower)。
- Browserify非常棒,它允许你在浏览器中使用npm模块,而不仅仅是在服务器端。
- Gulp 和 Grunt是构建系统,其中Gulp比较新,但很成熟,你应当使用它。
- express.js–如果你想建立服务器端的东西,你可能会需要它。
- Meteor 是一个超级未来但非常酷的全栈框架,与其他所有人的方式都不同,它非常流行,你应当尝试一下。
- jQuery 对于 JavaScript就相当于WordPress对于PHP来说一样。每个人都会用,并想用它做一些东西。jQuery 对于DOM操作是非常好的,除此之外,不要使用它。
- 学习一些函数式编程,这是我能确保你不再回到Java的最佳途径。可以参考我的回答:What is a simple explanation of higher order functions and callbacks in JavaScript?
我知道,这一切都会让人感到不知所措,并且这种感觉不会真正的消失,只需要拥抱它,深呼吸,Wooooo!