プログラミング言語 Rust 4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/14(土) 17:38:14.04ID:uWD69LeP
Mozilla発のプログラミング言語「Rust」のスレです

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

前スレ
プログラミング言語 Rust 3
https://mevius.5ch.net/test/read.cgi/tech/1495343069/
2017/11/16(木) 12:53:49.49ID:W2aOUAlV
>>134
完全な新しいos?
じゃあlinuxにかなうわけねーじゃん。ただの自己満プロジェクトかぁ
2017/11/16(木) 13:34:34.31ID:Uttk70vk
>>135
OSとしての実用は自己満レベルでも、コードベース資産としては価値あるんじゃねーの?知らんけど
世の中にはいくらでも自己満OSプロジェクトあるんだからそこは許してやれ
あのGNUですらHurdってOSを自己満で書いてんだ
2017/11/16(木) 13:34:41.95
Rust Essentials - Second Edition

がPacktから出版されましたね
2017/11/16(木) 17:48:48.97ID:dSTVIPFJ
linixこそ個人のお遊びプロジェクトだったんじゃないのか
2017/11/16(木) 17:50:56.93ID:dSTVIPFJ
オライリーはどうなってんの?
2017/11/16(木) 18:55:22.46ID:Uttk70vk
>>139
少なくとも自分はKonozamaくらってる
2017/11/16(木) 20:07:31.98ID:v4h2PTyC
>>140
発売してないよね?
2017/11/16(木) 22:51:18.03ID:a7TN1Oxp
>>136
LZ4圧縮とか、シェルとか、Redox OSはサブプロジェクトに結構見るべきものがある

Pijulプロジェクトで開発されたSSHライブラリとかもそうで、副産物がいい味出してる
2017/11/17(金) 00:27:49.05ID:oCT+XqQK
urxvtをrustで書き直して🙏
alacrittyはなしで🙅
2017/11/17(金) 01:16:04.93ID:r4qIw16A
>>138
そうね。その頃にはオープンソースなunix osが無かったからみんな喜んだ。でも今はlinuxがあるわけで。

まぁでもマイクロカーネルらしいし
ドライバはlinuxのが使えるとかすれば、化けるのかな?
2017/11/17(金) 01:29:54.30ID:AQwbboRb
>>144
歴史の知識もOSの知識も無いなら変なこと言わないほうが良い
2017/11/17(金) 01:36:37.62ID:pIVssbCG
BSD系列全否定ワロタ
2017/11/17(金) 01:43:43.14
茂みから鉞が跳んでくるぞ〜
148デフォルトの名無しさん
垢版 |
2017/11/17(金) 01:49:33.84ID:3GAWOghK
BSDは訴訟がなければな。
あとminixも最初からライセンスが修正BSDだったらな。
2017/11/17(金) 02:00:54.43ID:r4qIw16A
linuxは未だにcで書かれてるわけだけど、
それがrustで書き直されたとしたらどうなるの?予想として。
メモリ使用量は減る?
バグは減るよね。
2017/11/17(金) 04:58:41.34ID:Q8rdVBz+
ID:r4qIw16A
かまってちゃん
2017/11/17(金) 05:02:58.63ID:n+fIjN+j
恐らくバグば減る、メモリ使用量は増える
C言語がサイズ減に全振りしているのをrustは安全側に振ってるからな

だがその前にLinusがブチ切れるだろ間違いない
2017/11/17(金) 09:41:50.16ID:p03/6wS8
let foo = Foo {
c: f1(),
a: f2(),
b: f3(),
};
let bar = (f1(), f2(), f3());

