编程语言,我也有话要说!
编程是什么,外行人可能会认为这是一件神秘高端的事情,而内行人则会自嘲自己只是个搬砖的。
教科书上说程序=算法+数据结构,我认为这不是个好的等式,毕竟有 API 的存在,否则这些 API 都不应该被设计出来。我更喜欢把编程比作写作,不过这种写作定义了自己的精确的逻辑,也充满着技巧,甚至还可以用不同的语言来写。而编程语言有这么多,这篇文章就来探讨一下编程语言。
不管了,先吵一架再说
传说中,让一群程序吵起来的最简单且最有效的方法是“PHP是世界上最好的语言”。
某女:你能让这个论坛的人都吵起来,我今晚就跟你走.
某软件工程师:PHP是最好的语言!某论坛炸锅了,各种吵架...
某女:服了你了,我们走吧 你想干啥都行.
某软件工程师:今天不行,我一定要说服他们,PHP必须是最好的语言
某女:.......(来自知乎某段子,出处不详。)
甚至连官方文档也这样说,“PHP是世界上最好的语言”。
我C++,Java,Python,Go,JavaScript......等等语言表示不服。
拿点权威数据来看看
首先献出常用的谷歌搜索指数,毕竟很多程序员有了问题都会在谷歌上面搜索,那就来看看这个趋势吧。
从图中显然可以看出,Java>Python=Javascript>PHP>C++,这个趋势也能说明很多问题。首先Java是大多数公司采用的服务器开发语言,在校园招聘中就可见一斑,Python由于搭乘机器学习这阵风于是也飞上了天,而JavaScript是前端语言,各种前端页面和浏览器脚本都是JavaScript完成的,而PHP就不说了,C++这里有点不准确,毕竟还要包含C语言才行,通常C语言和C++都是放在一起搜索的,这是搜索的习惯问题。
下面再来看看 Github 的官方报告(来自GitHub官方博客https://github.blog/2018-11-15-state-of-the-octoverse-top-programming-languages/)
还是和前面差不多,JavaScript 稳坐头筹,Java也算个大哥,Python发展迅速。
TIOBE编程排行榜,可能是最权威的反映语言热度的排行榜,它综合了各种搜索引擎和互联网公司的实际使用情况。
而其中Python被叫做2018年度的明星语言,全靠人工智能的加持。而这个头衔在几年前Java,C++,Go都得过,这次落在Python家也能反映一定的发展趋势,说明以后AI技术只会越来越火,并且越来越降低门槛。
我的看法
首先前提条件是要发挥每个语言各自的长处,比如 C++ 用于游戏和底层,Java 用于服务器后端开发,Python 用来搞人工智能,而 JavaScript 则用来写前端页面。如果不利用每个语言自己的优势进行分工合作,那企业的开发效率会有多低,设想一下,用 C++ 来写网页是个什么情况。
学会了一门语言容易入门其他语言的基本语法,但要精通该语言也不是那么容易的。要是能够像某些人所说的学会一门其他的都很容易啦,那还要设计这么多语言干嘛,找工作还要有各种语言的岗位干嘛。老是对你说这话的人要么是道途听说,要么就是自己学会的语言都在入门级别。换句话说,不是蠢就是坏。
不同的语言除了那一点点入门级别的共性,其他都是不一样的设计思想,比如 Java 虚拟机和 C++ 指针,Lisp 的函数式编程,Python 的闭包等。
那些共性自然不必浪费太多精力,精力应该放在语言的高级特性,同时忽略语言的几乎不会用到的特性。例如C语言的指针得学好理解透,但是C语言的各种格式字符串的输出却是不必要记忆的。
当初自己也喜欢着重学这些不重要的语言特性,把各种语法都妄想记在脑子中,现在看来完全是不必要的,且完全不现实的。编程并不是像考试那样是个封闭的环境,我们可以利用搜索引擎和书籍。如果想要更快的找到解决办法,那最好是在自己遇到问题及时记录下来,下次就能很快地找到问题了。
说了这么多,我的看法很明确,要确定的选择一门编程语言,不论是出于兴趣或者是工作需要,例如确定自己想做游戏还是后端,前端,算法等。而对于其他语言的学习可以当作加分项,但是总归是要有一门熟练的,毕竟要恰饭的嘛。
欢迎大家关注公众号“计算机视觉与机器学习”
计算机视觉和机器学习