python究竟为什么火?
扫描二维码
随时随地手机看文章
首先大家要清楚:主流的编程语言(C/C ,java,js,python,C#,sql,Golang、OC和swift等)都是很不错的,都有他的优势和用武之地,直白点说就是“没有一个不能打”。
C/C 是嵌入式开发、内核开发几十年的王者,java是web业务开发的王者,js在前后端用的很多,C#是微软的主打,sql是数据库领域的王者,golang是谷歌强推的后端开发新秀,OC和swift是苹果的主打,都是神一般的存在,没有弱者。
然后和python的热火一比,都差一截。python简直是神一般的存在,搞AI的学python,做办公弄excel的也学python,做web开发的用python,搞嵌入式开发还有个micropython,甚至做地震预测研究的也用python。你就感觉就没有python搞不了的事儿,why?
我就举一个小小的栗子,大家就能明白python的特殊之处了。
假设你要做一个典型的数据处理,譬如说你有1万个数据要排序,怎么做?用不同编程语言的人,思路是完全不同的。
譬如用C/C 的人,就会考虑这些问题:该用什么数据类型,什么数据结构(数组、链表、哈希表?),什么算法,时间复杂度和空间复杂度是多少?怎样提升处理效率?
而用python的人,定义数据结构只需要
a = [10, 7, 4, 2, 8, 5, 1, 3]
根本不用考虑什么数据类型和数据结构。
排序呢,只需要
a.sort()
完了,得到结果了(当然了,如果追求效率也可以进一步指定细节算法,但是不关注是可以的)。
总结下。上面这个例子告诉我们python的一大特征:
python关注的是“业务逻辑”,而不是“计算机实现”。在python的世界里,你只需要头脑清醒,知道自己想干嘛,并且用python表达出来去运行就行了。你根本不需要考虑python是怎么去实现的,映射到计算机层面怎么做的,用了多少内存,用了什么数据类型和算法。
python的这个特点,使得python非常适合“非职业程序员”。什么叫非职业程序员?就是那些不是靠“编程”这件事吃饭的。程序对他们来说只是为了自己的本职工作而服务的工具,就好像我们开车去上班时车对我们来说是工具一样。而且python的语法简单,强调逻辑而不是计算机内部原理,这使得“非职业程序员”非常适合学习和使用python来干活。譬如研究AI的数学家用python来研究验证自己的AI模型,譬如地震学家用python来编程研究验证自己的地震预测模型。
python同样适用于职业程序员。在那些关注业务逻辑而不是计算机实现效率的地方,python就非常适合。现在很多公司的软件开发都是分层的,涉及到设备终端的接近硬件、注重效率的部分就用C/C ,而上层业务逻辑和应用很多就用python。
前段时间特斯拉起诉他的工程师,就是因为工程师盗取了特斯拉的6千多个python脚本,而特斯拉认为有人拿到这些python脚本就能短时间“再造特斯拉一样高效的管理流程”。这个新闻里你就能看出python的用武之地。
最后:写这篇不是让大家都赶紧去学python,更不是制造焦虑。只是想从技术分析角度告诉大家,为什么python这么火。确实不纯粹是炒作因素。
做C/C 的童鞋不用着慌,还是先搞好你的C/C ,python后面找机会去扩展下就行了。其实python主要针对的还是非底层开发领域,尤其对“非职业程序员”是巨大福音,重要性和matlab相仿甚至以后会远远超越matlab。