X



Rust Part5
■ このスレッドは過去ログ倉庫に格納されています
0070デフォルトの名無しさん
垢版 |
2018/02/19(月) 10:56:52.97ID:RCvG8f4a
安全性を最大限に気にしたい心配性な人向けの言語だよRust
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ
0072デフォルトの名無しさん
垢版 |
2018/02/19(月) 20:47:53.37ID:Lpico4kN
例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ

そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと
0073デフォルトの名無しさん
垢版 |
2018/02/19(月) 22:42:50.63ID:soT5kWv3
前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね
0076デフォルトの名無しさん
垢版 |
2018/02/21(水) 13:18:06.33ID:/K+AUWe/
C++ならゲーム
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習

Rustは?
0077デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:19:52.15ID:ariB2x93
ここはアンチが立てたキチガイ隔離スレです。
キチガイ以外書き込まないでね
0078デフォルトの名無しさん
垢版 |
2018/02/21(水) 20:00:01.69ID:RN4nUagC
本スレが過疎ってレベルじゃないし実質こっちが本スレだろ
隔離()スレに勢いで負ける言語があるらしい
0080デフォルトの名無しさん
垢版 |
2018/02/21(水) 21:13:09.57ID:wTdoLSiT
ほんとID:yl4ANYczは戦犯
コンパイルできない厨が最後のコンテンツだったのに…
0081デフォルトの名無しさん
垢版 |
2018/02/22(木) 09:08:35.45ID:L3BN3Bsr
いわゆるnewtypeパターンをLLVM IRで見てみると
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?

typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな
0086デフォルトの名無しさん
垢版 |
2018/02/22(木) 13:46:42.12ID:H839Tp+8
>>81
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ


Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん
0088デフォルトの名無しさん
垢版 |
2018/02/24(土) 01:22:38.50ID:it5yKGst
「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。
0089デフォルトの名無しさん
垢版 |
2018/02/24(土) 05:12:18.52ID:sKnrWNZ+
むしろ今まで並列コンパイルをしていなかったのかという驚きがね...
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね
0090デフォルトの名無しさん
垢版 |
2018/02/24(土) 12:58:21.72ID:xVNPO9ZK
コンパイルを速くするためにプログラムの速度を犠牲にする
自称低級言語があるらしい
0091デフォルトの名無しさん
垢版 |
2018/02/24(土) 13:22:49.17ID:F+bRKUHR
言語じゃなくコンパイラの話だぞ
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み
0092デフォルトの名無しさん
垢版 |
2018/02/24(土) 14:20:25.52ID:Wx4opHQO
言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。
0093デフォルトの名無しさん
垢版 |
2018/02/24(土) 14:24:58.18ID:2/pmmfzJ
低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから
完全にターゲティングに失敗してるよなこの言語
0094デフォルトの名無しさん
垢版 |
2018/02/24(土) 15:42:04.98ID:F+bRKUHR
むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い

ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い
0095デフォルトの名無しさん
垢版 |
2018/02/24(土) 16:20:16.21ID:VjJ87j7v
安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる
0098デフォルトの名無しさん
垢版 |
2018/02/27(火) 14:35:36.74ID:UR+NQY+Q
やはりアセンブラか
0101デフォルトの名無しさん
垢版 |
2018/03/05(月) 15:59:00.63ID:iGOVMObf
https://play.rust-lang.org/?gist=0bed0aa16c0679665fee05cc6bfda41f&;version=nightly
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}

fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}

nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか
0104デフォルトの名無しさん
垢版 |
2018/03/05(月) 21:44:52.21ID:rDxXu9uq
遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは
0106デフォルトの名無しさん
垢版 |
2018/03/07(水) 21:27:53.74ID:VXG6nm0Z
良く分からないけどReleaseにしてASM見ると消えてるみたい
MIRに対する最適化は現時点ではそれほどやられてなさそう
0107デフォルトの名無しさん
垢版 |
2018/03/07(水) 21:51:00.14ID:LRCrToXv
>>106
Debugなのを忘れた状態で見てcall nanka2があったので駄目かと思っていましたが
Releaseだと消えるようですね、すいません
0112デフォルトの名無しさん
垢版 |
2018/03/08(木) 13:04:24.48ID:XQ95i3sC
あのtanakhですら擁護できなくなってきたRustとかいう何か
やっぱクソ言語じゃん
0116デフォルトの名無しさん
垢版 |
2018/03/08(木) 17:46:17.85ID:3H4xAb5h
>>114
Rust評価高いくてGoは糞って評価だな。
0117デフォルトの名無しさん
垢版 |
2018/03/08(木) 20:48:12.88ID:Qr0iRnUQ
絶対一緒に仕事したくないようなコード書きそうな人柄なのがよくわかるのはいいことだね。
0122デフォルトの名無しさん
垢版 |
2018/03/09(金) 13:10:31.19ID:Awo4Q9T/
どう読んでも>>118は事実を言っただけでrustを誉めても貶してもいないと思うが…
「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの?
0127デフォルトの名無しさん
垢版 |
2018/03/10(土) 04:12:59.75ID:YINDWKAW
蔑んでいるように見えるのはあなた自身が心の奥底でRustを蔑んでいるのです
0132デフォルトの名無しさん
垢版 |
2018/03/11(日) 13:57:51.99ID:91F3yKR+
よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが
0134デフォルトの名無しさん
垢版 |
2018/03/11(日) 14:13:04.94ID:zWe+i43K
>>132
言われたことやるだけなら可能じゃね?
0135デフォルトの名無しさん
垢版 |
2018/03/18(日) 21:30:14.47ID:jQGugCpv
>>8
今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草
0136デフォルトの名無しさん
垢版 |
2018/03/19(月) 15:39:12.03ID:dH7nnHk9
>>135
少なくとも書いた奴はまともに使ってないだろうな
matchの仕様が理解できないからって仕様バグと決めつけてるアホだし…
0137デフォルトの名無しさん
垢版 |
2018/03/19(月) 19:45:41.61ID:ahbMAcYG
俺の技量不足なんだろうけどmutmut地獄は確かにわかる
0138デフォルトの名無しさん
垢版 |
2018/03/19(月) 20:01:00.05ID:dH7nnHk9
>>137
mutが面倒ってのは分からなくはないんだが、かと言ってどうするの?
不変のほうをconstにすると次はconst地獄になるだけだよ
0141デフォルトの名無しさん
垢版 |
2018/03/19(月) 21:23:39.57ID:dH7nnHk9
Nimは引数を可変にしようとすると下記のようになる。
proc test(x: var string): string =
x = x & " world"
return x

var x = "hello"
let y = test(x)
echo y

関数宣言で引数にvarと書かなきゃ可変にできないんじゃRustとそれほど手間は変わらない
それに、宣言はvarと書かせるクセに呼び出し側がtest(var x)じゃなくてtest(x)となるのが解せない
これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
C++と同じ類の過ちを犯してる
簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…)

https://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8
0142デフォルトの名無しさん
垢版 |
2018/03/19(月) 21:32:11.25ID:dH7nnHk9
あとRustの場合はそもそもmutは出来るだけ使うなという方針だから
mutの記述が面倒なのはワザとやってるという点もあるし…
0143デフォルトの名無しさん
垢版 |
2018/03/20(火) 08:39:12.91ID:iuzVSye9
なるほど
0144デフォルトの名無しさん
垢版 |
2018/03/20(火) 14:11:19.46ID:J0Id73NT
> これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
珍しいご意見ですよね。
0145デフォルトの名無しさん
垢版 |
2018/03/20(火) 16:01:11.80ID:/+MVnq9/
>>144
よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな
所有権を借用するために大抵は&mutを書かされるってだけで…
渡す変数の型がもともと&mut Tだった場合は書かなくてもいい…
Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので
俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか…
でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き

俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな
一般的にはNimの方がよっぽど簡潔で美しいのかもしれない…
ただ単に俺の感性の方が狂ってるだけっぽいな…
0147デフォルトの名無しさん
垢版 |
2018/03/20(火) 21:24:24.10ID:kx/m1AUo
俺もそんな珍しくもないと思う
0148デフォルトの名無しさん
垢版 |
2018/03/20(火) 23:15:30.72ID:RYTCq15b
「変数」が値に名前を付けたイメージに人とメモリ領域に名前を付けたイメージの人と
0149デフォルトの名無しさん
垢版 |
2018/03/21(水) 00:20:42.31ID:mtmyqFMA
データがメモリのスタック領域ヒープ領域あるいは別の領域などどこに記憶されるのかという低レベルなことを考慮しながらプログラミングしなきゃならない

