C 最強大的敵人是它的過去式

2021-09-07 13:52:17 字數 1207 閱讀 1924

微軟寫了許多文章來宣布c++的回歸,並且眾多微軟專家如herb sutter在很多會議上解釋了為什麼c++會重新崛起,主要原因是現代c++的推廣使用。而同一時間。c++11標準的認可使我們重新把c++作為一門新的語言來討論。

因此,讓開發人員相信關於新的c++已經簡化了過去許多令人失望的用法,而是使用了一種改進了c++**的全新方法不是一件容易的事情。

讓我們以記憶體管理為例,這也許是c++中最受爭議的地方。多年來,物件的分配是通過new這個關鍵字來完成,開發者必須牢牢記住在**中某些地方呼叫delete。「現代的c++」解決了這個問題並推進了共享指標的使用。

但是,關於現代c++的推廣光靠活躍的c++社群和知名專家是不夠的。有一句諺語是:「習慣成自然。」當你努力向某些人推介某個語言或者工具,他有可能覺得你有道理但是卻不會照著你想的做。

這就是在c++上發生的事情,我們中的許多人仍然堅持使用new和delete,而這種影響還要持續很多年,而且許多非c++的開發者也會一直通過呼叫複雜的記憶體分配方式來使用這門語言。

c++的過去影響了很多東西甚至從專案的建立之初,許許多多的開發者仍然認為這門語言非常複雜。

c++的過去是如何在影響著它?

為了發現這點,我們來做乙個測試,我們在網上搜尋「c++物件分配」,查詢第乙個鏈結便是「c++中是怎樣分配堆物件的?唯一的方法就是用new…」。這很令人吃驚,而搜尋頁前面談論共享指標、智慧型指標的文章幾乎沒有。

另乙個有趣的測試是到到任何大學的圖書館去找一本關於c++的書,去閱讀關於物件分配的那一章節,你基本上不會找到關於「共享指標、智慧型指標」的介紹。

而c++開發者想要了解它們,一般查詢的資源是來自於「c類」而不是現代c++。

如何預防c++的過去所帶來的影響?

這裡並沒有特別有效的解決方案。我們可以希望c++編譯器通過發出一些關於最新更新的啟用和棄用警告,就象過去的字串操作一樣(strcpy、strcat…),但這個解決方案也不是根本的解決之道。現代c++新技術的推動需要學習和實踐。

另外乙個解決方案是將「c++」更名為「現代c++」,這個解決方案很簡單也很有趣。在網路上搜尋「現代c++」,那麼在我們談論的現代c++的物件分配問題上,第乙個鏈結就談論了「智慧型指標」。

因此,在未來的c++推廣之路上,我們可以提醒新的c++開發者,在網路上查詢關於c++的資料時,「現代c++」和「c++」會是兩個非常不同的搜尋結果,前者代表c++的最新用法,而後者只代表過去。

本文翻譯自the first enemy of c++ is its past.

雲計算是過去式了,接下來是邊緣計算的時代?

很多營銷人員現在已經習慣於雲計算帶來的優勢,但是新的技術發展趨勢正在逐步出現,可能會破壞雲計算,或者從根本上重新確定雲計算如何在邊緣運營,新的技術趨勢是邊緣計算。在雲端,處理儲存和資料分析一般都是在集中式資料中心舉行,當然這種方式所具備的優點無法辯駁。規模化經濟降低成本,研發支出從終端使用者轉向雲服...

Forsage以太坊是區塊鏈世界最強大的協議

forsage於2020年2月6號開始其旅程,進入中國市場是2020年7月23日。錢包可以以0.5 eth的初始付款參與。當然,可以在幾周內實現高收益回報。收入取決於您建立的會員網路。該公司表示,本週他們已經增加了近10,000名新員工,每天總計約1,500名。在整個網路中,大約有32,000名參與...

最便捷 最強大 速度最快的C 序列化框架

最便捷 最強大 速度最快的 c 序列化框架。特別注意 vc6太古老,不符合 c 規範,無法使用該框架 1.高效能,速度非常快,比你能找到的同類產品至少快乙個數量級 2.3.預先支援所有基本型別,所有 stl容器型別 除 stack queue 之外 4.支援變長 int32 uint32 int64...