學習服務端開發(fā)

從2014年暑假開始學習iOS開發(fā),11月份找到第一份iOS開發(fā)的工作,至今也有近三年的時間了,對iOS開發(fā)也算是比較熟悉了,雖然還有很多缺漏的地方,但是最近一段時間特別想自己做一個包括前端和后臺的完整的APP,所以就開始選擇后端開發(fā)的語言。

C/C++

在學校里上過這方面的課程,不過自認為是一個學渣所以并沒有很好的基礎(chǔ),加上這兩門語言相對于“現(xiàn)在化”的語言還是比較“笨拙的”,上手項目困難比較大,所以不予考慮。

JAVA

從很久以前就在TIOBE排行榜里居高不下,而且市面上崗位需求量也是非常大,各種類庫非常健全,在服務端開發(fā)、大數(shù)據(jù)等方面都是當仁不讓的。但是,根據(jù)我的了解,想要用Java做一套系統(tǒng)需要用到各種框架(spring+struct+hibernate+...),而且在我的印象里,Java一直和各種的設計模式什么的分不開,而且這個語言也缺少一些高級的特性(可能有,只是我不知道,比如參數(shù)默認值)。而且在了解Java的時候,我想明白了我并不是想要從事服務端開發(fā),更不是想從前端轉(zhuǎn)到后臺,只是想了解“另一個世界”,所以,我只需要一個比較“機智”“簡練”的語言。

GO

其實了解golang是在JAVA之前,因為我們公司的后臺有一部分使用golang開發(fā)的,跟那些同事交流的時候,聽到過他們談論這門語言,所以在剛開始打算選擇語言的時候就首先了解了,而且還讀完了七牛團隊著作的《Go語言編程》。初讀這本書,我驚艷到了,golang真的好精煉、好強大,開一個協(xié)程(輕量級的線程)只需要簡單的go func(),這要比OC中的GCD、Java中的Thread啥的精煉太多了,還有它的多返回值(曾幾何時我是多么的希望OC可以支持多返回值啊),而且據(jù)說因為使用了協(xié)程,它對大并發(fā)的支持是與生俱來的,更別說golang的部署真的是傻瓜式的。這些優(yōu)點確實是非常的突出,一度讓我覺得這就是我想要的,后來,當我真正的上手寫代碼的時候,我發(fā)現(xiàn)了一些不大適應的地方,比如類型放在變量名的后面(比如age int),還有多返回值在某些場景也不大好用,而且它也不支持默認參數(shù),這其中,最讓我感覺“不合理”的一點就是:GO使用組合的方式來實現(xiàn)了繼承和接口,雖然GO說這么做很利于解耦(我也不否認),但是就可閱讀性而言,自認為確實有諸多的不利。還有就是在我發(fā)現(xiàn)了接觸了Python以后,突然想到了既然我想要了解一個新的東西,為什么不直接去了解一門解釋型語言呢,或許可以了解到更多的東西。因此我就放棄了golang轉(zhuǎn)投Python。

Python

首先Python在TIOBE排行榜上位列前十,其次Python是一個解釋型語言,第三Python可以使用一個django來構(gòu)建整個完整的系統(tǒng)(據(jù)我了解),第四Python的語法簡練、開發(fā)速度很快,第五,Python還可以寫爬蟲,或許以后我會想做一個用到其他互聯(lián)網(wǎng)資源的APP,那時候爬蟲可能就有用武之地了。另外,雖然Python作為一個解釋型語言,可能無法在寫代碼階段發(fā)現(xiàn)更多的問題,而導致生產(chǎn)環(huán)境出現(xiàn)更多的問題,據(jù)說Python在大并發(fā)的支持方面也有一些與生俱來的弊端,但是對于我的需求來說,這些問題都無所謂。那么,我為什么沒有選擇PHP或者Ruby呢,在我的印象里,Ruby是一個比較小眾的語言,感覺社區(qū)資源的支持可能不大完備,至于PHP,我之前是了解過的,它在我的印象里是一個比較擅長做網(wǎng)頁開發(fā)的語言,對于APP的接口好像不大擅長,而且聽說PHP已經(jīng)在走下坡路了。
以上純屬個人粗陋之見。

總結(jié)

寫下這篇文章的主要目的是讓自己能在學習Python的道路上堅持下去,希望能早日完成自己的第一個項目。
另外,這兩天學習了在阿里云的centos服務器上部署Python、Django、nginx,計劃這兩天把總結(jié)分享出來。

Life is short, I use Python.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容