◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

次世代言語25 TypeScript Swift Go Kotlin Rust Nim YouTube動画>4本 ->画像>2枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1650185555/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

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

前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
http://2chb.net/r/tech/1647887021/
2デフォルトの名無しさん
2022/04/17(日) 19:32:21.39ID:9SWISpNV
セックスも男女関係を円滑にする一つの言語なんですよ。
3デフォルトの名無しさん
2022/04/17(日) 20:50:44.94ID:jKBP2PvH
プログラミング言語は以下の3つに分類される
CとC++ ←省メモリ高速だが、メモリ解放でミスると危険
GC言語 ←省メモリ高速ではないが、メモリ解放は自動で気にしなくていい
Rust ←省メモリ高速だが、メモリ解放は自動で気にしなくていい
4デフォルトの名無しさん
2022/04/17(日) 22:01:20.83ID:ki8GFFnY
「省メモリ高速ではない」はNANDなのかNORなのか
プログラミングの才能無さそうな日本語
5デフォルトの名無しさん
2022/04/17(日) 22:35:52.69ID:HtOTcTar
このスレは実質「Go vs Rust」のスレです。
6デフォルトの名無しさん
2022/04/17(日) 22:37:31.27ID:Xo1y3bfH
僕は生前、同業・Googleの言語センス同調圧力に抗うも努力は虚しく、無残な敗北を余生噛みしめる結果となった。

君たちには底辺職言語オタクの僕の分まで、強く自由に生きてほしいデス。
7デフォルトの名無しさん
2022/04/17(日) 22:58:55.21ID:xE2XgYmS
PHPの”勝ち”やね・・・

"1000" 名前:デフォルトの名無しさん[sage] 投稿日:2022/04/17(日) 22:31:30.13 ID:xE2XgYmS [6/6]
1000ならPHP大復活時代でルースターズを蹂躙レイプする
8デフォルトの名無しさん
2022/04/18(月) 00:05:49.90ID:RiOKXL41
>>7
PHPもタイプヒンティングちゃんと使っていったら悪くないんじゃないかね。
結局日本国内のWeb系じゃ一番使われてるし。
9デフォルトの名無しさん
2022/04/18(月) 00:30:56.61ID:6Qt778/v
PHPはドル記号がダサいから駄目
10デフォルトの名無しさん
2022/04/18(月) 02:55:12.95ID:X0td+574
C++使っててもコンテナクラス使うかスマートポインタを普通に使っていればメモリリークすることは殆どないでしょ。
手動でnewとdeleteしなくてはいけない時ってある?
11デフォルトの名無しさん
2022/04/18(月) 05:38:14.77ID:O5CqVN8y
go とrust が合体した言語があったらいいのに
12デフォルトの名無しさん
2022/04/18(月) 06:25:23.07ID:MYm7lCHF
>>11
vlang
13デフォルトの名無しさん
2022/04/18(月) 07:03:56.62ID:e4wxGEsZ
絵に描いた餅を出されても
14デフォルトの名無しさん
2022/04/18(月) 07:21:19.73ID:6Qt778/v
>>10
リークというかダングリングだけど、人が書いたメソッド中身見ないで使ってると参照切れてたり日常茶判事だよ
15デフォルトの名無しさん
2022/04/18(月) 07:25:53.68ID:usoGfIPO
>>10
そういう問題じゃないんだよ
スマートポインタ使わないで実装できてしまうことでこれまでどれたけの脆弱性をうんだか、という問題
16デフォルトの名無しさん
2022/04/18(月) 07:45:20.51ID:3ssVn6Z5
>>10
・スマートポインタを使い忘れてもコンパイルが通ってしまう
・スマートポインタを間違って使ってもコンパイルが通ってしまう
後者はC++ベテランでも複雑化するとうっかりミスがある
・そもそも毎回unique_ptr指定が面倒かつ無駄なのでデフォルト適用にして欲しい
17デフォルトの名無しさん
2022/04/18(月) 07:51:49.28ID:usoGfIPO
新しいプロダクトできました。メモリーリークはないです。
なんでいいきれるの?
Rustで、実装してるからです。
ああ、納得。

こんな感じで会話できるかどうかの差はものすごく大きい。
18デフォルトの名無しさん
2022/04/18(月) 07:52:22.78ID:rznbXz+G
>>11
go要素いらねえだろあんな糞文法
なんどGoogle潰してやろうと思ったか
19デフォルトの名無しさん
2022/04/18(月) 08:15:02.57ID:ndwLrDA6
やはりRustが最強

JavaScript/TypeScriptの高速フォーマッター「Rome Formatter」リリース。Rust製でPrettierより約10倍高速と
https://www.publickey1.jp/blog/22/javascripttypescriptrome_formatterrustprettier10.html
20デフォルトの名無しさん
2022/04/18(月) 09:12:25.91ID:33Ybip/c
Rustの文法すごい好きだから、c#ぐらいのノリでかけて文法がRustっぽい式指向な言語が欲しい
21デフォルトの名無しさん
2022/04/18(月) 09:21:04.84ID:usoGfIPO
なんでもその言語はC#のノリで書けるらしい

Goやないかい!

GoはC#のノリで書けるんやから!

俺はなんでもオミトオシやねんから!

Goやそんなもんは!
22デフォルトの名無しさん
2022/04/18(月) 09:33:56.22ID:Hv7oPs1o
>>20
Rustの構文や標準メソッド等ほぼそのままに
所有権と借用ルールとライフタイムだけを削除というか無視して処理するGC言語『GC-Rust』を作るとよいかもね
プログラミング初心者入門用にもなるし速さ省メモリを必要としない場でも使えるような
多少遅くてもいいのだからインタプリタ型でも十分かもね
あとは所有権参照借用lifetimeだけ学べば本物のRustへすぐに進める
23デフォルトの名無しさん
2022/04/18(月) 09:43:43.33ID:4vneGtME
>>19
ツール系はいくつかrust製があるね。
ripgrepもなかなか良いよ。
24デフォルトの名無しさん
2022/04/18(月) 09:46:35.13ID:33Ybip/c
>>22
あーそんな感じだな
GC付きのRust欲しいわ
25デフォルトの名無しさん
2022/04/18(月) 10:29:24.32ID:Mcv+P1OB
Rcじゃだめなの?
26デフォルトの名無しさん
2022/04/18(月) 11:06:57.46ID:e4wxGEsZ
もう調べてるかもしれないけどもっと現実的な話で式志向がいいならF#どうっすか
27デフォルトの名無しさん
2022/04/18(月) 11:23:46.03ID:X0td+574
>>14,15,16
スマートポインタを使い忘れるってことはmake_sharedかmake_unique使わないでnew使ってるってことだからgrepすれば簡単に見つけられる。全ての関数の引数の型とクラスメンバの型に生ポインタが無いようにすれば間違った使い方をして生ポインタがでてきてもコンパイルエラーなる。(もしそれらに生ポインタがあっても正規表現使えば見つけられるだろうし)
28デフォルトの名無しさん
2022/04/18(月) 11:32:19.66ID:Yow4FQAb
>>27
そんな面倒なことをせずとも無指定でunique_ptr相当になるRustを使った方が楽でいいな
Rustなら他にも忘れたり間違えたりすればコンパイラがエラーとして詳しく指摘してくれるし
29デフォルトの名無しさん
2022/04/18(月) 11:45:09.21ID:VMhcwqBx
>>18
アリが象を潰すつもりですか?
30デフォルトの名無しさん
2022/04/18(月) 11:47:49.11ID:GWhRkThq
>>27
ある瞬間自分の書いたコードだけチェックできればいいってならその通りだとは思う
ただ実際には依存ライブラリや他の人が入れてくるコード全てを常時チェックし続けないといけなくなるし
もし依存ライブラリがnew使ってたとして毎回フォークして書き直すのか?という問題もある
31デフォルトの名無しさん
2022/04/18(月) 12:03:53.59ID:e4wxGEsZ
巷に出没するRust信者自分でRustまともに書いてない説を提唱したい
32デフォルトの名無しさん
2022/04/18(月) 12:14:51.12ID:MYm7lCHF
そうなるとRustを広めたい勢力に雇われてる工作員の可能性出てきちゃう
33デフォルトの名無しさん
2022/04/18(月) 12:27:52.69ID:FXKoB+ib
>>28
引数渡しがデフォルトmoveじゃなければよかったんだかな。
デフォルトconst 参照で組まれていたらずいぶん学習しやすくなったと思う。
34デフォルトの名無しさん
2022/04/18(月) 12:35:25.60ID:pNu/+WEX
所有権のmoveセマンティクスらへんがRustの最大の文法的特徴なのに、そこがいらんとな
最初からKotlinとか使ってればええやんか
35デフォルトの名無しさん
2022/04/18(月) 12:42:20.62ID:FXKoB+ib
>>34
C++以外のユーザーがRustを学習するときの一番の難所でもあるけどな。

実際、不変借用は頻出しそうな気がするけど、性能ペナルティーとかあるのかね?
36デフォルトの名無しさん
2022/04/18(月) 12:52:02.32ID:4vneGtME
rustはインストール先がユーザーホームディレクトリの下なのが何だかな。
マルチユーザーで使う場合が手間かかる。
37デフォルトの名無しさん
2022/04/18(月) 13:04:30.11ID:nKPrtbqz
>>33
それはおかしい
一般的に参照を引き渡すということは様々な問題を生じさせるということ
競合の種も産むし参照切れの種も産む
だから参照を引き渡す方が記述コストを増やすことこそ道理
次に
C言語でもポインタ参照渡しは&を付けて表記する
したがって無印よりも&前置こそ参照渡しに相応しい
38デフォルトの名無しさん
2022/04/18(月) 13:08:07.19ID:usoGfIPO
>>30
これ。
見つけたからってどう住んだよ?って話だよな
他社のコードを修正できないし、そもそもそんなチェックを未来永劫担当者に引き継いでいけるのか?ってこと
個人でできることと、組織やプロダクト関係者全体としてできることは違う
39デフォルトの名無しさん
2022/04/18(月) 13:33:30.85ID:X0td+574
>>30,38
そんなこと言ったら、Rustでも他人の書いたコードにunsafeが入ってる可能性もあるでしょ。

>>33
Nim言語だとデフォルトで不変コピー渡しだけど引数のサイズが一定サイズ以上(確かポインタサイズの3か4倍以上)だとポインタで渡すようなコードを生成するんだよね。

>>37
Rustは参照を使ったときの問題が起きないようにコンパイル時にチェックしているんだからデフォルトがconst参照渡しでも問題ないんじゃないの?

Rustって借用したり借用を参照するときに&や*をつけないといけないけどその結果コードの見た目が生ポインタを使ってるCのコードに似てるんだよね。暗黙に借用したり参照しちゃダメって考えでそうなってるんだと思うけど。
40デフォルトの名無しさん
2022/04/18(月) 13:42:31.54ID:ZRRbnpkI
>>17
メモリリークは防げないでしょ
41デフォルトの名無しさん
2022/04/18(月) 13:51:24.45ID:vMsThGEl
>>39
>Nim言語だとデフォルトで不変コピー渡しだけど
>引数のサイズが一定サイズ以上だとポインタで渡すようなコードを生成するんだよね。

この議論でそんな話を持ち出す時点であなたは以下の理解が足りない
一般的にプログラミング言語によるセマンティクスと最終的に生成されるコードは全く無関係でありそこに関連があってはいけない独立のものである
完全に独立したものであるが故に最終コード生成オプティマイズを十分にすることが可能となる
42デフォルトの名無しさん
2022/04/18(月) 14:04:44.92ID:usoGfIPO
>>40
そうですね。スミマセン
43デフォルトの名無しさん
2022/04/18(月) 14:09:14.47ID:e4wxGEsZ
やべーアスペおるな
44デフォルトの名無しさん
2022/04/18(月) 14:11:19.47ID:usoGfIPO
プログラミングを勉強しようと思って
なにを勉強すればいいか先生に聞いたらパイソンっていうから
検索したら大きな蛇の画像とかがでてきたのでやめたわw
45デフォルトの名無しさん
2022/04/18(月) 14:29:04.41ID:X0td+574
生成されるコードがプログラミング言語のセマンティクスと無関係じゃだめでしょ。
コード生成はプログラミング言語のセマンティクスと矛盾しない範囲内で生成しないといけない。コンパイラはその中で最適なコードを生成しようとするわけでしょ。
Nimではデフォルトで引数はプロシージャ内で変更不可(変更しようとしたらコンパイルエラー)だから引数の型のサイズに併せて生成するコードをコピー渡しにしたりポインタ渡しにできるわけで。
もし引数が可変参照渡しだと引数の型が1バイトでもコピー渡しでは無くポインタ渡しにしないといけない。関数がインライン展開されると話が違ってくるけど。
46デフォルトの名無しさん
2022/04/18(月) 14:44:43.88ID:usoGfIPO
>>44
あ、すまん。これ誤爆しました。スミマセン〜。
47デフォルトの名無しさん
2022/04/18(月) 14:49:14.45ID:pGCdIhc3
「プログラミング言語によるセマンティクスと最終的に生成されるコードは全く無関係」そんな訳ない、RustはLLVMのIRを前提に
コードが吐かれるし、コードのリンケージをアトリビュート指定できる。C言語だって同様だし、むしろ、ハードウェアよりの低レベルな
システムプログラミングが可能な言語であれば、生成されるバイナリが厳密に言語の「セマンティック」を決める。
例えば今どきのCPUには分岐予測命令があるが、これに対応するstd::intrinsics::likelyのような分岐予測にヒントを与える、
セマンティクスはCPUがサポートされていれば100%生成されるバイナリがそうなる事を望む。無関係などありえない
48デフォルトの名無しさん
2022/04/18(月) 14:53:46.39ID:ykvGLY9n
>>47
Rustをgccと組み合わせて動かす試みあるから
LLVM前提ではないのでは?
49デフォルトの名無しさん
2022/04/18(月) 14:57:34.06ID:2ZPl5Bs7
>>45
その言語のセマンティクスとしてimmutableで渡すケースでも
値をポインタで渡すか値自体を渡すかはどちらでも構わないから言語のセマンティクスとは別問題

もっと顕著にわかりやすい例
構造体を一つ返す関数があったとする
小さい構造体なら値を返すだろうが
大きな構造体なら領域を用意してそこに書き込んでそのポインタを返すかもしれない
あるいは関数を呼ぶ側が領域を用意してそのポインタを裏引数として渡してそこへ返す値を書き込むかもしれない
このように3種類考えられるが呼ぶ側と呼ばれる側で一貫していれば目的を果たす
プログラマーはその生成コードが3種類のどれになるかを把握する必要はない
つまりそこで明白にレイヤーが分離される
50デフォルトの名無しさん
2022/04/18(月) 14:59:44.25ID:X0td+574
>>33
もし文字列のベクタに文字列を追加する関数があったとき文字列が参照渡しでその関数が実行された後もその文字列が読まれていると、その関数は文字列をmoveすることができずコピーしなくてはならなくなるからじゃないかな。
メモリコピーは遅いから絶対に許さない人にはデフォルトがmoveのほうがいいのかも。
51デフォルトの名無しさん
2022/04/18(月) 15:02:16.44ID:pGCdIhc3
>>48
現状はIR前提でしょ、完成してない未来のものを持ち出すのであれば何とでもいえる。というか上で言ってる本題とはずれる
そんなところに食いついて来てしょーもないわ
52デフォルトの名無しさん
2022/04/18(月) 15:06:33.88ID:i02G9WD5
>>47
Rustでもセマンティクスと生成コードは独立だよ
例えば>>49の関数が構造体を返す例
生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう
実際にRustで大きな構造体を返すと所有権を活用して驚きの最適化したコードを生成するよ
53デフォルトの名無しさん
2022/04/18(月) 15:10:05.22ID:uPETy31e
>>51
開発中で完成してないとは言っても実行バイナリの
生成もできないという状態ではないから
あなたの話とは違うというか
あなたの主張は間違ってるという例になってますよね
54デフォルトの名無しさん
2022/04/18(月) 15:19:05.87ID:pGCdIhc3
>>52
「生成コードは言語仕様で定められていないしあなたも方法を答えられないでしょう」
え?RustにもちゃんとFFIなどextern "C" {}ブロックがあるでしょ?生成コードは言語仕様で定められているし、このようなデータの受け渡しは
参照や可変参照の制限、ボローチェックなどがOFFになる。C言語やD言語やNimも同様でしょ、これが出来ない言語はシステムプランニングが
できる言語とは言えない。
「Rustで大きな構造体を返すと所有権を活用して驚きの最適化したコード」
どのような驚きのバイナリを生成しようと、例えばゲームエンジンのUnityなどでデータを渡す場合に所有権をRust側で保持したままのような
コードではUnityなどでメモリー管理されるので問題が出る。だから呼び出し間でどのようにデータを受け渡すか当然指定できる
55デフォルトの名無しさん
2022/04/18(月) 15:20:54.20ID:pGCdIhc3
>>53
何を言いたいのか1つも分かりません。。。あなたの勝ちでゴリラのようにマウンティングをしてください、どうぞ
56デフォルトの名無しさん
2022/04/18(月) 15:33:12.79ID:mb/oYyn3
>>54
FFIを理解していないアホですか?
例えばそのextern "C"した時のみC言語の受け渡しインタフェースに従うだけ
どの言語でもFFI使わなければ各言語が自由自在の方法を取る
57デフォルトの名無しさん
2022/04/18(月) 15:38:01.47ID:4qMH/RHY
>>39
引数のサイズが一定サイズ以上だとポインタで渡す

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

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

もしかしたらRustに「権利を持つオーナーは極力少なく・小さくする」というポリシーでもあるのかな?
58デフォルトの名無しさん
2022/04/18(月) 15:47:16.94ID:pGCdIhc3
>>56
さっきからID変えて絡んでこなくてよいですよ、「extern "C"した時のみC言語の受け渡しインタフェースに従う」セマンティクスと生成コードが決まりますよね。
アホと言えば誰もしもが感情的になるわけではないです。FFI使わなければなんて話をしていませんし、「プログラミング言語によるセマンティクスと最終的に
生成されるコードは全く無関係」という理想論のような現実を知らないコンピューターサイエンス学科の学生のような言葉を否定してるだけです。
59デフォルトの名無しさん
2022/04/18(月) 15:50:35.11ID:X0td+574
>>57
デフォルトで引数は不変が前提なので引数の型の定義を変更してポインタ渡しになったとしても基本的には挙動は変化しない。
引数のアドレスをとってれば挙動が変化するかもしれないけど、Nim言語は明示的に変数のアドレスをとることは危険な行為で自己責任でやれってことになってるから。
60デフォルトの名無しさん
2022/04/18(月) 16:01:25.50ID:hx/TPiWJ
>>58
普通のプログラムでC言語FFIなんて使わないです、そして、その特殊ケースはどうでもよい話です
一般的に言語が定めるセマンティクスと生成コードは別階層なので独立しています
61デフォルトの名無しさん
2022/04/18(月) 16:06:01.92ID:buwrQlsl
>>57
静的型付けで型サイズが定まる普通の言語ならば大丈夫
引数や返り値がポインタ渡しになるか値直接渡しになるか
型サイズ次第で変化しても一貫していれば構わない
62デフォルトの名無しさん
2022/04/18(月) 16:44:49.00ID:pNu/+WEX
>>57
> それはそれで他者が変更したときの挙動が変わるから怖いよね。
> 特に並列作業時。
横レスだけど、明らかにそういう話じゃない
63デフォルトの名無しさん
2022/04/18(月) 17:00:59.75ID:VCJMEsmD
普通にカーネルのシステムコールするだけでC言語のFFI使ってますよ、DBアクセスするにもSQLiteでもMySQLでもPostgresqlでも使用してますし
TCP/IPスタックにアクセスするにもFFI使ってます、もしや特殊なのはあなたなのでは?ガン無視されて独立しているのは、そんな詰まらないことで
言い張るあなたなのでは?
64デフォルトの名無しさん
2022/04/18(月) 17:04:14.33ID:uPETy31e
Kotlinみたいな出力先がjvmとjsとネイティブがあるのは
このひとの中でどう解釈するんだろ
65デフォルトの名無しさん
2022/04/18(月) 17:15:12.72ID:RntYGm+C
>>63
そんなことは誰でも知っているがこの流れとは無関係な話
各FFIはそのFFIの指定に従う
逆に言えば各言語の普通のコードではFFIなんて関係ないので各言語で完全に自由
だから引き数や戻り値のサイズに拠ってポインタ渡しか否か変わる言語もある

プログラマーはそれらを知らなくてもプログラミングできる
各言語が定めるセマンティクスだけ理解すればプログラミングできる
つまりセマンティクスと生成コードは完全に独立した別階層であり無関係
66デフォルトの名無しさん
2022/04/18(月) 17:19:02.78ID:e4wxGEsZ
この話の終着点どこ?
「お前はアホだから黙れ」が立証できれば満足するの?
67デフォルトの名無しさん
2022/04/18(月) 17:22:10.87ID:Em1ZPrJL
>>33
変数の代入がmoveなのに関数引数の時だけ参照になるのは紛らわしくない?
68デフォルトの名無しさん
2022/04/18(月) 17:33:30.39ID:4qMH/RHY
>>59
あ、不変前提ね。勘違いしてました。

>>67
変数もデフォルトで不変借用にする、とか。戻り値の受けが面倒臭くなりそうだけど。
69デフォルトの名無しさん
2022/04/18(月) 17:41:53.44ID:mz+noJnQ
>>68
Cの(ポインタ)参照が前置&だから
Rustの(借用)参照も前置&にした現状仕様がわかりやすいと思うけど、なぜ変えたいの?
70デフォルトの名無しさん
2022/04/18(月) 17:58:50.26ID:Em1ZPrJL
>>68
変数の代入をデフォルトで参照にするとmutが絡んできたときにborrow checker周りでとてつもなく面倒になりそうな気がする
71デフォルトの名無しさん
2022/04/18(月) 21:11:14.78ID:CPWR65al
rustはライフタイム周りが途方もなく汚く見える
ウンコに触れたくない
72デフォルトの名無しさん
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って美しい」



何も言い返せんかったは・・・
73デフォルトの名無しさん
2022/04/18(月) 21:19:09.66ID:mtexizhK
twitterでイキってるバカをそんなに晒すなよ。
74デフォルトの名無しさん
2022/04/18(月) 21:22:52.28ID:rznbXz+G
なおイキッテルのはRUSTERのもよう
GOに完全敗北してどんな気持ち?
75デフォルトの名無しさん
2022/04/18(月) 21:26:10.80ID:WWHuTgUM
null安全じゃない言語とかこのご時世にあるんですね
76デフォルトの名無しさん
2022/04/18(月) 21:39:04.08ID:CZqwnDNY
スレタイの言語でも
Goとかnilチェックするコードを書き忘れてもコンパイルエラー出ないね
安全じゃない言語多すぎ
77デフォルトの名無しさん
2022/04/18(月) 21:42:30.77ID:rznbXz+G
GOはポイント使わなければ安全だぞ
ただし初期値に0と””が入る
78デフォルトの名無しさん
2022/04/18(月) 22:25:39.31ID:hd7uWEuw
>>77
このif文を書き忘れたらコンパイルエラーになるの?

