Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」がリリース。Rustの主な型や便利な機能がDartで使えるように
今回は「Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」がリリース。Rustの主な型や便利な機能がDartで使えるように」についてご紹介します。
関連ワード (一般的、登場、間違等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Rust Coreの開発チームは、Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」をオープンソースとしてリリースしました。
Rust Coreを用いることで、Dart言語にRust言語が持つ一般的な型やさまざまな便利な機能を取り込むことができるようになります。
合わせて、Rust Coreのドキュメント「Rust Core Book」も公開されました。
DartはGoogleが主導してオープンソースで開発されているプログラミング言語です。クロスプラットフォーム対応のモバイルアプリケーション開発に対応したFlutterフレームワークで用いられている言語として知られています。
なぜDart言語でRustのコアライブラリを実装?
Dartで、なぜRust言語の機能を利用するRust Coreが登場したのでしょうか?
Rust Core BookのFAQには「Why Use Rust Core Even If I Don’t Know Rust?」(Rust言語のことさえ知らないのに、Rust Coreを使う理由とは?)という項目があり、そこでRust Coreを用いることでDartに取り込めるRustの利点が紹介されています。
そこからいくつかの項目を簡単に引用しましょう(下記はできるだけ慎重に概略を引用しましたが、筆者はRustの知識がないので間違っている可能性があります。あらかじめお詫びいたします)。
- Rustの「Result型」を用いてエラーハンドリングを値として扱えることでメンテナンス性が高まる。
- DartにはNull値を持てる型があるが、Nullまたは非Nullに特化した操作を行うには、if文の束が必要となる。Rustの「Option」はこれをランタイムのコストなしに修正できる。
- Dartに欠けているRustの「?」演算子の機能を利用できる。
- Dartにはない、Rustの「Cell」型が利用できる。
- Dartにはスライス型という概念がなく、サブリストを確保するのが唯一の方法だがこれはあまり効率的ではない。 そこでRustの「Slice」が利用できる。
Rust BookにはDart言語は知っているけれどRust言語は知らないというプログラマのために、「New To Rust」という項目もあります。
そこでは「rust_coreは、Rustのセマンティクスや知識を学び、向上させるのに最適です。 Dartを書きながら、Rustを学べます。」と、Rustの学習にRust Coreが使えると紹介されており、DartとRustの違いなどが解説されています。
Rust言語はいま注目度が高まっている言語の1つと言ってよいでしょう。もしもDart言語を使ったことがあるプログラマであれば、Rust CoreはRustを学ぶためのきっかけになるかもしれません。