python java php go語言的優(yōu)勢對(duì)比

Python的優(yōu)勢

我們先將常見的語言進(jìn)行一個(gè)分類,這里按照動(dòng)態(tài)語言和靜態(tài)語言來分類:

| | | |||
| ------- |: ----:|: ----:|: ----:|: ----:|
| 動(dòng)態(tài)語言|python|javascript|php|ruby|
|靜態(tài)語言|Java|C|C++|||

**注: 動(dòng)態(tài)語言也經(jīng)常被大家稱為腳本語言, 由于經(jīng)常被稱為腳本語言, 所以大多數(shù)時(shí)候大家都認(rèn)為一些簡單的任務(wù)就用python來說青伤, 大型的項(xiàng)目python就做不了或者做不好膘壶,實(shí)際上這是一個(gè)很大的誤區(qū)灭红。 **

動(dòng)態(tài)語言的優(yōu)勢

python是面向?qū)ο蟮膭?dòng)態(tài)語言

為了清楚python的優(yōu)勢为肮, 首先需要理解的是動(dòng)態(tài)語言的優(yōu)勢, 然后要明白python在眾多動(dòng)態(tài)語言中的優(yōu)勢罢缸。

  1. 在靜態(tài)語言中的一些高級(jí)概念篙贸,如java中的反射以及基于反射實(shí)現(xiàn)的AOP, 這些概念對(duì)java初學(xué)者以及只有一兩年工作經(jīng)驗(yàn)的人來說枫疆,這幾個(gè)概念也是很難理解的爵川,更不用說如何去自己實(shí)現(xiàn)。
    如果大家使用過AOP的話就會(huì)明白這幾個(gè)概念從理解到熟練使用是比較難的息楔, 而且開發(fā)效率會(huì)比較低寝贡,盡管同學(xué)可能會(huì)說“其實(shí)使用起來還是很簡單啊”, 那可能是因?yàn)槟銢]有用過動(dòng)態(tài)語言中的裝飾器值依。

  2. 動(dòng)態(tài)語言中對(duì)于java中的AOP這種概念直接使用裝飾器就可以完成而且python中是語言本身的一部分圃泡。并不像java中還需要引入第三方來完成。

  3. python能輕松完成這些正是由于python是一門動(dòng)態(tài)語言, 動(dòng)態(tài)語言的特性使得大家去自己控制整個(gè)類的初始化以及動(dòng)態(tài)去改變對(duì)象變的很簡單愿险, 這些特性使得動(dòng)態(tài)語言的靈活性遠(yuǎn)遠(yuǎn)超過靜態(tài)語言颇蜡。

  4. 大家在學(xué)習(xí)和通過python開發(fā)系統(tǒng)的時(shí)候首先要充分利用動(dòng)態(tài)語言的特性去完成自己的功能, 有時(shí)候在靜態(tài)語言中需要很多技巧和添加多個(gè)臨時(shí)變量才能完成的功能辆亏, 使用動(dòng)態(tài)語言的特性只需要一兩行代碼就完成了风秤。
    關(guān)于動(dòng)態(tài)語言的學(xué)習(xí)大家可以自己去學(xué)習(xí)一下, 但是大家一定要明白: 動(dòng)態(tài)語言和靜態(tài)語言編碼有很大的不同扮叨, 要適應(yīng)動(dòng)態(tài)語言特性去開發(fā)缤弦, 不要拿著舊有的靜態(tài)語言編碼思維去用python,要不然大家就會(huì)覺得python好像也沒有什么特別之處彻磁,只能處理一些簡單的事情碍沐。
    這種觀念是不對(duì)的。等到你充分體驗(yàn)到動(dòng)態(tài)語言的特性衷蜓,你就會(huì)發(fā)現(xiàn)累提,以前很多一定要用設(shè)計(jì)模式來實(shí)現(xiàn)的功能,在動(dòng)態(tài)語言中竟然不需要也能輕松實(shí)現(xiàn)恍箭。

方便而且性能高基本用法

上面簡單的說明下什么是動(dòng)態(tài)語言刻恭,大家就可以感受到python作為一個(gè)動(dòng)態(tài)語言比java等靜態(tài)語言的優(yōu)勢瞧省。

但是實(shí)際上并不止這些扯夭, python內(nèi)置的一些函數(shù)和用法更加使得python比java等靜態(tài)語言編碼更加快速和高效鳍贾。

如果學(xué)習(xí)過python基礎(chǔ)就會(huì)知道數(shù)組、字典交洗、字符串等這些基本概念的操作是遠(yuǎn)遠(yuǎn)比java方便的多骑科, 而且要知道這里面的很多用法的實(shí)現(xiàn)底層是用c來實(shí)現(xiàn)的, 所有這些基本用法的性能都是很高的构拳。

不要小看這些基本用法咆爽,這些用法才是我們平時(shí)編碼過程中寫的最多的, 這些用法的簡化會(huì)大大提高我們的開發(fā)效率置森。

代碼優(yōu)美和易讀性

