今天是大年初七,是上班的第一天,也是匯智動力年后開課的第一天,我們有幸請到忙碌的趙福貴老師為我們介紹一下計算機語言中的python語言,這個被程序員們戲稱“人生苦短,我用Python”的語言到底有何魔力!

福貴哥作為一個多年在IT界摸爬滾打的老兵,因項目需要,在工作過程中使用過多種計算機語言,也一直關注著計算機語言的發展和變化。無論是開發人員還是測試人員,掌握一兩門主流語言,都是必須的。這計算機語言可是我們IT屌絲的屠龍刀、倚天劍,更是找老婆、養家糊口、升職加薪的必備利器。語言不熟,根本就沒法在這個圈子里生存和發展,足見計算機語言對于程序猿們來說,何等重要!

先容福貴哥用那么一丟丟版面介紹下自己的計算機語言使用史,咋和Python語言結緣的。最早出道使用的是Dephi和C++語言,因為項目開發使用的C++語言,所以當時做單元測試需要使用這門語言,但是福貴哥對當時的Dephi語言還是有著滿滿的激情啊!

Dephi作為一門快速開發的語言,開發界面程序簡單、高效,用起來真的是灰常灰常的安逸呢!2005年左右公司開發平臺調整為Java,所以又忙著到處找資料,看開發人員項目代碼學習Java語言。學了一陣子對Java語言沒啥好感(請原諒我當時的年少無知),估計是因為用習慣了Dephi,感覺Java語言開發界面程序真滴是又慢又丑陋,用起來很不爽。

后來偶然接觸到了C#語言,頓時被C#吸引到了,強大的顏值,超高的Visual Studio IDE(按現在的話講就是十足的顏值控啊,哈哈),快速的開發能力,寫軟件測試工具快,界面隨便拖拖就出來了,程序界面也好看得很,后邊涉及到界面的開發就都使用C#了。

直到2008年,我們測試總監給了我一個艱巨任務,讓我寫一些服務器、模擬器和接口自動化測試框架,聽了任務之后,當時心里默默地問候了下我的總監。當時我覺得,要么是領導很重視我,要么是要我走人啊!

信念

福貴哥工作以來一直有一個信念,就是只要努力沒有完不成的任務,不管領導啥心思,必須要把任務搞定!于是開始研究、找資料,當時的Google、Baidu、圖書與之相關的內容真的是非常匱乏!沒辦法,后來去找了我們部門大牛老陳,老陳對我的技術提升真的是幫助很大的一個人。聽了我的困難,老陳慢條斯理的跟我說,你可以考慮用Python去做,不難!“牌神”是什么東東,我就是“牌神”啊,昨晚還整到下半夜呢!老陳于是大概給我介紹了下“Python”和相關案例,我聽了真的跟打了雞血一樣,一個是感嘆我們的牛人老陳知道得多,另外是因為發現了一個新大陸。從此富貴哥就開始踏上了研究Python之路。

真是“皇天不負有心人”,很快我就使用Python 和Twisted框架實現了協議的封裝和服務器的開發,使用“數據驅動”模式實現了接口自動化框架的程序研發。那感覺真是Perfect!從此與Python相戀,已不知Java、C#是誰?心中只有Python!

寫這篇文章,我又翻了額(我)的大硬盤,找到當年寫的代碼,10多年了,古董啊!必須發出來給大家看看。

福貴哥就是講信用的人,只用了上面一丟丟篇幅講了下自己的語言使用史。嗯嗯,容我再補充兩句!(此處應該有雞蛋等禮品奉上)以上內容主要是給大家借鑒下,讓年輕人多了解下歷史,哈哈哈!

言歸正傳,計算機語言分為編譯型語言和解釋型語言。

編譯型語言主要代表如:Java、C、C++、C#(Java和C#嚴格來說不能算純粹的編譯型語言),編譯型語言具備語法嚴謹,速度快、靈活等特點。

解釋型語言主要代表:Python、Ruby、Go等語言,解釋型語言具備簡單,開發高效等特點。但是解釋型語言前些年,一直因為性能偏弱,開發靈活性差所受人詬病。隨著近些年硬件條件的極大改善,解釋型語言自身的不斷完善,解釋型語言終于實現了發展大跨越,一騎絕塵,成功上位。

計算機語言目前的格局簡單概括一下就是:老兵老當益壯、新人異軍突起。Tiobe公布了12月份的編程語言排行榜,傳統老兵Java、C、C++、VB還是在前五強占據了四個席位。新人Python超越C++排名第三。

而在另外一份 PYPL 榜單上,Python 在今年 5 月以 22.8% 的份額,首次超越 Java占據榜首位置。隨后幾個月 Python 保持上漲趨勢以 23.59% 的份額甩開 Java ,排名第一,正逐漸與 Java 拉開差距。最新榜單如下:

Python上位如此之快,得萬千寵愛于一身,Why?Why?Why?為什么 Python 發展得這么快?

我們先來了解下Python語言的特點:

