說實話,這個問題真的不好回答,容易引戰!
當然,以下言論僅代表我個人觀點,不喜勿噴,為了祖國和諧,人民安康,請各位看官盡量理性討論!
對于Java和Python到底那個更好,這個問題,站在不同的角度,自然就會誕生出不同的答案,如果一個不懂幾門編程語言的人,或者很少使用到Java或者Python的人,一上來就告訴你Java好還是Python好,這是赤裸裸的不負責任。
如果這個人用Python開發,并且混得還不錯,他一定會告訴你Python是世界上最好的語言,沒有之一,Java都是垃圾,都是落伍了的。
當然,如果這個人用的是Java,而很少用python,那他一定會告訴你用Java比python好。
但,如果這個人是兩個語言都沒有用過的鍵盤俠,他一定會告訴你語言都是相通的,不用糾結。
似乎,每一個人都說得好有道理的樣子,于是讓你無從選擇,而且還陷入了更深層次的糾結中!
今天,我站在一個客觀的立場上,替你分析一波。
首先,在選擇之前,我們第一個要弄清楚的就是Java和Python的區別。
一、從語言本身的層面來看
最本質區別就是一個是腳本可以解釋執行,一個是需要編譯通過才能執行。相同點就是,它們都會通過一個中間語言來執行,而且都會優化。不過java的優化強大,效率高。另外python的面向對象與java的不完全一樣。python更表面化,java的嚴格多了。編程風格也有本質區別。python喜歡隨意,喜歡用小寫,喜歡用縮略語的變量。這些在java中都是違反規范的。python是C語言庫支持的。更接近函數式編程。同時與操作系統底層也通過C,直接打交道。java這方面就弱多了。語法方面python不需要聲明就可以使用變量。但是要求對齊要很整齊。java不要求整齊,但是變量一定要聲明定義后才能用。python中大量使用類似指針的用法,很靈活。而java這方面基本上用面向對象,以及類的操作代替。python是全動態性的,可以在運行時自己修改自己的代碼,java只能通過變通方法實現。python的變量是動態的,而java的變量是靜態的,需要事先聲明,所以java ide的代碼提示功能優于python ide。python的產生幾十年了,幾十年前面向過程是主流,所以用python有好多程序用的是面向過程設計方法,很多概念從c語言過來的,class在python中是后加入的,而java是為了實現沒有指針的c++(當年com組件用的引用記數,java用的虛擬機),主要采用面向對象的設計方法,很多概念是oop的概念。面向過程,相對簡潔直觀,但容易設計出面條程序,面向對象,相對抽象優雅,但容易過度抽象。
二,從生態環境的層面來看
1、在實際使用的python入門簡單,但要學會用python干活,需要再學習python各種庫,pyhton的強大在于庫,為什么python的庫強大,原因是python的庫可以用python,c語言,c++等設計,再提供給python使用,所以無論gpu運行,神經網絡,智能算法,數據分析,圖像處理,科學計算,各式各樣的庫在等著你用。而java沒有python那么多的開源庫,很多庫是商業公司內部使用,或發布出來只是一個jar包,看不到原始代碼。python虛擬機因為編譯性沒有java的支持的好(或者說故意這么設計的),一般直接使用源碼(linux),或源碼簡單打個包(如pyexe)。2、python有很多虛擬機實現,如cython,Pyston,pypy,jython, IronPython等等,適合用于業務語言,或插件語言,或面向領域語言,而java因為虛擬機巨大,很少用于插件語言,發布也不方便。3、java主要用于商業邏輯強的領域,如商城系統,erp,oa,金融,保險等傳統數據庫事務領域,通過類似ssh框架事務代碼,對商業數據庫,如oralce,db2,sql server等支持較好,軟件工程理念較強,適合軟件工程式的多人開發模式。python主要用于web數據分析,科學計算,金融分析,信號分析,圖像算法,數學計算,統計分析,算法建模,服務器運維,自動化操作,快速開發理念強,適合快速開發團隊或個人敏捷模式。4、java的商業化公司支持多,如sap,oracle,ibm等,有商業化的容器,中間件,企業框架ejb。python的開源組織支持多,如qt,linux,google,很多開源程序都支持python, 如pyqt,redis,spark等。5、python用途最多的是腳本,java用途最多的是web,pyhotn是膠水,可以把各類不相關的東西粘在一起用,java是基佬,可以通過軟件工程組成幾百個人的團隊和你pk,商業化氣息重。不過我認為還是python強大,因為可以方便調用c或c++的庫,但軟件工程和商業化運作沒有java好,適合快捷開發。6,關于錢。如果你想寫程序賣軟件用java,可用上ibm服務器,上oracle數據庫,上EMC存儲,價格高,商業采購公司喜歡這種高大上。如果你要直接用程序生成金錢用python,python可以實現寬客金融,數據回測,對沖套利,統計套利,有很多開源庫,數據分析庫,機器學習庫可以參考。7、java和python,都可以運行于linux操作系統,但很多linux可以原生支持python,java需要自行安裝。java和python強于c#的原因大于支持linux,支持osx,支持unix,支持arm。java和python比c++受歡迎的原因在于不需要指針。8、對于移動互聯網,python只能通過運行庫運行于安卓或ios,java原生支持安卓開發,但不能用ios中。9、對于大數據,hadoop用java開的, spark用Scala開發,用python調用spark再分析更方便。10、java更適合做網站,做分布式計算。所以科學上,網絡上用得多。11、python覆蓋面廣。從教育,科研,運維管理,到一般的網站全都有。主要側重在運維管理方面。本來它創建時就為了管理用的。java當時創建就是為了跨平臺的移植,為了嵌入系統。事實上嵌入系統方面,java不成功。
三,從發展前景的層面來看
Java的發展方向:web開發、大數據開發、安卓開發、服務器開發等等。
Python的發展方向:數據分析、人工智能、web開發、測試、運維、web安全等等。
當然,從兩者的區別來看,似乎也是很難選擇!
畢竟,Java與Python目前都是非常流行的全場景編程語言,在很多開發場景下,既可以使用Java語言,也可以采用Python語言。
而且,隨著近幾年大數據和人工智能領域的熱度越來越高,Python語言的上升趨勢正在逐漸提高,而python語言本事,也獲得了越來越多的關注。
但,就總體而言,Java語言還是有很多固有優勢的,主要體現在以下三個方面:
第一:性能。Python語言有很多優勢,比如簡單易用、擴展性強等等,但是在性能方面與Java相比還是存在一定的差距,這一點不論是在Web開發,還是在大數據開發領域,都有一定的體現,這也是為什么很多比較注重性能的平臺,更愿意采用Java語言的重要原因。第二:生態體系。Python語言和Java語言的生態體系都比較健全,但是二者之間的發展路線還是存在一定區別的,Python更注重“庫”的搭建,而Java則更注重“平臺”的搭建,從這個角度來看,Python更注重問題的解決,而Java更注重如何通過技術來構建生態。從語言的角度來進行延伸,Java程序員更擅長做“輪子”,所以這個過程可能會不可避免地出現重復,而Python程序員則能夠在很大程度上避免這一問題。第三:安全性。安全性也是Java比較優勢的領域,當前部分大型安全服務商,尤其是關注于企業安全服務領域的科技公司,也把解決方案從Python調整回Java路線上,這在一定程度上能夠說明Java語言在安全方面的優勢。
如果單純從事實出發,Python的學習,要相對簡單一點,而Python之所以簡單,是因為我們使用Python時,可以直接調用別人給我們寫好的代碼接口,而Java的很多處理相對要原生一點,我們寫的代碼要稍微多一點。
這就類似于中國人吃飯時喜歡使用筷子,而外國人吃飯時喜歡使用刀叉,如果你會使用筷子,那你使用起刀叉來就會毫無障礙,但如果你僅僅只會使用刀叉,而想要直接使用筷子,就要相對困難一些。
所以,不要再糾結了。
如果你把Java作為你的人生的第一門用心學習的語言,那么你只需要花極短的時間,就可以基本學會C++,JavaScript,PHP, Python,R,C#,Objective-C,Swift,Go等一些列語言。
此回答來自樂字節
最后介紹幾個可以自學 的地方給大家(嗶哩嗶哩自學)SpringBoot+Vue前后端分離項目實戰:BV1Tq4y1E7i5MySQL數據庫: BV1tK4y197JC