[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/01 19:50 / Filesize : 270 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語25 TypeScript Swift Go Kotlin Rust Nim



1 名前:デフォルトの名無しさん [2022/04/17(日) 17:52:35.38 ID:KG26dcth.net]
スレタイ(順番はRedMonk準拠)以外の言語もok

前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/

49 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 14:57:34.06 ID:2ZPl5Bs7.net]
>>45
その言語のセマンティクスとしてimmutableで渡すケースでも
値をポインタで渡すか値自体を渡すかはどちらでも構わないから言語のセマンティクスとは別問題

もっと顕著にわかりやすい例
構造体を一つ返す関数があったとする
小さい構造体なら値を返すだろうが
大きな構造体なら領域を用意してそこに書き込んでそのポインタを返すかもしれない
あるいは関数を呼ぶ側が領域を用意してそのポインタを裏引数として渡してそこへ返す値を書き込むかもしれない
このように3種類考えられるが呼ぶ側と呼ばれる側で一貫していれば目的を果たす
プログラマーはその生成コードが3種類のどれになるかを把握する必要はない
つまりそこで明白にレイヤーが分離される

50 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 14:59:44.25 ID:X0td+574.net]
>>33
もし文字列のベクタに文字列を追加する関数があったとき文字列が参照渡しでその関数が実行された後もその文字列が読まれていると、その関数は文字列をmoveすることができずコピーしなくてはならなくなるからじゃないかな。
メモリコピーは遅いから絶対に許さない人にはデフォルトがmoveのほうがいいのかも。

51 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:02:16.44 ID:pGCdIhc3.net]
>>48
現状はIR前提でしょ、完成してない未来のものを持ち出すのであれば何とでもいえる。というか上で言ってる本題とはずれる
そんなところに食いついて来てしょーもないわ

52 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:06:33.88 ID:i02G9WD5.net]
>>47
Rustでもセマンティクスと生成コードは独立だよ
例えば>>49の関数が構造体を返す例
生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう
実際にRustで大きな構造体を返すと所有権を活用して驚きの最適化したコードを生成するよ

53 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:10:05.22 ID:uPETy31e.net]
>>51
開発中で完成してないとは言っても実行バイナリの
生成もできないという状態ではないから
あなたの話とは違うというか
あなたの主張は間違ってるという例になってますよね

54 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:19:05.87 ID:pGCdIhc3.net]
>>52
「生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう」
え?RustにもちゃんとFFIなどextern "C" {}ブロックがあるでしょ?生成コードは言語仕様で定められているし、このようなデータの受け渡しは
参照や可変参照の制限、ボローチェックなどがOFFになる。C言語やD言語やNimも同様でしょ、これが出来ない言語はシステムプランニングが
できる言語とは言えない。
「Rustで大きな構造体を返すと所有権を活用して驚きの最適化したコード」
どのような驚きのバイナリを生成しようと、例えばゲームエンジンのUnityなどでデータを渡す場合に所有権をRust側で保持したままのような
コードではUnityなどでメモリー管理されるので問題が出る。だから呼び出し間でどのようにデータを受け渡すか当然指定できる

55 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:20:54.20 ID:pGCdIhc3.net]
>>53
何を言いたいのか1つも分かりません。。。あなたの勝ちでゴリラのようにマウンティングをしてください、どうぞ

56 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:33:12.79 ID:mb/oYyn3.net]
>>54
FFIを理解していないアホですか?
例えばそのextern "C"した時のみC言語の受け渡しインタフェースに従うだけ
どの言語でもFFI使わなければ各言語が自由自在の方法を取る

57 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:38:01.47 ID:4qMH/RHY.net]
>>39
引数のサイズが一定サイズ以上だとポインタで渡す

それはそれで他者が変更したときの挙動が変わるから怖いよね。
特に並列作業時。

>>50
const参照をデフォルトにしたら、そのあたりは引き渡し時にmoveを明記するんだろうね。あるいはCOWで実装するか。

