歡迎光臨
每天分享高質量文章

我為什麼說Python是全棧式開發語言?

Python 的排名從去年開始就藉助人工智慧持續上升,現在它已經成為了第一名。但排在前四名的語言 Python、C、Java 和 C++都擁有廣大的使用者群體,並且他們的使用者總量也十分相近。實際上,Diakopoulos 在對公司招聘所要求的基本語言分析中,C 語言的需求甚至還要在 Python 之前。

下麵是日常Python在公司的一些基礎應用:

1、驗證演演算法:就是對公司一些常見設計演演算法或者公式的驗證,公式程式碼化。

2、快速開發:這個大家應該都比較熟悉,快速開發,就是用成熟框架,更少的程式碼來開髮網站,Python在網站前後臺有大量的成熟的框架,如django,flask,bottle,tornado,flask和django的使用較多,國內用Python開發的網站有:知乎、豆瓣、扇貝、騰訊、阿裡巴巴;

3、測試運維:用python實現的測試工具及過程,包含伺服器端、客戶端、web、andriod、client端的自動化測試,自動化效能測試的執行、監控和分析,常用selenium appium等
框架。做運維同學應該清楚,在Linux運維工作中日常操作涵蓋了監控,部署,網路配置,日誌分析,安全檢測 等等許許多多的方面,無所不包。python可以寫很多的指令碼,把“操作”這個行為做到極致。與此同時,python在伺服器管理工具上非常豐富,配置管理(saltstack) 批次執行( fabric, saltstack)  監控(Zenoss, nagios 外掛)  虛擬化管理( python-libvirt) 行程管理 (supervisor) 雲端計算(openstack) ……  還有大部分系統C庫都有python系結。

4、資料分析:Python有三大神器:numpy,scipy,matplotlib,其中numpy很多底層使用C語言實現的,所以速度很快,用它參加各種數學建模大賽,完全可以替代r語言和MATLAB。spark,Hadoop都開了Python的介面,所以使用Python做大資料的mapreduce也非常簡單,加上py對資料庫支援都很好,或者類似sqlalchemy的orm也非常強大好用。

特別是目前,Python在雲基礎設施,DevOps,大資料處理等領域都是炙手可熱的語言。

領域————————流行語言

雲基礎設施————Python, Java, Go

DevOps——Python, Shell, Ruby, Go

網路爬蟲————Python, PHP, C++

資料處理                Python, R, Scala

雲平臺分為私有雲和公有雲。私有雲平臺如日中天的OpenStack,就是Python寫的。如果嫌麻煩不想自己搭建私有雲,用公有雲,不論是AWS,GCE,Azure,還是阿裡雲,青雲,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青雲只提供Python SDK。可見各家雲平臺對Python的重視。提到基礎設施搭建,不得不提Hadoop,很多第三方庫封裝了Hadoop的API介面(pydoop,hadoopy等等)。

DevOps

DevOps有個中文名字,叫做開發自運維。網際網路時代,只有能夠快速試驗新想法,併在第一時間,安全、可靠的交付業務價值,才能保持競爭力。DevOps推崇的自動化構建/測試/部署,以及系統度量等技術實踐,是網際網路時代必不可少的。

自動化構建是因應用而易的,如果是Python應用,因為有setuptools, pip, virtualenv, tox, flake8等工具的存在,自動化構建非常簡單。而且,因為幾乎所有Linux系統都內建Python直譯器,所以用Python做自動化,不需要系統預安裝什麼軟體。

自動化測試方面,基於Python的Robot Framework企業級應用最喜歡的自動化測試框架,而且和語言無關。Cucumber也有很多支持者,Python對應的Lettuce可以做到完全一樣的事情。Locust在自動化效能測試方面也開始受到越來越多的關註。

自動化配置管理工具,老牌的如Chef和Puppet,是Ruby開發,目前仍保持著強勁的勢頭。不過,新生代Ansible和SaltStack——均為Python開發——因為較前兩者設計更為輕量化,受到越來越多開發這的歡迎,已經開始給前輩們製造了不少的壓力。

