选择合适的编程语言
选择合适的编程语言
很多人的代码之路可能从某个如何学习xxx
,不过又该决定从哪个语言开始这一段旅程呢?如果你问身边朋友的建议,可能会听到这些建议
- 硅谷里的小伙伴经常调笑
Java ,我觉得我可以先学这个。 - Haskell,现在这么热,肯定要学这个。
Go 语言的Logo 好可爱。
不过还有很多人估计会选择直接搜索,我应该学习啥语言呢?我们的思考过程可以总结在下面这张图中
这个过程真的是纠结而又快乐,估计如果是强迫症的处女座会更痛苦。从我的角度来看,我们考虑学哪一门语言应该从以下几个方面进行考虑
- 这门语言的市场需求量如何
- 这门语言的未来前景如何
- 这门语言是否容易上手
- 你计划用这门语言构建如何的项目
编程语言的这片红海也是英雄辈出,每年都会有新的编程语言出现,我们先来看一幅漫画
当我们现在考虑应该选择哪一门入门语言时,我们也要来看看这些年里别人的选择,下图是
- 我并不想引起圣战,并没有强调哪一门语言就比其他的好
- 我认为每个人不应该拘泥于某一门语言
- 我推荐才入门的同学可以从
JavaScript 开始
现在我们来看看学校里是怎么教编程语言的。
Computer Science 101
大学里经常在计算机科学与技术的系列课程中开设某一门编程课,并且常常看做数学或者电子课程的扩展。估计你也经常会听到如下的论述
上图就是
而如果我们专注于工程应用领域的语言流行度,则有些不同
超过一半的开发者在使用
在过去的两年中,超过
Factor #1:The Job Market
如果你是完全处于个人的兴趣爱好而学习编程,那么你可以跳过本节。不过绝大部分学习编程的人都希望能够获得一份不错的工作。就像我早前提及的,
从上图可以看出现在大概
Factor #2:The long term prospects
差不多现在开源项目中,每个
而
Factor #3:Difficulty To Learn
估计大部分开发者都同意相对高层的脚本式语言相对易于学习,JavaScript、
Factor #4:Projects you can build with it
这一点正是
Objection #1:JavaScript 不是运行的很慢吗?
Objection #2:But JavaScript isn’t statically typed
类似于
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
然后如果一不小心转化为了字符串,那就糟了
exampleArray = “text”
-> “text”
exampleArray.length
-> 4
Objection #3: 我打算写个移动应用来着
Angular Cordova与React Native 都是不错的选择。