作者查詢 / littleshan
作者 littleshan 在 PTT [ C_and_CPP ] 看板的留言(推文), 共2181則
限定看板:C_and_CPP
看板排序:
全部C_and_CPP2181GameDesign348NobuOnline266ask-why186Android185Soft_Job138Programming32C_Question28car28NTUKENDO27Haruhi10Perl10AirForce9MusicGame9b90902xxx8CSSE8Nanoha8LightNovel7MobileComm7NetRumor6EV5ArakawaCow4Gossiping4Japan_Travel4KanColle4LaTeX4PangSir4Network3SFFamily3Tech_Job3welcome_NHK3AndroidDev2cookclub2hardware2logic2b92902xxx1CATCH1Electronics1ForeignGame1GatoShoji1GsGirl1Linux1MayDay1NCCU03_PA1NetSecurity1NTU_CK_CM1NTUMT-891NUU_CSIE1PC_Shopping1PLT1Rayark1SENIORHIGH1Stock1THUMath951Tokusatsu1Windows1<< 收起看板(56)
1F→: 呃,GC 是可以解決 cyclic reference 的,實務上因為06/18 08:42
2F→: cyclic 太常見,所以大部分語言都是用 GC 而不是 smar06/18 08:42
3F→: t pointer。06/18 08:42
16F推: Rust 當然可以實作 OS,Redox OS 就是了06/15 08:55
17F→: C++ 實作的 OS 可以看看 haiku06/15 08:57
18F→: 過十年還能吵這個,C 真的是被過度神話的語言06/15 08:59
16F推: C++ container 提供了 ref 就無法做到 thread safe06/03 16:27
17F→: 如果你想要兩者兼得就不能用 C++,改用 Rust 吧06/03 16:28
18F→: 另一個解法是把 ref 改成 proxy object06/03 16:29
19F→: 只是效能會變得超級慢06/03 16:29
4F推: 其實很多 memory allocator 的實作都是先向作業系統要05/12 00:46
5F→: 一大塊再慢慢分,所以如果你的總用量是確定的,05/12 00:47
6F→: 一開始就直接配置好一大塊,效能會比較好05/12 00:48
10F推: 我猜你的疑問是「系統剩餘的記憶體沒有連續怎麼辦」05/14 01:01
11F→: 實際上現代的 OS 都會用 paging 來解決這種問題05/14 01:01
12F→: 所以一次直接要整塊就好,OS 會試圖把片段組起來給你05/14 01:02
18F→: C 是為了開發 Unix 系統而設計的03/12 21:12
19F→: 那個年代 (197x) 還沒有 Linux03/12 21:12
8F推: 因為標準語焉不詳,volatile並不保證thread safety09/19 10:47
9F→: 請見 https://goo.gl/GGRAqd09/19 10:47
3F→: undefined behavior08/29 02:12
22F推: 板友提的都是原因,但有幾個因素導致go搶了更多user07/12 00:22
23F→: 1. go在設計上就非常適合開發後端07/12 00:24
24F→: D雖然也OK,但go一開始就給了goroutine與channel07/12 00:25
25F→: 儘管go會有比較多的gc,但偏偏這對後端來說可接受07/12 00:25
26F→: 2. go直接拋棄了generics與exception這幾項困難的功能07/12 00:27
27F→: 拿掉這些功能讓語言變得容易實作07/12 00:29
28F→: 同時使用者的學習曲線也大幅降低07/12 00:30
29F→: D 相較與 C++ 來說當然是簡單很多07/12 00:39
30F→: 但go的學習曲線是script等級的,團隊更容易導入07/12 00:40
31F→: 3. 最後是go有google大神在背後支援07/12 00:42
32F→: 一開始toolset就滿完整的,改版速度也快07/12 00:43
33F→: 相較之下,儘管D已經出現了很久07/12 00:45
34F→: 卻一直擺脫不了「這工具是否已經穩定」的疑慮07/12 00:46
35F→: 這對開發團隊導入是非常大的阻礙07/12 00:46
69F推: 樓上完美示範go為何搶走D user XD07/12 16:20
70F→: 另外,你想要兼顧效能記憶體底層操作和跨平台07/12 16:21
71F→: 那C++以外的答案其實就是rust07/12 16:21
72F→: 說它不符合你的理念其實很矛盾07/12 16:35
81F推: 或是刻 dropbox 的底層07/12 20:29
87F推: 我從來沒說rust很簡單,只說了它有C++的效能而已07/12 22:29
88F→: 要兼顧效能記憶體底層操作本來就是高成本07/12 22:29
89F→: 不管哪個語言都一樣的,即使是C++07/12 22:29
90F→: dropbox大部份後端用go,少部份用rust07/12 22:40
91F→: 這點可以說明「接近C++的效能」通常不是主要考量07/12 22:42
117F→: 你可以用 -C prefer-dynamic 切換到動態連接07/15 10:37
118F→: 但部署時就要自己把符合版本的runtime一起發出去07/15 10:39
119F→: 然後D沒有比較好,gdc預設選項編出的hello world是6M07/15 10:39
120F→: 這類新語言預設用static link很正常07/15 10:40
121F→: 因為不是每個環境都有裝他們的runtime07/15 10:40
16F→: 對,我的看法是標準對於轉型後呼叫不做任何保證06/28 23:11
1F推: compatible type有嚴格的定義,基本上就是相同的type06/25 23:13
2F→: 「可以互轉」並不表示它們是compatible type06/25 23:13