在系統監控與度量方面,傳統的Nagios逐漸沒落,新貴如Sensu大受好評,雲服務形式的New Relic已經成為創業公司的標配,這些都不是直接透過Python實現的,不過Python要接入這些工具,並不困難。

除了上述這些工具,基於Python,提供完整DevOps功能的PaaS平臺,如Cloudify和Deis,雖未成氣候,但已經得到大量關註。

網路爬蟲

網路爬蟲是Python的傳統強勢領域,最流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨當一面的類庫。

資料處理

Python也是資料科學家最喜歡的語言之一。和R語言不同,Python本身就是一門工程性語言,資料科學家用Python實現的演演算法,可以直接用在產品中,這對於大資料初創公司節省成本是非常有幫助的。正式因為資料科學家對Python和R的熱愛,Spark為了討好資料科學家,對這兩種語言提供了非常好的支援。

對了,還有iPython,這個工具如此有用,iPython Notebook的筆記本檔案可以共享給其他人。


為什麼是Python

正是因為應用開發工程師、運維工程師、資料科學家都喜歡Python,才使得Python成為大資料系統的全棧式開發語言。

對於開發工程師而言,Python的優雅和簡潔無疑是最大的吸引力,在Python互動式環境中,執行import this,Python社群一直非常有活力,Python的軟體包增長速度一直比較穩定,同時軟體包的質量也相對較高。

對於運維工程師而言,Python的最大優勢在於,幾乎所有Linux發行版都內建了Python直譯器。Shell雖然功能強大,但畢竟語法不夠優雅,寫比較複雜的任務會很痛苦。用Python替代Shell,做一些複雜的任務,對運維人員來說,是一次解放。

對於資料科學家而言,Python簡單又不失強大。和C/C++相比,不用做很多的底層工作,可以快速進行模型驗證;和Java相比,Python語法簡潔,表達能力強,同樣的工作只需要1/3程式碼;和Matlab,Octave相比,Python的工程成熟度更高。不止一個程式設計大牛表達過,Python是最適合作為大學電腦科學程式設計課程使用的語言——MIT的計算機入門課程就是使用的Python——因為Python能夠讓人學到程式設計最重要的東西——如何解決問題。

順便提一句,微軟高調宣佈提高Python在Windows上的程式設計體驗,包括Visual Studio支援Python,最佳化Python的C擴充套件在Windows上的編譯等等。腦補下未來Python作為Windows預設元件的場景。

如此可見Python號稱全棧式語言是肯定有道理的。

目前來學的人群分為以下幾類:

第一類:入行程式設計新手:大學剛畢業或者其他行業轉崗,想從事程式設計開發的工作,目前認為Python比較火,想入行;

第二類:Linux系統運維人員:Linux運維以繁雜著稱,對人員系統掌握知識的能力要求非常高,那麼也就需要一個程式語言能解決自動化的問題,Python開發運維工作是首選,Python運維工資的薪資普遍比Linux運維人員的工資高。

第三類:做資料分析或者人工智慧:不管是常見的大資料分析或者一般的金融分析、科學分析都比較大程度的應用了資料分析,人工智慧的一些常見應用也使用了Python的一些技術。

第四類:在職程式員轉Python開發:平常只關註div+css這些頁面技術,很多時候其實需要與後端開發人員進行互動的,現在有很多Java程式在轉到Python語言,他們都被Python程式碼的優美和開發效率所折服

第五類:其他:一些工程師以前在做很多SEO最佳化的時候,苦於不會程式設計,一些程式上面的問題,得不到解決,只能做做簡單的頁面最佳化。 現在學會Python之後,可以編寫一些查詢收錄,排名,自動生成網路地圖的程式,解決棘手的SEO問題。

原文連結:http://insights.thoughtworkers.org/full-stack-python/

《Python人工智慧和全棧開發》2018年07月23日即將在北京開課,120天衝擊Python年薪30萬,改變速約~~~~

*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。


– END –


更多Python好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