もしかしたらRustに「権利を持つオーナーは極力少なく・小さくする」というポリシーでもあるのかな?



58 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:47:16.94 ID:pGCdIhc3.net]
>>56
さっきからID変えて絡んでこなくてよいですよ、「extern "C"した時のみC言語の受け渡しインタフェースに従う」セマンティクスと生成コードが決まりますよね。
アホと言えば誰もしもが感情的になるわけではないです。FFI使わなければなんて話をしていませんし、「プログラミング言語によるセマンティクスと最終的に
生成されるコードは全く無関係」という理想論のような現実を知らないコンピューターサイエンス学科の学生のような言葉を否定してるだけです。

59 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 15:50:35 ID:X0td+574.net]
>>57
デフォルトで引数は不変が前提なので引数の型の定義を変更してポインタ渡しになったとしても基本的には挙動は変化しない。
引数のアドレスをとってれば挙動が変化するかもしれないけど、Nim言語は明示的に変数のアドレスをとることは危険な行為で自己責任でやれってことになってるから。

60 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 16:01:25 ID:hx/TPiWJ.net]
>>58
普通のプログラムでC言語FFIなんて使わないです、そして、その特殊ケースはどうでもよい話です
一般的に言語が定めるセマンティクスと生成コードは別階層なので独立しています

61 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 16:06:01 ID:buwrQlsl.net]
>>57
静的型付けで型サイズが定まる普通の言語ならば大丈夫
引数や返り値がポインタ渡しになるか値直接渡しになるか
型サイズ次第で変化しても一貫していれば構わない

62 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 16:44:49.00 ID:pNu/+WEX.net]
>>57
> それはそれで他者が変更したときの挙動が変わるから怖いよね。
> 特に並列作業時。
横レスだけど、明らかにそういう話じゃない

63 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:00:59.75 ID:VCJMEsmD.net]
普通にカーネルのシステムコールするだけでC言語のFFI使ってますよ、DBアクセスするにもSQLiteでもMySQLでもPostgresqlでも使用してますし
TCP/IPスタックにアクセスするにもFFI使ってます、もしや特殊なのはあなたなのでは?ガン無視されて独立しているのは、そんな詰まらないことで
言い張るあなたなのでは?

64 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:04:14.33 ID:uPETy31e.net]
Kotlinみたいな出力先がjvmとjsとネイティブがあるのは
このひとの中でどう解釈するんだろ

65 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:15:12.72 ID:RntYGm+C.net]
>>63
そんなことは誰でも知っているがこの流れとは無関係な話
各FFIはそのFFIの指定に従う
逆に言えば各言語の普通のコードではFFIなんて関係ないので各言語で完全に自由
だから引き数や戻り値のサイズに拠ってポインタ渡しか否か変わる言語もある

プログラマーはそれらを知らなくてもプログラミングできる
各言語が定めるセマンティクスだけ理解すればプログラミングできる
つまりセマンティクスと生成コードは完全に独立した別階層であり無関係

66 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:19:02.78 ID:e4wxGEsZ.net]
この話の終着点どこ?
「お前はアホだから黙れ」が立証できれば満足するの?

67 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:22:10.87 ID:Em1ZPrJL.net]
>>33
変数の代入がmoveなのに関数引数の時だけ参照になるのは紛らわしくない?



68 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:33:30.39 ID:4qMH/RHY.net]
>>59
あ、不変前提ね。勘違いしてました。

>>67
変数もデフォルトで不変借用にする、とか。戻り値の受けが面倒臭くなりそうだけど。

69 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:41:53 ID:mz+noJnQ.net]
>>68
Cの(ポインタ)参照が前置&だから
Rustの(借用)参照も前置&にした現状仕様がわかりやすいと思うけど、なぜ変えたいの?

70 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 17:58:50.26 ID:Em1ZPrJL.net]
>>68
変数の代入をデフォルトで参照にするとmutが絡んできたときにborrow checker周りでとてつもなく面倒になりそうな気がする

