C++程序員會不會被淘汰? – TC-Sharing
C++程序員會不會被淘汰? – TC-Sharing

C++程序員會不會被淘汰?

編程語言在某種程度上很像朝代,隨著時間流逝而一代代更迭,

有些編程語言正面臨著淘汰,消亡在歷史的洪流中。

在互聯網上,關於C++將要被市場所淘汰的討論從未停止過,

有人說C++是一門過時的編程語言,也有人說,C++是不可替代的。

那麼,C++過時了嗎? C++程序員會不會被淘汰?

100offer的觀點是:

企業對C++的需求勢必越來越少,C++程序員全體競爭力也將越來越弱,

但C++在很長一段時間都不會徹底消亡。

讓我們先來看一組TIOBE的最新數據。

1v95n7jlcqby3v3n

C++程序員快要被市場淘汰了嗎?

編程語言排行榜 TOP18 榜單

以上是TIOBE於2016年8月發布的「編程語言排行榜 TOP 18榜單」,

根據最新排名,Java再度奪得排行榜冠軍,有19.010%用戶,對應了之前的觀點——

從市場上的招聘現狀看,Java工程師依然有著其他語言不可取代的競爭優勢。

C和C++雖然分別拿到了亞軍與季軍,但是均再次跌破歷史最低點,

C較上個月下降3.43%,C++較上個月下降1.94%,情況不容樂觀。

8q5ayak4918v0a29 (1)

前 10 名編程語言長期走勢圖

從TIOBE在8月發布的「前10 名編程語言長期走勢圖」能夠看出來,C++在21世紀初有著不可動搖的地位,

從2004年之後,C++的佔比開始不斷下跌,對比排在後面的編程語言不再具備優勢。

我們也選擇了五門編程語言,從企業發出面邀數和最終入職數做出對比分析——

 

企業

程序

從企業發給候選人的總面邀佔比以及程序員最終入職佔比可以看出,

java仍是市場上最供不應求的崗位,PHP緊隨其後,C++獲得的面邀數和offer數沒有任何優勢。

曾經是編程語言「三巨頭」之一的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++程序員的收入也會更具有競爭性。

3、C++仍具有不可替代性

知乎紅人vczh說:「我在上大學的時候幾乎就只學習C++,後來實習的時候去了微軟,

結果到了那裡才知道,那個組是不用C++的,

怎麼辦?憑藉著C++帶給我的殷實的功底,

我按時完成了老闆給我的“兩個星期內學會C#和WCF基礎知識”的工作,順利開始工作。」

當然,這只是vczh的個人經歷,不具有普遍性,但不可否認的是C++仍具有不可替代性。

某家創業公司CTO在接受采訪時表示:

「即便有很多人唱衰C++,但在當代,仍有很多很多項目的目標平台暫時只提供C++編譯器的支持,

僅從這一點而言,C++是不可能徹底死亡的。」

從應用領域來說,C++適用於高性能計算、嵌入式系統、開發服務器軟件、遊戲、實時系統等,

所以,短期內能徹底取代C++語言並不存在。

C++在系統、圖形、網絡等很多領域都是不可替代的,它的光輝歲月讓它的死亡速度得以削減。

結論:

當某一種編程語言在市場需求明顯比另一種語言更強時,

強需求語言中的缺陷則容易被淡化,衰退的語言則不斷被人挑出致命硬傷。

這種編程語言之間的比較並不公平,且沒有意義。

編程語言都是用來表達思想和完成需求的工具,隨著時代的發展,

不同語言在不同領域都做出了取捨,取代雖然存在,但不是必然現象。

C++的需求隨著時代發展會不可避免地越來越少,但不可能徹底消失,

C++程序員也具有不可替代性,在市場上依舊有著競爭性。

 

原文出處:36Kr