構造体やタプル構築の時って、式の評価順序はソースに記述されてる順序で確定してるんだっけ?
ここでいうと f1 -> f2 -> f3 で
2017/11/17(金) 10:10:51.70ID:j/YEi+T5
そもそもgnuの成果物でもなんでもない不自由なコンパイラであるrustcでコード書くことを御大がよしとするわけねーだろっていう
GPLでrustc書き直してから出直してこい
2017/11/17(金) 11:43:43.45ID:DHrRs5YV
そんなあり得ない話どうでもいい
155デフォルトの名無しさん
垢版 |
2017/11/17(金) 13:35:22.27ID:Eetf/DNi
BSD ← ボスドーって読むのですか?
2017/11/17(金) 19:53:41.29ID:RD2my8vU
>>131
確かに go でもいいのかもしれんが、rust で作るとしたら、
規模とかランタイム速度要求とか
良いところなんじゃないの?って気はしたよ。
少なくともOSやブラウザをこれで作るって話よりかよっぽど現実的な感じがする。
2017/11/17(金) 22:23:35.56ID:n+fIjN+j
rustは明らかに大物を矛盾なく作り上げるの向きと思うんだけれどもな
小物なら正直メモリの心配なんかせずに「mallocの後にfree不要と(以下略)」式にOS任せにしても構わんし
2017/11/18(土) 00:01:05.69ID:ptgryUw4
見解の相違としか言いようがないな。
大物をGCなしで作るとか、よっぽどのプロジェクトじゃないとありえん気がするよ。
2017/11/18(土) 01:19:21.35ID:/UyFtFcG
linuxをrustで書くとか
rustがcに勝る安全性の部分ではcではバグになりうる部分がrustではバグにならないということはあるだろうけど
移植にしろゼロから書き直すにしろ、これら以外のバグが新たに大量に発生するわけで(現行のcで書かれたものは長い間かけてそれらのバグを1つ1つ潰してきた結果であり)
2017/11/18(土) 01:51:07.07ID:Tj1Ciaix
mozilla はそれやったんだよな(恐怖)
2017/11/18(土) 01:59:12.51ID:ZQLxHiSg
>>158
そもそもブラウザこそGC使いたくない大物の代表みたいなもんで、rustはそのために作られたわけで
2017/11/18(土) 12:58:34.70ID:TdFdr2wf
>>159
そのうちAIを駆使してcからrustに理想的にTranslateする技術ができるよきっと
2017/11/18(土) 13:32:56.68ID:Tj1Ciaix
AIは置いといて c2rust は同じく妄想した

ふと思ってググったら関数定義を rust で使えるようにするツールが引っ掛かった
c2rust.py
唐突な Python ワロタ
164デフォルトの名無しさん
垢版 |
2017/11/18(土) 15:08:10.48ID:s0a9MZOf
>>158
組み込みなら割と普通。
2017/11/18(土) 16:08:11.01ID:9rFYKu0I
bindgenというのはある
が、c->rustのトランスパイラは無理だろう。ValidなCでもvalidなRustには自明には移せない
2017/11/18(土) 17:29:31.19ID:b75x0sPb
libcクレート使えば、見た目が半分CっぽいRustプログラムが書ける。
2017/11/18(土) 18:50:09.96ID:ttSwrPbv
勉強中だが業務で初めてRust使う事になった
1000行程度のプログラムだけどこれを機会にスキルアップしないとだ
2017/11/18(土) 19:25:49.39ID:GOdqC4Co
給料良さそう
2017/11/18(土) 21:18:03.25ID:huCirX/z
業務でとかうらやましい
2017/11/19(日) 10:39:11.94ID:t35wRkSN
Rustを業務で使った結果、毎週の報告で「コンパイル通らないので修正中です」を繰り返し
全然進捗が出せずに左遷減給からの自主退社コンボをくらう>>167
モジラのステマなんて信じたばっかりにかわいそうにwwwwww
171デフォルトの名無しさん
垢版 |
2017/11/19(日) 12:35:39.34ID:lEYmgXHF
コンパイル通らない、って聞くけど、ソースジェネレーターって無いの?
2017/11/19(日) 13:30:32.58ID:gjzb/Bmo
新興言語を業務に採用して爆死するパターンはSwiftで既に学んだから、
Rustの業務採用は考えられない。
2017/11/19(日) 13:54:00.95ID:l33ZkuH7
コンパイルも通せないようなバカはお呼びじゃない。
2017/11/19(日) 14:29:17.14ID:JSKIwKyh
Cで書いたコードがgccやclangできっちりコンパイル通るのに
rustに移植して通らないのはrustc(というかRustという言語)が腐ってるからだろ
2017/11/19(日) 14:39:52.55ID:v1Fqqpkv
多言語にベタに移植してコンパイル通らないって喚くって、アホそのもののコメント乙
2017/11/19(日) 14:44:41.47ID:Iq1MXC0c
バグがコンパイル時と実行時のどちらで見つかるかというだけの話なんだがなぁ
CのデバッグよりRustのコンパイル通す方が楽だわ…
177デフォルトの名無しさん
垢版 |
2017/11/19(日) 15:02:25.94ID:QT7cD2cz
>>174
何処から突っ込んでいいのかよく分からないのだが。
まず、君の言い方では「C(gcc or clang)でコンパイルが通ったものをそのまま他言語に
移植したらそれもコンパイルが通るはず(通らない言語は欠陥品)」と言っているように聞こえるんだが、
Cは「弱い静的型付け」の言語なので、Rustどころか「強い静的型付け」のJavaやC#
にさえCをそのまま移植するんじゃコンパイルは通らないぞ。
Java,C#の場合はジェネリックやインターフェースや(出来るだけ使いたくないが)キャストを
使用してコンパイラに対してしっかりと型安全を保証してやらなければコンパイルは通らない。
対して、Cは「弱い静的型付け」なのでコンパイルを通すだけなら場合によってはキャストすら必要なかったりする。
まさか、そのレベルから分かっていないのか?
だとしたらRustの所有権云々以前の問題なのだが。
2017/11/19(日) 17:16:18.02ID:PCwXQfC9
そのレベルは移植の段階で調整しとるわドアホ

