推 TeamFrotress: I don't know what it means, but it scares me.01/26 17:11
推 OlaOlaOlaOla: rust 是多好,你已經是第三個在推的人了...我該開01/26 17:12
→ OlaOlaOlaOla: 始學了嗎幹....01/26 17:12
推 ltytw: 所以當初VB6.0的團隊真的是爆肝01/26 17:12
→ nh60211as: 未定義行為01/26 17:12
→ nisioisin: 所以最好不要用這種可能有分歧的寫法阿01/26 17:12
但其實好一點的編譯器會拋出警告啦
問題是目前C++/C還有很多UB不會拋出警告
所以我才說歡迎加入
編譯器"非常嚴格"的Rust
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:14:35
推 LeeXX: 新手入坑主流還是推python吧膠水語言 至少寫點實用小外掛01/26 17:16
→ LeeXX: 會有點成就感01/26 17:16
真的 其實我工作的時候
也不懂一些人只是用csv畫個圖
卻要用dependency那麼複雜的cern root...
python+matplotlib+panda就能搞定的東西..
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:17:17
→ LeeXX: Ola大好像不是新手?01/26 17:16
→ OlaOlaOlaOla: 看到膠水語言直接笑出來01/26 17:18
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:19:57
推 LeeXX: 話說聽說3.11有把以前錯誤訊息很亂的問題改好 不知道真的01/26 17:19
→ LeeXX: 假的01/26 17:19
沒
還是rust和clang給的訊息比較有用
python還是老樣子
錯誤訊息只會給stack unwinding
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:21:05
推 justgetup: Rust比較不會有C++這種迭代的問題?01/26 17:20
推 Pep5iC05893: 什麼是膠水語言01/26 17:21
I have panda
I have matplotlib
oh~
panplotlib
大概是這樣
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:22:23
→ LeeXX: 外掛一般還是用pyinstaller+pyautogui+tkinter吧(然後在01/26 17:22
→ LeeXX: 壓成腳本時就會東缺西缺 cv2等等麻煩自己hidden import…01/26 17:22
→ LeeXX: …)01/26 17:22
推 iamnotgm: 原來還有這種狀況 所以為什麼說python是膠水語言?01/26 17:22
→ LeeXX: 膠水語言->我看到這個用法是在形容它什麼都能做01/26 17:22
→ LeeXX: 那我就不冒險升級了01/26 17:23
推 justgetup: 膠水語言=>跑得慢,但他能用01/26 17:25
居然
我以為是AMD那個膠水CPU的梗
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:25:47
推 LeeXX: 一個膠水三種說法w(為啥膠水是跑得慢?01/26 17:26
推 HAmakers: 但是用了python就回不去了 社群太方便了01/26 17:27
→ LeeXX: 很慢乾掉的意思?01/26 17:27
→ LeeXX: 真的 當年還想學lisp 結果社群完全無法比01/26 17:29
→ LeeXX: 不過最近實戰發現matlab和wolfram的mathematica還是有些東01/26 17:29
→ LeeXX: 西不是社群能輕易取代的01/26 17:29
→ LeeXX: 我就是在說你們兩個啦sympy和scipy01/26 17:29
推 justgetup: 膠水乾的比較慢,但他功能是有的,01/26 17:30
→ justgetup: 而且剛好跟python一樣,01/26 17:30
→ justgetup: 適合剛開始勞作(打碼)的人使用01/26 17:30
推 tkc7: 所以rust好在哪01/26 17:31
太多了 這可以寫很長一篇
沒人想看完的文章(?)
我舉幾個簡單的說
1. 嚴格的語法 嚴格的編譯器
有句話說 過的了rust的編譯器
沒有拋出錯誤訊息
就是memory safe
也有thread safe
2. 效能近乎C++
3. 有LLVM的支援,開發、維護編譯器相對容易
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:34:05
推 Bencrie: 你可以等 moz://a 把 firefox 用 rust 重寫再來學啊01/26 17:31
現在要吹捧rust不是用火狐了啦
是amazon做的s2n-quic
一個QUIC的rust實作方式
這個是有大量的應用的
現在火狐團隊根本射後不理
→ justgetup: 推Python社群真的好用01/26 17:32
推 Ikaros1110: 最近學Rust analysis超強01/26 17:34
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:36:35
→ dreamnook2: rust感覺有勢頭 不過自學好懶01/26 17:36
其實難度也沒比C++簡單到哪去
他只是拋掉很多C++98的歷史包袱
全部modern C++的觀念套進去
就是rust了
modern C++其實並不簡單
所以rust也不簡單
建議有modern C++的概念
再來玩轉rust
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:43:39
推 thelittleone: 原來是來傳教的(誤01/26 17:44
沒 你看我C++/C的UB寫了那麼多東西(?)
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 17:53:06
推 qaz223gy: 謝謝 完全看不懂01/26 17:54
這本來就是有點C語言基礎人
需要關注的議題XD
礙於篇幅不方便寫太多
剩下的去看我前面貼的
Jserv說的那個吧
裡面也有YT連結
推 HAmakers: 感覺要普及還要一段時間吧 畢竟太多專案用c/c++寫的01/26 17:56
個人估計至少要十年了
推 ragwing: …還好我不靠寫code謀生01/26 17:56
推 SPDY: 算小型的跨平台FLAC專案 下載最新的VC和SDK 編譯過關沒出錯01/26 18:05
→ SPDY: 但老邁又封閉歷經無數接手的大型違章建築 就難說順不順利XD01/26 18:05
推 Erichikaunkr: 真的 rust才是未來01/26 18:08
但也是有它難學的地方XD
推 lbowlbow: 未定義行為就跟js一樣糞01/26 18:10
別這樣說
大家的瀏覽器都靠js的QQ
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 18:15:38
推 dos01: 恩恩 我也是這樣想01/26 18:21
推 rippleofmoon: 推這篇 有趣01/26 18:25
推 kokal: C&C++還有implementaion defined,也是個用不同complier會有01/26 18:33
→ kokal: 不同結果的地方, 都需要讀過standard, 相當麻煩XD01/26 18:34
不過有standard真的是好是
rust還沒那麼一個完整的standard
iso那種的standard
→ hizuki: rust沒法相容C++ABI,就是和歷史作對01/26 18:44
前面說的
這樣ub或unsafe也會跟著繼承下來
rust的著學就是Rewriting
雖然官方repo還是找的到
很多binding就是
熱門的套件沒時間重寫
還是得依賴binding
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 18:49:29
推 XXXaBg: js更可怕01/26 18:49
※ 編輯: dzwei (114.24.212.214 臺灣), 01/26/2023 18:52:03
→ dzwei: 其實我真的很佩服寫JS的人 就是因為我真的學不來01/26 18:54
→ dzwei: 看得滿頭問號QQ01/26 18:54
推 gary82gary: 何不用scanf跟printf,cin 跟cout個人覺得難用01/26 19:02
→ arrenwu: cin 跟cout個人覺得難用+101/26 19:03
類似我前面那段
printf("%d %d %d\n", i++, i--, i--);
這也是UB哦
cout的好處是compiler
可以自動推斷性別
雖然特殊性別還是要對cout動點手腳就是
推 Richun: rust不用太神話,雖然它算目前少數以安全為第一目標的語言01/26 19:07
我覺得
他光是能成為linux kernel 6.0
的第二開發語言
已經夠神了
你看c++20幾年了都沒有這樣XD
※ 編輯: dzwei (223.140.209.40 臺灣), 01/26/2023 19:11:19
→ Richun: the book裡面都示範怎麼寫個safe但會memory leak的code了w01/26 19:08
推 ohmylove347: 好奇rust到底能不能在效能上超越C? 01/26 19:09
推 d630200x: c&cpp版都開放可以問rust問題,候捷又退出翻譯圈,感覺c 01/26 19:11
→ d630200x: pp真的沒啥未來了 01/26 19:11
推 Richun: C++我怎麼印象沒穩定ABI,有穩定ABI的是C。 01/26 19:12
推 king00000000: 我寫js,我很佩服寫C跟C++的人,我腦袋會燒掉01/26 19:12
→ Richun: type用型態啦 形別打錯字看起來變奇怪的東西惹01/26 19:13
推 d630200x: 我反而佩服寫js的,到底為啥不會被那個機掰語法搞瘋01/26 19:16
→ dreamnook2: js繞過那個g8語法後就習慣了01/26 19:23
推 cn5566: 這的確不是邪門 因為C++ compiler真的改個版就天下大亂01/26 19:30
→ cn5566: 比較邪門的通常會出現在大系統裡 用比較高階的語言01/26 19:30
→ cn5566: 去寫不同的module 然後各種巧合發生才造成的01/26 19:31
推 StSoSnE: 這種結果by編譯器寫法的狀況 以前高考有出過 我氣到寫申01/26 19:44
→ StSoSnE: 訴 然後他們回我改考卷的教授會斟酌批改... 01/26 19:44
推 b0920075: c++ 沒未來XDD01/26 19:51
→ as80110680: 要是誰讓我看到他寫這種狗屎爛扣,我一定打斷他的腿01/26 19:54
我早就看 i = ++j 與 i = j++
這種扣不爽很久了==
雖然不是ub 但是很惱人
python跟rust還有一些更先進的語言
都把他拿掉了
推 timofEE: 到底為什麼不先定義 故障與否交給編譯器決定很好玩? 01/26 20:05
推 dgplayer: 為什麼不定義這個要問開發者 使用者只能避免用未定義語 01/26 20:16
→ dgplayer: 法寫code 或者乾脆用別的語言 01/26 20:16
推 Richun: 我想是訂標準時,他們不認為會有人在同行裡面塞一堆++在搞01/26 20:17
→ as80110680: 就像為什麼微波爐說明書不會寫不能微波貓狗一樣,到底01/26 20:28
→ as80110680: 誰會沒事做這種噁心事01/26 20:29
也可能是Kiss原則吧
因為你要塞這些防火防爆防閨密的東東
勢必會增加編譯器的複雜度
讓編譯器更難開發
clang也只是丟出警告
並不阻止你通過編譯
推 container: 哥真專業碼農,推01/26 20:39
推 LeTao536: 要把軟體用rust重寫應該沒公司會願意,成本太高了,除01/26 21:06
→ LeTao536: 非重寫之後有非常巨大的效能進步01/26 21:06
→ LeTao536: 很難確保重寫之後不喪失原有的feature,regression有其01/26 21:06
→ LeTao536: 侷限性,再來就是重寫過程中客戶issue可不會等你,工程01/26 21:06
→ LeTao536: 師又要多線作戰01/26 21:06
→ LeTao536: 而且工程師也都沒碰過rust,某種程度都是rust新手,這01/26 21:06
→ LeTao536: 樣一來程式品質也不會多高01/26 21:06
→ LeTao536: 最後就是rust還不夠主流,就業市場上熟悉C/C++的人肯定 01/26 21:06
→ LeTao536: 還是大宗,公司若要補人去哪找有豐富rust經驗的人 01/26 21:06
推 p257416000: 讓我想起初學程式語言,i++跟++i搞了很久才懂 01/26 21:07
→ jarr: 大型專案的程式碼太龐大了 不太可能換另一套語言改寫01/26 21:31
推 Richun: 既有的C/C++專案要重寫很難,rust自己在用的LLVM是個例子01/26 21:40
→ Richun: 大致上是大公司才有能力重寫,rust在管理上方便很多。01/26 21:42
→ Richun: 另外一個rust的問題是用到LGPL的情況,現在有常用解了嗎?01/26 21:43
推 jasonwuton: 我好害怕01/26 22:00
推 cyrano: license 問題 cargo 有 plugin 可以檢查像 cargo deny01/26 22:06
推 ohmylove347: rust也能調用其他語言的庫吧?應該不用完全重寫,新01/26 22:15
→ ohmylove347: 的需求再用就好了這樣?01/26 22:15
上面有說了
可能會繼續把ub
或其他不安全的因素繼承下來
但是不怕的話
其實有不少c++的ffi可以摳
比方說opencv就有
推 meRscliche: push01/26 22:49
※ 編輯: dzwei (223.140.209.40 臺灣), 01/26/2023 23:26:32
推 QwBert: Rust的需求還是在需要性能跟安全的地方吧 大型專案一旦決 01/26 23:32
→ QwBert: 定tech stack 要轉換就很麻煩吧 01/26 23:32
推 QwBert: 主要還是遇到瓶頸時才會跟換Discord 的一部份服務就從gol 01/26 23:37
→ QwBert: ang 換成Rust解決垃圾回收的問題 01/26 23:37
推 jerrycool123: 某些老師:好耶C++17 有定義了我要繼續考學生一堆+ 01/27 01:07
→ jerrycool123: +—在同一行的 01/27 01:07
→ jerrycool123: 程式碼 01/27 01:07
推 SLMT: 強力推薦 Rust,我已經寫六年了,變成我的主力語言了 01/27 01:07
推 a58524andy: 某種程度上C++比Rust還難學 01/27 02:54
推 gbls9527341: 推 01/27 03:52
推 hanmas: 這不就你寫垃圾code得到垃圾結果? 幹嘛把運算跟輸出混在 01/27 14:38
→ hanmas: 一起 01/27 14:38