71 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:11:14 ID:CPWR65al.net]
rustはライフタイム周りが途方もなく汚く見える
ウンコに触れたくない

72 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:16:17 ID:rznbXz+G.net]
Rust「エラーには回復可能なエラーと回復不可能なエラーがあってResult<T, E>を使って~(長文)」
エンジニア「TとEって何だよ」「"?"って何?」「Box<dyn Error>って何?」

Golang「ほぼ
if err != nil {
panic(err)
}
でいい」
エンジニア「そうだったのか!」「やっと理解できた!」「Goって美しい」



何も言い返せんかったは・・・

73 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:19:09.66 ID:mtexizhK.net]
twitterでイキってるバカをそんなに晒すなよ。

74 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:22:52.28 ID:rznbXz+G.net]
なおイキッテルのはRUSTERのもよう
GOに完全敗北してどんな気持ち?

75 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:26:10.80 ID:WWHuTgUM.net]
null安全じゃない言語とかこのご時世にあるんですね

76 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:39:04.08 ID:CZqwnDNY.net]
スレタイの言語でも
Goとかnilチェックするコードを書き忘れてもコンパイルエラー出ないね
安全じゃない言語多すぎ

77 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 21:42:30.77 ID:rznbXz+G.net]
GOはポイント使わなければ安全だぞ
ただし初期値に0と””が入る



78 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 22:25:39.31 ID:hd7uWEuw.net]
>>77
このif文を書き忘れたらコンパイルエラーになるの?

>>72
> if err != nil {

79 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 22:30:25.57 ID:Em1ZPrJL.net]
>>74
これってgoありがたがる人を馬鹿にしたツイートじゃないの?

80 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 22:44:34.76 ID:edZlyGeP.net]
Goはnil安全ではない
if err != nil {を書き忘れたり
return nil, nilしちゃっていると死ぬ

nil以外にも存在しない時の値で死ぬ
例えばstring.Index()は未発見時に-1を返す
返り値が-1かどうかチェック忘れてもコンパイルエラーとならない
そのまま-1を使ってしまい実行時に死ぬ

いずれのケースもRustではコンパイルエラーとなるため安全
Goは危険だらけ

81 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 22:55:48.31 ID:z7JFVAjx.net]
分かりにくい人「円周率は3.141592...と無限に続く数字で、よく近似の3.14が使われます。」
視聴者「何で3桁なの?」「2の後は何なんだよ」「近似って何?」

分かりやすい人「円周率って色々言われてるけど、実は3なんです!」
視聴者「そうだったのか!」「やっと理解できた!」「数学って美しい」

https://twitter.com/zugaaanzubababa/status/1506569845693100035
(deleted an unsolicited ad)

82 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 23:02:13.65 ID:WPqVzB8b.net]
Goでは「値が存在しないこと」を安全に表す方法がないことが敗因
RustではOption<T>型のNoneで安全に表せるところ

83 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 00:46:26 ID:S3LfaCKT.net]
なおシェアはGOが圧勝したもよう
RUSTボーイズは一生夢見て低賃金でこき使われる童貞野郎

84 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 01:34:09 ID:VnIrO7oP.net]
goはCがシンプルで使いやすいと思う人向けの言語じゃないかと思う

85 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 01:36:19 ID:VnIrO7oP.net]
言語機能をモリモリにしたい誘惑に抗ってランタイムを充実させるという判断できる自制心はすごいと思う

86 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 01:53:00.90 ID:tGbJiwG7.net]
Ruby 3.0 のJIT は、MJIT で、
Ruby VM のバイト(中間)コードを、C コードに変換してから、
Cコンパイラでネイティブコードに変換していた

Ruby 3.1 のJIT は、YJIT で、
バイトコードから直接ネイティブコードに変換する。
ただし、x86_64 のみに対応

条件分岐があっても、10回実行した分岐だけを変換する。
実行されない分岐は変換しない

遅延変換・Lazy Basic Block Versioning(LBBV)

これで、Rails のプロジェクトが、20% ほど速くなったらしい