変数とは何かと言えば
スタック領域の特定のメモリ番地に名前をつける行為でしかなく

所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない

クソ
0150デフォルトの名無しさん
垢版 |
2018/03/21(水) 21:34:47.63ID:JvyRf7uK
分かりやすい説明だね
0151デフォルトの名無しさん
垢版 |
2018/03/23(金) 00:30:01.20ID:DIa3/8ef
GBAのプログラムを書いてみたいな。どうせならRustでやってみるか
ARMポートあったよね。Thumbコードも吐けるのかな

とか思ってググっていたら先人がいた。考えることはみんな一緒かw
0152デフォルトの名無しさん
垢版 |
2018/03/23(金) 08:40:36.80ID:yG5SnYrv
Unityが北欧のニートから生まれたって話を聞いて
Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。
0154デフォルトの名無しさん
垢版 |
2018/03/23(金) 10:01:19.78ID:+d3L/XtB
あるかもね
0156デフォルトの名無しさん
垢版 |
2018/03/24(土) 07:57:37.67ID:AYaIp/Or
そしてメモリ周りのバグで悩まされた時にやっぱRustで書いときゃ良かったってなる
0159デフォルトの名無しさん
垢版 |
2018/03/24(土) 19:57:38.34ID:Hl/X5tEX
rust未経験者なんだけど、この言語ってweb開発には向いてないの?
goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど
何かしらweb開発に向いてない要素あんるんかな?
0161デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:22:46.33ID:Hl/X5tEX
ごめん。聞き方がふんわりしてた。
webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな?
SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。
0162デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:22:52.79ID:6E9wdkyi
一応WebAssemblyで吐けばRustのコードとJavaScriptのコードを混在出来るけど
軽く触っただけなんでデバッグなどの開発環境の事は未知数
0164デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:25:44.26ID:bGodUaM+
サーバ側でしょ?言語としては代わりになるだろうけどwebに向いてる部分てのが何を指してるかによるんじゃない
0165デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:33:09.05ID:Hl/X5tEX
hello world出たからもう初心者と言っても過言ではない。。

>>164
個人的には静的言語ならどれも大差ないと思ってるんだけど、
その方面では全然注目されてないように見えたから何か原因があるのかなって。
0166デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:36:37.33ID:6E9wdkyi
>>161
以前Goでサーバーサイド書いたことあって、バイナリ一つデプロイするお手軽さがとにかく良かった

といってもほんとに小機能で、WAFにEcho使って静的ファイル(CSS・画像)とか
レスポンスにDBから引っ張ったJSON返すRESTfulの出来損ないみたいのだけど

開発はWindows、デプロイ先がCentOSだったんだけど、
WindowsでCentOS用のバイナリ吐けるし、プロセスの再起動監視も今はDocker-composeがやってくれてるし(restart: always オプション)

Windowsで開発してPUSH、CIツールがCentOS用にバイナリ吐いて、CentOSではバイナリ受け取ったら
$ docker-compose down && docker-compose up -d --build
叩くだけでデプロイ完了っていう超絶お手軽、もちろんデプロイはAnsibleやItamaeで自動化しても良い
0167デフォルトの名無しさん
垢版 |
2018/03/24(土) 20:51:06.97ID:Hl/X5tEX
hello worldが10個出た。

>>166
goのシングルバイナリ良さそうだよね。
全然分かってないんだけど、rustでもちょびっと頑張れば
クロスコンパイルできるって認識なんだけど間違ってるのかな?
0168デフォルトの名無しさん
垢版 |
2018/03/24(土) 21:09:10.81ID:6E9wdkyi
Rust経験浅いんで良く分かってない、一応nickelってWAFあるしrustupでコンパイル出来るから土台はあるけど
RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数
まあそれらのライブラリを使わなきゃいいんだろうけど
■ このスレッドは過去ログ倉庫に格納されています

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