Ø 簡單易學

Ø 免費、開源

Ø 面向對象

Ø 豐富的庫

Ø 可擴展性強

Ø 移植性好

Python語言最突出的特點就是簡單易學。

大學目前非計算機專業大多都是以C語言進行教學,C語言在企業里多用于底層研發,難度偏大,C語言課成了多少學子的噩夢。

簡單

去年浙江省信息技術新教材,在2017年9月入學高中新生中開始使用Python語言,而且Python也在很多少兒編程中得到了應用,Python語言已經進入了少兒、初中高中階段的學習內容,足以體現它簡單易學的一面。所以強烈建議大學非計算機專業所學的計算機語言調整為Python,可以讓大家在學習語言的同時感受其無窮的樂趣及魅力。

Python不僅簡單易學,且非常強大。

Python有兩個外號,分別為:“內置電池”,“膠水語言”。前者的意思是,Python官方本身提供了非常完善的標準代碼庫,包括針對網絡編程、輸入輸出、文件系統、圖形處理、數據庫、文本處理等。代碼庫相當于已經編寫完成打包供開發者使用的代碼集合,程序員只需通過加載、調用等操作手段即可實現對庫中函數、功能的利用,從而省去了自己編寫大量代碼的過程,讓編程工作看起來更像是在“搭積木”。除了內置庫,開源社區和獨立開發者長期為Python貢獻了豐富的第三方庫,其數量遠超其他主流編程語言,可見Python的語言生態已然相當壯大。

比如,完成同一個任務,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。言外之意,Python集成度更高,用時更少,就可以實現以前所實現的功能。

“膠水語言”是Python的另一個亮點。Python本身被設計成具有可擴展性,它提供了豐富的API和工具,以便開發者能夠輕松使用包括C、C++等主流編程語言編寫的模塊來擴充程序。就像使用膠水一樣把其他編程語言編寫的模塊粘合過來,讓整個程序同時兼備其他語言的優點,起到了黏合劑的作用。

正是這種多面手的角色讓Python近幾年在開發者世界中名聲鵲起,因為互聯網與移動互聯時代的需求量急速倍增,大量開發者亟需一種極速、敏捷的工具來助其處理與日俱增的工作,Python發展至今的形態正好滿足了他們的愿望。

我之前寫過的一些基于私有協議的Socket通信服務器模擬器,可以支持多線程的異步通信,也就幾十行代碼就搞定了,這是在之前難以想象的。另外早在2009年左右,我服務的公司就使用Python開發了一款游戲服務器,游戲服務器性能、穩定性非常的出色。一款語言,簡單易學,開發效率如此之高,請問哪個程序員、哪個老板、哪個公司不愛呢?所以“人生苦短,我用Python”絕對不是一句戲言。

我們可以再看看Python語言應用的領域,目前Python主要應用方向:

1、常規軟件的開發。Python支持函數式編程和OOP面向對象編程,因此常規的軟件開發、腳本編寫、網絡編程等都屬于標配能力。

2、桌面軟件開發。Python結合PIL、Tkinter等圖形庫支持,可以輕松的進行圖形處理、可視化的展示。

3、網站服務器開發。目前Python應用比較多的Django框架、Flask框架、Tornado框架用于網站服務器的開發。

4、數據爬蟲開發。目前使用較多的是Requests、Scrapy等框架,進行遍歷爬行網站、分解獲取數據。

5、大數據分析、挖掘和深度學習。Python結合NumPy、Pandas、Matplotlib、statsmodels、scikit-learn、NLTK、TensorFlow等模塊,進行數據清洗、數據分析、數據建模、機器學習等應用。數據分析特別在金融領域、電商領域應用非常成熟。

6、自動化運維。Python結合Paramiko、Fabric、Saltstack、Ansible、Func等模塊實現自動化運維,提升系統維護效率。

7、軟件測試應用。Python在軟件測試領域常用于測試工具開發、自動化腳本編寫、測試數據構造、軟件滲透性測試等方面。

8、游戲服務器。很多游戲C++編寫圖形顯示等高性能模塊,而使用Python編寫游戲的邏輯、服務器。Python編寫的功能更簡單、體積更小、開發效率更高。

9、云計算。目前很火的云計算框架OpenStack就是由Python開發的,如果想要深入學習并進行二次開發,就需要具備Python的技能。

以上是Python目前主要應用領域,Python簡直就是“全群體、全領域、能上天、能入地、無所不能、無處不在……”的全能戰士,總之一句話“矮油,看好你喔”。

人年齡大了,情到深處,話就多了起來,哈哈!今天就寫這么多吧。我的老師教我寫文章一定要多引用名人名言,否則沒有說服力。還是要按常理出牌,最后援引開源運動的領袖人物Eric Raymond的一句話:“Python語言非常干凈,設計優雅,具有出色的模塊化特性。其最出色的地方在于,鼓勵清晰易讀的代碼,特別適合以漸進開發的方式構造項目”。