首先,千萬別說某一個語言好很差,應爲這樣的用詞是錯的,我曾經在好多場合聽到一些程序員說java好,.net很差這類的話。java
其實語言不分好壞,只是在具體的某些領域或業務場景上不合適罷了。任何技術都沒有絕對的好壞,只有在這個場景下合不合適,把正確的技術用在合適的業務節點上纔是最重要的。python
博主最近很惆悵,想換工做。想從事的是數據挖掘專業的工做,大數據、雲計算等技術這幾年很火,博主如今是作web開發的,對數據挖掘也很感興趣,也知道數據挖掘使用Python語言比較火。今天在地鐵上搜了一下數據挖掘工程師職位,發現幾乎都是要會使用Python,linux
可是我net開發的,只用python寫過簡單的爬蟲,用的次數也不是不少。有點納悶爲何非要python呢?再想起來,以前遇到的各個語言對比的狀況因此決定下班回來好好查查資料總結下。(這裏我就找java、.net、Python三種語言了,其實還有其餘語言)程序員
首先java、C#、python 都是高級語言,他們均可以作桌面應用程序和web應用程序,可是對於複雜業務下的應用系統java和.net是比較合適的,相比來講,Python在這方面性能一直是個問題.web
java、C#、python 三門語言的流行領域上看,python主要火在於數據挖掘和機器學習,java和.net也能夠作數據挖掘方面的業務只是流行程度沒有python火,python之因此近幾年火,是大概能夠從三個階段找出緣由。編程
12-14年的雲計算,應爲python是解釋性語言開發和部署起來比較輕快,著名的雲計算開源平臺OpenStack就是基於Python開發的,Python對於運維工程師是很是好的一個幫手.c#
14-15年的O2O,P2P業務需求很是突出,因爲python開發起來很是的快速,適合快速開發搭建原型,因此催生了許多Python崗位windows
16-17年的人工智能和AI的流行,人工智能和AI都是基於大數據只支持的,而真正擁有大數據的商業公司不多,Python又適合寫網絡爬蟲,爬取大量數據。網絡
Python在多個方面都有不俗的表現,包括網絡爬蟲、金融、AI、數據分析、機器學習、運維、測試。功能強大、簡單有豐富的第三方庫。併發
再來看看java和C#,其實上述Python說到的各個方面java和C#也能作,只是火熱程度Python仍是比較火的。其實java一直是編程語言中的老大哥,.net推出比java晚,但由於其不夠開源,因此服務端開發地位不高。應爲java在開源社區又豐富的解決方案去處理各類各樣的問題,最主要的是.net在以前只能部署在 windows環境下,而windows環境下大部分軟件都是要收費的,而在電商業務高併發場景中部署在linux系統下的java虛擬機的性能比在windows平臺的iis的性能要好得多。就.net平臺的技術來看。c#語言基本上秒殺java,語法優雅,語法糖不少。.net平臺支持好。對於大多數業務場景,.net根本不須要第三方框架,.net自己都有很好的支持,而java項目須要拖一大堆第三方框 架,很不爽,還繼續引用,常常出現版本問題。.net平臺除了基礎類庫全,框架也很全,wcf專一通訊,wpf專一客戶端,winphone框架是手機端開發框架(雖然用的少,可是不錯的,舉個細節的例子,移動端開發都有scrollview相似的控件。並且visual stduio能夠說是 個宇宙級強大的編譯器超級好用。
因爲是閉源的生態圈沒有java那麼廣,在服務端中地位相差愈來愈遠,可是近幾年開始微軟已經開源了.net框架,相繼推出了Mono.、.net Core等跨平臺的框架,慢慢也走向開源,眼下技術變革那麼快,什麼事情都很難說。
java和C#其實寫起來就像是一對雙胞胎兄弟,有時候感受都是相互抄襲。
最後想說的是其實語言都是想通的,最重要的是解決問題的思路,選擇什麼語言也要看具體場景,固然是會的越多越好,俗話說技多不壓身。語言最終仍是實現業務的一個工具而已。