python代碼是通過強(qiáng)制縮進(jìn)來完成的斗埂, 如果大家是java轉(zhuǎn)過來學(xué)習(xí)的最開始會(huì)不適應(yīng), 但是很快就會(huì)適應(yīng)凫海, 因?yàn)榭s進(jìn)使得代碼很規(guī)范呛凶,而且代碼可讀性會(huì)很強(qiáng), 而且python的各種代碼規(guī)范如pep8規(guī)范會(huì)讓我們的代碼很規(guī)范行贪。

已有的強(qiáng)大的生態(tài)

python的生態(tài)有多豐富漾稀, 我們了解一下就知道了。

不管是已有的python庫還是其他語言開發(fā)的框架首先支持的語言都包括python建瘫。

當(dāng)然這里的生態(tài)還不只是已有的框架和庫還包括諸如stackoverflow上的問題回答等一般開發(fā)過程中大家會(huì)經(jīng)常遇到兩種問題:

  1. 需要一個(gè)已有的解決方案來加速自己的開發(fā)崭捍。
  2. 遇到問題需要快速找到解答python經(jīng)過多年的發(fā)展,不管是已有框架和庫還是問題和答案在網(wǎng)上都有非常多的資料了啰脚。這里說到了生態(tài)就需要說到go了饵骨。

go語言是一門比較新的語言笼蛛,隨著近幾年docker的快速流行, go語言也越來越受到關(guān)注。

go語言從誕生之初就是奔著高并發(fā)去的来吩, 所以作為高并發(fā)的系統(tǒng)開發(fā)go語言會(huì)比java,python囊卜,php更好耍铜, 由于go語言太新了, 所有不管是框架還是問題答案都遠(yuǎn)比Python少很多泪勒, 所有大家如果開發(fā)中遇到問題很容易卡住昼蛀, 而且go語言還處于一個(gè)快速發(fā)展期,語言本身特性變化也會(huì)比較快而且不穩(wěn)定圆存, 所以不建議初學(xué)者來學(xué)習(xí)叼旋。

全棧開發(fā)語言

我這里要說的全棧開發(fā)語言是廣義上的。

目前可以前端和后端都能完成的語言最流行的應(yīng)該就是JavaScript了沦辙, 其他語言幾乎都只能完成服務(wù)端開發(fā)夫植。

但是我們要明白,實(shí)際上并沒有一門語言是完全的全棧開發(fā),即使是使用javascript的人在平時(shí)開發(fā)中也只能側(cè)重于后端開發(fā)或者前端開發(fā)详民。

所以這里首先要對(duì)全棧的理解有一個(gè)觀點(diǎn): 全棧不是說能同時(shí)開發(fā)移動(dòng)端延欠,pc端就叫全棧。

真正的全棧應(yīng)該是有能力去快速學(xué)習(xí)和使用現(xiàn)有的解決方案而不是去學(xué)習(xí)所有語言沈跨。

因?yàn)榧夹g(shù)和框架太多由捎。沒有人能學(xué)習(xí)到所有的語言和框架, 但是如果一個(gè)人能很好的解決遇到的各種問題才是真正的全棧饿凛。

比如系統(tǒng)數(shù)據(jù)庫有瓶頸了狞玛, 能快速的去找到問題和找到解決方案, 比如系統(tǒng)需要適應(yīng)移動(dòng)端涧窒, 你能快速的去學(xué)習(xí)某一門解決方案去加速開發(fā)心肪, 比如系統(tǒng)并發(fā)遇到問題了,你能快速的去學(xué)習(xí)和解決并發(fā)問題纠吴。

這樣的人才是全棧蒙畴。那為什么我這里要說python是一門全棧語言呢?

前面我們提到的快速學(xué)習(xí)能力都是要基于大家有時(shí)間去學(xué)習(xí)呜象, 所以如果一門語言或者工具能讓你快的完成已有系統(tǒng)的開發(fā)膳凝, 讓你空出更多的時(shí)間去學(xué)習(xí)解決方案, 那這么語言就可以讓你把他成為全棧語言恭陡。

試想一下蹬音,對(duì)于一個(gè)會(huì)python的人來說,如果能找到對(duì)應(yīng)的python的解決方案對(duì)你來說肯定比找到的java解決方案更加容易讓你接受休玩,python的生態(tài)可以讓我們幾乎能找到所有python已經(jīng)實(shí)現(xiàn)的解決方案著淆。

開發(fā)領(lǐng)域多, 開發(fā)效率高

python能使用的開發(fā)領(lǐng)域拴疤, 相信我不說大家也非常清楚了

  • 運(yùn)維
  • 爬蟲
  • web系統(tǒng)
  • 大數(shù)據(jù)
  • 人工智能
  • 云計(jì)算(openstack)
  • 桌面應(yīng)用

想到的領(lǐng)域基于python都可以完成永部。

當(dāng)然即使這樣大家也需要去學(xué)習(xí)各個(gè)領(lǐng)域的框架, 但是有了python基礎(chǔ)去學(xué)習(xí)這些框架會(huì)讓高效的多呐矾。

