自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

到底是Java好還是Python好?

開發(fā) 開發(fā)工具
語言的優(yōu)劣之爭是個永恒的話題,有時候一次偶然地“擦槍走火”甚至可能會引發(fā)一場鐵桿粉絲之間的“戰(zhàn)爭”。

 語言的優(yōu)劣之爭是個永恒的話題,有時候一次偶然地“擦槍走火”甚至可能會引發(fā)一場鐵桿粉絲之間的“戰(zhàn)爭”。

也經(jīng)常有人問我:“老劉,到底是Java好還是Python好? 我應該學習哪個語言?”

[[245611]]

我也挺為難的,只好說道:

Python挺適合入門的,看起來很簡單,適合創(chuàng)業(yè)團隊,可以快速開發(fā),快速上線,快速迭代。適合特種部隊的突襲。等到發(fā)展到一定規(guī)模,動態(tài)語言的劣勢就會體現(xiàn)出來,維護/重構(gòu)難度高,特別是我覺得動態(tài)語言寫的代碼腐化速度要比靜態(tài)的Java要快一些。

Java呢,語法相對Python啰嗦,表達力要弱一些,開發(fā)起來一板一眼,有很多規(guī)范,適合集團軍的大規(guī)模協(xié)同作戰(zhàn);有很多著名的框架和類庫,性能不錯,系統(tǒng)穩(wěn)定而成熟,是開發(fā)大型系統(tǒng)的極好選擇。

他說:“老劉你這是在和稀泥嘛,我到底應該學啥?”

我說:“你應該把注意力放到那些和Java無關,和Python無關,能反映一個程序員水平高低的編程的共性問題。”

舉個非常簡單的例子,開發(fā)中需要實現(xiàn)一個定制的、簡單的緩存,如果使用ehcache ,memcached, redis這樣的開源系統(tǒng)就太重量級了,經(jīng)理要求你新寫一個,可以支持(key,value)存儲,設置過期時間,過期的可以自動清理掉,你能不能快速地實現(xiàn)一個高質(zhì)量的版本?

這其中涉及到的就是數(shù)據(jù)結(jié)構(gòu)和算法、以及線程的知識,和具體的語言關聯(lián)度很小。

再比如給你一個需求,你能不能找出其中“概念”,從而設計出類?能不能做好信息的封裝和隱藏,定義出良好的接口,讓每個類的職責單一而準確?

Python中有class , Java 中也有class, 但是上述工作卻和具體語言沒什么關系。你需要做的是利用你的經(jīng)驗,在腦海中做一次思維體操,然后用某個語言工具把他們表達出來。

有些“概念”比較容易發(fā)現(xiàn),有些“概念”和現(xiàn)實沒有直接的對應關系,需要抽象一下才能找到,這就比較考驗抽象的能力了。

可能有人說,我們Web開發(fā)都是“面向數(shù)據(jù)庫”編程的,都是基于數(shù)據(jù)庫的增刪改查,用不上你說的這些東西。 那如果經(jīng)理給你一個項目需求,讓你完整地設計出表結(jié)構(gòu)來,要求方便后續(xù)的程序開發(fā),又要考慮到靈活性和擴展性,你能不能搞定呢?

在編程中,你發(fā)現(xiàn)了重復的代碼,那能不能找到一個概念(最終可能由一個類或者函數(shù)來表達),來表示這個重復的模式,從而極大地消除重復代碼?

你能否區(qū)分哪些是不變的部分,哪些是變化的部分,把他們區(qū)分開來,“發(fā)現(xiàn)變化,并且封裝變化。”

說到底,本質(zhì)上還是那個抽象的能力, 這樣的例子有很多,這里不再一一列舉了。

作為一個程序員要發(fā)展,要成長,不可能一直增刪改查,不可能一直停留在編程語言的特性上面,爭論孰優(yōu)孰劣。

對于做技術的人來說,總有一天,眼光和視野要超越編程語言,進行設計和架構(gòu)的工作,停止無謂的爭論,開始扎扎實實地學習吧。

【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號coderising獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2018-09-26 14:17:00

編程語言JavaPython

2021-08-31 07:54:24

TCPIP協(xié)議

2019-02-14 14:09:09

散熱器水冷一體式

2023-11-16 12:34:00

MySQLjoin

2023-10-09 22:18:28

Python強制縮進

2015-04-21 09:20:40

SwfitObject—C

2020-08-07 07:39:19

編程語言JavaPython

2024-03-28 13:13:00

Htmx前端開發(fā)框架

2011-09-05 10:30:51

重構(gòu)代碼庫業(yè)務模型

2017-08-09 08:43:02

公有云趨勢聲勢

2020-08-31 19:17:24

Python強類型語言弱類型語言

2020-12-15 10:20:24

分布式鎖RedisZookeeper

2014-11-17 10:03:23

OpenStack

2018-07-09 11:26:49

2020-09-02 08:00:51

Java引用傳遞值傳遞

2014-06-05 14:46:05

設計設計師

2021-12-09 20:16:26

無線核心網(wǎng)傳輸

2020-08-31 19:19:27

TCPUDP視屏面試

2022-08-18 23:13:25

零信任安全勒索軟件

2023-10-10 16:03:48

數(shù)字化信息化
點贊
收藏

51CTO技術棧公眾號