C++最近不太開心,自己曾經也是紅極一時的編程語言,參與構建了無數的基礎設施軟件。但隨着互聯網時代的崛起,以PHP和Java爲首的語言在Web開發領域以勢如破竹,摧枯拉朽之勢收穫了一大票的追隨者。
曾經的王者難道已經廉頗老矣了嗎?C++鬱鬱寡歡,今晚多喝了幾杯,竟做起夢來,夢裏,他來到了一個平行宇宙······
初遇Java’
眼前的白光慢慢褪去,不多時,一個熟悉的身影出現在C++的面前。
“這不是Java老弟嗎,你怎麼也在借酒消愁啊”,C++上前打了個招呼。
“你認錯了,我是Java’,唉日子過不下去了,大家都不用我做開發了”,說完又喝了一杯。
“你別開玩笑了,你Java有那麼多追隨者,SSH
框架和SSM
框架大行其道,過不下去的應該是我C++纔對,來我陪你喝”,C++說完也喝了一杯。
Java’放下了手裏的酒杯,“什麼是SSH和SSM,我怎麼聽不懂啊?”
C++指着Java’說道:“你就別裝了,SSH就是Spring+Struts2+Hibernate,SSM就是Spring+SpringMVC+Mybatis
,這是你Java做Web開發的看家寶貝,你怎麼會不知道”
“我沒有裝,我是真不知道,我從來就沒有這些啊”
C++有些疑惑,繼續問道:“反射
你總該知道吧”
Java’還是搖搖頭。
看着他一臉真誠不像是在撒謊,C++突然恍然大悟,這裏難道不是我原來的世界?原來呼風喚雨的Java在這個世界裏怎麼就成了這個樣子,C++不禁發出了感嘆。
“那你知道這裏人氣最高的編程語言是什麼嗎?”
“大哥,這個你就沒有必要問了吧,不就是你C++'嗎”
聽到這個回答,C++大喜,沒想到自己在這裏人氣最高,嘴角不經意的上揚。
新世界
告別了Java’,繼續前行,想看看在這個世界裏,自己究竟爲什麼這麼受歡迎。
路上,他看到了一段這個世界的C++'代碼,竟惹得他有些不快。
“這裏怎麼不能多重繼承了?這個interface關鍵字又是什麼東西?”,他邊看邊吐槽。
這時旁邊一位熱心的路人告訴他,“多重繼承早就被廢除了,這玩意兒用起來容易出事兒。取而代之的是用接口,就是你說的interface定義的東西。”
“照你這麼說,純虛函數也沒有了?”
“有了接口定義,還要什麼純虛函數”
C++略微點了點頭,雖然有些變化,但還是可以接受。不過繼續看下去,他開始不淡定了。
“這裏的C++'代碼爲什麼沒有指針,這可是我的看家本領啊”,他吐槽到。
路人笑着告訴他,“看來你是外地來的吧,許多年前就沒有指針了,不僅如此,現在都用垃圾回收了,不用直接管理內存了,日子別提有多快樂了”。
旁邊來了一堆圍觀羣衆,紛紛嘲笑C++的土裏土氣。
C++氣憤的回擊:“祖宗之法不可變,直接操作內存纔是C++的精神”
“指針那是人家C的東西,也不是C++原創的啊”,羣衆繼續嘲笑他。
C++不再理會,繼續低頭研究起這裏的代碼。隨着對這個世界的不斷了解,C++心裏的怒氣越來越大。
C++’
周圍的人羣逐漸散去,卻獨有一人站到最後。
“你好,我是C++’,我注意你很久了”,那人說到。
“原來你就是C++'啊,你看你乾的這叫什麼事兒”,C++沒有好臉色的說到。
“你這是從何說起?”
“你怎麼把C++的核心精神都丟光了,指針也沒有,泛型編程也沒有,多重繼承也沒有,你還有個啥?”
“那些東西太複雜門檻太高,我有垃圾回收,我有反射,我還能跨平臺,你不思進取早晚必敗”
C++不甘示弱,“誰說我沒有進步,我在保留基礎原則不動搖的基礎上引入了很多變化啊,像自動類型推導、lambda表達式、move轉移語義,甚至還弄了智能指針,我很努力的好嗎”
C++'嘆了一口氣,“看來你確實很努力,不過你知道程序員想要的是什麼嗎?”
C++愣了一下,沒有回答。
“走,帶你去一個地方”,C++'帶着C++到了一座宏偉的宮殿。
C++'緩緩的推開了宮殿的大門,無邊無際的代碼海洋出現在了他倆的面前。
“看到了嗎?這裏面是無數個標準的庫組件,遠處那幾座顯眼的高樓就是應用最廣的幾大框架,有web的,數據庫的,網絡通信的,用戶界面的,在這裏,程序員能找到他們想要的一切······”
C++被眼前的景象驚呆了,這是多麼龐大的工程。
“別再去折騰語法糖和奇奇怪怪的特性了,好好爲程序員服務,讓他們高興纔是生存之道。”,C++'繼續說到。
C++若有所思的點了點頭,接下來深入到這些代碼海洋中,詳細瞭解了這個世界的C++'和他的不同。
酒醒之後
不知過了多久,C++從夢中醒來,夢裏發生的一切歷歷在目。
回想起那個世界C++'說過的話,他舉着旁邊的酒杯問自己:變成了那樣的C++,還能叫C++嗎?
一聲苦笑,一飲而盡······
彩蛋
在回去的路上,又碰到了Java’
Java’說到,“怎麼樣,我們這裏人氣最高的編程語言是不是名不虛傳?”
這時,不知哪裏冒出一人應道:“誰在背後議論我”
Java’趕緊催促C++,“快走,他又來了”