87 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:43:43.07 ID:S3LfaCKT.net]
ゴミが20%早くなかったからってどうしたってゆうね



88 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:46:59.67 ID:3aREeURj.net]
>>81
今さらゆとり

89 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:51:59.99 ID:jVj3oT5A.net]
>>87
でもRuby on railsってまだまだ使われてるよね?
有名どころでも、クックパッド、Airbnb、Gunosy、クラウドワークス、
食べログ、価格.com、Twitter、 Hulu、 GitHub

90 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 08:03:56.92 ID:J98o16eP.net]
>>81
偽物を「実は」という詐欺師。

91 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 09:17:26.14 ID:ipOfh3Xt.net]
>>89
大規模railsを別言語で書き直しましたという
ニュースは時々出てくるけど逆は聞かないからなあ…

92 名前:デフォルトの名無しさん [2022/04/19(火) 09:29:29.07 ID:Qc9Zpwhc.net]
>>89
業界や会社によってはCOBOLだって使われてる。
いったんそれでシステム組んじまったら中々移行は出来んもんだよ。

93 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 09:35:08.80 ID:+uXVuu7q.net]
>>80 >>82
Goはなぜそんな危険な言語仕様にしたの?

94 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 10:22:52.12 ID:NH+MJ17E.net]
R○byは業界のSPA移行とPythonブームによって思いのほか綺麗に消えてくれたのは良かった
まあPHPなんかに比べたらまだ「恥を知る」人間が多かったんだろうね

95 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 11:21:50.97 ID:XEvBz8Zw.net]
>>94
PHPユーザに失礼なやつだな

お前あれだろ?
刺し身に直接わさびを付けるタイプだろ。醤油でわさびをとかさないで刺し身につけて食べてね?どうよ?

96 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 12:34:56.06 ID:gbQ3J7tR.net]
>>94
言語マニアならpythonよりRubyの方がマシだろ。Pythonみたいにメソッドと関数が混在するのは書いててキモい。
python4でNim方式を採用してほしいわ。

97 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 12:39:13.85 ID:SdA/iojO.net]
もちろんプログラム記述方式としてはPythonは最悪
あれが普及するのは害悪しかない



98 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 13:49:45.55 ID:jVj3oT5A.net]
>>95
直接わさびを口に運び刺身を投入して咀嚼した後に醤油を飲むタイプです

PHPユーザに対し失礼な発言は謝罪して撤回させていただきます。この度は申し訳ございませんでした。

99 名前:デフォルトの名無しさん [2022/04/19(火) 14:55:17.88 ID:WBt0dmCX.net]
インデントでスコープ区切るのあんまり好きじゃない

100 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 16:35:48.82 ID:GlY6GAKK.net]
H

101 名前:askellもインデントでスコープを区切ってた気がするけど一応ブレースでくくることもできるんだっけ []
[ここ壊れてます]

102 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 18:18:04 ID:S3LfaCKT.net]
>>98
人類最底辺のゴミPHPoorに謝罪など必要ない
奴らに必要なのは死あるのみ

103 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 18:22:33 ID:0UVfIqO/.net]
PHP使う人ってなんであんなアヘアヘ君ばかりなの?昔からああなの?

104 名前:デフォルトの名無しさん [2022/04/19(火) 22:14:20.79 ID:OM/gUtcz.net]
>>96
けっこう同意。

105 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 22:34:55.70 ID:S3LfaCKT.net]
>>102
障害者手帳持ちでも書けるとガイジを集めたから
ガイジが作ってガイジが保守して、真人間は近寄らないか万一深淵を覗いてもすぐに逃げるから
ガイジだけが残った
それがPoopHPoor

106 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 22:35:00.77 ID:cHj01Kom.net]
言語の良し悪しと普及率はあんまり関係ないってことだな

107 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 23:10:14 ID:+gF6CcFv.net]
良し悪しは文法だけでは決まらないしね
全部作り直すとかできないから、まず既存資産との互換性とかがめちゃくちゃ重要だしなあ



