到底是Java好還是Python好?
也經常有人問我:“老劉,到底是Java好還是Python好? 我應該學習哪個語言?”
我也挺為難的,只好說道:
Python挺適合入門的,看起來很簡單,適合創業團隊,可以快速開發,快速上線,快速迭代。適合特種部隊的突襲。等到發展到一定規模,動態語言的劣勢就會體現出來,維護/重構難度高,特別是我覺得動態語言寫的程式碼腐化速度要比靜態的Java要快一些。
Java呢,語法相對Python囉嗦,表達力要弱一些,開發起來一板一眼,有很多規範,適合集團軍的大規模協同作戰;有很多著名的框架和類庫,效能不錯,系統穩定而成熟,是開發大型系統的極好選擇。
他說:“老劉你這是在和稀泥嘛,我到底應該學啥?”
我說:“你應該把注意力放到那些和Java無關,和Python無關,能反映一個程式設計師水平高低的程式設計的共性問題。”
舉個非常簡單的例子,開發中需要實現一個定製的、簡單的快取,如果使用ehcache ,memcached, redis這樣的開源系統就太重量級了,經理要求你新寫一個,可以支援(key,value)儲存,設定過期時間,過期的可以自動清理掉,你能不能快速地實現一個高質量的版本?
這其中涉及到的就是資料結構和演算法、以及執行緒的知識,和具體的語言關聯度很小。
再比如給你一個需求,你能不能找出其中“概念”,從而設計出類?能不能做好資訊的封裝和隱藏,定義出良好的介面,讓每個類的職責單一而準確?
Python中有class , Java 中也有class, 但是上述工作卻和具體語言沒什麼關係。你需要做的是利用你的經驗,在腦海中做一次思維體操,然後用某個語言工具把他們表達出來。
有些“概念”比較容易發現,有些“概念”和現實沒有直接的對應關係,需要抽象一下才能找到,這就比較考驗抽象的能力了。
可能有人說,我們Web開發都是“面向資料庫”程式設計的,都是基於資料庫的增刪改查,用不上你說的這些東西。 那如果經理給你一個專案需求,讓你完整地設計出表結構來,要求方便後續的程式開發,又要考慮到靈活性和擴充套件性,你能不能搞定呢?
在程式設計中,你發現了重複的程式碼,那能不能找到一個概念(最終可能由一個類或者函式來表達),來表示這個重複的模式,從而極大地消除重複程式碼?
你能否區分哪些是不變的部分,哪些是變化的部分,把他們區分開來,“發現變化,並且封裝變化。”
說到底,本質上還是那個抽象的能力, 這樣的例子有很多,這裡不再一一列舉了。
作為一個程式設計師要發展,要成長,不可能一直增刪改查,不可能一直停留在程式語言的特性上面,爭論孰優孰劣。
對於做技術的人來說,總有一天,眼光和視野要超越程式語言,進行設計和架構的工作,停止無謂的爭論,開始紮紮實實地學習吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31538948/viewspace-2215849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2019學java好還是Python好?JavaPython
- 到底是倉庫模式好,還是MVC模式好?模式MVC
- 學Java好還是前端好?Java前端
- 新手學程式設計,到底是PHP好還是python好呢程式設計PHPPython
- 解析:學Java好還是HTML5好?JavaHTML
- 軟體測試是走Python棧還是Java棧好?PythonJava
- Python到底是什麼?Python發展前景好嗎?Python
- 從技術上來說PHP好還是JAVA好?PHPJava
- 選擇python還是web前端好PythonWeb前端
- 小白轉行學Python報班好還是自學好?Python
- 好程式設計師Python教程分享Python到底是什麼程式設計師Python
- 學前端好還是後端好?前端後端
- 零基礎學Java開發,是自學好還是報班好?Java
- 電腦是組裝的好還是原裝的好?
- 羊水穿刺好還是無創DNA檢測好?
- 小程式是直接買模板好還是定製開發好
- 小程式是直接買模板好還是定製開發好?
- 學Python選什麼系統好?Windows還是Linux?PythonWindowsLinux
- 好程式設計師Java學習路線介紹Java到底是什麼?程式設計師Java
- 入門Python程式設計是培訓還是自學好?Python程式設計
- 人老了住養老院好,還是在家住好?
- 是小廠全棧好,還是大廠專業工程師好?全棧工程師
- 找工作,去小公司好,還是大公司好?
- vscode 中 gopls 還是好難用VSCodeGo
- Python初學者,選擇Python2還是選擇Python3好?Python
- 英特爾和amd處理器哪個好 2022選intel好還是amd好Intel
- 學Python用什麼系統環境好?Linux還是Windows?PythonLinuxWindows
- 小白可以學網路安全嗎?自學好還是培訓好?
- 建站選擇雲伺服器好還是網站空間好?伺服器網站
- 什麼是Python?好學嗎?Python
- 買茶是網上好還是實體店好?
- Python和Java哪個好?分析!PythonJava
- 配置好jdk後,cmd編寫java -version還是報找不到jdkJDKJava
- 市銷率計算公式是什麼 股票市銷率高好還是低好公式
- 現在大家認為養老是在家好還是去養老院好?
- 做網站租用物理伺服器好還是雲伺服器好?網站伺服器
- win10需要更新嗎_win10更新好還是不更新好Win10
- AC耦合電容擺放:放驅動端好還是接收端好?