やっぱモジラ信者はRustのコンパイラこそ至高で、それを通せないプログラマの方がクソって論調か
相変わらず判で突いたような理論だな
2017/11/19(日) 17:18:54.26ID:PCwXQfC9
俺が言ってるのは、別にマルチスレッドで動かすわけでもないプログラムを所有権どうこうで弾いて、
本来正しく動くはずのプログラムがコンパイルエラーになり、つまりプログラミング言語としてはご法度の、
書けないプログラムが存在するってことについて異議を唱えてる
2017/11/19(日) 17:20:45.77ID:PCwXQfC9
このスレでも何回も言ってるのに未だに理解しないの
本当に工作員って感じだな
2017/11/19(日) 17:33:10.07ID:WE8Zr98v
本来正しく動くはずのプログラムの例を挙げたら?
182デフォルトの名無しさん
垢版 |
2017/11/19(日) 18:48:30.65ID:lEYmgXHF
>>181
無理だと思うよ。
信者ガーとか言ってるのが居るけど、Codeで示せるなら最初から出してるだろうし。
2017/11/19(日) 20:31:34.38ID:PtQzPwdH
mozillaが工作してるならこんなところじゃなくてtwitterなどでやるだろうし
工作員連呼してるのは自分自身が他言語の工作員だからでは
2017/11/19(日) 22:24:37.23ID:Wp15ODw9
C/C++から移植して動かない例か。メンバー間参照(self-borrowing)がある構造体くらいしか思いつかんが、
Vec<T>に対する&T -> インデックス使う
Stringに対する&str -> インデックス使う
Map<K,V>に対する&V -> Entry<K,V>使う
異なるメンバーTに対応する&T -> enum使う

で大体対応できるような気がする
2017/11/20(月) 00:02:25.61ID:E35fLroX
業務で速度重視でrustとgoの選択肢がある時にどっちを選ぶべきか悩んでしまう
個人的にはrustの方が好きだしパフォーマンスも出るんだろうけど、今後のメンテ(教育コスト含む)とか考えたらgoにすべきなのかなって

今更null安全でも無くmapやfilterも無い言語は…って感じではあるんだけど
グリーンスレッドは嬉しいが
2017/11/20(月) 00:32:58.09ID:76vYtb+v
目的による
外向きサーバ作るならGoのが学習コスト抑えられて楽にスケールする
Rustとの速度差はネットワーク帯域でつぶれて有意に出ないことが多い

