こんにちは。ヤマヤタケシです。
Rustいいかも!
Unity触っている間はお呼びじゃないけどC,C++で開発していたこともあるので、C,C++のヤバさは身にしみています。
死ね!とは思わないけど、グッバイC++には賛成です。
C#最高!とかいってても、どうしてもパフォーマンスが必要だったり、OSとかと直接やり取りするときにはC,C++が必要になっているの現実です。残念!
「C/C++に死を」は、ただ殺すだけじゃなくて、ちゃんと次になにを使うべきかを提案しています。
それが、Rustです。
ということで、Rustを調べてみました。
プログラミング言語Rust
こういうドキュメントって昔は数千円出して本を買っていたのに、今となっては無料で読めるですよね。
まあとはいえ、言語を学ぶための教材ということで読んでみました。
まだコードは書いてません。
イントロダクションにこの言語がどういうものなのかがキッチリ書いてあります。
キーワードだけ抜き出します。
「システムプログラミング言語、ガーベジコレクタなし、安全性、速度、並行性、ゼロコスト抽象化。」
OSレベル、ハードレベルの機能を書くときはC#じゃむりだし、Javaでも、Rubyでもだめでした。
そういうときには、C,C++で書いて「拡張」することが必要でした。
Rustはシステムプログラミング言語なので、C,C++は不要のようです。
ガベコレなしだから、変な停止もないし、負荷もない。
それでいながら、安全で速くて、並行性もあって、実行時のコストがゼロで抽象化ができる!
らしい。
順番に読み進めて気になったところをメモっておきます。
変数は束縛・・・?。
なに、デフォルトで不変なのか。
「シャドーイング」は新しい概念だ
所有権があるから、束縛なのか。
束縛からの借用。
借用中は、もとのヤツが貸出中だからアクセスできない。
クラスはあんの?なかった。けど、構造体とメソッド構文によって似たようなことはできる。
ポリモーフィズムも動的ディスパッチでできる。
unsafeで危険なコードもかける。
生ポインタってのもある!?
と、ざーっとなんとなく読むだけ読みました。
たしかに脱C,C++ができそうだし、C,C++を使うくらいだったらRustを使いたい!とか思いました。
現実問題、ライブラリとかC,C++には結構な資産があります。
なので、新しいプラットフォームはRustを採用してライブラリの多くをRustで実装すればよさそうです。
ゲームを作るために、Unityを使っているような人は、Rustを勉強する必要はなさそうですけどね。
2010年ごろからあるみたいなので、20年前にあればなー。とは思います。
2015年5月16日に1.0がリリースとは、結構最近ですね。ソースはwikipedia。
Rustを見るとクラスの人気が地に落ちていて、というか1機能として消化された感じです。
C,C++を使うべきシチュエーションが来たら、Rustも検討しようと思います!
ライブラリはやっぱり心配。
そんじゃまた。