108 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 23:14:51.60 ID:ggKFiwdh.net]
Haskellはとてもいい言語だと思うけど、まあ今後も広くは普及しないだろうね

109 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 00:49:02.14 ID:sjxPrwDV.net]
Java(8以前)とPHPとVB.NETは案件も人材もロクなのにあたったことないし関わりたくない

110 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 07:57:17.73 ID:6jKBlzMv.net]
障害者雇用枠だししゃーない

111 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 13:03:13.18 ID:eR+oT63l.net]
小一時間でゲームをつくる──7つの定番ゲームのプログラミングを体験 (WEB+DB PRESS plus)
https://www.あmazon.co.jp/dp/4297127458

この本面白いね。
コンソールに出すアスキーアートだけでゲームを作るところと最小限の工程ごとに動作確認するところがユニークだ。

誰かこのなかのどれかのゲームをGoやRustに移植してgithubあたりにアップしてくれないか?
その出来栄えでその言語の優劣を競うというのはどうだろうか?

112 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 15:11:07.62 ID:6jKBlzMv.net]
コード書けない奴が何の優劣を語るんだ?
LOC?

113 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 16:00:31 ID:4qIYThBV.net]
>>110
urlミスってるよ

114 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 16:19:25.49 ID:uTpu7tmC.net]
コードが書けないやつだからこそnull安全なんてほとんど誰もありがたかってない事を上のように一生懸命言い出す

115 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 16:51:22.63 ID:OCnLwZQm.net]
>>113
これだからGo信者は… 本当に現代人?

116 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 11:50:52.34 ID:3B58U+9M.net]
          /:|.              /:|
        /  .:::|            /  :::|
        |  ...:::::|           /u  ::::|
       i  ノ (   ̄ ̄⌒゙゙^――/   ::::::::|
      /_,, ⌒  u   . _        ::::::::::::\
      /  \\゙.l |  / ::// ̄● ̄ ̄/  ::::::::\
      |● ::::::|  . | | / :::: /   :::::::::://u  :::::::\
     /i,.\_:::::::|    u::::: /   ::::::::://     :::::::::\
    / \( (\|.  ::::::.   // ̄) )           :::::::::\  
    / u  ) )_ ^  ^  ̄ ̄ ,,、( (       i し./ :::::::::::::\
   / / /__,,____,/ ̄ \  ))u      ノ (  ::::::::::::::::::::\
  /  ヽ |.. | /└└└└\../\((\     '~ヽ   :::::::::::::::::/
  \ ) し ∨.|llllllllllllllllllllllllllllllll∨lllll| ) /  /     :::::::::::::::::/
   \⌒ | |.|llllllllllll;/⌒/⌒  〕         ::u::::::::::::::::/
     |  | |.|lllllllll;   ./ .   . |        ::::::::::::::::::::/
     .|  | |.|llllll|′  /    
     .| | |.|llll|    |     .∧〔   /   u:::::::::::::|
      ヽ}.∧lll    |    ../ /  /   :::::::::::::::::\
       i/| \┌┌┌┌┌ /. / /:::     :::::::::::::::::i
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄| i/::::::::::: u          i
        ヽー─¬ー〜ー――i | :::::::::::::

117 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 13:08:35.07 ID:HvU2DlQ2.net]
>>93
Goは言わば並列対応スクリプトC言語だからだよ
だから今どきの言語と異なりC言語のように地道に記述量が増えるとともに安全軽視で自己責任



118 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 14:17:09 ID:/LgGWJm6.net]
男の人って気持ち悪い…
どうして少女をそんなに汚したがるの?
お母さんに悪いとわおもわないの?

119 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 15:09:04.59 ID:W8PBxmKK.net]
そらごらんなさいRustの悪影響を

120 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 15:43:32.20 ID:8Ud760iv.net]
アイGoー

121 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 15:52:10.80 ID:aUxqSgEH.net]
Rustならシンプルに分かりやすく書きやすい上に
うっかりミスもコンパイルエラーで検出されるから良いよな

