最近有很多小伙伴私下交流中问我,究竟选择一个什么样的编程语言作为进军IT公司的钥匙,今天我们就来聊一聊Python、Java、Golang、PHP这四个比较热门的编程语言,个人一些观点,请大家不要引起圣战:)
Python, Javascript, php, Ruby等
静态语言:
Java, C, C++, Go等
注: 动态语言也经常被大家称为脚本语言, 由于经常被称为脚本语言, 所以大多数时候大家都认为一些简单的任务就用Python来说, 大型的项目Python就做不了或者做不好,实际上这是一个很大的误区。 为了纠正大家对这个问题的看法, 后面我们都以动态语言来描述Python。
大家要清楚: Python是面向对象的动态语言。
为了清Python的优势, 大家首先需要理解的是动态语言的优势, 然后要明白Python在众多动态语言中的优势。
上面我只是简答的说了一下动态语言,大家就可以感受到Python作为一个动态语言比Java等静态语言的优势。但是实际上并不止这些, Python内置的一些函数和用法更加使得Python比Java等静态语言编码更加快速和高效。
Python代码是通过强制缩进来完成的, 如果大家是Java转过来学习的最开始会不适应, 但是很快就会适应, 因为缩进使得代码很规范,而且代码可读性会很强, 而且Python的各种代码规范如 PEP8 规范会让我们的代码很规范。
Python的生态有多丰富, 大家了解一下就知道了:
不管是已有的Python库还是其他语言开发的框架首先支持的语言都包括Python。
当然这里的生态还不只是已有的框架和库还包括诸如Stackoverflow上的问题回答等
一般开发过程中大家会经常遇到两种问题: 1. 需要一个已有的解决方案来加速自己的开发。 2. 遇到问题需要快速找到解答
Python经过多年的发展,不管是已有框架和库还是问题和答案在网上都有非常多的资料了。
这里说到了生态就需要说到Go了。 Go语言是一门比较新的语言,随着近几年docker的快速流行, Go语言也越来越受到关注。 Go语言从诞生之初就是奔着高并发去的, 所以作为高并发的系统开发Go语言会比Java,Python,php更好, 但是由于Go语言太新了, 所有不管是框架还是问题答案都远比Python少很多, 所有大家如果开发中遇到问题很容易卡住, 而且Go语言还处于一个快速发展期,语言本身特性变化也会比较快而且不稳定, 所以不建议初学者来学习。
我这里要说的全栈开发语言是广义上的。目前可以前端和后端都能完成的语言最流行的应该就是Javascript了, 其他语言几乎都只能完成服务端开发。但是大家要明白:实际上并没有一门语言是完全的全栈开发,即使是使用Javascript的人在平时开发中也只能侧重于后端开发或者前端开发。所以这里首先要让大家对全栈的理解有一个观点:全栈不是说能同时开发移动端,PC端就叫全栈。真正的全栈应该是有能力去快速学习和使用现有的解决方案而不是去学习所有语言。因为技术和框架太多。没有人能学习到所有的语言和框架, 但是如果一个人能很好的解决遇到的各种问题才是真正的全栈, 比如系统数据库有瓶颈了, 能快速的去找到问题和找到解决方案, 比如系统需要适应移动端, 你能快速的去学习某一门解决方案去加速开发, 比如系统并发遇到问题了,你能快速的去学习和解决并发问题。这样的人才是全栈那为什么我这里要说Python是一门全栈语言呢? 前面我们提到的快速学习能力都是要基于大家有时间去学习, 所以如果一门语言或者工具能让你快的完成已有系统的开发, 让你空出更多的时间去学习解决方案, 那这么语言就可以让你把他成为全栈语言, 大家试想一下,对于一个会Python的人来说,如果能找到对应的Python的解决方案对你来说肯定比找到的Java解决方案更加容易让你接受,Python的生态可以让我们几乎能找到所有Python已经实现的解决方案。
大家如果学习Java就会知道, Java的概念和要学习的知识点非常多, 不管是开发效率上还是学习时间上都会远比Python多很多, 所以很多人用Java的人一直都致力于如何去把java本身弄清楚而没有时间去学习其他解决方案(这里当然对大牛除外)
Python能使用的开发领域, 相信我不说大家也非常清楚了:
大家能想到的领域基于Python都可以完成。当然即使这样大家也需要去学习各个领域的框架, 但是有了Python基础去学习这些框架会让高效的多。
这一点就比php有很大的优势了, php在web系统开发中有很大的优势,因为php最初就是致力于web系统开发, 使得php在web系统开发中具有了很大的生态优势。 但是Python的web开发领域也很强大, 已有的很多框架入django, flask, tornado等等,不管大家是需要一个灵活的框架还是需要一个全栈的web开发框架还是需要一个性能高的web框架都可以满足大家的要求。
当然Python的开发效率是非常高的, Python中面向对象的概念是比php的面向对象概念强的, 而且大家也会发现es6的语言也和Python有很大的相似之处, 所有大家学会了Python去理解javascript的话也会有很大好处。
以上只是回答了Python的优点并没有否定其他语言,如果你还在犹豫是否想学Python,快快加入我们的阵营吧!
个人微信: