スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/
探検
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/04/17(日) 17:52:35.38ID:KG26dcth2022/04/18(月) 14:49:14.45ID:pGCdIhc3
「プログラミング言語によるセマンティクスと最終的に生成されるコードは全く無関係」そんな訳ない、RustはLLVMのIRを前提に
コードが吐かれるし、コードのリンケージをアトリビュート指定できる。C言語だって同様だし、むしろ、ハードウェアよりの低レベルな
システムプログラミングが可能な言語であれば、生成されるバイナリが厳密に言語の「セマンティック」を決める。
例えば今どきのCPUには分岐予測命令があるが、これに対応するstd::intrinsics::likelyのような分岐予測にヒントを与える、
セマンティクスはCPUがサポートされていれば100%生成されるバイナリがそうなる事を望む。無関係などありえない
コードが吐かれるし、コードのリンケージをアトリビュート指定できる。C言語だって同様だし、むしろ、ハードウェアよりの低レベルな
システムプログラミングが可能な言語であれば、生成されるバイナリが厳密に言語の「セマンティック」を決める。
例えば今どきのCPUには分岐予測命令があるが、これに対応するstd::intrinsics::likelyのような分岐予測にヒントを与える、
セマンティクスはCPUがサポートされていれば100%生成されるバイナリがそうなる事を望む。無関係などありえない
2022/04/18(月) 14:53:46.39ID:ykvGLY9n
2022/04/18(月) 14:57:34.06ID:2ZPl5Bs7
>>45
その言語のセマンティクスとしてimmutableで渡すケースでも
値をポインタで渡すか値自体を渡すかはどちらでも構わないから言語のセマンティクスとは別問題
もっと顕著にわかりやすい例
構造体を一つ返す関数があったとする
小さい構造体なら値を返すだろうが
大きな構造体なら領域を用意してそこに書き込んでそのポインタを返すかもしれない
あるいは関数を呼ぶ側が領域を用意してそのポインタを裏引数として渡してそこへ返す値を書き込むかもしれない
このように3種類考えられるが呼ぶ側と呼ばれる側で一貫していれば目的を果たす
プログラマーはその生成コードが3種類のどれになるかを把握する必要はない
つまりそこで明白にレイヤーが分離される
その言語のセマンティクスとしてimmutableで渡すケースでも
値をポインタで渡すか値自体を渡すかはどちらでも構わないから言語のセマンティクスとは別問題
もっと顕著にわかりやすい例
構造体を一つ返す関数があったとする
小さい構造体なら値を返すだろうが
大きな構造体なら領域を用意してそこに書き込んでそのポインタを返すかもしれない
あるいは関数を呼ぶ側が領域を用意してそのポインタを裏引数として渡してそこへ返す値を書き込むかもしれない
このように3種類考えられるが呼ぶ側と呼ばれる側で一貫していれば目的を果たす
プログラマーはその生成コードが3種類のどれになるかを把握する必要はない
つまりそこで明白にレイヤーが分離される
2022/04/18(月) 14:59:44.25ID:X0td+574
>>33
もし文字列のベクタに文字列を追加する関数があったとき文字列が参照渡しでその関数が実行された後もその文字列が読まれていると、その関数は文字列をmoveすることができずコピーしなくてはならなくなるからじゃないかな。
メモリコピーは遅いから絶対に許さない人にはデフォルトがmoveのほうがいいのかも。
もし文字列のベクタに文字列を追加する関数があったとき文字列が参照渡しでその関数が実行された後もその文字列が読まれていると、その関数は文字列をmoveすることができずコピーしなくてはならなくなるからじゃないかな。
メモリコピーは遅いから絶対に許さない人にはデフォルトがmoveのほうがいいのかも。
2022/04/18(月) 15:02:16.44ID:pGCdIhc3
2022/04/18(月) 15:06:33.88ID:i02G9WD5
2022/04/18(月) 15:10:05.22ID:uPETy31e
2022/04/18(月) 15:19:05.87ID:pGCdIhc3
>>52
「生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう」
え?RustにもちゃんとFFIなどextern "C" {}ブロックがあるでしょ?生成コードは言語仕様で定められているし、このようなデータの受け渡しは
参照や可変参照の制限、ボローチェックなどがOFFになる。C言語やD言語やNimも同様でしょ、これが出来ない言語はシステムプランニングが
できる言語とは言えない。
「Rustで大きな構造体を返すと所有権を活用して驚きの最適化したコード」
どのような驚きのバイナリを生成しようと、例えばゲームエンジンのUnityなどでデータを渡す場合に所有権をRust側で保持したままのような
コードではUnityなどでメモリー管理されるので問題が出る。だから呼び出し間でどのようにデータを受け渡すか当然指定できる
「生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう」
え?RustにもちゃんとFFIなどextern "C" {}ブロックがあるでしょ?生成コードは言語仕様で定められているし、このようなデータの受け渡しは
参照や可変参照の制限、ボローチェックなどがOFFになる。C言語やD言語やNimも同様でしょ、これが出来ない言語はシステムプランニングが
できる言語とは言えない。
「Rustで大きな構造体を返すと所有権を活用して驚きの最適化したコード」
どのような驚きのバイナリを生成しようと、例えばゲームエンジンのUnityなどでデータを渡す場合に所有権をRust側で保持したままのような
コードではUnityなどでメモリー管理されるので問題が出る。だから呼び出し間でどのようにデータを受け渡すか当然指定できる
2022/04/18(月) 15:20:54.20ID:pGCdIhc3
>>53
何を言いたいのか1つも分かりません。。。あなたの勝ちでゴリラのようにマウンティングをしてください、どうぞ
何を言いたいのか1つも分かりません。。。あなたの勝ちでゴリラのようにマウンティングをしてください、どうぞ
2022/04/18(月) 15:33:12.79ID:mb/oYyn3
2022/04/18(月) 15:38:01.47ID:4qMH/RHY
2022/04/18(月) 15:47:16.94ID:pGCdIhc3
>>56
さっきからID変えて絡んでこなくてよいですよ、「extern "C"した時のみC言語の受け渡しインタフェースに従う」セマンティクスと生成コードが決まりますよね。
アホと言えば誰もしもが感情的になるわけではないです。FFI使わなければなんて話をしていませんし、「プログラミング言語によるセマンティクスと最終的に
生成されるコードは全く無関係」という理想論のような現実を知らないコンピューターサイエンス学科の学生のような言葉を否定してるだけです。
さっきからID変えて絡んでこなくてよいですよ、「extern "C"した時のみC言語の受け渡しインタフェースに従う」セマンティクスと生成コードが決まりますよね。
アホと言えば誰もしもが感情的になるわけではないです。FFI使わなければなんて話をしていませんし、「プログラミング言語によるセマンティクスと最終的に
生成されるコードは全く無関係」という理想論のような現実を知らないコンピューターサイエンス学科の学生のような言葉を否定してるだけです。
2022/04/18(月) 15:50:35.11ID:X0td+574
>>57
デフォルトで引数は不変が前提なので引数の型の定義を変更してポインタ渡しになったとしても基本的には挙動は変化しない。
引数のアドレスをとってれば挙動が変化するかもしれないけど、Nim言語は明示的に変数のアドレスをとることは危険な行為で自己責任でやれってことになってるから。
デフォルトで引数は不変が前提なので引数の型の定義を変更してポインタ渡しになったとしても基本的には挙動は変化しない。
引数のアドレスをとってれば挙動が変化するかもしれないけど、Nim言語は明示的に変数のアドレスをとることは危険な行為で自己責任でやれってことになってるから。
2022/04/18(月) 16:01:25.50ID:hx/TPiWJ
2022/04/18(月) 16:06:01.92ID:buwrQlsl
2022/04/18(月) 16:44:49.00ID:pNu/+WEX
2022/04/18(月) 17:00:59.75ID:VCJMEsmD
普通にカーネルのシステムコールするだけでC言語のFFI使ってますよ、DBアクセスするにもSQLiteでもMySQLでもPostgresqlでも使用してますし
TCP/IPスタックにアクセスするにもFFI使ってます、もしや特殊なのはあなたなのでは?ガン無視されて独立しているのは、そんな詰まらないことで
言い張るあなたなのでは?
TCP/IPスタックにアクセスするにもFFI使ってます、もしや特殊なのはあなたなのでは?ガン無視されて独立しているのは、そんな詰まらないことで
言い張るあなたなのでは?
2022/04/18(月) 17:04:14.33ID:uPETy31e
Kotlinみたいな出力先がjvmとjsとネイティブがあるのは
このひとの中でどう解釈するんだろ
このひとの中でどう解釈するんだろ
2022/04/18(月) 17:15:12.72ID:RntYGm+C
>>63
そんなことは誰でも知っているがこの流れとは無関係な話
各FFIはそのFFIの指定に従う
逆に言えば各言語の普通のコードではFFIなんて関係ないので各言語で完全に自由
だから引き数や戻り値のサイズに拠ってポインタ渡しか否か変わる言語もある
プログラマーはそれらを知らなくてもプログラミングできる
各言語が定めるセマンティクスだけ理解すればプログラミングできる
つまりセマンティクスと生成コードは完全に独立した別階層であり無関係
そんなことは誰でも知っているがこの流れとは無関係な話
各FFIはそのFFIの指定に従う
逆に言えば各言語の普通のコードではFFIなんて関係ないので各言語で完全に自由
だから引き数や戻り値のサイズに拠ってポインタ渡しか否か変わる言語もある
プログラマーはそれらを知らなくてもプログラミングできる
各言語が定めるセマンティクスだけ理解すればプログラミングできる
つまりセマンティクスと生成コードは完全に独立した別階層であり無関係
2022/04/18(月) 17:19:02.78ID:e4wxGEsZ
この話の終着点どこ?
「お前はアホだから黙れ」が立証できれば満足するの?
「お前はアホだから黙れ」が立証できれば満足するの?
2022/04/18(月) 17:22:10.87ID:Em1ZPrJL
>>33
変数の代入がmoveなのに関数引数の時だけ参照になるのは紛らわしくない?
変数の代入がmoveなのに関数引数の時だけ参照になるのは紛らわしくない?
2022/04/18(月) 17:33:30.39ID:4qMH/RHY
2022/04/18(月) 17:41:53.44ID:mz+noJnQ
2022/04/18(月) 17:58:50.26ID:Em1ZPrJL
>>68
変数の代入をデフォルトで参照にするとmutが絡んできたときにborrow checker周りでとてつもなく面倒になりそうな気がする
変数の代入をデフォルトで参照にするとmutが絡んできたときにborrow checker周りでとてつもなく面倒になりそうな気がする
2022/04/18(月) 21:11:14.78ID:CPWR65al
rustはライフタイム周りが途方もなく汚く見える
ウンコに触れたくない
ウンコに触れたくない
2022/04/18(月) 21:16:17.21ID:rznbXz+G
Rust「エラーには回復可能なエラーと回復不可能なエラーがあってResult<T, E>を使って~(長文)」
エンジニア「TとEって何だよ」「"?"って何?」「Box<dyn Error>って何?」
Golang「ほぼ
if err != nil {
panic(err)
}
でいい」
エンジニア「そうだったのか!」「やっと理解できた!」「Goって美しい」
何も言い返せんかったは・・・
エンジニア「TとEって何だよ」「"?"って何?」「Box<dyn Error>って何?」
Golang「ほぼ
if err != nil {
panic(err)
}
でいい」
エンジニア「そうだったのか!」「やっと理解できた!」「Goって美しい」
何も言い返せんかったは・・・
2022/04/18(月) 21:19:09.66ID:mtexizhK
twitterでイキってるバカをそんなに晒すなよ。
2022/04/18(月) 21:22:52.28ID:rznbXz+G
なおイキッテルのはRUSTERのもよう
GOに完全敗北してどんな気持ち?
GOに完全敗北してどんな気持ち?
2022/04/18(月) 21:26:10.80ID:WWHuTgUM
null安全じゃない言語とかこのご時世にあるんですね
2022/04/18(月) 21:39:04.08ID:CZqwnDNY
スレタイの言語でも
Goとかnilチェックするコードを書き忘れてもコンパイルエラー出ないね
安全じゃない言語多すぎ
Goとかnilチェックするコードを書き忘れてもコンパイルエラー出ないね
安全じゃない言語多すぎ
2022/04/18(月) 21:42:30.77ID:rznbXz+G
GOはポイント使わなければ安全だぞ
ただし初期値に0と””が入る
ただし初期値に0と””が入る
2022/04/18(月) 22:25:39.31ID:hd7uWEuw
2022/04/18(月) 22:30:25.57ID:Em1ZPrJL
>>74
これってgoありがたがる人を馬鹿にしたツイートじゃないの?
これってgoありがたがる人を馬鹿にしたツイートじゃないの?
2022/04/18(月) 22:44:34.76ID:edZlyGeP
Goはnil安全ではない
if err != nil {を書き忘れたり
return nil, nilしちゃっていると死ぬ
nil以外にも存在しない時の値で死ぬ
例えばstring.Index()は未発見時に-1を返す
返り値が-1かどうかチェック忘れてもコンパイルエラーとならない
そのまま-1を使ってしまい実行時に死ぬ
いずれのケースもRustではコンパイルエラーとなるため安全
Goは危険だらけ
if err != nil {を書き忘れたり
return nil, nilしちゃっていると死ぬ
nil以外にも存在しない時の値で死ぬ
例えばstring.Index()は未発見時に-1を返す
返り値が-1かどうかチェック忘れてもコンパイルエラーとならない
そのまま-1を使ってしまい実行時に死ぬ
いずれのケースもRustではコンパイルエラーとなるため安全
Goは危険だらけ
2022/04/18(月) 22:55:48.31ID:z7JFVAjx
分かりにくい人「円周率は3.141592...と無限に続く数字で、よく近似の3.14が使われます。」
視聴者「何で3桁なの?」「2の後は何なんだよ」「近似って何?」
分かりやすい人「円周率って色々言われてるけど、実は3なんです!」
視聴者「そうだったのか!」「やっと理解できた!」「数学って美しい」
https://twitter.com/zugaaanzubababa/status/1506569845693100035
https://twitter.com/5chan_nel (5ch newer account)
視聴者「何で3桁なの?」「2の後は何なんだよ」「近似って何?」
分かりやすい人「円周率って色々言われてるけど、実は3なんです!」
視聴者「そうだったのか!」「やっと理解できた!」「数学って美しい」
https://twitter.com/zugaaanzubababa/status/1506569845693100035
https://twitter.com/5chan_nel (5ch newer account)
2022/04/18(月) 23:02:13.65ID:WPqVzB8b
Goでは「値が存在しないこと」を安全に表す方法がないことが敗因
RustではOption<T>型のNoneで安全に表せるところ
RustではOption<T>型のNoneで安全に表せるところ
2022/04/19(火) 00:46:26.38ID:S3LfaCKT
なおシェアはGOが圧勝したもよう
RUSTボーイズは一生夢見て低賃金でこき使われる童貞野郎
RUSTボーイズは一生夢見て低賃金でこき使われる童貞野郎
2022/04/19(火) 01:34:09.77ID:VnIrO7oP
goはCがシンプルで使いやすいと思う人向けの言語じゃないかと思う
2022/04/19(火) 01:36:19.32ID:VnIrO7oP
言語機能をモリモリにしたい誘惑に抗ってランタイムを充実させるという判断できる自制心はすごいと思う
2022/04/19(火) 01:53:00.90ID:tGbJiwG7
Ruby 3.0 のJIT は、MJIT で、
Ruby VM のバイト(中間)コードを、C コードに変換してから、
Cコンパイラでネイティブコードに変換していた
Ruby 3.1 のJIT は、YJIT で、
バイトコードから直接ネイティブコードに変換する。
ただし、x86_64 のみに対応
条件分岐があっても、10回実行した分岐だけを変換する。
実行されない分岐は変換しない
遅延変換・Lazy Basic Block Versioning(LBBV)
これで、Rails のプロジェクトが、20% ほど速くなったらしい
Ruby VM のバイト(中間)コードを、C コードに変換してから、
Cコンパイラでネイティブコードに変換していた
Ruby 3.1 のJIT は、YJIT で、
バイトコードから直接ネイティブコードに変換する。
ただし、x86_64 のみに対応
条件分岐があっても、10回実行した分岐だけを変換する。
実行されない分岐は変換しない
遅延変換・Lazy Basic Block Versioning(LBBV)
これで、Rails のプロジェクトが、20% ほど速くなったらしい
2022/04/19(火) 07:43:43.07ID:S3LfaCKT
ゴミが20%早くなかったからってどうしたってゆうね
2022/04/19(火) 07:46:59.67ID:3aREeURj
>>81
今さらゆとり
今さらゆとり
2022/04/19(火) 07:51:59.99ID:jVj3oT5A
>>87
でもRuby on railsってまだまだ使われてるよね?
有名どころでも、クックパッド、Airbnb、Gunosy、クラウドワークス、
食べログ、価格.com、Twitter、 Hulu、 GitHub
でもRuby on railsってまだまだ使われてるよね?
有名どころでも、クックパッド、Airbnb、Gunosy、クラウドワークス、
食べログ、価格.com、Twitter、 Hulu、 GitHub
2022/04/19(火) 08:03:56.92ID:J98o16eP
>>81
偽物を「実は」という詐欺師。
偽物を「実は」という詐欺師。
2022/04/19(火) 09:17:26.14ID:ipOfh3Xt
92デフォルトの名無しさん
2022/04/19(火) 09:29:29.07ID:Qc9Zpwhc2022/04/19(火) 09:35:08.80ID:+uXVuu7q
2022/04/19(火) 10:22:52.12ID:NH+MJ17E
R○byは業界のSPA移行とPythonブームによって思いのほか綺麗に消えてくれたのは良かった
まあPHPなんかに比べたらまだ「恥を知る」人間が多かったんだろうね
まあPHPなんかに比べたらまだ「恥を知る」人間が多かったんだろうね
2022/04/19(火) 11:21:50.97ID:XEvBz8Zw
2022/04/19(火) 12:34:56.06ID:gbQ3J7tR
2022/04/19(火) 12:39:13.85ID:SdA/iojO
もちろんプログラム記述方式としてはPythonは最悪
あれが普及するのは害悪しかない
あれが普及するのは害悪しかない
2022/04/19(火) 13:49:45.55ID:jVj3oT5A
99デフォルトの名無しさん
2022/04/19(火) 14:55:17.88ID:WBt0dmCX インデントでスコープ区切るのあんまり好きじゃない
100デフォルトの名無しさん
2022/04/19(火) 16:35:48.82ID:GlY6GAKK Haskellもインデントでスコープを区切ってた気がするけど一応ブレースでくくることもできるんだっけ
101デフォルトの名無しさん
2022/04/19(火) 18:18:04.08ID:S3LfaCKT102デフォルトの名無しさん
2022/04/19(火) 18:22:33.15ID:0UVfIqO/ PHP使う人ってなんであんなアヘアヘ君ばかりなの?昔からああなの?
103デフォルトの名無しさん
2022/04/19(火) 22:14:20.79ID:OM/gUtcz >>96
けっこう同意。
けっこう同意。
104デフォルトの名無しさん
2022/04/19(火) 22:34:55.70ID:S3LfaCKT105デフォルトの名無しさん
2022/04/19(火) 22:35:00.77ID:cHj01Kom 言語の良し悪しと普及率はあんまり関係ないってことだな
106デフォルトの名無しさん
2022/04/19(火) 23:10:14.27ID:+gF6CcFv 良し悪しは文法だけでは決まらないしね
全部作り直すとかできないから、まず既存資産との互換性とかがめちゃくちゃ重要だしなあ
全部作り直すとかできないから、まず既存資産との互換性とかがめちゃくちゃ重要だしなあ
107デフォルトの名無しさん
2022/04/19(火) 23:14:51.60ID:ggKFiwdh Haskellはとてもいい言語だと思うけど、まあ今後も広くは普及しないだろうね
108デフォルトの名無しさん
2022/04/20(水) 00:49:02.14ID:sjxPrwDV Java(8以前)とPHPとVB.NETは案件も人材もロクなのにあたったことないし関わりたくない
109デフォルトの名無しさん
2022/04/20(水) 07:57:17.73ID:6jKBlzMv 障害者雇用枠だししゃーない
110デフォルトの名無しさん
2022/04/20(水) 13:03:13.18ID:eR+oT63l 小一時間でゲームをつくる──7つの定番ゲームのプログラミングを体験 (WEB+DB PRESS plus)
https://www.あmazon.co.jp/dp/4297127458
この本面白いね。
コンソールに出すアスキーアートだけでゲームを作るところと最小限の工程ごとに動作確認するところがユニークだ。
誰かこのなかのどれかのゲームをGoやRustに移植してgithubあたりにアップしてくれないか?
その出来栄えでその言語の優劣を競うというのはどうだろうか?
https://www.あmazon.co.jp/dp/4297127458
この本面白いね。
コンソールに出すアスキーアートだけでゲームを作るところと最小限の工程ごとに動作確認するところがユニークだ。
誰かこのなかのどれかのゲームをGoやRustに移植してgithubあたりにアップしてくれないか?
その出来栄えでその言語の優劣を競うというのはどうだろうか?
111デフォルトの名無しさん
2022/04/20(水) 15:11:07.62ID:6jKBlzMv コード書けない奴が何の優劣を語るんだ?
LOC?
LOC?
112デフォルトの名無しさん
2022/04/20(水) 16:00:31.94ID:4qIYThBV >>110
urlミスってるよ
urlミスってるよ
113デフォルトの名無しさん
2022/04/20(水) 16:19:25.49ID:uTpu7tmC コードが書けないやつだからこそnull安全なんてほとんど誰もありがたかってない事を上のように一生懸命言い出す
114デフォルトの名無しさん
2022/04/20(水) 16:51:22.63ID:OCnLwZQm >>113
これだからGo信者は… 本当に現代人?
これだからGo信者は… 本当に現代人?
115デフォルトの名無しさん
2022/04/21(木) 11:50:52.34ID:3B58U+9M /:|. /:|
/ .:::| / :::|
| ...:::::| /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 | :::::::::::::
/ .:::| / :::|
| ...:::::| /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 | :::::::::::::
116デフォルトの名無しさん
2022/04/21(木) 13:08:35.07ID:HvU2DlQ2117デフォルトの名無しさん
2022/04/21(木) 14:17:09.70ID:/LgGWJm6 男の人って気持ち悪い…
どうして少女をそんなに汚したがるの?
お母さんに悪いとわおもわないの?
どうして少女をそんなに汚したがるの?
お母さんに悪いとわおもわないの?
118デフォルトの名無しさん
2022/04/21(木) 15:09:04.59ID:W8PBxmKK そらごらんなさいRustの悪影響を
119デフォルトの名無しさん
2022/04/21(木) 15:43:32.20ID:8Ud760iv アイGoー
120デフォルトの名無しさん
2022/04/21(木) 15:52:10.80ID:aUxqSgEH Rustならシンプルに分かりやすく書きやすい上に
うっかりミスもコンパイルエラーで検出されるから良いよな
うっかりミスもコンパイルエラーで検出されるから良いよな
121デフォルトの名無しさん
2022/04/21(木) 17:31:45.76ID:rHXUR/xS Rustの話は専用の隔離部屋でお願いします
Rust part14
https://mevius.5ch.net/test/read.cgi/tech/1644596656/
次スレタイトルからRustの文字を削除してください
Rust part14
https://mevius.5ch.net/test/read.cgi/tech/1644596656/
次スレタイトルからRustの文字を削除してください
122デフォルトの名無しさん
2022/04/21(木) 17:40:50.87ID:d9Ay4jJ1 比較の話だからここでいいんじゃね
そもそもアンチ側が悪影響とか言い出してきっかけ作っているし
アンチを各言語本スレへ誘導するのはダメだろ
そもそもアンチ側が悪影響とか言い出してきっかけ作っているし
アンチを各言語本スレへ誘導するのはダメだろ
123デフォルトの名無しさん
2022/04/21(木) 17:59:45.68ID:rHXUR/xS 比較の話も含めて >>121 の専用スレでやって下さい
124デフォルトの名無しさん
2022/04/21(木) 18:05:48.23ID:l2zLdNmc 言語同士の比較はここでやる
Rust単独の話は向こうでやる
それだけだ
以上
Rust単独の話は向こうでやる
それだけだ
以上
125デフォルトの名無しさん
2022/04/21(木) 18:32:35.61ID:LoXMgsHc むしろここが隔離スレだと思ってた
126デフォルトの名無しさん
2022/04/21(木) 18:51:22.79ID:RkfSdsaD ここは次世代言語スレ
次世代言語の話題や機能や比較に議論まで何でもOK
各言語の本スレに迷惑がかからないようここで行なうこと推奨
次世代言語の話題や機能や比較に議論まで何でもOK
各言語の本スレに迷惑がかからないようここで行なうこと推奨
127デフォルトの名無しさん
2022/04/21(木) 20:07:59.60ID:QQ8u361U >>114
このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。
例えば、代表的なNull安全言語は、RustがまさにそうだがOptionを使うからNullなんて無いのだが、matchを書いたとしてもNoneで
異常を処理しないような事を書いてしまえば、Nullで落ちたりするプログラムと大して変わらない。unwrapを連打するようなプログラムは
論外だとしても、それはNullをチェックしないプログラムと何ら変わりない。
Qitaの有害記事、「null安全でない言語は、もはやレガシー言語だ」のせいで、このような思想を植え付けられている人があまりに多い。
大切なことは異常系をきちんと処理できているかということで、言い訳では「ちゃんとやるのを忘れているかもしれないのでは」という指摘に
コンパイルが通らないだの、Rustでしかそうならない事を都合が悪いのか、短い考察だけで反論しています。
コンパイルが通ろうと通らななかろうと、”ちゃんとやるのを忘れて”いれば同じです。
また、たしかにNull安全は、Java/KotlinのようなNullが奥深くに根ずく言語であれば恩恵は大きいでしょう。しかしGoのような言語は
扱うデータはstructであり、Nullが無い訳ではないが、奥深くに潜む”参照”データー構造を設計思想から良しとはしていない言語である。
一部の言語設計者ではリンクリストのような、非効率で何も考えてないデーター構造を逆にレガシーと呼びます。
もちろん、if err != nil { }が古臭く邪魔で嫌、あちこちに現れるので受け付けないという意見は分かるし、これを簡略化するために
Null条件演算子やNull合体演算子が欲しいという要望もわかる。しかし、それが導入された、もしくはされていないからといって
それはNull安全言語とは厳密には関係ない。
このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。
例えば、代表的なNull安全言語は、RustがまさにそうだがOptionを使うからNullなんて無いのだが、matchを書いたとしてもNoneで
異常を処理しないような事を書いてしまえば、Nullで落ちたりするプログラムと大して変わらない。unwrapを連打するようなプログラムは
論外だとしても、それはNullをチェックしないプログラムと何ら変わりない。
Qitaの有害記事、「null安全でない言語は、もはやレガシー言語だ」のせいで、このような思想を植え付けられている人があまりに多い。
大切なことは異常系をきちんと処理できているかということで、言い訳では「ちゃんとやるのを忘れているかもしれないのでは」という指摘に
コンパイルが通らないだの、Rustでしかそうならない事を都合が悪いのか、短い考察だけで反論しています。
コンパイルが通ろうと通らななかろうと、”ちゃんとやるのを忘れて”いれば同じです。
また、たしかにNull安全は、Java/KotlinのようなNullが奥深くに根ずく言語であれば恩恵は大きいでしょう。しかしGoのような言語は
扱うデータはstructであり、Nullが無い訳ではないが、奥深くに潜む”参照”データー構造を設計思想から良しとはしていない言語である。
一部の言語設計者ではリンクリストのような、非効率で何も考えてないデーター構造を逆にレガシーと呼びます。
もちろん、if err != nil { }が古臭く邪魔で嫌、あちこちに現れるので受け付けないという意見は分かるし、これを簡略化するために
Null条件演算子やNull合体演算子が欲しいという要望もわかる。しかし、それが導入された、もしくはされていないからといって
それはNull安全言語とは厳密には関係ない。
128デフォルトの名無しさん
2022/04/21(木) 20:11:11.38ID:LoXMgsHc129デフォルトの名無しさん
2022/04/21(木) 20:19:15.04ID:j60ekrh9 >>127
>このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。
このように誰もRustのことなど挙げてないのに、Goの超ビギナーの信者は異様に敵視を行う。
以下略
>このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。
このように誰もRustのことなど挙げてないのに、Goの超ビギナーの信者は異様に敵視を行う。
以下略
130デフォルトの名無しさん
2022/04/21(木) 21:14:28.53ID:kTS22GXO >>127
それは君の主張が間違っている
Rustではある型Tの変数に対してnull相当(nilやundefined等含む)を代入出来ない
そのため君の主張する処理し忘れがあってもnull相当を扱ってしまう危険性は起きない
それは君の主張が間違っている
Rustではある型Tの変数に対してnull相当(nilやundefined等含む)を代入出来ない
そのため君の主張する処理し忘れがあってもnull相当を扱ってしまう危険性は起きない
131デフォルトの名無しさん
2022/04/21(木) 21:15:47.90ID:8Ud760iv ほらまたTとか言い出したこれだからRusterは
132デフォルトの名無しさん
2022/04/21(木) 21:26:57.05ID:LoXMgsHc Goだって最近Tって書けるようになったでしょ
スレタイの言語皆Tって書くのでは
スレタイの言語皆Tって書くのでは
133デフォルトの名無しさん
2022/04/21(木) 21:27:36.40ID:SndU/Xk6 ・Rustにはnullという概念のものが存在しない
・存在するかしないかを示したいならば代数的データ型であるenum Optionを用いる
・扱う型をT型とするとOption<T>型となるため型が異なり処理を忘れてミスすることも起きようがない
・存在するかしないかを示したいならば代数的データ型であるenum Optionを用いる
・扱う型をT型とするとOption<T>型となるため型が異なり処理を忘れてミスすることも起きようがない
134デフォルトの名無しさん
2022/04/21(木) 22:33:53.95ID:+7uwIW+r Nim, Zig, Rust, C++でコンパイル時に実行されるコードを比較した記事。
https://castillodel.github.io/compile-time-evaluation/
https://castillodel.github.io/compile-time-evaluation/
135デフォルトの名無しさん
2022/04/21(木) 22:39:37.71ID:8Ud760iv >>133
糞バカ中世ジャップランド土人どもはOption.get()するだけだぞ
糞バカ中世ジャップランド土人どもはOption.get()するだけだぞ
136デフォルトの名無しさん
2022/04/21(木) 22:55:52.73ID:hBTlXYXK >>135
Optionにget()メソッドはありません
Optionにget()メソッドはありません
137デフォルトの名無しさん
2022/04/21(木) 23:17:57.08ID:58EnvgFJ ほぼOptionのNoneと言ってるのに、null相当(nilやundefined等含む)を代入とか、Option<T>型となるため型が異なりとか
もう誤魔化して言いくるめる気にしか見えない。。。
どれだけNull安全で助かってるか、なんてコードを書いてればそんなに無いでしょ。確かにNullが無いのだから、Nullのような状態で
クラッシュ/panicする事態は減るでしょう。コンパイルが通った時点でNull安全性が保障されるなんてのも、今どきの多くの言語は
外付けながらLint系の警告をしてくれます。もちろん言語に統合されてない後付けで「美しくない」とかそういうのはあるでしょうが。
そして手続き型プログラミングを初めて数年の初心者なら沢山のミスを犯すのかもしれんけどさ、そもそも宣言と同時に初期化を
する重要性は、関数型プログラミングでも少しでもしていれば分かるはずでそんな経験もなく、旧Java系なんかからRustへ移ったら
感嘆するように見えるのかもしれんが、そんなしつこく言うほど便利な場面って具体的にどういう時よ?逆にさ?
次はNan安全言語とか、-+Inf安全言語とかやるのかい?
もう誤魔化して言いくるめる気にしか見えない。。。
どれだけNull安全で助かってるか、なんてコードを書いてればそんなに無いでしょ。確かにNullが無いのだから、Nullのような状態で
クラッシュ/panicする事態は減るでしょう。コンパイルが通った時点でNull安全性が保障されるなんてのも、今どきの多くの言語は
外付けながらLint系の警告をしてくれます。もちろん言語に統合されてない後付けで「美しくない」とかそういうのはあるでしょうが。
そして手続き型プログラミングを初めて数年の初心者なら沢山のミスを犯すのかもしれんけどさ、そもそも宣言と同時に初期化を
する重要性は、関数型プログラミングでも少しでもしていれば分かるはずでそんな経験もなく、旧Java系なんかからRustへ移ったら
感嘆するように見えるのかもしれんが、そんなしつこく言うほど便利な場面って具体的にどういう時よ?逆にさ?
次はNan安全言語とか、-+Inf安全言語とかやるのかい?
138デフォルトの名無しさん
2022/04/21(木) 23:28:25.00ID:emsRX1XQ Rustのアドバンテージを認めざるを得ないから認めつつ
それでも批判したいから言い掛かり長文
みっともない
それでも批判したいから言い掛かり長文
みっともない
139デフォルトの名無しさん
2022/04/21(木) 23:47:03.05ID:Q5xBjMYc140デフォルトの名無しさん
2022/04/22(金) 00:11:43.18ID:BeccjQpB null安全をlinterが警告してくれる言語なんてあったっけ?
141デフォルトの名無しさん
2022/04/22(金) 00:18:27.86ID:QUxpZq2Z142デフォルトの名無しさん
2022/04/22(金) 02:18:54.02ID:KwomhEH1 >>134
Goが無いのはGoでは不可能なの?
Goが無いのはGoでは不可能なの?
143デフォルトの名無しさん
2022/04/22(金) 16:02:25.23ID:7P+21PvJ Rustにいいところなんてないよ
面倒なだけ
面倒なだけ
144デフォルトの名無しさん
2022/04/22(金) 16:09:03.51ID:gIl1LNdJ 色々とプログラミングが楽で快適だからRust使ってるわ
145デフォルトの名無しさん
2022/04/22(金) 18:41:08.80ID:0TWFpVQa 普通に煽りじゃない反論ができない時点でRustニワカのキモさが良くわかる。Null安全を全否定してないのに
「指導を乞え」とか「JavaとかHaskellとか使え」とか「それ以外のケースでnullの問題踏んだことない」とか
Nullのような状態で クラッシュ/panicする事態は減るって書いてるのに文字も読めもしない。
”それほど強調して、気持ち悪く粘着してNull安全言語なんて宣伝してることがRustのために良くない”って話だよ
言語の悪口を言ってるんじゃない、おまえのようなキモくて何も答えられないで煽りだけクズを論ってんの
「指導を乞え」とか「JavaとかHaskellとか使え」とか「それ以外のケースでnullの問題踏んだことない」とか
Nullのような状態で クラッシュ/panicする事態は減るって書いてるのに文字も読めもしない。
”それほど強調して、気持ち悪く粘着してNull安全言語なんて宣伝してることがRustのために良くない”って話だよ
言語の悪口を言ってるんじゃない、おまえのようなキモくて何も答えられないで煽りだけクズを論ってんの
146デフォルトの名無しさん
2022/04/22(金) 19:03:56.53ID:EyWh3ott 自分でこれが煽りじゃない反論だと思ってるならヤバい
147デフォルトの名無しさん
2022/04/22(金) 19:15:01.24ID:J7veDPz7 Rustより良い言語が出現したらそれを検討する予定
今のところそういう言語がないためメイン言語はRustのまま
今のところそういう言語がないためメイン言語はRustのまま
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か [ぐれ★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ [蚤の市★]
- 【福岡】「50歳くらいの男性が倒れている」血を吐いた状態で歩道に倒れている女性見つかる 女性はその後死亡 事件と事故の両面で捜査 [ぐれ★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 僕は反出生主義で安楽死合法化支持、そして人間の自由意志を否定してます ←どんな人物像?
- 【悲報】高齢者、マルチコピー機で自分の逮捕状を印刷してしまう [394133584]
- 女児(6)「大きくなったら素敵なお嫁さんになるー!」→女(24)「旦那様のチンポジュル!ジュルルル!グッポグッポ!」 [762037879]
- 【悲報】ゆたぼん、事故の治療費をネットで乞食して整形代に使ってる疑惑浮上wwwwwww
- 【高市リスク】京都のホテル大幅値下げ [115996789]
- 東京「女性の人権守ろう 子どもの人権守ろう 高齢者の人権守ろう」⇦成人男性ガン無視でワロタwwwwwwwwwww
