
Rust 1.0のアルファ版がリリースされる 23
ストーリー by hylom
普及となるか 部門より
普及となるか 部門より
あるAnonymous Coward 曰く、
Mozilla発のプログラミング言語Rustのバージョン1.0アルファ版がリリースされた(リリースノート)。
最終リリースにむけて現在も利便性の向上を図っているが、破壊的な変更をする予定は無いとのこと。基本ライブラリも同様。
traitsやジェネリクス、マクロ等も備える一方で、GCを使わないメモリ管理、ランタイム不要のバイナリが出力できるため、最近の「better C」系言語の内ではかなりシステムプログラミング寄りと言えるだろう。
Rustリンク集 (スコア:2, 参考になる)
・Rust触ってみたらかなり良かった話
http://blog.wnotes.net/blog/article/beginning-rust-lang [wnotes.net]
・Rustを30分で紹介する(訳)
http://uehaj.hatenablog.com/entry/2014/04/20/175630 [hatenablog.com]
・Rust 言語チュートリアル (非公式日本語訳, 途中)
http://mimosa-pudica.net/rust-tutorial/ [mimosa-pudica.net]
・【翻訳】関数型プログラマのためのRust
http://postd.cc/rust-for-functional-programmers/ [postd.cc]
Re:Rustリンク集 (スコア:1)
ここで挙げられている日本語版チュートリアルはバージョン0.4時代に書かれた物で、相当古いです。
比較的新しい和訳は以下があるようです。
http://qiita.com/kondei/items/9aa83e5ea24d6fe33023 [qiita.com]
http://qiita.com/lex_naturalis/items/2ae75a2528c52ac3e79e [qiita.com]
ただし、Rustのドキュメントは1.0正式版リリースに向け、古くなった記述の修正など、
これからどんどんブラッシュアップされていくようなので、
現時点では以下のオリジナルを参照し、和訳版は1.0正式版登場後まで待った方が良さそうです。
http://doc.rust-lang.org/book/ [rust-lang.org]
http://doc.rust-lang.org/ [rust-lang.org]
better C かもしれないけど C とは別物だな (スコア:2)
C(やC++)と構文とか互換性がほとんど無いから、現状でC(C++)が使われている分野で使われる可能性は低いように思う。
スクリプト言語とかJavaが使われている分野での置き換えだったら有りそうかな。
Re:better C かもしれないけど C とは別物だな (スコア:2)
そりゃC言語とのコード互換が欲しい人はC++使うでしょうし
C系の構文がいい加減嫌になってきた人が使う言語でしょう
Re: (スコア:0)
ちょっとみただけだと、マルチパラダイムといい、強力なパターンマッチと言い、better Cというよりlower (non-JVM) scalaな匂いがしますね...
Re: (スコア:0)
フリースタンディング環境の組み込みプログラミングで使いたい。
CもC++も代わりがないから使ってるけど、こいつらの仕事をカバーできるなら互換性はいらない。
Re:better C かもしれないけど C とは別物だな (スコア:2)
Cは現状のままで別に問題ないけど、C++については代わりがあるなら使いたいけど無いんだよね。
個人的にはC++との互換性はいらないけど、Cとの互換性は重要だと思っている。
だからC++を使わざるを得ない。
OSを書ける言語 (スコア:1)
どれくらいシステムプログラミング寄りなのかの参考に、Rustで書かれたOSの一覧を紹介します。
https://github.com/rust-lang/rust/wiki/Operating-system-development [github.com]
我が名は… (スコア:0)
「ラァストゥ」でいいんでしょうかね。
意味としては「さび」?とか「(精神の)さびつき」?
とかで本当にいいのかな。
「才能の無駄遣い」的なシャレだろか。
>発音記号: rʌ'st
>カタカナ読み(発音の目安): ラァストゥ
>主な意味: [名] 1 鉄さび(iron rust);(金属一般の)さび;さび状のしみ[よごれ]
>2 (精神・能力などの)さびつき, 鈍化, 不活発
>3 《植物病理》さび病;サビ菌(r...
[ http://ejje.weblio.jp/content/rust [weblio.jp] ]
Re: (スコア:0)
4. 狼 ではなく、3 が正しいようです。
rustの項目参照 [github.com]によれば、
Rust(fungus) [wikipedia.org] が由来だとのことです。
開発者の Graydon が生物学おたくだからだそうで。
名前の由来にまつわわる会話 [reddit.com]が残されています。
ガイドをざっと読んでみた (スコア:0)
おお~,こりゃ~,大変いい言語ですな.
筋がいいことが文法のあちこちから見て取れます.
個人的な自分の使用する場面で想像される感じる欠点がほとんど無い.大変気に入りました.
しばらくこいつでプログラムしてみようかな.
# メタ関数的なものが容易に作れるのが大変素晴らしい.高階関数も使えて,数学的な用途にはとても便利.
それにしても,時代的には Go lang も似た様なもののはずなんだけど,なんか随分違う匂いがする.
なんつうか,Go lang の方が洗練度が低いような気がするなあ.私の素人考えなのでだいぶピントがずれてるだろうけど.
Re: (スコア:0)
Goは言語の素晴らしさじゃなくて
環境のすばらしさ(WinでもLinuxでも簡単)とか並列処理の手軽さとかが売りの言語だから。
Re: (スコア:0)
なるほど~.注力しているポイントが違うんですな.
# 並列処理の手軽さは確かに魅力的.
Re: (スコア:0)
Goの並列処理は、簡単なだけで洗練されているとは感じないなあ。
Re: (スコア:0)
goが他の今時の言語より構文面で洗練度が低いというか表現力が高くない(genericsすらない)のは意図的なもので、
それによって言語仕様を小さくし、保守性を高くする方に寄せているのだそうです。
参考 http://gihyo.jp/news/report/01/GoCon2014Autumn/0001 [gihyo.jp]
Rustはgeneric functionは当然のこと、演算子のオーバーロードもあればマクロもあるので、
言語レベルではgoとは正反対のてんこ盛り言語ですね。
Re: (スコア:0)
保守で苦しんだ経験が多いもので個人的にはGoの理念の方に惹かれる。というか機会があれば実戦投入すべく検証中。
とはいえ、評価を見る限りRustはかなりよさそうですね。
バージョンがなかなか上がらなかったのもあって触れていなかったのですがこれを機に触ってみるかな。
どんなにすばらしい仕様だろうと (スコア:0)
Cではない、という理由で流行ることはない。
APIや他言語とのインターフェイスが最も充実しているのがCであり、それがすべて。
OOPがちゃんと使えそう (スコア:0)
OOP in Rust(日本語資料です)
http://www.slideshare.net/KENZ_gelsoft/oop-in-rust [slideshare.net]
クラス継承はないけど、traitのmixinがあり、traitにデフォルト実装を定義できるので、インターフェイスを前面に出しつつ、実質的な継承も可能っぽいですね。
RubyのEnumerableモジュールみたいなものが自然に実装できます。
なんか最近、golang設計者の主張を初めとした、雑な感じのOOP否定論を耳にすることが多くてモヤモヤしていたのですが、
RustではちゃんとしたOOPができそうで安心しました。
golangの何がしたいのかよくわからない型システムに比べれば、ずっとよくデザインされていると感じます。
Re:OOPがちゃんと使えそう (スコア:1)
引用されているウィキペディアの
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%8... [wikipedia.org]
> これらの機能のうち、オブジェクト指向の考え方で不可欠なのは「カプセル化」の機能だけである。
これからして間違っているわけだが
ふつう最も重要とされるのは動的バインディングだよ
アラン・ケイもそう言っている
Re: (スコア:0)
カプセル化だけじゃデータ抽象化と変わらないよね。
最近の入門書はデータ抽象化→オブジェクト指向の順に書いてあって分かりやすい。
Re: (スコア:0)
クラスベースのADTがOOPだと吹き込まれた連中が多いから仕方ない。
Re: (スコア:0)
OOPの否定って相手の範囲を拡大させて言っちゃうのが良くない、雑に感じる部分なんだと思っています。
大体が継承を基盤としたオブジェクト指向に当てはまりますが、OOPの根幹(メッセージパッシング)に対しては少々ナイーブに過ぎる批判ではないかと。
名前ベースの貧弱な型システムと、クラスベースのOOPを言語の根幹に入れると途端に酷いプログラムの温床になります。
仕事した気になる小細工が沢山つくられ、3ヶ月後の自分を泣かせる原因になります。
FizzBuzzエンタープライズ [github.com]は極端ですが、OOPを嫌う人の心理の一端に触れることができます。
Re: (スコア:0)
>golangの何がしたいのかよくわからない型システムに比べれば
私は逆にgolangのアプローチの方がしっくりくるんですよね。
別コメントにもありますがカプセル化を間違って理解されていることが多いような。