>>72
> if err != nil {
79デフォルトの名無しさん
2022/04/18(月) 22:30:25.57ID:Em1ZPrJL
>>74
これってgoありがたがる人を馬鹿にしたツイートじゃないの?
80デフォルトの名無しさん
2022/04/18(月) 22:44:34.76ID:edZlyGeP
Goはnil安全ではない
if err != nil {を書き忘れたり
return nil, nilしちゃっていると死ぬ

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

いずれのケースもRustではコンパイルエラーとなるため安全
Goは危険だらけ
81デフォルトの名無しさん
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)
82デフォルトの名無しさん
2022/04/18(月) 23:02:13.65ID:WPqVzB8b
Goでは「値が存在しないこと」を安全に表す方法がないことが敗因
RustではOption<T>型のNoneで安全に表せるところ
83デフォルトの名無しさん
2022/04/19(火) 00:46:26.38ID:S3LfaCKT
なおシェアはGOが圧勝したもよう
RUSTボーイズは一生夢見て低賃金でこき使われる童貞野郎
84デフォルトの名無しさん
2022/04/19(火) 01:34:09.77ID:VnIrO7oP
goはCがシンプルで使いやすいと思う人向けの言語じゃないかと思う
85デフォルトの名無しさん
2022/04/19(火) 01:36:19.32ID:VnIrO7oP
言語機能をモリモリにしたい誘惑に抗ってランタイムを充実させるという判断できる自制心はすごいと思う
86デフォルトの名無しさん
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% ほど速くなったらしい
87デフォルトの名無しさん
2022/04/19(火) 07:43:43.07ID:S3LfaCKT
ゴミが20%早くなかったからってどうしたってゆうね
88デフォルトの名無しさん
2022/04/19(火) 07:46:59.67ID:3aREeURj
>>81
今さらゆとり
89デフォルトの名無しさん
2022/04/19(火) 07:51:59.99ID:jVj3oT5A
>>87
でもRuby on railsってまだまだ使われてるよね?
有名どころでも、クックパッド、Airbnb、Gunosy、クラウドワークス、
食べログ、価格.com、Twitter、 Hulu、 GitHub
90デフォルトの名無しさん
2022/04/19(火) 08:03:56.92ID:J98o16eP
>>81
偽物を「実は」という詐欺師。
91デフォルトの名無しさん
2022/04/19(火) 09:17:26.14ID:ipOfh3Xt
>>89
大規模railsを別言語で書き直しましたという
ニュースは時々出てくるけど逆は聞かないからなあ…
92デフォルトの名無しさん
2022/04/19(火) 09:29:29.07ID:Qc9Zpwhc
>>89
業界や会社によってはCOBOLだって使われてる。
いったんそれでシステム組んじまったら中々移行は出来んもんだよ。
93デフォルトの名無しさん
2022/04/19(火) 09:35:08.80ID:+uXVuu7q
>>80 >>82
Goはなぜそんな危険な言語仕様にしたの?
94デフォルトの名無しさん
2022/04/19(火) 10:22:52.12ID:NH+MJ17E
R○byは業界のSPA移行とPythonブームによって思いのほか綺麗に消えてくれたのは良かった
まあPHPなんかに比べたらまだ「恥を知る」人間が多かったんだろうね
95デフォルトの名無しさん
2022/04/19(火) 11:21:50.97ID:XEvBz8Zw
>>94
PHPユーザに失礼なやつだな

お前あれだろ?
刺し身に直接わさびを付けるタイプだろ。醤油でわさびをとかさないで刺し身につけて食べてね?どうよ?
96デフォルトの名無しさん
2022/04/19(火) 12:34:56.06ID:gbQ3J7tR
>>94
言語マニアならpythonよりRubyの方がマシだろ。Pythonみたいにメソッドと関数が混在するのは書いててキモい。
python4でNim方式を採用してほしいわ。
97デフォルトの名無しさん
2022/04/19(火) 12:39:13.85ID:SdA/iojO
もちろんプログラム記述方式としてはPythonは最悪
あれが普及するのは害悪しかない
98デフォルトの名無しさん
2022/04/19(火) 13:49:45.55ID:jVj3oT5A
>>95
直接わさびを口に運び刺身を投入して咀嚼した後に醤油を飲むタイプです

PHPユーザに対し失礼な発言は謝罪して撤回させていただきます。この度は申し訳ございませんでした。
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:S3LfaCKT
>>98
人類最底辺のゴミPHPoorに謝罪など必要ない
奴らに必要なのは死あるのみ
102デフォルトの名無しさん
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:S3LfaCKT
>>102
障害者手帳持ちでも書けるとガイジを集めたから
ガイジが作ってガイジが保守して、真人間は近寄らないか万一深淵を覗いてもすぐに逃げるから
ガイジだけが残った
それがPoopHPoor
105デフォルトの名無しさん
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あたりにアップしてくれないか?
その出来栄えでその言語の優劣を競うというのはどうだろうか?
111デフォルトの名無しさん
2022/04/20(水) 15:11:07.62ID:6jKBlzMv
コード書けない奴が何の優劣を語るんだ?
LOC?
112デフォルトの名無しさん
2022/04/20(水) 16:00:31.94ID:4qIYThBV
>>110
urlミスってるよ
113デフォルトの名無しさん
2022/04/20(水) 16:19:25.49ID:uTpu7tmC
コードが書けないやつだからこそnull安全なんてほとんど誰もありがたかってない事を上のように一生懸命言い出す
114デフォルトの名無しさん
2022/04/20(水) 16:51:22.63ID:OCnLwZQm
>>113
これだから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 | :::::::::::::
116デフォルトの名無しさん
2022/04/21(木) 13:08:35.07ID:HvU2DlQ2
>>93
Goは言わば並列対応スクリプトC言語だからだよ
だから今どきの言語と異なりC言語のように地道に記述量が増えるとともに安全軽視で自己責任
117デフォルトの名無しさん
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
http://2chb.net/r/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単独の話は向こうでやる
それだけだ

以上
125デフォルトの名無しさん
2022/04/21(木) 18:32:35.61ID:LoXMgsHc
むしろここが隔離スレだと思ってた
126デフォルトの名無しさん
2022/04/21(木) 18:51:22.79ID:RkfSdsaD
ここは次世代言語スレ
次世代言語の話題や機能や比較に議論まで何でも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安全言語とは厳密には関係ない。
128デフォルトの名無しさん
2022/04/21(木) 20:11:11.38ID:LoXMgsHc
>>127
> このように誰もGoのことなど挙げてないのに
>>72,74,80,82
129デフォルトの名無しさん
2022/04/21(木) 20:19:15.04ID:j60ekrh9
>>127
>このように誰もGoのことなど挙げてないのに、Rustの超ビギナーの信者は異様に敵視を行う。

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

以下略
130デフォルトの名無しさん
2022/04/21(木) 21:14:28.53ID:kTS22GXO
>>127
それは君の主張が間違っている
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って書くのでは
133デフォルトの名無しさん
2022/04/21(木) 21:27:36.40ID:SndU/Xk6
・Rustにはnullという概念のものが存在しない
・存在するかしないかを示したいならば代数的データ型である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/
135デフォルトの名無しさん
2022/04/21(木) 22:39:37.71ID:8Ud760iv
>>133
糞バカ中世ジャップランド土人どもはOption.get()するだけだぞ
136デフォルトの名無しさん
2022/04/21(木) 22:55:52.73ID:hBTlXYXK
>>135
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安全言語とかやるのかい?
138デフォルトの名無しさん
2022/04/21(木) 23:28:25.00ID:emsRX1XQ
Rustのアドバンテージを認めざるを得ないから認めつつ
それでも批判したいから言い掛かり長文
みっともない
139デフォルトの名無しさん
2022/04/21(木) 23:47:03.05ID:Q5xBjMYc
>>137 その通りだからきみはJavaとかHaskellとか使えばいいと思うよ


Rustの良いところを教えてほしいなら普通に指導を乞えばいいのに
140デフォルトの名無しさん
2022/04/22(金) 00:11:43.18ID:BeccjQpB
null安全をlinterが警告してくれる言語なんてあったっけ?
141デフォルトの名無しさん
2022/04/22(金) 00:18:27.86ID:QUxpZq2Z
>>140
未初期化変数へのアクセスのことを言ってそうな気がする
それ以外のケースでnullの問題踏んだことない人なのかもしれない
142デフォルトの名無しさん
2022/04/22(金) 02:18:54.02ID:KwomhEH1
>>134
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のために良くない”って話だよ
言語の悪口を言ってるんじゃない、おまえのようなキモくて何も答えられないで煽りだけクズを論ってんの
146デフォルトの名無しさん
2022/04/22(金) 19:03:56.53ID:EyWh3ott
自分でこれが煽りじゃない反論だと思ってるならヤバい
147デフォルトの名無しさん
2022/04/22(金) 19:15:01.24ID:J7veDPz7
Rustより良い言語が出現したらそれを検討する予定
今のところそういう言語がないためメイン言語はRustのまま
148デフォルトの名無しさん
2022/04/22(金) 19:20:14.50ID:UKixTNef
煽ってるだけの書き込みにまともな返答がくるわけないじゃん
149デフォルトの名無しさん
2022/04/22(金) 19:21:33.19ID:atNXtsDe
まだスレタイに出てないけど注目してる言語とかありますか?
150デフォルトの名無しさん
2022/04/22(金) 20:02:04.18ID:yAnz+P1M
flixかな
scala亜種といった感じで流行るようには見えないけどね
151デフォルトの名無しさん
2022/04/22(金) 20:06:53.42ID:yOJfi3Zs
この根源的な差が決定的かな

> プログラミング言語は以下の3つに分類される
> CとC++ ←『省メモリ高速』だが、「メモリ解放でミスると危険」
> GC言語 ←『省メモリ高速』ではないが、「メモリ解放は自動で気にしなくていい」
> Rust ←『省メモリ高速』だが、「メモリ解放は自動で気にしなくていい」
152デフォルトの名無しさん
2022/04/22(金) 20:15:46.28ID:QUxpZq2Z
言語じゃないけどWASMってどうよ
153デフォルトの名無しさん
2022/04/22(金) 20:25:25.90ID:UKixTNef
>>149
Pony
Rustよりも安全。データ競合だけでなく、デッドロック、実行時例外が起きないことも保証されてる
actorモデルを採用している
154デフォルトの名無しさん
2022/04/22(金) 20:27:40.70ID:aYwHbJz6
>>150
これですかね
ありがとうございます

The Flix Programming Language
https://flix.dev/
https://github.com/flix/flix

プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー
https://www.infoq.com/jp/news/2022/03/flix-programming-language/

Flixは多くのプログラミング言語にインスパイアされたオープンソースのプログラミング言語であり、開発者は関数型、命令型、論理型のスタイルでコードを書くことが可能である。FlixはScalaに似ており、Hindley-Milnerに基づく型システムとGoにインスパイアされた並行処理モデルを採用している。JVM言語はポリモーフィックエフェクトシステムやDatalog制約などのユニークな機能をサポートしている。
155デフォルトの名無しさん
2022/04/22(金) 20:34:28.61ID:aYwHbJz6
>>153
どもです

https://www.ponylang.io/

フィンテックでアクターモデルのプログラミング言語Ponyを使う
https://www.infoq.com/jp/news/2016/05/pony-fintech/

Ponyはアクターモデルを使ったネイティブ言語であり、LLVMを使う。アクターモデルはErlangやAkkaで有名であり、1973年のCarl Hewitt氏他の論文から生まれた。アクターは状態管理と非同期メソッドを組み合わせる。フィールドに加え、アクターはひとつのメッセージキューとヒープを持つ。Clebsch氏によれば、Ponyのアクターは独立してガベージコレクションがされ、ErlangやAkkaとは違い、アクターそのものもガベージコレクションされるので、アクターを殺すためのメッセージのようなものは必要ない。手動でのメモリ管理は不要なのだ。

アクターは自分のヒープのガベージコレクションをmark-and-don’t-sweepアルゴリズムを使って他のアクターとは独立して行う。つまり、Ponyは到達可能なグラフに対してはnのオーダーだ。到達不可能なメモリは影響を与えない。アクターのヒープのGCにはsafepointがなく、読み込み、書き込みのバリアも、カードテーブルマーキングもコンパクト化もない。コンパクト化が必要ないので、ポインタのフィクスアップも必要ない。
156デフォルトの名無しさん
2022/04/22(金) 20:39:31.11ID:NkxiGfGV
erlang系で何かしら伸びてこないのか
157デフォルトの名無しさん
2022/04/22(金) 20:56:20.88ID:UKixTNef
>>156
Erlang系でElixirの次に来そうなのはGleamかな?
まだまだ新しすぎて未成熟だけど、着実にコミュニティが大きくなってる気がする

あとは他に33個ほどリストアップされてるから、なんか伸びそうなのあったら教えて
https://github.com/llaisdy/beam_languages
158デフォルトの名無しさん
2022/04/22(金) 20:57:22.84ID:MSzkRWeB
>>152
Wasm自体は十分に実用的でブラウザ上からクラウドエッジ上に至るまで様々な環境での環境非依存言語の地位確立
ただしWasm仕様へのGC導入は未来の話へと先送り
したがって実用的なWasm記述言語としてはC/C++/RustのままとなりRustがベストチョイス
159デフォルトの名無しさん
2022/04/22(金) 21:14:40.69ID:gmnEH6Vv
>>158
LLVMが噛めばほぼ全てWasm対応になりうるので利点でもなんでもない
オレオレ言語でもWasmに対応できるというかすでに作った
160デフォルトの名無しさん
2022/04/22(金) 21:25:22.84ID:p9LA8Dyp
>>159
GC言語だと明確に不利なだけでもちろん動くよ
GCなし自作言語で良いものが作れたならばシェア取りに行くといいね
現状Rustの天下を崩すチャンス
161デフォルトの名無しさん
2022/04/22(金) 22:15:59.43ID:AQMvQ4xM
WEB+DB Press 127号で、
Elixir のPhoenix が、28ページの特集

Ruby on Rails 7, Phoenix 1.6 から、脱Webpack でesbuild へ

RailsのHotwire, PhoenixのLiveView で、websocket によるリアルタイム通信。
ここ数年、SPA でReact に奪われたシェアを回復すべき戦略

他には、Bootstrap よりも、Tailwind が多くなってきた

128号は、Terraform 特集。
Software Design 2022/1月号も、Terraform特集だった

YouTube で有名な、雑食系エンジニア・KENTA のRuby on Rails サロンでも、
Terraformで転職を差別化できると言ったから、すべての雑誌・学校も動いた

1つのサロンが転職に有効な技術を持ってしまうと、
他者が合格できなくなるので、対抗上、勉強しないといけなくなる
162デフォルトの名無しさん
2022/04/22(金) 22:38:59.17ID:y1b9XJMs
Terraformが何なのかも理解せずにここプログラミング言語のスレに書き込んでいるのか
163デフォルトの名無しさん
2022/04/22(金) 22:55:47.09ID:dDLjcogg
リスナーさんだか受講生だか知りませんが、KENTAさんの主張を引用するなら本人から許可を取って、
情報の許可範囲とガイドラインを守って書き込みしたほうが絶対良いと思いますね。

匿名掲示板ならアレな発言も、多少は仕方ないかもしれませんが、
他人の名を語ってそれだとさすがにまずいです。倫理とルールを守りましょう。
164デフォルトの名無しさん
2022/04/22(金) 23:14:15.38ID:TXL8QlLI
え本人が書き込んでるんじゃないのか
165161
2022/04/22(金) 23:17:44.40ID:AQMvQ4xM
KENTA

2021年のWeb系エンジニア転職を成功させる3つの技術要素、2021/4



Web系エンジニアを目指す人のためのプログラミング学習ロードマップ、2021/2



上の動画で、Terraform で転職を差別化しましょうと言っている。
それで、すべての雑誌・学校も動いた。
Terraformが出来ないと、転職に負けてしまうから

米国人からすると、日本のRuby on Rails は異次元の戦い。
10年以上のプロでも、1年ぐらいの初心者に負けてしまう

日本では解雇できないから、資格などの事前審査制。
米国では国民全員がフリーランスだから、ひとまず雇っても、すぐに首にできる
166デフォルトの名無しさん
2022/04/22(金) 23:32:50.63ID:dDLjcogg
>>164
えまじで?
167デフォルトの名無しさん
2022/04/22(金) 23:40:10.10ID:BeccjQpB
KENTAさんは全エンジニアの輝きの星
168デフォルトの名無しさん
2022/04/22(金) 23:47:33.75ID:dDLjcogg
讃えよー敬えー
169デフォルトの名無しさん
2022/04/23(土) 05:52:57.97ID:dsrvV+XF
>>165
相変わらずのゴミ動画
170デフォルトの名無しさん
2022/04/23(土) 07:28:43.83ID:ebXv3GDe
>>151
RustがメモリをGC並みに雑に扱えたら、最高だったな。
171デフォルトの名無しさん
2022/04/23(土) 08:41:27.77ID:X7wDySqh
RcもWeakも無くなればね
裏で勝手にやってくれるとかして?
プログラマ側が一切ケアしなくて良いんならスゴイよね
172デフォルトの名無しさん
2022/04/23(土) 09:12:54.44ID:eZJZo8Wb
Goはコンパイル言語なのにスクリプト言語のように扱える軽量さが最大の魅力だろ
Go並にエディタの補完が軽量でコンパイル爆速のコンパイル言語を俺は知らない

Rustはライフタイムが全然わからなかったし、コンパイル遅すぎて無理だったね
GCはあった方がいいに決まってるわ
開発時の生産性が圧倒的に違ってくる
173デフォルトの名無しさん
2022/04/23(土) 09:17:17.05ID:kd0LPi6/
GoはCGo何とかしてくれればもっと使う気になれるんだけどな
174デフォルトの名無しさん
2022/04/23(土) 09:20:09.97ID:eZJZo8Wb
とにかくGoは頭の悪い人でもすぐにプロジェクトに参加できるぐらいに機能がシンプルに削ぎ落とされていてコンパイル爆速ってのがポイントな言語
それに対して〇〇の機能がないーって言っても仕方ないだろ

頭の悪い人でも使いこなせる言語じゃないと企業ではなかなか普及しないと思うよ
175デフォルトの名無しさん
2022/04/23(土) 09:46:22.59ID:o/e4rrgi
https://without.boats/blog/notes-on-a-smaller-rust/
だれかここで言われてる言語作ってくれ
176デフォルトの名無しさん
2022/04/23(土) 09:52:47.90ID:XZjzYuNa
>>174
本当にその通りなんだけど、これだけは欲しかったみたいな機能も一緒に削られてるところが少しモヤモヤする
ジェネリクス(ようやく追加されたけど)とか代数的データ型とか
177デフォルトの名無しさん
2022/04/23(土) 10:30:02.86ID:19UflQcD
>>172
ライフタイムがわからなかった、って、かなり知能が低い人じゃないとありえないと思うよ
そしてそのくらい低い人はプログラミングに向いていないと思う
178デフォルトの名無しさん
2022/04/23(土) 10:34:13.57ID:WKX1mrZa
ライフタイムはわかるけどこれがリージョン推論とかいった厳密な理論とどう対応しているのかがわからん
一般的なプログラマーはここまで理解しなくてもいいんやろうけど
なんでこんな単純なわかりやすい原則の背後にそんな謎な人口に膾炙されていない理論を導入しないといけないのかがわからんわ
179デフォルトの名無しさん
2022/04/23(土) 10:59:59.69ID:BgAX+6b6
荒らしなし規制無し

3ch
NEXT2ch
45ch

ふたばちゃんねる
明和水産
180デフォルトの名無しさん
2022/04/23(土) 11:09:11.96ID:teuoZU8e
>>178
ブロックスコープというあまりにも大雑把な大きな枠で扱うのではなくて
実際に使われている有効な範囲(リージョン)で細かく扱いましょう、というだけだよ
生存単位は前者で、借用単位は後者で細かく区切る
具体的コード例を含めた解説ページの例

Non-Lexical Lifetimes って?
https://qiita.com/_EnumHack/items/8b6ecdeb52e69a4ff384
181デフォルトの名無しさん
2022/04/23(土) 12:06:36.75ID:uMxflx63
プログラミング言語「Erlang」を生んだジョー・アームストロング氏死去
なお、アームストロング氏は「なぜオブジェクト指向はクソなのか」という名文を残しています。
182デフォルトの名無しさん
2022/04/23(土) 12:41:02.85ID:lKjOluUR
>>177
プログラマーって言ってもOS作ったりドライバ作ったりする低レイヤーやってるのと、バックエンドやWeb系の高レイヤーやってるのはいるわけで
Rustは前者の人たちが使えばいいのでは?後者の人たちがRustがーとかイキってるの見ると笑ってしまう

後者の分野ではRustはGoに勝てないでしょう
183デフォルトの名無しさん
2022/04/23(土) 12:48:09.21ID:HJoWw7qN
>>182
むしろGoは対象が狭くて短命に終わる言語
言語の機能不足で書きにくい上に速いわけではない
唯一のメリット(?)が仕様が簡素なこと
184デフォルトの名無しさん
2022/04/23(土) 13:26:27.68ID:o/e4rrgi
>>182
勝ち負けの定義次第だけど後者でもrustの方が有利な場合はあるんじゃないの
discordのバックエンドの例とかあるよね

だいたいのケースでgoが適しているって主張なら分かるけど
特定の分野で常にgoの方が適しているというのは言い過ぎかと
185デフォルトの名無しさん
2022/04/23(土) 13:31:57.99ID:BV8u7mBP
これだからRust信者は嫌なんだ...12年続いて厳格に互換性を保ってる言語が短命だって?
速いわけではないって、そりゃGCが裏で動いてメモリー解放をほとんど気にしなくて良い言語と比べれば、極限の速度では有利になるのは当たり前でしょ?
それでもC99やRustなどと比べても2倍も時間が掛かるわけではない、これを速いわけではないと表現するのは、自身でも気づいていないのか隠された悪意と偏見を持ちすぎてる。
むしろRustこそ後方互換を保つためなどと言いつつEditionなどという仕組みや、ボローチェックの強化なんて短命のコンパイルが通らないような事をして、短命で終わっている
今書いてるRustが10年後コンパイルが通るのかエラーになるのか全く見えない。普通の用途ではGoで十分という話に噛みついてくる
言語の表層的な機能をどんどん導入して直行性が無く、どんどん書きにくくなっていくのに苦労に見合う速度はC99以下。唯一のメリット(?)は意識高い系がたった1つの言語をやってればマウントできる事
186デフォルトの名無しさん
2022/04/23(土) 13:40:48.60ID:j+9QGcWO
>>182
でも現実にWeb分野でもRustがじわじわと広まりつつあるよね
サーバ側はGoよりRustが高速で省メモリでGC負荷なしで有利
ブラウザ側は実用的となったWebAssemblyでRustが最適
187デフォルトの名無しさん
2022/04/23(土) 13:46:57.71ID:o/e4rrgi
>>185
不勉強でよく知らないんだけどeditionやborrow checkerの強化でコンパイル通らなくなったcrateってどういうものがあるの?
188デフォルトの名無しさん
2022/04/23(土) 14:42:18.80ID:iqGYI4s5
長文に構うなよ
189デフォルトの名無しさん
2022/04/23(土) 17:59:39.00ID:Yf3QCfCm
>>176
同感
必須機能が足りな過ぎてGoはプログラミングが修行のように辛い
C言語で何でも書けるというのと同じで書けるけど辛い
190デフォルトの名無しさん
2022/04/23(土) 18:14:41.34ID:DP+h97oH
>>186
コンビニに行くのにF1とかソーラーカーは要らない定期。どれだけ早かろうが省エネだろうが。
JavaやC#はセダン〜バスみたいな感じかな。
Goは原付2種みたいなもんでしょ。
まず主戦場も違えばドライバーも違う。
191デフォルトの名無しさん
2022/04/23(土) 18:17:56.69ID:qKl7QP1V
>>186
それでお前は使ってるの?
Reference Types使ってもパフォーマンスがjsに比較してカスな件どうなった?
192デフォルトの名無しさん
2022/04/23(土) 18:21:30.06ID:FZleZnGe
>>191
え?
JSとは誤差
そして何か処理するコード次第で圧勝
193デフォルトの名無しさん
2022/04/23(土) 19:02:24.78ID:qKl7QP1V
もう一回貼っておきますね

https://zenn.dev/igrep/articles/2021-11-wasm-reference-types

PythonにおけるCFFIみたいな用途で使う分にはきっと問題無いんだろうね
特定の目的に対してはぴったりはまるんでしょうが
それを何の前提も付けず単に「実用的」と呼ぶのは誇大広告ではないんですかね
194デフォルトの名無しさん
2022/04/23(土) 19:03:19.39ID:X7wDySqh
最小限で考えると
Cにあとひとつ何かを加えたものでやっていけそう
Cに関数のオーバーロードがあればやっていけそう
コンテナクラスもほしいけどOOPを持ち込んでしまうので今回はパス
あくまで
void add(struct vector_int *v, int value)
void add(struct vector_float *v, float value)
というふうに関数と構造体だけで頑張っていけそう
195デフォルトの名無しさん
2022/04/23(土) 19:36:04.43ID:ugaeg6U2
Cに拘ってる奴は本気でCが使いやすいと思ってるのか冗談で言ってるのか
196デフォルトの名無しさん
2022/04/23(土) 19:53:30.81ID:texCpgrl
go よりはcのが好きかな
197デフォルトの名無しさん
2022/04/23(土) 19:57:28.78ID:stnqwczt
>>195
下手な増改築だらけのC++よりCが良い
LinuxのLinusも同じ意見
198デフォルトの名無しさん
2022/04/23(土) 20:15:34.17ID:qKl7QP1V
C言語にオーバーロード?
結局C++みたいにABI建て増ししてマングリングしないといけないやつじゃん
199デフォルトの名無しさん
2022/04/23(土) 20:18:18.40ID:o/e4rrgi
Cは_Genericで頑張れば
200デフォルトの名無しさん
2022/04/23(土) 21:14:20.68ID:FKp57Oo8
個人的いはCにがんばってほしい
201デフォルトの名無しさん
2022/04/23(土) 21:39:38.45ID:X7wDySqh
>>199
> _Generic

(´・∀・`)ヘーそんなのあるんだ勉強になりました
これあったら十分やわ
202デフォルトの名無しさん
2022/04/23(土) 21:51:54.89ID:w3sxk/eA
ジェネリックってプログラミング言語によって指すものが異なってるよな
異なるといってもレベルの低いもの高いもの玉石混交という意味で
203161
2022/04/23(土) 23:08:55.47ID:dSfqqc1i
IoT, AI でも、Elixir もある

Nerves は、最小のLinux, Erlang を含む、組み込み向けOS

Nx はテンソル用。
TensorFlow, PyTorch のフロントエンド

Erlang VM のFFI で、他言語のモジュールも使える
204デフォルトの名無しさん
2022/04/24(日) 00:35:10.40ID:tW7+nz8n
Cは文字列が弱点だった
ちゃんとした文字列の型があればもっと便利だったとおもう
205デフォルトの名無しさん
2022/04/24(日) 01:36:20.84ID:bAmVid1d
nimはもっと広まって欲しいかな。できればpython置き換えるくらいに。
206デフォルトの名無しさん
2022/04/24(日) 06:41:49.87ID:4pJnSfn9
>>197
てかLinusはそんなにその言語がいいと思ってるならそれでお前がなんか作ればいいだろって話をしてるな。
ここの連中なんかはまさにそんな感じだが。
207デフォルトの名無しさん
2022/04/24(日) 09:27:58.32ID:FwnGDc6j
これはなかなか面白い記事だった
原点回帰というか、ここのスレでの議論にも参考になると思う
お前らの感想を聞きたい

How the C programming language has grown
https://opensource.com/article/22/3/how-c-programming-language-has-grown
208デフォルトの名無しさん
2022/04/24(日) 13:05:32.72ID:LSLifE01
結局言語は道具。結局は何を作るかなんだよ
209デフォルトの名無しさん
2022/04/24(日) 14:03:27.44ID:plOa7TFC?2BP(0)

ネイティブ言語に変換できるビジュアルプログラミング言語とかいいと思う
オブジェクト指向とかわかりやすいだろうし。
唯一問題なのはマウスとキーボードをせわしなく行き来することかな
以前Blockly使ってそんなの作ったけどソースコードどっかやっちゃった
210デフォルトの名無しさん
2022/04/24(日) 17:21:57.86ID:uNEChMqn
なんだァ?てめェ……
211デフォルトの名無しさん
2022/04/24(日) 17:26:29.56ID:K5BkO09u
そうです、わたすが変なおじさんです
212デフォルトの名無しさん
2022/04/24(日) 18:16:43.21ID:bl0Rasps
Rustのスレ複製おじさんが暴れまわってるから怖くなっちゃって見てないわ
あんなスレ見てたら気がおかしくなりそう
ここはまだまし
213デフォルトの名無しさん
2022/04/24(日) 19:14:30.43ID:tfR0akyF
頭おかしなるで
214デフォルトの名無しさん
2022/04/24(日) 19:46:35.09ID:gbNK0/9l
>>181
「なぜオブジェクト指向はクソなのか」
1データ構造と機能は一緒にすべきではない
2すべてがオブジェクトである必要があります。
3データタイプ定義はあちこちに散らばってしまう
4オブジェクトはプライベートな状態を持っている
215デフォルトの名無しさん
2022/04/24(日) 20:04:13.90ID:tW7+nz8n
最近はモジュールがまた流行ってるよね
rustもGoも自分から見るとモジュール指向に見える

自分はモジュール型からOOPに進化した過程を知ってるから正直モジュール型は好きじゃない
216デフォルトの名無しさん
2022/04/24(日) 21:17:36.80ID:slsDzRA2
>すべてがオブジェクトである必要があります

C++やJavaみたいにすべてがオブジェクトじゃないオブジェクト指向言語なんていくらでもあるじゃん
217デフォルトの名無しさん
2022/04/24(日) 21:49:22.71ID:+4D6Qx5V
>>216
そういう意味じゃないよ
https://gist.github.com/posaunehm/4087971
218デフォルトの名無しさん
2022/04/24(日) 22:02:13.94ID:4j4sWWkv
真のオブジェクトっていうのは、一つのスレッドみたいなもので他のスレッドとの通信をメッセージパシングでやりとりするものと言っていたような
一方、普通にいわれているオブジェクト指向というのは単なるプログラミングの書き方の効率化の手法にすぎないって話
つまり、継承という方法で差分だけ書いていけるようにすることによる効率化だけの話だってこと。
219デフォルトの名無しさん
2022/04/24(日) 22:04:35.47ID:uNEChMqn
差分プログラミングならまあクソでしょうね
220デフォルトの名無しさん
2022/04/24(日) 22:06:02.75ID:22aYjb+I
今のオブジェクト指向継承あんま使わなくね?
221デフォルトの名無しさん
2022/04/24(日) 22:09:28.03ID:HH2OM4Tz
むしろ継承はクソすぎて足を引っ張る
そのためGoやRustなどの言語ではclassを廃止というか最初から採用しなかった
222デフォルトの名無しさん
2022/04/24(日) 22:27:33.03ID:L+Cr+2nK
>>216
一言でいえば、プリミティブ型のことを言ってるんじゃなく(オブジェクトに)メソッドがぶら下がる粘着性を言っている。

いまどきの言語はRustやGoならstructで、Goならダックタイピング、Rustならクレートによるimplでそのデータを扱う機能実装を行うが
さらに考えを推し進め、D言語などでは(Pythonのself引数のように)データを引数に取るUFCと呼ばれる使い方も出来る。
関数が第一級の言語要素という考え(第一級関数)は、関数型言語には必要不可欠とされmap/reduceなどの高階関数でも
常用され、クロージャ・関数オブジェクト・無名関数と幅広く展開される。
OOPLとの明確な違いは、Classに対するオブジェクトにmethodという関数が束縛をされていないことである。もちろん上記の言語は
OOPSをサポートするが、それは多態を表現できるだけの意味しかない。

以上、D言語の宣伝です。
223デフォルトの名無しさん
2022/04/25(月) 00:02:30.63ID:m7DPUXtY
>>222
> Rustならクレートによるimplで

ちょっと惜しい
『トレイトによるimpl』が正しい
その後にD言語は更に進んでいるとの宣伝と書いてあるようだが
Rustにも当てはまることばかりなので違いがよくわからない
224デフォルトの名無しさん
2022/04/25(月) 00:27:04.32ID:GF+5hMbb
DのUFCSは任意の関数に適用できるけど
Rustは第一引数がselfなassociated functionだけだよね
225デフォルトの名無しさん
2022/04/25(月) 00:33:35.96ID:sDr1xuuT
typescriptでclassを使わないでやったときに無限にf(g(h(x)))みたいに書いたなあ
tsにもほしいわ
226デフォルトの名無しさん
2022/04/25(月) 00:34:27.96ID:LqFJ2u6k
どうしてDって今のgoやrustみたいにならなかったの?
227デフォルトの名無しさん
2022/04/25(月) 00:35:54.45ID:dSrWC4pO
DのUFCSもメンバ関数やネスト関数などには適用できない制限がある
228デフォルトの名無しさん
2022/04/25(月) 00:39:26.69ID:cR9N6Lw+
UFCSなんかなくても最初の引数の型に対してメソッド定義するだけで目的達成可能
グローバル名関数を増やして名前空間を汚さずともその型のメソッド定義がベター
229デフォルトの名無しさん
2022/04/25(月) 00:47:38.84ID:pTvSoM83
>>225
GoやRustはclassなんか無くても各型に対してメソッドを定義できるのでそういうことを招かずに済むのよ
UFCSのメリットはメソッドチェーン記法が可能になることだから最初からメソッドを定義すればいいものね
230デフォルトの名無しさん
2022/04/25(月) 00:55:00.32ID:sDr1xuuT
>>229
structかenumは定義する必要あるじゃん
tsのtypeがどういうものか分かったうえでレスしてる?
231デフォルトの名無しさん
2022/04/25(月) 00:58:26.21ID:loxtuGTD
>>230
structやenumは単なるtypeだよ
C言語でもstructと(enumの代わりにタグ無しの)unionがあるよね(ただしメソッド定義はできないけど)
232デフォルトの名無しさん
2022/04/25(月) 01:21:04.73ID:W8ZZnspt
Nim言語にもUFCSがあって関数だけじゃなくtemplateやmacroも関数と同じ文法で呼び出せるのでUFCSが使える。ただし第一引数がuntypedだとmethod call syntaxが使えない。
UFCSのメリットは標準ライブラリとか他人の書いたコードにある型とプロシージャの組に対してもmethod call syntaxが使えることだと思う。
第一引数が組み込み型のプロシージャを定義すれば組み込み型に対してmethod call syntaxが使える。
ライブラリAで定義されている型Xのオブジェクトに対してまったく別に書かれたライブラリBで定義されているgenericsなプロシージャをmethod call syntaxで呼ぶ出すことができる。
233デフォルトの名無しさん
2022/04/25(月) 01:28:09.79ID:5Adpat0k
>>230
structやenum以外でもOK
任意の型にメソッドを定義可能
234デフォルトの名無しさん
2022/04/25(月) 01:31:48.98ID:W8ZZnspt
>>228
オーバーロードがある言語なら引数が一つ以上あるグローバル関数を追加しても引数さえ異なれば同名の関数をグローバルに追加できる。
UFCSとオーバーロードがある言語では第一引数がFoo型の関数を定義するのはFoo型にメソッドを定義することとほぼ同じとみなせる。
235デフォルトの名無しさん
2022/04/25(月) 01:35:52.92ID:V8fkjI23
つまりUFCSは汚染でありリスク要因
定義していないメソッドが使えることになってしまう
UFCSがなくとも明確にその型に対して定義されたメソッドのみ対象で実用上困ることはない
236デフォルトの名無しさん
2022/04/25(月) 01:46:11.22ID:GF+5hMbb
モジュールがあるなら関数のimport有無でどの関数が呼び出されるか制御できたりしないの?
Rustのtraitのuseみたいに
237デフォルトの名無しさん
2022/04/25(月) 01:55:33.57ID:W8ZZnspt
>>235
UFCSのあるNim言語をよく使っているけど特に問題無く使えてるよ。
ライブラリAで定義された型を第一引数に持つ関数をライブラリAの外で定義してもgenerics/template/macroなど使わない限りライブラリAから呼び出せないし、ライブラリA内で使われている関数を外から勝手に上書きできない。
メソッド呼び出ししているように見えてもライブラリA内のプライベートな変数/関数はライブラリの外からアクセスできない。
method call syntaxってa.fooMethod(b)って書いてあるのを
コンパイラがfooMethod(a, b)という関数呼び出しとして解釈しているだけでなんのリスクもないよ。
第一引数にFoo型のオブジェクトをとる関数を定義してもオーバーロードがあるのでFoo型を使わない人には何の影響も与えない
238デフォルトの名無しさん
2022/04/25(月) 02:05:19.36ID:B7syBDSL
D言語のプロジェクト見て半笑いになるのやめてさしあげろ
239デフォルトの名無しさん
2022/04/25(月) 02:06:16.28ID:W8ZZnspt
>>236
Nim言語だとimportするときにfrom std/strutils import `%`みたいに特定の型/関数だけをインポートすることができるよ。
もし同じ名前で同じ引数の関数が複数定義されている場合は関数名の前に"モジュルー名."をつけないとコンパイルエラーになる。
240デフォルトの名無しさん
2022/04/25(月) 02:34:25.81ID:z8DQnMuR
結局UFCSは不要だよな
メソッド的に使いたいならば最初からその型にメソッドを生やせばよいだけ
必要ならばジェネリックに定義すれば複数の型に同時にメソッドを生やせる
わざわざグローバル関数にしておいてからメソッド的に使えます!とかメリットを一切感じない
241デフォルトの名無しさん
2022/04/25(月) 02:47:04.24ID:W8ZZnspt
>>240
標準ライブラリにある型とか他人のgithubリポジトリにあるライブラリにも自由にメソッド追加できるの?
ジェネリックにする必要が無いときでもジェネリックにしないとメソッドはやせないの?

Nim言語にはそもそもC++のメンバ関数みたいなのが無くて、第一引数がFoo型の関数がFoo型のメソッドの代わりみたいになっている。
242デフォルトの名無しさん
2022/04/25(月) 03:05:01.71ID:hhhqUz2p
>>241
ジェネリックである必要なし
もちろん同じ機能を複数の型に適用ならジェネリックで1回で済むのが普通
243デフォルトの名無しさん
2022/04/25(月) 03:21:57.26ID:FFLrto9L
>>241
うん
標準ライブラリや第三者ライブラリにある型にもメソッドを増やすことができるよ
だからUFCSが無くても困らないよ
244デフォルトの名無しさん
2022/04/25(月) 04:39:58.47ID:W8ZZnspt
UFCSがあれば引数が一個以上持つ関数であればa.f(b)ともf(a, b)とも書ける。
a.f(b)とf(a, b)の両方で書きたい場合があったらどうするの?
UFCSがなければa.f(b)で呼べるメソッドがあるときジェネリックな関数の中でf(a, b)の形式で呼ばれていたら、わざわざ新しくa.f(b)を中で呼ぶf(a, b)を定義しないといけない。
逆にf(a, b)な関数があったときに新しくメソッドを定義しなくてもa.f(b)と書ける。
それとNimだとcommand invocation syntaxがってf a, bという文法でも関数を呼べる。括弧がないので引数が複雑な式にならなければ書きやすくて読みやすいよ。
245デフォルトの名無しさん
2022/04/25(月) 05:29:11.29ID:d+UJIvmE
>>244
Rustでも可能
例えばu64型のxに対して
xのn乗はu64::pow(x, n)という関数が標準であるけど
これはx.pow(n)と呼び出すことができる
246デフォルトの名無しさん
2022/04/25(月) 08:12:23.26ID:7gaqSdm4
>>225
js/tsなら言語仕様拡張せんでも関数合成だろう。
247デフォルトの名無しさん
2022/04/25(月) 08:55:43.85ID:VjXpH6fC
>>231
>>233
tsではどうやるの?
248デフォルトの名無しさん
2022/04/25(月) 11:59:33.54ID:QEeStXPn
>>241
既存の型にもメソッド追加できるよ
例えばJavaScriptならこんな感じ

// 文字列にhello()を追加
String.prototype.hello = function() {
console.log(`Hello ${this}!`);
};

// 数値にhello()を追加
Number.prototype.hello = function() {
console.log(`Hello ${this}!`);
};

"abc".hello();
// 123.hello(); // 文法エラー
let num = 123;
num.hello();
249デフォルトの名無しさん
2022/04/25(月) 12:16:38.60ID:VSqj5wTk
Rustではジェネリックにメソッド追加することも可能

// メソッドhello()を持つトレイトHelloを宣言
trait Hello {
fn hello(&self);
}

use std::fmt::Display;
// 表示可能トレイトDisplayを満たす全ての型に対してhello()を実装
impl<T: Display> Hello for T {
fn hello(&self) {
println!("Hello {self}!");
}
}

fn main() {
"abc".hello();
123.hello();
}
250デフォルトの名無しさん
2022/04/25(月) 12:41:05.03ID:GF+5hMbb
既存の型へのメソッド追加はプロトタイプ汚染とか言われて忌避されてるよね
他モジュールへの影響の出ない形でメソッド追加する手法が望ましい
251デフォルトの名無しさん
2022/04/25(月) 12:53:37.30ID:BAh3CRfm
>>250
JavaScriptはプロトタイプがグローバルに書き換わり全てのモジュールに適用されるためだな
一方でRustはメソッドを追加するにはトレイトを用意することが必要、そしてトレイトが宣言/useされている空間のみ有効、なので汚染が生じず安全
252デフォルトの名無しさん
2022/04/25(月) 13:16:10.20ID:GF+5hMbb
>>251
型を定義した以外のcrateでメソッドを追加するためにはtraitが必要、が正しいかな
メソッドを追加するためにはtraitなしのimplを書く方法もあるが、これをできるのは型を定義したcrateだけに制限されているので他crateで定義を追加して汚染することはない

とまあRustの事情は知ってるんだけど、他の言語ではどうなってるのかが知りたかった
253デフォルトの名無しさん
2022/04/25(月) 13:16:45.41ID:BiVUGBJZ
知ってるけど今そんな話してるんじゃないんだわ
254デフォルトの名無しさん
2022/04/25(月) 13:22:02.11ID:UiNQmXr4
JavaScriptで脆弱性を生みまくってさんざん問題視されたんだから、いまどきそんな汚染が起こる新しい言語は一つもないよ
255デフォルトの名無しさん
2022/04/25(月) 13:30:18.88ID:5sWL1sIQ
他の言語でもメソッド追加方法を教えて
今のところ
JavaScript >>248
Rust >>249
256デフォルトの名無しさん
2022/04/25(月) 13:46:50.81ID:BiVUGBJZ
発端になったD言語のUFCSハブられてるのなんで?
257デフォルトの名無しさん
2022/04/25(月) 13:58:52.24ID:TLzTt+1G
>>256
UFCSはメリット無いからでしょ
メソッド追加できるなら関数よりメソッドの方が名前空間を汚さないし
258デフォルトの名無しさん
2022/04/25(月) 14:21:14.88ID:UiNQmXr4
>>256
nimには採用されてるし、調べてみるとC++にも導入の提案がされてるみたいだから、それほどハブられてないのでは?

Bjarne Stroustrupの提案: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4174.pdf
Herb Sutterの提案: https://isocpp.org/files/papers/N4165.pdf
259デフォルトの名無しさん
2022/04/25(月) 14:24:50.73ID:S1pQjSZ5
UFCSはメソッド名空間の汚染
だから採用しないのが正解
260デフォルトの名無しさん
2022/04/25(月) 15:13:03.71ID:B7syBDSL
結局メソッド生やしたいんじゃなくてプライベートメンバにアクセスしたいだけなんだよな
261デフォルトの名無しさん
2022/04/25(月) 15:22:37.45ID:sJr09n4H
>>259
汚染言うならRustのtrailと同レベルじゃない?

関数をincludeしなければ影響無いんだし、言語次第だけど名前空間に閉じ込めることもできるだろ。
262デフォルトの名無しさん
2022/04/25(月) 15:28:02.41ID:VN4zR5UM
>>261
Rustは一切汚染しません
何を誤解しているのですか?
263デフォルトの名無しさん
2022/04/25(月) 15:36:09.96ID:3MmiqOlF
いやトレイトで似たようなメソッドがたくさんぶら下がって汚染されてますよね?それが更にハードルが上がる一因になってる
264デフォルトの名無しさん
2022/04/25(月) 15:46:00.36ID:ZqKc7K5J
>>263
Rustでは明示的にuse Traitしない限り
そのトレイトのメソッドが有効になることはないよ
汚染は起きず安全に設計されている
265デフォルトの名無しさん
2022/04/25(月) 15:55:06.48ID:UiNQmXr4
>>264
当然、D言語でもnimでも、importしたシンボルは、importされたスコープでしか有効にならないし、メソッド形式の呼び出しもできない
Rustと何が違うんだよ
266デフォルトの名無しさん
2022/04/25(月) 16:00:14.18ID:xSu4vg9o
UFCSは強制汚染
関数として必要なだけなのにメソッド名空間を汚染
メソッドとして必要なだけなのに関数名空間を汚染
だから採用する言語がほとんどない
267デフォルトの名無しさん
2022/04/25(月) 16:01:50.20ID:3MmiqOlF
>>264
イヤイヤ、そんなのほとんどの言語でimportやincludeと同じで更に言えば、use std::io::prelude::*;みたいにRustでもPythonでも
誤ったやり方とされてるワイルドカードだって使えるんだから一緒でしょ。明確に言うなら”汚染は起きず”ではなく、汚染は当然ながら
useするのだから起きている。無意味にuseしない*を使わないというのは言語仕様や特性じゃなく規約だよ
268デフォルトの名無しさん
2022/04/25(月) 16:08:08.42ID:UiNQmXr4
スコープやシンボルが限定されてるのに汚染と呼ぶのはおかしい
269デフォルトの名無しさん
2022/04/25(月) 16:09:49.70ID:Ld005CpI
>>267
Rustでは追加メソッドを使う場合
必要な機能のTraitだけを
use TraitName as _; する
そのため汚染は起きない
270デフォルトの名無しさん
2022/04/25(月) 16:18:54.63ID:EM9X2zpO
>>264
ほんとRustニワカ嫌いだわ、「明示的にuse Traitしない限り」なんて良くそんな詭弁が言えるわ。どう考えても一緒でしょう
だからPythonだってas構文使えますし、D言語だってimport std.stdio : writeln, writefln;で選択的インポートできるでしょw
271デフォルトの名無しさん
2022/04/25(月) 16:21:12.54ID:PqJDEf6z
Rust聖戦士がワラワラ
他の言語のスタイルはすべてアンチパターン
272デフォルトの名無しさん
2022/04/25(月) 16:23:34.31ID:NxLuUrhR
>>269
Underscore importなんてRustがトレイトのシンボルが別のシンボルと競合する可能性がある場合、つまりRustが破綻しないように
特別にあるだけで、汚染の低下のための機能ではないぜ。ここで汚染といってるのは無暗にメソッドが追加される事。
(回避策が仮に無ければ)衝突することはもはや、言語的な欠陥だ
273デフォルトの名無しさん
2022/04/25(月) 16:27:35.43ID:KFrD7nO2
使われる空間に名前が載ることを汚染とは言わない
使わない空間に名前が載ることを汚染と言う

UFCSが汚染と言われる理由は
関数として使いメソッドとして使わなくてもメソッド名空間に載り
メソッドとして使い関数として使わなくても関数名空間に載るためだと考えられる
274デフォルトの名無しさん
2022/04/25(月) 16:34:56.30ID:NxLuUrhR
>>273
Rustだって、fn中にuse出来るわけでそれはほかの言語でも同じ。そう言う事はあまりしないけども、多くの言語で同じように”使われる空間”だけに載る
275デフォルトの名無しさん
2022/04/25(月) 16:36:52.48ID:UB00PZWU
RustがUFCSを採用しないのは単に、パーサーをオブジェクトを先して作り直すと(C言語にわざと似せてる)見た目が変わってしまうし
パーサーに手を入れるということは苦労してきたコンパイル速度が低下してしまう恐れがあるという事だけ
276デフォルトの名無しさん
2022/04/25(月) 16:37:55.90ID:ZcyGlXND
>>273
その程度で汚染とか言うの聞いたことねえよ
ESModuleとかが導入される前のJSのグローバル汚染なんかと比較してみ?
Rust上げしたいがためだけのただのイチャモンだよお前の主張は
277デフォルトの名無しさん
2022/04/25(月) 16:39:18.63ID:Ktg4GXmX
>>272
Rustでは汚染は起きないですよ

>>274
そうです 
だからRustでは>>273の汚染という状況は発生しないですね
278デフォルトの名無しさん
2022/04/25(月) 16:40:19.19ID:WnCW0ZaS
そもそもUFCSは汚染だなんてここ以外で聞いたことがないんだけど
279デフォルトの名無しさん
2022/04/25(月) 16:44:16.36ID:LpKzCT90
>>273
UFCSとやらはムダに汚染しまくるクソな機能だな
280デフォルトの名無しさん
2022/04/25(月) 16:46:59.96ID:EmEbSMmo
Rustの宣伝はこんな匿名掲示板じゃなくQiitaとかに書いてほしいな
その反応で実際に正論なのか暴論なのか明らかになるだろう
281デフォルトの名無しさん
2022/04/25(月) 16:49:37.58ID:ZJMHR0C4
UFCSという汚染機能をサポートしているプログラミング言語はDとNim
埋もれた言語となったのも当然の結果
282デフォルトの名無しさん
2022/04/25(月) 16:50:47.89ID:WnCW0ZaS
汚染だとか書いてるのは全部ガイジだな
283デフォルトの名無しさん
2022/04/25(月) 17:00:21.10ID:AtUdeTix
ほとんど全ての言語がUFCSを採用していない理由はメリットが無いからだと思う
そして無条件に二つの名前空間に登録されてしまうことを汚染と呼ぶかどうかは置いておくとしても本末転倒の方法かなとは感じる
284デフォルトの名無しさん
2022/04/25(月) 17:01:11.49ID:XBfmr4Gp
>>275
さらにRustは実装としてUFCSを別の意味で誤って使っていた過去がある、::パス構文で混乱を引き起こして曖昧性が起きた。2017年頃でそんなに優れた開発者がおらずなんとなく実装していた時期だな、いつもはRustは論文がしっかりしてると嘯くのに
285デフォルトの名無しさん
2022/04/25(月) 17:02:36.89ID:+vVlR4Vp
やっぱりUFCSは悪だな
286デフォルトの名無しさん
2022/04/25(月) 17:12:43.76ID:PqJDEf6z
次スレはもうRust消そう
話にならん
287デフォルトの名無しさん
2022/04/25(月) 17:19:42.27ID:o63SmoRM
>>286
Rustは関係ないんじゃね?
むしろRustのアンチ側がなぜかRust叩きしていて巻き込まれ被害側にみえる
288デフォルトの名無しさん
2022/04/25(月) 17:26:05.13ID:PqJDEf6z
どっちでもいいよ
信者だろうがアンチだろうがあらゆる話題がRustとの比較になって宗教戦争化するのが馬鹿馬鹿しすぎる

Rustの話題はスレ違いなのでRust叩きもスレ違いとする、問題解決
289デフォルトの名無しさん
2022/04/25(月) 17:26:35.89ID:4xqZqLmv
ほぼ全ての言語がUFCSを採用していない
しかしUFCSが叩かれるとなぜか必死にRustを攻撃してくれる
一石二鳥と言えるだろう
290デフォルトの名無しさん
2022/04/25(月) 17:38:49.59ID:63+wFQ6i
C++委員会での議論でもメンバ関数と非メンバ関数で衝突したときにどう解決するかで割れて否決されたみたいだし、なかなか難しそうだね
291デフォルトの名無しさん
2022/04/25(月) 17:51:06.52ID:BSwMXBpD
考えてみたがUFCSは完全に不要っぽい
まずメソッドとして使いたいものは最初からメソッドとして書けばよい
次に外部の関数をどうしてもメソッドとして使いたいならばその外部関数を呼び出すメソッドを追加すればよい
292デフォルトの名無しさん
2022/04/25(月) 17:53:13.68ID:VVkmIp+6
衝突が問題ならUFCSの使用は記号などを使って明示したらいいんじゃないかな?
293デフォルトの名無しさん
2022/04/25(月) 18:02:36.22ID:DhJCopPa
「Rustを攻撃」ってどっちも同じでしょって言ってるだけなのに、このように攻撃を受けたと勘違いするんだから、正常な議論なんて出来ない。
UFCSについて難癖付けてるだけじゃん、個人的には別に必要ないと思うし、仮にあったら便利だとも思うが。コンパイル時間が増えるのは許容できない
「Rustのアンチ側」なんて言い出すクズどもとまともな話なんて出来るわけない。
こんな奴らばっかり増やしてもRustの普及を妨げてると思うんだけど?
294デフォルトの名無しさん
2022/04/25(月) 18:07:17.52ID:3bYGoG0a
スレ読んだけど
汚染でも何でもなくRust特有の問題でもないことをRustは汚染だと延々と叩いてるのは異常に感じた
295デフォルトの名無しさん
2022/04/25(月) 18:08:46.62ID:sJroCDvH
今のところUFCSがある言語と外部のデータ型に対してメソッドを追加できない言語、メソッドを追加できる言語とできない言語のそれぞれは前者が勝手で勝るけど、前者同士では好みとか実現手法の違い程度の話のように感じてる
UFCSも結局モジュール単位で環境が分離されている事が殆どのようだし、どちらかじゃないとできない事も、どちらかだと発生する致命的な不都合も見えてこない
一見機能が不要に見えても、その採用理由が他の要素に起因してたりもするだろうし、その辺私はUFCS採用言語のことを詳しく知らないのでなんとも言えないな
296デフォルトの名無しさん
2022/04/25(月) 18:09:37.23ID:9QpKK4x8
>>292
C++での議論では当然そういう案含めていろいろ提案されたけど、結局どれも一長一短で委員会での合意には至らなかったみたい
一人で作ってる言語なら作者の好みでサクッと入れられちゃうんだろうけどね
297デフォルトの名無しさん
2022/04/25(月) 18:11:19.66ID:DhJCopPa
汚染と言わなくても、Rustがuseで似たようなメソッドがたくさん出てくるのは本当でしょ、UFCSにしてもそれはイコールで何ら変わらんわ
なんでこいつらマトモに話すら出来ないの?コーディング能力を持ってるんだろうけど、コミュニケーション能力はゼロに近い
298デフォルトの名無しさん
2022/04/25(月) 18:11:26.99ID:VVkmIp+6
メソッドが動詞ならUFCSでは関係が逆になるんだよね
英語圏の人はどう思ってるんだろ
299デフォルトの名無しさん
2022/04/25(月) 18:15:08.57ID:Xt13Fv0a
>>298
OSV言語の自然言語に近くなるから、オブジェクトが先に来るのは利点として受け止められてる。でも所詮はシンタックスシュガーの何者でもない
300デフォルトの名無しさん
2022/04/25(月) 18:16:12.91ID:TDNc/5Gc
>>297
> 似たようなメソッドがたくさん出てくる

そこ意味がわからない
似たようなメソッドがたくさんとは何?
301デフォルトの名無しさん
2022/04/25(月) 18:19:11.55ID:VVkmIp+6
C#にも拡張メソッドと言う名前でほぼ同じ機能が使えるけどそっちは拡張メソッドオンリーで使う前提で作られてる
302デフォルトの名無しさん
2022/04/25(月) 18:23:57.49ID:WnCW0ZaS
似たような機能はいろんな言語にあるよね
303デフォルトの名無しさん
2022/04/25(月) 18:31:31.86ID:5qzMTDWR
>>299
英語はOSVじゃなくSVOな?OSVになることもあるけど、そして世界の自然言語の主流は日本語と同じくSOVが40%
参考としてスター・ウォーズのジェダイ・マスター:ヨーダは、このOSV語順で話す。
304デフォルトの名無しさん
2022/04/25(月) 18:34:58.90ID:VVkmIp+6
var s=copy(section);
paste(s);
みたいなのがあって

これを
paste(copy(section)):
とするより
section.copy().paste();
のほうが受け入れ易いってことだよね?
305デフォルトの名無しさん
2022/04/25(月) 18:42:40.14ID:pOd33Olh
>>304
最初からメソッドとして書けば済む
306デフォルトの名無しさん
2022/04/25(月) 19:05:29.73ID:8yiD5uPx
Methods! You will be written first, but many are not.
307デフォルトの名無しさん
2022/04/25(月) 19:07:02.73ID:tSjXYtJn
>>305
ところがどっこい var sのsはメソッドを生やせないstring型だ

常にメソッドを生やせるとは限らないし、元のクラスに必要以上の仕事を増やさないためにから拡張メソッドという概念があるんだよ
308デフォルトの名無しさん
2022/04/25(月) 19:15:14.85ID:VVkmIp+6
スコープでuse出来て局所ごとにsection.print()の意味が変わる場合も便利だと感じる?
309デフォルトの名無しさん
2022/04/25(月) 19:28:32.34ID:WnCW0ZaS
メソッドじゃなくて関数や変数でも、スコープごとに意味が変わりうるのは当然のこと
310デフォルトの名無しさん
2022/04/25(月) 19:29:22.19ID:9QpKK4x8
拡張メソッドが欲しいのはまぁ分かるんだけど
UFCSまでいくと普通の関数のつもりが意図せずメソッド呼び出しできてしまう、みたいなデメリットの方が大きくなる気がするなぁ
311デフォルトの名無しさん
2022/04/25(月) 19:33:06.80ID:m1bq2XCo
なぜRustが叩かれていたのかようやく理解できた
Rustでは基本の型にも外部の型にもメソッドを追加できるわけか
そのためメソッドを自由に追加できない言語の人が逆恨みで叩いていたと
312デフォルトの名無しさん
2022/04/25(月) 19:35:49.53ID:VVkmIp+6
"test".print();が局所ごとに意味が変わると気持ち悪い
313デフォルトの名無しさん
2022/04/25(月) 19:37:37.15ID:3TQSNLUR
>>266
Nimだと「メソッド名空間」自体が無いから、そんな議論をするのは無駄だね。
314デフォルトの名無しさん
2022/04/25(月) 19:43:06.53ID:DNOUKEV3
>>312
え?logging.rsに"test".print();と書いてあるのと、printer.rsに"test".print();で意味が変わるのはなんも関係無くねえ?
つーか普通に関数でprint("test")だのsaveだの、getだの散々やってるじゃん。気持ち(悪い)の問題なんだろうけどさ
315デフォルトの名無しさん
2022/04/25(月) 19:46:57.59ID:3TQSNLUR
>>311
それはNimも同様。
むしろNimの方がメソッドと関数を統一しているから(記法が違うだけ)、より自然に拡張できる。

>ぜRustが叩かれていたのかようやく理解できた
>逆恨みで叩いていたと

こういうアホなことを言う狂信者ばかりだからだよ。
316デフォルトの名無しさん
2022/04/25(月) 19:56:02.27ID:W8ZZnspt
RustのメソッドとかC++のメンバ関数のような特定の型だったりトレイトに束縛された関数のようなものがNimにはなくて、自由関数だけがある。
だからNimからUFCSをとったらC言語のように全ての関数をfoo(x, y, z)って書かないといけなくなっちゃう。
UFCSがあるおかげでどんな関数もx.f(y,z)だったりf(x, y, z)とか自由に書ける。
UFCSで関数がメソッドになるとプライベート変数/メソッドにアクセスできちゃうって勘違いしている人がいるかもしれないけどNimではそれは起きない。
C++のメンバ変数に相当するものや関数のアクセス権はモジュール外にそれを公開するかしないかのどちらかしかない。
317デフォルトの名無しさん
2022/04/25(月) 19:57:52.87ID:s4irQrJG
>>315
Nimでも自由にメソッドを追加できるならばUFCS必要なくね??
318デフォルトの名無しさん
2022/04/25(月) 19:59:13.38ID:9XvEg3RG
>>314
逆にprint_to_printer()とか print_to_consoleとか書いてあったら発狂するかもしれんわ
一番使うdebug_assert_eqとかヤメテほしい・・・、あと帰ってくる正式な型名が異様に長くなるのもC++の悪いところを引き継い出るような感じがする
319デフォルトの名無しさん
2022/04/25(月) 20:05:33.97ID:4uqCvk4R
>>316
自由関数しかないNimは関数名空間が常に汚染されてしまうのね
普通のプログラミング言語ならばメソッド名として名前空間が分離されるのよ
320デフォルトの名無しさん
2022/04/25(月) 20:06:59.77ID:0BSsoGgf
std::iter::emptyは名前空間を汚染するので使ってはいけません

アホか
321デフォルトの名無しさん
2022/04/25(月) 20:09:08.19ID:9XvEg3RG
>>319
1つも調べもせんのな、自由関数だけじゃなくmethodもある。つーかおまえRust使うの止めてJavaやってろ、まじ迷惑
322デフォルトの名無しさん
2022/04/25(月) 20:09:29.47ID:VVkmIp+6
グローバル関数じゃなくて?
323デフォルトの名無しさん
2022/04/25(月) 20:10:31.91ID:3TQSNLUR
>>317
>>316にまとまっているよ。
メソッドが無くて、ただの記法の違いでしか無いからこそUFCSのメリットを最大限享受できる。

>>319
メソッド名を関数名から「常に」分離するメリットは?
関数自体をモジュールとかで分離して管理できればいいんじゃないのかね。
324デフォルトの名無しさん
2022/04/25(月) 20:13:13.14ID:xcxOK/uY
やはり逆恨みで無関係なRust叩きやってる説が正しいかもしれん
Rustが無関係な状況でも>>321のように唐突にRustを出してくる
325デフォルトの名無しさん
2022/04/25(月) 20:21:15.47ID:51f23UG1
逆恨みだの、攻撃だの、ずーーとこんな事言ってる奴いるけど完全なびょーきだと思う。名前空間が汚染されないという言語はお前の中で具体的に何?
326デフォルトの名無しさん
2022/04/25(月) 20:21:37.03ID:5gWGwAdH
もうケンカしてる人らが最強次世代言語作れば
327デフォルトの名無しさん
2022/04/25(月) 20:23:23.46ID:PqJDEf6z
逆恨みとか、自我と言語が密結合していない限り出ない言葉だよな
用途目的に応じて言語を使い分ければ良いのに

つまりそういうことだ
328デフォルトの名無しさん
2022/04/25(月) 20:26:24.56ID:bFDhmU1p
おそらくNimの人がずっとRustを仮想敵にでもしてるのかもな
だからNimに不利っぽい書き込みがあるとRustの話がどこにもなくても無意識にRustを叩いてしまってるのかもな
329デフォルトの名無しさん
2022/04/25(月) 20:26:38.57ID:WnCW0ZaS
ローカルのスコープしか影響しないのに、わざわさわ汚染とか言うの意味わからん
紛らわしいからやめろ
330デフォルトの名無しさん
2022/04/25(月) 20:27:48.66ID:WnCW0ZaS
> わざわさわ汚染
タイポしてた
わざわざ汚染
331デフォルトの名無しさん
2022/04/25(月) 20:29:25.14ID:3QooPOGs
例えば新しい言語が出来て人気を博したら、RustにもNimにもDにもSwiftなどにも存在しない機能や、シンタックスシュガーになるわけで
それを指摘したら、逆恨みだの、攻撃だの、アンチだの言いだしたらこのスレはマジ必要ない。
なんで無いのか考察を言ったり、コンパイル時間への影響とか、現行の構文が大きく変わってしまうとかそういうのを述べるならまだしも
UFCSが汚染だとキチガイのように書いてる。マジこんなやつ迷惑だろw
332デフォルトの名無しさん
2022/04/25(月) 20:34:31.02ID:fIAeID6q
このスレを「汚染」で検索してそれら書き込みを見るとプログラミング言語名の最多登場がRust
なぜRustを汚染と叩く書き込みが多いのか不思議
333デフォルトの名無しさん
2022/04/25(月) 20:35:18.96ID:PqJDEf6z
>>228とか>>235みたいな、主観と思い込みによる断定から荒れ始めたんだよな
そこからおそらく自己正当化のために独自の「汚染」を定義
誰にも賛同されないと逆恨みだの攻撃だの仮想敵だの
334デフォルトの名無しさん
2022/04/25(月) 20:38:37.94ID:kDkXz7wX
>>333
それはもちろん同感だが
同時に発生しているRust汚染叩きは何なのだろう?
335デフォルトの名無しさん
2022/04/25(月) 20:48:57.83ID:VVkmIp+6
rustは錆なんだから汚染ぐらいでどうこう言うのもちょっと
336デフォルトの名無しさん
2022/04/25(月) 20:54:23.26ID:GhM9BPSc
Rustに対してとにかく言いがかりつけてるアレな人が前からおるやん
今回もそれだろ
有名人が叩かれる有名税みたいなもんや
337デフォルトの名無しさん
2022/04/25(月) 21:10:54.21ID:EYilt5eX
いーや一番言いがかりで汚染されてるのはこんスレとロシアだと思いますわ。反枠&陰謀論!病院池
338デフォルトの名無しさん
2022/04/25(月) 21:27:42.00ID:l9I/osPN
有名税か
逆恨みやストレス発散でバッシングする連中多いもんな
339デフォルトの名無しさん
2022/04/25(月) 21:47:49.04ID:iMu4Hfqd
>>332 >>334
事実に基づかない嘘で被害者面するのやめるべきだな。
このスレで「汚染している」と難癖つけられているのはUFCSだろ。次点でNim。Rustはあったっけ?
340デフォルトの名無しさん
2022/04/25(月) 21:58:12.43ID:Hqs3zbo6
ケンカはやめて><
341デフォルトの名無しさん
2022/04/25(月) 22:11:48.53ID:EH/Dcnf1
ふたりを とめて〜
342デフォルトの名無しさん
2022/04/25(月) 22:17:54.71ID:PqJDEf6z
有名税とか言う前にまずDとNimとUFCSを無理筋でこき下ろした件に対するごめんなさいは?
343デフォルトの名無しさん
2022/04/25(月) 22:34:36.42ID:BiA6VIMH
あと無関係な争いに巻き込まれたRustも可哀想
344デフォルトの名無しさん
2022/04/25(月) 23:13:51.83ID:W8ZZnspt
調べたところRustにもUFCSがあるようだけど。
https://doc.rust-lang.org/1.30.0/book/first-edition/ufcs.html
345デフォルトの名無しさん
2022/04/25(月) 23:32:05.72ID:PJo8eL2A
それ古い版のthe bookだし>>224の条件付きだからUFCSってあるってだけだよ
346デフォルトの名無しさん
2022/04/25(月) 23:34:40.87ID:PJo8eL2A
途中送信した
条件付きだからこれをUFCSと呼ぶのは誤用ってことで今は使ってないよ(>>284
347デフォルトの名無しさん
2022/04/25(月) 23:52:22.15ID:+dAy6ibx
>>344
もちろんRustにもあるけど微妙に違うので今はUFCSとは呼ばなくなった
その微妙な差というのは既に>>245で書いたように

> 例えばu64型のxに対して
> xのn乗はu64::pow(x, n)という関数が標準であるけど
> これはx.pow(n)と呼び出すことができる

とメソッド形式でなく関数形式の時に型名等の前置パスで常に制限される
348デフォルトの名無しさん
2022/04/26(火) 00:24:29.22ID:HRWQKuSX
ほんのわずかだけ違うとはいえ
D、Nim、RustといったUFCS対応言語は2通りの記述方法が出来て便利で良いですよね
349デフォルトの名無しさん
2022/04/26(火) 07:04:16.95ID:Y0YWAbka
Goってマジで終わりかけてる?
使う価値あんまり感じなかったのは事実だけどw
350デフォルトの名無しさん
2022/04/26(火) 07:06:24.67ID:nY6A0xRe
バカヤロー、まだ始まっちゃいねぇよ
351デフォルトの名無しさん
2022/04/26(火) 09:33:09.74ID:N3l9Q94/
Goジェネリクスの実装とパフォーマンスについて
https://www.infoq.com/jp/news/2022/04/go-generics-performance/
352デフォルトの名無しさん
2022/04/26(火) 10:53:42.88ID:jf0A6U3h
>>260
ちげーよ。
記法の問題。
353デフォルトの名無しさん
2022/04/26(火) 11:05:30.65ID:jf0A6U3h
>>295
これが正しい
354デフォルトの名無しさん
2022/04/26(火) 11:06:06.60ID:jf0A6U3h
>>295
これが正しい
355デフォルトの名無しさん
2022/04/26(火) 12:45:23.73ID:AcQNW5IU
>>295
(UFCS方式を含めて)メソッドを追加できない次世代言語が存在するのですか?
356デフォルトの名無しさん
2022/04/26(火) 13:27:25.51ID:jf0A6U3h
頭痛くて寒気すると思ったら熱あったわ。
357デフォルトの名無しさん
2022/04/26(火) 13:49:04.73ID:US6qo08V
>>355
Rust、Kotlin、Swift、C#は拡張できるし、メソッド形式呼び出しがあるモダン言語なら必須機能っぽいけどね
358デフォルトの名無しさん
2022/04/26(火) 14:12:26.27ID:DbGjJV4L
最後にGoの悪口に収束するのは、おまいらの悪い癖だと思う

>>356
現代日本の片づけのキモはゴミ在庫の管理だ。 これはコンマリも言ってない..
pptppc2 「キモ」「ゴミ」とかいうワードが真っ先に出てくると身構えてしまう。
359デフォルトの名無しさん
2022/04/26(火) 14:18:27.51ID:jETt/1T7
>>357
スレタイにある言語だと
TypeScriptもJavaScriptだからメソッド追加可能
残るGoは?
360デフォルトの名無しさん
2022/04/27(水) 10:39:21.30ID:8eBizIGw
nimググってみたけどけっこう良さそうな言語じゃん。
361デフォルトの名無しさん
2022/04/29(金) 09:51:11.18ID:nibPTxk+
Go開発者の92%が「Go言語に満足」
https://mag.osdn.jp/22/04/27/135700
362デフォルトの名無しさん
2022/04/29(金) 11:41:20.06ID:nnpkzAOE
>>360
自演乙
363デフォルトの名無しさん
2022/04/29(金) 11:41:58.13ID:nnpkzAOE
>>361
ガイジの中のガイジ煮詰めたデータに何か意味あるんか?
364デフォルトの名無しさん
2022/04/29(金) 11:48:23.80ID:HTMH1VGQ
なんかの統計でphpも満足度が高かったような
365デフォルトの名無しさん
2022/04/29(金) 11:57:31.13ID:izq7WstO
Nimは100%ですよ
366デフォルトの名無しさん
2022/04/29(金) 12:04:51.33ID:okzbgZOG
>>362
何いちゃもんつけてんだ。
nimは使ったことすらねーわ。ググっただけだ。
一応このスレタイトルのtypescriptとgoは使ってる。
367デフォルトの名無しさん
2022/04/29(金) 12:06:43.44ID:0R1ha4qI
サーチフレンドリな名前ではある
368デフォルトの名無しさん
2022/04/29(金) 14:28:08.64ID:bzqD+Da/
生存者バイアスとしか…
369デフォルトの名無しさん
2022/04/29(金) 15:45:25.25ID:nnpkzAOE
phpは障害者雇用枠だから
370デフォルトの名無しさん
2022/04/29(金) 19:23:50.76ID:fXQBWCQI
前にも書いたけど学校のサイトとかをワードプレスで運用してるところ結構あるんだよね
他の言語では先生達に書き換えて運用とか無理だと思う

PHPはそういう用途に向いてる
絶対そこはRustとかGoにはならない
371デフォルトの名無しさん
2022/04/29(金) 19:44:01.30ID:Crnvpu67
言語と人を比較して言うのだが
PHPを批判するような子は
たいていPHP以下の存在
そして必ずPHPの作者以下の技量
372デフォルトの名無しさん
2022/04/29(金) 19:58:05.95ID:FaPJ+Yjv
たぶんPHPが存在してなければ、また誰かが気軽にwebサイトをさらっとかけるスクリプト言語をRustのようなシステムプログラミング言語で開発していただろう
そしてそれはPHPのようなものになるのだろうね
373デフォルトの名無しさん
2022/04/29(金) 21:18:48.98ID:nnpkzAOE
たしかにPHPが障害者を吸ってくれたおかげで助かってるところはあるかも
ITの汚物入れ、人類最底辺のクズ、エタヒニン・罪人
それがPHPoor
374デフォルトの名無しさん
2022/04/29(金) 21:24:48.98ID:cvAz2ZRh
Reasonってどうですか?

https://reasonml.github.io/
375デフォルトの名無しさん
2022/04/29(金) 22:15:53.12ID:K6x/4GwT
こんスレってなぜかJuliaの話、完全スルーするよな。Go?Rust?Zig?Nim?時代遅れのローエンド言語や
376デフォルトの名無しさん
2022/04/29(金) 22:27:03.12ID:gkaMUNbq
>>370
GoとPHP、どっちも使わない人からしたら大して変わらない説。
377デフォルトの名無しさん
2022/04/29(金) 22:38:01.94ID:awtM9gjL
>>373
よっぽど根に持ってるんだな。
ちょっと病的な感じ。
378デフォルトの名無しさん
2022/04/29(金) 22:48:27.27ID:6EgfuGip
ローエンド言語なんて言葉ある?
ローレベル言語ならわかるけど
379デフォルトの名無しさん
2022/04/29(金) 22:57:18.29ID:IOMhb3u+
>>375
単に知られてないから話題に反応できないだけだと思う
良いところ教えてよ
380デフォルトの名無しさん
2022/04/29(金) 23:02:55.81ID:kzHHMnSC
Julia、せっかく新規言語で型付けと動的性のバランスを取れる立ち位置にあったのに、抽象-具象の継承ベースの型を採用した部分が個人的にジェネリクスと噛み合いが悪いと思っていて悲しい
1-originとかは正直瑣末事だと思ってる分そこだけが本当に合わない

一応最新バージョンだとパラメトリックな抽象型とそのパラメータに抽象型を使えるし、その部分型をパラメータにも抽象型コンストラクタ(?)にも適用できるから実用上十分なんだと思うが
381デフォルトの名無しさん
2022/04/29(金) 23:13:16.89ID:6EgfuGip
JuliaのユーザーってPythonは当然として、他にはMATLABやRが競合になるようなコミュニティだから、
このスレとはまるで層が違うんじゃないかな
MATLABやRの話も全く出ないし
382デフォルトの名無しさん
2022/04/29(金) 23:27:24.69ID:awtM9gjL
Juliaって計算科学や数値解析に特化した、R言語みたいなものでしょ?
383デフォルトの名無しさん
2022/04/29(金) 23:34:47.33ID:fFwxA39Q
Julia厨はクソみたいな押し付けするくらいなら
自分で他言語のライブラリの移植でもした方がよっぽど使ってもらえるという当たり前のことすら理解してないからな。
384デフォルトの名無しさん
2022/04/29(金) 23:47:45.01ID:dUco7/4p
>>380
その継承が中途半端なことしかできないし
継承を採用したことも失敗してるし
Juliaはあかんね
385デフォルトの名無しさん
2022/04/30(土) 00:03:38.50ID:UesQSoYk
継承は基底クラスと派生クラスの役割(責務)の分担が非常に難しいです。
よほど上手く設計しないと、すぐに「スパゲッティ・オブジェクト・プログラム」ができあがります。
継承は実装の再利用という面があるので、得てしてコピペの代わりに使われがちでもあります。
既存のあるクラスの振る舞いをちょっとだけ変えたいから継承を使おうってやってしまうと、
派生クラスのソースを見ただけでは何をやってるのか全くわからない最悪のコードになります。
まだコピペのほうがマシなことも。

最初はちゃんとクラス階層の設計がされていたとしても、だんだん皆が使う共通ルーチンを基底クラスに持たせよう、としてしまうとか、
基底クラスは、すぐに、巨大かつ影響範囲が広すぎてイジれない「神クラス」になるでしょう。
この場合の基底クラスの役割は、グローバル変数そのものと言ってよいですね。

とにかく、継承を使うと、コピペ、グローバル変数の使用、といった「禁じ手」と実質的に同じことが簡単にできてしまいかねません。
もし継承を使うのであれば、かなり注意が必要です。

その一方で、継承でないと絶対にダメという用途もあんまりないのです。
継承を一律禁止してしまってもそんなに困らないところがあります。
そのため最近ではGoやRustなど言語の仕様として継承(インタフェースではない実装を持つクラスの継承)を禁止している言語が増えているという有り様です。
386デフォルトの名無しさん
2022/04/30(土) 00:45:40.28ID:JnqjPuKd
今北産業
387デフォルトの名無しさん
2022/04/30(土) 00:48:57.89ID:LJ+fWFU3
長い。そして間違っている。
Rustは代わりにtraitで継承を表現できるが、Goは表現する方法はなく、似たことをするとデータ構造を弄くることになる。
そもそも継承においてはデータ構造と実装の併合が問題なので、あとは察してください。
388デフォルトの名無しさん
2022/04/30(土) 00:53:39.80ID:03/a5/ox
じゃあ継承使わないでプラグイン機構使いたいときはどうすんの?
389デフォルトの名無しさん
2022/04/30(土) 00:55:27.41ID:xinPqoeI
プラグイン機構とだけ言われても意味が一意じゃないと思うけど
mixinのことかいな?
390デフォルトの名無しさん
2022/04/30(土) 00:56:29.80ID:5YZgJnSQ
Composition over inheritanceは30年近くも前のGoFですでに広まってるのになぜ次世代言語スレで話題になるんだろう
391デフォルトの名無しさん
2022/04/30(土) 01:03:52.06ID:xinPqoeI
ていうかJuliaの型システム知らなかったから簡単に調べたけど具象型はsupertypeになれないとか書いてあるんですが
Juliaでもいわゆる継承の問題点はちゃんと回避されているんではないですかね
392デフォルトの名無しさん
2022/04/30(土) 01:17:16.86ID:mZJBhlPe
>>391
継承とジェネリクスとの相性の悪さが問題なのではないかな
393デフォルトの名無しさん
2022/04/30(土) 01:19:25.03ID:onyz3Xxm
>>390
その後に継承のデメリットの方が多いと分かってきたため
そのデメリットをどう回避するかが各言語の主題となっている
394デフォルトの名無しさん
2022/04/30(土) 02:04:17.75ID:LJ+fWFU3
>>390
知った気になって語りやすい話題だからだろう。

実装の拡張を肯定しつつデータ構造を直接拡張しないところが重要。
それを字面だけ解釈して、結局は妥協でデータ構造が暗黙に継承するような、先進言語の形だけ真似した言語もあるくらいだからね。
395デフォルトの名無しさん
2022/04/30(土) 02:17:19.37ID:Z7DxbzXv
>>387
Goだけがどの話題でも機能不足との結論になっていて悲しいです
396デフォルトの名無しさん
2022/04/30(土) 02:24:06.80ID:iqR9XqAh
クラス継承しか知らないプログラマーは何でも継承で表現しようとするために失敗しているわけだから
継承のないプログラミング言語で修行させればそこは学習できるはずだ
397デフォルトの名無しさん
2022/04/30(土) 03:12:19.75ID:TIk5gKqZ
実際言うほど継承使わないからなぁ
共通的な部分を継承で済ます場合はあるけど
データもその共通部分がはっきりしているなら親クラスで定義するけど
ただフレームワークを使ってたらコントローラはControllerから継承みたいなのはどうしてもあるが
398デフォルトの名無しさん
2022/04/30(土) 03:18:56.57ID:QdZCFn9O
>>397
そこは移譲ではダメなの?
399デフォルトの名無しさん
2022/04/30(土) 05:30:17.12ID:ES8eyWNp
typescriptは不要だな。jscript .netといっしょで空虚だ。
400デフォルトの名無しさん
2022/04/30(土) 08:27:54.46ID:UilcMqZz
マイクロソフト、JavaScriptに型宣言を追加しつつトランスパイラ不要の「Types as Comments」をJavaScript仕様策定会議のTC39に提案へ
https://www.publickey1.jp/blog/22/javascripttypes_as_commentsjavascripttc39.html
401デフォルトの名無しさん
2022/04/30(土) 11:29:38.19ID:8xaJAFlZ
継承自体は悪くなくて設計が悪い
実際継承使わないパターンが多くなったのでそれもどうでもいい

クラスに当たるものに委譲で継承的なことをすると状態が問題になる
そしたら状態を持つのが悪いと言うまた不思議な話になる

そしてどんどん学習時間取られてみんな疲弊していく
402デフォルトの名無しさん
2022/04/30(土) 11:37:07.51ID:8xaJAFlZ
委譲元のクラスが単体では問題なく動くのに組み合わせるとテストを通らない

よく見ると以上元のクラスの内部状態が必要になってるけど公開されていない
完全な設計ミス

interfaceに必要な要素を追加…などできずデフォルト実装を追加
こうしてゴミが出来上がる
403デフォルトの名無しさん
2022/05/01(日) 13:19:33.60ID:GvRRQSqT
継承はそのオブジェクトの内に閉じた処理、オブジェクトの外の処理でもリスコフ置換原則が成立する範囲ではスマートでいいと思うよ
ただ現実的な話、ビジネスルール自体がそうなってないケースが多い
オブジェクトの外の処理は多くの場合、処理対象の子クラスの型で分岐を求められる
これにオブジェクト指向で対処しようとすると、めんどくさいデザインパターンの洪水に呑まれる

オブジェクトの内側のことは継承でエレガントに実現しておk(嫌いなら使わなくてもおk)
外側のことは地道にpattern matchingで泥臭く頑張る
これでいいと思うね
404デフォルトの名無しさん
2022/05/01(日) 14:26:43.52ID:TYpzgypv
キチガイ隔離すれの本領発揮
405デフォルトの名無しさん
2022/05/01(日) 15:30:58.63ID:1sKYDrOo
RustもJuliaやGoみたいに廃れて消えていく気がしている。
https://qiita.com/AKKYM/items/78c04840bc72d9db834d
406デフォルトの名無しさん
2022/05/01(日) 15:37:27.28ID:KjQtFKQ9
ポエムすぎ。
407デフォルトの名無しさん
2022/05/01(日) 16:13:59.61ID:KIr6c+FR
このRustと同じ分類となる、更に便利な言語が登場しないと、Rustを置き換えることが出来ないだろう

> プログラミング言語は以下の3つに分類される
> CとC++ ←『省メモリ高速』だが、「メモリ解放でミスると危険」
> GC言語 ←『省メモリ高速』ではないが、「メモリ解放は自動で気にしなくていい」
> Rust ←『省メモリ高速』だが、「メモリ解放は自動で気にしなくていい」
408デフォルトの名無しさん
2022/05/01(日) 16:14:52.25ID:1l9w5D7n
>>405
妄想でつか?
409デフォルトの名無しさん
2022/05/01(日) 21:23:49.61ID:Z7VnuZFm
JuliaはFORTRANを駆逐できましたか?
410デフォルトの名無しさん
2022/05/01(日) 22:23:58.30ID:BE/fpmM/
https://mun-lang.org/
Mun触ったことのある人いる?
ぱっと見GCつきのrustみたいに見える
411デフォルトの名無しさん
2022/05/01(日) 23:42:24.67ID:/piMIc6O
>>410
文法や基本型はRustと同じっぽいね
ドキュメントを見る限りでは非常に小さいサブセットで開発途上なのかよくわからない
412デフォルトの名無しさん
2022/05/02(月) 12:37:31.52ID:LXFM7yFt
>>407
その分類、そもそもニーズが大きくない気がするし、
このまま競合は現れずに行きそうだよね。
413デフォルトの名無しさん
2022/05/02(月) 13:23:34.89ID:2hhO4/Db
>>410

Dlang: C++風のGC言語
Crystal: Ruby風のGC言語
nim: Python風のGC言語
Vlang: Go風のGC言語
Mun: Rust風のGC言語 ← New!

こういうこと?
414デフォルトの名無しさん
2022/05/02(月) 13:56:24.42ID:nH+No7UX
VlangはGC無かったと思った
415デフォルトの名無しさん
2022/05/02(月) 14:17:19.74ID:2hhO4/Db
>>414
ほんとだ、ありがとう
416デフォルトの名無しさん
2022/05/02(月) 16:08:02.28ID:btF26FKd
>>412
重視されているからこそ
C/C++からRustへの移行(安全化)だけでなく
各種GC言語からRustへの移行(高速化)が起きている現実
417デフォルトの名無しさん
2022/05/02(月) 16:39:23.58ID:zwMG9j3G
>>416
ないわ~
pythonからRustってありえないよ
418デフォルトの名無しさん
2022/05/02(月) 17:38:01.22ID:/8s7agyt
NumPy, SciPyのライブラリの実装FORTRANをCにベタ移植して更にC++でラップしたような物ばかりだったけどRsutへの移行は順調に進んでいますか?w
419デフォルトの名無しさん
2022/05/02(月) 18:06:45.99ID:+Vpltyoe
それらPythonの使い方は単なる皮言語だからな
次世代言語スレで皮言語を持ち出す時点で頭おかしい
420デフォルトの名無しさん
2022/05/02(月) 18:19:24.75ID:cySxIzYo
>>418
どの分野でもどの言語でも同じだけど
他の言語に移行するのは新たな物(仕組み・システム)を作る時だよ
そのまま移植は非常にレアケース
例えば古すぎるたり性能面で難があるけどアルゴリズムだけだから再設計せずそのまま他言語へ移植など
421デフォルトの名無しさん
2022/05/02(月) 18:33:01.46ID:LXFM7yFt
>>416
GCあり言語では、データ構造は気にしても、
メモリ操作を意識している人は、少数じゃない?
だから置き換えは、結構ハードル高いと思うけれど。

>>417
Pythonは、グルー言語でもあるから、
単純な置き換えは、そうそう進まなさそうだよね。
422デフォルトの名無しさん
2022/05/02(月) 18:40:21.71ID:YtZJWkql
>>421
メモリ操作とは具体的になあに?
めったにない特殊なケースは除くとしてハードルが高いことなんて無いんじゃないかしら
423デフォルトの名無しさん
2022/05/02(月) 18:48:20.40ID:/8s7agyt
>>422
低レイヤー言語だとメモリ読む前にキャッシュしたりアライメント揃えたりするでしょ
424デフォルトの名無しさん
2022/05/02(月) 18:52:18.84ID:qXzB3q2R
>>423
何それ?
よほど特殊なことをしない限りそんなコードを書くことはないよ
C言語でもアライメント気にせずに変数に値が入るし変数そのものがキャッシュだし
425デフォルトの名無しさん
2022/05/02(月) 18:55:15.58ID:/8s7agyt
>>424
426デフォルトの名無しさん
2022/05/02(月) 19:01:36.90ID:srM4fb0r
>>424
他人のこさえたライブラリと構造体を受渡するときなんかは意識せざるを得んよな。
コレはレアケース?
427デフォルトの名無しさん
2022/05/02(月) 19:06:45.80ID:TE2kIXA8
>>426
それはFFIと言って低レイヤー言語だけの問題ではない
PythonでもJavaScriptでもある

元の話題
>>423
> 低レイヤー言語だとメモリ読む前にキャッシュしたりアライメント揃えたりするでしょ
428デフォルトの名無しさん
2022/05/02(月) 19:16:29.24ID:nqnbrNKO
例えばSIMD命令使うのが "よほど特殊なこと" に該当するかどうかという話?
429デフォルトの名無しさん
2022/05/02(月) 19:29:07.60ID:TE2kIXA8
この流れでFFIもSIMDも関係ないと思います
GCあり言語の普通のプログラムをGCなし言語へ置き換える話をしています

>>421
> GCあり言語では、データ構造は気にしても、
> メモリ操作を意識している人は、少数じゃない?
> だから置き換えは、結構ハードル高いと思うけれど。

>>422
> メモリ操作とは具体的になあに?
> めったにない特殊なケースは除くとしてハードルが高いことなんて無いんじゃないかしら
430デフォルトの名無しさん
2022/05/02(月) 19:31:38.61ID:LXFM7yFt
メモリ操作って言い方が曖昧なら、スタックとヒープを意識するかしないかって言い方ならどう?

GCあり言語でスタックとヒープを意識するような事ってあまり無いと思うんどけど。
431デフォルトの名無しさん
2022/05/02(月) 19:44:24.10ID:xCWuNsuo
>>430
GCなし言語でどうしてもスタックとヒープを意識しないとプログラミングできないことってある??
432デフォルトの名無しさん
2022/05/02(月) 20:03:38.83ID:nqnbrNKO
>>431
ありなしで言ったらあるでしょ
性能意識するコードとか
433デフォルトの名無しさん
2022/05/02(月) 20:09:21.38ID:9bp9MTNx
>>432
それは性能をよっぽど気にする特殊な場合だけでしかもその中の一部のコードだけやろ
それ以外は関係ないやん
434デフォルトの名無しさん
2022/05/02(月) 20:41:15.68ID:hiZvMXbQ
言うほど低レイヤーコード書いてるやつはここにはおらん。
だから話がおかしな方向に行く。
435デフォルトの名無しさん
2022/05/02(月) 20:50:55.80ID:cNSfGfye
>>434
GCあり言語のコードをGCなし言語にする話だから
低レイヤーコードなんて一切関係ない
436デフォルトの名無しさん
2022/05/02(月) 22:55:54.22ID:54UIx2Ed
スタックは普通に意識するでしょう、末尾最適化されてないナンチャッテ意識高い系の再帰呼び出しとか直すけど・・・
GCアリ言語でも無しでも、スタックサイズは普通に意識する。
ヒープは言うほどRustは組み込みに使わないし、トヨタが使うというてもそれはメモリコンパクションのあるようなOSが載ってる場合だから
本当の組み込みじゃないし、でもアロケーターが64byte-4kでもVec::with_capacity(size);とか普通にIO系の処理では意識するでしょ
437デフォルトの名無しさん
2022/05/02(月) 23:14:26.49ID:zFIpg6hX
>>436
Rustはヒープ無しでも動作するからヒープを意識しなくていいのはその通りだが
ヒープが有る場合でもVec::with_capacity(size);等は動作最適化を手動でする時のみ必要であって、
プログラマーは何もしなくても全自動でcapacity拡張してくれるから意識しなくてもよい
438デフォルトの名無しさん
2022/05/02(月) 23:25:13.41ID:nqnbrNKO
>>433
そもそもの質問が「ヒープ意識しないとプログラムできないことってある?」だから、反論になってないよ
頻度は問題にしてなくて有無の話だから
439デフォルトの名無しさん
2022/05/02(月) 23:32:26.49ID:uvbh46KP
>>438
それは君の方がおかしい
今回のこの文脈ではそこは意識する必要がない

>GCあり言語の普通のプログラムをGCなし言語へ置き換える話をしています

ベクタの使用領域の大きさはどちらの言語でも自動的に拡張してくれるのに任せればよいから意識しなくてよい
440デフォルトの名無しさん
2022/05/02(月) 23:45:32.15ID:2hhO4/Db
GCありの言語で循環参照するようなデータの持ち方をしまくってるようなコードだったりすると、
そのまま移植できないだろうし面倒かな?
場合によってはRustでいうArenaみたいなのまで持ち出して再設計しないといけなそう

移植なんてしたことないしあくまでも想像だけど
441デフォルトの名無しさん
2022/05/03(火) 00:46:48.18ID:Hze7UEQ+
>>437
”Rustはヒープ無しでも動作する”、不正確でダウトといっても良い。”Box<T>を使わない場合、Rustは最小のメモリで動作する”
一般的に最小のメモリとはプログラムをメインメモリにロードした領域であり、それ以外にも、ヒープ解析すればRustの場合は、
Config structなどが多数メモリにロードされていることが分かります。後半の文は意味不明。
442デフォルトの名無しさん
2022/05/03(火) 00:49:19.56ID:owaZy9f2
GCあり言語って一絡げにできるほど似通ってるんだっけ
443デフォルトの名無しさん
2022/05/03(火) 01:10:00.15ID:Fo6zlgca
>>441
知識が浅すぎる
Rustはヒープ無しでも動作する、で正しい
そのためRustの標準コアライブラリcore::はヒープ無しで動作するように作られている
std::のうちcore::以外の部分はヒープを用いており明確に両者は区別されている

>> ”Box<T>を使わない場合、Rustは最小のメモリで動作する”

意味不明
Box<T>はヒープを使う型の一つに過ぎない
それ以降の記述は全く意味不明
444デフォルトの名無しさん
2022/05/03(火) 02:44:39.08ID:x2jyG4Fk
まじきち隔離所、顔真っ赤になってww
445デフォルトの名無しさん
2022/05/03(火) 02:45:30.07ID:fvC5V6zC
まーたRust信者がスレハイジャックしてる
446デフォルトの名無しさん
2022/05/03(火) 02:51:30.24ID:K+UwgLRo
ベアメタル等OSなしでも動作しないといけないため
Rustはヒープを前提とせずに動くよう設計されている
447デフォルトの名無しさん
2022/05/03(火) 04:29:19.13ID:5MBm6VS9
>>444
本当はスレ民のことが気になって仕方ないだろ?
隠しても無駄www
448デフォルトの名無しさん
2022/05/03(火) 06:00:49.14ID:iYuWu8Ht
なぜせっかくRustで作られたブラウザを除外するかね?

「NHKプラス」、「Firefox」での視聴が不可能に 5月23日から推奨ブラウザを「Microsoft Edge」「Google Chrome」「Safari」に限定 [孤高の旅人★]
http://2chb.net/r/newsplus/1651490664/
449デフォルトの名無しさん
2022/05/03(火) 06:33:11.84ID:fvC5V6zC
>>448
そのどれかのブラウザがインストールされてない端末って何がある?
Linuxと組み込みくらい?
450デフォルトの名無しさん
2022/05/03(火) 08:05:32.71ID:JBdnv4nv
「Firefoxはバグ
451デフォルトの名無しさん
2022/05/03(火) 08:06:08.35ID:JBdnv4nv
訂正:firefoxはバグが多いの?
452デフォルトの名無しさん
2022/05/03(火) 10:17:41.36ID:vk1zxqeV
Chromeより軽くてFirefoxオススメ
453デフォルトの名無しさん
2022/05/03(火) 11:37:27.15ID:+GUXg/j9
>>448
もし本当に視聴不可となったら技術力が無さすぎる
昔ならともかく今の時代にブラウザ依存なコードを書くのはダメなプログラマーの典型
視聴不可ではなく動作確認するブラウザの数を絞るなら理解できる
454デフォルトの名無しさん
2022/05/03(火) 11:57:44.21ID:TRGOwhZ/
> 「Firefox」など、上記3ブラウザ以外での動作はもともと確認しておらず、推奨ブラウザには加えていなかったという。
> 「5月23日以降に予定している設備更新に伴い、Firefoxでは動画が完全に再生できなくなる

どういう設備更新なんだろうな・・・
WebKit系じゃないと使えない仕組みがあるのか
455デフォルトの名無しさん
2022/05/03(火) 12:01:19.67ID:WbhGI2Ja
今どきはブラウザ依存な書き方する方が面倒だろう。普通にテストしてないだけでは。
456デフォルトの名無しさん
2022/05/03(火) 12:02:22.58ID:WbhGI2Ja
>>454
あ、本当に動かなくなるのか。
457デフォルトの名無しさん
2022/05/03(火) 12:10:09.97ID:DDJgB2x8
chromiumにしか実装されていない独自拡張機能に依存したAPIに手を出したとか??
でもSafariで動くなら違うか
Firefoxでだけ動かないコードなんて可能なのか??
458デフォルトの名無しさん
2022/05/03(火) 12:29:47.29ID:wY2/8p8r
Chromiumは現代のIE6ですから
459デフォルトの名無しさん
2022/05/03(火) 12:49:05.47ID:owaZy9f2
そういえばchromeにrust使う話ってどうなったんだ?
460デフォルトの名無しさん
2022/05/03(火) 19:12:46.20ID:iYuWu8Ht
>>459
ああ、ごめん。さぼってたわw
461デフォルトの名無しさん
2022/05/03(火) 19:19:05.53ID:fvC5V6zC
たしかFirefoxもまだ全部はRustに治せてないんだろ
462デフォルトの名無しさん
2022/05/03(火) 19:33:27.34ID:5FiUhjhg
>>461
君は何らかの大きなシステム開発に関わったことがないのかね?
どんな言語と言語の場合でも一気にやることは不可能かつムダ
新規部分や改修部分に絞って手を付けていく
463デフォルトの名無しさん
2022/05/03(火) 20:16:20.57ID:fvC5V6zC
>>462
なるほど
だからよそと違ってバグまみれとか言われるんやなw
464デフォルトの名無しさん
2022/05/03(火) 20:22:09.94ID:jGM9XRro
Chromeの方がセキュリティバグ多いよな
頻繁にバージョンアップしろと言ってくる
465デフォルトの名無しさん
2022/05/04(水) 19:26:52.80ID:mmwxiGlB
>>464
JVN iPedia - 脆弱性対策情報データベース。https://jvndb.jvn.jp/
期間指定なし
・safari 884件
・edge 1054件
・firefox 1989件
・chrome 3464件
期間指定2018/01から
・safari 48件
・edge 391件
・firefox 492件
・chrome 937件

とはいえ、Chromeのほうがローリングリリース・ローリングアップデートの期間が短い(現在は4週間)2021/3頃から6週間から変更された。
以前はFirefoxはローリングリリースを採用していないかった。またChormeの使用者がFirefoxより10倍なので脆弱性も発見されやすい。
何かと問題なSafariの脆弱性がこれだけのはずが無く、脆弱性報告数=危険なブラウザとははっきり言えない
466デフォルトの名無しさん
2022/05/04(水) 19:52:07.53ID:htgGZwEX
途中まで数字で語ってるのに最後だけ願望になっててワロタ
467デフォルトの名無しさん
2022/05/04(水) 21:47:24.52ID:8rho1RVn
go-tour-ko.appspot
.com
468デフォルトの名無しさん
2022/05/05(木) 01:24:23.06ID:e3BB3pKX
>>466
Appleに報告した脆弱性、数カ月放置の後に「現在、調査中です」の返答
https://appleinsider.com/articles/21/09/27/apple-still-investigating-unpatched-security-flaws-in-ios-15
469デフォルトの名無しさん
2022/05/05(木) 09:45:52.65ID:M81p8ixH
木を見て森を見ずという言葉を考えた昔の人はいいセンスしてる
470デフォルトの名無しさん
2022/05/05(木) 13:55:59.94ID:R5uUYm15
Appleって莫大な利益を何に消費しているのだろうね
471デフォルトの名無しさん
2022/05/05(木) 17:00:01.71ID:SGcHNlDo
>>448
そもそもNHKは見ないのでどうでも良い。
472デフォルトの名無しさん
2022/05/05(木) 19:17:07.87ID:C9QWuoSO
>>470
そんなこと気にして何になるの?
473デフォルトの名無しさん
2022/05/05(木) 19:26:31.90ID:kRCOTufr
>>472
ウィグル弾圧に使われてる可能性が高い。
474デフォルトの名無しさん
2022/05/05(木) 19:30:55.61ID:kRCOTufr
Rust厨がウザいからだろ。
475デフォルトの名無しさん
2022/05/05(木) 19:32:25.99ID:kRCOTufr
いまどきウェブ見てて落ちるブラウザなんてファイアフォックスくらいだし、そこらへんは忠実にネスケ以来の伝統を受け継いでて驚く。
476デフォルトの名無しさん
2022/05/05(木) 19:35:07.40ID:Z9g54GsT
トリビア:Firefoxユーザーはレベルが高いの致命的なバグがあっても自分で治して使っている
477デフォルトの名無しさん
2022/05/05(木) 20:13:12.39ID:3l2hzI76
>>475
ここ数年間の常用者だがFirefoxが落ちたことがない
もしデマカセを言っているのでないのならばどういう状況で落ちたのか語ってほしい
478デフォルトの名無しさん
2022/05/05(木) 20:34:46.36ID:CLlK/Ylr
かまちょかまちょ
479デフォルトの名無しさん
2022/05/05(木) 21:13:15.17ID:/HQ4632l
>>475
Chromeは週一ぐらいで落ちる
IME変換中に間違えてファンクションキーを押すと落ちる
480デフォルトの名無しさん
2022/05/05(木) 21:25:28.06ID:i3pjo8Ig
落ちるOSってありそう
481デフォルトの名無しさん
2022/05/05(木) 21:27:55.65ID:gPHNd8vO
>>477
数か月前に頻繁にメモリ不足で落ちてた。タブがクラッシュする
482デフォルトの名無しさん
2022/05/05(木) 21:55:22.29ID:V626dp+O
>>481
それメモリが少なすぎたとか
メモリを超える巨大なデータを読み込んだとか
無数にタブを開いたとかそういうオチだろ
483デフォルトの名無しさん
2022/05/05(木) 22:30:44.53ID:VIM8YOLC
逆に100兆個のタブを開いて落ちないブラウザってどれ?
484デフォルトの名無しさん
2022/05/05(木) 22:35:06.99ID:NMIyHyw2
メモリ不足で落ちないブラウザもないと思います
485デフォルトの名無しさん
2022/05/06(金) 04:53:59.90ID:qTXbaZrR
メモリ不足を、クラッシュせずに通知くらい【余裕】にできないと。

当たり前のこともできない。所詮現世人類の我々の技術力はそこまでということだ――
486デフォルトの名無しさん
2022/05/06(金) 06:06:43.53ID:dyg36AcX
>>477
Windowsでタブレットモードにしてると頻繁に落ちるな。
487デフォルトの名無しさん
2022/05/06(金) 06:07:47.49ID:dyg36AcX
落ちるというか、無限ループしてるっぽいんだよな。
入力を受け付けず、タスクマネージャで見るとCPUをぶん回してる。
488デフォルトの名無しさん
2022/05/06(金) 06:15:30.69ID:pLpPuHCg
Linuxでは落ちないよ
489デフォルトの名無しさん
2022/05/06(金) 06:56:47.40ID:dyg36AcX
頻繁に落ちるのに、落ちないとか信者が言い張るのも、ネスケ以来の伝統だよな。
490デフォルトの名無しさん
2022/05/06(金) 07:00:58.40ID:eCfsRziE
英語設定のLinuxだけど落ちないよ?
バグってるのはサイトかホストなのでは?
491デフォルトの名無しさん
2022/05/06(金) 09:07:58.30ID:PZ471HHG
Windowsでここ何年か使ってるけれど、
特に気になる動作は無いけれどな。

Edgeの印刷で返ってこない方が辛い。
492デフォルトの名無しさん
2022/05/06(金) 09:58:30.45ID:+sslkA2r
FireFoxで微妙に表示が崩れるとChromeだとちゃんと表示されるのか気になる
表示させてみて同じだとホッとして違ってたらがっかり
493デフォルトの名無しさん
2022/05/06(金) 10:03:00.35ID:szMyvzcx
Safariが恨めしそうにこちらを見ている
494デフォルトの名無しさん
2022/05/09(月) 20:38:44.58ID:X0x/BBIp
Rustが、Goの最大の競合相手であることが明らかになったってよw

プログラミング言語「Go」、開発者の満足度やニーズは?
https://japan.zdnet.com/article/35187065/
また調査では、Goの主なライバル言語が「Rust」「Python」「Java」「TypeScript」であることも明らかになった。RustとGoは、どちらもシステムプログラミング言語であり、開発者には広く評価されているが、「JavaScript」や「Python」ほどの人気はないようだ。

 しかしこの調査では、Amazon Web Services(AWS)、Google、Microsoftの支持を受けているRustが、Goの最大の競合相手であることが明らかになった。Goの代わりに選ぶとしたらどの言語を選ぶかという設問では、回答者の25%がRustを選ぶと述べており、17%がPython、12%がJava、8%がTypeScript、8%がC#と回答していた。

 「最もよく選ばれているのは、Rust、Python、Javaだ。RustとGoの機能セットは補完的な関係にあるため、あるプロジェクトに必要とされる機能がGoにない場合、Rustは優れた選択肢になるかもしれない」とMerrick氏は述べている。
495デフォルトの名無しさん
2022/05/09(月) 20:53:04.96ID:S0Cki9Rv
>>494
競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使えるでしょ
エンジニア目線では特に対立関係にないから煽っても無意味だぞ
496デフォルトの名無しさん
2022/05/09(月) 21:00:58.52ID:DoAIqFb7
競合ではなく両方利用
Goで不十分なところはRustで書いている
どこでもそうだよ
497デフォルトの名無しさん
2022/05/09(月) 22:46:52.00ID:TDei0tm5
それができるんならCでいいじゃん
498デフォルトの名無しさん
2022/05/10(火) 03:38:38.78ID:I4A9nNIt
理想の家族

父 40歳 海外へ単身赴任(死ぬまで)
母 35歳 息子に甘い
姉 17歳 弟に甘い
俺 44歳
妹 15歳 多感な時期 俺に反発しながらも。。?
猫 ウンチしない 抜け毛ない 俺の声かけに無視しない
499デフォルトの名無しさん
2022/05/10(火) 08:39:54.21ID:Hhyd/l4r
>>495
そうだぞ。
競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使える、という体で話さないと嫌われるぞ。
それに、裁量権のない作業者の間では対立関係にないから煽っても無意味だぞ。
500デフォルトの名無しさん
2022/05/10(火) 20:07:58.34ID:8UHmp6CE
低レイヤーはRust
高レイヤーはGo

この使い分けじゃいかんの?同じシステムプログラミング言語でも毛色が違うだろ

GoogleとMicrosoftがRustに注目しているのもOS開発の目的であってGoでOS開発作ろうとはならんでしょ
501デフォルトの名無しさん
2022/05/10(火) 21:01:49.31ID:mOdSHL41
主張はわかるが、これはもしや片思いみたいなものではと見ている。

仮にGoユーザーの多くが低レイヤーにRustを使いたい結論だったとしても、
Rustユーザーの多くが高レイヤーにGoに使いたいという結論にはならない。
よってカップル不成立。
502デフォルトの名無しさん
2022/05/10(火) 21:17:09.90ID:5Ln2ZQb8
例えばウェブサーバーサイドもRustで書いたほうが早い速いしな
503デフォルトの名無しさん
2022/05/10(火) 21:25:40.62ID:AAMxLs47
低レイヤーのことは低レイヤーガールに聞けよ
504デフォルトの名無しさん
2022/05/10(火) 22:34:17.72ID:M/BIyD/S
Goは良くも悪くもCっぽくって人間が気をつけて書かないといけない部分が多いんだよな
一度Rustに慣れてしまうと、Goで隅々まで気を使うのが面倒くさくなってしまう
もちろん既存のGoプロジェクトはGoのまま書くけど、新規ならなるべくRustにしたくはなるな
505デフォルトの名無しさん
2022/05/10(火) 22:37:05.44ID:1A7PmF6X
LinusはgitをC+シェルスクリプトで書いてた
書こうと思えば書ける

でも普通に記述に時間がかかるので今は他の言語も役割分担してる
506デフォルトの名無しさん
2022/05/10(火) 23:04:46.44ID:7R870FiC
Rustはデータ競合らへんは起きないけど、Box、Rc、Arenaを気をつけて使い分けないといけないのとか面倒だと思うけどな
507デフォルトの名無しさん
2022/05/10(火) 23:36:04.65ID:M/BIyD/S
Goの一番の面倒さはnilとエラーハンドリングかな
Option/Result型だけでも特別に用意されてれば、もっとGo使ってたかもしれん
508デフォルトの名無しさん
2022/05/10(火) 23:49:42.04ID:Lq7F/6H2
>>506
Rcは出てこないプログラムも多い
Arenaはほぼ完全に出てこない
つまりそれらレアケースを元に語るのは現実的ではない
509デフォルトの名無しさん
2022/05/10(火) 23:52:42.15ID:1A7PmF6X
Rustで引っかからずコードを書き上げるのはかなりの猛者だと思うよ
本当の意味での言語仕様部分は何とかなるかもしれないけどそこから先がつらい

入門4冊目の「コンセプトから理解するRus」tを読んで途中で投げ捨てた
本自体は良書なんだけどtrait境界がもう人間の理解を超えてる

Cだと時間をかければ書き終えれるけどバグが入ってる可能性がある
510デフォルトの名無しさん
2022/05/10(火) 23:56:51.45ID:1A7PmF6X
Rustはある程度から人間の理解を超えて来るので一定程度以上勉強しても無駄かなと
511デフォルトの名無しさん
2022/05/10(火) 23:57:58.56ID:M/BIyD/S
>>509
その辺はScalaで学んだからRustでは苦労しなかったけど
最初訳わからんってなるのは分かる
512デフォルトの名無しさん
2022/05/10(火) 23:59:30.65ID:1A7PmF6X
書名でググると上位に出てくるこの記事がまさにそれ

https://qiita.com/seikoudoku2000/items/28c5c6b09dcaea1744dc
513デフォルトの名無しさん
2022/05/11(水) 00:06:17.66ID:0PGn8I2M
プログラミングはは知的生産だと思ってたけどこれはもう違う別の何か
他人の書いたコードは意味が分からないというけどそれ以前に自分で書いてもわけがわからない

理解の外にあっても動くからあっている
コンパイルエラーが出ないからあっている

それは本当に正しいことなのか
バグが入ってないのかはもちろん期待した動作なのかすらわからない

人間が揺さぶられてきている
514デフォルトの名無しさん
2022/05/11(水) 00:07:09.92ID:xUytDrfJ
多くの人に知ってもらいたい
これはもうプログラムではないよと
515デフォルトの名無しさん
2022/05/11(水) 00:09:05.79ID:SabgIUuG
実装に必要なtraitを境界として追加しただけで煩雑だけど難しくはないよね
516デフォルトの名無しさん
2022/05/11(水) 00:13:46.50ID:q+AJMQiL
>>509
そのtrait境界は意外に理解が簡単だった
ジェネリックにプログラムを書く時にそのジェネリックな型には何が来てもいいわけではなくて
書くプログラムの中で使っている機能(というかインタフェースというかメソッド)を持つ保証する(というか限定するというか制約条件を並べる)こと

例えば本スレからコピペだけど以下のフィボナッチ数列イテレータ
型へのtrait境界がwhereのところにあるClone(複製できること)とTryFrom<usize>(数値から変換できること)とnum::CheckedAdd(オーバーフロー検知付き足し算ができること)の3つを満たしてればどんな型でも適用可能

fn fibonacci<T>() -> impl Iterator<Item=T>
where T: Clone + TryFrom<usize> + num::CheckedAdd,
{
let [zero, one] = [0, 1].map(|n| T::try_from(n).ok().unwrap());
itertools::unfold((zero, one), |(m, n)|
m.checked_add(&*n).map(|f| {
*m = n.clone();
*n = f.clone();
f
})
)
}

pub fn main() {
for f in fibonacci::<i8>() {
print!("{f} ");
}
println!();
}
517デフォルトの名無しさん
2022/05/11(水) 00:18:22.19ID:xUytDrfJ
実際にトレイト境界の条件の実装部分を読んでみた

シンプルなマクロで書かれてる部分もあれば複雑な部分もある
そこで書いてある実装が本当に確実の条件を満たしうるのかは分からないし
ドキュメントを読んでも厳格な意味が書いてあるわけでもない

どこかで漏れがあってもわからない
518デフォルトの名無しさん
2022/05/11(水) 00:37:16.75ID:xUytDrfJ
例えば条件の一つがよくよく考えてみればさらに二つに分離して考えないといけないものだと
後で判明するともう既存のコードがみんな死んでしまう
使用してる所を全部さかのぼって修正しないといけない

それかRust自体の仕様変更で死んでしまったりいろいろ死にそうな要因がたくさんある
マクロでやりすぎてる
519デフォルトの名無しさん
2022/05/11(水) 00:39:26.57ID:OHUg1Auo
>>518
そんなこと起きたことがない
聞いたこともない机上の空論
520デフォルトの名無しさん
2022/05/11(水) 11:02:33.31ID:ut6S4c2T
Rustの標準ライブラリの設計がそもそも間違ってて、その修正のために破壊的な変更がいきなりきたら大変だ、って話?
そんな馬鹿な、と笑っちゃうね
521デフォルトの名無しさん
2022/05/11(水) 12:27:47.37ID:0Stn7tVM
サプライチェーン問題は批判理由が見つからない人が持ち出しがち。

マクロがない言語だと、同じ機能をコンパイラやらランタイムが持ったりするわけだが、不思議に誰もそれらの機構を疑わなかったりする。

中身が可視化されたのに逆に疑わしく感じた場合は、まずは自分の知識が足りなかったことに気づきましょう。
522デフォルトの名無しさん
2022/05/12(木) 17:29:32.27ID:LSv3zttQ
実装の問題は重要だろ。
そもそも実装と独立に仕様だけ語れるような作りにrustはなってない。
523デフォルトの名無しさん
2022/05/12(木) 18:12:00.76ID:cxVwbP/0
何を問題視してるのかもうちょっとわかりやすく書いてくれないと議論にならん
524デフォルトの名無しさん
2022/05/12(木) 18:19:51.09ID:q5adbU17
判らないなら無理して首を突っ込むことはないかと…
525デフォルトの名無しさん
2022/05/12(木) 18:20:37.20ID:q5adbU17
コーダー風情にはどこら辺に問題があるかすらわからないんだ
ほっとけばいい
526デフォルトの名無しさん
2022/05/12(木) 18:57:51.28ID:+0JH2q+I
>>522
依存型理論原理主義過激派かな?ちょっと面白い
527デフォルトの名無しさん
2022/05/12(木) 19:03:55.20ID:KS5+XyCs
依存型ってrustは入れてないやろ
528デフォルトの名無しさん
2022/05/12(木) 19:34:17.87ID:B7YnOOaf
>>527
Π型はないけど、const genericsなら…
529デフォルトの名無しさん
2022/05/13(金) 10:40:27.81ID:fhDjEdn1
>>521
ランタイムが持ってる言語ならランタイムをアップデートしたら終わり
マクロの言語は該当箇所を探し出して修正して丸ごと再コンパイルが必要

工数考えたらどちらが有利なのかすぐ分かる
知識が足りないのはどちらなんだろうか?
530デフォルトの名無しさん
2022/05/13(金) 10:59:45.86ID:0p7HEVH9
>>529
現実には起きない架空の話だから両者ともにバカげている
531デフォルトの名無しさん
2022/05/13(金) 12:10:30.96ID:uaWVrnpQ
笑っちゃうね
532デフォルトの名無しさん
2022/05/13(金) 12:50:06.30ID:tAeYJnp8
>>529
ランタイムだけ差し替えられることに気づくとは…
533デフォルトの名無しさん
2022/05/14(土) 10:40:41.82ID:vWT7MZ9I
さすがナレッジワーカーだね
534デフォルトの名無しさん
2022/05/14(土) 22:44:26.45ID:z9ygdFkB
Juliaの今ひとつなところはswitch/case文がないところ
あのパイソンでさえ導入したのに時代錯誤

それ以外は良さそうな言語
しらんけど
535デフォルトの名無しさん
2022/05/15(日) 08:12:53.18ID:peAa8dI5
Juliaではマルチディスパッチしろという方針なのかもしれんが、マルチディスパッチの方が他言語に普及してないのは機能として過剰な割に効率性に劣るからなんだろうかね
536デフォルトの名無しさん
2022/05/15(日) 08:40:21.58ID:gv+JQ3Ew
まつもとゆきひろ氏が考える、プログラミング言語の未来
https://logmi.jp/tech/articles/326541

楓:「今Ruby、Cの次に好きな言語はなんですか」。

まつもと:そうだな。Elixir、Go、Rustは気になるっちゃ気になるんですね。ただ、正直に言うとRustは僕の好みではない(笑)。

楓:おおー。気になるポイントと好みじゃないポイントはどのあたりなんですか。

まつもと:やはりCを一番よく書くので、システムプログラミングの領域が、私がよくプログラムする領域なんですけど。そこに出てくる言語の中で今一番メジャーなのは、GoとRustであるというのが気になるところですね。

だけど、Rustが型でいろいろなことを言ってくれるのはうれしいところとうれしくないところがあって。つまりコンパイラに怒られるんですね。僕はコンパイラに怒られるのがすごく嫌いなので(笑)。なんかストレスがたまるんですよね。

楓:(笑)。

まつもと:どちらかというと、技術的なことではないところで一緒にがんばれるものがいいなって思っていて(笑)。
537デフォルトの名無しさん
2022/05/15(日) 08:49:59.25ID:SgXGf86o
どの言語でも間違えればコンパイラに怒られる
その程度でストレスがたまるならば頭がよくないのかもしれない
538デフォルトの名無しさん
2022/05/15(日) 09:40:56.30ID:N7JPl8Lh
コンパイラに怒られずにランタイムに怒られる方が
ストレスたまりそうなんだが違う感覚の
人もいるんだなあ
539デフォルトの名無しさん
2022/05/15(日) 09:42:48.17ID:am1d3hDu
必要以上に怒られてるからクソって話なんでしょ
540デフォルトの名無しさん
2022/05/15(日) 09:49:32.98ID:2T0P5EJz
ランタイムに怒られてもうまく問題点を見つけ出せる方が頭良い気がする
僕はあんまり賢くないからコンパイラが叱ってくれる方が楽
541デフォルトの名無しさん
2022/05/15(日) 09:50:12.91ID:C1KM65Ry
自分がすごくプログラミングが出来る自負があるから、コンパイラに怒られるとプライドが傷つくから嫌だって言ってるようにも見える
542デフォルトの名無しさん
2022/05/15(日) 09:52:43.88ID:lixSo2ZB
ひろゆきは賢いからコンパイラは余計なことを小うるさく言わんでいいって感じ?
543デフォルトの名無しさん
2022/05/15(日) 09:52:58.51ID:WKOj7Eq4
自意識過剰で被害妄想だな
コンパイラは怒ってるのではなくて指摘してるだけ
544デフォルトの名無しさん
2022/05/15(日) 10:06:42.86ID:6dsDjrbs
The compiler is your friend
545デフォルトの名無しさん
2022/05/15(日) 10:31:50.86ID:C1KM65Ry
Rustのコンパイラに怒られるってことは所有権のシステムとかが全然理解できてないんだと思う

前の職場にもc/c++を数十年やっててrustを毛嫌いしてる人何人かいたけど、今更自分がコンパイラに指摘されまくるのがプライドが許さないんだろうな
546デフォルトの名無しさん
2022/05/15(日) 10:45:11.53ID:duXfvT8B
>>542
「ゆき ひろ」なw
547デフォルトの名無しさん
2022/05/15(日) 11:08:18.85ID:68DnPwxB
人間の理解を超えたところから怒られるのは違うかなと
それってプログラムなのか?
548デフォルトの名無しさん
2022/05/15(日) 11:12:52.72ID:68DnPwxB
囲碁や将棋はもうAIの方がかなり上に行っちゃって誰もAIに勝てない
プロも含めてAIの手を研究してるけど理解できないのがかなりある

それを意味も分からずただなぞって指してる人もいる

プログラムはそのレベルじゃないけどそういうものに近づいてる
549デフォルトの名無しさん
2022/05/15(日) 11:25:25.72ID:+6kSxcdv
デバッグ含めた開発効率の良さを考えると可能な限りコンパイル時に怒って欲しいかな
コンパイラが怒ってくれる > ランタイムが怒ってくれる > 誰も怒ってくれない
550デフォルトの名無しさん
2022/05/15(日) 11:45:48.58ID:cL2R0opO
プログラムを書いてエラーが出ると「自分が否定された」「尊厳を奪われた」と感じる人もいる、という話
https://togetter.com/li/1698737
551デフォルトの名無しさん
2022/05/15(日) 11:57:01.15ID:UbJQuPTx
ランタイムは運良くバグを踏まなければずっと怒られずに済むのに対してコンパイラは必ず怒られるから
前者の方がいいって人もいるんだろうね
552デフォルトの名無しさん
2022/05/15(日) 12:21:03.73ID:uEAI3vEe
ドMなので
553デフォルトの名無しさん
2022/05/15(日) 12:28:05.42ID:0scjaaG3
コンパイルが通って、いざ実行してみたら
「segmentation fault.」とそっけなく言われるのもまた一興
554デフォルトの名無しさん
2022/05/15(日) 12:43:05.95ID:wf2KlSEE
>>545
そうゆう浅はかな考えは恥をかく元。常に所有権を意識しなきゃならないので、言うなら、呼び出される上のほうでロックしてても
複数スレッドでアクセスして安全なのに、所有権をいちいち意識しなきゃならないという事だ。
Rustはスクリプト言語の作者からすれば、面倒な記述が多すぎると感じて当たり前
強いて言えば、こういう浅い奴がマウントとってる現状のRustコミュニティは反吐が出る、Rubyコミュニティも好きでもないけど
555デフォルトの名無しさん
2022/05/15(日) 12:56:50.39ID:+mKsOYSe
>>554
貴殿も的外れ
556デフォルトの名無しさん
2022/05/15(日) 14:03:03.21ID:8BbShedD
そろそろ指摘するんじゃ無くて、勝手に直したり、良きに計らって欲しい。
557デフォルトの名無しさん
2022/05/15(日) 15:06:40.70ID:v+sSFlFE
>>545
実はそういうは人を排除するためだけにRustのプロジェクトを立ち上げたりしてる組織もある
558デフォルトの名無しさん
2022/05/15(日) 15:29:27.60ID:2Vop47w6
陰湿やなあ
559デフォルトの名無しさん
2022/05/15(日) 16:17:30.31ID:SzIUVHZr
今のコンパイラはエラーが起きた行を指摘するけど
「この辺がちょっと気になります」
と指摘してくれるコンパイラが
そろそろ出てきてもいいような気がする
エラーの種類はそんなにないと思うので
560デフォルトの名無しさん
2022/05/15(日) 16:25:25.34ID:VMVrIVgn
静的解析ツールなら前からあるぞ。高いけど。
561デフォルトの名無しさん
2022/05/15(日) 17:05:02.60ID:68DnPwxB
松本が所有権を理解してないんじゃないと思うがw

まっつの言うこととこのスレの指摘はずれてると思う
松本の言ってることを理解してないだけ

気を付けて普通に書いてバグが出ないのが普通
それでも日常的にコンパイラに怒られるのは人間じゃなくて言語がおかしい
562デフォルトの名無しさん
2022/05/15(日) 19:34:19.11ID:bvYh9RC/
なんか最近開発に興味なくなってきた
こんな時みんなどうしてるの?
プログラミングだけが俺のアイデンティティだったのに
死ななきゃいけない?
563デフォルトの名無しさん
2022/05/15(日) 20:04:07.82ID:ezWJ6neI
さぁ?江頭2:50見て元気を貰うとかかな
564デフォルトの名無しさん
2022/05/15(日) 20:21:42.85ID:Fhttg/Du
>>563
あ?バカにしてんの?
565デフォルトの名無しさん
2022/05/15(日) 21:31:15.68ID:Wjdq3fA+
最近のげんこはprintをpirntとか書くと、
候補を提示してくれるよね。
あたまいい!!
566デフォルトの名無しさん
2022/05/15(日) 23:05:43.75ID:QlsYdN5b
>>556
一部のコンパイルエラーは修正コード提案してくれるしIDEからボタンぽちで修正できるから、
それ発展させて意図が不明確なコードでも何種類か修正候補出してくれるようにならないかな
567デフォルトの名無しさん
2022/05/15(日) 23:18:12.92ID:yIEtIhqx
>>565
Qiitaに投稿された「TypoScriptを作った」を思い出した
レーベンシュタイン距離が近ければOKっていうネタ言語
568デフォルトの名無しさん
2022/05/16(月) 05:52:10.13ID:x9xW3Kri
>>562
ぼくも(´・ω・`)
569デフォルトの名無しさん
2022/05/16(月) 07:12:48.31ID:3AP7f9yS
英語圏のフォーラム見に行くくらいモチベあったのにな
570デフォルトの名無しさん
2022/05/16(月) 08:44:14.30ID:IfoxgD2F
>>545
Rustはマナー講師みたいなものだろ。
Rustが望ましいと考えるスタイルを強制して他のやり方を許さない。「なんで?」と理由を聞いても「それがルールだから」とか理解しがたいことしか言わない。

せめて「スタックにデータを保存するため」とか「Cleanみたいに参照透過性と性能を両立させるため」とか言えばいいのに、そういった思想的な背景を説明しないからマナー講師が跋扈する。
571デフォルトの名無しさん
2022/05/16(月) 09:01:06.67ID:nGMMRLLq
>>570
それはどのプログラミング言語でも同じ。
いずれの言語も独特のスタイルを押し付けてくる。
もしそれを感じ取れないならば、それは特定のスタイルに慣れてしまっているだけに過ぎない。

例えばわかりやすい例を持ち出せば、リアクティブな言語や宣言的な言語では、
a = b + 100
と記述しておけば、aが変わればそれに応じてbが変わるし、bが変わればそれに応じてaが変わる。
ところがそうでない不便な言語に出会ったときに、
双方向に自動的に変わってくれないために苛立つかもしれない。
572デフォルトの名無しさん
2022/05/16(月) 11:59:09.62ID:TAALxp7N
>>571
「それは特定のスタイルに慣れてしまっているだけに過ぎない。」と切り捨てているところに排他的思想&知識マウントを感じるね。

a = b + 100の例は代入演算に対して ("="から一般的に連想される) 「等しい」の意味を適用することにより生じる誤謬。
原理や技術的決定を理解せずに相手にルールを押し付けようとするマナー講師の話とは関係無いな。
573デフォルトの名無しさん
2022/05/16(月) 13:13:57.85ID:IoIRdAU7
>>570
むしろスタイルを強制しないプログラミング言語なんて存在するのか?
574デフォルトの名無しさん
2022/05/16(月) 13:41:05.21ID:8gGmt1rZ
松本がRust好きじゃないのはまあそうだろうなとは思う。
この人、テストコードとかも好きじゃないとか言ってたし。
個人的にはそれじゃ仕事にならんだろとか思ったりはするけれど、とりあえずこの人のスタンスは一貫はしてるよ。
575デフォルトの名無しさん
2022/05/16(月) 18:39:47.20ID:qW5+0T97
>>570
マナー講師はフォーマットみたいな個人の好みレベルの話で
コンパイラが指摘する構文とかセマンティクスはその言語の世界における自然法則みたいなものでは
576デフォルトの名無しさん
2022/05/16(月) 19:09:08.37ID:R1kAqWTp
>>575
エラーメッセージの問題じゃなくてドキュメントの問題かもしれないけど、エラーの形で否定するなら納得のいく理由を教えてほしいものだわ。
自然法則みたいな原理があるなら、その原理からどう推論したらそのルールになるのかの考え方も欲しいところ。
まぁ、それ以前のエラーメッセージしかしないクソ言語も多いけど。C++とか。
577デフォルトの名無しさん
2022/05/16(月) 21:09:51.80ID:qW5+0T97
>>576
rustのlifetimeとかborrowing周りのエラーはそんな感じでエラーになった理由は教えてくれるよ
例えばどんなエラーの原因を分かると嬉しいと思う?
578デフォルトの名無しさん
2022/05/17(火) 03:36:27.01ID:maKCFX0H
Rustのエラーメッセージの親切さは異常
579デフォルトの名無しさん
2022/05/17(火) 04:13:37.47ID:tz+YwBRZ
美人女教師のイラストでも添えたら
エラーメッセージもそれっぽい口調にして
580デフォルトの名無しさん
2022/05/17(火) 08:12:17.48ID:t8H/GFrA
>>577
原因じゃなくて原理ね。
エラーメッセージとしてはとりあえずは原因と解決策で十分だけど、verboseの時とかは技術的背景とかポリシーとかを説明した解説へのリンクがあると嬉しい。特に制約の厳しいライフタイムとか借用とか。
まぁ、そうなるとrust版D&Eを書くようなものだから大変か。
581デフォルトの名無しさん
2022/05/17(火) 08:22:18.93ID:aOp3kwmZ
>>580
現状でもエラーによってはGitHubのissueへのリンクが付いてるから、具体的にこのエラーでこのページへのリンクを付けるべきって提案があれば受け入れられる可能性は高いと思うよ
582デフォルトの名無しさん
2022/05/17(火) 08:39:46.07ID:3guGxSPi
カンマとピリオドの間違いとか
カンマが抜けているとか
うっかり全角文字で記号をうっているとか
初心者にありがちなエラーを
「ひょっとして・・・」
と教えてくれるとうれしいかもしれない
583デフォルトの名無しさん
2022/05/17(火) 09:03:36.05ID:t0SSI9IZ
コンパイラ「Did you mean ',' instead of '.' ?」
俺「Fuck off!」
584デフォルトの名無しさん
2022/05/17(火) 11:37:57.12ID:V5JE6XCC
>>580
例えば、↓のコードをコンパイルすると
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0bd550e905a2263a33895815c4430436

error[E0499]: cannot borrow `x` as mutable more than once at a time
てな感じでエラーコードが表示されて、以下の解説ページへのリンクが貼られている
https://doc.rust-lang.org/stable/error-index.html#E0499
この中から関連するリファレンスへのリンクが貼られている
現状のドキュメントで十分ではないという問題はあるかもしれないけど、>>580 で言われているような方向性にはなっているよ

>>582
上のコードのセミコロンを全角にしてみたらまさにそんな感じのメッセージが出た
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=118aa7e31d9c6c786d222f34a66623c3

error: unknown start of token: \u{ff1b}
help: Unicode character ';' (Fullwidth Semicolon) looks like ';' (Semicolon), but it is not
585デフォルトの名無しさん
2022/05/17(火) 16:48:28.24ID:DWSI+bpc
コンパイラのエラーメッセージに外部サービスのリンクって、もしそのサービス終わったらどうすんの?
586デフォルトの名無しさん
2022/05/17(火) 17:38:26.91ID:V5JE6XCC
>>585
rustのことなら公式サイトへのリンクだよ
さすがに言語のメンテナンスが続く限りは大丈夫でしょう
587デフォルトの名無しさん
2022/05/17(火) 19:22:14.68ID:ARYpWsQd
なお誰もやらんもよう
588デフォルトの名無しさん
2022/05/18(水) 09:51:35.50ID:ynn+jzpi
最も重要なマナーは
プログラムなのかデータなのか不明な文字列等を使ってはならない
つまりインタプリタを作ってはならない

文字列指向が好きな人にとっては
オブジェクト指向こそが文字列を否定するマナー講師だった

OOPを無視してstatic変数を使ってもコンパイラに怒られることはなかった
怒っているのはいつも人間だった
589デフォルトの名無しさん
2022/05/19(木) 01:27:36.14ID:Ahp8TrG/
Rustちゃんは生活のすべてを管理されたトップアスリートでヘソ出しユニに胸はぺったんこでショートヘアのすっぴんだけど最高の記録を出す
Goちゃんはそんじょそこらの陸上部員で県大会レベルだけどボインボインのロングでシャワーを浴びたらそのままGoコンにGoできる
どっちがいいかって話よ
590デフォルトの名無しさん
2022/05/19(木) 01:29:12.91ID:Ahp8TrG/
なおGoちゃんは無限に二股をかけられるという特技もある
591デフォルトの名無しさん
2022/05/19(木) 01:33:58.07ID:d4KplWCH
意味不明なたとえ受けると思ってそう
592デフォルトの名無しさん
2022/05/20(金) 01:02:59.89ID:A/bJmwRQ
レベルが低すぎてRustスレで書けないRustの話しかしない駄スレ
593デフォルトの名無しさん
2022/05/20(金) 03:37:27.56ID:tiOCYDba
      ____
     /      \
   /  _ノ  ヽ、_  \
  / o゚((●)) ((●))゚o \  ほんとはRustスレでやりたいんだお…
  |     (__人__)    |
  \     ` ⌒´     /



       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  でもRustaceanはクオリティ高いスレしか相手してくれないお…
  |     (__人__)    |  
  \     ` ⌒´     /



       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒:::::\   だから次世代言語スレでやるお!
  |     |r┬-|     |
  \      `ー'´     /
594デフォルトの名無しさん
2022/05/20(金) 07:21:25.71ID:qtpsVsYu
Rustスレはフィボナッチ数列で無駄に盛り上がってる
595デフォルトの名無しさん
2022/05/20(金) 08:06:23.76ID:0sq8H5co
>>594
行列演算とかじゃなくてフィボナッチ数列かぁ……
596デフォルトの名無しさん
2022/05/20(金) 09:05:30.63ID:skF4IFrQ
純粋アルゴリズムにrustは不向きだとなぜ気づかんのかな。。
597デフォルトの名無しさん
2022/05/20(金) 09:31:27.55ID:qCLhnuk6
>>595
なかなかゴミみたいな様相だよ
フィボナッチ数列の第n項はメモ化しなくても線形オーダー、あるいは対数オーダーで計算できるのに、メモ化にこだわりのある人が「そのやり方はmainのループと合わせて計算量はn^2だ」とか言い出して散々
598デフォルトの名無しさん
2022/05/20(金) 10:04:11.72ID:73YqjaVk
>>596
個人的にはむしろ抽象化と両立が難しいところに新しい道ができたように思えた
(過剰なメモ化なら言語関係なくやられがちな気がする)
599デフォルトの名無しさん
2022/05/20(金) 16:45:27.87ID:B4JoNxMk
フィボナッチ数列計算するのにあそこまでする必要はないわ
600デフォルトの名無しさん
2022/05/20(金) 17:32:46.13ID:nVnkC/ng
スレ見てないけどベクトル演算した方が速いんじゃないの知らんけど
601デフォルトの名無しさん
2022/05/20(金) 17:36:21.53ID:g6eOZZWy
Rustのスレなんだし、アルゴリズムで計算量を改善したりする話じゃなくて、Rustのベストプラクティスについて話してほしい
602デフォルトの名無しさん
2022/05/20(金) 17:49:16.78ID:nVnkC/ng
Rustのスレじゃねーんだなこれが
603デフォルトの名無しさん
2022/05/20(金) 17:58:31.56ID:UyuFXYvf
数値計算はやっぱりJuliaかFORTRANが実行速度最速なのかしらん。
604デフォルトの名無しさん
2022/05/20(金) 18:17:57.67ID:Cx5X7nNC
>>597
nが与えられた時に
『フィボナッチ数 F_n』を求めるのは単純にO(n)あるいは工夫してO(log n)で合っている

ところがその『F_n』を求める関数を「ループでn回」用いて
『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を求めると当然n倍でO(n^2)またはO(n・log n)となってしまう
それが後半の「そのやり方はmainのループと合わせて計算量はn^2だ」という話だと思うのでそれも合っている

ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がlog(n)で済む
つまり計算量を大きく節約できる
この二つの区別を出来ているかどうかが重要なポイントかな
605デフォルトの名無しさん
2022/05/20(金) 18:30:54.17ID:Cx5X7nNC
ごめん1箇所だけ記述ミスを訂正
>>604
× ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がlog(n)で済む
○ ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がO(n)で済む
606デフォルトの名無しさん
2022/05/20(金) 19:27:34.87ID:Cb6kz6Up
>>605
コテハン付けろよ。
NGにするから。
607デフォルトの名無しさん
2022/05/20(金) 19:32:41.44ID:0DaneQt4
頭おかしくなっちゃった!
    -=≡ ∩ 彡⌒ミ ∩
 -=≡   .ヽ(´・ω・`) /
-=≡     (    /
 -=≡   (   ⌒)
  -=≡  し  し'
608デフォルトの名無しさん
2022/05/20(金) 20:02:33.19ID:AMqMmZYo
>>604
そうそう、こんな感じで論点をどんどん変えてくんだよね
フィボナッチ数列のはずがフィボナッチ数列の1~n項の計算にすり替えられちゃう
609デフォルトの名無しさん
2022/05/20(金) 20:07:15.27ID:Cx5X7nNC
『フィボナッチ数 F_n』を求めるアルゴリズム・計算量と
『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を求めるアルゴリズム・計算量は当然異なるからね
前者は繰り返し二乗法で1個の算出がO(log n)がベストだけど
後者で前者の方法を使ったら遅くなる
後者は単純に前二つを足していけばn個の算出がO(n)で済みそれがベスト
610デフォルトの名無しさん
2022/05/20(金) 20:33:10.89ID:AMqMmZYo
スレの流れとしては前者なのに一人だけ「数列だから初項からn項までの計算量を考えろ」とか頓珍漢なこと言ってるのよね
611デフォルトの名無しさん
2022/05/20(金) 20:52:13.48ID:EQAKr5b0
スレ見たけど最初から全員がフィボナッチ数列を列挙させているから
>>609で言うところの後者だな
そして今日書かれた2種類のコード共に後者のイテレーター

>>610
たぶん君だけが勘違いしている可能性が高いw
612デフォルトの名無しさん
2022/05/20(金) 20:52:49.34ID:pMSjr2Vl
フィボナッチ数列自体はただの例題なのに異様な執着心見せる人が居るよね
なんかのコンプレックスこじらせてるのかな
613デフォルトの名無しさん
2022/05/20(金) 20:59:42.21ID:Cx5X7nNC
>>610
フィボナッチ数列といったら F_0, F_1, F_2, ..., F_n, ... だよ
それはともかく前者と後者でベストなアルゴリズムが異なるから前者だけの話をすることはありえないと思う
そして後者のイテレータはそのまま前者をO(n)で求めることが出来るから
どちらもO(n)で十分とするならばイテレータをプログラミングするのが自然じゃないかな
614デフォルトの名無しさん
2022/05/20(金) 21:04:10.39ID:uKCjuMHy
職業マは生暖かい目で見守ってるよ
初学者・学生・無職・アマチュアプログラマが必死になれるのは
自転車置き場の議論だけだからね
昼間必死に書き込んでるやろ彼らは
615デフォルトの名無しさん
2022/05/20(金) 21:07:40.93ID:QySmFXhb
フィボナッチってO(1)では?(ビネ並感)
流れはよくわからないが、とりあえず本スレは盛り上がっているようで何よりだね
616デフォルトの名無しさん
2022/05/20(金) 21:15:10.30ID:EQAKr5b0
各項のオーダーはO(1)可能だが複素数(行列)でムダに計算量多いだろw
結局一覧を列挙するなら足し算していくのが一番速い
617デフォルトの名無しさん
2022/05/21(土) 00:28:12.49ID:xHIjAvV7
スレタイ読めよアスペども
618デフォルトの名無しさん
2022/05/21(土) 07:47:11.09ID:0jWT+RR4
>>616
複素数じゃないよ、実数の範囲で計算できるよ
619デフォルトの名無しさん
2022/05/23(月) 01:01:31.28ID:Eq9f2SXv
Qitaベンチマークで、フィボナッチとかドヤァってるドアホ見るけど、片方の言語がoverflowチェックなどが入ってる演算を
使ってるのに、もう片方はチェックが入らない言語を使って比較してることがよくある。とんでもねえアホ
さらにいうなら最適化レベルも、ループアンロールをデフォルトで勝手に行う言語と、明示しない限り行わない言語で
比較してたりメチャクチャなアホ。お前の推しの言語がチェック付き演算行ったら、お前の推しじゃない言語と変わらんからな
620デフォルトの名無しさん
2022/05/23(月) 01:37:17.26ID:o7ibVFPP
当該ページを示さずに愚痴られても…
621デフォルトの名無しさん
2022/05/23(月) 02:12:19.04ID:aUQlcplw
標準的なコンパイル方法・プログラムの書き方をした場合の比較になっているのなら意味はあるのでは
622デフォルトの名無しさん
2022/05/23(月) 05:59:53.99ID:YmsKfutR
確かにCheckedAddとかで書いてるQita記事のフィボナッチベンチなんて見たこと無いね、逆に言うとそれしか意味がない。ベンチとは名ばかりのフワッとした自己満足オナニーだ、100mハードルと100m走くらべてるようなもんさ
623デフォルトの名無しさん
2022/05/23(月) 07:01:43.76ID:n2ZPTBPD
>>619
Rust本スレのフィボナッチはoverflowチェック入っているぜ
http://2chb.net/r/tech/1652347700/181

>>622
それはその個人の問題点であってプログラミング言語の問題ではない
624デフォルトの名無しさん
2022/05/23(月) 09:56:36.54ID:vZp1MWnh
顔真っ赤でコピペして来てるw
書いたどうだという話じゃない、それでベンチマーク取ってみろという話だよ。この流れが分からない奴は個人の問題点w
いちいちオーバーフローがセーフな演算をchecked_addなんて冗長な書き方しか出来ないのだから、言語の問題でしょう?
標準的なコンパイル方法・プログラムの書き方をした場合、危険でズルなんだからw
625デフォルトの名無しさん
2022/05/23(月) 10:48:59.78ID:gzAO9YOH
>>623
うわっ、何このダサいコード
626デフォルトの名無しさん
2022/05/23(月) 10:52:41.72ID:ZgbkB3a0
フィボナッチが居ついちまったじゃないかよ。

お前ら責任取ってフィボナッチの話題禁止な。
627デフォルトの名無しさん
2022/05/23(月) 12:30:43.66ID:aUQlcplw
フィボナッチ呼ばわりはフィボナッチさんへの風評被害になるからやめな
628デフォルトの名無しさん
2022/05/23(月) 13:17:40.25ID:YSocoZUy
>>625
口だけ番長定期
これだから世界から糞バカ中世ジャップランド土人とか呼ばれるんだよ
629デフォルトの名無しさん
2022/05/23(月) 15:35:29.13ID:wWZ2mUik
>>624
それはあまりにも無知な発言
RustではC/C++やCPUでの同じ動作となっているにすぎない

例えばC/C++では (正確には未定義だが通常動作)
int main() {
char x = 127;
x = x + 1;
printf("%d\n", x); // 出力結果: -128
}

Rustでは (普通にrelease modeの場合)
fn main() {
let mut x: i8 = 127;
x = x + 1;
println!("{x}"); // 出力結果: -128
}
ちなみにdebug modeではpanicで知らせる
release modeでもコンパイラに指定でpanicで知らせることも可能
630デフォルトの名無しさん
2022/05/23(月) 15:38:27.39ID:wWZ2mUik
>>629に加えてRustでは
let n: i8 = 126;
の時、

println!("{:?}", n.wrapping_add(1)); // 出力結果: 127 // 溢れていないならその値
println!("{:?}", n.wrapping_add(2)); // 出力結果: -128 // 溢れたらラッピング(一周して)その値

println!("{:?}", n.overflowing_add(1)); // 出力結果: (127, false) // 溢れていないならばオーバフローフラグfalseが返る
println!("{:?}", n.overflowing_add(2)); // 出力結果: (-128, true) // 溢れたらオーバフローフラグtrueが返る

println!("{:?}", n.checked_add(1)); // 出力結果: Some(127) // 溢れていないならばOption型のSome(値)が返る
println!("{:?}", n.checked_add(2)); // 出力結果: None // 溢れたらOption型のNoneが返る

println!("{:?}", n.saturating_add(1)); // 出力結果: 127 // 溢れていないならその値
println!("{:?}", n.saturating_add(2)); // 出力結果: 127 // 溢れたらその型の上限の値

といったようにRustでは求められている状況に応じて容易に多様な対応を取ることが可能
Rustよりも用意周到なプログラミング言語があればその動作を教えて欲しい
631デフォルトの名無しさん
2022/05/23(月) 15:44:29.35ID:afBzb9pp
顔真っ赤wwwwwwww
632デフォルトの名無しさん
2022/05/23(月) 15:45:47.88ID:dNJCbMGg
ここ2週間くらいRustスレずっとこんな調子だったんですよ
勘弁してほしい
633デフォルトの名無しさん
2022/05/23(月) 15:58:24.00ID:X9GYHqrY
某R言語のユーザーは本当に気持ち悪いな
634デフォルトの名無しさん
2022/05/23(月) 16:13:42.23ID:zhKycwRA
何が用意周到なんだか。言語のことを言ってるんじゃなく、「あくまでそれでベンチマーク比較すんなよド素人」という話だけなのに、ムキになって言語機能の紹介書いちゃうオジサン
蛇足的に言語のことを言うなら、RustよりまともなのはC#でcheckedキーワードの明示による算術のオーバーフローをチェックかな?安全に足し算したいだけで毎回checked_addなんて書くのは勘弁願いたいのは本音。C#もデフォルトで安全に倒すという思想からも逸脱してるとも言えるが
635デフォルトの名無しさん
2022/05/23(月) 16:24:56.03ID:21uaV1OX
>>625
Rustスレでも満場一致で同じ意見だからご心配なく
636デフォルトの名無しさん
2022/05/23(月) 16:33:53.72ID:wuIMUAe9
CPU・C・C++・C#・Rust全てにおいてオーバフロー時は一周回った結果になるってことか
じゃあそれが標準的な振る舞いなのだろう
637デフォルトの名無しさん
2022/05/23(月) 19:59:34.50ID:aUQlcplw
>>634
演算子オーバーロードできる言語なら a + b が Option<T> 返すような型を実装できるから言語組み込みでキーワード用意する必要もないのでは

例えばRustだとそういうライブラリもある
https://docs.rs/checked/latest/checked/
638デフォルトの名無しさん
2022/05/23(月) 20:07:10.01ID:pMTVA02Y
>>636
Goもそれらの言語と同じ
int8(127)に1を足すと-128となる
標準でオーバフローチェックしなくてズルい!と発狂している人はどんな言語を使っているのだろう
639デフォルトの名無しさん
2022/05/23(月) 22:48:29.77ID:X9GYHqrY
実装が処理速度に与える影響を論じるのなら浮動小数点数の話で語り始めるべきだったなw
640デフォルトの名無しさん
2022/05/24(火) 01:58:49.24ID:e1yfwJHI
Pythonなどは(無限にではないが)演算で型拡張が行われるから、それらと同列でベンチマークすべきではないのは同意
Rustを愛しすぎて、顔にウンコ付いてて冗長で気持ち悪い書き方を擁護して発狂する用意周到オジサン
641デフォルトの名無しさん
2022/05/24(火) 02:20:04.04ID:8GgyJL9r
Rustでの標準挙動は>>636>>638により他の主要なプログラミング言語と同じ
その上で>>637など演算毎にチェックも可能
このような状況でとなおRust叩きをしている人は頭がおかしいのかそれとも
642デフォルトの名無しさん
2022/05/24(火) 04:56:32.72ID:cZN4xY/Z
Rustスレ過疎ってル訳でもないのにどこでもRustの話始めるのなんでなん?
643デフォルトの名無しさん
2022/05/24(火) 10:26:14.04ID:bYnrOJu+
頭がおかしいから
反応したら負け
644デフォルトの名無しさん
2022/05/24(火) 10:43:26.98ID:7zq5Zl9C
言語は一つに統一したらええに。
言葉も英語だけなら良かったに。
645デフォルトの名無しさん
2022/05/24(火) 11:54:32.13ID:BzukVrXt
Swiftってわかりにくいね
Objective-Cもクソだったし林檎嫌いだわ
646デフォルトの名無しさん
2022/05/24(火) 12:46:51.04ID:+Ywn9TYu
それでも Swift >>> 越えられない壁 >>> Go、つまり 林檎 >>>>>> Google
647デフォルトの名無しさん
2022/05/24(火) 12:47:47.67ID:MRz9uR42
>>645
> Objective-Cもクソ

具体的にはなにがどうクソなの?
648デフォルトの名無しさん
2022/05/24(火) 13:19:16.27ID:ITkZMsqO
まずxcodeが糞
糞というか狂気
犯罪と言っても過言でないと思う
649デフォルトの名無しさん
2022/05/24(火) 13:40:19.38ID:x7vOIT3I
3行使って情報量がほぼゼロ
650デフォルトの名無しさん
2022/05/24(火) 16:13:05.56ID:ITkZMsqO
1 + 1 = 2 レベルの内容すら理解できんとかガイジ?ホイ卒?
651デフォルトの名無しさん
2022/05/24(火) 16:25:30.71ID:Z3J3KQ7G
Swiftやってると某こんスレにいるアホ言語初心者のような参照カウントの悪辣性に気付くんだわ。その言語の機能解説ずーとしてるバカたち
1つでもスマートで無いと言えば「自分たちが攻撃された」と思い込み、べたコード貼り付けて得意満面に機能解説しだす
652デフォルトの名無しさん
2022/05/24(火) 16:38:55.79ID:/TotnhyC
>>650
1 + 1 = 2は定義上そうなっているだけなので理解できるかどうかという話じゃないんだぞ(クソリプ)
653デフォルトの名無しさん
2022/05/24(火) 16:39:22.08ID:sOTuiKrj
「Swiftになってよかったこと」で調べればobjective-cの駄目なところはいくらでも出てこない?
654デフォルトの名無しさん
2022/05/24(火) 17:03:32.22ID:Q0PWN6eS
Swiftは言語だけみれば結構いいけどね
エラーハンドリング機構はメジャー言語の中では一番進んでる

objective-cは名前空間がなくて衝突回避のためにどうしても長い名前になるのがよくなかった
Swiftにも引き継がれてるメソッド名が引数名込みになるルールも分かりにくい
あとは動的ディスパッチなので速度が必要ならCかC++で書かないといけないのが面倒だったかな
655デフォルトの名無しさん
2022/05/24(火) 18:08:59.87ID:ITkZMsqO
>>653
ビチグソが固形ウンコになったくらいのレベルでよかったとかいうxcodersは頭がおかしい定期
656デフォルトの名無しさん
2022/05/24(火) 18:11:41.40ID:ITkZMsqO
ごめん、うんこに失礼だった
うんこは体にとって大事だけど
xcodeは世界の敵、環境破壊兵器、サリン、AntiSDGs、人工地震5Gだったわ
世界平和のために早く殺すべき
657デフォルトの名無しさん
2022/05/24(火) 18:32:36.39ID:K71E2ixm
>>654
同意
658デフォルトの名無しさん
2022/05/24(火) 18:44:18.42ID:MRz9uR42
具体的なレスを聞かせてくれた>>654すこ
659デフォルトの名無しさん
2022/05/24(火) 18:49:32.82ID:fs/OcGN+
>>655
日本語読める?
660デフォルトの名無しさん
2022/05/24(火) 19:00:38.09ID:9IIPqcRo
業務でストレス貯まってるのかな
661デフォルトの名無しさん
2022/05/24(火) 21:33:55.54ID:n+gg4WC+
匿名掲示板でうんこレスしこたま投稿するの楽しいにゃん♪
662デフォルトの名無しさん
2022/05/24(火) 22:38:22.80ID:5G1zL+3l
Xcodeが嫌ならVS CodeかAppCode使えば良くね?何が問題なの?
663デフォルトの名無しさん
2022/05/26(木) 19:00:46.30ID:C4ssaGJt
次スレから
スレタイに Julia も追加すべき
664デフォルトの名無しさん
2022/05/26(木) 19:03:52.92ID:EVCXwRA4
どうぞ
665デフォルトの名無しさん
2022/05/26(木) 20:19:19.19ID:nSdeHuFH
旧世代言語は去れ
666デフォルトの名無しさん
2022/05/28(土) 09:48:31.36ID:EmXYdsgj
kotlinのチュートリアル的なのみたらif式は変数に代入してコールできるとかあったけどいつ実行されるの?コールしたとき?それとも代入された変数には既にif式の実行結果が入ってる?
667デフォルトの名無しさん
2022/05/29(日) 16:30:35.70ID:89z2cDQI
・フリーエンジニアが年間3,600万円の売上を上げた方法を解説する
・26歳で独立して月収150万になった 元引きこもりエンジニアの物語
・ブラック企業から退職し、独立後11ヶ月で“月収300万円超え”になるまでの軌跡を
 デザイナー社長船越良太に聞いてみた!
・ITフリーランスで月額単価150万円!万が一の就業不能に備える無料の保険もある「クラウドテック」
・フリーランス時代に月収4万円→最高340万円を達成した船越さんに、「お金」との向き合い方を聞いてみる
・フリーランスSEってどれくらい稼げるの?月単価160万円の案件を扱う定番エージェント
・フリーランスの仕事や職業の種類って何があるの?独立5年目で月収200万の僕が詳しく解説
668デフォルトの名無しさん
2022/05/29(日) 16:46:50.81ID:C+iYNtEl
>>667
嘘くさ
情報商材とかに騙されてそう
669デフォルトの名無しさん
2022/05/29(日) 18:49:03.61ID:4taUn78j
>>668
君は年収300でRustで組み込みでもしてるのが実力だからねw
670デフォルトの名無しさん
2022/05/29(日) 20:21:54.98ID:RsJgaHeF
ムキになってて草
671デフォルトの名無しさん
2022/05/29(日) 20:29:03.30ID:JtP99XwD
年収800万超えエンジニア注目するプログラミング言語、第1位は?
https://news.mynavi.jp/techplus/article/20210802-1936893/
次世代言語25 TypeScript Swift Go Kotlin Rust Nim YouTube動画>4本 ->画像>2枚
672デフォルトの名無しさん
2022/05/29(日) 23:44:19.76ID:xfFi626I
>>671
こういうの鵜呑みにしちゃうんだ
変な壺とか買ってそう
673デフォルトの名無しさん
2022/05/30(月) 00:09:02.12ID:URC3D+jY
Goとかいうウンコオブウンコのそび糞
674デフォルトの名無しさん
2022/05/30(月) 08:59:04.28ID:Pjv5EPMb
>>663
このようにマジキモRust信者が24時間張り付いて、他言語の悪口を言うスレです
675デフォルトの名無しさん
2022/06/01(水) 05:40:50.61ID:kSwwruMK
そんな書き込みは見かけないね
676デフォルトの名無しさん
2022/06/01(水) 07:00:10.40ID:m3Paz3vX
(俺以外の)そんな書き込みは見かけないね
677デフォルトの名無しさん
2022/06/01(水) 11:51:48.67ID:a41qFxYX
(自演して)クソクソ言っとけば悪口になると思ってそう
678デフォルトの名無しさん
2022/06/01(水) 17:27:50.52ID:bHuwLCJo
>>671
高収入になるほどRustを好む傾向がはっきりデータに出ているな
この状況でRustを叩いてる連中はどういう人たちなのだろう?
679デフォルトの名無しさん
2022/06/01(水) 17:43:20.57ID:IxX6jh1U
あからさまにRustを叩いている人はごく一部を除いていない
ほとんどはRust信者を生暖かい目で見ているという立ち位置
680デフォルトの名無しさん
2022/06/01(水) 21:28:30.53ID:pSC66flQ
Rust信者に香ばしい人が多いのはなんなんだ?
681デフォルトの名無しさん
2022/06/01(水) 23:51:24.24ID:5AVQNMn+
信者は香ばしいもんだろ
682デフォルトの名無しさん
2022/06/02(木) 01:26:39.73ID:OV4goLPm
>>678
叩きもなにも、もはや誰も言語仕様の話はしていない。汚物連呼程度の煽りならスルーするのが賢明だ
683デフォルトの名無しさん
2022/06/02(木) 07:49:13.42ID:0uHbICXr
Rustは素晴らしい言語ではあるが
頭が悪い側の一部のプログラマーが理解できない可能性ないのか?
684デフォルトの名無しさん
2022/06/02(木) 08:10:44.20ID:BiTU5AOk
>>683
そう考えるRust狂信者は多そうだな。
Haskellの二の舞だわ。
685デフォルトの名無しさん
2022/06/02(木) 09:03:19.01ID:Y3NDvf7Q
むしろ駄目プログラマーを上手く排除できるからありがたい
理想的な社会になる
686デフォルトの名無しさん
2022/06/02(木) 11:14:24.49ID:kLxnMhNJ
駄目プログラムがRustに置き換わるだけで何の解決にもなっていないのでは?
687デフォルトの名無しさん
2022/06/02(木) 11:16:44.55ID:A+oZ2GoP
一番排除できてありがたいのは、癖のあるC++プログラマーw
688デフォルトの名無しさん
2022/06/02(木) 11:51:30.38ID:ZMFIZVkF
例えば駄目プログラムの典型として
「データ構造スパゲティ」

GC言語だとそれでも動いてしまうがメンテしにくい、バグ入り込みやすい、デバッグしにくいなど、当然問題ありまくり
C/C++だと解放忘れや解放後利用や多重解放などが入り込みがちで難解になるため普通は避けるが、避けない人も出てきてはまる
Rustだとコンパイルが通らないことで、それら諸問題を避ける形になることが多い
689デフォルトの名無しさん
2022/06/02(木) 13:29:24.85ID:C1W9vuQS
スパゲッティか~
おいしそうだねえ~
690デフォルトの名無しさん
2022/06/02(木) 13:51:42.44ID:2I6UvhVY
>>688
データ構造がスパゲッティでも、Rustのルールに則っていれば、動いてしまうんじゃないの?

Rustだって、設計の良し悪しまで判断できないと思うんだが。
691デフォルトの名無しさん
2022/06/02(木) 14:01:04.10ID:vo8qdvVO
何でもRcで囲めば簡単にスパゲッティデータ構造作れそう
692デフォルトの名無しさん
2022/06/02(木) 14:43:28.56ID:wPySDGOC
>>685
まぁ確かに
Ruby募集すればスクール卒が集まるし、PHP募集すれば障害者雇用枠が集まるしな
そういうこと
693デフォルトの名無しさん
2022/06/02(木) 15:05:39.70ID:MwnGmD5s
>>692
そういうのはRuby募集するときにRustスキル必須にすればいいけど、そんなことをしたらコスト上がるだろ。
コスト以上の売上を上げられるのかね?
694デフォルトの名無しさん
2022/06/02(木) 15:46:11.94ID:wPySDGOC
>>693
何当たり前のこと言ってるんだ?
便所掃除に大卒雇うわけないだろ?
そういうこと
695デフォルトの名無しさん
2022/06/02(木) 18:38:30.38ID:aZCO8NlO
>>687
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。

>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
696デフォルトの名無しさん
2022/06/02(木) 18:58:22.84ID:wPySDGOC
型無し糞言語ユーザーはその場で○していいよ
公害だから
697デフォルトの名無しさん
2022/06/02(木) 19:48:49.81ID:YZ3xIu4V
キチガイ*だけ* 言語Rust
698デフォルトの名無しさん
2022/06/02(木) 21:04:45.84ID:HUF3eecJ
>>690
ぐぅ正論w
699デフォルトの名無しさん
2022/06/02(木) 21:41:51.25ID:WnYotmDJ
>>690
Rustでデータ構造がスパゲッティだと
参照や競合を解決するためにそれ用のを使わざるを得ないから
その使われている部分が無理やりなのか必要なのかをチェックするだけで判別できる点は良いね
700デフォルトの名無しさん
2022/06/02(木) 23:25:41.34ID:C1W9vuQS
そもそもスパゲッティデータ構造って定義はなに
フローにおけるサイクロマティック複雑度みたいな指標あるんでしたっけ
701デフォルトの名無しさん
2022/06/03(金) 12:08:17.39ID:xzoD2mhR
>>690
0か100で判断すんな。
他の言語よりマシって言ってるんだろ。
702デフォルトの名無しさん
2022/06/03(金) 12:18:20.21ID:xzoD2mhR
頭固いやつほど0か100でばかり判断しやがる。
703デフォルトの名無しさん
2022/06/03(金) 12:24:15.91ID:zWyAdBA8
具体性が無い話をいつまでも続けてんじゃね~
704デフォルトの名無しさん
2022/06/03(金) 12:32:07.86ID:gfwA6c8+
せめてコード例を出せ
705デフォルトの名無しさん
2022/06/03(金) 12:44:43.82ID:yhFti50j
ちょっと待て
俺たちプログラマは抽象化と常に隣り合わせになりながら生きてるはずだ
706デフォルトの名無しさん
2022/06/03(金) 12:48:02.40ID:zWyAdBA8
じゃあ客観性が無い話をいつまでも続けてんじゃね〜
707デフォルトの名無しさん
2022/06/03(金) 13:58:15.04ID:EO0p59TU
スパゲッティデータ構造wwで終わってる話
708デフォルトの名無しさん
2022/06/03(金) 14:31:49.94ID:RXRy7t82
昔のレベルの低い状況だったらよかったのかもしれんが、抽象バカはこれからはプログラマーとしてはやっていけないよ。
今はテストコード書くのが当たり前だから。
709デフォルトの名無しさん
2022/06/03(金) 14:36:17.21ID:PVwM5tOu
まだスパゲッティデータ構造とかいう話をしているんかよ。新しいバズワードでも作りたいんかね。
一般的でない用語を使いたければ、せめて定義ぐらいはしろよ。
710デフォルトの名無しさん
2022/06/03(金) 16:26:17.35ID:ypnnfw4Q
>>688
Rustにも進出してそれを体感するようになった
Rustはデータ競合もコンパイラがチェックするから他の言語では気付かなかったことを把握して組めるようになった
711デフォルトの名無しさん
2022/06/03(金) 16:41:16.70ID:VwiYiMNb
まさかおまいらやってないよな
http://2chb.net/r/tech/1654051738/
712デフォルトの名無しさん
2022/06/03(金) 17:10:08.22ID:oX46NC1r
次スレワッチョイ付けとく?
713デフォルトの名無しさん
2022/06/03(金) 17:56:42.36ID:yufR8mPg
>>711
実環境と同じで開発する Docker っていうんだぜ 最新の開発手法なんだが 逆に知らないのか?RUSTとか言ってるバヤイじゃないだらw
714デフォルトの名無しさん
2022/06/03(金) 18:36:29.92ID:PVwM5tOu
>>711
受入側がテストケースを作るという話なら理解できるけど、そういう話じゃ無いんだろうなぁ。

>>713
それはOpsDevの話だから、ちょっと違う気がする。
715デフォルトの名無しさん
2022/06/03(金) 19:16:59.53ID:os9nRGDZ
> スパゲッティデータ構造

「所有権の複製」と同じ独善的で哀れな響きを感じる
716デフォルトの名無しさん
2022/06/03(金) 20:43:36.50ID:Obl8jI4y
データと環境の区別がつかないやつとか
Dockerを最新開発手法だと思ってるやつとか
DevOps知らないやつとか
スパゲッティデータ構造wとか
ここは底辺の巣窟だな
717デフォルトの名無しさん
2022/06/03(金) 21:05:02.43ID:os9nRGDZ
底辺というか単にアマチュアと思う
仕事で書いてるマがあんまいないでしょここ
学生さんか無職によるエアプの応酬でしょひたすら
718デフォルトの名無しさん
2022/06/03(金) 23:44:10.63ID:gxOeTsOz
YouTube で有名な、雑食系エンジニア・KENTA の動画

EC2はもうオワコンです


ほとんどの企業が、Docker, Kubernetes へ移行している。
自分でOS を管理してはいけない。更新などが面倒だから

だからAWS でも、Elastic Container Service(ECS)ではなく、Fargate を使えと言ってる。
他には、AWS Lambda とか

YouTube で有名な、くろかわこうへいのAWS入門書も出ている。
サロン内の数十人で書いたみたい

米国年収では最高峰のAWS Solutions Architect など、アソシエイト3冠でも狙えばよい

Dockerなら、この本が簡単。
自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4
719デフォルトの名無しさん
2022/06/04(土) 03:17:04.19ID:WvJ0avYJ
>>718
いやEKSのワーカーノードってEC2のインフラに乗っかってるやん
何言ってんだコイツ
720デフォルトの名無しさん
2022/06/04(土) 10:14:15.98ID:vvbHqYcO
KEИTAはNGワード推奨
721デフォルトの名無しさん
2022/06/04(土) 12:59:06.25ID:CyXkOFyS
普通の荒らしならNGでも良いけど、これは広告黙認になっちゃう…
722718
2022/06/04(土) 22:12:41.70ID:qz14Jeu3
ECS(Elastic Container Service)・EKS(Elastic Kubernetes Service) については、
EC2・Fargate の2種類のデータプレーンがある

ECS on EC2・ECS on Fargate
EKS on EC2・EKS on Fargate
723デフォルトの名無しさん
2022/06/05(日) 00:38:35.99ID:fbWW3RR4
>>722
さすがです
些末な言語でケンカしてる土方PGとはレイヤーも知識の深さも違いますね・・・
724デフォルトの名無しさん
2022/06/05(日) 03:13:32.82ID:1HHUj8mf
>>722
ヒント:スレタイ
725デフォルトの名無しさん
2022/06/05(日) 10:32:21.99ID:BAL8np4K
ヒントってなつかしいな
726デフォルトの名無しさん
2022/06/05(日) 12:43:13.05ID:1HHUj8mf
それだけ昔も今もタイトルの読めない人が蔓延ってることだよ。
727デフォルトの名無しさん
2022/06/05(日) 12:57:34.82ID:1HHUj8mf
次も脈絡なくdockerとか言い出されたらちゃんと無視しようね
728デフォルトの名無しさん
2022/06/05(日) 13:04:45.18ID:C6LzSewh
KEИTAの時点でKidsってわかるから
729デフォルトの名無しさん
2022/06/05(日) 13:45:25.71ID:9C0C056E
なんかあの動画原稿読んでる感が強いんだけどゴーストライターが原稿書いてるなんて事ないよな
自分の書いた原稿ならそんなに棒読みにならんとは思うんだけど
730デフォルトの名無しさん
2022/06/05(日) 14:28:41.29ID:BAL8np4K
プログラマはプログラムに忠実なんだよ
731デフォルトの名無しさん
2022/06/05(日) 19:33:39.96ID:fbWW3RR4
やーいおまえらの年収、ケンタ氏の月収レベルw

くやしくないんか?w
732デフォルトの名無しさん
2022/06/05(日) 19:42:08.90ID:NPpCVuaP
はらたいらに負け
733デフォルトの名無しさん
2022/06/05(日) 20:41:09.63ID:aIrlo+D0
スクラッチのPHP並にWEB開発が楽な次世代言語が欲しいんですよ
多分Rustだろうけど
734デフォルトの名無しさん
2022/06/05(日) 22:14:31.32ID:1HHUj8mf
自演臭がするから相手にしないように
735デフォルトの名無しさん
2022/06/06(月) 00:16:37.72ID:RzhuA7sN
某スレで気持ち悪いオナニーコード書いて一生懸命しょーもないフィボナッチの話してるふりしながらダメ人間批判のアホどもへ
  ┏━━━━━━━┓
  ┃//  Λ_Λ  ┃
  ┃/  <`Д´>つ┃
  ∧_∧m9   ノ ┃
 <   >し―J //┃ ダメ人間!
 ( O つ   // ┃
 し―J ━━━━━┛
技術上の優劣は、人格や感情的表現とは一致しない。
736デフォルトの名無しさん
2022/06/08(水) 23:30:06.88ID:V6NRl8ye
PHPer全員死なねえかな
737デフォルトの名無しさん
2022/06/11(土) 09:49:22.66ID:/CWj/UNa
お前ら元気ないな
五月病かい?
738デフォルトの名無しさん
2022/06/11(土) 10:52:10.66ID:nSw5Wtt+
下らねえ煽りするよりコード書けよ
739デフォルトの名無しさん
2022/06/11(土) 11:36:40.03ID:gW5FFec0
Denoってts使うのやめるんか知らんかった
https://qiita.com/Syoitu/items/244c6bf99a6b7bf5ab9c
740デフォルトの名無しさん
2022/06/11(土) 11:48:08.84ID:Ikjed3Z0
>>739
内部コードの話みたいね
741デフォルトの名無しさん
2022/06/11(土) 14:02:26.40ID:T6wrUfK/
rustも同じ運命になりそう
742デフォルトの名無しさん
2022/06/11(土) 14:30:04.70ID:gW5FFec0
Go→Rustになったのも遅いから理由だったしな
743デフォルトの名無しさん
2022/06/11(土) 16:48:28.61ID:HmxRmWBo
> TypeScriptはJavaScriptの改良版と見なされることもありますが、実際はそうではない。
> 他の言語と同じように欠陥があります、最も重要なものの1つは、コンパイル時間が遅いことです。
> 小さなプロジェクトでは、純粋なJavaScriptからTypeScriptに切り替えるときにコンパイル時間が大幅に増加することはないかもしれませんが、複雑な、例えばReactのような大規模なプロジェクトでは顕著になります。
> ランタイムのサイズが大きいことを考えると、DenoがTypeScriptを止めるのも当然のことです。
>
> 開発中の型チェックは、コンパイル時にコストがかかります。

ようするにTypeScriptは巨大プロジェクトに向いてないのか
Microsoftは巨大プロジェクトのノウハウなんて膨大に持ってるだろ、なんとかしろよ・・・
744デフォルトの名無しさん
2022/06/11(土) 17:15:19.17ID:Q3eIHQbE
時間掛かるから型チェックやめまーす
ってじゃあそのチェック何で代替すんねん
指さしヨシッでもすんのか?
バカじゃねーの
745デフォルトの名無しさん
2022/06/11(土) 17:26:46.05ID:/CWj/UNa
テスト書くから必要ないって事だろ
文盲か(何故か変換できない)?
746デフォルトの名無しさん
2022/06/11(土) 18:42:07.57ID:R6kVrTwR
wasmにコンパイルされる専用言語が待たれるという説
747デフォルトの名無しさん
2022/06/11(土) 19:13:02.17ID:Lxou0O6d
TSにはインクリメンタルビルドの仕組みがなくてファイル変更のたび毎回フルビルドが必要なの?
748デフォルトの名無しさん
2022/06/11(土) 19:29:52.04ID:s2pWM27P
本当に欲しいのは制約であって型ではないし
749デフォルトの名無しさん
2022/06/11(土) 19:35:24.48ID:Lxou0O6d
>>748
制約を明示したり強制したりするのにリーズナブルだから型が使われているんだと思うが
何で代替しようとしているの?
750デフォルトの名無しさん
2022/06/11(土) 19:46:54.60ID:DMnkzfH9
>>749
型は制約じゃないぞ
階層理論の産物さ
制約とはtrait systemのことさ
751デフォルトの名無しさん
2022/06/11(土) 20:03:26.11ID:CaCwxZ5g
窓の杜: 「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売.
https://forest.watch.impress.co.jp/docs/bookwatch/news/1416093.html
752デフォルトの名無しさん
2022/06/11(土) 20:15:54.30ID:Kh7p4488
>>742
コンパイル時間でGoに勝てる言語ってある?
753デフォルトの名無しさん
2022/06/11(土) 20:18:17.35ID:gW5FFec0
>>752
出来上がったバイナリ(deno本体)の実効速度の話ね
754デフォルトの名無しさん
2022/06/11(土) 20:38:23.65ID:vVSWS2tb
>>752
DとGoはどちらが速い?
755デフォルトの名無しさん
2022/06/11(土) 20:38:55.36ID:Q3eIHQbE
>>745
例えばある関数がnumberだけ返すことをテストで網羅できんの?
756デフォルトの名無しさん
2022/06/11(土) 20:55:28.16ID:gW5FFec0
D言語って今ちょうどver2.100.0なんだね
757デフォルトの名無しさん
2022/06/11(土) 21:05:03.93ID:DMnkzfH9
正直言ってD言語とかの存在価値がわからないんだが使っている人いるの?
758デフォルトの名無しさん
2022/06/11(土) 21:11:25.04ID:Kh7p4488
>>753
何言ってんだこいつ
Denoはコンパイル時間って言ってるんだが
759デフォルトの名無しさん
2022/06/11(土) 21:14:34.94ID:Q3eIHQbE
これだからトーシロはダメ
760デフォルトの名無しさん
2022/06/11(土) 21:26:17.06ID:gW5FFec0
>>758
Go→RustもTS→JS
どっちも一貫してDeno自体の実行速度を最優先してるわけよ
761デフォルトの名無しさん
2022/06/11(土) 21:48:50.29ID:qsQNDkHz
tsで問題視してたのはコンパイル時間の方じゃね?
762デフォルトの名無しさん
2022/06/11(土) 21:55:33.13ID:N9Pa64KK
Denoのjsってそんなに大規模か?
VSCodeなんかに比べたら全然大した量じゃないように見えるが
ビルドパイプラインがヘボいんじゃね
763デフォルトの名無しさん
2022/06/11(土) 22:14:50.96ID:Kh7p4488
>>760
文盲乙
764デフォルトの名無しさん
2022/06/11(土) 22:17:19.48ID:gW5FFec0
>>761
その時間ってもろホットリロードのタイムラグなわけじゃん
765デフォルトの名無しさん
2022/06/11(土) 23:00:17.90ID:Q3eIHQbE
Denoチームの連中が低学歴なんだろ
バカばっか
766デフォルトの名無しさん
2022/06/11(土) 23:13:10.68ID:SJ0jyJTM
Rustのようにかなり強力にコンパイル時エラーでほとんどの問題を排除してくれる堅さとは異なり
TypeScriptは型チェックしかしてくれず元のJavaScriptの緩さから本質的には変わっていない
本体はがっちりRustで作りあとはJavaScriptという方針は間違っていない
767デフォルトの名無しさん
2022/06/11(土) 23:15:22.91ID:Nh4QsFq2
確かにRustのコンパイルが遅いのが嫌だという意見はわかる。”C++より早いだろ?”とか”嘘つき!Rust速い!”とかコメントしなくてあ、結構です
仕組み上トレイトの組み合わせで遅くなるのはわかるんだが、もう少しどうにかならんかの?
768デフォルトの名無しさん
2022/06/12(日) 00:08:25.22ID:GJbjpRb8
>>765
学歴コンプのある人はすーぐ学歴の問題にする
769デフォルトの名無しさん
2022/06/12(日) 00:22:54.09ID:WtY28DSr
>>768
ハーバードでMBA持ってるけどな
F欄は口くせーから喋んなゴミ
770デフォルトの名無しさん
2022/06/12(日) 00:34:08.70ID:C1U3DU3t
掲示板ではなんとでも言える
771デフォルトの名無しさん
2022/06/12(日) 01:47:05.21ID:mpYnOnxd
>>769
知性のかけらも感じさせないレスだわね
772デフォルトの名無しさん
2022/06/12(日) 02:09:11.61ID:p7K2g0W9
プログラミングにも理解があって英語ぺらっぺらな海外トップ学歴の経営人材なのに
日本語の匿名掲示板という狭い世界で推し言語の擁護にムキになってるとはご乱心だな
773デフォルトの名無しさん
2022/06/12(日) 06:32:40.30ID:V1ZBG4pG
>>755
当然
774デフォルトの名無しさん
2022/06/12(日) 06:42:11.19ID:OtYNM0HI
Javascriptに対するTypescriptってCに対するC++みたいなもんだろ?
その気になればある程度まともな型システムは使うことができる程度
775デフォルトの名無しさん
2022/06/12(日) 08:25:07.16ID:54GVQ0UL
結局地がjsな以上互換性を保ちながら完全に型で覆うのは難しいよねって
まぁPurescriptみたいになってもらっても困るんだが……
776デフォルトの名無しさん
2022/06/12(日) 08:59:49.71ID:Znbho8o6
JVMバイトコードに対するScalaみたいなもん
Java書くより罠が多いけど圧倒的に便利
バイトコードを直接書く阿呆はいない
こんな感じ
777デフォルトの名無しさん
2022/06/12(日) 09:50:18.87ID:6guykT66
さすがにそこまでじゃない
JSをそれなりの規模で使いたければTS使った方が楽なのは確か
778デフォルトの名無しさん
2022/06/12(日) 10:29:55.16ID:UPLi/RM9
denoてどのくらいnodeからの移行が進んでるんだろ?
779デフォルトの名無しさん
2022/06/12(日) 11:30:16.99ID:C1U3DU3t
serialportとかちゃんと使えるならラズパイとかで使ってみたいな
780デフォルトの名無しさん
2022/06/12(日) 12:13:55.79ID:TLk1B+cK
>>778
進まないから今現在必死に最適化してるんだろう
781デフォルトの名無しさん
2022/06/12(日) 13:11:27.34ID:eghQJQYK
少なくともそのQiitaには、Denoの実行速度が遅いからJavaScriptに移行した、とまでは書いてないと思うんだけど、なんか誤読してる人多い?
Denoの実行速度が遅いからじゃなくて、Deno自体のビルド速度が遅くてDenoを開発する人にとって辛いから移行したんでしょ?
782デフォルトの名無しさん
2022/06/12(日) 13:21:32.88ID:Znbho8o6
いやそこ誤読してる文盲はおらんやろ・・・おらんやら?
783デフォルトの名無しさん
2022/06/12(日) 15:26:48.02ID:QJCkSZm+
typescriptのコンパイラはtypescriptで書かれてJavascriptにして実行されてるから遅いんだろう
言語としてはセルフコンパイルしたいし、いろんな環境で動かすためでもあるし
でもrustとかで書いてもいいのでは
784デフォルトの名無しさん
2022/06/12(日) 15:28:48.97ID:QJCkSZm+
マシン語にしてるわけでもないし、処理としてはコンパイラとしては軽い方だから
rustにしたら爆速になるのでは
785デフォルトの名無しさん
2022/06/12(日) 15:49:11.35ID:kUS96AVF
Kotlinとか確か開発者がロシアじゃなかったっけ?もうオープンソースだから米国的にはOKなの?
786デフォルトの名無しさん
2022/06/12(日) 20:58:25.55ID:+vN+62Vi
いち早くロシアの侵攻を批難する声明を出したから許されてるんだろう
787デフォルトの名無しさん
2022/06/12(日) 22:01:47.21ID:L2pGDO9p
>>786
いち早く出してねーよ
ロシア政府なみの嘘つくな

最初のツイートはロシアのプロパガンダと同じ巧妙な内容で反感買いまくってから追加で声明出したんだろ
788デフォルトの名無しさん
2022/06/12(日) 22:19:05.57ID:e/a7Unpq
JetBrainsのサンクトペテルブルクのオフィスとブラハのオフィス(本社)の写真みたけどすげぇ格差だったわ
ああいうの見ると建前上の本社を東京に置いてる中華企業と体質が同じに感じてもう一つ信用できない
789デフォルトの名無しさん
2022/06/13(月) 02:53:25.83ID:asZan2yI
tsの変換や型チェック処理する機能はgoやrustで書き直すプロジェクト進行中だから
そこは欠点じゃないよね
790デフォルトの名無しさん
2022/06/13(月) 03:23:11.66ID:aNdPD0Bj
PHP+味付け程度にJSでシステム作ってる化石野郎でも応用効く言語教えやがれください
791デフォルトの名無しさん
2022/06/13(月) 03:50:52.66ID:dm71PatD
またPHPの話してる
792デフォルトの名無しさん
2022/06/13(月) 05:19:59.34ID:eNTeJ/va
PHPに勝ったところで次世代PHPにしかならないのに?
793デフォルトの名無しさん
2022/06/13(月) 07:43:09.16ID:fjH64UU8
PHPってマジで話聞かなくなったよな
使ってるのって2010年代の旧システム?
794デフォルトの名無しさん
2022/06/13(月) 09:29:29.62ID:dm71PatD
ワードプレスはもうPHPじゃなくなったのか?
795デフォルトの名無しさん
2022/06/13(月) 09:30:42.95ID:eNTeJ/va
次世代言語すげー
796デフォルトの名無しさん
2022/06/13(月) 19:42:18.44ID:FiSspViM
Goにオプショナル型とスプレッド構文とmap,reduce,filterのコネクション系操作が入ったら最高なんだけど
Go 2だとかで機能増やしてくれないかな
797デフォルトの名無しさん
2022/06/13(月) 19:52:35.02ID:FiSspViM
Typescriptの糞なところ

標準ライブラリがゴミ、ゆえに依存が爆発的に増える
巨大node_modules、プロジェクトごとに作られるのが最高に糞
commonjsやらesmodulesやら統一されていないモジュール形式
prettierやらtsconfigやら大量の面倒な設定
サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある
例外の型定義がないので静的検査ができない、どこでエラーをどうハンドリングするべきかの判断が全くつかない、ゆえに全体をtry catchで囲むことになる

この辺がすべてGoでは問題ないから、あとは少し機能増やしてくれたら文句ないんだよなー
798デフォルトの名無しさん
2022/06/13(月) 21:04:41.26ID:fjH64UU8
GoのMap糞過ぎて全く読めない
JSONをそのまま使えっておまけに型までつくTSさいつよってことなんよ
799デフォルトの名無しさん
2022/06/13(月) 21:39:05.94ID:G3CRt2bF
構造体作ってマッピングするのじゃ何がダメなの?必要なのだけ定義すればいいんだが?
Typescriptだと型ガードしっかり書かないとただのなんちゃって状態になる雑魚
800デフォルトの名無しさん
2022/06/13(月) 21:47:26.95ID:SDmJj53H
>>797
>サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある

「Atom」を開発終了に追いやった「Visual Studio Code」、月例更新でさらに強力に
https://forest.watch.impress.co.jp/docs/news/1416263.html

TypeScript開発では「TypeScript 4.7」が導入されたほか、待望の[ソース定義への移動]がサポートされた。100%の確度ではないが、型定義ファイル(*.d.ts)ではなく、JavaScriptによる実装部分へ直接ジャンプできる。
https://twitter.com/mattbierner/status/1517182624917340162
https://twitter.com/5chan_nel (5ch newer account)
801デフォルトの名無しさん
2022/06/13(月) 22:06:28.03ID:FiSspViM
>>800
おーこんなのあったんだ、ありがとー
適当に試してみたけどできないのも結構あるね
802デフォルトの名無しさん
2022/06/13(月) 22:32:02.90ID:GDAgVCx4
標準ライブラリ大きいのと小さいのどっちが良いのかね
803デフォルトの名無しさん
2022/06/13(月) 22:36:53.23ID:q8SxO5f8
大きくて、APIが安定していて、ゴミが少ないやつが良い
スレタイの中だとGoだろうな
804デフォルトの名無しさん
2022/06/14(火) 00:15:44.86ID:FCklzJDr
goはpackageの命名が糞杉
_すら許さないからどいつもこいつも呪文みたいになって可読性最悪
805デフォルトの名無しさん
2022/06/14(火) 11:26:15.39ID:Rf4XfD/C
Dも_を変な扱いしてたな
806デフォルトの名無しさん
2022/06/14(火) 11:32:38.45ID:8A+wXs8O
Effective Goでは、パッケージ名は1単語にしよう、って書かれてるけど、アンダースコアや大文字小文字が使えないわけではないよ

どうせ1単語とかいう命名規約はあまり守られてないだろうし、つらいならそのへんの規約も破っちゃえば?
807デフォルトの名無しさん
2022/06/14(火) 12:24:42.88ID:yie2XOKe
アンダスコアはPythonが悪い
808デフォルトの名無しさん
2022/06/14(火) 14:45:46.33ID:Hct9Q+tn
いまだにgenrandom, gen_raondom, genRandom, GenRandomのどれがいいかわからん
PythonやってるとgenrandomだがJavaScriptもやるからgenRandomも使う
GoもやるとなったらGenRandomまで使わんといかん
いったいどれがいいんだ?
誰か俺に教えてくれ
809デフォルトの名無しさん
2022/06/14(火) 14:49:34.72ID:0h5AdYzJ
言語の推奨に従ってください
810デフォルトの名無しさん
2022/06/14(火) 17:17:08.52ID:zltAtr9K
CSSならlong-name-propertyだし、JSONならLong_Name_Property、SQLならLONG_NAME_PROPERTYまたは
long_name_property、JSなど言語ならlongNamePropery、でも定数ならLONG_NAME_PROPERTY、CSVなどなら
Long Name Propertyだ。
そして、JavaやC#、C/C++、PythonやGoでもRustでも命名規則(多くは悪魔でも推奨)のようなものがあり、歴史的な経緯と
作者の今日子な意思、プログラミングのしずらさ、あるいはシヤスサ、あるいはコードレビューマウントのために脈々と受け継がれる。
つまり、人類はいまだに命名の正解を得ていない・・・
モジュール snake_case
型 CamelCase
トレイト CamelCase
Enumのバリアント CamelCase
関数 snake_case
811デフォルトの名無しさん
2022/06/14(火) 17:26:35.25ID:OVbm/pyy
言語内で閉じるなら慣習に従うだけだけど言語またがる時は迷うよね
812デフォルトの名無しさん
2022/06/14(火) 17:49:20.30ID:8A+wXs8O
標準ライブラリは名前が綺麗なのに、自分で命名しようとすると難しくて悲しい
813デフォルトの名無しさん
2022/06/14(火) 17:55:42.15ID:jATTslXV
そうでもないぞ
RustのThe Bookに出てくる乱数のほぼ標準ライブラリは非常に名前が汚い
馬鹿が考えたような名前と構造
814デフォルトの名無しさん
2022/06/14(火) 17:58:02.15ID:jATTslXV
Goも標準ライブラリが汚い
仕組みも複雑
815デフォルトの名無しさん
2022/06/14(火) 17:58:54.42ID:yie2XOKe
C++とJavaも大概だわ
816デフォルトの名無しさん
2022/06/14(火) 18:01:35.42ID:FCklzJDr
>>810
なおGoはlongnameproperty

ガイジか?
817デフォルトの名無しさん
2022/06/14(火) 18:02:29.74ID:FCklzJDr
>>815
Goは後発の分際であの体たらく
どんな頭弱が作ったのか顔が見てみてーわ
818デフォルトの名無しさん
2022/06/14(火) 18:08:01.45ID:jATTslXV
Goのstrconv::atoi()って

悲しくなるわ
819デフォルトの名無しさん
2022/06/14(火) 18:13:47.77ID:Ypv3OCUB
>>804
_ "github.com/mattn/go-sqlite3"

>>806
だね、触ったこともない人が騒いでるだけ。とんでもねえアホ
820デフォルトの名無しさん
2022/06/14(火) 18:18:15.24ID:wSQCOwvw
>>818
std::num::strconv::float_to_str_bytes_common
(´;ω;`)w
821デフォルトの名無しさん
2022/06/14(火) 18:20:27.99ID:jATTslXV
golang入門したころにファイルの読み書きや文字の扱いのライブラリを見て愕然としたな
こういう世界がまだあるんだなって
822デフォルトの名無しさん
2022/06/14(火) 18:31:08.14ID:OVbm/pyy
>>817
goの作者知らんのか...
823デフォルトの名無しさん
2022/06/14(火) 18:32:45.87ID:FCklzJDr
>>819
golintでエラーだぞ
おまえこそエアプだろカス
PHPでも書いてろ
824デフォルトの名無しさん
2022/06/14(火) 18:35:13.31ID:jATTslXV
goの作者の一人は有名人過ぎるけどもう後進に道を譲れよよ思う
825デフォルトの名無しさん
2022/06/14(火) 18:40:13.93ID:xmR5ySSw
>>821
file, err := os.OpenFile("foo.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
これがキレイだとは決して思わんが....

let mut file = File::options().read(true).write(true).open("foo.txt")?;
これもどうかと思うぞ?何故、直感的ではないoptionsでopenに繋げるチェーンなのか..確かにオプションの設定はpanicが起こらないから
言語的な理由(言い訳)は分かる。でもRustってオプション扱いを第二引数にしない思想があるんだろうか...

>>822
デニス・リッチーとかC言語の作者とかだからC言語のライブラリと似た名前になるはある意味当たり前だよなあ
826デフォルトの名無しさん
2022/06/14(火) 18:46:33.92ID:jATTslXV
>>825
Rustの標準ライブラリが汚い理由はオーバーロードがない、デフォルト引数がないから
827デフォルトの名無しさん
2022/06/14(火) 18:47:21.55ID:8A+wXs8O
デニス・リッチーが直接に関わったという話は聞いたことないけど、ケン・トンプソンと勘違いしているのだろうか
親しい人物たちではある
828デフォルトの名無しさん
2022/06/14(火) 18:47:26.18ID:jATTslXV
そして弱点を補うためにマクロを使ってるから汚い
829デフォルトの名無しさん
2022/06/14(火) 18:50:32.39ID:FCklzJDr
>>822
有名と有能は違うぞ
どこぞの通貨危機衰退先進国のゲリ首相は有名だが有能か?
830デフォルトの名無しさん
2022/06/14(火) 18:54:01.24ID:jATTslXV
幼稚園児がいる模様
831デフォルトの名無しさん
2022/06/14(火) 18:56:01.59ID:jATTslXV
>>829
画像あるから普通に顔見てみたいなら見ればいいでちゅよ?
832デフォルトの名無しさん
2022/06/14(火) 19:02:21.29ID:OVbm/pyy
>>829
有名人だから顔なんてネットに溢れてるんだからとっとと見て好きなだけ罵倒してきなよ
833デフォルトの名無しさん
2022/06/14(火) 19:15:33.51ID:eqeTk7gF
Goのモジュールシステムシンプルでわかりやすいと思うけどな
フォルダでパッケージ表すだけだし
名前で困るってのがよくわからないけど必要以上に作ってるんじゃないの?

Rustのほうが複雑で意味不明だと思うんだが
834デフォルトの名無しさん
2022/06/14(火) 19:21:23.05ID:bI70PJIL
Don't you know you know?
835デフォルトの名無しさん
2022/06/14(火) 19:37:19.54ID:nghM89d8
>>825
メソッドチェーンでオプション書くの大嫌い
単なるデータは普通にデータとして書かせてくれ
836デフォルトの名無しさん
2022/06/14(火) 19:52:21.06ID:0h5AdYzJ
>>825
君その話前にもRustスレでしてなかった?
837デフォルトの名無しさん
2022/06/14(火) 19:54:38.26ID:GHB3UZAZ
ケン・トンプソンなんかおまえ
この業界に居たらまさに神様みたいな存在で
それより上がおらんくらいのハッカーなんだから
こんなクソスレで軽々しく名前出すのすら憚られるやろフツーに
838デフォルトの名無しさん
2022/06/14(火) 20:00:51.53ID:GHB3UZAZ
> ile, err := os.OpenFile( os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
> let mut file = File::options().read(true).write(true).open("foo.txt")?;

File.open('foo.txt', 'w'){|f| ... }
やっぱrubyがスッキリやね
839デフォルトの名無しさん
2022/06/14(火) 20:30:21.52ID:FCklzJDr
>>837
The 老害やな
長いものに巻かれろ、年長者は無条件に敬え、右に倣え、出る杭は打て、死なば諸共
これが衰退先進国糞バカ中世ジャップランド土人村の末路
840デフォルトの名無しさん
2022/06/14(火) 20:46:16.55ID:8A+wXs8O
異次元すぎて逆にかわいい
841デフォルトの名無しさん
2022/06/14(火) 21:16:23.17ID:GHB3UZAZ
滑稽を通り越した何かだな
842デフォルトの名無しさん
2022/06/14(火) 21:39:51.47ID:yie2XOKe
老害ロールプレイ楽しいか
843デフォルトの名無しさん
2022/06/14(火) 23:27:33.27ID:jATTslXV
Rustは通常の言語仕様で欠落してる部分がある
それをマクロで補っている
844デフォルトの名無しさん
2022/06/15(水) 00:03:02.45ID:clxQJqr6
>>826
デフォルト引数やキーワード引数が欲しいのは分かるけどオーバーロードが欲しいのはなぜ?
845デフォルトの名無しさん
2022/06/15(水) 00:09:27.56ID:a3eoLX8e
>>844
JAVA出身だから
846デフォルトの名無しさん
2022/06/15(水) 00:50:48.06ID:pzXtsAzL
オーバーロードは直感的だから
847デフォルトの名無しさん
2022/06/15(水) 00:56:03.07ID:pzXtsAzL
デフォルト引数が必要だと思うならそれはもう関数オーバーロードが必要だとおもっていることと同義だろ
848デフォルトの名無しさん
2022/06/15(水) 01:27:19.31ID:SBK/Y+J6
>>825
C:f= open(out, O_WRONLY|O_CREAT|O_TRUNC, 0777);
D:auto to = File("output.txt", "wb");
Erlang:{ok, Contents} = file:read_file( "input.txt" ),
Fortran(2003):open(in, file="input.txt", status="old", action="read", access="stream", iostat=err)
Basic(Free Basic/VB):Open "input.txt" For Input As #1
Nim:var f = open "output.txt", fmWrite
Objective-C:NSData *data = [NSData dataWithContentsOfFile:@"input.txt"];
Perl:open my $fh_in, '<', 'input.txt' or die "$!";
Python:infile = open('input.txt', 'r')
Tcl:set infile [open "input.txt" r]

Rustは異質、ド変態はFortranとObjective-C。Swiftは知らん
849デフォルトの名無しさん
2022/06/15(水) 03:18:03.71ID:x0I/jK+a
>>848
こう見るとPythonが一番美しいな
例外あるからエラー処理省略できるし
これが良いかどうかはまた別の話として
850デフォルトの名無しさん
2022/06/15(水) 03:22:52.73ID:tT/4QRGb
一般的にデータを初期化する際にいくつもの数のオプション値指定が存在するものが多い
デフォルト引数にしても1つ目と2つ目はデフォルト値でいいけど3つ目は指定したいなど歯抜けでわかりにくくなる

そこで一般的にその問題を解決するオプション指定方法としてビルダー方式がある
ビルダー方式では指定したいオプション値のみをビルダーに対してオプション指定メソッド(の必要ならチェーン)で指定していくものである
あるオプション指定は同時に2つのデータを与えなければならない場合でもこのビルダー方式ではメソッド引数2個で矛盾なくシンプルに表せる
さらに型チェックの厳しい言語ともこのビルダー方式は相性が良く各オプション指定メソッド別に曖昧なく厳格に型宣言できる

ちなみにRustではこのビルダー方式の有用性&利便性が広まり後からこのビルダー方式に移行したものもあるほどである
851デフォルトの名無しさん
2022/06/15(水) 03:32:06.02ID:tT/4QRGb
>>849
Rustは例外機構がないからもっとエラー処理がシンプル
「?」一文字付加するだけで(必要ならエラー自動変換しつつ)上位関数にエラー処理委任できる
そのため例外機構がなくても記述がシンプルかつ同様のことが出来るだけでなくエラー処理忘れなどもコンパイル時に指摘してくれて安全
852デフォルトの名無しさん
2022/06/15(水) 06:09:36.05ID:sEZPBRlz
こんだけ色々な言語が乱立するってコンピュータの世界はバベルの塔だわ
853デフォルトの名無しさん
2022/06/15(水) 15:47:16.86ID:IEWflW3G
コンピューターはバビルの塔
854デフォルトの名無しさん
2022/06/15(水) 18:32:44.57ID:oaz3/shQ
賽の河原での石積みに
昔から例えられている
855デフォルトの名無しさん
2022/06/15(水) 19:56:50.22ID:IqYclFLA
twitterの「スタバでMacを開くエンジニア」って奴ほんと嫌い
qiitaの記事も大したこと書いていないわりに結構な頻度でバズってて流れて来るから目障りだわ
技術力ないから逆にわかってませんアピールを武器にしていっている印象受けるんだがエンジニア畑にああいうネタ系の自虐するノリほんまいらねえよ
エンジニア畑でバズるの狙うなら純粋に技術力の高さで競っていけよって思う
856デフォルトの名無しさん
2022/06/15(水) 23:05:23.86ID:a3eoLX8e
なおそのQiita記事に助けられてるもよう
857デフォルトの名無しさん
2022/06/15(水) 23:58:49.93ID:NtuuvbZ6
大したことないって書いてあるだろ…
858デフォルトの名無しさん
2022/06/16(木) 00:21:07.28ID:N0TE7UEH
その大したことない記事に助けられてるからバカにされてるんだろアスペw
859デフォルトの名無しさん
2022/06/16(木) 10:40:11.20ID:oOjZlu3s
コピペしてすぐ使えるコードが出ている
Qiita記事は役に立つよ
具体的な手順が書いてない記事はゴミ
860デフォルトの名無しさん
2022/06/16(木) 10:47:19.76ID:OyMwP3lE
qiitaもワイもアカウント持ってて投稿したりしてるぐらいだから別に否定しているわけではないんだが
qiitaがクソだと言っている分けではなくてただこいつがqiitaに載せている記事すべてが糞だっていう意味を言っている
気になるんなら見とけよ内容もtwitter上を跋扈するいわゆる情報商材系サイトのそれに近くて技術的な要素を一切含んでいない
https://qiita.com/SMAC
861デフォルトの名無しさん
2022/06/16(木) 11:28:53.21ID:jHsLwKQ/
ここはお前の日記帳かよ
というか「スタバでMacを開くエンジニア」って固有名詞かよ
862デフォルトの名無しさん
2022/06/16(木) 11:55:25.21ID:4wdIdA1r
>>858
助けられてるって書いてるか?
863デフォルトの名無しさん
2022/06/16(木) 13:02:40.58ID:uKxWv5Aj
Qiitaはごみ
864デフォルトの名無しさん
2022/06/16(木) 16:40:13.18ID:N0TE7UEH
>>862
Twitter一生懸命見て彼の成長に嫉妬してる時点で、君の”負け”やで
865デフォルトの名無しさん
2022/06/16(木) 18:30:34.70ID:OyMwP3lE
>>864
「エンジニア1年生必見おすすめ入門書!」「【20XY年度最新】無料プログラミング学習サービス」「基本情報技術者試験のための戦略的方法」みたいなしょうもない記事しか書いていない奴のどこに技術的成長を感じればいいのか疑問なんやけど
お前はまさかこういった記事を見て勉強してんのか?(笑)
お前が勝ち負け判断すんの?(笑)
少なくともSNSで頻繁に目障りな投稿をしている人が他の媒体でどのような活動をしているのか確認する行為自体を一生懸命にならないとするの達成できない時点でお前がこの一連の流れのどんな登場人物よりも劣ってること明白じゃんwwwwwwwww
きっと自分の電話にかかってきた電話番号を迷惑電話だったのかどうかネットで調べて確認すると言った最低限な行為すらも日常生活の中でするのには精一杯になってるんやろなwこの低脳(笑)wwwwwwwwwww
866デフォルトの名無しさん
2022/06/16(木) 19:21:05.39ID:hEUIHdUO
どうみても本人の自作自演

867デフォルトの名無しさん
2022/06/16(木) 20:03:31.12ID:r+hk7hk0
>>864
成長…?
868デフォルトの名無しさん
2022/06/16(木) 20:50:21.92ID:N0TE7UEH
うわぁ、必死杉内
869デフォルトの名無しさん
2022/06/16(木) 20:53:08.58ID:arzDgCAq
なにこいつ
煽りアフィカス?
870デフォルトの名無しさん
2022/06/16(木) 20:58:13.91ID:VGxDlt+C
デジタル人材の副業・複業採用決定数をプログラミング言語・スキル別で分析
~副業・複業人材の登録が、前年度比3倍に。 調査レポートを公開~
https://prtimes.jp/main/html/rd/p/000000040.000053307.html
871デフォルトの名無しさん
2022/06/16(木) 22:42:24.28ID:R+xkwjLU
>>869
スタバマックくんかも
872デフォルトの名無しさん
2022/06/17(金) 14:55:42.76ID:Ld/FFEEi
>>868
レスバ判定員です
言い返せなくなってる時点でお前の負けやでwwwwww
873デフォルトの名無しさん
2022/06/17(金) 15:04:06.85ID:jyuIrjdj
非常にしつこい
874デフォルトの名無しさん
2022/06/17(金) 15:10:54.32ID:2abskYGH
なんでワッチョイ無いんだよ
875デフォルトの名無しさん
2022/06/17(金) 17:27:59.16ID:G79h5Zer
わざと曲解して話を盛るのが5chクオリティ
876デフォルトの名無しさん
2022/06/17(金) 17:48:44.96ID:q4amRkHc
>>872
Qiitaの若者の成長に難癖付けて2ch陰口で悦に浸ってるオッサンとか
キモすぎにもほどがあるでんで
もうちょっと客観的に自分を見つめ直した方がええで
877デフォルトの名無しさん
2022/06/17(金) 17:52:34.99ID:douM25C/
ええでんで
878デフォルトの名無しさん
2022/06/17(金) 19:51:03.63ID:6H4dK9M3
>>825
rustが汚く感じるのはビルダーパターンが気持ち悪いのか、ファイルのopenにビルダーパターン使うのが気持ち悪いのか、どちら?
879デフォルトの名無しさん
2022/06/17(金) 21:08:38.74ID:ueszn7cF
>>878
どちらでもない
optionをopenするのが気持ち悪いだけ
880デフォルトの名無しさん
2022/06/17(金) 21:38:00.10ID:8YmvneAf
let mut stream = FileStream::builder().read(true).write(true).build("foo.txt")?;
これならいいのか
881デフォルトの名無しさん
2022/06/17(金) 21:48:55.86ID:G5rhOs4/
Rustにはなんでデフォルト引数ないの?
Kotlinみたいに名前付き引数もデフォルト引数も欲しい
882デフォルトの名無しさん
2022/06/17(金) 21:49:12.87ID:8YmvneAf
でもパス名が最後に来るの確かに思考の順序と一致しなくてウザいな
どのファイルを開くかより先にモードを考えたことなんかなかった
883デフォルトの名無しさん
2022/06/17(金) 22:02:17.99ID:flaMOIXW
>>878
ソフトエンジニアはビルダーパターンは気持ちよすぎになるが
一方、ドカタは気持ち悪いになるってだけだろ
言語としては主ターゲットユーザーがソフトエンジニアかドカタって重要だからな
Rustはソフトエンジニアがターゲットで、そうじゃない奴はRustじゃなくドカタ用言語使え
ってこと。
884デフォルトの名無しさん
2022/06/17(金) 22:12:15.35ID:1Z6irghS
そうでなくて最後にopen()でビルダーが終了して実行そしてエラーが返る
あと横に書くのではなく縦に書くほうが見やすいので推奨される

ビルダー方式にしているのは複雑になりがちな
様々なオプション指定をわかりやすくするため

例えば
書き込み用を新規作成だが既にファイルが存在しているならばエラーとなるオープンならば
let file = File::options()
 .create_new(true)
 .write(true)
 .open("output.txt")?;

Windowsで全てクローズされたら自動削除される書き込みファイルを作成ならば
use std::os::windows::fs::OpenOptionsExt;
let file = File::options()
 .create(true)
 .write(true)
 .custom_flags(FILE_FLAG_DELETE_ON_CLOSE)
 .open("tmp.txt")?;

Unix(Linux)でシンボリックファイルならFOLLOWしない(つまりオープン失敗となる)読み込みオープンならば
use std::os::unix::fs::OpenOptionsExt
let file = File::options()
 .read(true)
 .custom_flags(O_NOFOLLOW)
 .open("input.txt")?;

それぞれ他のプログラミング言語で書くとどうなるかを考えてみよう
885デフォルトの名無しさん
2022/06/17(金) 23:24:36.27ID:1Z6irghS
あと余談だが
>>884のO_NOFOLLOW指定はUNIXのC言語プログラマーなら馴染みでも一般的にわかりくいという時
Rustではメソッド拡張が可能なことから
以下のように no_follow_symbolic_link() とわかりやすい指定ができるようにすることも可能

let file = File::options()
 .read(true)
 .no_follow_symbolic_link()
 .open("input.txt")?;

この実現方法はRustの一般的なメソッド拡張と同じで
拡張用のトレイトを用意してその実装を与えればよい

trait OpenOptionsUnixCustomExt {
 fn no_follow_symbolic_link(&mut self) -> &mut Self;
}

impl OpenOptionsUnixCustomExt for std::fs::OpenOptions {
 fn no_follow_symbolic_link(&mut self) -> &mut Self {
  self.custom_flags(O_NOFOLLOW)
 }
}

もちろんこの拡張用traitをuseした時のみ有効となる
つまり既にある仕様を壊さずに拡張が可能

いずれにせよビルダー方式でのメソッドチェーン指定は
全てを引数で複雑もしくは長々と指定するよりもよっぽど好ましい方式
886デフォルトの名無しさん
2022/06/18(土) 01:48:38.80ID:ElTVdqXo
ビルダーパターンはオプション引数のある言語でも簡単に実現できるんだが
逆は一般的にハードルが高い(Rustならproc macroとかになる)

ビルダーとオプション引数は本来はユースケースによって使い分けるものなので
使い分けられないようならその言語は機能的に劣っているということ
887デフォルトの名無しさん
2022/06/18(土) 03:34:01.13ID:qRZqKkc3
Rustは代数的データ型のOption型があるから特に困らないんじゃない?
むしろOption型がないプログラミング言語はundefinedやnullやnilなどの排除すべき危険なものが存在していて安全じゃない
888デフォルトの名無しさん
2022/06/18(土) 03:46:11.38ID:1ZLmOyHM
欲しいのはオプション引数というかキーワード引数?
Noneなりnullなりが連続する関数呼び出しはつらいよね
889デフォルトの名無しさん
2022/06/18(土) 03:49:38.33ID:qRZqKkc3
デフォルト引数のことか
C、Java、Go、Rust、Haskell、…とサポートしていないプログラミング言語は多いけど
それらの言語が劣っている欠陥言語と言われることはないよ
890デフォルトの名無しさん
2022/06/18(土) 07:13:04.48ID:bAwBngwg
やっぱりカリー化が欲しいのよ
891デフォルトの名無しさん
2022/06/18(土) 10:59:53.21ID:W1b6m0i9
デフォルト引数はあったほうがいい
究極的にはPythonみたいに書けるC言語が欲しい
それを目指したのがおそらくGoだと思うが
892デフォルトの名無しさん
2022/06/18(土) 11:19:30.38ID:56BPbiHd
cpythonでええやん
893デフォルトの名無しさん
2022/06/18(土) 11:24:27.43ID:ZQWHh7s0
>>891
あのゴミみたいなsyntaxで目指してるとか鼻で笑うで
894デフォルトの名無しさん
2022/06/18(土) 12:11:06.20ID:i5hxcodT
>>891
Goには当然デフォルト引数は無い
あと、GoはPythonとは真逆の思想
895デフォルトの名無しさん
2022/06/18(土) 12:28:29.18ID:1P56+GFt
Kotlinみたいにサポートしてほしい
896デフォルトの名無しさん
2022/06/18(土) 12:37:40.53ID:n5ZvcUIJ
RustもGoも標準ライブラリが良くない
気持ち悪い
897デフォルトの名無しさん
2022/06/18(土) 12:41:20.81ID:n5ZvcUIJ
>>889
欠陥言語なんてものはそもそもほとんどない

デフォルト引数は新言語に人気が出てくると確実に要望が出てくる
いつかは実装される
実装できる余地がある言語はいいけど言語仕様上実装不可な場合はどうしようもない
898デフォルトの名無しさん
2022/06/18(土) 12:46:26.67ID:pOm9NLXW
>>889
ある言語が他の言語に比べて劣っている部分があるということと
その言語が欠陥言語かどうかは全く別の問題
もう少し論理的に物事を考えよう
899デフォルトの名無しさん
2022/06/18(土) 12:52:00.37ID:n5ZvcUIJ
Rsutは意味不明なんだよな
struct初期化で名前指定して初期値入れてるのにデフォルト実装や名前付き引数がない
不思議
900デフォルトの名無しさん
2022/06/18(土) 13:00:28.27ID:7x85yRDf
Rustはソースコード上の情報多くしたい感じだからデフォルト引数は入らなさそう
ソースコードの見た目をすっきりさせたいなら素直にPythonとか使うのがいいかと
901デフォルトの名無しさん
2022/06/18(土) 13:08:33.19ID:n5ZvcUIJ
デフォルト引数もなく関数オーバーロードがないから謎の関数がぼこぼこ増えるんだろうな

○○
○○_with_XX
○○_by_YY

みたいに
902デフォルトの名無しさん
2022/06/18(土) 13:15:01.13ID:n5ZvcUIJ
言語を作った人間がデフォルト引数絶対に入れない!って言ってても
その人が一線から引いて他の開発メンバーに任されたら速攻で入る
903デフォルトの名無しさん
2022/06/18(土) 13:42:57.17ID:7x85yRDf
Rustはすでに作った人は居なくなってるし
仕様決めるのも多数決とかじゃなく意見が割れるようなのは入らないからな
コミュニティ全体が入れる空気にならない限り無理
904デフォルトの名無しさん
2022/06/18(土) 13:44:38.50ID:n5ZvcUIJ
新しい元老院の出来上がりか
905デフォルトの名無しさん
2022/06/18(土) 13:57:51.20ID:0HZmI7WS
Rustは複雑な引数はstructで渡しなさいという考えだから
その方法の一つがビルダーパターンだけど、structとDefaultを組み合わせたほうが個人的には好き
906デフォルトの名無しさん
2022/06/18(土) 14:03:46.44ID:1P56+GFt
..Default::default() にシンタックスシュガーあって短く書ければいいんだけど
907デフォルトの名無しさん
2022/06/18(土) 14:46:02.16ID:W1b6m0i9
引数爆発の解決のアプローチはいろいろあるわな
だがキーワード引数があったほうが爆発したときに楽なんだがな
GoやRust的には構造体使えってことか
908デフォルトの名無しさん
2022/06/18(土) 14:55:32.45ID:vtBUlFGw
>>899
デフォルトは作ればあるよ
オプション引数の代替策の一つとしても使える
909デフォルトの名無しさん
2022/06/18(土) 14:56:30.79ID:vtBUlFGw
あ、ガイシュツだった
910デフォルトの名無しさん
2022/06/18(土) 17:55:33.35ID:+lle12+G
>>903 >>902
Rustでは不可欠な機能が着実に次々と実現されていっており
それら全て状況も議論も全てオープンに行われている
互換性、安全性、関連する影響がないことなど全て満たす必要があるためどの案件も時間がかかるが信頼できて安心できる

関数の引数の諸々の件も長くオープンに議論され続けているが様々な諸問題がでておりそれらを解決しうる仕様がまだ出来上がらずかなり先になるだろう
そして色々な代替手段があるためこれを必須として現実に困っている人がいない問題でもある
911デフォルトの名無しさん
2022/06/18(土) 18:43:27.93ID:ZQWHh7s0
>>903
なんや、既に崩壊してる言語なのか
ざまあねえな
912デフォルトの名無しさん
2022/06/18(土) 19:21:21.77ID:W1b6m0i9
Rustって創始者いないのなんでなの?
913デフォルトの名無しさん
2022/06/18(土) 19:27:03.11ID:1ZLmOyHM
>>912
創始者が抜けたのはバーンアウトしたかららしい
914デフォルトの名無しさん
2022/06/18(土) 19:56:43.48ID:ZQWHh7s0
>>912
修復不可能なデザインバグを見つけてしまったから逃げたんだろう
915デフォルトの名無しさん
2022/06/18(土) 20:01:24.70ID:9K3tt+Ez
Mozilla関係の組織っておんも歩けないような人が多いよね
まともな人から辞めていくんだろうか
916デフォルトの名無しさん
2022/06/18(土) 20:14:49.20ID:ApP/hHwA
燃え尽きて去ったRustの創造者はいまはどこで何をしているんだ?
まさか、googleでGoしているってことないよな
917デフォルトの名無しさん
2022/06/18(土) 20:18:43.54ID:1P56+GFt
AppleでSwiftの開発をしてるらしいぞ
918デフォルトの名無しさん
2022/06/18(土) 20:30:46.91ID:aTjkq+5e
>>910
Rustコミュニティがオープンだとは全然思えない。async-stdとtokioなんか正にそう
919デフォルトの名無しさん
2022/06/18(土) 20:40:14.11ID:ZQWHh7s0
>>917
やっぱゴミはゴミに惹かれるんやね
XウンコードとかいうゴミゴミのゴミIDEバンドルのゴミに惹かれるなんて
やっぱゴミ
920デフォルトの名無しさん
2022/06/18(土) 20:40:52.91ID:n5ZvcUIJ
c++の規格団体がクソだったのと大して変わらない
921デフォルトの名無しさん
2022/06/18(土) 20:46:04.24ID:n5ZvcUIJ
>>910
apple信者の人たちと大して変わらんなw

androidにしかない機能があっても必要ない、問題ない、困ってないと言い放つが実装されると大騒ぎして喜び
誇らしげに自慢する

何週遅れてんだよと
922デフォルトの名無しさん
2022/06/18(土) 21:07:12.04ID:G0PSkUdv
全て状況も議論も全てオープンに行われていればまあこんな事になるわけがないよなww

「The entire moderation team resigns, effective immediately. This resignation is
done in protest of the Core Team placing themselves unaccountable to anyone but
themselves.」
https://github.com/rust-lang/team/pull/671
923デフォルトの名無しさん
2022/06/18(土) 21:10:24.45ID:FdDF61RI
>>921
気持ち悪いRust信者はこの板に1人いるだけだぞ
通称複オジこと、はちみつオジ
924デフォルトの名無しさん
2022/06/18(土) 21:20:50.21ID:ApP/hHwA
>>917
おいおい、ほんとなのか。
優秀な奴だろうからどっかが雇っているだろうと思っていたが。
appleならMozillaより激好待遇だろうな
925デフォルトの名無しさん
2022/06/18(土) 21:36:02.59ID:ZQWHh7s0
>>923
Qiitaで若者に嫉妬したりエアプRust信者したり大変だな
926デフォルトの名無しさん
2022/06/18(土) 22:53:12.86ID:WzwwMm2M
コミュニティの意見に向き合うのは難しい問題で、どの言語でも同じ
Rust Foundationとか、Kotlin Foundationとか、コミュニティ向けに組織体制をちゃんとする努力があるだけマシだといつも思う
927デフォルトの名無しさん
2022/06/18(土) 22:56:08.60ID:eg6b2Ems
スタバマックくんw
928デフォルトの名無しさん
2022/06/18(土) 23:36:58.06ID:WzwwMm2M
そして批判の声が見当たらないコミュニティは逆に危険
ユーザーは意見を述べるモチベーションがなかったり、意見を聞き届ける環境すら整えられていない
言い換えるとカルト。
929デフォルトの名無しさん
2022/06/19(日) 00:20:26.22ID:Mk9KDawR
>>926
なんちゃらファウンデーションなんてそれはコミュニティに向き合うとか組織体制がちゃんとする努力をしているとは違う。後ろにスポンサーがいるかどうかが違うだけ
得てしてプラス面もあるが多くは大企業の意見がよく通る
930デフォルトの名無しさん
2022/06/19(日) 00:58:59.69ID:61bWOpc5
>>929
どの言語のコミュニティが理想だと思う?
931デフォルトの名無しさん
2022/06/19(日) 02:05:01.40ID:kfPGjv4I
なんだその質問ww
932デフォルトの名無しさん
2022/06/19(日) 02:09:16.77ID:6XdwO9QI
ジャップは10年遅れでPython受け入れだしたからな
Juliaも10年は遅れるよ

バカなジャップだから
933デフォルトの名無しさん
2022/06/19(日) 05:40:31.85ID:SdXdUMni
Julia流行の隆盛とともに死すナムー(-人-)
今はJuliaとか言って、もう少し経ったらの言語マンセーするくせにさ
934デフォルトの名無しさん
2022/06/19(日) 07:28:14.73ID:YnIsF6Qk
10年後にジャップランド土人村が残ってるかも疑わしい
935デフォルトの名無しさん
2022/06/19(日) 09:42:08.66ID:+2WAsQm8
何で突然ジャップとか言い出した?選挙が近いから?
936デフォルトの名無しさん
2022/06/19(日) 09:57:40.03ID:KAsrUTco
>>934ってどこの国の人なんやろな
なんかウンコのにおいしてるけどw
937デフォルトの名無しさん
2022/06/19(日) 10:15:25.21ID:YnIsF6Qk
今の日本の体たらくはジャップランド土人村と呼ぶにふさわしいよ
未だに「日本サイコー!」とか言ってる奴らの方がどうかしてる
938デフォルトの名無しさん
2022/06/19(日) 10:30:27.88ID:2cctUuao
声の大きいクソユーザーのせいで言語がどんどん変わっていくC#
939デフォルトの名無しさん
2022/06/19(日) 10:55:12.05ID:KAsrUTco
>>938
具体的にはどういうとこ?
俺は最初からC#ダサいと思ってたけど
940デフォルトの名無しさん
2022/06/19(日) 11:04:07.37ID:PZvlYDex
>>939
具体的にダサいところあげてくれ
ついでにダサくない言語も教えてくれ
941デフォルトの名無しさん
2022/06/19(日) 11:07:05.21ID:C4wP3ian
単純にMicrosoftのソフトウェア開発能力がめちゃくちゃ高いからどんどん変わっていけてるだけだぞ
昔から巨大ソフトウェアをずっとたくさん作り続けてるだけあるよ

他の言語だってリソースさえあればあれもこれもやりたい、って言ってるのたくさんあるじゃん
942デフォルトの名無しさん
2022/06/19(日) 11:11:04.94ID:2cctUuao
言語仕様が使いもしないパターンマッチよりにどんどん変わってる
学習コストが上がるだけなのに

if (x is { Name.Length: 1 })
{
Console.WriteLine("single-char Name");
}
943デフォルトの名無しさん
2022/06/19(日) 11:13:34.22ID:KAsrUTco
>>942
へーそうなん
サンクスコ
944デフォルトの名無しさん
2022/06/19(日) 11:15:07.77ID:2cctUuao
x is { Name.Length: 1 }

これが何を指しているか直観的にわかるように思えて実際は違っている
945デフォルトの名無しさん
2022/06/19(日) 13:07:02.40ID:Mk9KDawR
MicrosoftはTeamsのアップデートしすぎ、ほぼ毎日バージョンが変わる。マジで勘弁してほしい
946デフォルトの名無しさん
2022/06/19(日) 13:32:37.74ID:YdsUdLcR
C#は場当たり的に糖衣構文追加するもんだから
BNFがとんでもない長さになってるな
ここまで言語仕様汚くなった言語他に無いんじゃね?
947デフォルトの名無しさん
2022/06/19(日) 13:39:49.73ID:MGBoiv+i
さすがに C++ Perl Ruby には敵わないだろ
948デフォルトの名無しさん
2022/06/19(日) 14:13:50.73ID:vUT9u2r3
>>944
具体的に他の言語で書くとどういう記述に相当するもの?
949デフォルトの名無しさん
2022/06/19(日) 14:16:23.55ID:61bWOpc5
BNFで構文表現できてる時点で綺麗だよね
950デフォルトの名無しさん
2022/06/19(日) 14:21:29.08ID:Db+21BxG
BNFで表現できない文法はやめてくれ
951デフォルトの名無しさん
2022/06/19(日) 14:37:30.12ID:XPOA14Ne
>>947
Rubyは意外にシンプル
952デフォルトの名無しさん
2022/06/19(日) 15:16:16.80ID:YnIsF6Qk
>>951
シンプルでなくイージー
型無し糞言語代表だろ
953デフォルトの名無しさん
2022/06/19(日) 15:23:17.11ID:T+HLe5Kk
rubyに型がないとかw
恥を知れ恥を
954デフォルトの名無しさん
2022/06/19(日) 17:07:15.35ID:SjAidwyp
恥を知れ恥をって一番恥ずかしい煽りだよな
955デフォルトの名無しさん
2022/06/19(日) 17:08:50.63ID:2cctUuao
他の言語の定型文をそのまま日本語に持ってくるからそうなる

富士山は日本で一番高い山の一つですは誤訳
956デフォルトの名無しさん
2022/06/19(日) 22:06:45.19ID:VFAsiM2X
Rubyはスクリプト言語にしてはPythonに比べ型は厳格だが、なんにでもなれるメソッドなかったっけ?
957デフォルトの名無しさん
2022/06/19(日) 22:28:00.46ID:8/kH/R2d
#method_missing
958デフォルトの名無しさん
2022/06/20(月) 12:03:09.79ID:7+wjkIp4
>>952
型無し言語って何?
959デフォルトの名無しさん
2022/06/20(月) 12:17:32.20ID:G0GSIi1k
シェルスクリプトやアセンブリのことです
960デフォルトの名無しさん
2022/06/20(月) 12:59:21.71ID:EbOcYieG
シェルスクリプトにも変数の型はあるしアセンブリもレジストリの種類は意識しないといけない
961デフォルトの名無しさん
2022/06/20(月) 13:09:02.41ID:rr2OcjMu
型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど
962デフォルトの名無しさん
2022/06/20(月) 13:09:53.23ID:rr2OcjMu
値に型がない言語のことを型なし言語、って呼ぶのは正しいの?
963デフォルトの名無しさん
2022/06/20(月) 13:52:48.64ID:6L0FdSjR
型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が

型無し糞言語3兄弟といえばRuby、PHP、Perl
業界の常識

未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ
964デフォルトの名無しさん
2022/06/20(月) 13:55:02.11ID:4VWLMq9p
>>961
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#%E5%9E%8B%E3%81%AA%E3%81%97
型付けを更に厳密に定義した区分として型なし(英: untyped)という区分が存在する。
代表的な言語としてはSmalltalk[7]、BCPL、B言語、アセンブリ言語などがある。
Smalltalkでは高速化のため処理系依存で実行時に型検査することがあるものの言語的には型検査がなく、
動的型付け言語のように文字列に割り算をするといった不正な操作をしても処理系が型検査して停止する事は無い。

BCPL、B言語、アセンブリ言語などオブジェクト指向とは関係なく型を持たない言語では、
ハードウェアのワード長に依存した1種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。
965デフォルトの名無しさん
2022/06/20(月) 14:10:59.58ID:G0GSIi1k
>>960
bashのdeclareについては一旦忘れていただく方向でお願いします
966デフォルトの名無しさん
2022/06/20(月) 14:23:54.46ID:rr2OcjMu
>>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな
967デフォルトの名無しさん
2022/06/20(月) 14:32:59.17ID:njNeMAGl
>>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと?
968デフォルトの名無しさん
2022/06/20(月) 15:16:39.40ID:gnE/PDYV
untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと

現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い
969デフォルトの名無しさん
2022/06/20(月) 15:39:41.45ID:rr2OcjMu
>>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。
970デフォルトの名無しさん
2022/06/20(月) 15:54:46.01ID:4VWLMq9p
型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから

> 型無し糞言語3兄弟といえばRuby、PHP、Perl

これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う
971デフォルトの名無しさん
2022/06/20(月) 16:28:03.20ID:G0GSIi1k
複おじ怒りのマジレス
972デフォルトの名無しさん
2022/06/20(月) 18:29:27.28ID:1agQsnkM
>>901
これがちょっと辛いんだよな。
973デフォルトの名無しさん
2022/06/20(月) 18:53:41.48ID:BnXOM/sm
型無し言語と言えば型無しラムダ計算だろ。
974デフォルトの名無しさん
2022/06/20(月) 19:04:42.99ID:hXDnNrPc
次スレ(リニューアル)
Era 26

コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。
975デフォルトの名無しさん
2022/06/20(月) 19:05:46.77ID:hXDnNrPc
http://2chb.net/r/tech/1655719441/l50
↑次スレのリンクです。もし興味があればどうぞ。

(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。)
976デフォルトの名無しさん
2022/06/20(月) 19:24:15.90ID:cgMFd80D
そういうのGitHubでやったほうがいいよ
977デフォルトの名無しさん
2022/06/20(月) 19:52:16.37ID:E2oosySA
>>972
今どきの言語ならそんなことは起きないんじゃないかな
例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど

(1) まず名前空間が分かれている
例えば str::replace() や Option::replace() など

(2) 次にメソッドの場合は名前空間を明示する必要がない
例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに
s.replace("価格", "値段"); // → "値段: 123円"

(3) 更にジェネリックな引数も取れる
例えば文字列""ではなく文字''も指定可能
s.replace('円', "万円"); // → "価格: 123万円",
文字判定関数を指定することも可能
s.replace(char::is_numeric, "*"); // → "価格: ***円"

このように様々な対象に対して様々な引数で用いられていても
同名のreplace()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている
978デフォルトの名無しさん
2022/06/20(月) 20:07:59.34ID:8GsqMDfw
次スレ立てるのはもうそろそろかな
979デフォルトの名無しさん
2022/06/20(月) 20:46:13.10ID:6L0FdSjR
>>975
アスペっぽい ガイジ
980デフォルトの名無しさん
2022/06/20(月) 21:02:14.54ID:Hg6hQLhP
>>963
ガイジ乙!
981デフォルトの名無しさん
2022/06/20(月) 21:08:22.86ID:mSfgS0Wr
>>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う
982デフォルトの名無しさん
2022/06/20(月) 21:24:31.48ID:j7veV6LL
シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?
983デフォルトの名無しさん
2022/06/20(月) 21:29:29.90ID:ofPdKV5n
>>982
その2つがどう関係あるのか説明してくれ
984デフォルトの名無しさん
2022/06/20(月) 21:39:32.57ID:j7veV6LL
シャドーイング  同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き
985デフォルトの名無しさん
2022/06/20(月) 21:50:35.85ID:lr2wAV+c
引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。
986デフォルトの名無しさん
2022/06/20(月) 22:04:20.07ID:j7veV6LL
せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ
987デフォルトの名無しさん
2022/06/20(月) 22:09:55.02ID:xRbFgwNB
>>984
なるほどそういう意味か

イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる
988デフォルトの名無しさん
2022/06/20(月) 22:17:07.52ID:G0GSIi1k
>>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな
989デフォルトの名無しさん
2022/06/20(月) 22:26:34.16ID:GOjINbNj
>>982
効果が真逆という結論のようです

> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果

確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね
990デフォルトの名無しさん
2022/06/20(月) 22:30:15.50ID:j7veV6LL
書き込みする前に読み返したか?
ふわっふわしてるぞ
991デフォルトの名無しさん
2022/06/20(月) 22:36:51.94ID:j7veV6LL
Rsutは関数オーバーロードがないから
int(price_str)できない
992デフォルトの名無しさん
2022/06/20(月) 22:44:52.02ID:d/VymnYf
>>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める
993デフォルトの名無しさん
2022/06/20(月) 22:52:38.23ID:j7veV6LL
Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある

x.abs()と言う不思議な感じになる


-1_i32.abs()
は -1になる変な言語
994デフォルトの名無しさん
2022/06/20(月) 22:54:18.35ID:GOjINbNj
>>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?
995デフォルトの名無しさん
2022/06/20(月) 22:55:48.87ID:j7veV6LL
>>994
出た
愚者の?
996デフォルトの名無しさん
2022/06/20(月) 22:59:31.50ID:bmv2finQ
>>993
>int(price_str)できない
>Rustは同様に abs(x)ができない

それはどっちもできるよ
997デフォルトの名無しさん
2022/06/20(月) 22:59:45.45ID:4VWLMq9p
>>993
i32::abs(-1)
998デフォルトの名無しさん
2022/06/20(月) 23:01:03.11ID:j7veV6LL
parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味

そのparseだってどうせトレイトで実装してんだろ?
999デフォルトの名無しさん
2022/06/20(月) 23:02:42.38ID:MklghZCY
>>985
ジェネリクスはまた別物だろ。

ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
1000デフォルトの名無しさん
2022/06/20(月) 23:03:17.12ID:j7veV6LL
>>996-997

それは実質fabs()と変わらない
ニューススポーツなんでも実況



lud20251024093305ca

ID:nghM89d8のレス一覧:


835デフォルトの名無しさん
2022/06/14(火) 19:37:19.54ID:nghM89d8
>>825
メソッドチェーンでオプション書くの大嫌い
単なるデータは普通にデータとして書かせてくれ
836デフォルトの名無しさん
2022/06/14(火) 19:52:21.06ID:0h5AdYzJ
>>825
君その話前にもRustスレでしてなかった?
837デフォルトの名無しさん
2022/06/14(火) 19:54:38.26ID:GHB3UZAZ
ケン・トンプソンなんかおまえ
この業界に居たらまさに神様みたいな存在で
それより上がおらんくらいのハッカーなんだから
こんなクソスレで軽々しく名前出すのすら憚られるやろフツーに
838デフォルトの名無しさん
2022/06/14(火) 20:00:51.53ID:GHB3UZAZ
> ile, err := os.OpenFile( os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
> let mut file = File::options().read(true).write(true).open("foo.txt")?;

File.open('foo.txt', 'w'){|f| ... }
やっぱrubyがスッキリやね
839デフォルトの名無しさん
2022/06/14(火) 20:30:21.52ID:FCklzJDr
>>837
The 老害やな
長いものに巻かれろ、年長者は無条件に敬え、右に倣え、出る杭は打て、死なば諸共
これが衰退先進国糞バカ中世ジャップランド土人村の末路
840デフォルトの名無しさん
2022/06/14(火) 20:46:16.55ID:8A+wXs8O
異次元すぎて逆にかわいい
841デフォルトの名無しさん
2022/06/14(火) 21:16:23.17ID:GHB3UZAZ
滑稽を通り越した何かだな
842デフォルトの名無しさん
2022/06/14(火) 21:39:51.47ID:yie2XOKe
老害ロールプレイ楽しいか
843デフォルトの名無しさん
2022/06/14(火) 23:27:33.27ID:jATTslXV
Rustは通常の言語仕様で欠落してる部分がある
それをマクロで補っている
844デフォルトの名無しさん
2022/06/15(水) 00:03:02.45ID:clxQJqr6
>>826
デフォルト引数やキーワード引数が欲しいのは分かるけどオーバーロードが欲しいのはなぜ?
845デフォルトの名無しさん
2022/06/15(水) 00:09:27.56ID:a3eoLX8e
>>844
JAVA出身だから
846デフォルトの名無しさん
2022/06/15(水) 00:50:48.06ID:pzXtsAzL
オーバーロードは直感的だから
847デフォルトの名無しさん
2022/06/15(水) 00:56:03.07ID:pzXtsAzL
デフォルト引数が必要だと思うならそれはもう関数オーバーロードが必要だとおもっていることと同義だろ
848デフォルトの名無しさん
2022/06/15(水) 01:27:19.31ID:SBK/Y+J6
>>825
C:f= open(out, O_WRONLY|O_CREAT|O_TRUNC, 0777);
D:auto to = File("output.txt", "wb");
Erlang:{ok, Contents} = file:read_file( "input.txt" ),
Fortran(2003):open(in, file="input.txt", status="old", action="read", access="stream", iostat=err)
Basic(Free Basic/VB):Open "input.txt" For Input As #1
Nim:var f = open "output.txt", fmWrite
Objective-C:NSData *data = [NSData dataWithContentsOfFile:@"input.txt"];
Perl:open my $fh_in, '<', 'input.txt' or die "$!";
Python:infile = open('input.txt', 'r')
Tcl:set infile [open "input.txt" r]

Rustは異質、ド変態はFortranとObjective-C。Swiftは知らん
849デフォルトの名無しさん
2022/06/15(水) 03:18:03.71ID:x0I/jK+a
>>848
こう見るとPythonが一番美しいな
例外あるからエラー処理省略できるし
これが良いかどうかはまた別の話として
850デフォルトの名無しさん
2022/06/15(水) 03:22:52.73ID:tT/4QRGb
一般的にデータを初期化する際にいくつもの数のオプション値指定が存在するものが多い
デフォルト引数にしても1つ目と2つ目はデフォルト値でいいけど3つ目は指定したいなど歯抜けでわかりにくくなる

そこで一般的にその問題を解決するオプション指定方法としてビルダー方式がある
ビルダー方式では指定したいオプション値のみをビルダーに対してオプション指定メソッド(の必要ならチェーン)で指定していくものである
あるオプション指定は同時に2つのデータを与えなければならない場合でもこのビルダー方式ではメソッド引数2個で矛盾なくシンプルに表せる
さらに型チェックの厳しい言語ともこのビルダー方式は相性が良く各オプション指定メソッド別に曖昧なく厳格に型宣言できる

ちなみにRustではこのビルダー方式の有用性&利便性が広まり後からこのビルダー方式に移行したものもあるほどである
851デフォルトの名無しさん
2022/06/15(水) 03:32:06.02ID:tT/4QRGb
>>849
Rustは例外機構がないからもっとエラー処理がシンプル
「?」一文字付加するだけで(必要ならエラー自動変換しつつ)上位関数にエラー処理委任できる
そのため例外機構がなくても記述がシンプルかつ同様のことが出来るだけでなくエラー処理忘れなどもコンパイル時に指摘してくれて安全
852デフォルトの名無しさん
2022/06/15(水) 06:09:36.05ID:sEZPBRlz
こんだけ色々な言語が乱立するってコンピュータの世界はバベルの塔だわ
853デフォルトの名無しさん
2022/06/15(水) 15:47:16.86ID:IEWflW3G
コンピューターはバビルの塔
854デフォルトの名無しさん
2022/06/15(水) 18:32:44.57ID:oaz3/shQ
賽の河原での石積みに
昔から例えられている
855デフォルトの名無しさん
2022/06/15(水) 19:56:50.22ID:IqYclFLA
twitterの「スタバでMacを開くエンジニア」って奴ほんと嫌い
qiitaの記事も大したこと書いていないわりに結構な頻度でバズってて流れて来るから目障りだわ
技術力ないから逆にわかってませんアピールを武器にしていっている印象受けるんだがエンジニア畑にああいうネタ系の自虐するノリほんまいらねえよ
エンジニア畑でバズるの狙うなら純粋に技術力の高さで競っていけよって思う
856デフォルトの名無しさん
2022/06/15(水) 23:05:23.86ID:a3eoLX8e
なおそのQiita記事に助けられてるもよう
857デフォルトの名無しさん
2022/06/15(水) 23:58:49.93ID:NtuuvbZ6
大したことないって書いてあるだろ…
858デフォルトの名無しさん
2022/06/16(木) 00:21:07.28ID:N0TE7UEH
その大したことない記事に助けられてるからバカにされてるんだろアスペw
859デフォルトの名無しさん
2022/06/16(木) 10:40:11.20ID:oOjZlu3s
コピペしてすぐ使えるコードが出ている
Qiita記事は役に立つよ
具体的な手順が書いてない記事はゴミ
860デフォルトの名無しさん
2022/06/16(木) 10:47:19.76ID:OyMwP3lE
qiitaもワイもアカウント持ってて投稿したりしてるぐらいだから別に否定しているわけではないんだが
qiitaがクソだと言っている分けではなくてただこいつがqiitaに載せている記事すべてが糞だっていう意味を言っている
気になるんなら見とけよ内容もtwitter上を跋扈するいわゆる情報商材系サイトのそれに近くて技術的な要素を一切含んでいない
https://qiita.com/SMAC
861デフォルトの名無しさん
2022/06/16(木) 11:28:53.21ID:jHsLwKQ/
ここはお前の日記帳かよ
というか「スタバでMacを開くエンジニア」って固有名詞かよ
862デフォルトの名無しさん
2022/06/16(木) 11:55:25.21ID:4wdIdA1r
>>858
助けられてるって書いてるか?
863デフォルトの名無しさん
2022/06/16(木) 13:02:40.58ID:uKxWv5Aj
Qiitaはごみ
864デフォルトの名無しさん
2022/06/16(木) 16:40:13.18ID:N0TE7UEH
>>862
Twitter一生懸命見て彼の成長に嫉妬してる時点で、君の”負け”やで
865デフォルトの名無しさん
2022/06/16(木) 18:30:34.70ID:OyMwP3lE
>>864
「エンジニア1年生必見おすすめ入門書!」「【20XY年度最新】無料プログラミング学習サービス」「基本情報技術者試験のための戦略的方法」みたいなしょうもない記事しか書いていない奴のどこに技術的成長を感じればいいのか疑問なんやけど
お前はまさかこういった記事を見て勉強してんのか?(笑)
お前が勝ち負け判断すんの?(笑)
少なくともSNSで頻繁に目障りな投稿をしている人が他の媒体でどのような活動をしているのか確認する行為自体を一生懸命にならないとするの達成できない時点でお前がこの一連の流れのどんな登場人物よりも劣ってること明白じゃんwwwwwwwww
きっと自分の電話にかかってきた電話番号を迷惑電話だったのかどうかネットで調べて確認すると言った最低限な行為すらも日常生活の中でするのには精一杯になってるんやろなwこの低脳(笑)wwwwwwwwwww
866デフォルトの名無しさん
2022/06/16(木) 19:21:05.39ID:hEUIHdUO
どうみても本人の自作自演

867デフォルトの名無しさん
2022/06/16(木) 20:03:31.12ID:r+hk7hk0
>>864
成長…?
868デフォルトの名無しさん
2022/06/16(木) 20:50:21.92ID:N0TE7UEH
うわぁ、必死杉内
869デフォルトの名無しさん
2022/06/16(木) 20:53:08.58ID:arzDgCAq
なにこいつ
煽りアフィカス?
870デフォルトの名無しさん
2022/06/16(木) 20:58:13.91ID:VGxDlt+C
デジタル人材の副業・複業採用決定数をプログラミング言語・スキル別で分析
~副業・複業人材の登録が、前年度比3倍に。 調査レポートを公開~
https://prtimes.jp/main/html/rd/p/000000040.000053307.html
871デフォルトの名無しさん
2022/06/16(木) 22:42:24.28ID:R+xkwjLU
>>869
スタバマックくんかも
872デフォルトの名無しさん
2022/06/17(金) 14:55:42.76ID:Ld/FFEEi
>>868
レスバ判定員です
言い返せなくなってる時点でお前の負けやでwwwwww
873デフォルトの名無しさん
2022/06/17(金) 15:04:06.85ID:jyuIrjdj
非常にしつこい
874デフォルトの名無しさん
2022/06/17(金) 15:10:54.32ID:2abskYGH
なんでワッチョイ無いんだよ
875デフォルトの名無しさん
2022/06/17(金) 17:27:59.16ID:G79h5Zer
わざと曲解して話を盛るのが5chクオリティ
876デフォルトの名無しさん
2022/06/17(金) 17:48:44.96ID:q4amRkHc
>>872
Qiitaの若者の成長に難癖付けて2ch陰口で悦に浸ってるオッサンとか
キモすぎにもほどがあるでんで
もうちょっと客観的に自分を見つめ直した方がええで
877デフォルトの名無しさん
2022/06/17(金) 17:52:34.99ID:douM25C/
ええでんで
878デフォルトの名無しさん
2022/06/17(金) 19:51:03.63ID:6H4dK9M3
>>825
rustが汚く感じるのはビルダーパターンが気持ち悪いのか、ファイルのopenにビルダーパターン使うのが気持ち悪いのか、どちら?
879デフォルトの名無しさん
2022/06/17(金) 21:08:38.74ID:ueszn7cF
>>878
どちらでもない
optionをopenするのが気持ち悪いだけ
880デフォルトの名無しさん
2022/06/17(金) 21:38:00.10ID:8YmvneAf
let mut stream = FileStream::builder().read(true).write(true).build("foo.txt")?;
これならいいのか
881デフォルトの名無しさん
2022/06/17(金) 21:48:55.86ID:G5rhOs4/
Rustにはなんでデフォルト引数ないの?
Kotlinみたいに名前付き引数もデフォルト引数も欲しい
882デフォルトの名無しさん
2022/06/17(金) 21:49:12.87ID:8YmvneAf
でもパス名が最後に来るの確かに思考の順序と一致しなくてウザいな
どのファイルを開くかより先にモードを考えたことなんかなかった
883デフォルトの名無しさん
2022/06/17(金) 22:02:17.99ID:flaMOIXW
>>878
ソフトエンジニアはビルダーパターンは気持ちよすぎになるが
一方、ドカタは気持ち悪いになるってだけだろ
言語としては主ターゲットユーザーがソフトエンジニアかドカタって重要だからな
Rustはソフトエンジニアがターゲットで、そうじゃない奴はRustじゃなくドカタ用言語使え
ってこと。
884デフォルトの名無しさん
2022/06/17(金) 22:12:15.35ID:1Z6irghS
そうでなくて最後にopen()でビルダーが終了して実行そしてエラーが返る
あと横に書くのではなく縦に書くほうが見やすいので推奨される

ビルダー方式にしているのは複雑になりがちな
様々なオプション指定をわかりやすくするため

例えば
書き込み用を新規作成だが既にファイルが存在しているならばエラーとなるオープンならば
let file = File::options()
 .create_new(true)
 .write(true)
 .open("output.txt")?;

Windowsで全てクローズされたら自動削除される書き込みファイルを作成ならば
use std::os::windows::fs::OpenOptionsExt;
let file = File::options()
 .create(true)
 .write(true)
 .custom_flags(FILE_FLAG_DELETE_ON_CLOSE)
 .open("tmp.txt")?;

Unix(Linux)でシンボリックファイルならFOLLOWしない(つまりオープン失敗となる)読み込みオープンならば
use std::os::unix::fs::OpenOptionsExt
let file = File::options()
 .read(true)
 .custom_flags(O_NOFOLLOW)
 .open("input.txt")?;

それぞれ他のプログラミング言語で書くとどうなるかを考えてみよう
885デフォルトの名無しさん
2022/06/17(金) 23:24:36.27ID:1Z6irghS
あと余談だが
>>884のO_NOFOLLOW指定はUNIXのC言語プログラマーなら馴染みでも一般的にわかりくいという時
Rustではメソッド拡張が可能なことから
以下のように no_follow_symbolic_link() とわかりやすい指定ができるようにすることも可能

let file = File::options()
 .read(true)
 .no_follow_symbolic_link()
 .open("input.txt")?;

この実現方法はRustの一般的なメソッド拡張と同じで
拡張用のトレイトを用意してその実装を与えればよい

trait OpenOptionsUnixCustomExt {
 fn no_follow_symbolic_link(&mut self) -> &mut Self;
}

impl OpenOptionsUnixCustomExt for std::fs::OpenOptions {
 fn no_follow_symbolic_link(&mut self) -> &mut Self {
  self.custom_flags(O_NOFOLLOW)
 }
}

もちろんこの拡張用traitをuseした時のみ有効となる
つまり既にある仕様を壊さずに拡張が可能

いずれにせよビルダー方式でのメソッドチェーン指定は
全てを引数で複雑もしくは長々と指定するよりもよっぽど好ましい方式

レス:1-200 201-400 401-600 601-800 801-1000 ALL

このスレへの固定リンク: http://5chb.net/r/tech/1650185555/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「次世代言語25 TypeScript Swift Go Kotlin Rust Nim YouTube動画>4本 ->画像>2枚 」を見た人も見ています:
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
次世代言語17 Go Rust Kotlin TypeScript Julia
【悲報】iPhone 17, Google Pixel 10, Galaxy S26 シリーズなど次世代スマホ、トランプ関税で15%以上の大幅値上げへ ありがとうおやびん
次世代ゲーム機テクノロジースレ【Pro/Switch/Scorpio】
【正規スレ】【PS5】RDNA2X SIE次世代機予想スレ HWRT 高速SSD アンチ出禁 82世代目 【PS5PRO】
gamestopとマイクロソフトが業務提携 これって次世代機の勝負になんか影響ある?
【apple】次世代iPod touchが開発中?
次世代switchのスペック
次世代iPhone 294
次世代iPhone part1
次世代iPhone Part268
次世代iPhone Part264
次世代iPhone Part254
次世代iPhone Part271
次世代iPhone Part253
【スマホ】iPhoneが次世代モデルで「液晶」を全廃、OLEDディスプレイのみを採用 日本メーカーに打撃
〓〓〓いつまでも次世代 IMAP その2〓〓〓
【PS5Pro】次世代機予想スレ128世代目 【PS6】
【PS5Pro】次世代機予想スレ124世代目 【PS6】
【PS5Pro】次世代機予想スレ 101-8世代目 【PS6】
【PS5Pro】次世代機予想雑談総合スレ 115世代目 【PS6】
【PS5】SIE次世代機予想スレ 【携帯機&PSVR2】 13代目
【PS5Pro(Trinity)】次世代機予想スレ 105世代目 【PS6】
【PS5】SIE次世代機予想スレ 【携帯機&PSVR2】 17世代目
【PS5】SIE次世代機予想スレ 【携帯機&PSVR2】 21世代目
【PS5】お披露目間近 SIE次世代機予想スレ【携帯機&PSVR2】 53世代目
【PS5】爆速2.23GHz RDNA2 SIE次世代機予想スレ 光速SSD アンチ出禁 75世代目 【PS5PRO&PSP3】
「Star Wars ジェダイ:フォールン・オーダー | 次世代機版の最適化アップデート」でまた差がつく
次世代の哲学を育むスレ Part 15
次世代Nintendo Switch総合スレ ★41
【次世代ナビ】グーグルマップ、AR(拡張現実)使ったナビ機能の試験運用開始
【xbox】『ELDEN RING』をプレイしたXboxのヘッド、本作は宮崎英高の「最も野心的な作品」【次世代】
次世代機が年末のSwitchに勝つために必要なソフトって何?
Switchの次世代機が出るなら当然名前は「Switch U」だよな…?
よく次世代switchの話になるとバッテリー問題の話になるけど何とかならんの?
Switchの次世代機はサイバーパンクとかRDR2とか移植されそうじゃね?
次世代Switch、サムスン製の第5世代V-NAND採用でゲーム読み込みを高速化か
【悲報】X民「Switch2のどこが次世代機なの?任天堂至高の人気持ち悪すぎ。」
Switch2が成功したとして、ソニーとMSは次世代機をどういうコンセプトにするのか
【速報】任天堂新型Switch用のVR/AR特許が公開。有名リーカー「次世代SwitchはVRハイブリッドになる」
【クルマ】日産 次世代EVの新型リーフ 2017年9月正式デビューへ!米テスラへ対抗か
DF「NBA 2K21次世代版は解像度は同じでXbox series Xだけフレームドロップする」
「XboxSeriesSは4テラフロップスなので次世代マルチプラットホームの足を引っ張る」←これ
【ID無し】次世代ガールズグループ総合スレ 2【NiziU、aespa、IVE、Kep1er、NMIXX】
Z世代が選ぶ「次世代SNS TOP10」にmixi(ミクシィ)がランクイン
【NEO】【NX】 次世代ゲーム機テクノロジースレ No.10 【Scorpio】
【NEO】【NX】 次世代ゲーム機テクノロジースレ No.13 【Scorpio】
PS5期待の新作『Rise of the Ronin』ゲームプレイ公開!圧巻の次世代グラフィック!【神ゲー】
任天堂の次世代ゲーム機 Nintendo Smart、「すでに量産開始されている」とWSJが報道
次世代エモスク掲示板?
次世代ディスプレイ MEMS46
次世代MacBook Airに望むこと
Drico 次世代楽譜作成ソフト
東京マルイ次世代電動ガン85
AMDの次世代GPUについて語ろう 2世代
Intelの次世代技術について語ろう 130
AMDの次世代コアについて語ろう 245世代
正直、任天堂の次世代機て詰んでるよね?
SONY 次世代Xperia 総合本スレ 296
SONY 次世代Xperia 総合本スレ 298
【次世代国2】2020年代の覇権を予想するか
Sony Mobile 次世代Xperia 総合125
NMBだけ次世代メンが全く育ってない問題
Sony Mobile 次世代Xperia 総合276
Sony Mobile 次世代Xperia 総合189
19:03:06 up 3 days, 9:25, 1 user, load average: 6.40, 7.21, 7.48

in 1.4956049919128 sec @[email protected] on 102608