這一點(diǎn)就比php有很大的優(yōu)勢了苔埋, php在web系統(tǒng)開發(fā)中有很大的優(yōu)勢,因?yàn)閜hp最初就是致力于web系統(tǒng)開發(fā)蜒犯, 使得php在web系統(tǒng)開發(fā)中具有了很大的生態(tài)優(yōu)勢组橄。

但是python的web開發(fā)領(lǐng)域也很強(qiáng)大, 已有的很多框架如django罚随, flask玉工, tornado等等,不管大家是需要一個(gè)靈活的框架還是需要一個(gè)全棧的web開發(fā)框架還是需要一個(gè)性能高的web框架都可以滿足大家的要求淘菩。

當(dāng)然python的開發(fā)效率是非常高的遵班, python中面向?qū)ο蟮母拍钍潜萷hp的面向?qū)ο蟾拍顝?qiáng)的, 而且大家也會(huì)發(fā)現(xiàn)es6的語言也和python有很大的相似之處, 所有大家學(xué)會(huì)了python去理解javascript的話也會(huì)有很大好處狭郑。

最后

  1. 一個(gè)高級(jí)的程序員需要學(xué)習(xí)的知識(shí)遠(yuǎn)不止語言本身腹暖, 還包括很多基礎(chǔ)知識(shí),這些基礎(chǔ)知識(shí)加上語言和框架本身才會(huì)讓我們走的更遠(yuǎn)更久愿阐, 但是學(xué)習(xí)這些知識(shí)是需要時(shí)間的,所以如何有更多的時(shí)間去學(xué)習(xí)也就成為我們領(lǐng)先別人的優(yōu)勢了趾疚。

  2. 上面只是列出了python的幾個(gè)大的優(yōu)勢缨历, 實(shí)際上還有很多細(xì)節(jié)用一篇文章或者一個(gè)問題是無法描述清楚的。大家在熟悉python開發(fā)后自然就會(huì)明白

  3. 開發(fā)效率糙麦!開發(fā)效率辛孵!, python的開發(fā)效率比java高很多赡磅,同樣的功能代碼量應(yīng)該是java的1/3左右魄缚, 這個(gè)開發(fā)效率可以讓大家有更多的時(shí)間陪家人和學(xué)習(xí), 知乎上有人說過:如果你要讓一個(gè)pythoner加班焚廊, 你需要和他談情懷冶匹, 談加班工資, 談股票期權(quán)才行咆瘟。 如果你需要一個(gè)javaer加班你只需要告訴他編碼規(guī)范就行了嚼隘。

  4. 我周圍已經(jīng)有好些朋友或者同事是c++或者java轉(zhuǎn)python開發(fā)的, 然后打算一直就用python了袒餐。

  5. 人工智能時(shí)代的火熱飞蛹, 相信會(huì)讓python越來越流行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市灸眼,隨后出現(xiàn)的幾起案子卧檐,更是在濱河造成了極大的恐慌,老刑警劉巖焰宣,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霉囚,死亡現(xiàn)場離奇詭異,居然都是意外死亡匕积,警方通過查閱死者的電腦和手機(jī)佛嬉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸天,“玉大人暖呕,你說我怎么就攤上這事“” “怎么了湾揽?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我库物,道長霸旗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任戚揭,我火速辦了婚禮诱告,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘民晒。我一直安慰自己精居,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布潜必。 她就那樣靜靜地躺著靴姿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磁滚。 梳的紋絲不亂的頭發(fā)上佛吓,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音垂攘,去河邊找鬼维雇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晒他,可吹牛的內(nèi)容都是我干的谆沃。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼仪芒,長吁一口氣:“原來是場噩夢啊……” “哼唁影!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掂名,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤据沈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后饺蔑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锌介,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年猾警,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孔祸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡发皿,死狀恐怖崔慧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穴墅,我是刑警寧澤惶室,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布温自,位于F島的核電站,受9級(jí)特大地震影響皇钞,放射性物質(zhì)發(fā)生泄漏悼泌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一夹界、第九天 我趴在偏房一處隱蔽的房頂上張望馆里。 院中可真熱鬧,春花似錦可柿、人聲如沸鸠踪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慢哈。三九已至蔓钟,卻和暖如春永票,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滥沫。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工侣集, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兰绣。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓世分,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缀辩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臭埋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,324評(píng)論 25 707
  • 一、異同對(duì)比選擇1臀玄、Python和ruby的相同點(diǎn): * 都強(qiáng)調(diào)語法簡單瓢阴,都具有更一般的表達(dá)方式。python是縮...
    沃倫蓋茨閱讀 4,151評(píng)論 2 24
  • 涵小碩閱讀 162評(píng)論 0 0
  • 心情低落的時(shí)候 仿佛全世界都是錯(cuò)的 自己的呼吸是錯(cuò) 以前寫的日記是錯(cuò) 想要求助他人的念頭是錯(cuò) 我多想找人訴說 可是...
    霍淮箏閱讀 506評(píng)論 2 1