推 wtchen: 只要跟C/C++相關,准你發。 12/25 20:39
推 damody: 語言不穩定是硬傷,又不像swift有apple在推 12/25 21:11
推 wtchen: 聽說有用Rust開發的作業系統,是真的嗎? 12/25 21:39
http://www.redox-os.org/ 可參考
推 eye5002003: Rust是直接建立C lib還是先創造C程式碼再編譯? 12/25 23:41
Rust 沒有建立 C 程式碼,會直接編譯成 C lib
推 CoNsTaR: 不想要 functional 的麻煩又想要 functional 的嚴謹推 Ru 12/26 03:22
→ CoNsTaR: st 12/26 03:22
推 CaptainH: rust的lifetime syntax醜得可怕 12/26 07:51
推 lc85301: lifetime syntax 很醜是定番了,所有批評都會看到這條XD 12/26 17:32
→ lc85301: 然後還有編譯器很GY,這也是定番XD 12/26 17:33
Rust 的某些語法的確不太美觀,再加上那個 GY 的編譯器...
只能靠多練習來克服 冏rz
推 lc85301: swift-apple, golang-google, rust-mozilla 12/26 17:35
→ lc85301: rust 比較沒大公司撐腰也是真的 12/26 17:36
推 shadow0326: 'a 'b 'c 'd 'wtf 12/26 19:04
推 makeman: 'w 't 'f 12/26 20:27
→ descent: 什麼時候不想用 c/c++ 而想用 rust 呢? 12/27 00:42
小弟沒有維護 C/C++ 專案的包袱,可以自由使用新的語言
目前還在學習階段,都是拿來寫簡單的 sample code 而已
其實也沒有非用 Rust 不可,主要是欣賞 Rust 的一些設計
學一陣子 Rust 在回頭學 C++,會增進對 C++ 的了解,蠻有趣的
推 stupid0319: 主要是錢景吧,錢景大概swift>java>C#>>>>>>>Rust 12/27 01:15
※ 編輯: Neisseria (175.180.97.96), 12/27/2016 06:17:22
推 ronin728: 如果它有GC又去掉Ownership的話,我也許會考慮。 12/27 11:01
→ ronin728: 但他目前這種特性來說,即便它更高階,我還是寧願用C++ 12/27 11:04
→ ronin728: Swift有ARC(自動插入reference counter, 並解決循環引用 12/27 11:06
→ ronin728: ),我覺得這就很不錯 12/27 11:06
推 Klauhal: 版標XD 12/27 14:59
→ uranusjr: ARC 哪裡有解決循環引用, 幻想的嗎... 12/27 15:07
推 lc85301: 版標XDD 12/27 15:43
推 yoco315: 小妹我也在學 rust ^^~* 大家一起唷~~~ 12/27 18:13
推 littleshan: rust 明明就有 smart pointer 12/27 18:48
→ littleshan: 你用 smart pointer 存指標就不需要處理 lifetime 12/27 18:53
→ littleshan: 不想負擔smart pointer的額外成本時就要處理lifetime 12/27 18:54
→ littleshan: rust 是給你選擇權的,和 C++ 的理念並無太大差異 12/27 18:55
推 CaptainH: rust的賣點就是不必手動管理記憶體嗎?結果還是要用smar 12/27 19:03
→ CaptainH: t ptr這種半自動的東西? 12/27 19:03
→ uranusjr: Rust 現在已經沒有 smart pointers 了 12/28 00:01
→ littleshan: 呃,perl 的 reference 其實也是 smart pointer 12/28 01:25
→ littleshan: 所以 perl 不算自動管理記憶體? 12/28 01:25
→ littleshan: 然後,rust 的 Box/Rc/Arc 不就是 smart pointer 嗎? 12/28 01:28
推 CaptainH: Perl本來就是很糟糕的語言啊 rust是要跟perl比? 12/28 08:38
→ littleshan: perl 的問題與它使用 reference counting 無關 12/28 10:35
→ littleshan: 沒有人會否認 perl 有自動化的記憶體管理 12/28 10:40
→ ronin728: 對不起,我錯了,我誤會了 Swift Orz 12/28 12:05
→ uranusjr: @littleshan 原來你說的是廣義的 smart pointer, 誤會了 12/28 17:30
→ uranusjr: 因為 Rust 早期就有一種東西叫做 smart pointer 12/28 17:31
→ uranusjr: @CaptainH 好嘛那不提 Perl, Python Objective-C Swift 12/28 17:31
→ uranusjr: 也都是用 ref counting, 你講的根本站不住腳 12/28 17:32
→ uranusjr: 高階如 Python 都有專門的 weakref 模組來處理循環引用 12/28 17:33
推 makeman: 似乎沒繼承 也沒多重繼承 有個類似interface的東西? 12/28 18:12
Rust 的 trait 可以繼承,也可以多重繼承,是繼承別的 trait
trait 本身不能實體化,只有 struct 可以實體化
但 trait 可做為 method 的參數來使用
struct 可以實作 trait 所定義的 method
但 struct 間不能繼承,只能透過組成 (composition) 結合
可以想成 struct 是 class,trait 是 interface + abstract class
我以前以為 trait 只有 method 定義,而沒有 method 實作
但其實 trait 可以有 method 的實作,例如 Rust 的 Iterator:
https://github.com/rust-lang/rust/blob/master/src/libcore/iter/iterator.rs
程式設計者也可以實作自己的 Iterator,只要實作 next 這個 method
其他所有的高階函式,都由 Iterator 這個 trait 提供
有點像 Java 8 的 interface,可以實作 code 在 interface 裡
→ makeman: gui的話,好的framework大多偏oop的寫法rust能勝任嗎? 12/28 18:15
Rust 是有一些 GUI,大概都是 language binding
像是 GTK: http://gtk-rs.org/
或是 QT: https://github.com/cyndis/qmlrs (只是其中一個)
看起來,GTK 那邊似乎比較活躍
目前來說,GUI 應該不算強項
如果要做的軟體是以 GUI 為重,可能要選別的方案比較好
但我還沒深入學 gtk-rs,可能有誤,僅供參考
Rust 的 OOP 和 C++ 或 Java 不同,寫的方式要調整一下
剛開始會不太習慣,後來就會自動調整成 Rusty way
※ 編輯: Neisseria (175.182.138.65), 12/28/2016 20:13:16
推 littleshan: 真要做到 C++ 式繼承可以用 composition+deref trait 12/29 02:47
→ littleshan: 不過 OOP 原則上都是鼓勵多用組合少用繼承 12/29 02:51
→ littleshan: 這樣的設計我認為沒什麼大礙,GoF 的 design pattern 12/29 02:54
→ littleshan: 都可以實現,除了 singleton 以外 XD 12/29 02:54
其實可以做 singleten,用 lazy_static! + Mutex
本來我也不會做,但 stackoverflow 有強者解答這個問題:
http://bit.ly/2i99XvW (Stackoverflow 網址)
※ 編輯: Neisseria (175.180.171.62), 12/29/2016 07:33:36
推 firejox: 那我也來推Crystal (′・ω・`) 12/29 17:38
如果大大有整理 Crystal 的心得,歡迎來 Ruby 版貼
有在用 Ruby 的人應該會對 Crystal 蠻有興趣的
※ 編輯: Neisseria (175.180.171.62), 12/29/2016 19:54:25
推 SLMT: 路過,看到版標寫 Rust 進來看看 01/03 02:19
→ SLMT: 小的半年前開始摸,以為台灣沒什麼人在玩 Rust 01/03 02:20
→ SLMT: 看到這麼多人對 Rust 有這麼深入的了解感覺台灣還是有眾多 01/03 02:21
→ SLMT: 高手的XD 01/03 02:21
→ SLMT: 不過 Rust 的學習曲線真有點陡峭 01/03 02:22
→ SLMT: Ownership 的觀念要花點時間消化,嚴格的編譯器也常讓人沮 01/03 02:24
→ SLMT: 喪 01/03 02:24