66- Haskell,现在这么热,肯定要学这个。
77- Go 语言的 Logo 好可爱。
88
9- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-7kbd-tVk3co-9RiilFN1TA.png )
109不过还有很多人估计会选择直接搜索,我应该学习啥语言呢?我们的思考过程可以总结在下面这张图中:
11- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-OF594B5qtCJR9MFSRTI-5g.png )
10+
1211这个过程真的是纠结而又快乐,估计如果是强迫症的处女座会更痛苦。从我的角度来看,我们考虑学哪一门语言应该从以下几个方面进行考虑:
1312
1413- 这门语言的市场需求量如何
1817
1918编程语言的这片红海也是英雄辈出,每年都会有新的编程语言出现,我们先来看一幅漫画:
2019
21- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/xasadscdsavasdvasx.png )
22-
2320当我们现在考虑应该选择哪一门入门语言时,我们也要来看看这些年里别人的选择,下图是 12 年里各个语言的搜索量排行:
24- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-znaagCC5fn0-Dqy43ILeqQ.png )
21+
2522Java 本身有其优势与劣势,而 Python 正在逐步成长为最受欢迎的选择之一。不过这两年随着 Web 技术的迅猛发展,JavaScript 正成为日益受欢迎的选择之一。在正式阐述之前,我首先澄清一下:
2623
2724- 我并不想引起圣战,并没有强调哪一门语言就比其他的好
@@ -32,58 +29,47 @@ Java 本身有其优势与劣势,而 Python 正在逐步成长为最受欢迎
3229
3330# Computer Science 101
3431
35- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-eu4cWRZXUt3ybNFzeT-q8Q.png )
36-
3732大学里经常在计算机科学与技术的系列课程中开设某一门编程课,并且常常看做数学或者电子课程的扩展。估计你也经常会听到如下的论述:计算机科学与技术的课程并不能让你成为编程大拿,就像刷墙的并不能成为美术大师一样。而在 2016 年里,还是有很多大学像教数学一样教授计算机科学与技术。在这种背景下,很多编程入门级的课程都关注与 C 这样的底层抽象语言,或者专注于数学的类似于 MATLAB 这样的语言。
38- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-8yWwh_UrWeoxYSVsWTnEBA.png )
33+
3934上图就是 TIOBE 对于编程流行度的排行榜,而在 2014 年里 Python 逐步代替 Java 成为最广泛的美国计算机科学与技术语言:
40- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-728HWv2YP3PjY1_QmGQg1g.png )
35+
4136而如果我们专注于工程应用领域的语言流行度,则有些不同:
42- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-fUxhG3xtbuyAH-NCPYs4lQ.png )
37+
4338超过一半的开发者在使用 JavaScript,JavaScript 的浪潮从前端开始逐步席卷到后端,并且逐步发展到游戏开发与物联网等领域。而对于 JavaScript 开发者需求量也仅次于 Java:
44- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-Nju6ZEORusBE-4UB290Ftw.png )
4539
4640在过去的两年中,超过 5000 名开发者在 Free Code Camp 的帮助下寻找到了合适的开发工作。我并不是因为我本身负责教授 JavaScript 就去推广它,而是因为 JavaScript 是最易于找到第一份工作的语言所以我选择去教授他。
4741
4842# Factor #1 : The Job Market
4943
5044如果你是完全处于个人的兴趣爱好而学习编程,那么你可以跳过本节。不过[ 绝大部分] ( https://medium.freecodecamp.com/we-asked-15-000-people-who-they-are-and-how-theyre-learning-to-code-4104e29b2781#.30hlfqj32 ) 学习编程的人都希望能够获得一份不错的工作。就像我早前提及的,Java 是目前看来最受雇主欢迎的语言,而 JavaScript 紧随其后。不过这其中有个很大的因素就是 Java 已经流行了 20 多年,很大一部分岗位来源于对于旧系统的维护需求。
51- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-EanhlHoMIsF-By0gRrAcYQ.png )
5245
5346从上图可以看出现在大概 2.7 个 Java 开发者竞争一个岗位,而 PHP 与 iOS 差不多是两个人竞争一个岗位。
5447
5548# Factor #2 : The long term prospects
5649
5750差不多现在开源项目中,每个 JavaScript 项目的 Pull Request 请求数是 Java、Python、Ruby 平均数的两倍,从这一点看来,JavaScript 比其他任何的流行语言都要发展迅速。
58- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1--GxMW33X9Gb5lboyN02hKw.png )
51+
5952而 JavaScript 生态圈也不断受益于来自 Google、Microsoft、Facebook 以及 Netflix 等公司的投资,譬如 JavaScript 生态圈中的著名的静态扩展 TypeScript 有超过 100 位的开源贡献者,其中很多都是来自于 Microsoft 或者 Google 的雇员。目前收购了 Sun 的 Oracle 也在寻求利用这种社区参与度扩大 Java 的影响力。
6053
6154# Factor #3 : Difficulty To Learn
6255
63- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-d8TITW3skawGd-ioyHh2nQ.png )
64-
6556估计大部分开发者都同意相对高层的脚本式语言相对易于学习,JavaScript、Python 以及 Ruby 就是属于这个范畴。虽然不少学校在教 Java 或者 C++,不过它们是真的不容易学啊。
6657
6758# Factor #4 : Projects you can build with it
6859
6960这一点正是 JavaScript 耀眼之处,JavaScript 可以运行在任何支持浏览器的设备上,你可以用 JavaScript 构建任何应用,然后随处分享。正如 Stack Overflow 的合伙人 Jeff Atwood 所说:所有能够用 JavaScript 实现的应用最终都会转到 JavaScript 中。Java 曾经也是主打一次编译,到处运行,估计你还记得[ Java Applets] ( http://motherboard.vice.com/read/a-brief-history-of-the-java-applet ) ,近两年才被 Oracle 去掉这一特性。而 Python 也面临同样的问题,这里我们列举几个好玩的用 JavaScript 构建的游戏:
7061
7162- [ 1970s style Simon game] ( http://s.codepen.io/adambeagle/debug/qOamaz )
72- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-i-bre5pF0rk6Wgz5yjugjw.png )
7363
7464- [ Conway’s Game of Life] ( http://s.codepen.io/safx/debug/Ewcym )
75- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-GtVQI4LUU0-_Soyhi93LBg.png )
7665
7766- [ Star Wars-themed Wikipedia Search] ( http://s.codepen.io/duttakapil/debug/BKGjOa )
78- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-jkx-Vf8esZ0GYv_L6S2i9A.png )
7967
8068- [ A roguelike dungeon crawler game] ( http://s.codepen.io/Megabyteceer/debug/qbXJMQ )
81- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-PiI9yXaUNJANSffWvdotDQ.png )
8269
8370# Objection #1 : JavaScript 不是运行的很慢吗?
8471
8572JavaScript 其实是一个非常高效的语言,NodeJS 本身是比 Python、Ruby 以及 PHP 要快的,它也近似于 C++、Java 以及 Go 这些编译语言。
86- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-h91cfcE8NlgyHfm4CLbV6w.png )
8773
8874# Objection #2 : But JavaScript isn't statically typed
8975
@@ -110,4 +96,3 @@ exampleArray.length
11096# Objection #3 :我打算写个移动应用来着
11197
11298[ Angular Cordova] ( http://ngcordova.com/ ) 与[ React Native ] ( https://facebook.github.io/react-native/ ) 都是不错的选择。
113- ![ ] ( https://coding.net/u/hoteam/p/Cache/git/raw/master/2016/11/2/1-6RsFHNgrzFyX-9p37FVtpA.jpeg )
0 commit comments