Subscribe to our newsletter May 3, 2020 大山姆的機機車車™ #21 Revue ▋得獎的是...第十九、二十期共有十六位讀者參與《Software Engineering at Google》贈書抽獎活動。得獎的是: tt*****[email protected]恭禧!確認信已寄出,請留意信 May 3 · Issue #21 · View online ▋得獎的是…第十九、二十期共有十六位讀者參與《Software Engineering at Google》贈書抽獎活動。得獎的是:tt*****[email protected] 恭禧!確認信已寄出,請留意信箱,若七天無回信,將由第二順位讀者獲得贈書。感謝大家參與(抽獎影片)。 ▋Spaceship OperatorC++20 帶來幾個前所未有的新功能。其中,Spaceship Operator 這個新的運算子在 Herb Sutter 等人於 2017 年提出後引起不少討論(外型以及必要性)。Spaceship Operator 用以減輕撰寫 C++ 比較運算子的痛苦,於 C++20 正式成為標準。本期收錄幾篇討論 Spaceship Operator 的文章。主流編譯器最新版已經支援 Spaceship Operator。Visual Studio 2019 必須開啟 /std:c++latest 。對了,目前這個新運算子的「中譯」從缺,不知讀者有什麼建議?▋Rust 宇宙大概去年開始,國外流行起若有人問「現在學 C++ 對嗎?」,就有人跳出來說「學 Rust 才是明智之舉,C++ 早就__了 」。過去幾年,許多 Rust 專案的成功,在在證明了 Rust 是個好語言。安全以及效能的取捨,Rust 似乎找到不錯的切入點。熟悉的工具越多,競爭力越強,因此我鼓勵以正確的觀念,多學程式語言。去年底,Microsoft 公開表示內部已經著手開發 Rust 這個新興程式語言於 Windows 平台發展的可能性,並釋出 Rust/WinRT 開源專案。該專案尚處早期開發階段,不過,看到整合 Win32 API、COM,事情漸漸變得有趣了…「鬍子K」似乎是 Rust/WinRT 的要角,由「C++ 專門」開另一個副本…我是山姆,《大山姆的機機車車™》是我投注心力製作的電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 選書 Concurrency with Modern C++ leanpub.com – Share 幾個月前 Leanpub 推出的 C++ 套裝書特價,這是其中一本。本書從 C++11 開始介紹新的「執行緒」功能,淺談 C++ 多緒程式設計。撰寫「多緒程式」或讓程式能夠並行處理多項任務,不是一件容易的事。光是第一步,回答「該不該用多執行緒?」就需要一定的經驗與技術底子。這本書著重在「多緒怎麼寫?」,但「為什麼要用多緒?」則不是本書重點,服用時請留意。 參兩摘 Spaceship Operator blog.tartanllama.xyz – Share 本篇說明新運算子的必要性,解釋 Spaceship Operator 如何用於描述兩個物件之間的關係。Spaceship Operator 的優點之一是,原本要寫「六」個函數,現在只要一個,甚至,設成 default 後,一個都不用寫。 Simplify Your Code With Rocket Science: C++20's Spaceship Operator | C++ Team Blog devblogs.microsoft.com – Share Microsoft 團隊近年推廣 C++ 標準不遺餘力,這篇舉了幾個例子說明 Spaceship Operator 的用途。 Analyze your builds programmatically with the C++ Build Insights SDK devblogs.microsoft.com – Share 眾所皆知,大型 C++ 專案經常被抱怨「編譯速度慢到脫褲」。為此,Microsoft 推出這個工具用來分析 C++ 專案編譯時的「景況」。 Plugin Gui Magic foleysfinest.com – Share JUCE 早期有 WYSWYG 開發環境,後來不僅不再維護,官方也不建議開發者使用該工具。Plugin Gui Magic 這個工具填補了這個空缺,讓開發者使用 WYSWYG 的方式建構 RAW Plugin。 Which Programming Language Should I Learn First? [Infographic] carlcheo.com – Share 由推友處得知這個以《魔戒》裡的角色代表程式語言。數年前的文章,但頗為有趣。我不熟《魔戒》,代表 C++ 那位,好像是個壞傢伙…🤔 iCircuit 的開發者 Frank Krueger 似乎不太愛 Rust。 Frank A. Krueger @praeclarum I::don’t understand why()? people like this_language()?; https://t.co/WSV1K7DleI 9:12 PM - 1 May 2020 摘影片 CppCon 2019: Gordon Brown “Efficient GPU Programming with Modern C++”延續 Parallel Execution 的概念,C++ on GPU 同樣要以 SIMD 架構方式下去思考,盡量把任務設計能 Fully Parallel。 除此之外還要考慮快取的大小,畢竟只要有一個單位需要往下一層的快取所有執行單位都要一起等。By Sidney Niu Gordon Brown “Efficient GPU Programming with Modern C++” CppCon 2019: Chandler Carruth, Titus Winters “What is C++”任何語言都有缺點和優點,對應不同情況應該是使用不同的語言彼此合作。 C++ 發展至今已經是完全效能導向的語言,不需要過度讚揚或貶抑某個語言,重點是找到解決問題的方法。【山姆補充】C++ 可以發揮的領域寬廣,執行效能高低主要取決於開發者能力。有一說,喜歡 C++ 的人,其「控制慾」比較強,想要多一點主控權,即使痛一點也無妨。🙄By Sidney Niu Chandler Carruth, Titus Winters “What is C++” CppCon 2015: Scott Wardle “Memory and C++ debugging at Electronic Arts”EA 為遊戲開發以及發行商,眾所周知,即使 C++ 的「缺點」無窮多,但從古早到現在,遊戲軟體還是以 C/C++ 為主要開發語言。雖然後來的 Unity 讓開發者可以用 C# 開發遊戲,但當代 AAA 級遊戲專案依然無法擺脫 C++。 Scott Wardle “Memory and C++ debugging at Electronic Arts” 開源專案 GitHub - electronicarts/EASTL github.com – Share EA (Electronic Arts) 遊戲開發及出版商「藝電」家的 C++ 標準函式庫替代品。對 Microsoft Visual C++ STL 有意見?或可考慮這款強調高效能的 STL 實作品。取得 EASTL 相當容易,使用 vcpkg 或 Conan 都可以。 GitHub - microsoft/vcperf: A build analysis tool for the MSVC toolchain. github.com – Share 需要搭配 C++ Build Insights SDK 一起服用。 GitHub - awwbees/BespokeSynth: Software modular synth github.com – Share 剛發現的新鮮貨,使用 JUCE 開發(介面蠻好認),圖形化的介面,控制聲音流向,還可以用程式「寫音樂」。更酷的是,這是一個開源專案,對 C++/JUCE 有興趣的同好,還不學起來! Ryan Challinor @awwbees a few new simple modules I added for injecting controlled randomness have started to make Bespoke patches feel like algorithmic composition https://t.co/BSnlOefQaY 11:30 AM - 17 Feb 2020 WorkFlowy Tips 想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請,加倍免費清單上限。還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步,歡迎加入分享你最酷的 WorkFlowy 使用技的更多同好! 💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。偏愛匿名表心意的讀者,我開了一個「提問箱」,歡迎使用,謝謝! 本報內含 Affiliate Link 連結,透過我的推薦購買相關服務或產品,我有機會從中獲益。我也接受小額贊助,歡迎大家用行動支持我。感謝! Did you enjoy this issue? If you don't want these updates anymore, please unsubscribe here. If you were forwarded this newsletter and you like it, you can subscribe here. Powered by Revue Share Share to Twitter Share to Facebook Subscribe to our newsletter