122 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 17:31:45.76 ID:rHXUR/xS.net]
Rustの話は専用の隔離部屋でお願いします

Rust part14
https://mevius.5ch.net/test/read.cgi/tech/1644596656/

次スレタイトルからRustの文字を削除してください

123 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 17:40:50.87 ID:d9Ay4jJ1.net]
比較の話だからここでいいんじゃね
そもそもアンチ側が悪影響とか言い出してきっかけ作っているし
アンチを各言語本スレへ誘導するのはダメだろ

124 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 17:59:45.68 ID:rHXUR/xS.net]
比較の話も含めて >>121 の専用スレでやって下さい

125 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 18:05:48.23 ID:l2zLdNmc.net]
言語同士の比較はここでやる
Rust単独の話は向こうでやる
それだけだ

以上

126 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 18:32:35.61 ID:LoXMgsHc.net]
むしろここが隔離スレだと思ってた

127 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 18:51:22.79 ID:RkfSdsaD.net]
ここは次世代言語スレ
次世代言語の話題や機能や比較に議論まで何でもOK
各言語の本スレに迷惑がかからないようここで行なうこと推奨



128 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 20:07:59.60 ID:QQ8u361U.net]
>>114
このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。

例えば、代表的なNull安全言語は、RustがまさにそうだがOptionを使うからNullなんて無いのだが、matchを書いたとしてもNoneで
異常を処理しないような事を書いてしまえば、Nullで落ちたりするプログラムと大して変わらない。unwrapを連打するようなプログラムは
論外だとしても、それはNullをチェックしないプログラムと何ら変わりない。
Qitaの有害記事、「null安全でない言語は、もはやレガシー言語だ」のせいで、このような思想を植え付けられている人があまりに多い。
大切なことは異常系をきちんと処理できているかということで、言い訳では「ちゃんとやるのを忘れているかもしれないのでは」という指摘に
コンパイルが通らないだの、Rustでしかそうならない事を都合が悪いのか、短い考察だけで反論しています。
コンパイルが通ろうと通らななかろうと、”ちゃんとやるのを忘れて”いれば同じです。

また、たしかにNull安全は、

129 名前:Java/KotlinのようなNullが奥深くに根ずく言語であれば恩恵は大きいでしょう。しかしGoのような言語は
扱うデータはstructであり、Nullが無い訳ではないが、奥深くに潜む”参照”データー構造を設計思想から良しとはしていない言語である。
一部の言語設計者ではリンクリストのような、非効率で何も考えてないデーター構造を逆にレガシーと呼びます。
もちろん、if err != nil { }が古臭く邪魔で嫌、あちこちに現れるので受け付けないという意見は分かるし、これを簡略化するために
Null条件演算子やNull合体演算子が欲しいという要望もわかる。しかし、それが導入された、もしくはされていないからといって
それはNull安全言語とは厳密には関係ない。
[]
[ここ壊れてます]

130 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 20:11:11.38 ID:LoXMgsHc.net]
>>127
> このように誰もGoのことなど挙げてないのに
>>72,74,80,82

131 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 20:19:15.04 ID:j60ekrh9.net]
>>127
>このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。

このように誰もRustのことなど挙げてないのに、Goの超ビギナーの信者は異様に敵視を行う。

以下略

132 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 21:14:28.53 ID:kTS22GXO.net]
>>127
それは君の主張が間違っている
Rustではある型Tの変数に対してnull相当(nilやundefined等含む)を代入出来ない
そのため君の主張する処理し忘れがあってもnull相当を扱ってしまう危険性は起きない

133 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 21:15:47.90 ID:8Ud760iv.net]
ほらまたTとか言い出したこれだからRusterは

134 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 21:26:57.05 ID:LoXMgsHc.net]
Goだって最近Tって書けるようになったでしょ
スレタイの言語皆Tって書くのでは