長期間メンテするcmdツールやデータ管理ツール作るならRustの方がかっちりかけるから負債になりにくい
Goは気を抜くと容易にサクラダファミリア化する
2017/11/20(月) 01:32:59.51ID:E35fLroX
>>186
なるほど
言語としてはrustなんだが、他の人達がついてこれるかが心配だ
2017/11/20(月) 10:20:40.69ID:XLZ/FUc4
>>187 がRustを導入した結果、コンパイルが通らずにチームの生産性がだだ下がり
連帯責任で左遷、給与減、恨みを持った部下に夜道で襲われる未来がみえるぅー↑
2017/11/20(月) 10:41:24.04ID:JFYV8vnq
Goはよく知らんけどnull安全もジェネリックもない言語使うくらいならC++でよくね?としか思わない
190デフォルトの名無しさん
垢版 |
2017/11/20(月) 11:21:03.04ID:E3G43xCO
>>189
いやGCあるかないかは重要な要素でしょう。
191
垢版 |
2017/11/20(月) 12:39:17.94ID:tBvw28f4
Goは標準ライブラリが本当に標準だし、それ故にクロスコンパイルが楽ってのもあるな。
libcを選ぶなんて、しなくて良い。
2017/11/20(月) 18:43:04.56ID:4/lwe8rJ
つまりbetterc的な感じでかな。
goはrustよりはちょっとした気持ちでつかえる。
sshクライアントライブラリまで標準で、しかもopensshとかに頼らず全部自前であるとか、
どんだけ再発明しまくってんのとか。
193デフォルトの名無しさん
垢版 |
2017/11/20(月) 18:46:19.09ID:kx54kaAZ
次スレからワッチョイ有効にしようぜ
同一人物だと思うけどいい加減ウザい
2017/11/20(月) 21:33:56.64ID:PEMZL+h7
賛成
195
垢版 |
2017/11/20(月) 23:44:16.41ID:tBvw28f4
ワッチョイしたらそんな変わる?
あんまり変わらん気もするが。
2017/11/20(月) 23:49:47.66ID:65TnaXvU
あるスレは罵倒が激減してたなー
197デフォルトの名無しさん
垢版 |
2017/11/21(火) 07:50:43.65ID:nLoZ7hhk
アカヒを遮断したら、差別書き込みが激減してたからね。
2017/11/21(火) 08:39:58.18ID:bKAvrS9R
発言者が区別つくし、自演も面倒臭くなるからいいんじゃない?
2017/11/21(火) 09:21:54.95ID:9TNiXSb6
NG出来ないのはいやだ
200
垢版 |
2017/11/21(火) 12:42:33.16ID:QsmG8G9Z
なるほど。メリット多いのね。
2017/11/21(火) 13:01:12.33ID:OOffmQFA
ちょっと違う
「あらゆる」書き込みが減る
ワッチョイだとそもそも書き込まないという人はそれなりにいる
都合よく自分の嫌なものだけが減るわけではない
そこは認識して受け入れないといかんよ
あとワッチョイを途中でやめることは実質不可能なのでそれも覚悟すること
2017/11/21(火) 13:52:32.34ID:49KeK6o/
ワッチョイは自演にはそんなに効果はないと思う
日替わりのIDに代わって日をまたいで同一IPアドレスの奴をNGしやすくなるだけだと思う
2017/11/21(火) 14:05:16.20ID:6lkYtARd
そういや前にも書いたけど、2ch関連のクレート有るね
2017/11/21(火) 15:20:46.73ID:J5Wiskwy
カジュアルな荒らしは減る
2017/11/21(火) 15:58:50.23ID:OOffmQFA
>>204
カジュアルな書き込みが全部減るんだよ
普通の雑談、普通の質問、普通の回答、普通の自演、普通の荒らし、普通の無自覚アスペ、全部だいたい均等に減る
残るのはワッチョイ出ても構わないような本気の雑談、本気の質問、本気の回答、本気の自演、そして本気の荒らしと本気の無自覚アスペ

だからご利益的には各自手元でどうにかする分類タグとしての>>202だね、これ以外を喧伝してるのはなんもわかってねえ
で、わかったうえでの導入はご自由に
2017/11/21(火) 16:06:33.77ID:dr4UMioZ
ID:OOffmQFA
必死だな。
2017/11/21(火) 16:12:36.25ID:OOffmQFA
仮に過疎ったりうまくいかなくなったりして「ワッチョイやめよう」という話になったとしても>>206のように言われて元に戻せない
不可逆なので覚悟だけはしておいておくれ
2017/11/21(火) 17:01:01.88ID:4sVotJ+F
荒らしが減るほうが良い
2017/11/21(火) 17:26:31.56ID:NnekayZo
ワッチョイ&IPアドレス表示で問題ないと思うよ
IPアドレス表示されて困ることは特に無いし
自演対策には効果ないだろうけどIPアドレス代わらない奴でウザい奴はアボーンできるし
2017/11/21(火) 18:15:30.73ID:/EAu6a+F
ボローチェッカさんに怒られてばっかりでめげそう(´・ω・`)
2017/11/21(火) 18:23:17.22ID:Yd3TZj7r
メンターがおればなあとよく思う
Option::as_mutとOption::as_refの存在に長いこと気付かないでいたせいで、自分の設計が悪いのか随分悩んだ
212デフォルトの名無しさん
垢版 |
2017/11/21(火) 20:03:12.33ID:2amYig3U
IP表示は抵抗ある
ワッチョイ導入はして欲しいけど
2017/11/21(火) 20:20:19.61
>>210
君に期待してるから叱るんだよ
本当に君を諦めたら適当にOK出して実行時に事故らせるよ
2017/11/21(火) 20:26:40.82ID:eepYX3vq
>>210
一般論だけど
最初のうちは小さく作ってみるといいよ
一挙にいっぱいやろうとすると大変よ
215
垢版 |
2017/11/21(火) 20:37:54.37ID:3Ux+/vWv
カジュアルな書き込みって漠然としてるな。
「このスレは○○だから書き込み辞めよう」って時点で既にカジュアルではない気がするけど。

そんな程度で書き込みを辞める奴の情報なんてしれてるだろ。
本気の質問・雑談で良いじゃないの。
2017/11/21(火) 21:13:02.29ID:M1nLzBxS
>>215
いやーほんとRustプログラマの選民思想ここに極まれりって感じだな

Rustのコンパイラは選ばれし者しか通せない
通せない奴はプログラマとして失格、発言権など無い
モジラらしいわ
2017/11/21(火) 21:50:26.14ID:34EnqYlD
「選民思想だ! 自分は排斥されてるんだ!」って完全に病人だなコイツ
2017/11/21(火) 21:58:31.22ID:kk07Tlre
モジラ|Mozilla|信者|工作員|感じだな
219
垢版 |
2017/11/21(火) 22:03:12.06ID:3Ux+/vWv
>>216
どういう事?

コンパイルに関して言えば、コンパイラが文句言うように直せばコンパイルできるし、何より安全じゃん。
どっちかと言うと、選ばれしものしかまとまなソースが書けないCよりも一般寄りなくらいかと。

別にコンパイル通せなくても書き込みゃいいじゃん。これはゴミだ、って。主義主張は自由かと。

通せないやつには書き込む権利はない、と俺が言ってるように聞こえるならば、
つまり自分が「書き込む権利がないと言われてると思い込んでる、通せない奴」だって事?
2017/11/21(火) 22:26:37.39ID:M1nLzBxS
>>219
何度もこれは言語未満のゴミだって根拠と共に書き込んでるのに
コンパイラ通せない奴の僻みだのなんだのいってキチガイ扱いしたのはてめえらじゃねえか
2017/11/21(火) 22:27:51.07ID:zhx3LFfP
むしろ守ってりゃ他はどうでもいいみたいな馬鹿が増える印象
こういう看板みて、禁止されてなければやっていいんだと勘違いするバカみたいに。

https://www.google.co.jp/search?q=%E5%85%AC%E5%9C%92+%E9%81%8E%E5%89%B0%E3%81%AA%E6%B3%A8%E6%84%8F%E6%9B%B8%E3%81%8D&;source=lnms&tbm=isch&sa=X&ved=0ahUKEwjmyoeF4s_XAhXCnpQKHdoiCEIQ_AUICigB&biw=1822&bih=903#imgrc=WVv8avT_bPk8NM:
222
垢版 |
2017/11/21(火) 22:47:38.52ID:3Ux+/vWv
>>220
どういう事?つまりコンパイル通せないって事?
223デフォルトの名無しさん
垢版 |
2017/11/22(水) 00:32:52.98ID:ypfVoZmJ
イミフなdisリって単なる背乗りだから役立たずなんだがなあ。
じゃあどういう言語なら良いの?って聞くとダンマリw
シャドーとか所有権で挫折したのかな?
GC無しとか、動的っぽい使い方が出来るようにする為のもんだって分かってれば、あーこういうアプローチも有りなんだなと思えるけどね。
224デフォルトの名無しさん
垢版 |
2017/11/22(水) 07:43:02.63ID:h8Su9zOg
>>220
キチガイ扱いしたのは事実だが、「僻み」といったことは一度もないぞ。
暇だったし、過去レス検索して確認したから間違いない。
被害妄想甚だしいぞ。

第一、どこがコンパイル通せないかを具体的に書いてくれたら指摘してやるって言ってるだろ。
お前「Cを移植したらコンパイルが通らん」としか言わねえんだもん。
そんな漠然とした情報じゃ指摘しようがねぇよ。
225
垢版 |
2017/11/22(水) 08:39:28.41ID:MjBhGus4
僻みでも何でもなく、そこがいいところなのになぁ、だと思うけどね。俺も。
コンパイルできてたCも、多分misra案件だとまず静的解析ではねられるか上司にしこたま怒られる類だと思うよ。
2017/11/22(水) 11:27:55.39ID:ZStLkVDO
rustってASTにアクセスできる仕組みってあったりするの?
227デフォルトの名無しさん
垢版 |
2017/11/22(水) 11:41:33.74ID:h8Su9zOg
>>226
何がしたいの?
nightly なら syntax クレートとか使えばできると思う。
使ったことないからよく分からんけど。
stableじゃ出来ないんじゃないかな?たぶん。。。
誰かもっと詳しい人いる?
228デフォルトの名無しさん
垢版 |
2017/11/22(水) 11:59:25.37ID:ypfVoZmJ
>>220
で、どういう言語なら良いの?
またダンマリか、話題逸し?w
2017/11/22(水) 13:10:05.98ID:DRQ8kz+8
一般に普及した言語の仕事でクソ仕様にひどい目にあって
アンチになるというのなら理解できるが普及すらかまだわからない
新興言語でここまでアンチ活動する情熱の根源はどこだろう
2017/11/22(水) 14:44:44.34ID:frJPN6Uq
リアルで実害を被ると言及することすら嫌になるよ
粘着ができるのも個人的に気に食わないの範囲に留まってるからさ
2017/11/22(水) 14:48:04.93ID:/F1hTabp
同じ事言ってるだけでかまってもらえるからだろ
232デフォルトの名無しさん
垢版 |
2017/11/22(水) 15:18:26.95ID:h8Su9zOg
>>231
キチガイ扱いされてでもかまってもらいたいとか、とんだドMだな。
それはむしろキチガイ扱いされていることを喜んでいるという認識でよろしいか?
2017/11/23(木) 03:56:47.06ID:khAm3OAp
一つの構造体の中にVecの実態とそのスライスを持たせるような事って出来ないのかな
バイト列を解析して、元データの実態と意味毎に分けたスライスを持たせたいなって思ったんだけど構造体作る時に同時に渡そうとしたら怒られる

とりあえず実態だけ持たせて特定の場所のスライスを返却するメソッドを持たせたけど設計的にこれでいいのかな?
234デフォルトの名無しさん
垢版 |
2017/11/23(木) 09:03:18.56ID:XBDj7YCq
>>229
普及した言語disると反論も大きいからねぇ。
かと言って余りにマイナー言語じやあ、disる場さえない。
なので自然に、中間の位置に有る言語に擦り寄ってくる。
昆虫の走光性みたいな知能。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況