Re: [討論] Rust 2024 發佈正式版
開戰了
說Go是C繼任者真的是很難接受欸
一堆地方不好用Go寫吧
k8s/docker並不是真的效能很吃緊而是需要併發度夠高又稍微方便的語言
但很多地方Go的效能都不夠吧
而且Go的自由度也低
就說平常需要對structure pointer cast就很不方便
現在上班在寫的c project 很在意cache hit rate /memory management/system call耗時?些 Golang都很難做到高效與方便的管理
效能分析Golang也難以像C可以高度最佳化
GC就是一個最好的例子
至於C的&& 跟&
套一句Jserv的話:C假設使用者都是成熟的大人
※ 引述《PosetMage》之銘言
: ※ 引述《Rust (lang)》之銘言:
: : https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
: : 知道Rust這個程式語言也超過十年了,
: : 自從1.0穩定版推出之後,
: : 就以每三年一個大版本的方式演進,
: : 今年則是輪到了Rust 2024
: : (對,因為延遲了一段時間到2025才發佈)。
: : 不過我看了一下看起來是這次最大的改動RPIT,
: : 然後根本不知道在寫什麼OTZ,
: : 只能說Rust的複雜性越來越高了......
: : 啊對了Future也進Prelude了~
: 好像蠻多人想問為什麼rust要存在XD
: 簡單說可以看看kotlin kotlin使用了JVM 換言之就是復用已經發展成熟的語言後端: rust復用的是成熟的LLVM IR後端 前端C++已經發展到亂七八糟的 早就該重新設計: 就如同kotlin是一個現代前端 rust也是現代前端
: 推文有人說C C也是古老不良設計的語言 比如file系參數順位並不統一
: --
: 至於問我喜歡哪個語言喔 我不會rust 我只會c++23
----
Sent from BePTT
--
一開始就是聽同學說golang跑的跟C++一樣快,想說論文用g
olang寫。結果golang big被gnu打爛,還要外接c ++librar
y
Go除了Goroutine這功能之外 寫起來也不像一個現代語言
go跟c差遠了…
寫C過的人應該會覺得Rust的Thread很直覺 畢竟同樣都是O
S level的東西 Goroutine我到現在還是沒有很懂到底怎麼
運作的 直到最近看了一本解說底層的書才稍微有些理解
c++20跟boost都有類似goroutine的設計。thread跟routine
應該是不同層級的東西
找工作遇到go基本上就是高併發 其他常見node-ts
c現在定位就是跟asm dsp這類底層指令在一起的語言了
寫C的人是硬體業 寫go現在就純軟後端
不一定喔 我現在也是純軟 但project要高效能所以是用C
C++把一堆東西搬到編譯器算完是要怎麼比快XD
Go的STW主要靠高併發去藏 併發越高STW藏越好
&& & 根本是不一樣的東西 不知道 防呆到近乎偏執的 C#
也沒有引進 and or 的關鍵字 (雖然編譯的時候會擋)
&& & 根本是不一樣的東西 不知道為何混再一起講
我也不懂為什麼前面要一起講
有GC的語言沒資格和C/C++比效能
我還以為 && & 是在講引用或指標
現在沒有人還拿Go跟C對標了吧 戰Go跟Java比較有意思lol
Go在雲端元件上真的蠻強的
go強項真的就是高併發
high concurrency也不會是c/c++/rust這等級的水準,真
能說的是花費少許精力就能有個還不錯的方案
我也寫過Go 的確很方便 但高併發也只是一直聽人講 實際跟C比也不知道怎麼樣
就是比較好寫的c 外加反射可以少寫很多東西
現在有泛型 基本上cast也很少寫了 雖然編譯速度變慢
效能的話我寫的效能很不錯 fmt包少用 尤其Sprintf方
法 基本上goroutine配channel外加select多工就很不錯
了
強型別寫的很不爽快就是了 外加runtime過大這個缺點
不然其實不錯
rometheus node_exporter也都是go 完全就是超多工專
門場景
不夠多工用go拿不到什麼好處
沒有太多邏輯上的運算或效能要求 Go的輕鬆程度遠超C/C++
也因此把他講成繼任者就很奇怪 Go犧牲的就是C的強項啊
你要比記憶體管理還真沒幾個語言能拿來跟C/C++比
而且這一切都是建立在面向web service的場景下
脫離這邊就沒Go的事了 連比都沒得比 怎麼繼任w
繼不繼承是使用者角度來說的 gc目前來看也還好
寫系統也不是不可以 現在敏感場景少一些了
一樣配上unsafe也可以快一點
一般常見寫法go效能確實不好
由我自己出發的話 使用時的直覺上是像的沒錯
C/C++跳Go時有很多即視感
但回到兩者客群的話 相當程度的不重疊..XD
在C做過很多奇怪的東西 Go幾乎就純純的backend
奇怪的東西多的是 是台灣整天在backend
多接觸類unix世界會知道更多
就像上一篇提到有rust寫的os redox 其實也有不少os
是用go寫的 biscuit, gopher 很多小玩具也是go寫的
切牛排用牛排刀,野外生存用多功能刀,交換用不是不
行,但是我為啥要多費工夫用不適合場景的工作?語言
只是工具,懂得在不同場景用不同工具才是重要的好嗎
Go算是特定領域較好,通用性沒比較好.
c++真的語言過度複雜化,簡單點反而不容易錯誤
※ 編輯: w180112 (216.232.177.222 加拿大), 03/02/2025 01:49:53
其實那邊我講錯 我應該要講優先級才對
&| 的優先級直觀上應該要跟 +-之類一樣
但現在這樣搞很反直覺 雖然實務上C語言在用的時候
括號都加好加滿就是了
&|是位元運算,+-是數值運算, 放在一起比較有什麼意義嗎?
樓上我想他指的是運算的優先權
所以我想問, 兩種運算的目標就不一樣了,要求優先級一樣
是為了什麼?
像是wiki上例子 a & b == 7 直覺上會以為是 (a&b) == 7
但實際是a & (b == 7)
不用到優先級完全一樣 但至少別在==之後
翻書就知道的東西了,就跟1|2<<3一樣
寫熟的當然都知道 但不影響這不是好設計吧
也許會有人覺得先乘除後加減不是好設計吧
好 你的程式整天會需要把相等判斷結果做位元運算
用的比把位元運算結果做相等判斷還多
查了一下, Dennis M. Ritchie 自己就有說明了.
簡單摘錄一下: 1. &|的優先權決定是延用B語言的
2. B語言中,&|的意義是由上下文決定,所以通常情況下會是
位元運算,但放到if()裡面會變邏輯運算.
3. C語言為了處理語&|語意會變化的問題,引入了 && ||
4. 在引入&&, ||後,有考慮過重新安排優先權,但當時還要
考慮與B語言的相容性, 認為成本太高所以就維持現狀了.
感謝查詢 這樣看來當初設計時也知道是不好的設計
只是包袱太大就不管了
與其說是不好,不如說在語言發展初期,能做的選擇就是這些.
畢竟現代的程式語言,能夠參考C/C++/Java/Python/Ruby...
但C發展的當時,能參考的就不多,更何況還有硬體上的限制.
查了一下 c/c++ golang java javascript 優先度一樣
rust 有改
c# php 也是跟 c 一樣
c/c++寫習慣了
從這個小故事我們可以知道,有事沒事都要多讀點書 (~誤
推討論串,聽各種意見受益良多
其實我寫的 code & 跟 == 不會一起出現 XD
雲領域已經是go的
我會用括號把要先處理的包起來就是,後面compiler
會優化的
go 要引入外部套件超方便
go可以直接import github link 覺得寫小專案部署很方便
&|行為牽涉到一組組的邏輯需求 使用時若放一起 就會很自
然地把每一組分開括起來...沒太多遇到優先級的場景
可能遇過也忘了吧
Go已經沒有在說要繼承C了吧 然後cross compilation 真
的很方便啊 在cloud native也是到處都是go 尤其是auth
相關領域
我也以為&是在說reference
( )就是要加好加滿阿,長一點的邏輯展開成具名變數更好
is_vaild_state = (b == 7); 後續具名使用就沒有前後問題
又易讀
有GC的瞬間就不該也不可能說要取代C了
25
首Po知道Rust這個程式語言也超過十年了, 自從1.0穩定版推出之後, 就以每三年一個大版本的方式演進, 今年則是輪到了Rust 2024![[討論] Rust 2024 發佈正式版 [討論] Rust 2024 發佈正式版](https://www.rust-lang.org/static/images/rust-social-wide.jpg)
22
好像蠻多人想問為什麼rust要存在XD 簡單說可以看看kotlin kotlin使用了JVM 換言之就是復用已經發展成熟的語言後端 rust復用的是成熟的LLVM IR後端 前端C++已經發展到亂七八糟的 早就該重新設計 就如同kotlin是一個現代前端 rust也是現代前端 推文有人說C C也是古老不良設計的語言 比如file系參數順位並不統一![Re: [討論] Rust 2024 發佈正式版 Re: [討論] Rust 2024 發佈正式版](https://img.youtube.com/vi/HD9vrY6FKgI/mqdefault.jpg)
20
有一個笑話 "我有一個bug 我切了一個thread 現在 我有兩個bug" 這就是C/C++在現實的比喻 有問題的語言卻大力擴張 結果就是讓不安全軟體到處都是 美國國安發布Product Security Bad Practices 表明使用不安全語言c/c++是國安問題 (推薦看原子能這部 ) C++的處境可以說前有埋伏後有追兵![Re: [討論] Rust 2024 發佈正式版 Re: [討論] Rust 2024 發佈正式版](https://img.youtube.com/vi/t0BRy1NNG9g/mqdefault.jpg)
92
[情報] 蘇媽9900X遊戲偷跑只能摸到7800X3D車尾燈雖然在理論跑分上9000系列能輕鬆輾壓 但遊戲方面似乎不是 9900X的遊戲跑分流出了 直接上效能![[情報] 蘇媽9900X遊戲偷跑只能摸到7800X3D車尾燈 [情報] 蘇媽9900X遊戲偷跑只能摸到7800X3D車尾燈](https://i.imgur.com/HG4aAfnb.jpeg)
24
Re: [問卦] 初學Python是不是養成一堆壞習慣?你在講什麼鬼 這個很顯然就是因為先學C導致寫法不pythonic 以你舉的第一個例子來說 應該會是 res = [i % 2 == 0 for i in range(len(list))] 有np的話第一個例子連for in 都省了 import numpy as np res = np.asarray(range(len(list))) % 2 == 012
Re: [討論] 為什麼不要用c++寫網站如果是我的話也許寧願選擇用 C 也不太會選擇用 C++ 開發網站。 C 和 C++ 的好處在於沒有節操,大部分軟體工程師講得出來的程式語言,都會有記憶體 範圍保護以及垃圾回收的設計。 但是 C 和 C++ 沒有,C 和 C++ 覺得這是工程師應該要負責的事情。 而大部分的 HTTP 伺服器,如果是使用 nginx 或是 apache 的話,基本上這兩套都是純12
[問卦] 有沒有kotlin 除了寫app還能用來做什麼如題 kotlin 除了寫app還能用來做什麼? 大家現在比較看好發展的語言除了 c家族 golang rust 等等的以外 好像沒人特別提到kotlin9
Re: [討論] 怎樣算是一個合格的junior cpp programme現在語言這麼多 你想學c++的目的是什麼 其實個人感覺你提的點以c++來說都不是重點 這年頭如果還有公司有c++的職缺 通常分兩大類 1.高效能運算5
[心得] 善用 Go 語言效能測試工具來提升執行效率部落格好讀版: 投影片線上看: 這次很高興能到高雄 mopcon 給一場演講『善用 Go 語言效能測試工具來提升執行效率』 投影片在上面連結,底下紀錄會後一些朋友的意見跟問題? 為什麼要從 Python 到 Golang?5
Re: [討論] 寫三元判斷式code review被打槍好啦 假設不是反串 我覺得滿有道理的 但有一點其實你說錯了 其實並不是語法進步 之前學 Rust 覺得哇 pattern matching 真是他媽神 好潮喔 後來跑去學 OCaml 我才發現(Rust設計者是OCaml粉 一開始的compiler就是用OCaml寫)1
Re: [問卦] 為什麼Rust獲選最受喜愛語言七年?RUST,這裡是機掰客家人的啦。 ※ 引述 《thelittleone (風真いろは大好き♡♥)》 之銘言: : : 女口是頁 :![Re: [問卦] 為什麼Rust獲選最受喜愛語言七年? Re: [問卦] 為什麼Rust獲選最受喜愛語言七年?](https://i.imgur.com/TYIr2RCb.png)