2020年2月22日土曜日

第二プログラミング言語として Rust はオススメしません Nim をやる

勉強の為に一部を引用しました。

2017/07/30 - 

これから Rust 触ってみようかなぁと思っている方。やめておきましょう。プログラミングが嫌いになりますよ。
Nim をやりましょう。
すでに Rust に挑んで心ぶち折れた方。
Nim をやって心の傷を癒やしましょう。
Rust がディスられる!小癪な!と思っている方。
Nim をやるのです(天に轟く反響音)。
Nim の魅力を Rust と比較しつつ皆様へお伝えしましょう(両手を広げる)。

所有者・借用なんてもんでイライラしない

 Rust には C のポインタが可愛く見えるレベルで高くそびえ立つ鉄壁の初心者ガード、悪夢の"所有者・借用"の概念が存在します。
プログラムに慣れた人間ですら混乱に陥れ、書いている最中に精神力と人生の貴重な時間をガンガン削ってくれる究極の嫌がらせです。
Rust は変数のコピーしちゃうと元のやつが使えなくなるクソ仕様なのです。書き手にメリットなんて一切無い。C++の悪しきメモリ管理の呪いを持ち込んで来てその中でもさらに悪い部分をデフォルトにした感じです。
Print(a) で1回コピーされているのでその後使うと死にます。ウソでしょ?と思うでしょ?ホントです。
そしてプリミティブ型ならOKと言う Java に似たダブスタの呪いもオマケで付いてます。
おかげさまで関数はほぼ全て明示的に参照渡しをするハメになります。
「だったらデフォルトそうしとけよ! & をイチイチ書かせんなやワレ!」と思わないのってある種の才能だと思います。
これだとまぁエラーにはなりません。が、参照だからといってこんなことやったら死にます。
イミュータブルだからですって。はぁ・・・。
だからこう書けですって。
はい来た。mut mut mut mut mut mut mut mut mut ああぁぁああぁ~~~!!!
なんでよく使う方を面倒臭くしたがるんですか、この言語を作っている方々は。
その他又貸しの呪いやらなにやら超盛り沢山ですし。もうね私とはセンスが全く合わないです。
ぬぅぅうぅうぉぉおぉおぁぁあぁあああ!!!!!Rustよ!もうお前には頼まん!malloc と free を俺によこせうぉるぅぁあ!!こんな訳のわからんものに付き合わされるんだったら自分でメモリ管理した方がマシだわ!!!
とよくみんな発狂しませんよね。我慢強いですね。馬鹿じゃないの。
とっても良い子である Nim にはこんな呪いある"ワケ"がないです。
まぁ普通はこうですよね・・・。Rust がぶっ飛んで異常なだけです。ありえないです。
ちなみに Nim の場合 print(p) と p.print() は書き方が違うだけで意味は同じです。
参照で渡す場合はこうなります。

type Point = object
  x: int
  y: int

proc print(this: ref Point) =
  echo "x = ", this.x, ", y = ", this.y
  this.x = 100

var p = Point.new
p.x = 10
p.y = 15
p.print()
echo "x = ", p.x, ", y = ", p.y


---
関連情報:

この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)


0 コメント:

コメントを投稿