-
1 # 逆寫序章
-
2 # DianYingMi
微軟當初戰略錯誤,把.NET的執行庫繫結在Windows平臺,雖然現在重寫了新的執行庫.NET 5以後可以跨平臺運行了,但是已經給業界留下根深蒂固的印象C#是Windows專用的。
-
3 # 人類文明索引
語言排名如同股票,起伏震盪,你追我趕是正常的。
C#是編譯語言,除錯時需要編譯、連結、載入後執行執行,語法要求嚴格,大量修飾詞,括號,資料型別切換等,入門門檻稍高,跨平臺支援差些,但程式碼效率高。C#在windows應用開發有優勢,因為是微軟推出的,內建標準庫、登錄檔、WMI、網路更方便。
Python是指令碼語言,直譯器執行,小巧簡潔,入門更簡單上手快,閱讀和互動性更好;方便擴充套件和移植;跨平臺的庫很多,呼叫方便,人工智慧和資料科學應用較多,但開發大型軟體平臺相對較少,效率一般。
-
4 # IT程式設計學習棧
你好,感謝您給我這次回答的機會。
首先,這種排名本身就毫無意義,而且就算真的要排,也不是這麼個排法。靜態語言跟動態語言混著排,低階語言與高階語言混著排,連sql都能進來摻一腳。以前老版本的排行榜裡,甚至還有css。乾脆不如把漢語,英語,法語也加進來算了。
Python誕生於1989年,C#誕生於2000年。論年紀,兩者差了11年。但為什麼一個80後,直到今天才排到了00後的前面?早幹什麼去了?一門近30年都沒火的語言,為什麼最近幾年突然就給火了?如果非要回答的話,我會說是“因為沒有新的增長點”。
動態語言絕大部分都是老古董,其中最“年輕”的是javascript,ruby和lua,它們是僅有的三個90後。絕大多數動態語言,都誕生於計算機發展的早期階段。
那個時期的電腦,還沒有圖形介面。最主流的作業系統,是微軟幫IBM個人電腦開發的MS-DOS,整個作業系統才700kb,在當時已經算巨無霸了。程式一般只有幾kb,甚至幾byte。通常幾百行程式碼的程式,就能算一個“軟體”,幾千行程式碼就算是“巨型專案”了。
而從windows誕生之後,圖形介面化的時代真正到來了,那些幾千行程式碼寫成的“巨型專案”,直接變成了“小工具”。其實至此,現代IT行業才算真正誕生,計算機行業才從電工行業中完全獨立出來,“會程式設計的電工”才變成了程式設計師。靜態語言誕生,解決了兩個根本問題,一是讓程式可以寫的更大,使“軟體”的門檻,從幾百行程式碼,猛增到十萬行級別,“大專案”飆升至百萬行級別。二是可以讓程式跑的更快。3d遊戲等依賴高效能的應用迅速發展壯大。
此後動態語言因為無法克服難以編寫大型程式,以及執行速度慢這兩個問題,被視為過時的技術,逐漸從主流變得邊緣化。
幾乎所有的程式設計師都在學習桌面程式開發,C++一度如日中天,而學習網站技術的程式設計師,被視為“不務正業”。而當時普遍認為,動態語言會在2000年徹底滅絕。
再後來,網路時代到來了,各種應用被搬到了瀏覽器上,桌面開發開始轉冷,那群“不務正業”的人成了搶手貨,“務正業”的人卻突然沒了方向。
這時候一度被windows吊打的Linux,又重生了。。之前快被扔進垃圾堆的“破爛兒”,搖身一變,卻成了裝逼神器。
隨著網路普及度越來越高,人們發現每次更新網站上的內容,都要關閉伺服器,嚴重影響網站的流量增長。而靜態語言因為需要編譯,每次更新必須關閉網站。於是javascript雖然是動態語言,卻也照樣火了。“學程式設計==做網站”成了既成事實,PHP,Python,Ruby等本該滅絕的動態語言,又跑出來蹭網際網路的熱度,集體復活了。儘管依然不適合大程式,但兌付著做些鄉鎮企業的官網,部落格,個人主頁,總是綽綽有餘的。
再後來智慧手機普及,又把java和OC捧火了。什麼軟體都要有個手機版,才顯得有逼格。可是由於智慧手機增長過快,短短几年之後又沒了增長點,IOS開發短短几年就由熱轉冷,今天在就業市場已經基本絕跡。安卓開發還有一些崗位,但也已經淡出主流了。
各大廠商絞盡腦汁,趕緊搞出了VR,AR進來救場。結果消費者卻不買賬。。。觀望的人不少,但創造的經濟效益卻非常有限,於是這個概念很快就冷掉了。一大堆VR引擎蓄勢待發,幾年之後就只剩Unity3d這麼個獨苗了。。。眼見形勢不對,混合現實,區塊鏈,大資料組隊前來。結果混合現實的裝置太貴,消費者不買單,大資料又無法平民化,也就沒了炒點。
區塊鏈總算稍微炒出點熱度,忽悠出一支“夠浪”地鼠軍團歌功頌德,但不久之後卻發現整個it圈,除了一群傳教士每天在編故事,“夠浪”們每天在聽故事,高喊口號拯救世界之外,居然沒人能說清區塊鏈到底有啥用?後來也不知是誰手賤發帖問了一句“區塊鏈是不是龐氏騙局?”竟然出現了皇帝新衣一般的童話式劇情。“夠浪”大軍除了發動人海戰術,用幾個假大空的術語反覆洗版之外,居然連一條有力的反駁都講不出來,眼看就要編不下去了。
這可急壞了it巨頭們。就在這時,已經被遊戲開發行業玩了幾十年的“人工智慧”,突然搖身一變,返老還童,火了!
“人工智慧”這幾十年來,從深度優先遍歷,廣度優先遍歷,發展到A*演算法,再到FSM有限狀態機,又進化到行為樹。。每隔兩年就出一套新演算法。一直也不火。
做過的益智遊戲數不勝數,搞過的NPC邏輯成千上萬。象棋、圍棋、五子棋、鬥地主、三國殺、對對碰、連連看,各種演算法輪番上陣,帶火的遊戲一波又一波,可人工智慧本身就是火不起來。
90年代初期,IBM搞了套演算法炒作一波,用深藍計算機下國際象棋,把各路國際象棋大師殺的人仰馬翻。概念確實炒起來了。不久之後,深藍就在電影裡成功統治了世界,可惜被一個內褲穿在外面的人打敗了。
所以,一定要用客觀的眼光去看待這些排名的變化。以上僅僅代表個人觀點。
-
5 # 迎久加措
c#體系過於複雜,2017版的安裝得需要30G硬碟空間。python體系結構簡單,各種功能函式豐富,易學好上手。因此,使用puthon的人越來越多
-
6 # 楊文垚
C#一直以來都被詬病,但近些年由於U3D的出現大放光彩。Python其實就是一門指令碼語言,嚴格意義上來講算不上程式語言,因為得益於當下熱門的AI,爬蟲,大資料等,很多程式設計師為了吃上這個紅利轉學Python,當有了一定生態環境,自然而然的派生出更多運用場景,所以熱度自然上去了。
-
7 # 只說程式碼的大餅
我個人認為C#排名和Python相差越來越大,有以下幾個原因:
一.微軟方面。如果最開始不和自家作業系統捆綁於一體,C#應該還是比現在發展得好很多,或者國內使用得人或者公司將會更多。
二. 後備人才方面。以前大學計算機系都還開設C#課程,現在幾乎看不到大學裡還會要求學C#的,
大部分都是Java的。
三. 社群方面。社群裡成熟的解決方案,微服務流行一段時間後,C#也沒能有成熟的解決方案。
最近一兩年才是.Net Core跨平臺、微服務、容器化。估計只能分點湯喝了。
四. 國內大環境。之前使用C#為核心技術開發的大公司都分分倒向Java陣營,現在使用騰訊好像有使用
.Net Core開發企業內部的系統。
五.語言本身問題。C#語言本身還是很好用的,封裝工具也多,語法糖也越來越好用,語言特性一直在升級。
Python排名越來越靠前的兩點,粗說一下。一.大資料分析把它推向了高潮。
二.社群成熟的框架多。
總結:目前來看,在國內C#排名高低主要決定於第一點和第四點,本人用C#多,可能不太適應用Python,不太喜歡它的縮排方式。還是感覺用“{}”舒服。
以上只是個人感受,不喜歡的也勿噴。
-
8 # Fintech技術匯
Python近些年大火,主要跟AI,科學計算等的興起相關,Python是動態語言,具有容易上手,類庫多,使用方便等特點,即使現在的兒童程式設計教學也選擇Python,排名不想提升都難吶。反觀C#,它其實是一門很優秀的語言,以前跨平臺是其劣勢,.net core的推出解決了跨平臺這一短板,但是很多市場都已經被java等佔據了,使用的人數自然沒有那麼多,其排名也就一致徘徊在5,6,7,8的樣子
回覆列表
以下是我的一些個人觀點,說的不對還請指正:
首先從語言本身來看:
C#可以認為是編譯型語言(嚴格的說是混合型),python屬於解釋型語言。
C#的優點是快,執行速度快。因為編譯只做一次,執行時不需要編譯,所以編譯型語言的程式執行效率高。
同時編譯是一把雙刃劍,程式碼如果修改就需要整個模組重新編譯,而且需要根據執行的作業系統環境編譯不同的可執行檔案。
魚和熊掌不可兼得。python的優點就是跨平臺比較強,程式碼修改不需要停機,缺點就是每次執行的時候都要解釋一遍。
但是隨著軟硬體的飛速發展,解釋執行的時間和編譯後再執行的時間差會越來越小,而python語言的“優雅”、“明確”、“簡單”的優勢也日趨明顯。
其次從類庫生態來看:
Python有著大量的第三方類庫,在其他一些語言在實現一個功能時可能需要幾十行到幾百行程式碼,而Python可能呼叫下一下別人造的輪子,幾行程式碼甚至一行程式碼就搞定了。而C#剛開始是基於Windows平臺的,到了後來才可以跨平臺和開源,第三方類庫數量不如Python。
最後從發展前景來看:
人工智慧,大資料的時代已經到來,資料清洗,分析這些都是Python的強項,人工智慧方面也有很多基於Python的優秀的框架。如果有人說Python效率低啊,我硬體不達標就是需要效率,那追求效率人們更願意使用C/C++而不是C#。
綜上,就造成了C#和Python排名相差越來越大。