前言
本人主要从事Android开发,也做过微信小程序,有时还会在Java那边客串一把(谁让Android是用的Java呢@~@),最近在自学Python,已有半月有余。因近年来,技术迭代快速,前端更是层层爆发,单纯的Android或者IOS开发已经不足以应对市场变化,在这技术大潮下,成为一个复合型开发者就显得尤为重要,所以又去进行了微信小程序开发。然而,如果想要在一个项目中更彻底的了解项目架构与核心,那么接触后端是必不可少的,所以就开始了本次的Python之旅。
为什么不学Java后端
其实,如果要接触后端的话,对于Android开发来说,Java应该是更好的选择,并且本人大学那会也是主修Java,还是有一定的后端基础的。但是说实话,Java这门语言实在是太繁琐了,开发效率确实不是很高。之前用Kotlin重构了一个线上的Android项目,与Java的体验能感觉到明显的差别。另外,随着大数据、AI、机器学习的火热,Pyhton的洗脑无处不在,并且Python本身的应用领域也比较广泛,所以可以算是为了顺应这个大潮+个人的兴趣爱好,选择了从Python开始深入学习。
学习Python时的感受
说实话,一开始学Python的时候,因为深受Java的影响,Python的语法给我一种太过于灵活,以至于到有点混乱的感觉。Python的语法与Java的语法两者做个比喻的话,Python就像是江湖武林人士,自在逍遥,奇淫巧计杂多又深不可测;Java就像是朝廷正规军,规章制度明确,一招一式都有迹可循,严谨大气。但是在学习了一段时间后,代码写的多了,遵守开发规范,Python给我的感觉就完全变样了,像是一只轻装简行的轻骑兵,灵巧多变,直击要害,没有多余的其他动作,而Java就感觉是一只重型步兵,虽然是大气磅礴,但是行军太慢。这时,才是真正体现出Python的优雅、简洁的特性的时候。
另外,很多人都说Python入门容易,不知道这个是怎么得出来的(可能是某个大佬阅遍多种语言后得出的),但如果光从语法上看,Python是要比Java难的。就如同上面的比喻,因为Python的奇淫巧计很多(骚操作太多了),想要吃透Python基础是要多费些功夫的(特别是很多学习教程和文章在一些Python的特性上都讲的云里雾里的,玄而又玄),而Java一招一式都是明明白白,简单直接。但是如果从项目实际开发上来看,Python却是要比Java更容易,Python在项目中的可阅读性与简洁性远强于Java,而开发相同的项目,Java相对Python来说更复杂,代码量更大。
Python的优势
Python火起来总是有它的特殊之处的。Python的语法特别简洁,开发效率极高(我身边经常有人说,一个Python开发可以顶两个Java,感觉有点夸张了,但是确实比Java的效率高),拥有着丰富且强大的第三方库。Python虽然经常被人拿运行速度太慢说事,但是一般使用Python开发,主要考虑的不是速度,而是Python强大的可阅读性、可维护性与可扩展性。一般来说,90%的开发者开发的90%的项目的性能瓶颈不是在语言上,所以你根本不必在意这个。若很幸运,你占据了这两个10%,那么Python的创始人也说过,决定程序速度的代码只占20%,你完全可以用C/C++来写这20%。
Python能做什么
我们学习Python总是希望可以在某一领域大展身手的,那么Python可以做什么呢?Python常见的几个发展方向如下:
- web开发:一些大网站例如知乎、Youtob,用的就是Python。有的人说知乎不是在用go语言重构吗?那只是当中的推荐模块使用go重构而已,整体大架构还是Python。但凡一个大体量的应用,绝对不会仅仅使用一种语言的,在不同的模块中使用不同的语言很正常。
- 机器学习:这个就不用说了,Python就是因其才在最近几年勇攀高峰的,Python是AI领域的王者
- 爬虫:Python用来写爬虫是非常给力的,强大的第三方库和简洁的语法,使Python可以快速构建一个爬虫程序
- 运维:Python作为一个脚本语言,在运维中也是占据广泛的市场的
小结
最后,送给所有对Python感兴趣的开发者一句经典语录:人生苦短,我用Python!