135 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 21:27:36.40 ID:SndU/Xk6.net]
・Rustにはnullという概念のものが存在しない
・存在するかしないかを示したいならば代数的データ型であるenum Optionを用いる
・扱う型をT型とするとOption<T>型となるため型が異なり処理を忘れてミスすることも起きようがない

136 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 22:33:53.95 ID:+7uwIW+r.net]
Nim, Zig, Rust, C++でコンパイル時に実行されるコードを比較した記事。
https://castillodel.github.io/compile-time-evaluation/

137 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 22:39:37.71 ID:8Ud760iv.net]
>>133
糞バカ中世ジャップランド土人どもはOption.get()するだけだぞ



138 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 22:55:52.73 ID:hBTlXYXK.net]
>>135
Optionにget()メソッドはありません

139 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 23:17:57 ID:58EnvgFJ.net]
ほぼOptionのNoneと言ってるのに、null相当(nilやundefined等含む)を代入とか、Option<T>型となるため型が異なりとか
もう誤魔化して言いくるめる気にしか見えない。。。
どれだけNull安全で助かってるか、なんてコードを書いてればそんなに無いでしょ。確かにNullが無いのだから、Nullのような状態で
クラッシュ/panicする事態は減るでしょう。コンパイルが通った時点でNull安全性が保障されるなんてのも、今どきの多くの言語は
外付けながらLint系の警告をしてくれます。もちろん言語に統合されてない後付けで「美しくない」とかそういうのはあるでしょうが。
そして手続き型プログラミングを初めて数年の初心者なら沢山のミスを犯すのかもしれんけどさ、そもそも宣言と同時に初期化を
する重要性は、関数型プログラミングでも少しでもしていれば分かるはずでそんな経験もなく、旧Java系なんかからRustへ移ったら
感嘆するように見えるのかもしれんが、そんなしつこく言うほど便利な場面って具体的にどういう時よ?逆にさ?
次はNan安全言語とか、-+Inf安全言語とかやるのかい?

140 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 23:28:25.00 ID:emsRX1XQ.net]
Rustのアドバンテージを認めざるを得ないから認めつつ
それでも批判したいから言い掛かり長文
みっともない

141 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 23:47:03.05 ID:Q5xBjMYc.net]
>>137 その通りだからきみはJavaとかHaskellとか使えばいいと思うよ


Rustの良いところを教えてほしいなら普通に指導を乞えばいいのに

142 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 00:11:43 ID:BeccjQpB.net]
null安全をlinterが警告してくれる言語なんてあったっけ?

143 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 00:18:27 ID:QUxpZq2Z.net]
>>140
未初期化変数へのアクセスのことを言ってそうな気がする
それ以外のケースでnullの問題踏んだことない人なのかもしれない

144 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 02:18:54.02 ID:KwomhEH1.net]
>>134
Goが無いのはGoでは不可能なの?

145 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:02:25.23 ID:7P+21PvJ.net]
Rustにいいところなんてないよ
面倒なだけ

146 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:09:03.51 ID:gIl1LNdJ.net]
色々とプログラミングが楽で快適だからRust使ってるわ

147 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 18:41:08.80 ID:0TWFpVQa.net]
普通に煽りじゃない反論ができない時点でRustニワカのキモさが良くわかる。Null安全を全否定してないのに
「指導を乞え」とか「JavaとかHaskellとか使え」とか「それ以外のケースでnullの問題踏んだことない」とか
Nullのような状態で クラッシュ/panicする事態は減るって書いてるのに文字も読めもしない。
”それほど強調して、気持ち悪く粘着してNull安全言語なんて宣伝してることがRustのために良くない”って話だよ
言語の悪口を言ってるんじゃない、おまえのようなキモくて何も答えられないで煽りだけクズを論ってんの



148 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:03:56 ID:EyWh3ott.net]
自分でこれが煽りじゃない反論だと思ってるならヤバい

149 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:15:01.24 ID:J7veDPz7.net]
Rustより良い言語が出現したらそれを検討する予定
今のところそういう言語がないためメイン言語はRustのまま






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef