C++程式設計師現在快要被市場淘汰了嗎?
程式語言在某種程度上很像朝代,隨著時間流逝而一代代更迭,有些程式語言正面臨著淘汰,消亡在歷史的洪流中。
在網際網路上,關於C++將要被市場所淘汰的討論從未停止過,有人說C++是一門過時的程式語言,也有人說,C++是不可替代的。那麼,C++過時了嗎?C++程式設計師會不會被淘汰?
在學習C/C++程式設計或者想要學習C/C++程式設計可以加入我們的學習交流QQ群:788649720,群內有學習資源,大家一起學習交流!
100offer的觀點是:企業對C++的需求勢必越來越少,C++程式設計師全體競爭力也將越來越弱,但C++在很長一段時間都不會徹底消亡。
讓我們先來看一組TIOBE的最新資料。
C++程式設計師快要被市場淘汰了嗎?
程式語言排行榜 TOP18 榜單
以上是TIOBE於2016年8月釋出的「程式語言排行榜 TOP 18榜單」,根據最新排名,Java再度奪得排行榜冠軍,有19.010%使用者,對應了之前的觀點——
從市場上的招聘現狀看,Java工程師依然有著其他語言不可取代的競爭優勢。
C和C++雖然分別拿到了亞軍與季軍,但是均再次跌破歷史最低點,C較上個月下降3.43%,C++較上個月下降1.94%,情況不容樂觀。
C++程式設計師快要被市場淘汰了嗎?
前 10 名程式語言長期走勢圖
從TIOBE在8月釋出的「前 10 名程式語言長期走勢圖」能夠看出來,C++在21世紀初有著不可動搖的地位,從2004年之後,C++的佔比開始不斷下跌,對比排在後面的程式語言不再具備優勢。
我們也選擇了五門程式語言,從企業發出面邀數和最終入職數做出對比分析——
C++程式設計師快要被市場淘汰了嗎?
C++程式設計師快要被市場淘汰了嗎?
從企業發給候選人的總面邀佔比以及程式設計師最終入職佔比可以看出,java仍是市場上最供不應求的崗位,PHP緊隨其後,C++獲得的面邀數和offer數沒有任何優勢。
在學習C/C++程式設計或者想要學習C/C++程式設計可以加入我們的學習交流QQ群:788649720,群內有學習資源,大家一起學習交流!
曾經是程式語言「三巨頭」之一的C++,為何現如今會面臨如此尷尬的局面?
C++不斷衰退的原因
1、技術不斷更新
以前,絕大數需求都要用C++來寫,所以C++曾無比興盛。如今,很多領域都開始有專屬它的一門語言,使得實現需求變得更為便捷。
眾所周知,在20世紀末21世紀初,大部分的個人計算機只有文字排版、影象製作的需求,隨著個人計算機的迅速普及,使用者基數不斷增加,這類需求迅速降低,新增使用者們的需求開始轉變為資訊整合共享。
隨著網際網路的發展,技術不斷更新,使用者只需簡單的「傻瓜式」操作就能滿足他們的需求,候選人柯先生舉了在app里加地圖的例子——
「以前,這類需求沒那麼容易,要用到 OS 的 UI 功能去整合一個 native 模組才能實現,現在簡單多了,用 Google Maps 做網頁的 marshup 就行了。C++在面臨新技術時,太多功能有侷限性,未免顯得複雜了,例如,C++的靜態型別限制太強導致動態功能不足。」
2、C++已過巔峰期
雖然C++仍在不斷更新,但使用C++的員工平均年齡不斷增長,能使用C++新專案也越來越少,導致C++已過巔峰期。
候選人張先生提出,「C++的語言機制在實際使用有很多問題,導致細節不能運用。舉個典型問題,如STL,容易生成錯誤資訊,而Java則不會出現這類問題。所以,很讓人沮喪,C++早已過了巔峰期。」
此次接受100offer採訪的C++程式設計師們,有70%表示:在初學時,耗費了太多太多精力投入到語言細節中去了。他們如今在思考:這些細節對除C++以外的應用開發到底有沒有作用?或者說,作用只是微乎其微?
C++還有很強的生命力,只是顛峰早已不在,並且,強大生命力僅是從歷史上的興盛繼承而來。無法掩飾的事實是:C++在應用領域開始展現出疲態。
3、市場需求減少
C++不斷衰退的最重要原因是:市場需求減少。
從文章開頭提供的相關資料可知:需要C++的企業越來越少,這是不爭的事實。
程式語言的盛衰與市場需求的關係更為明顯,並非是程式語言本身的優劣所影響市場需求。我們不得不承認的現實是:會大規模自建基礎設施的企業,除了BAT等巨頭企業外並不多,時代早已悄然發生改變。
即便是新興的網際網路巨頭企業們,留給基礎設施工程師的職位也不會很多,更別提創業公司了。顯然易見,C++更偏向於基礎設施方向,隨著業務系統開發的門檻持續性降低,C++職位需求勢必將越來越低。
當C++只剩下大型企業才有大量需求時,當C++對員工要求也越來越苛刻時,當C++程式設計師的個人發展變得更為艱難時,這門語言自然不可避免會走向衰退。
C++為什麼不會消亡
即便C++的市場需求越來越少,但C++是不會消亡的。從世界範圍的統計資料來看,C++雖然在不斷衰退,但仍多年排在第三名。所以,在很長一段時間,C++都不會跌出前三的寶座。
C++為什麼不會消亡?我們採訪了多名C++程式設計師後,得出以下三個觀點——
1、在遊戲和工具領域仍然是主流
首先是遊戲領域,Milo Yip表示——
程式設計師必須使用C++框架/庫,如大部分遊戲引擎(如Unreal/Source)及中介軟體(如Havok/FMOD),雖然有些C++庫提供其他語言的繫結,但通常原生的API效能最好、最新。
其次是工具領域,無論是網路安全還是防毒軟體,C++仍是主流語言。
2、C++程式設計師的收入沒有受到影響
根據100offer的後臺資料顯示,目前入職的程式設計師年薪最高達47萬,最低22.4萬,C++程式設計師的收入與其它程式語言的崗位相比處於持平狀態,沒有出現劣勢。
在學習C/C++程式設計或者想要學習C/C++程式設計可以加入我們的學習交流QQ群:788649720,群內有學習資源,大家一起學習交流!
隨著C++逐漸成為某些特定企業和特定專案所需的語言後,高階C++程式設計師的收入也會更具有競爭性。
3、C++仍具有不可替代性
知乎紅人vczh說:「我在上大學的時候幾乎就只學習C++,後來實習的時候去了微軟,結果到了那裡才知道,那個組是不用C++的,怎麼辦?憑藉著C++帶給我的殷實的功底,我按時完成了老闆給我的“兩個星期內學會C#和WCF基礎知識”的工作,順利開始工作。」
當然,這只是vczh的個人經歷,不具有普遍性,但不可否認的是C++仍具有不可替代性。某家創業公司CTO在接受採訪時表示:「即便有很多人唱衰C++,但在當代,仍有很多很多專案的目標平臺暫時只提供C++編譯器的支援,僅從這一點而言,C++是不可能徹底死亡的。」
從應用領域來說,C++適用於高效能運算、嵌入式系統、開發伺服器軟體、遊戲、實時系統等,所以,短期內能徹底取代C++語言並不存在。
C++在系統、圖形、網路等很多領域都是不可替代的,它的光輝歲月讓它的死亡速度得以削減。
結論:
當某一種程式語言在市場需求明顯比另一種語言更強時,強需求語言中的缺陷則容易被淡化,衰退的語言則不斷被人挑出致命硬傷。這種程式語言之間的比較並不公平,且沒有意義。
在學習C/C++程式設計或者想要學習C/C++程式設計可以加入我們的學習交流QQ群:788649720,群內有學習資源,大家一起學習交流!
程式語言都是用來表達思想和完成需求的工具,隨著時代的發展,不同語言在不同領域都做出了取捨,取代雖然存在,但不是必然現象。C++的需求隨著時代發展會不可避免地越來越少,但不可能徹底消失,C++程式設計師也具有不可替代性,在市場上依舊有著競爭性。