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


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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

以上



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

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

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

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

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

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

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

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

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

以下略

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

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

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

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



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

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

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

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

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

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


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

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

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

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

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



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

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

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

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

150 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:20:14.50 ID:UKixTNef.net]
煽ってるだけの書き込みにまともな返答がくるわけないじゃん

151 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:21:33.19 ID:atNXtsDe.net]
まだスレタイに出てないけど注目してる言語とかありますか?

152 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:02:04.18 ID:yAnz+P1M.net]
flixかな
scala亜種といった感じで流行るようには見えないけどね

153 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:06:53.42 ID:yOJfi3Zs.net]
この根源的な差が決定的かな

> プログラミング言語は以下の3つに分類される
> CとC++ ←『省メモリ高速』だが、「メモリ解放でミスると危険」
> GC言語 ←『省メモリ高速』ではないが、「メモリ解放は自動で気にしなくていい」
> Rust ←『省メモリ高速』だが、「メモリ解放は自動で気にしなくていい」

154 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:15:46.28 ID:QUxpZq2Z.net]
言語じゃないけどWASMってどうよ

155 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:25:25.90 ID:UKixTNef.net]
>>149
Pony
Rustよりも安全。データ競合だけでなく、デッドロック、実行時例外が起きないことも保証されてる
actorモデルを採用している



156 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:27:40.70 ID:aYwHbJz6.net]
>>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制約などの

157 名前:ニークな機能をサポートしている。 []
[ここ壊れてます]

158 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:34:28.61 ID:aYwHbJz6.net]
>>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がなく、読み込み、書き込みのバリアも、カードテーブルマーキングもコンパクト化もない。コンパクト化が必要ないので、ポインタのフィクスアップも必要ない。

159 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:39:31.11 ID:NkxiGfGV.net]
erlang系で何かしら伸びてこないのか

160 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:56:20.88 ID:UKixTNef.net]
>>156
Erlang系でElixirの次に来そうなのはGleamかな?
まだまだ新しすぎて未成熟だけど、着実にコミュニティが大きくなってる気がする

あとは他に33個ほどリストアップされてるから、なんか伸びそうなのあったら教えて
https://github.com/llaisdy/beam_languages

161 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:57:22.84 ID:MSzkRWeB.net]
>>152
Wasm自体は十分に実用的でブラウザ上からクラウドエッジ上に至るまで様々な環境での環境非依存言語の地位確立
ただしWasm仕様へのGC導入は未来の話へと先送り
したがって実用的なWasm記述言語としてはC/C++/RustのままとなりRustがベストチョイス

162 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:14:40.69 ID:gmnEH6Vv.net]
>>158
LLVMが噛めばほぼ全てWasm対応になりうるので利点でもなんでもない
オレオレ言語でもWasmに対応できるというかすでに作った

163 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:25:22.84 ID:p9LA8Dyp.net]
>>159
GC言語だと明確に不利なだけでもちろん動くよ
GCなし自作言語で良いものが作れたならばシェア取りに行くといいね
現状Rustの天下を崩すチャンス

164 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 22:15:59.43 ID:AQMvQ4xM.net]
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つのサロンが転職に有効な技術を持ってしまうと、
他者が合格できなくなるので、対抗上、勉強しないといけなくなる

165 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 22:38:59.17 ID:y1b9XJMs.net]
Terraformが何なのかも理解せずにここプログラミング言語のスレに書き込んでいるのか



166 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 22:55:47.09 ID:dDLjcogg.net]
リスナーさんだか受講生だか知りませんが、KENTAさんの主張を引用するなら本人から許可を取って、
情報の許可範囲とガイドラインを守って書き込みしたほうが絶対良いと思いますね。

匿名掲示板ならアレな発言も、多少は仕方ないかもしれませんが、
他人の名を語ってそれだとさすがにまずいです。倫理とルールを守りましょう。

167 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 23:14:15.38 ID:TXL8QlLI.net]
え本人が書き込んでるんじゃないのか

168 名前:161 mailto:sage [2022/04/22(金) 23:17:44.40 ID:AQMvQ4xM.net]
KENTA

2021年のWeb系エンジニア転職を成功させる3つの技術要素、2021/4
https://www.youtube.com/watch?v=70VrB7LTe9g

Web系エンジニアを目指す人のためのプログラミング学習ロードマップ、2021/2
https://www.youtube.com/watch?v=0TABrlhci5M

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

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

日本では解雇できないから、資格などの事前審査制。
米国では国民全員がフリーランスだから、ひとまず雇っても、すぐに首にできる

169 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 23:32:50 ID:dDLjcogg.net]
>>164
えまじで?

170 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 23:40:10.10 ID:BeccjQpB.net]
KENTAさんは全エンジニアの輝きの星

171 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 23:47:33.75 ID:dDLjcogg.net]
讃えよー敬えー

172 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 05:52:57.97 ID:dsrvV+XF.net]
>>165
相変わらずのゴミ動画

173 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 07:28:43.83 ID:ebXv3GDe.net]
>>151
RustがメモリをGC並みに雑に扱えたら、最高だったな。

174 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 08:41:27.77 ID:X7wDySqh.net]
RcもWeakも無くなればね
裏で勝手にやってくれるとかして?
プログラマ側が一切ケアしなくて良いんならスゴイよね

175 名前:デフォルトの名無しさん [2022/04/23(土) 09:12:54.44 ID:eZJZo8Wb.net]
Goはコンパイル言語なのにスクリプト言語のように扱える軽量さが最大の魅力だろ
Go並にエディタの補完が軽量でコンパイル爆速のコンパイル言語を俺は知らない

Rustはライフタイムが全然わからなかったし、コンパイル遅すぎて無理だったね
GCはあった方がいいに決まってるわ
開発時の生産性が圧倒的に違ってくる



176 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 09:17:17.05 ID:kd0LPi6/.net]
GoはCGo何とかしてくれればもっと使う気になれるんだけどな

177 名前:デフォルトの名無しさん [2022/04/23(土) 09:20:09.97 ID:eZJZo8Wb.net]
とにかくGoは頭の悪い人でもすぐにプロジェクトに参加できるぐらいに機能がシンプルに削ぎ落とされていてコンパイル爆速ってのがポイントな言語
それに対して〇〇の機能がないーって言っても仕方ないだろ

頭の悪い人でも使いこなせる言語じゃないと企業ではなかなか普及しないと思うよ

178 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 09:46:22.59 ID:o/e4rrgi.net]
https://without.boats/blog/notes-on-a-smaller-rust/
だれかここで言われてる言語作ってくれ

179 名前:デフォルトの名無しさん [2022/04/23(土) 09:52:47.90 ID:XZjzYuNa.net]
>>174
本当にその通りなんだけど、これだけは欲しかったみたいな機能も一緒に削られてるところが少しモヤモヤする
ジェネリクス(ようやく追加されたけど)とか代数的データ型とか

180 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 10:30:02.86 ID:19UflQcD.net]
>>172
ライフタイムがわからなかった、って、かなり知能が低い人じゃないとありえないと思うよ
そしてそのくらい低い人はプログラミングに向いていないと思う

181 名前:デフォルトの名無しさん [2022/04/23(土) 10:34:13.57 ID:WKX1mrZa.net]
ライフタイムはわかるけどこれがリージョン推論とかいった厳密な理論とどう対応しているのかがわからん
一般的なプログラマーはここまで理解しなくてもいいんやろうけど
なんでこんな単純なわかりやすい原則の背後にそんな謎な人口に膾炙されていない理論を導入しないといけないのかがわからんわ

182 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 10:59:59.69 ID:BgAX+6b6.net]
荒らしなし規制無し

3ch
NEXT2ch
45ch

ふたばちゃんねる
明和水産

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

Non-Lexical Lifetimes って?
https://qiita.com/_EnumHack/items/8b6ecdeb52e69a4ff384

184 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 12:06:36 ID:uMxflx63.net]
プログラミング言語「Erlang」を生んだジョー・アームストロング氏死去
なお、アームストロング氏は「なぜオブジェクト指向はクソなのか」という名文を残しています。

185 名前:デフォルトの名無しさん [2022/04/23(土) 12:41:02 ID:lKjOluUR.net]
>>177
プログラマーって言ってもOS作ったりドライバ作ったりする低レイヤーやってるのと、バックエンドやWeb系の高レイヤーやってるのはいるわけで
Rustは前者の人たちが使えばいいのでは?後者の人たちがRustがーとかイキってるの見ると笑ってしまう

後者の分野ではRustはGoに勝てないでしょう



186 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 12:48:09.21 ID:HJoWw7qN.net]
>>182
むしろGoは対象が狭くて短命に終わる言語
言語の機能不足で書きにくい上に速いわけではない
唯一のメリット(?)が仕様が簡素なこと

187 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 13:26:27 ID:o/e4rrgi.net]
>>182
勝ち負けの定義次第だけど後者でもrustの方が有利な場合はあるんじゃないの
discordのバックエンドの例とかあるよね

だいたいのケースでgoが適しているって主張なら分かるけど
特定の分野で常にgoの方が適しているというのは言い過ぎかと

188 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 13:31:57 ID:BV8u7mBP.net]
これだからRust信者は嫌なんだ...12年続いて厳格に互換性を保ってる言語が短命だって?
速いわけではないって、そりゃGCが裏で動いてメモリー解放をほとんど気にしなくて良い言語と比べれば、極限の速度では有利になるのは当たり前でしょ?
それでもC99やRustなどと比べても2倍も時間が掛かるわけではない、これを速いわけではないと表現するのは、自身でも気づいていないのか隠された悪意と偏見を持ちすぎてる。
むしろRustこそ後方互換を保つためなどと言いつつEditionなどという仕組みや、ボローチェックの強化なんて短命のコンパイルが通らないような事をして、短命で終わっている
今書いてるRustが10年後コンパイルが通るのかエラーになるのか全く見えない。普通の用途ではGoで十分という話に噛みついてくる
言語の表層的な機能をどんどん導入して直行性が無く、どんどん書きにくくなっていくのに苦労に見合う速度はC99以下。唯一のメリット(?)は意識高い系がたった1つの言語をやってればマウントできる事

189 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 13:40:48.60 ID:j+9QGcWO.net]
>>182
でも現実にWeb分野でもRustがじわじわと広まりつつあるよね
サーバ側はGoよりRustが高速で省メモリでGC負荷なしで有利
ブラウザ側は実用的となったWebAssemblyでRustが最適

190 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 13:46:57.71 ID:o/e4rrgi.net]
>>185
不勉強でよく知らないんだけどeditionやborrow checkerの強化でコンパイル通らなくなったcrateってどういうものがあるの?

191 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 14:42:18.80 ID:iqGYI4s5.net]
長文に構うなよ

192 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 17:59:39.00 ID:Yf3QCfCm.net]
>>176
同感
必須機能が足りな過ぎてGoはプログラミングが修行のように辛い
C言語で何でも書けるというのと同じで書けるけど辛い

193 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:14:41.34 ID:DP+h97oH.net]
>>186
コンビニに行くのにF1とかソーラーカーは要らない定期。どれだけ早かろうが省エネだろうが。
JavaやC#はセダン〜バスみたいな感じかな。
Goは原付2種みたいなもんでしょ。
まず主戦場も違えばドライバーも違う。

194 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:17:56.69 ID:qKl7QP1V.net]
>>186
それでお前は使ってるの?
Reference Types使ってもパフォーマンスがjsに比較してカスな件どうなった?

195 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:21:30.06 ID:FZleZnGe.net]
>>191
え?
JSとは誤差
そして何か処理するコード次第で圧勝



196 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 19:02:24.78 ID:qKl7QP1V.net]
もう一回貼っておきますね

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

PythonにおけるCFFIみたいな用途で使う分にはきっと問題無いんだろうね
特定の目的に対してはぴったりはまるんでしょうが
それを何の前提も付けず単に「実用的」と呼ぶのは誇大広告ではないんですかね

197 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 19:03:19.39 ID:X7wDySqh.net]
最小限で考えると
Cにあとひとつ何かを加えたものでやっていけそう
Cに関数のオーバーロードがあればやっていけそう
コンテナクラスもほしいけどOOPを持ち込んでしまうので今回はパス
あくまで
void add(struct vector_int *v, int value)
void add(struct vector_float *v, float value)
というふうに関数と構造体だけで頑張っていけそう

198 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 19:36:04.43 ID:ugaeg6U2.net]
Cに拘ってる奴は本気でCが使いやすいと思ってるのか冗談で言ってるのか

199 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 19:53:30.81 ID:texCpgrl.net]
go よりはcのが好きかな

200 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 19:57:28.78 ID:stnqwczt.net]
>>195
下手な増改築だらけのC++よりCが良い
LinuxのLinusも同じ意見

201 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 20:15:34.17 ID:qKl7QP1V.net]
C言語にオーバーロード?
結局C++みたいにABI建て増ししてマングリングしないといけないやつじゃん

202 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 20:18:18.40 ID:o/e4rrgi.net]
Cは_Genericで頑張れば

203 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:14:20.68 ID:FKp57Oo8.net]
個人的いはCにがんばってほしい

204 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:39:38.45 ID:X7wDySqh.net]
>>199
> _Generic

(´・∀・`)ヘーそんなのあるんだ勉強になりました
これあったら十分やわ

205 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:51:54.89 ID:w3sxk/eA.net]
ジェネリックってプログラミング言語によって指すものが異なってるよな
異なるといってもレベルの低いもの高いもの玉石混交という意味で



206 名前:161 mailto:sage [2022/04/23(土) 23:08:55.47 ID:dSfqqc1i.net]
IoT, AI でも、Elixir もある

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

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

Erlang VM のFFI で、他言語のモジュールも使える

207 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:35:10 ID:tW7+nz8n.net]
Cは文字列が弱点だった
ちゃんとした文字列の型があればもっと便利だったとおもう

208 名前:デフォルトの名無しさん [2022/04/24(日) 01:36:20.84 ID:bAmVid1d.net]
nimはもっと広まって欲しいかな。できればpython置き換えるくらいに。

209 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 06:41:49 ID:4pJnSfn9.net]
>>197
てかLinusはそんなにその言語がいいと思ってるならそれでお前がなんか作ればいいだろって話をしてるな。
ここの連中なんかはまさにそんな感じだが。

210 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 09:27:58.32 ID:FwnGDc6j.net]
これはなかなか面白い記事だった
原点回帰というか、ここのスレでの議論にも参考になると思う
お前らの感想を聞きたい

How the C programming language has grown
https://opensource.com/article/22/3/how-c-programming-language-has-grown

211 名前:デフォルトの名無しさん [2022/04/24(日) 13:05:32 ID:LSLifE01.net]
結局言語は道具。結局は何を作るかなんだよ

212 名前:デフォルトの名無しさん mailto:shuang777gm@gmail.com [2022/04/24(日) 14:03:27.44 ID:plOa7TFC.net BE:557647423-2BP(0)]
img.5ch.net/ico/2iyou_2.gif
ネイティブ言語に変換できるビジュアルプログラミング言語とかいいと思う
オブジェクト指向とかわかりやすいだろうし。
唯一問題なのはマウスとキーボードをせわしなく行き来することかな
以前Blockly使ってそんなの作ったけどソースコードどっかやっちゃった

213 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 17:21:57.86 ID:uNEChMqn.net]
なんだァ?てめェ……

214 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 17:26:29.56 ID:K5BkO09u.net]
そうです、わたすが変なおじさんです

215 名前:デフォルトの名無しさん [2022/04/24(日) 18:16:43.21 ID:bl0Rasps.net]
Rustのスレ複製おじさんが暴れまわってるから怖くなっちゃって見てないわ
あんなスレ見てたら気がおかしくなりそう
ここはまだまし



216 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 19:14:30 ID:tfR0akyF.net]
頭おかしなるで

217 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 19:46:35.09 ID:gbNK0/9l.net]
>>181
「なぜオブジェクト指向はクソなのか」
1データ構造と機能は一緒にすべきではない
2すべてがオブジェクトである必要があります。
3データタイプ定義はあちこちに散らばってしまう
4オブジェクトはプライベートな状態を持っている

218 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 20:04:13.90 ID:tW7+nz8n.net]
最近はモジュールがまた流行ってるよね
rustもGoも自分から見るとモジュール指向に見える

自分はモジュール型からOOPに進化した過程を知ってるから正直モジュール型は好きじゃない

219 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 21:17:36.80 ID:slsDzRA2.net]
>すべてがオブジェクトである必要があります

C++やJavaみたいにすべてがオブジェクトじゃないオブジェクト指向言語なんていくらでもあるじゃん

220 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 21:49:22.71 ID:+4D6Qx5V.net]
>>216
そういう意味じゃないよ
https://gist.github.com/posaunehm/4087971

221 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 22:02:13.94 ID:4j4sWWkv.net]
真のオブジェクトっていうのは、一つのスレッドみたいなもので他のスレッドとの通信をメッセージパシングでやりとりするものと言っていたような
一方、普通にいわれているオブジェクト指向というのは単なるプログラミングの書き方の効率化の手法にすぎないって話
つまり、継承という方法で差分だけ書いていけるようにすることによる効率化だけの話だってこと。

222 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 22:04:35.47 ID:uNEChMqn.net]
差分プログラミングならまあクソでしょうね

223 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 22:06:02.75 ID:22aYjb+I.net]
今のオブジェクト指向継承あんま使わなくね?

224 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 22:09:28.03 ID:HH2OM4Tz.net]
むしろ継承はクソすぎて足を引っ張る
そのためGoやRustなどの言語ではclassを廃止というか最初から採用しなかった

225 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 22:27:33.03 ID:L+Cr+2nK.net]
>>216
一言でいえば、プリミティブ型のことを言ってるんじゃなく(オブジェクトに)メソッドがぶら下がる粘着性を言っている。

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

以上、D言語の宣伝です。



226 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:02:30.63 ID:m7DPUXtY.net]
>>222
> Rustならクレートによるimplで

ちょっと惜しい
『トレイトによるimpl』が正しい
その後にD言語は更に進んでいるとの宣伝と書いてあるようだが
Rustにも当てはまることばかりなので違いがよくわからない

227 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:27:04.32 ID:GF+5hMbb.net]
DのUFCSは任意の関数に適用できるけど
Rustは第一引数がselfなassociated functionだけだよね

228 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:33:35.96 ID:sDr1xuuT.net]
typescriptでclassを使わないでやったときに無限にf(g(h(x)))みたいに書いたなあ
tsにもほしいわ

229 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:34:27.96 ID:LqFJ2u6k.net]
どうしてDって今のgoやrustみたいにならなかったの?

230 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:35:54.45 ID:dSrWC4pO.net]
DのUFCSもメンバ関数やネスト関数などには適用できない制限がある

231 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:39:26.69 ID:cR9N6Lw+.net]
UFCSなんかなくても最初の引数の型に対してメソッド定義するだけで目的達成可能
グローバル名関数を増やして名前空間を汚さずともその型のメソッド定義がベター

232 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:47:38.84 ID:pTvSoM83.net]
>>225
GoやRustはclassなんか無くても各型に対してメソッドを定義できるのでそういうことを招かずに済むのよ
UFCSのメリットはメソッドチェーン記法が可能になることだから最初からメソッドを定義すればいいものね

233 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:55:00.32 ID:sDr1xuuT.net]
>>229
structかenumは定義する必要あるじゃん
tsのtypeがどういうものか分かったうえでレスしてる?

234 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 00:58:26.21 ID:loxtuGTD.net]
>>230
structやenumは単なるtypeだよ
C言語でもstructと(enumの代わりにタグ無しの)unionがあるよね(ただしメソッド定義はできないけど)

235 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:21:04.73 ID:W8ZZnspt.net]
Nim言語にもUFCSがあって関数だけじゃなくtemplateやmacroも関数と同じ



236 名前:文法で呼び出せるのでUFCSが使える。ただし第一引数がuntypedだとmethod call syntaxが使えない。
UFCSのメリットは標準ライブラリとか他人の書いたコードにある型とプロシージャの組に対してもmethod call syntaxが使えることだと思う。
第一引数が組み込み型のプロシージャを定義すれば組み込み型に対してmethod call syntaxが使える。
ライブラリAで定義されている型Xのオブジェクトに対してまったく別に書かれたライブラリBで定義されているgenericsなプロシージャをmethod call syntaxで呼ぶ出すことができる。
[]
[ここ壊れてます]

237 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:28:09.79 ID:5Adpat0k.net]
>>230
structやenum以外でもOK
任意の型にメソッドを定義可能

238 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:31:48.98 ID:W8ZZnspt.net]
>>228
オーバーロードがある言語なら引数が一つ以上あるグローバル関数を追加しても引数さえ異なれば同名の関数をグローバルに追加できる。
UFCSとオーバーロードがある言語では第一引数がFoo型の関数を定義するのはFoo型にメソッドを定義することとほぼ同じとみなせる。

239 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:35:52.92 ID:V8fkjI23.net]
つまりUFCSは汚染でありリスク要因
定義していないメソッドが使えることになってしまう
UFCSがなくとも明確にその型に対して定義されたメソッドのみ対象で実用上困ることはない

240 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:46:11.22 ID:GF+5hMbb.net]
モジュールがあるなら関数のimport有無でどの関数が呼び出されるか制御できたりしないの?
Rustのtraitのuseみたいに

241 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 01:55:33.57 ID:W8ZZnspt.net]
>>235
UFCSのあるNim言語をよく使っているけど特に問題無く使えてるよ。
ライブラリAで定義された型を第一引数に持つ関数をライブラリAの外で定義してもgenerics/template/macroなど使わない限りライブラリAから呼び出せないし、ライブラリA内で使われている関数を外から勝手に上書きできない。
メソッド呼び出ししているように見えてもライブラリA内のプライベートな変数/関数はライブラリの外からアクセスできない。
method call syntaxってa.fooMethod(b)って書いてあるのを
コンパイラがfooMethod(a, b)という関数呼び出しとして解釈しているだけでなんのリスクもないよ。
第一引数にFoo型のオブジェクトをとる関数を定義してもオーバーロードがあるのでFoo型を使わない人には何の影響も与えない

242 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 02:05:19.36 ID:B7syBDSL.net]
D言語のプロジェクト見て半笑いになるのやめてさしあげろ

243 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 02:06:16.28 ID:W8ZZnspt.net]
>>236
Nim言語だとimportするときにfrom std/strutils import `%`みたいに特定の型/関数だけをインポートすることができるよ。
もし同じ名前で同じ引数の関数が複数定義されている場合は関数名の前に"モジュルー名."をつけないとコンパイルエラーになる。

244 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 02:34:25 ID:z8DQnMuR.net]
結局UFCSは不要だよな
メソッド的に使いたいならば最初からその型にメソッドを生やせばよいだけ
必要ならばジェネリックに定義すれば複数の型に同時にメソッドを生やせる
わざわざグローバル関数にしておいてからメソッド的に使えます!とかメリットを一切感じない

245 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 02:47:04 ID:W8ZZnspt.net]
>>240
標準ライブラリにある型とか他人のgithubリポジトリにあるライブラリにも自由にメソッド追加できるの?
ジェネリックにする必要が無いときでもジェネリックにしないとメソッドはやせないの?

Nim言語にはそもそもC++のメンバ関数みたいなのが無くて、第一引数がFoo型の関数がFoo型のメソッドの代わりみたいになっている。



246 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 03:05:01.71 ID:hhhqUz2p.net]
>>241
ジェネリックである必要なし
もちろん同じ機能を複数の型に適用ならジェネリックで1回で済むのが普通

247 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 03:21:57.26 ID:FFLrto9L.net]
>>241
うん
標準ライブラリや第三者ライブラリにある型にもメソッドを増やすことができるよ
だからUFCSが無くても困らないよ

248 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 04:39:58.47 ID:W8ZZnspt.net]
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という文法でも関数を呼べる。括弧がないので引数が複雑な式にならなければ書きやすくて読みやすいよ。

249 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 05:29:11.29 ID:d+UJIvmE.net]
>>244
Rustでも可能
例えばu64型のxに対して
xのn乗はu64::pow(x, n)という関数が標準であるけど
これはx.pow(n)と呼び出すことができる

250 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 08:12:23.26 ID:7gaqSdm4.net]
>>225
js/tsなら言語仕様拡張せんでも関数合成だろう。

251 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 08:55:43.85 ID:VjXpH6fC.net]
>>231
>>233
tsではどうやるの?

252 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 11:59:33.54 ID:QEeStXPn.net]
>>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();

253 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 12:16:38.60 ID:VSqj5wTk.net]
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();
}

254 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 12:41:05.03 ID:GF+5hMbb.net]
既存の型へのメソッド追加はプロトタイプ汚染とか言われて忌避されてるよね
他モジュールへの影響の出ない形でメソッド追加する手法が望ましい

255 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 12:53:37.30 ID:BAh3CRfm.net]
>>250
JavaScriptはプロトタイプがグローバルに書き換わり全てのモジュールに適用されるためだな
一方でRustはメソッドを追加するにはトレイトを用意することが必要、そしてトレイトが宣言/useされている空間のみ有効、なので汚染が生じず安全



256 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:16:10.20 ID:GF+5hMbb.net]
>>251
型を定義した以外のcrateでメソッドを追加するためにはtraitが必要、が正しいかな
メソッドを追加するためにはtraitなしのimplを書く方法もあるが、これをできるのは型を定義したcrateだけに制限されているので他crateで定義を追加して汚染することはない

とまあRustの事情は知ってるんだけど、他の言語ではどうなってるのかが知りたかった

257 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:16:45.41 ID:BiVUGBJZ.net]
知ってるけど今そんな話してるんじゃないんだわ

258 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:22:02.11 ID:UiNQmXr4.net]
JavaScriptで脆弱性を生みまくってさんざん問題視されたんだから、いまどきそんな汚染が起こる新しい言語は一つもないよ

259 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:30:18.88 ID:5sWL1sIQ.net]
他の言語でもメソッド追加方法を教えて
今のところ
JavaScript >>248
Rust >>249

260 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:46:50.81 ID:BiVUGBJZ.net]
発端になったD言語のUFCSハブられてるのなんで?

261 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 13:58:52.24 ID:TLzTt+1G.net]
>>256
UFCSはメリット無いからでしょ
メソッド追加できるなら関数よりメソッドの方が名前空間を汚さないし

262 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 14:21:14.88 ID:UiNQmXr4.net]
>>256
nimには採用されてるし、調べてみるとC++にも導入の提案がされてるみたいだから、それほどハブられてないのでは?

Bjarne Stroustrupの提案: www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4174.pdf
Herb Sutterの提案: https://isocpp.org/files/papers/N4165.pdf

263 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 14:24:50.73 ID:S1pQjSZ5.net]
UFCSはメソッド名空間の汚染
だから採用しないのが正解

264 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:13:03.71 ID:B7syBDSL.net]
結局メソッド生やしたいんじゃなくてプライベートメンバにアクセスしたいだけなんだよな

265 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:22:37.45 ID:sJr09n4H.net]
>>259
汚染言うならRustのtrailと同レベルじゃない?

関数をincludeしなければ影響無いんだし、言語次第だけど名前空間に閉じ込めることもできるだろ。



266 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:28:02.41 ID:VN4zR5UM.net]
>>261
Rustは一切汚染しません
何を誤解しているのですか?

267 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:36:09.96 ID:3MmiqOlF.net]
いやトレイトで似たようなメソッドがたくさんぶら下がって汚染されてますよね?それが更にハードルが上がる一因になってる

268 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:46:00.36 ID:ZqKc7K5J.net]
>>263
Rustでは明示的にuse Traitしない限り
そのトレイトのメソッドが有効になることはないよ
汚染は起きず安全に設計されている

269 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 15:55:06.48 ID:UiNQmXr4.net]
>>264
当然、D言語でもnimでも、importしたシンボルは、importされたスコープでしか有効にならないし、メソッド形式の呼び出しもできない
Rustと何が違うんだよ

270 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:00:14.18 ID:xSu4vg9o.net]
UFCSは強制汚染
関数として必要なだけなのにメソッド名空間を汚染
メソッドとして必要なだけなのに関数名空間を汚染
だから採用する言語がほとんどない

271 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:01:50.20 ID:3MmiqOlF.net]
>>264
イヤイヤ、そんなのほとんどの言語でimportやincludeと同じで更に言えば、use std::io::prelude::*;みたいにRustでもPythonでも
誤ったやり方とされてるワイルドカードだって使えるんだから一緒でしょ。明確に言うなら”汚染は起きず”ではなく、汚染は当然ながら
useするのだから起きている。無意味にuseしない*を使わないというのは言語仕様や特性じゃなく規約だよ

272 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:08:08.42 ID:UiNQmXr4.net]
スコープやシンボルが限定されてるのに汚染と呼ぶのはおかしい

273 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:09:49.70 ID:Ld005CpI.net]
>>267
Rustでは追加メソッドを使う場合
必要な機能のTraitだけを
use TraitName as _; する
そのため汚染は起きない

274 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:18:54.63 ID:EM9X2zpO.net]
>>264
ほんとRustニワカ嫌いだわ、「明示的にuse Traitしない限り」なんて良くそんな詭弁が言えるわ。どう考えても一緒でしょう
だからPythonだってas構文使えますし、D言語だってimport std.stdio : writeln, writefln;で選択的インポートできるでしょw

275 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:21:12.54 ID:PqJDEf6z.net]
Rust聖戦士がワラワラ
他の言語のスタイルはすべてアンチパターン



276 名前:デフォルトの名無しさん [2022/04/25(月) 16:23:34.31 ID:NxLuUrhR.net]
>>269
Underscore importなんてRustがトレイトのシンボルが別のシンボルと競合する可能性がある場合、つまりRustが破綻しないように
特別にあるだけで、汚染の低下のための機能ではないぜ。ここで汚染といってるのは無暗にメソッドが追加される事。
(回避策が仮に無ければ)衝突することはもはや、言語的な欠陥だ

277 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:27:35.43 ID:KFrD7nO2.net]
使われる空間に名前が載ることを汚染とは言わない
使わない空間に名前が載ることを汚染と言う

UFCSが汚染と言われる理由は
関数として使いメソッドとして使わなくてもメソッド名空間に載り
メソッドとして使い関数として使わなくても関数名空間に載るためだと考えられる

278 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:34:56.30 ID:NxLuUrhR.net]
>>273
Rustだって、fn中にuse出来るわけでそれはほかの言語でも同じ。そう言う事はあまりしないけども、多くの言語で同じように”使われる空間”だけに載る

279 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:36:52.48 ID:UB00PZWU.net]
RustがUFCSを採用しないのは単に、パーサーをオブジェクトを先して作り直すと(C言語にわざと似せてる)見た目が変わってしまうし
パーサーに手を入れるということは苦労してきたコンパイル速度が低下してしまう恐れがあるという事だけ

280 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:37:55.90 ID:ZcyGlXND.net]
>>273
その程度で汚染とか言うの聞いたことねえよ
ESModuleとかが導入される前のJSのグローバル汚染なんかと比較してみ?
Rust上げしたいがためだけのただのイチャモンだよお前の主張は

281 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:39:18.63 ID:Ktg4GXmX.net]
>>272
Rustでは汚染は起きないですよ

>>274
そうです 
だからRustでは>>273の汚染という状況は発生しないですね

282 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:40:19.19 ID:WnCW0ZaS.net]
そもそもUFCSは汚染だなんてここ以外で聞いたことがないんだけど

283 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:44:16.36 ID:LpKzCT90.net]
>>273
UFCSとやらはムダに汚染しまくるクソな機能だな

284 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:46:59.96 ID:EmEbSMmo.net]
Rustの宣伝はこんな匿名掲示板じゃなくQiitaとかに書いてほしいな
その反応で実際に正論なのか暴論なのか明らかになるだろう

285 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:49:37.58 ID:ZJMHR0C4.net]
UFCSという汚染機能をサポートしているプログラミング言語はDとNim
埋もれた言語となったのも当然の結果



286 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 16:50:47.89 ID:WnCW0ZaS.net]
汚染だとか書いてるのは全部ガイジだな

287 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:00:21.10 ID:AtUdeTix.net]
ほとんど全ての言語がUFCSを採用していない理由はメリットが無いからだと思う
そして無条件に二つの名前空間に登録されてしまうことを汚染と呼ぶかどうかは置いておくとしても本末転倒の方法かなとは感じる

288 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:01:11 ID:XBfmr4Gp.net]
>>275
さらにRustは実装としてUFCSを別の意味で誤って使っていた過去がある、::パス構文で混乱を引き起こして曖昧性が起きた。2017年頃でそんなに優れた開発者がおらずなんとなく実装していた時期だな、いつもはRustは論文がしっかりしてると嘯くのに

289 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:02:36.89 ID:+vVlR4Vp.net]
やっぱりUFCSは悪だな

290 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:12:43.76 ID:PqJDEf6z.net]
次スレはもうRust消そう
話にならん

291 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:19:42.27 ID:o63SmoRM.net]
>>286
Rustは関係ないんじゃね?
むしろRustのアンチ側がなぜかRust叩きしていて巻き込まれ被害側にみえる

292 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:26:05.13 ID:PqJDEf6z.net]
どっちでもいいよ
信者だろうがアンチだろうがあらゆる話題がRustとの比較になって宗教戦争化するのが馬鹿馬鹿しすぎる

Rustの話題はスレ違いなのでRust叩きもスレ違いとする、問題解決

293 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:26:35.89 ID:4xqZqLmv.net]
ほぼ全ての言語がUFCSを採用していない
しかしUFCSが叩かれるとなぜか必死にRustを攻撃してくれる
一石二鳥と言えるだろう

294 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:38:49.59 ID:63+wFQ6i.net]
C++委員会での議論でもメンバ関数と非メンバ関数で衝突したときにどう解決するかで割れて否決されたみたいだし、なかなか難しそうだね

295 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:51:06.52 ID:BSwMXBpD.net]
考えてみたがUFCSは完全に不要っぽい
まずメソッドとして使いたいものは最初からメソッドとして書けばよい
次に外部の関数をどうしてもメソッドとして使いたいならばその外部関数を呼び出すメソッドを追加すればよい



296 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 17:53:13.68 ID:VVkmIp+6.net]
衝突が問題ならUFCSの使用は記号などを使って明示したらいいんじゃないかな?

297 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:02:36.22 ID:DhJCopPa.net]
「Rustを攻撃」ってどっちも同じでしょって言ってるだけなのに、このように攻撃を受けたと勘違いするんだから、正常な議論なんて出来ない。
UFCSについて難癖付けてるだけじゃん、個人的には別に必要ないと思うし、仮にあったら便利だとも思うが。コンパイル時間が増えるのは許容できない
「Rustのアンチ側」なんて言い出すクズどもとまともな話なんて出来るわけない。
こんな奴らばっかり増やしてもRustの普及を妨げてると思うんだけど?

298 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:07:17.52 ID:3bYGoG0a.net]
スレ読んだけど
汚染でも何でもなくRust特有の問題でもないことをRustは汚染だと延々と叩いてるのは異常に感じた

299 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:08:46.62 ID:sJroCDvH.net]
今のところUFCSがある言語と外部のデータ型に対してメソッドを追加できない言語、メソッドを追加できる言語とできない言語のそれぞれは前者が勝手で勝るけど、前者同士では好みとか実現手法の違い程度の話のように感じてる
UFCSも結局モジュール単位で環境が分離されている事が殆どのようだし、どちらかじゃないとできない事も、どちらかだと発生する致命的な不都合も見えてこない
一見機能が不要に見えても、その採用理由が他の要素に起因してたりもするだろうし、その辺私はUFCS採用言語のことを詳しく知らないのでなんとも言えないな

300 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:09:37.23 ID:9QpKK4x8.net]
>>292
C++での議論では当然そういう案含めていろいろ提案されたけど、結局どれも一長一短で委員会での合意には至らなかったみたい
一人で作ってる言語なら作者の好みでサクッと入れられちゃうんだろうけどね

301 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:11:19.66 ID:DhJCopPa.net]
汚染と言わなくても、Rustがuseで似たようなメソッドがたくさん出てくるのは本当でしょ、UFCSにしてもそれはイコールで何ら変わらんわ
なんでこいつらマトモに話すら出来ないの?コーディング能力を持ってるんだろうけど、コミュニケーション能力はゼロに近い

302 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:11:26.99 ID:VVkmIp+6.net]
メソッドが動詞ならUFCSでは関係が逆になるんだよね
英語圏の人はどう思ってるんだろ

303 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:15:08.57 ID:Xt13Fv0a.net]
>>298
OSV言語の自然言語に近くなるから、オブジェクトが先に来るのは利点として受け止められてる。でも所詮はシンタックスシュガーの何者でもない

304 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:16:12.91 ID:TDNc/5Gc.net]
>>297
> 似たようなメソッドがたくさん出てくる

そこ意味がわからない
似たようなメソッドがたくさんとは何?

305 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:19:11.55 ID:VVkmIp+6.net]
C#にも拡張メソッドと言う名前でほぼ同じ機能が使えるけどそっちは拡張メソッドオンリーで使う前提で作られてる



306 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:23:57.49 ID:WnCW0ZaS.net]
似たような機能はいろんな言語にあるよね

307 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:31:31.86 ID:5qzMTDWR.net]
>>299
英語はOSVじゃなくSVOな?OSVになることもあるけど、そして世界の自然言語の主流は日本語と同じくSOVが40%
参考としてスター・ウォーズのジェダイ・マスター:ヨーダは、このOSV語順で話す。

308 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:34:58.90 ID:VVkmIp+6.net]
var s=copy(section);
paste(s);
みたいなのがあって

これを
paste(copy(section)):
とするより
section.copy().paste();
のほうが受け入れ易いってことだよね?

309 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:42:40.14 ID:pOd33Olh.net]
>>304
最初からメソッドとして書けば済む

310 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:05:29.73 ID:8yiD5uPx.net]
Methods! You will be written first, but many are not.

311 名前:デフォルトの名無しさん [2022/04/25(月) 19:07:02.73 ID:tSjXYtJn.net]
>>305
ところがどっこい var sのsはメソッドを生やせないstring型だ

常にメソッドを生やせるとは限らないし、元のクラスに必要以上の仕事を増やさないためにから拡張メソッドという概念があるんだよ

312 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:15:14.85 ID:VVkmIp+6.net]
スコープでuse出来て局所ごとにsection.print()の意味が変わる場合も便利だと感じる?

313 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:28:32.34 ID:WnCW0ZaS.net]
メソッドじゃなくて関数や変数でも、スコープごとに意味が変わりうるのは当然のこと

314 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:29:22.19 ID:9QpKK4x8.net]
拡張メソッドが欲しいのはまぁ分かるんだけど
UFCSまでいくと普通の関数のつもりが意図せずメソッド呼び出しできてしまう、みたいなデメリットの方が大きくなる気がするなぁ

315 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:33:06.80 ID:m1bq2XCo.net]
なぜRustが叩かれていたのかようやく理解できた
Rustでは基本の型にも外部の型にもメソッドを追加できるわけか
そのためメソッドを自由に追加できない言語の人が逆恨みで叩いていたと



316 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:35:49.53 ID:VVkmIp+6.net]
"test".print();が局所ごとに意味が変わると気持ち悪い

317 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:37:37.15 ID:3TQSNLUR.net]
>>266
Nimだと「メソッド名空間」自体が無いから、そんな議論をするのは無駄だね。

318 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:43:06.53 ID:DNOUKEV3.net]
>>312
え?logging.rsに"test".print();と書いてあるのと、printer.rsに"test".print();で意味が変わるのはなんも関係無くねえ?
つーか普通に関数でprint("test")だのsaveだの、getだの散々やってるじゃん。気持ち(悪い)の問題なんだろうけどさ

319 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:46:57.59 ID:3TQSNLUR.net]
>>311
それはNimも同様。
むしろNimの方がメソッドと関数を統一しているから(記法が違うだけ)、より自然に拡張できる。

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

こういうアホなことを言う狂信者ばかりだからだよ。

320 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:56:02.27 ID:W8ZZnspt.net]
RustのメソッドとかC++のメンバ関数のような特定の型だったりトレイトに束縛された関数のようなものがNimにはなくて、自由関数だけがある。
だからNimからUFCSをとったらC言語のように全ての関数をfoo(x, y, z)って書かないといけなくなっちゃう。
UFCSがあるおかげでどんな関数もx.f(y,z)だったりf(x, y, z)とか自由に書ける。
UFCSで関数がメソッドになるとプライベート変数/メソッドにアクセスできちゃうって勘違いしている人がいるかもしれないけどNimではそれは起きない。
C++のメンバ変数に相当するものや関数のアクセス権はモジュール外にそれを公開するかしないかのどちらかしかない。

321 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:57:52.87 ID:s4irQrJG.net]
>>315
Nimでも自由にメソッドを追加できるならばUFCS必要なくね??

322 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:59:13.38 ID:9XvEg3RG.net]
>>314
逆にprint_to_printer()とか print_to_consoleとか書いてあったら発狂するかもしれんわ
一番使うdebug_assert_eqとかヤメテほしい・・・、あと帰ってくる正式な型名が異様に長くなるのもC++の悪いところを引き継い出るような感じがする

323 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:05:33.97 ID:4uqCvk4R.net]
>>316
自由関数しかないNimは関数名空間が常に汚染されてしまうのね
普通のプログラミング言語ならばメソッド名として名前空間が分離されるのよ

324 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:06:59.77 ID:0BSsoGgf.net]
std::iter::emptyは名前空間を汚染するので使ってはいけません

アホか

325 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:09:08.19 ID:9XvEg3RG.net]
>>319
1つも調べもせんのな、自由関数だけじゃなくmethodもある。つーかおまえRust使うの止めてJavaやってろ、まじ迷惑



326 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:09:29.47 ID:VVkmIp+6.net]
グローバル関数じゃなくて?

327 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:10:31.91 ID:3TQSNLUR.net]
>>317
>>316にまとまっているよ。
メソッドが無くて、ただの記法の違いでしか無いからこそUFCSのメリットを最大限享受できる。

>>319
メソッド名を関数名から「常に」分離するメリットは?
関数自体をモジュールとかで分離して管理できればいいんじゃないのかね。

328 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:13:13.14 ID:xcxOK/uY.net]
やはり逆恨みで無関係なRust叩きやってる説が正しいかもしれん
Rustが無関係な状況でも>>321のように唐突にRustを出してくる

329 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:21:15.47 ID:51f23UG1.net]
逆恨みだの、攻撃だの、ずーーとこんな事言ってる奴いるけど完全なびょーきだと思う。名前空間が汚染されないという言語はお前の中で具体的に何?

330 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:21:37.03 ID:5gWGwAdH.net]
もうケンカしてる人らが最強次世代言語作れば

331 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:23:23.46 ID:PqJDEf6z.net]
逆恨みとか、自我と言語が密結合していない限り出ない言葉だよな
用途目的に応じて言語を使い分ければ良いのに

つまりそういうことだ

332 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:26:24.56 ID:bFDhmU1p.net]
おそらくNimの人がずっとRustを仮想敵にでもしてるのかもな
だからNimに不利っぽい書き込みがあるとRustの話がどこにもなくても無意識にRustを叩いてしまってるのかもな

333 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:26:38.57 ID:WnCW0ZaS.net]
ローカルのスコープしか影響しないのに、わざわさわ汚染とか言うの意味わからん
紛らわしいからやめろ

334 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:27:48.66 ID:WnCW0ZaS.net]
> わざわさわ汚染
タイポしてた
わざわざ汚染

335 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:29:25.14 ID:3QooPOGs.net]
例えば新しい言語が出来て人気を博したら、RustにもNimにもDにもSwiftなどにも存在しない機能や、シンタックスシュガーになるわけで
それを指摘したら、逆恨みだの、攻撃だの、アンチだの言いだしたらこのスレはマジ必要ない。
なんで無いのか考察を言ったり、コンパイル時間への影響とか、現行の構文が大きく変わってしまうとかそういうのを述べるならまだしも
UFCSが汚染だとキチガイのように書いてる。マジこんなやつ迷惑だろw



336 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:34:31.02 ID:fIAeID6q.net]
このスレを「汚染」で検索してそれら書き込みを見るとプログラミング言語名の最多登場がRust
なぜRustを汚染と叩く書き込みが多いのか不思議

337 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:35:18.96 ID:PqJDEf6z.net]
>>228とか>>235みたいな、主観と思い込みによる断定から荒れ始めたんだよな
そこからおそらく自己正当化のために独自の「汚染」を定義
誰にも賛同されないと逆恨みだの攻撃だの仮想敵だの

338 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:38:37.94 ID:kDkXz7wX.net]
>>333
それはもちろん同感だが
同時に発生しているRust汚染叩きは何なのだろう?

339 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:48:57.83 ID:VVkmIp+6.net]
rustは錆なんだから汚染ぐらいでどうこう言うのもちょっと

340 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:54:23.26 ID:GhM9BPSc.net]
Rustに対してとにかく言いがかりつけてるアレな人が前からおるやん
今回もそれだろ
有名人が叩かれる有名税みたいなもんや

341 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:10:54 ID:EYilt5eX.net]
いーや一番言いがかりで汚染されてるのはこんスレとロシアだと思いますわ。反枠&陰謀論!病院池

342 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:27:42.00 ID:l9I/osPN.net]
有名税か
逆恨みやストレス発散でバッシングする連中多いもんな

343 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:47:49 ID:iMu4Hfqd.net]
>>332 >>334
事実に基づかない嘘で被害者面するのやめるべきだな。
このスレで「汚染している」と難癖つけられているのはUFCSだろ。次点でNim。Rustはあったっけ? []
[ここ壊れてます]

345 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:58:12 ID:Hqs3zbo6.net]
ケンカはやめて><



346 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:11:48.53 ID:EH/Dcnf1.net]
ふたりを とめて〜

347 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:17:54.71 ID:PqJDEf6z.net]
有名税とか言う前にまずDとNimとUFCSを無理筋でこき下ろした件に対するごめんなさいは?

348 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:34:36.42 ID:BiA6VIMH.net]
あと無関係な争いに巻き込まれたRustも可哀想

349 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:13:51.83 ID:W8ZZnspt.net]
調べたところRustにもUFCSがあるようだけど。
https://doc.rust-lang.org/1.30.0/book/first-edition/ufcs.html

350 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:32:05.72 ID:PJo8eL2A.net]
それ古い版のthe bookだし>>224の条件付きだからUFCSってあるってだけだよ

351 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:34:40.87 ID:PJo8eL2A.net]
途中送信した
条件付きだからこれをUFCSと呼ぶのは誤用ってことで今は使ってないよ(>>284

352 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:52:22 ID:+dAy6ibx.net]
>>344
もちろんRustにもあるけど微妙に違うので今はUFCSとは呼ばなくなった
その微妙な差というのは既に>>245で書いたように

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

とメソッド形式でなく関数形式の時に型名等の前置パスで常に制限される

353 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 00:24:29.22 ID:HRWQKuSX.net]
ほんのわずかだけ違うとはいえ
D、Nim、RustといったUFCS対応言語は2通りの記述方法が出来て便利で良いですよね

354 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 07:04:16.95 ID:Y0YWAbka.net]
Goってマジで終わりかけてる?
使う価値あんまり感じなかったのは事実だけどw

355 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 07:06:24.67 ID:nY6A0xRe.net]
バカヤロー、まだ始まっちゃいねぇよ



356 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 09:33:09.74 ID:N3l9Q94/.net]
Goジェネリクスの実装とパフォーマンスについて
https://www.infoq.com/jp/news/2022/04/go-generics-performance/

357 名前:デフォルトの名無しさん [2022/04/26(火) 10:53:42 ID:jf0A6U3h.net]
>>260
ちげーよ。
記法の問題。

358 名前:デフォルトの名無しさん [2022/04/26(火) 11:05:30 ID:jf0A6U3h.net]
>>295
これが正しい

359 名前:デフォルトの名無しさん [2022/04/26(火) 11:06:06.60 ID:jf0A6U3h.net]
>>295
これが正しい

360 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 12:45:23.73 ID:AcQNW5IU.net]
>>295
(UFCS方式を含めて)メソッドを追加できない次世代言語が存在するのですか?

361 名前:デフォルトの名無しさん [2022/04/26(火) 13:27:25.51 ID:jf0A6U3h.net]
頭痛くて寒気すると思ったら熱あったわ。

362 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 13:49:04 ID:US6qo08V.net]
>>355
Rust、Kotlin、Swift、C#は拡張できるし、メソッド形式呼び出しがあるモダン言語なら必須機能っぽいけどね

363 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 14:12:26 ID:DbGjJV4L.net]
最後にGoの悪口に収束するのは、おまいらの悪い癖だと思う

>>356
現代日本の片づけのキモはゴミ在庫の管理だ。 これはコンマリも言ってない..
pptppc2 「キモ」「ゴミ」とかいうワードが真っ先に出てくると身構えてしまう。

364 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 14:18:27 ID:jETt/1T7.net]
>>357
スレタイにある言語だと
TypeScriptもJavaScriptだからメソッド追加可能
残るGoは?

365 名前:デフォルトの名無しさん [2022/04/27(水) 10:39:21.30 ID:8eBizIGw.net]
nimググってみたけどけっこう良さそうな言語じゃん。



366 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 09:51:11.18 ID:nibPTxk+.net]
Go開発者の92%が「Go言語に満足」
https://mag.osdn.jp/22/04/27/135700

367 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:41:20 ID:nnpkzAOE.net]
>>360
自演乙

368 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:41:58 ID:nnpkzAOE.net]
>>361
ガイジの中のガイジ煮詰めたデータに何か意味あるんか?

369 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:48:23 ID:HTMH1VGQ.net]
なんかの統計でphpも満足度が高かったような

370 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:57:31.13 ID:izq7WstO.net]
Nimは100%ですよ

371 名前:デフォルトの名無しさん [2022/04/29(金) 12:04:51.33 ID:okzbgZOG.net]
>>362
何いちゃもんつけてんだ。
nimは使ったことすらねーわ。ググっただけだ。
一応このスレタイトルのtypescriptとgoは使ってる。

372 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 12:06:43.44 ID:0R1ha4qI.net]
サーチフレンドリな名前ではある

373 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 14:28:08.64 ID:bzqD+Da/.net]
生存者バイアスとしか…

374 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 15:45:25.25 ID:nnpkzAOE.net]
phpは障害者雇用枠だから

375 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:23:50.76 ID:fXQBWCQI.net]
前にも書いたけど学校のサイトとかをワードプレスで運用してるところ結構あるんだよね
他の言語では先生達に書き換えて運用とか無理だと思う

PHPはそういう用途に向いてる
絶対そこはRustとかGoにはならない



376 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:44:01.30 ID:Crnvpu67.net]
言語と人を比較して言うのだが
PHPを批判するような子は
たいていPHP以下の存在
そして必ずPHPの作者以下の技量

377 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:58:05.95 ID:FaPJ+Yjv.net]
たぶんPHPが存在してなければ、また誰かが気軽にwebサイトをさらっとかけるスクリプト言語をRustのようなシステムプログラミング言語で開発していただろう
そしてそれはPHPのようなものになるのだろうね

378 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 21:18:48.98 ID:nnpkzAOE.net]
たしかにPHPが障害者を吸ってくれたおかげで助かってるところはあるかも
ITの汚物入れ、人類最底辺のクズ、エタヒニン・罪人
それがPHPoor

379 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 21:24:48.98 ID:cvAz2ZRh.net]
Reasonってどうですか?

https://reasonml.github.io/

380 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:15:53.12 ID:K6x/4GwT.net]
こんスレってなぜかJuliaの話、完全スルーするよな。Go?Rust?Zig?Nim?時代遅れのローエンド言語や

381 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:27:03.12 ID:gkaMUNbq.net]
>>370
GoとPHP、どっちも使わない人からしたら大して変わらない説。

382 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:01.94 ID:awtM9gjL.net]
>>373
よっぽど根に持ってるんだな。
ちょっと病的な感じ。

383 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:48:27.27 ID:6EgfuGip.net]
ローエンド言語なんて言葉ある?
ローレベル言語ならわかるけど

384 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:57:18.29 ID:IOMhb3u+.net]
>>375
単に知られてないから話題に反応できないだけだと思う
良いところ教えてよ

385 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:02:55.81 ID:kzHHMnSC.net]
Julia、せっかく新規言語で型付けと動的性のバランスを取れる立ち位置にあったのに、抽象-具象の継承ベースの型を採用した部分が個人的にジェネリクスと噛み合いが悪いと思っていて悲しい
1-originとかは正直瑣末事だと思ってる分そこだけが本当に合わない

一応最新バージョンだとパラメト



386 名前:潟bクな抽象型とそのパラメータに抽象型を使えるし、その部分型をパラメータにも抽象型コンストラクタ(?)にも適用できるから実用上十分なんだと思うが []
[ここ壊れてます]

387 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:13:16.89 ID:6EgfuGip.net]
JuliaのユーザーってPythonは当然として、他にはMATLABやRが競合になるようなコミュニティだから、
このスレとはまるで層が違うんじゃないかな
MATLABやRの話も全く出ないし

388 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:27:24.69 ID:awtM9gjL.net]
Juliaって計算科学や数値解析に特化した、R言語みたいなものでしょ?

389 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:34:47.33 ID:fFwxA39Q.net]
Julia厨はクソみたいな押し付けするくらいなら
自分で他言語のライブラリの移植でもした方がよっぽど使ってもらえるという当たり前のことすら理解してないからな。

390 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:47:45.01 ID:dUco7/4p.net]
>>380
その継承が中途半端なことしかできないし
継承を採用したことも失敗してるし
Juliaはあかんね

391 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:03:38.50 ID:UesQSoYk.net]
継承は基底クラスと派生クラスの役割(責務)の分担が非常に難しいです。
よほど上手く設計しないと、すぐに「スパゲッティ・オブジェクト・プログラム」ができあがります。
継承は実装の再利用という面があるので、得てしてコピペの代わりに使われがちでもあります。
既存のあるクラスの振る舞いをちょっとだけ変えたいから継承を使おうってやってしまうと、
派生クラスのソースを見ただけでは何をやってるのか全くわからない最悪のコードになります。
まだコピペのほうがマシなことも。

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

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

その一方で、継承でないと絶対にダメという用途もあんまりないのです。
継承を一律禁止してしまってもそんなに困らないところがあります。
そのため最近ではGoやRustなど言語の仕様として継承(インタフェースではない実装を持つクラスの継承)を禁止している言語が増えているという有り様です。

392 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:45:40.28 ID:JnqjPuKd.net]
今北産業

393 名前:デフォルトの名無しさん [2022/04/30(土) 00:48:57.89 ID:LJ+fWFU3.net]
長い。そして間違っている。
Rustは代わりにtraitで継承を表現できるが、Goは表現する方法はなく、似たことをするとデータ構造を弄くることになる。
そもそも継承においてはデータ構造と実装の併合が問題なので、あとは察してください。

394 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:53:39.80 ID:03/a5/ox.net]
じゃあ継承使わないでプラグイン機構使いたいときはどうすんの?

395 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:55:27.41 ID:xinPqoeI.net]
プラグイン機構とだけ言われても意味が一意じゃないと思うけど
mixinのことかいな?



396 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:56:29.80 ID:5YZgJnSQ.net]
Composition over inheritanceは30年近くも前のGoFですでに広まってるのになぜ次世代言語スレで話題になるんだろう

397 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:03:52.06 ID:xinPqoeI.net]
ていうかJuliaの型システム知らなかったから簡単に調べたけど具象型はsupertypeになれないとか書いてあるん

398 名前:ですが
Juliaでもいわゆる継承の問題点はちゃんと回避されているんではないですかね
[]
[ここ壊れてます]

399 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:17:16.86 ID:mZJBhlPe.net]
>>391
継承とジェネリクスとの相性の悪さが問題なのではないかな

400 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:19:25.03 ID:onyz3Xxm.net]
>>390
その後に継承のデメリットの方が多いと分かってきたため
そのデメリットをどう回避するかが各言語の主題となっている

401 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:04:17.75 ID:LJ+fWFU3.net]
>>390
知った気になって語りやすい話題だからだろう。

実装の拡張を肯定しつつデータ構造を直接拡張しないところが重要。
それを字面だけ解釈して、結局は妥協でデータ構造が暗黙に継承するような、先進言語の形だけ真似した言語もあるくらいだからね。

402 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:17:19.37 ID:Z7DxbzXv.net]
>>387
Goだけがどの話題でも機能不足との結論になっていて悲しいです

403 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:24:06.80 ID:iqR9XqAh.net]
クラス継承しか知らないプログラマーは何でも継承で表現しようとするために失敗しているわけだから
継承のないプログラミング言語で修行させればそこは学習できるはずだ

404 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 03:12:19.75 ID:TIk5gKqZ.net]
実際言うほど継承使わないからなぁ
共通的な部分を継承で済ます場合はあるけど
データもその共通部分がはっきりしているなら親クラスで定義するけど
ただフレームワークを使ってたらコントローラはControllerから継承みたいなのはどうしてもあるが

405 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 03:18:56.57 ID:QdZCFn9O.net]
>>397
そこは移譲ではダメなの?



406 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 05:30:17.12 ID:ES8eyWNp.net]
typescriptは不要だな。jscript .netといっしょで空虚だ。

407 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:27:54.46 ID:UilcMqZz.net]
マイクロソフト、JavaScriptに型宣言を追加しつつトランスパイラ不要の「Types as Comments」をJavaScript仕様策定会議のTC39に提案へ
https://www.publickey1.jp/blog/22/javascripttypes_as_commentsjavascripttc39.html

408 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 11:29:38.19 ID:8xaJAFlZ.net]
継承自体は悪くなくて設計が悪い
実際継承使わないパターンが多くなったのでそれもどうでもいい

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

そしてどんどん学習時間取られてみんな疲弊していく

409 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 11:37:07.51 ID:8xaJAFlZ.net]
委譲元のクラスが単体では問題なく動くのに組み合わせるとテストを通らない

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

interfaceに必要な要素を追加…などできずデフォルト実装を追加
こうしてゴミが出来上がる

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

オブジェクトの内側のことは継承でエレガントに実現しておk(嫌いなら使わなくてもおk)
外側のことは地道にpattern matchingで泥臭く頑張る
これでいいと思うね

411 名前:デフォルトの名無しさん mailto:age [2022/05/01(日) 14:26:43.52 ID:TYpzgypv.net]
キチガイ隔離すれの本領発揮

412 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:30:58.63 ID:1sKYDrOo.net]
RustもJuliaやGoみたいに廃れて消えていく気がしている。
https://qiita.com/AKKYM/items/78c04840bc72d9db834d

413 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:37:27.28 ID:KjQtFKQ9.net]
ポエムすぎ。

414 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:13:59 ID:KIr6c+FR.net]
このRustと同じ分類となる、更に便利な言語が登場しないと、Rustを置き換えることが出来ないだろう

> プログラミング言語は以下の3つに分類される
> CとC++ ←『省メモリ高速』だが、「メモリ解放でミスると危険」
> GC言語 ←『省メモリ高速』ではないが、「メモリ解放は自動で気にしなくていい」
> Rust ←『省メモリ高速』だが、「メモリ解放は自動で気にしなくていい」

415 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:14:52 ID:1l9w5D7n.net]
>>405
妄想でつか?



416 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:23:49.61 ID:Z7VnuZFm.net]
JuliaはFORTRANを駆逐できましたか?

417 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 22:23:58.30 ID:BE/fpmM/.net]
https://mun-lang.org/
Mun触ったことのある人いる?
ぱっと見GCつきのrustみたいに見える

418 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 23:42:24.67 ID:/piMIc6O.net]
>>410
文法や基本型はRustと同じっぽいね
ドキュメントを見る限りでは非常に小さいサブセットで開発途上なのかよくわからない

419 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 12:37:31 ID:LXFM7yFt.net]
>>407
その分類、そもそもニーズが大きくない気がするし、
このまま競合は現れずに行きそうだよね。

420 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 13:23:34.89 ID:2hhO4/Db.net]
>>410

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

こういうこと?

421 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 13:56:24.42 ID:nH+No7UX.net]
VlangはGC無かったと思った

422 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 14:17:19 ID:2hhO4/Db.net]
>>414
ほんとだ、ありがとう

423 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 16:08:02 ID:btF26FKd.net]
>>412
重視されているからこそ
C/C++からRustへの移行(安全化)だけでなく
各種GC言語からRustへの移行(高速化)が起きている現実

424 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 16:39:23 ID:zwMG9j3G.net]
>>416
ないわ~
pythonからRustってありえないよ

425 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 17:38:01.22 ID:/8s7agyt.net]
NumPy, SciPyのライブラリの実装FORTRANをCにベタ移植して更にC++でラップしたような物ばかりだったけどRsutへの移行は順調に進んでいますか?w



426 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:06:45.99 ID:+Vpltyoe.net]
それらPythonの使い方は単なる皮言語だからな
次世代言語スレで皮言語を持ち出す時点で頭おかしい

427 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:19:24.75 ID:cySxIzYo.net]
>>418
どの分野でもどの言語でも同じだけど
他の言語に移行するのは新たな物(仕組み・システム)を作る時だよ
そのまま移植は非常にレアケース
例えば古すぎるたり性能面で難があるけどアルゴリズムだけだから再設計せずそのまま他言語へ移植など

428 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:33:01.46 ID:LXFM7yFt.net]
>>416
GCあり言語では、データ構造は気にしても、
メモリ操作を意識している人は、少数じゃない?
だから置き換えは、結構ハードル高いと思うけれど。

>>417
Pythonは、グルー言語でもあるから、
単純な置き換えは、そうそう進まなさそうだよね。

429 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:40:21.71 ID:YtZJWkql.net]
>>421
メモリ操作とは具体的になあに?
めったにない特殊なケースは除くとしてハードルが高いことなんて無いんじゃないかしら

430 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:48:20.40 ID:/8s7agyt.net]
>>422
低レイヤー言語だとメモリ読む前にキャッシュしたりアライメント揃えたりするでしょ

431 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:52:18.84 ID:qXzB3q2R.net]
>>423
何それ?
よほど特殊なことをしない限りそんなコードを書くことはないよ
C言語でもアライメント気にせずに変数に値が入るし変数そのものがキャッシュだし

432 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 18:55:15.58 ID:/8s7agyt.net]
>>424


433 名前:デフォルトの名無しさん [2022/05/02(月) 19:01:36.90 ID:srM4fb0r.net]
>>424
他人のこさえたライブラリと構造体を受渡するときなんかは意識せざるを得んよな。
コレはレアケース?

434 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:06:45.80 ID:TE2kIXA8.net]
>>426
それはFFIと言って低レイヤー言語だけの問題ではない
PythonでもJavaScriptでもある

元の話題
>>423
> 低レイヤー言語だとメモリ読む前にキャッシュしたりアライメント揃えたりするでしょ

435 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:16:29.24 ID:nqnbrNKO.net]
例えばSIMD命令使うのが "よほど特殊なこと" に該当するかどうかという話?



436 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:29:07.60 ID:TE2kIXA8.net]
この流れでFFIもSIMDも関係ないと思います
GCあり言語の普通のプログラムをGCなし言語へ置き換える話をしています

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

>>422
> メモリ操作とは具体的になあに?
> めったにない特殊なケースは除くとしてハードルが高いことなんて無いんじゃないかしら

437 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:31:38.61 ID:LXFM7yFt.net]
メモリ操作って言い方が曖昧なら、スタックとヒープを意識するかしないかって言い方ならどう?

GCあり言語でスタックとヒープを意識するような事ってあまり無いと思うんどけど。

438 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:44:24.10 ID:xCWuNsuo.net]
>>430
GCなし言語でどうしてもスタックとヒープを意識しないとプログラミングできないことってある??

439 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:03:38.83 ID:nqnbrNKO.net]
>>431
ありなしで言ったらあるでしょ
性能意識するコードとか

440 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:09:21.38 ID:9bp9MTNx.net]
>>432
それは性能をよっぽど気にする特殊な場合だけでしかもその中の一部のコードだけやろ
それ以外は関係ないやん

441 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:41:15.68 ID:hiZvMXbQ.net]
言うほど低レイヤーコード書いてるやつはここにはおらん。
だから話がおかしな方向に行く。

442 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:50:55.80 ID:cNSfGfye.net]
>>434
GCあり言語のコードをGCなし言語にする話だから
低レイヤーコードなんて一切関係ない

443 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 22:55:54 ID:54UIx2Ed.net]
スタックは普通に意識するでしょう、末尾最適化されてないナンチャッテ意識高い系の再帰呼び出しとか直すけど・・・
GCアリ言語でも無しでも、スタックサイズは普通に意識する。
ヒープは言うほどRustは組み込みに使わないし、トヨタが使うというてもそれはメモリコンパクションのあるようなOSが載ってる場合だから
本当の組み込みじゃないし、でもアロケーターが64byte-4kでもVec::with_capacity(size);とか普通にIO系の処理では意識するでしょ

444 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:14:26.49 ID:zFIpg6hX.net]
>>436
Rustはヒープ無しでも動作するからヒープを意識しなくていいのはその通りだが
ヒープが有る場合でもVec::with_capacity(size);等は動作最適化を手動でする時のみ必要であって、
プログラマーは何もしなくても全自動でcapacity拡張してくれるから意識しなくてもよい

445 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:25:13.41 ID:nqnbrNKO.net]
>>433
そもそもの質問が「ヒープ意識しないとプログラムできないことってある?」だから、反論になってないよ
頻度は問題にしてなくて有無の話だから



446 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:32:26.49 ID:uvbh46KP.net]
>>438
それは君の方がおかしい
今回のこの文脈ではそこは意識する必要がない

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

ベクタの使用領域の大きさはどちらの言語でも自動的に拡張してくれるのに任せればよいから意識しなくてよい

447 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:45:32.15 ID:2hhO4/Db.net]
GCありの言語で循環参照するようなデータの持ち方をしまくってるようなコードだったりすると、
そのまま移植できないだろうし面倒かな?
場合によってはRustでいうArenaみたいなのまで持ち出して再設計しないといけなそう

移植なんてしたことないしあくまでも想像だけど

448 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 00:46:48 ID:Hze7UEQ+.net]
>>437
”Rustはヒープ無しでも動作する”、不正確でダウトといっても良い。”Box<T>を使わない場合、Rustは最小のメモリで動作する”
一般的に最小のメモリとはプログラムをメインメモリにロードした領域であり、それ以外にも、ヒープ解析すればRustの場合は、
Config structなどが多数メモリにロードされていることが分かります。後半の文は意味不明。

449 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 00:49:19 ID:owaZy9f2.net]
GCあり言語って一絡げにできるほど似通ってるんだっけ

450 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 01:10:00 ID:Fo6zlgca.net]
>>441
知識が浅すぎる
Rustはヒープ無しでも動作する、で正しい
そのためRustの標準コアライブラリcore::はヒープ無しで動作するように作られている
std::のうちcore::以外の部分はヒープを用いており明確に両者は区別されている

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

意味不明
Box<T>はヒープを使う型の一つに過ぎない
それ以降の記述は全く意味不明

451 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:44:39.08 ID:x2jyG4Fk.net]
まじきち隔離所、顔真っ赤になってww

452 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:45:30.07 ID:fvC5V6zC.net]
まーたRust信者がスレハイジャックしてる

453 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:51:30.24 ID:K+UwgLRo.net]
ベアメタル等OSなしでも動作しないといけないため
Rustはヒープを前提とせずに動くよう設計されている

454 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 04:29:19.13 ID:5MBm6VS9.net]
>>444
本当はスレ民のことが気になって仕方ないだろ?
隠しても無駄www

455 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:00:49.14 ID:iYuWu8Ht.net]
なぜせっかくRustで作られたブラウザを除外するかね?

「NHKプラス」、「Firefox」での視聴が不可能に 5月23日から推奨ブラウザを「Microsoft Edge」「Google Chrome」「Safari」に限定 [孤高の旅人★]
https://asahi.5ch.net/test/read.cgi/newsplus/1651490664/



456 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:33:11.84 ID:fvC5V6zC.net]
>>448
そのどれかのブラウザがインストールされてない端末って何がある?
Linuxと組み込みくらい?

457 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 08:05:32.71 ID:JBdnv4nv.net]
「Firefoxはバグ

458 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 08:06:08.35 ID:JBdnv4nv.net]
訂正:firefoxはバグが多いの?

459 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 10:17:41.36 ID:vk1zxqeV.net]
Chromeより軽くてFirefoxオススメ

460 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 11:37:27 ID:+GUXg/j9.net]
>>448
もし本当に視聴不可となったら技術力が無さすぎる
昔ならともかく今の時代にブラウザ依存なコードを書くのはダメなプログラマーの典型
視聴不可ではなく動作確認するブラウザの数を絞るなら理解できる

461 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 11:57:44.21 ID:TRGOwhZ/.net]
> 「Firefox」など、上記3ブラウザ以外での動作はもともと確認しておらず、推奨ブラウザには加えていなかったという。
> 「5月23日以降に予定している設備更新に伴い、Firefoxでは動画が完全に再生できなくなる

どういう設備更新なんだろうな・・・
WebKit系じゃないと使えない仕組みがあるのか

462 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:01:19.67 ID:WbhGI2Ja.net]
今どきはブラウザ依存な書き方する方が面倒だろう。普通にテストしてないだけでは。

463 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:02:22.58 ID:WbhGI2Ja.net]
>>454
あ、本当に動かなくなるのか。

464 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:10:09.97 ID:DDJgB2x8.net]
chromiumにしか実装されていない独自拡張機能に依存したAPIに手を出したとか??
でもSafariで動くなら違うか
Firefoxでだけ動かないコードなんて可能なのか??

465 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:29:47.29 ID:wY2/8p8r.net]
Chromiumは現代のIE6ですから



466 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:49:05.47 ID:owaZy9f2.net]
そういえばchromeにrust使う話ってどうなったんだ?

467 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:12:46.20 ID:iYuWu8Ht.net]
>>459
ああ、ごめん。さぼってたわw

468 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:19:05.53 ID:fvC5V6zC.net]
たしかFirefoxもまだ全部はRustに治せてないんだろ

469 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:33:27.34 ID:5FiUhjhg.net]
>>461
君は何らかの大きなシステム開発に関わったことがないのかね?
どんな言語と言語の場合でも一気にやることは不可能かつムダ
新規部分や改修部分に絞って手を付けていく

470 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:16:20.57 ID:fvC5V6zC.net]
>>462
なるほど
だからよそと違ってバグまみれとか言われるんやなw

471 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:22:09.94 ID:jGM9XRro.net]
Chromeの方がセキュリティバグ多いよな
頻繁にバージョンアップしろと言ってくる

472 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 19:26:52.80 ID:mmwxiGlB.net]
>>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の脆弱性がこれだけのはずが無く、脆弱性報告数=危険なブラウザとははっきり言えない

473 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 19:52:07.53 ID:htgGZwEX.net]
途中まで数字で語ってるのに最後だけ願望になっててワロタ

474 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 21:47:24.52 ID:8rho1RVn.net]
go-tour-ko.appspot
.com

475 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 01:24:23.06 ID:e3BB3pKX.net]
>>466
Appleに報告した脆弱性、数カ月放置の後に「現在、調査中です」の返答
https://appleinsider.com/articles/21/09/27/apple-still-investigating-unpatched-security-flaws-in-ios-15



476 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 09:45:52.65 ID:M81p8ixH.net]
木を見て森を見ずという言葉を考えた昔の人はいいセンスしてる

477 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 13:55:59.94 ID:R5uUYm15.net]
Appleって莫大な利益を何に消費しているのだろうね

478 名前:デフォルトの名無しさん [2022/05/05(木) 17:00:01.71 ID:SGcHNlDo.net]
>>448
そもそもNHKは見ないのでどうでも良い。

479 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:17:07.87 ID:C9QWuoSO.net]
>>470
そんなこと気にして何になるの?

480 名前:デフォルトの名無しさん [2022/05/05(木) 19:26:31.90 ID:kRCOTufr.net]
>>472
ウィグル弾圧に使われてる可能性が高い。

481 名前:デフォルトの名無しさん [2022/05/05(木) 19:30:55.61 ID:kRCOTufr.net]
Rust厨がウザいからだろ。

482 名前:デフォルトの名無しさん [2022/05/05(木) 19:32:25.99 ID:kRCOTufr.net]
いまどきウェブ見てて落ちるブラウザなんてファイアフォックスくらいだし、そこらへんは忠実にネスケ以来の伝統を受け継いでて驚く。

483 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:35:07.40 ID:Z9g54GsT.net]
トリビア:Firefoxユーザーはレベルが高いの致命的なバグがあっても自分で治して使って

484 名前:「る []
[ここ壊れてます]

485 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:13:12.39 ID:3l2hzI76.net]
>>475
ここ数年間の常用者だがFirefoxが落ちたことがない
もしデマカセを言っているのでないのならばどういう状況で落ちたのか語ってほしい



486 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:34:46.36 ID:CLlK/Ylr.net]
かまちょかまちょ

487 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:13:15.17 ID:/HQ4632l.net]
>>475
Chromeは週一ぐらいで落ちる
IME変換中に間違えてファンクションキーを押すと落ちる

488 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:25:28.06 ID:i3pjo8Ig.net]
落ちるOSってありそう

489 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:27:55.65 ID:gPHNd8vO.net]
>>477
数か月前に頻繁にメモリ不足で落ちてた。タブがクラッシュする

490 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:55:22.29 ID:V626dp+O.net]
>>481
それメモリが少なすぎたとか
メモリを超える巨大なデータを読み込んだとか
無数にタブを開いたとかそういうオチだろ

491 名前:デフォルトの名無しさん [2022/05/05(木) 22:30:44.53 ID:VIM8YOLC.net]
逆に100兆個のタブを開いて落ちないブラウザってどれ?

492 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 22:35:06.99 ID:NMIyHyw2.net]
メモリ不足で落ちないブラウザもないと思います

493 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 04:53:59.90 ID:qTXbaZrR.net]
メモリ不足を、クラッシュせずに通知くらい【余裕】にできないと。

当たり前のこともできない。所詮現世人類の我々の技術力はそこまでということだ――

494 名前:デフォルトの名無しさん [2022/05/06(金) 06:06:43.53 ID:dyg36AcX.net]
>>477
Windowsでタブレットモードにしてると頻繁に落ちるな。

495 名前:デフォルトの名無しさん [2022/05/06(金) 06:07:47.49 ID:dyg36AcX.net]
落ちるというか、無限ループしてるっぽいんだよな。
入力を受け付けず、タスクマネージャで見るとCPUをぶん回してる。



496 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 06:15:30.69 ID:pLpPuHCg.net]
Linuxでは落ちないよ

497 名前:デフォルトの名無しさん [2022/05/06(金) 06:56:47.40 ID:dyg36AcX.net]
頻繁に落ちるのに、落ちないとか信者が言い張るのも、ネスケ以来の伝統だよな。

498 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 07:00:58.40 ID:eCfsRziE.net]
英語設定のLinuxだけど落ちないよ?
バグってるのはサイトかホストなのでは?

499 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 09:07:58 ID:PZ471HHG.net]
Windowsでここ何年か使ってるけれど、
特に気になる動作は無いけれどな。

Edgeの印刷で返ってこない方が辛い。

500 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 09:58:30.45 ID:+sslkA2r.net]
FireFoxで微妙に表示が崩れるとChromeだとちゃんと表示されるのか気になる
表示させてみて同じだとホッとして違ってたらがっかり

501 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 10:03:00.35 ID:szMyvzcx.net]
Safariが恨めしそうにこちらを見ている

502 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 20:38:44.58 ID:X0x/BBIp.net]
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氏は述べている。

503 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 20:53:04 ID:S0Cki9Rv.net]
>>494
競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使えるでしょ
エンジニア目線では特に対立関係にないから煽っても無意味だぞ

504 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 21:00:58 ID:DoAIqFb7.net]
競合ではなく両方利用
Goで不十分なところはRustで書いている
どこでもそうだよ

505 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:46:52.00 ID:TDei0tm5.net]
それができるんならCでいいじゃん



506 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 03:38:38.78 ID:I4A9nNIt.net]
理想の家族

父 40歳 海外へ単身赴任(死ぬまで)
母 35歳 息子に甘い
姉 17歳 弟に甘い
俺 44歳
妹 15歳 多感な時期 俺に反発しながらも。。?
猫 ウンチしない 抜け毛ない 俺の声かけに無視しない

507 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 08:39:54.21 ID:Hhyd/l4r.net]
>>495
そうだぞ。
競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使える、という体で話さないと嫌われるぞ。
それに、裁量権のない作業者の間では対立関係にないから煽っても無意味だぞ。

508 名前:デフォルトの名無しさん [2022/05/10(火) 20:07:58.34 ID:8UHmp6CE.net]
低レイヤーはRust
高レイヤーはGo

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

GoogleとMicrosoftがRustに注目しているのもOS開発の目的であってGoでOS開発作ろうとはならんでしょ

509 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:01:49.31 ID:mOdSHL41.net]
主張はわかるが、これはもしや片思いみたいなものではと見ている。

仮にGoユーザーの多くが低レイヤーにRustを使いたい結論だったとしても、
Rustユーザーの多くが高レイヤーにGoに使いたいという結論にはならない。
よってカップル不成立。

510 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:17:09.90 ID:5Ln2ZQb8.net]
例えばウェブサーバーサイドもRustで書いたほうが早い速いしな

511 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:25:40.62 ID:AAMxLs47.net]
低レイヤーのことは低レイヤーガールに聞けよ

512 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 22:34:17 ID:M/BIyD/S.net]
Goは良くも悪くもCっぽくって人間が気をつけて書かないといけない部分が多いんだよな
一度Rustに慣れてしまうと、Goで隅々まで気を使うのが面倒くさくなってしまう
もちろん既存のGoプロジェクトはGoのまま書くけど、新規ならなるべくRustにしたくはなるな

513 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 22:37:05 ID:1A7PmF6X.net]
LinusはgitをC+シェルスクリプトで書いてた
書こうと思えば書ける

でも普通に記述に時間がかかるので今は他の言語も役割分担してる

514 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:04:46 ID:7R870FiC.net]
Rustはデータ競合らへんは起きないけど、Box、Rc、Arenaを気をつけて使い分けないといけないのとか面倒だと思うけどな

515 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:36:04 ID:M/BIyD/S.net]
Goの一番の面倒さはnilとエラーハンドリングかな
Option/Result型だけでも特別に用意されてれば、もっとGo使ってたかもしれん



516 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:49:42.04 ID:Lq7F/6H2.net]
>>506
Rcは出てこないプログラムも多い
Arenaはほぼ完全に出てこない
つまりそれらレアケースを元に語るのは現実的ではない

517 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:52:42.15 ID:1A7PmF6X.net]
Rustで引っかからずコードを書き上げるのはかなりの猛者だと思うよ
本当の意味での言語仕様部分は何とかなるかもしれないけどそこから先がつらい

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

Cだと時間をかければ書き終えれるけど

518 名前:oグが入ってる可能性がある []
[ここ壊れてます]

519 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:56:51.45 ID:1A7PmF6X.net]
Rustはある程度から人間の理解を超えて来るので一定程度以上勉強しても無駄かなと

520 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:57:58.56 ID:M/BIyD/S.net]
>>509
その辺はScalaで学んだからRustでは苦労しなかったけど
最初訳わからんってなるのは分かる

521 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:59:30.65 ID:1A7PmF6X.net]
書名でググると上位に出てくるこの記事がまさにそれ

https://qiita.com/seikoudoku2000/items/28c5c6b09dcaea1744dc

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

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

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

人間が揺さぶられてきている

523 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:07:09.92 ID:xUytDrfJ.net]
多くの人に知ってもらいたい
これはもうプログラムではないよと

524 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:09:05.79 ID:SabgIUuG.net]
実装に必要なtraitを境界として追加しただけで煩雑だけど難しくはないよね

525 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:13:46.50 ID:q+AJMQiL.net]
>>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!();
}



526 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:18:22.19 ID:xUytDrfJ.net]
実際にトレイト境界の条件の実装部分を読んでみた

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

どこかで漏れがあってもわからない

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

それかRust自体の仕様変更で死んでしまったりいろいろ死にそうな要因がたくさんある
マクロでやりすぎてる

528 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:39:26.57 ID:OHUg1Auo.net]
>>518
そんなこと起きたことがない
聞いたこともない机上の空論

529 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 11:02:33.31 ID:ut6S4c2T.net]
Rustの標準ライブラリの設計がそもそも間違ってて、その修正のために破壊的な変更がいきなりきたら大変だ、って話?
そんな馬鹿な、と笑っちゃうね

530 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 12:27:47.37 ID:0Stn7tVM.net]
サプライチェーン問題は批判理由が見つからない人が持ち出しがち。

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

中身が可視化されたのに逆に疑わしく感じた場合は、まずは自分の知識が足りなかったことに気づきましょう。

531 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 17:29:32 ID:LSv3zttQ.net]
実装の問題は重要だろ。
そもそも実装と独立に仕様だけ語れるような作りにrustはなってない。

532 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:12:00.76 ID:cxVwbP/0.net]
何を問題視してるのかもうちょっとわかりやすく書いてくれないと議論にならん

533 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:19:51.09 ID:q5adbU17.net]
判らないなら無理して首を突っ込むことはないかと…

534 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:20:37.20 ID:q5adbU17.net]
コーダー風情にはどこら辺に問題があるかすらわからないんだ
ほっとけばいい

535 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:57:51.28 ID:+0JH2q+I.net]
>>522
依存型理論原理主義過激派かな?ちょっと面白い



536 名前:デフォルトの名無しさん [2022/05/12(木) 19:03:55.20 ID:KS5+XyCs.net]
依存型ってrustは入れてないやろ

537 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 19:34:17.87 ID:B7YnOOaf.net]
>>527
Π型はないけど、const genericsなら…

538 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 10:40:27 ID:fhDjEdn1.net]
>>521
ランタイムが持ってる言語ならランタイムをアップデートしたら終わり
マクロの言語は該当箇所を探し出して修正して丸ごと再コンパイルが必要

工数考えたらどちらが有利なのかすぐ分かる
知識が足りないのはどちらなんだろうか?

539 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 10:59:45 ID:0p7HEVH9.net]
>>529
現実には起きない架空の話だから両者ともにバカげている

540 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 12:10:30 ID:uaWVrnpQ.net]
笑っちゃうね

541 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 12:50:06 ID:tAeYJnp8.net]
>>529
ランタイムだけ差し替えられることに気づくとは…

542 名前:デフォルトの名無しさん [2022/05/14(土) 10:40:41.82 ID:vWT7MZ9I.net]
さすがナレッジワーカーだね

543 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 22:44:26.45 ID:z9ygdFkB.net]
Juliaの今ひとつなところはswitch/case文がないところ
あのパイソンでさえ導入したのに時代錯誤

それ以外は良さそうな言語
しらんけど

544 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:12:53.18 ID:peAa8dI5.net]
Juliaではマルチディスパッチしろという方針なのかもしれんが、マルチディスパッチの方が他言語に普及してないのは機能として過剰な割に効率性に劣るからなんだろうかね

545 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:40:21.58 ID:gv+JQ3Ew.net]
まつもとゆきひろ氏が考える、プログラミング言語の未来
https://logmi.jp/tech/articles/326541

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

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

楓:おおー。気になるポ



546 名前:イントと好みじゃないポイントはどのあたりなんですか。

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

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

楓:(笑)。

まつもと:どちらかというと、技術的なことではないところで一緒にがんばれるものがいいなって思っていて(笑)。
[]
[ここ壊れてます]

547 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:49:59.25 ID:SgXGf86o.net]
どの言語でも間違えればコンパイラに怒られる
その程度でストレスがたまるならば頭がよくないのかもしれない

548 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:40:56 ID:N7JPl8Lh.net]
コンパイラに怒られずにランタイムに怒られる方が
ストレスたまりそうなんだが違う感覚の
人もいるんだなあ

549 名前:デフォルトの名無しさん [2022/05/15(日) 09:42:48 ID:am1d3hDu.net]
必要以上に怒られてるからクソって話なんでしょ

550 名前:デフォルトの名無しさん [2022/05/15(日) 09:49:32.98 ID:2T0P5EJz.net]
ランタイムに怒られてもうまく問題点を見つけ出せる方が頭良い気がする
僕はあんまり賢くないからコンパイラが叱ってくれる方が楽

551 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:50:12.91 ID:C1KM65Ry.net]
自分がすごくプログラミングが出来る自負があるから、コンパイラに怒られるとプライドが傷つくから嫌だって言ってるようにも見える

552 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 09:52:43.88 ID:lixSo2ZB.net]
ひろゆきは賢いからコンパイラは余計なことを小うるさく言わんでいいって感じ?

553 名前:デフォルトの名無しさん [2022/05/15(日) 09:52:58.51 ID:WKOj7Eq4.net]
自意識過剰で被害妄想だな
コンパイラは怒ってるのではなくて指摘してるだけ

554 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:06:42.86 ID:6dsDjrbs.net]
The compiler is your friend

555 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:31:50.86 ID:C1KM65Ry.net]
Rustのコンパイラに怒られるってことは所有権のシステムとかが全然理解できてないんだと思う

前の職場にもc/c++を数十年やっててrustを毛嫌いしてる人何人かいたけど、今更自分がコンパイラに指摘されまくるのがプライドが許さないんだろうな



556 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 10:45:11.53 ID:duXfvT8B.net]
>>542
「ゆき ひろ」なw

557 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:08:18.85 ID:68DnPwxB.net]
人間の理解を超えたところから怒られるのは違うかなと
それってプログラムなのか?

558 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:12:52.72 ID:68DnPwxB.net]
囲碁や将棋はもうAIの方がかなり上に行っちゃって誰もAIに勝てない
プロも含めてAIの手を研究してるけど理解できないのがかなりある

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

プログラムはそのレベルじゃないけどそういうものに近づいてる

559 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:25:25.72 ID:+6kSxcdv.net]
デバッグ含めた開発効率の良さを考えると可能な限りコンパイル時に怒って欲しいかな
コンパイラが怒ってくれる > ランタイムが怒ってくれる > 誰も怒ってくれない

560 名前:デフォルトの名無しさん [2022/05/15(日) 11:45:48.58 ID:cL2R0opO.net]
プログラムを書いてエラーが出ると「自分が否定された」「尊厳を奪われた」と感じる人もいる、という話
https://togetter.com/li/1698737

561 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 11:57:01.15 ID:UbJQuPTx.net]
ランタイムは運良くバグを踏まなければずっと怒られずに済むのに対してコンパイラは必ず怒られるから
前者の方がいいって人もいるんだろうね

562 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:21:03.73 ID:uEAI3vEe.net]
ドMなので

563 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:28:05.42 ID:0scjaaG3.net]
コンパイルが通って、いざ実行してみたら
「segmentation fault.」とそっけなく言われるのもまた一興

564 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:43:05.95 ID:wf2KlSEE.net]
>>545
そうゆう浅はかな考えは恥をかく元。常に所有権を意識しなきゃならないので、言うなら、呼び出される上のほうでロックしてても
複数スレッドでアクセスして安全なのに、所有権をいちいち意識しなきゃならないという事だ。
Rustはスクリプト言語の作者からすれば、面倒な記述が多すぎると感じて当たり前
強いて言えば、こういう浅い奴がマウントとってる現状のRustコミュニティは反吐が出る、Rubyコミュニティも好きでもないけど

565 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 12:56:50 ID:+mKsOYSe.net]
>>554
貴殿も的外れ



566 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 14:03:03.21 ID:8BbShedD.net]
そろそろ指摘するんじゃ無くて、勝手に直したり、良きに計らって欲しい。

567 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:06:40.70 ID:v+sSFlFE.net]
>>545
実はそういうは人を排除するためだけにRustのプロジェクトを立ち上げたりしてる組織もある

568 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:29:27.60 ID:2Vop47w6.net]
陰湿やなあ

569 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 16:17:30.31 ID:SzIUVHZr.net]
今のコンパイラはエラーが起きた行を指摘するけど
「この辺がちょっと気になります」
と指摘してくれるコンパイラが
そろそろ出てきてもいいような気がする
エラーの種類はそんなにないと思うので

570 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 16:25:25.34 ID:VMVrIVgn.net]
静的解析ツールなら前からあるぞ。高いけど。

571 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:05:02.60 ID:68DnPwxB.net]
松本が所有権を理解してないんじゃないと思うがw

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

気を付けて普通に書いてバグが出ないのが普通
それでも日常的にコンパイラに怒られるのは人間じゃなくて言語がおかしい

572 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 19:34:19 ID:bvYh9RC/.net]
なんか最近開発に興味なくなってきた
こんな時みんなどうしてるの?
プログラミングだけが俺のアイデンティティだったのに
死ななきゃいけない?

573 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:04:07 ID:ezWJ6neI.net]
さぁ?江頭2:50見て元気を貰うとかかな

574 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:21:42.85 ID:Fhttg/Du.net]
>>563
あ?バカにしてんの?

575 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 21:31:15.68 ID:Wjdq3fA+.net]
最近のげんこはprintをpirntとか書くと、
候補を提示してくれるよね。
あたまいい!!



576 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:05:43 ID:QlsYdN5b.net]
>>556
一部のコンパイルエラーは修正コード提案してくれるしIDEからボタンぽちで修正できるから、
それ発展させて意図が不明確なコードでも何種類か修正候補出してくれるようにならないかな

577 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:18:12 ID:yIEtIhqx.net]
>>565
Qiitaに投稿された「TypoScriptを作った」を思い出した
レーベンシュタイン距離が近ければOKっていうネタ言語

578 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 05:52:10.13 ID:x9xW3Kri.net]
>>562
ぼくも(´・ω・`)

579 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 07:12:48.31 ID:3AP7f9yS.net]
英語圏のフォーラム見に行くくらいモチベあったのにな

580 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 08:44:14.30 ID:IfoxgD2F.net]
>>545
Rustはマナー講師みたいなものだろ。
Rustが望ましいと考えるスタイルを強制して他のやり方を許さない。「なんで?」と理由を聞いても「それがルールだから」とか理解しがたいことしか言わない。

せめて「スタックにデータを保存するため」とか「Cleanみたいに参照透過性と性能を両立させるため」とか言えばいいのに、そういった思想的な背景を説明しないからマナー講師が跋扈する。

581 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 09:01:06.67 ID:nGMMRLLq.net]
>>570
それはどのプログラミング言語でも同じ。
いずれの言語も独特のスタイルを押し付けてくる。
もしそれを感じ取れないならば、それは特定のスタイルに慣れてしまっているだけに過ぎない。

例えばわかりやすい例を持ち出せば、リアクティブな言語や宣言的な言語では、
a = b + 100
と記述しておけば、aが変わればそれに応じてbが変わるし、bが変わればそれに応じてaが変わる。
ところがそうでない不便な言語に出会ったときに、
双方向に自動的に変わってくれないために苛立つかもしれない。

582 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 11:59:09.62 ID:TAALxp7N.net]
>>571
「それは特定のスタイルに慣れてしまっているだけに過ぎない。」と切り捨てているところに排他的思想&知識マウントを感じるね。

a = b + 100の例は代入演算に対して ("="から一般的に連想される) 「等しい」の意味を適用することにより生じる誤謬。
原理や技術的決定を理解せずに相手にルールを押し付けようとするマナー講師の話とは関係無いな。

583 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:13:57.85 ID:IoIRdAU7.net]
>>570
むしろスタイルを強制しないプログラミング言語なんて存在するのか?

584 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:41:05.21 ID:8gGmt1rZ.net]
松本がRust好きじゃないのはまあそうだろうなとは思う。
この人、テストコードとかも好きじゃないとか言ってたし。
個人的にはそれじゃ仕事にならんだろとか思ったりはするけれど、とりあえずこの人のスタンスは一貫はしてるよ。

585 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 18:39:47 ID:qW5+0T97.net]
>>570
マナー講師はフォーマットみたいな個人の好みレベルの話で
コンパイラが指摘する構文とかセマンティクスはその言語の世界における自然法則みたいなものでは



586 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 19:09:08.37 ID:R1kAqWTp.net]
>>575
エラーメッセージの問題じゃなくてドキュメントの問題かもしれないけど、エラーの形で否定するなら納得のいく理由を教えてほしいものだわ。
自然法則みたいな原理があるなら、その原理からどう推論したらそのルールになるのかの考え方も欲しいところ。
まぁ、それ以前のエラーメッセージしかしないクソ言語も多いけど。C++とか。

587 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 21:09:51.80 ID:qW5+0T97.net]
>>576
rustのlifetimeとかborrowing周りのエラーはそんな感じでエラーになった理由は教えてくれるよ
例えばどんなエラーの原因を分かると嬉しいと思う?

588 名前:デフォルトの名無しさん [2022/05/17(火) 03:36:27.01 ID:maKCFX0H.net]
Rustのエラーメッセージの親切さは異常

589 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 04:13:37.47 ID:tz+YwBRZ.net]
美人女教師のイラストでも添えたら
エラーメッセージもそれっぽい口調にして

590 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:12:17.48 ID:t8H/GFrA.net]
>>577
原因じゃなくて原理ね。
エラーメッセージとしてはとりあえずは原因と解決策で十分だけど、verboseの時とかは技術的背景とかポリシーとかを説明した解説へのリンクがあると嬉しい。特に制約の厳しいライフタイムとか借用とか。
まぁ、そうなるとrust版D&Eを書くようなものだから大変か。

591 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:22:18.93 ID:aOp3kwmZ.net]
>>580
現状でもエラーによってはGitHubのissueへのリンクが付いてるから、具体的にこのエラーでこのページへのリンクを付けるべきって提案があれば受け入れられる可能性は高いと思うよ

592 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 08:39:46.07 ID:3guGxSPi.net]
カンマとピリオドの間違いとか
カンマが抜けているとか
うっかり全角文字で記号をうっているとか
初心者にありがちなエラーを
「ひょっとして・・・」
と教えてくれるとうれしいかもしれない

593 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 09:03:36.05 ID:t0SSI9IZ.net]
コンパイラ「Did you mean ',' instead of '.' ?」
俺「Fuck off!」

594 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 11:37:57.12 ID:V5JE6XCC.net]
>>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

595 名前:デフォルトの名無しさん [2022/05/17(火) 16:48:28.24 ID:DWSI+bpc.net]
コンパイラのエラーメッセージに外部サービスのリンクって、もしそのサービス終わったらどうすんの?



596 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 17:38:26.91 ID:V5JE6XCC.net]
>>585
rustのことなら公式サイトへのリンクだよ
さすがに言語のメンテナンスが続く限りは大丈夫でしょう

597 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 19:22:14 ID:ARYpWsQd.net]
なお誰もやらんもよう

598 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 09:51:35.50 ID:ynn+jzpi.net]
最も重要なマナーは
プログラムなのかデータなのか不明な文字列等を使ってはならない
つまりインタプリタを作ってはならない

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

OOPを無視してstatic変数を使ってもコンパイラに怒られることはなかった
怒っているのはいつも人間だった

599 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:27:36.14 ID:Ahp8TrG/.net]
Rustちゃんは生活のすべてを管理されたトップアスリートでヘソ出しユニに胸はぺったんこでショートヘアのすっぴんだけど最高の記録を出す
Goちゃんはそんじょそこらの陸上部員で県大会レベルだけどボインボインのロングでシャワーを浴びたらそのままGoコンにGoできる
どっちがいいかって話よ

600 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:29:12.91 ID:Ahp8TrG/.net]
なおGoちゃんは無限に二股をかけられるという特技もある

601 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 01:33:58.07 ID:d4KplWCH.net]
意味不明なたとえ受けると思ってそう

602 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 01:02:59 ID:A/bJmwRQ.net]
レベルが低すぎてRustスレで書けないRustの話しかしない駄スレ

603 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 03:37:27 ID:tiOCYDba.net]
      ____
     /      \
   /  _ノ  ヽ、_  \
  / o゚((●)) ((●))゚o \  ほんとはRustスレでやりたいんだお…
  |     (__人__)    |
  \     ` ⌒´     /



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



       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒:::::\   だから次世代言語スレでやるお!
  |     |r┬-|    

604 名前:|
  \      `ー'´     /
[]
[ここ壊れてます]

605 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 07:21:25.71 ID:qtpsVsYu.net]
Rustスレはフィボナッチ数列で無駄に盛り上がってる



606 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 08:06:23.76 ID:0sq8H5co.net]
>>594
行列演算とかじゃなくてフィボナッチ数列かぁ……

607 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 09:05:30.63 ID:skF4IFrQ.net]
純粋アルゴリズムにrustは不向きだとなぜ気づかんのかな。。

608 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 09:31:27.55 ID:qCLhnuk6.net]
>>595
なかなかゴミみたいな様相だよ
フィボナッチ数列の第n項はメモ化しなくても線形オーダー、あるいは対数オーダーで計算できるのに、メモ化にこだわりのある人が「そのやり方はmainのループと合わせて計算量はn^2だ」とか言い出して散々

609 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 10:04:11.72 ID:73YqjaVk.net]
>>596
個人的にはむしろ抽象化と両立が難しいところに新しい道ができたように思えた
(過剰なメモ化なら言語関係なくやられがちな気がする)

610 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 16:45:27.87 ID:B4JoNxMk.net]
フィボナッチ数列計算するのにあそこまでする必要はないわ

611 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:32:46.13 ID:nVnkC/ng.net]
スレ見てないけどベクトル演算した方が速いんじゃないの知らんけど

612 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:36:21.53 ID:g6eOZZWy.net]
Rustのスレなんだし、アルゴリズムで計算量を改善したりする話じゃなくて、Rustのベストプラクティスについて話してほしい

613 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:49:16.78 ID:nVnkC/ng.net]
Rustのスレじゃねーんだなこれが

614 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 17:58:31.56 ID:UyuFXYvf.net]
数値計算はやっぱりJuliaかFORTRANが実行速度最速なのかしらん。

615 名前:デフォルトの名無しさん [2022/05/20(金) 18:17:57.67 ID:Cx5X7nNC.net]
>>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)で済む
つまり計算量を大きく節約できる
この二つの区別を出来ているかどうかが重要なポイントかな



616 名前:デフォルトの名無しさん [2022/05/20(金) 18:30:54.17 ID:Cx5X7nNC.net]
ごめん1箇所だけ記述ミスを訂正
>>604
× ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がlog(n)で済む
○ ところが『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を生成するイテレータを作ると全体がO(n)で済む

617 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:27:34 ID:Cb6kz6Up.net]
>>605
コテハン付けろよ。
NGにするから。

618 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:32:41 ID:0DaneQt4.net]
頭おかしくなっちゃった!
    -=≡ ∩ 彡⌒ミ ∩
 -=≡   .ヽ(´・ω・`) /
-=≡     (    /
 -=≡   (   ⌒)
  -=≡  し  し'

619 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:02:33.19 ID:AMqMmZYo.net]
>>604
そうそう、こんな感じで論点をどんどん変えてくんだよね
フィボナッチ数列のはずがフィボナッチ数列の1~n項の計算にすり替えられちゃう

620 名前:デフォルトの名無しさん [2022/05/20(金) 20:07:15.27 ID:Cx5X7nNC.net]
『フィボナッチ数 F_n』を求めるアルゴリズム・計算量と
『フィボナッチ数列 F_0, F_1, F_2, ..., F_n』を求めるアルゴリズム・計算量は当然異なるからね
前者は繰り返し二乗法で1個の算出がO(log n)がベストだけど
後者で前者の方法を使ったら遅くなる
後者は単純に前二つを足していけばn個の算出がO(n)で済みそれがベスト

621 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:33:10.89 ID:AMqMmZYo.net]
スレの流れとしては前者なのに一人だけ「数列だから初項からn項までの計算量を考えろ」とか頓珍漢なこと言ってるのよね

622 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:52:13.48 ID:EQAKr5b0.net]
スレ見たけど最初から全員がフィボナッチ数列を列挙させているから
>>609で言うところの後者だな
そして今日書かれた2種類のコード共に後者のイテレーター

>>610
たぶん君だけが勘違いしている可能性が高いw

623 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:52:49.34 ID:pMSjr2Vl.net]
フィボナッチ数列自体はただの例題なのに異様な執着心見せる人が居るよね
なんかのコンプレックスこじらせてるのかな

624 名前:デフォルトの名無しさん [2022/05/20(金) 20:59:42.21 ID:Cx5X7nNC.net]
>>610
フィボナッチ数列といったら F_0, F_1, F_2, ..., F_n, ... だよ
それはともかく前者と後者でベストなアルゴリズムが異なるから前者だけの話をすることはありえないと思う
そして後者のイテレータはそのまま前者をO(n)で求めることが出来るから
どちらもO(n)で十分とするならばイテレータをプログラミングするのが自然じゃないかな

625 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:04:10.39 ID:uKCjuMHy.net]
職業マは生暖かい目で見守ってるよ
初学者・学生・無職・アマチュアプログラマが必死になれるのは
自転車置き場の議論だけだからね
昼間必死に書き込んでるやろ彼らは



626 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:07:40.93 ID:QySmFXhb.net]
フィボナッチってO(1)では?(ビネ並感)
流れはよくわからないが、とりあえず本スレは盛り上がっているようで何よりだね

627 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:15:10.30 ID:EQAKr5b0.net]
各項のオーダーはO(1)可能だが複素数(行列)でムダに計算量多いだろw
結局一覧を列挙するなら足し算していくのが一番速い

628 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 00:28:12.49 ID:xHIjAvV7.net]
スレタイ読めよアスペども

629 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 07:47:11.09 ID:0jWT+RR4.net]
>>616
複素数じゃないよ、実数の範囲で計算できるよ

630 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 01:01:31.28 ID:Eq9f2SXv.net]
Qitaベンチマークで、フィボナッチとかドヤァってるドアホ見るけど、片方の言語がoverflowチェックなどが入ってる演算を
使ってるのに、もう片方はチェックが入らない言語を使って比較してることがよくある。とんでもねえアホ
さらにいうなら最適化レベルも、ループアンロールをデフォルトで勝手に行う言語と、明示しない限り行わない言語で
比較してたりメチャクチャなアホ。お前の推しの言語がチェック付き演算行ったら、お前の推しじゃない言語と変わらんからな

631 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 01:37:17.26 ID:o7ibVFPP.net]
当該ページを示さずに愚痴られても…

632 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 02:12:19.04 ID:aUQlcplw.net]
標準的なコンパイル方法・プログラムの書き方をした場合の比較になっているのなら意味はあるのでは

633 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 05:59:53.99 ID:YmsKfutR.net]
確かにCheckedAddとかで書いてるQita記事のフィボナッチベンチなんて見たこと無いね、逆に言うとそれしか意味がない。ベンチとは名ばかりのフワッとした自己満足オナニーだ、100mハードルと100m走くらべてるようなもんさ

634 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 07:01:43.76 ID:n2ZPTBPD.net]
>>619
Rust本スレのフィボナッチはoverflowチェック入っているぜ
https://mevius.5ch.net/test/read.cgi/tech/1652347700/181

>>622
それはその個人の問題点であってプログラミング言語の問題ではない

635 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 09:56:36.54 ID:vZp1MWnh.net]
顔真っ赤でコピペして来てるw
書いたどうだという話じゃない、それでベンチマーク取ってみろという話だよ。この流れが分からない奴は個人の問題点w
いちいちオーバーフローがセーフな演算をchecked_addなんて冗長な書き方しか出来ないのだから、言語の問題でしょう?
標準的なコンパイル方法・プログラムの書き方をした場合、危険でズルなんだからw



636 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 10:48:59.78 ID:gzAO9YOH.net]
>>623
うわっ、何このダサいコード

637 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 10:52:41.72 ID:ZgbkB3a0.net]
フィボナッチが居ついちまったじゃないかよ。

お前ら責任取ってフィボナッチの話題禁止な。

638 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 12:30:43.66 ID:aUQlcplw.net]
フィボナッチ呼ばわりはフィボナッチさんへの風評被害になるからやめな

639 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 13:17:40.25 ID:YSocoZUy.net]
>>625
口だけ番長定期
これだから世界から糞バカ中世ジャップランド土人とか呼ばれるんだよ

640 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:35:29.13 ID:wWZ2mUik.net]
>>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で知らせることも可能

641 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:38:27.39 ID:wWZ2mUik.net]
>>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よりも用意周到なプログラミング言語があればその動作を教えて欲しい

642 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:44:29.35 ID:afBzb9pp.net]
顔真っ赤wwwwwwww

643 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:45:47.88 ID:dNJCbMGg.net]
ここ2週間くらいRustスレずっとこんな調子だったんですよ
勘弁してほしい

644 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 15:58:24.00 ID:X9GYHqrY.net]
某R言語のユーザーは本当に気持ち悪いな

645 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 16:13:42.23 ID:zhKycwRA.net]
何が用意周到なんだか。言語のことを言ってるんじゃなく、「あくまでそれでベンチマーク比較すんなよド素人」という話だけなのに、ムキになって言語機能の紹介書いちゃうオジサン
蛇足的に言語のことを言うなら、RustよりまともなのはC#でcheckedキーワードの明示による算術のオーバーフローをチェックかな?安全に足し算したいだけで毎回checked_addなんて書くのは勘弁願いたいのは本音。C#もデフォルトで安全に倒すという思想からも逸脱してるとも言えるが



646 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 16:24:56.03 ID:21uaV1OX.net]
>>625
Rustスレでも満場一致で同じ意見だからご心配なく

647 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 16:33:53.72 ID:wuIMUAe9.net]
CPU・C・C++・C#・Rust全てにおいてオーバフロー時は一周回った結果になるってことか
じゃあそれが標準的な振る舞いなのだろう

648 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 19:59:34.50 ID:aUQlcplw.net]
>>634
演算子オーバーロードできる言語なら a + b が Option<T> 返すような型を実装できるから言語組み込みでキーワード用意する必要もないのでは

例えばRustだとそういうライブラリもある
https://docs.rs/checked/latest/checked/

649 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:07:10.01 ID:pMTVA02Y.net]
>>636
Goもそれらの言語と同じ
int8(127)に1を足すと-128となる
標準でオーバフローチェックしなくてズルい!と発狂している人はどんな言語を使っているのだろう

650 名前:デフォルトの名無しさん [2022/05/23(月) 22:48:29.77 ID:X9GYHqrY.net]
実装が処理速度に与える影響を論じるのなら浮動小数点数の話で語り始めるべきだったなw

651 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 01:58:49.24 ID:e1yfwJHI.net]
Pythonなどは(無限にではないが)演算で型拡張が行われるから、それらと同列でベンチマークすべきではないのは同意
Rustを愛しすぎて、顔にウンコ付いてて冗長で気持ち悪い書き方を擁護して発狂する用意周到オジサン

652 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 02:20:04.04 ID:8GgyJL9r.net]
Rustでの標準挙動は>>636>>638により他の主要なプログラミング言語と同じ
その上で>>637など演算毎にチェックも可能
このような状況でとなおRust叩きをしている人は頭がおかしいのかそれとも

653 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 04:56:32.72 ID:cZN4xY/Z.net]
Rustスレ過疎ってル訳でもないのにどこでもRustの話始めるのなんでなん?

654 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 10:26:14.04 ID:bYnrOJu+.net]
頭がおかしいから
反応したら負け

655 名前:デフォルトの名無しさん [2022/05/24(火) 10:43:26.98 ID:7zq5Zl9C.net]
言語は一つに統一したらええに。
言葉も英語だけなら良かったに。



656 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 11:54:32.13 ID:BzukVrXt.net]
Swiftってわかりにくいね
Objective-Cもクソだったし林檎嫌いだわ

657 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 12:46:51.04 ID:+Ywn9TYu.net]
それでも Swift >>> 越えられない壁 >>> Go、つまり 林檎 >>>>>> Google

658 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 12:47:47.67 ID:MRz9uR42.net]
>>645
> Objective-Cもクソ

具体的にはなにがどうクソなの?

659 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 13:19:16.27 ID:ITkZMsqO.net]
まずxcodeが糞
糞というか狂気
犯罪と言っても過言でないと思う

660 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 13:40:19.38 ID:x7vOIT3I.net]
3行使って情報量がほぼゼロ

661 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:13:05.56 ID:ITkZMsqO.net]
1 + 1 = 2 レベルの内容すら理解できんとかガイジ?ホイ卒?

662 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:25:30.71 ID:Z3J3KQ7G.net]
Swiftやってると某こんスレにいるアホ言語初心者のような参照カウントの悪辣性に気付くんだわ。その言語の機能解説ずーとしてるバカたち
1つでもスマートで無いと言えば「自分たちが攻撃された」と思い込み、べたコード貼り付けて得意満面に機能解説しだす

663 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:38:55.79 ID:/TotnhyC.net]
>>650
1 + 1 = 2は定義上そうなっているだけなので理解できるかどうかという話じゃないんだぞ(クソリプ)

664 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:39:22.08 ID:sOTuiKrj.net]
「Swiftになってよかったこと」で調べればobjective-cの駄目なところはいくらでも出てこない?

665 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 17:03:32.22 ID:Q0PWN6eS.net]
Swiftは言語だけみれば結構いいけどね
エラーハンドリング機構はメジャー言語の中では一番進んでる

objective-cは名前空間がなくて衝突回避のためにどうしても長い名前になるのがよくなかった
Swiftにも引き継がれてるメソッド名が引数名込みになるルールも分かりにくい
あとは動的ディスパッチなので速度が必要ならCかC++で書かないといけないのが面倒だったかな



666 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 18:08:59.87 ID:ITkZMsqO.net]
>>653
ビチグソが固形ウンコになったくらいのレベルでよかったとかいうxcodersは頭がおかしい定期

667 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 18:11:41.40 ID:ITkZMsqO.net]


668 名前:イめん、うんこに失礼だった
うんこは体にとって大事だけど
xcodeは世界の敵、環境破壊兵器、サリン、AntiSDGs、人工地震5Gだったわ
世界平和のために早く殺すべき
[]
[ここ壊れてます]

669 名前:デフォルトの名無しさん [2022/05/24(火) 18:32:36.39 ID:K71E2ixm.net]
>>654
同意

670 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 18:44:18.42 ID:MRz9uR42.net]
具体的なレスを聞かせてくれた>>654すこ

671 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 18:49:32.82 ID:fs/OcGN+.net]
>>655
日本語読める?

672 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 19:00:38.09 ID:9IIPqcRo.net]
業務でストレス貯まってるのかな

673 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 21:33:55.54 ID:n+gg4WC+.net]
匿名掲示板でうんこレスしこたま投稿するの楽しいにゃん♪

674 名前:デフォルトの名無しさん [2022/05/24(火) 22:38:22.80 ID:5G1zL+3l.net]
Xcodeが嫌ならVS CodeかAppCode使えば良くね?何が問題なの?

675 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 19:00:46.30 ID:C4ssaGJt.net]
次スレから
スレタイに Julia も追加すべき



676 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 19:03:52.92 ID:EVCXwRA4.net]
どうぞ

677 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 20:19:19 ID:nSdeHuFH.net]
旧世代言語は去れ

678 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 09:48:31.36 ID:EmXYdsgj.net]
kotlinのチュートリアル的なのみたらif式は変数に代入してコールできるとかあったけどいつ実行されるの?コールしたとき?それとも代入された変数には既にif式の実行結果が入ってる?

679 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 16:30:35.70 ID:89z2cDQI.net]
・フリーエンジニアが年間3,600万円の売上を上げた方法を解説する
・26歳で独立して月収150万になった 元引きこもりエンジニアの物語
・ブラック企業から退職し、独立後11ヶ月で“月収300万円超え”になるまでの軌跡を
 デザイナー社長船越良太に聞いてみた!
・ITフリーランスで月額単価150万円!万が一の就業不能に備える無料の保険もある「クラウドテック」
・フリーランス時代に月収4万円→最高340万円を達成した船越さんに、「お金」との向き合い方を聞いてみる
・フリーランスSEってどれくらい稼げるの?月単価160万円の案件を扱う定番エージェント
・フリーランスの仕事や職業の種類って何があるの?独立5年目で月収200万の僕が詳しく解説

680 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 16:46:50.81 ID:C+iYNtEl.net]
>>667
嘘くさ
情報商材とかに騙されてそう

681 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 18:49:03.61 ID:4taUn78j.net]
>>668
君は年収300でRustで組み込みでもしてるのが実力だからねw

682 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 20:21:54 ID:RsJgaHeF.net]
ムキになってて草

683 名前:デフォルトの名無しさん [2022/05/29(日) 20:29:03 ID:JtP99XwD.net]
年収800万超えエンジニア注目するプログラミング言語、第1位は?
https://news.mynavi.jp/techplus/article/20210802-1936893/
https://news.mynavi.jp/techplus/article/20210802-1936893/images/001.jpg

684 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 23:44:19.76 ID:xfFi626I.net]
>>671
こういうの鵜呑みにしちゃうんだ
変な壺とか買ってそう

685 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 00:09:02.12 ID:URC3D+jY.net]
Goとかいうウンコオブウンコのそび糞



686 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 08:59:04.28 ID:Pjv5EPMb.net]
>>663
このようにマジキモRust信者が24時間張り付いて、他言語の悪口を言うスレです

687 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 05:40:50.61 ID:kSwwruMK.net]
そんな書き込みは見かけないね

688 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 07:00:10.40 ID:m3Paz3vX.net]
(俺以外の)そんな書き込みは見かけないね

689 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 11:51:48.67 ID:a41qFxYX.net]
(自演して)クソクソ言っとけば悪口になると思ってそう

690 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 17:27:50.52 ID:bHuwLCJo.net]
>>671
高収入になるほどRustを好む傾向がはっきりデータに出ているな
この状況でRustを叩いてる連中はどういう人たちなのだろう?

691 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 17:43:20.57 ID:IxX6jh1U.net]
あからさまにRustを叩いている人はごく一部を除いていない
ほとんどはRust信者を生暖かい目で見ているという立ち位置

692 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 21:28:30 ID:pSC66flQ.net]
Rust信者に香ばしい人が多いのはなんなんだ?

693 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 23:51:24.24 ID:5AVQNMn+.net]
信者は香ばしいもんだろ

694 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 01:26:39.73 ID:OV4goLPm.net]
>>678
叩きもなにも、もはや誰も言語仕様の話はしていない。汚物連呼程度の煽りならスルーするのが賢明だ

695 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 07:49:13.42 ID:0uHbICXr.net]
Rustは素晴らしい言語ではあるが
頭が悪い側の一部のプログラマーが理解できない可能性ないのか?



696 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 08:10:44.20 ID:BiTU5AOk.net]
>>683
そう考えるRust狂信者は多そうだな。
Haskellの二の舞だわ。

697 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 09:03:19 ID:Y3NDvf7Q.net]
むしろ駄目プログラマーを上手く排除できるからありがたい
理想的な社会になる

698 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 11:14:24.49 ID:kLxnMhNJ.net]
駄目プログラムがRustに置き換わるだけで何の解決にもなっていないのでは?

699 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 11:16:44.55 ID:A+oZ2GoP.net]
一番排除できてありがたいのは、癖のあるC++プログラマーw

700 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 11:51:30.38 ID:ZMFIZVkF.net]
例えば駄目プログラムの典型として
「データ構造スパゲティ」

GC言語だとそれでも動いてしまうがメンテしにくい、バグ入り込みやすい、デバッグしにくいなど、当然問題ありまくり
C/C++だと解放忘れや解放後利用や多重解放などが入り込みがちで難解になるため普通は避けるが、避けない人も出てきてはまる
Rustだとコンパイルが通らないことで、それら諸問題を避ける形になることが多い

701 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 13:29:24.85 ID:C1W9vuQS.net]
スパゲッティか~
おいしそうだねえ~

702 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 13:51:42 ID:2I6UvhVY.net]
>>688
データ構造がスパゲッティでも、Rustのルールに則っていれば、動いてしまうんじゃないの?

Rustだって、設計の良し悪しまで判断できないと思うんだが。

703 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 14:01:04 ID:vo8qdvVO.net]
何でもRcで囲めば簡単にスパゲッティデータ構造作れそう

704 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 14:43:28 ID:wPySDGOC.net]
>>685
まぁ確かに
Ruby募集すればスクール卒が集まるし、PHP募集すれば障害者雇用枠が集まるしな
そういうこと

705 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 15:05:39 ID:MwnGmD5s.net]
>>692
そういうのはRuby募集するときにRustスキル必須にすればいいけど、そんなことをしたらコスト上がるだろ。
コスト以上の売上を上げられるのかね?



706 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 15:46:11.94 ID:wPySDGOC.net]
>>693
何当たり前のこと言ってるんだ?
便所掃除に大卒雇うわけないだろ?
そういうこと

707 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 18:38:30.38 ID:aZCO8NlO.net]
>>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 を使う強力な理由になりうる。

708 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 18:58:22.84 ID:wPySDGOC.net]
型無し糞言語ユーザーはその場で○していいよ
公害だから

709 名前:デフォルトの名無しさん mailto:age [2022/06/02(木) 19:48:49.81 ID:YZ3xIu4V.net]
キチガイ*だけ* 言語Rust

710 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 21:04:45.84 ID:HUF3eecJ.net]
>>690
ぐぅ正論w

711 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 21:41:51.25 ID:WnYotmDJ.net]
>>690
Rustでデータ構造がスパゲッティだと
参照や競合を解決するためにそれ用のを使わざるを得ないから
その使われている部分が無理やりなのか必要なのかをチェックするだけで判別できる点は良いね

712 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 23:25:41.34 ID:C1W9vuQS.net]
そもそもスパゲッティデータ構造って定義はなに
フローにおけるサイクロマティック複雑度みたいな指標あるんでしたっけ

713 名前:デフォルトの名無しさん [2022/06/03(金) 12:08:17.39 ID:xzoD2mhR.net]
>>690
0か100で判断すんな。
他の言語よりマシって言ってるんだろ。

714 名前:デフォルトの名無しさん [2022/06/03(金) 12:18:20.21 ID:xzoD2mhR.net]
頭固いやつほど0か100でばかり判断しやがる。

715 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 12:24:15.91 ID:zWyAdBA8.net]
具体性が無い話をいつまでも続けてんじゃね~



716 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 12:32:07.86 ID:gfwA6c8+.net]
せめてコード例を出せ

717 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 12:44:43.82 ID:yhFti50j.net]
ちょっと待て
俺たちプログラマは抽象化と常に隣り合わせになりながら生きてるはずだ

718 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 12:48:02.40 ID:zWyAdBA8.net]
じゃあ客観性が無い話をいつまでも続けてんじゃね〜

719 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 13:58:15.04 ID:EO0p59TU.net]
スパゲッティデータ構造wwで終わってる話

720 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 14:31:49.94 ID:RXRy7t82.net]
昔のレベルの低い状況だったらよかったのかもしれんが、抽象バカはこれからはプログラマーとしてはやっていけないよ。
今はテストコード書くのが当たり前だから。

721 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 14:36:17.21 ID:PVwM5tOu.net]
まだスパゲッティデータ構造とかいう話をしているんかよ。新しいバズワードでも作りたいんかね。
一般的でない用語を使いたければ、せめて定義ぐらいはしろよ。

722 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 16:26:17.35 ID:ypnnfw4Q.net]
>>688
Rustにも進

723 名前:出してそれを体感するようになった
Rustはデータ競合もコンパイラがチェックするから他の言語では気付かなかったことを把握して組めるようになった
[]
[ここ壊れてます]

724 名前:デフォルトの名無しさん [2022/06/03(金) 16:41:16.70 ID:VwiYiMNb.net]
まさかおまいらやってないよな
https://mevius.5ch.net/test/read.cgi/tech/1654051738/

725 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 17:10:08.22 ID:oX46NC1r.net]
次スレワッチョイ付けとく?



726 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 17:56:42 ID:yufR8mPg.net]
>>711
実環境と同じで開発する Docker っていうんだぜ 最新の開発手法なんだが 逆に知らないのか?RUSTとか言ってるバヤイじゃないだらw

727 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 18:36:29.92 ID:PVwM5tOu.net]
>>711
受入側がテストケースを作るという話なら理解できるけど、そういう話じゃ無いんだろうなぁ。

>>713
それはOpsDevの話だから、ちょっと違う気がする。

728 名前:デフォルトの名無しさん [2022/06/03(金) 19:16:59.53 ID:os9nRGDZ.net]
> スパゲッティデータ構造

「所有権の複製」と同じ独善的で哀れな響きを感じる

729 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 20:43:36.50 ID:Obl8jI4y.net]
データと環境の区別がつかないやつとか
Dockerを最新開発手法だと思ってるやつとか
DevOps知らないやつとか
スパゲッティデータ構造wとか
ここは底辺の巣窟だな

730 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 21:05:02.43 ID:os9nRGDZ.net]
底辺というか単にアマチュアと思う
仕事で書いてるマがあんまいないでしょここ
学生さんか無職によるエアプの応酬でしょひたすら

731 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 23:44:10.63 ID:gxOeTsOz.net]
YouTube で有名な、雑食系エンジニア・KENTA の動画

EC2はもうオワコンです
www.youtube.com/watch?v=G_ILES8fmf8

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

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

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

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

Dockerなら、この本が簡単。
自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4

732 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 03:17:04.19 ID:WvJ0avYJ.net]
>>718
いやEKSのワーカーノードってEC2のインフラに乗っかってるやん
何言ってんだコイツ

733 名前:デフォルトの名無しさん [2022/06/04(土) 10:14:15.98 ID:vvbHqYcO.net]
KEИTAはNGワード推奨

734 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 12:59:06.25 ID:CyXkOFyS.net]
普通の荒らしならNGでも良いけど、これは広告黙認になっちゃう…

735 名前:718 mailto:sage [2022/06/04(土) 22:12:41.70 ID:qz14Jeu3.net]
ECS(Elastic Container Service)・EKS(Elastic Kubernetes Service) については、
EC2・Fargate の2種類のデータプレーンがある

ECS on EC2・ECS on Fargate
EKS on EC2・EKS on Fargate



736 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 00:38:35 ID:fbWW3RR4.net]
>>722
さすがです
些末な言語でケンカしてる土方PGとはレイヤーも知識の深さも違いますね・・・

737 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 03:13:32 ID:1HHUj8mf.net]
>>722
ヒント:スレタイ

738 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 10:32:21.99 ID:BAL8np4K.net]
ヒントってなつかしいな

739 名前:デフォルトの名無しさん [2022/06/05(日) 12:43:13.05 ID:1HHUj8mf.net]
それだけ昔も今もタイトルの読めない人が蔓延ってることだよ。

740 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 12:57:34.82 ID:1HHUj8mf.net]
次も脈絡なくdockerとか言い出されたらちゃんと無視しようね

741 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 13:04:45.18 ID:C6LzSewh.net]
KEИTAの時点でKidsってわかるから

742 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 13:45:25.71 ID:9C0C056E.net]
なんかあの動画原稿読んでる感が強いんだけどゴーストライターが原稿書いてるなんて事ないよな
自分の書いた原稿ならそんなに棒読みにならんとは思うんだけど

743 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 14:28:41.29 ID:BAL8np4K.net]
プログラマはプログラムに忠実なんだよ

744 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 19:33:39.96 ID:fbWW3RR4.net]
やーいおまえらの年収、ケンタ氏の月収レベルw

くやしくないんか?w

745 名前:デフォルトの名無しさん [2022/06/05(日) 19:42:08.90 ID:NPpCVuaP.net]
はらたいらに負け



746 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 20:41:09.63 ID:aIrlo+D0.net]
スクラッチのPHP並にWEB開発が楽な次世代言語が欲しいんですよ
多分Rustだろうけど

747 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 22:14:31.32 ID:1HHUj8mf.net]
自演臭がするから相手にしないように

748 名前:デフォルトの名無しさん mailto:age [2022/06/06(月) 00:16:37 ID:RzhuA7sN.net]
某スレで気持ち悪いオナニーコード書いて一生懸命しょーもないフィボナッチの話してるふりしながらダメ人間批判のアホどもへ
  ┏━━━━━━━┓
  ┃//  Λ_Λ  ┃
  ┃/  <`Д´>つ┃
  ∧_∧m9   ノ ┃
 <   >し―J //┃ ダメ人間!
 ( O つ   // ┃
 し―J ━━━━━┛
技術上の優劣は、人格や感情的表現とは一致しない。

749 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 23:30:06.88 ID:V6NRl8ye.net]
PHPer全員死なねえかな

750 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 09:49:22.66 ID:/CWj/UNa.net]
お前ら元気ないな
五月病かい?

751 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 10:52:10.66 ID:nSw5Wtt+.net]
下らねえ煽りするよりコード書けよ

752 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:36:40.03 ID:gW5FFec0.net]
Denoってts使うのやめるんか知らんかった
https://qiita.com/Syoitu/items/244c6bf99a6b7bf5ab9c

753 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:48:08.84 ID:Ikjed3Z0.net]
>>739
内部コードの話みたいね

754 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:02:26.40 ID:T6wrUfK/.net]
rustも同じ運命になりそう

755 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:30:04.70 ID:gW5FFec0.net]
Go→Rustになったのも遅いから理由だったしな



756 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:48:28.61 ID:HmxRmWBo.net]
> TypeScriptはJavaScriptの改良版と見なされることもありますが、実際はそうではない。
> 他の言語と同じように欠陥があります、最も重要なものの1つは、コンパイル時間が遅いことです。
> 小さなプロジェクトでは、純粋なJavaScriptからTypeScriptに切り替えるときにコンパイル時間が大幅に増加することはないかもしれませんが、複雑な、例えばReactのような大規模なプロジェクトでは顕著になります。
> ランタイムのサイズが大きいことを考えると、DenoがTypeScriptを止めるのも当然のことです。
>
> 開発中の型チェックは、コンパイル時にコストがかかります。

ようするにTypeScriptは巨大プロジェクトに向いてないのか
Microsoftは巨大プロジェクトのノウハウなんて膨大に持ってるだろ、なんとかしろよ・・・

757 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 17:15:19.17 ID:Q3eIHQbE.net]
時間掛かるから型チェックやめまーす
ってじゃあそのチェック何で代替すんねん
指さしヨシッでもすんのか?
バカじゃねーの

758 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 17:26:46.05 ID:/CWj/UNa.net]
テスト書くから必要ないって事だろ
文盲か(何故か変換できない)?

759 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 18:42:07 ID:R6kVrTwR.net]
wasmにコンパイルされる専用言語が待たれるという説

760 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:13:02.17 ID:Lxou0O6d.net]
TSにはインクリメンタルビルドの仕組みがなくてファイル変更のたび毎回フルビルドが必要なの?

761 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:29:52.04 ID:s2pWM27P.net]
本当に欲しいのは制約であって型ではないし

762 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:35:24.48 ID:Lxou0O6d.net]
>>748
制約を明示したり強制したりするのにリーズナブルだから型が使われているんだと思うが
何で代替しようとしているの?

763 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:46:54.60 ID:DMnkzfH9.net]
>>749
型は制約じゃないぞ
階層理論の産物さ
制約とはtrait systemのことさ

764 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:03:26.11 ID:CaCwxZ5g.net]
窓の杜: 「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売.
https://forest.watch.impress.co.jp/docs/bookwatch/news/1416093.html

765 名前:デフォルトの名無しさん [2022/06/11(土) 20:15:54.30 ID:Kh7p4488.net]
>>742
コンパイル時間でGoに勝てる言語ってある?



766 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:18:17.35 ID:gW5FFec0.net]
>>752
出来上がったバイナリ(deno本体)の実効速度の話ね

767 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:38:23.65 ID:vVSWS2tb.net]
>>752
DとGoはどちらが速い?

768 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:38:55.36 ID:Q3eIHQbE.net]
>>745
例えばある関数がnumberだけ返すことをテストで網羅できんの?

769 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:55:28.16 ID:gW5FFec0.net]
D言語って今ちょうどver2.100.0なんだね

770 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:05:03.93 ID:DMnkzfH9.net]
正直言ってD言語とかの存在価値がわからないんだが使っている人いるの?

771 名前:デフォルトの名無しさん [2022/06/11(土) 21:11:25.04 ID:Kh7p4488.net]
>>753
何言ってんだこいつ
Denoはコンパイル時間って言ってるんだが

772 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:14:34.94 ID:Q3eIHQbE.net]
これだからトーシロはダメ

773 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:26:17.06 ID:gW5FFec0.net]
>>758
Go→RustもTS→JS
どっちも一貫してDeno自体の実行速度を最優先してるわけよ

774 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:48:50.29 ID:qsQNDkHz.net]
tsで問題視してたのはコンパイル時間の方じゃね?

775 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:55:33.13 ID:N9Pa64KK.net]
Denoのjsってそんなに大規模か?
VSCodeなんかに比べたら全然大した量じゃないように見えるが
ビルドパイプラインがヘボいんじゃね



776 名前:デフォルトの名無しさん [2022/06/11(土) 22:14:50 ID:Kh7p4488.net]
>>760
文盲乙

777 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 22:17:19 ID:gW5FFec0.net]
>>761
その時間ってもろホットリロードのタイムラグなわけじゃん

778 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:00:17.90 ID:Q3eIHQbE.net]
Denoチームの連中が低学歴なんだろ
バカばっか

779 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:13:10.68 ID:SJ0jyJTM.net]
Rustのようにかなり強力にコンパイル時エラーでほとんどの問題を排除してくれる堅さとは異なり
TypeScriptは型チェックしかしてくれず元のJavaScriptの緩さから本質的には変わっていない
本体はがっちりRustで作りあとはJavaScriptという方針は間違っていない

780 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:15:22.91 ID:Nh4QsFq2.net]
確かにRustのコンパイルが遅いのが嫌だという意見はわかる。”C++より早いだろ?”とか”嘘つき!Rust速い!”とかコメントしなくてあ、結構です
仕組み上トレイトの組み合わせで遅くなるのはわかるんだが、もう少しどうにかならんかの?

781 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 00:08:25.22 ID:GJbjpRb8.net]
>>765
学歴コンプのある人はすーぐ学歴の問題にする

782 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 00:22:54 ID:WtY28DSr.net]
>>768
ハーバードでMBA持ってるけどな
F欄は口くせーから喋んなゴミ

783 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 00:34:08.70 ID:C1U3DU3t.net]
掲示板ではなんとでも言える

784 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 01:47:05.21 ID:mpYnOnxd.net]
>>769
知性のかけらも感じさせないレスだわね

785 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 02:09:11.61 ID:p7K2g0W9.net]
プログラミングにも理解があって英語ぺらっぺらな海外トップ学歴の経営人材なのに
日本語の匿名掲示板という狭い世界で推し言語の擁護にムキになってるとはご乱心だな



786 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 06:32:40.30 ID:V1ZBG4pG.net]
>>755
当然

787 名前:デフォルトの名無しさん [2022/06/12(日) 06:42:11.19 ID:OtYNM0HI.net]
Javascriptに対するTypescriptってCに対するC++みたいなもんだろ?
その気になればある程度まともな型システムは使うことができる程度

788 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 08:25:07.16 ID:54GVQ0UL.net]
結局地がjsな以上互換性を保ちながら完全に型で覆うのは難しいよねって
まぁPurescriptみたいになってもらっても困るんだが……

789 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 08:59:49.71 ID:Znbho8o6.net]
JVMバイトコードに対するScalaみたいなもん
Java書くより罠が多いけど圧倒的に便利
バイトコードを直接書く阿呆はいない
こんな感じ

790 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 09:50:18 ID:6guykT66.net]
さすがにそこまでじゃない
JSをそれなりの規模で使いたければTS使った方が楽なのは確か

791 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 10:29:55.16 ID:UPLi/RM9.net]
denoてどのくらいnodeからの移行が進んでるんだろ?

792 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 11:30:16.99 ID:C1U3DU3t.net]
serialportとかちゃんと使えるならラズパイとかで使ってみたいな

793 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 12:13:55.79 ID:TLk1B+cK.net]
>>778
進まないから今現在必死に最適化してるんだろう

794 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 13:11:27.34 ID:eghQJQYK.net]
少なくともそのQiitaには、Denoの実行速度が遅いからJavaScriptに移行した、とまでは書いてないと思うんだけど、なんか誤読してる人多い?
Denoの実行速度が遅いからじゃなくて、Deno自体のビルド速度が遅くてDenoを開発する人にとって辛いから移行したんでしょ?

795 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 13:21:32.88 ID:Znbho8o6.net]
いやそこ誤読してる文盲はおらんやろ・・・おらんやら?



796 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 15:26:48.02 ID:QJCkSZm+.net]
typescriptのコンパイラはtypescriptで書かれてJavascriptにして実行されてるから遅いんだろう
言語としてはセルフコンパイルしたいし、いろんな環境で動かすためでもあるし
でもrustとかで書いてもいいのでは

797 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 15:28:48.97 ID:QJCkSZm+.net]
マシン語にしてるわけでもないし、処理としてはコンパイラとしては軽い方だから
rustにしたら爆速になるのでは

798 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 15:49:11.35 ID:kUS96AVF.net]
Kotlinとか確か開発者がロシアじゃなかったっけ?もうオープンソースだから米国的にはOKなの?

799 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:58:25.55 ID:+vN+62Vi.net]
いち早くロシアの侵攻を批難する声明を出したから許されてるんだろう

800 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:01:47.21 ID:L2pGDO9p.net]
>>786
いち早く出してねーよ
ロシア政府なみの嘘つくな

最初のツイートはロシアのプロパガンダと同じ巧妙な内容で反感買いまくってから追加で声明出したんだろ

801 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:19:05.57 ID:e/a7Unpq.net]
JetBrainsのサンクトペテルブルクのオフィスとブラハのオフィス(本社)の写真みたけどすげぇ格差だったわ
ああいうの見ると建前上の本社を東京に置いてる中華企業と体質が同じに感じてもう一つ信用できない

802 名前:デフォルトの名無しさん [2022/06/13(月) 02:53:25.83 ID:asZan2yI.net]
tsの変換や型チェック処理する機能はgoやrustで書き直すプロジェクト進行中だから
そこは欠点じゃないよね

803 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 03:23:11.66 ID:aNdPD0Bj.net]
PHP+味付け程度にJSでシステム作ってる化石野郎でも応用効く言語教えやがれください

804 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 03:50:52.66 ID:dm71PatD.net]
またPHPの話してる

805 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 05:19:59.34 ID:eNTeJ/va.net]
PHPに勝ったところで次世代PHPにしかならないのに?



806 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 07:43:09.16 ID:fjH64UU8.net]
PHPってマジで話聞かなくなったよな
使ってるのって2010年代の旧システム?

807 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 09:29:29.62 ID:dm71PatD.net]
ワードプレスはもうPHPじゃなくなったのか?

808 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 09:30:42.95 ID:eNTeJ/va.net]
次世代言語すげー

809 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:42:18.44 ID:FiSspViM.net]
Goにオプショナル型とスプレッド構文とmap,reduce,filterのコネクション系操作が入ったら最高なんだけど
Go 2だとかで機能増やしてくれないかな

810 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:52:35.02 ID:FiSspViM.net]
Typescriptの糞なところ

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

この辺がすべてGoでは問題ないから、あとは少し機能増やしてくれたら文句ないんだよなー

811 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:04:41.26 ID:fjH64UU8.net]
GoのMap糞過ぎて全く読めない
JSONをそのまま使えっておまけに型までつくTSさいつよってことなんよ

812 名前:デフォルトの名無しさん [2022/06/13(月) 21:39:05.94 ID:G3CRt2bF.net]
構造体作ってマッピングするのじゃ何がダメなの?必要なのだけ定義すればいいんだが?
Typescriptだと型ガードしっかり書かないとただのなんちゃって状態になる雑魚

813 名前:デフォルトの名無しさん mailto:SAGE [2022/06/13(月) 21:47:26.95 ID:SDmJj53H.net]
>>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
(deleted an unsolicited ad)

814 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:06:28.03 ID:FiSspViM.net]
>>800
おーこんなのあったんだ、ありがとー
適当に試してみたけどできないのも結構あるね

815 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:32:02.90 ID:GDAgVCx4.net]
標準ライブラリ大きいのと小さいのどっちが良いのかね



816 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:36:53.23 ID:q8SxO5f8.net]
大きくて、APIが安定していて、ゴミが少ないやつが良い
スレタイの中だとGoだろうな

817 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 00:15:44.86 ID:FCklzJDr.net]
goはpackageの命名が糞杉
_すら許さないからどいつもこいつも呪文みたいになって可読性最悪

818 名前:デフォルトの名無しさん [2022/06/14(火) 11:26:15.39 ID:Rf4XfD/C.net]
Dも_を変な扱い

819 名前:オてたな []
[ここ壊れてます]

820 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 11:32:38.45 ID:8A+wXs8O.net]
Effective Goでは、パッケージ名は1単語にしよう、って書かれてるけど、アンダースコアや大文字小文字が使えないわけではないよ

どうせ1単語とかいう命名規約はあまり守られてないだろうし、つらいならそのへんの規約も破っちゃえば?

821 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 12:24:42.88 ID:yie2XOKe.net]
アンダスコアはPythonが悪い

822 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:45:46.33 ID:Hct9Q+tn.net]
いまだにgenrandom, gen_raondom, genRandom, GenRandomのどれがいいかわからん
PythonやってるとgenrandomだがJavaScriptもやるからgenRandomも使う
GoもやるとなったらGenRandomまで使わんといかん
いったいどれがいいんだ?
誰か俺に教えてくれ

823 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:49:34.72 ID:0h5AdYzJ.net]
言語の推奨に従ってください

824 名前:デフォルトの名無しさん mailto:age [2022/06/14(火) 17:17:08.52 ID:zltAtr9K.net]
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

825 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:26:35.25 ID:OVbm/pyy.net]
言語内で閉じるなら慣習に従うだけだけど言語またがる時は迷うよね



826 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:49:20.30 ID:8A+wXs8O.net]
標準ライブラリは名前が綺麗なのに、自分で命名しようとすると難しくて悲しい

827 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:55:42.15 ID:jATTslXV.net]
そうでもないぞ
RustのThe Bookに出てくる乱数のほぼ標準ライブラリは非常に名前が汚い
馬鹿が考えたような名前と構造

828 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:58:02.15 ID:jATTslXV.net]
Goも標準ライブラリが汚い
仕組みも複雑

829 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:58:54.42 ID:yie2XOKe.net]
C++とJavaも大概だわ

830 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:01:35.42 ID:FCklzJDr.net]
>>810
なおGoはlongnameproperty

ガイジか?

831 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:02:29.74 ID:FCklzJDr.net]
>>815
Goは後発の分際であの体たらく
どんな頭弱が作ったのか顔が見てみてーわ

832 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:08:01.45 ID:jATTslXV.net]
Goのstrconv::atoi()って

悲しくなるわ

833 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:13:47.77 ID:Ypv3OCUB.net]
>>804
_ "github.com/mattn/go-sqlite3"

>>806
だね、触ったこともない人が騒いでるだけ。とんでもねえアホ

834 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:18:15.24 ID:wSQCOwvw.net]
>>818
std::num::strconv::float_to_str_bytes_common
(´;ω;`)w

835 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:20:27.99 ID:jATTslXV.net]
golang入門したころにファイルの読み書きや文字の扱いのライブラリを見て愕然としたな
こういう世界がまだあるんだなって



836 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:31:08.14 ID:OVbm/pyy.net]
>>817
goの作者知らんのか...

837 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:32:45.87 ID:FCklzJDr.net]
>>819
golintでエラーだぞ
おまえこそエアプだろカス
PHPでも書いてろ

838 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:35:13.31 ID:jATTslXV.net]
goの作者の一人は有名人過ぎるけどもう後進に道を譲れよよ思う

839 名前:デフォルトの名無しさん [2022/06/14(火) 18:40:13.93 ID:xmR5ySSw.net]
>>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言語のライブラリと似た名前になるはある意味当たり前だよなあ

840 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:46:33.92 ID:jATTslXV.net]
>>825
Rustの標準ライブラリが汚い理由はオーバーロードがない、デフォルト引数がないから

841 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:47:21.55 ID:8A+wXs8O.net]
デニス・リッチーが直接に関わったという話は聞いたことないけど、ケン・トンプソンと勘違いしているのだろうか
親しい人物たちではある

842 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:47:26.18 ID:jATTslXV.net]
そして弱点を補うためにマクロを使ってるから汚い

843 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:50:32.39 ID:FCklzJDr.net]
>>822
有名と有能は違うぞ
どこぞの通貨危機衰退先進国のゲリ首相は有名だが有能か?

844 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:54:01.24 ID:jATTslXV.net]
幼稚園児がいる模様

845 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 18:56:01.59 ID:jATTslXV.net]
>>829
画像あるから普通に顔見てみたいなら見ればいいでちゅよ?



846 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:02:21.29 ID:OVbm/pyy.net]
>>829
有名人だから顔なんてネットに溢れてるんだからとっとと見て好きなだけ罵倒してきなよ

847 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:15:33 ID:eqeTk7gF.net]
Goのモジュールシステムシンプルでわかりやすいと思うけどな
フォルダでパッケージ表すだけだし
名前で困るってのがよくわからないけど必要以上に作ってるんじゃないの?

Rustのほうが複雑で意味不明だと思うんだが

848 名前:デフォルトの名無しさん [2022/06/14(火) 19:21:23.05 ID:bI70PJIL.net]
Don't you know you know?

849 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:37:19.54 ID:nghM89d8.net]
>>825
メソッドチェーンでオプション書くの大嫌い
単なるデータは普通にデータとして書かせてくれ

850 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:52:21.06 ID:0h5AdYzJ.net]
>>825
君その話前にもRustスレでしてなかった?

851 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:54:38.26 ID:GHB3UZAZ.net]
ケン・トンプソンなんかおまえ
この業界に居たらまさに神様みたいな存在で
それより上がおらんくらいのハッカーなんだから
こんなクソスレで軽々しく名前出すのすら憚られるやろフツーに

852 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:00:51.53 ID:GHB3UZAZ.net]
> 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がスッキリやね

853 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:30:21.52 ID:FCklzJDr.net]
>>837
The 老害やな
長いものに巻かれろ、年長者は無条件に敬え、右に倣え、出る杭は打て、死なば諸共
これが衰退先進国糞バカ中世ジャップランド土人村の末路

854 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:46:16.55 ID:8A+wXs8O.net]
異次元すぎて逆にかわいい

855 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 21:16:23.17 ID:GHB3UZAZ.net]
滑稽を通り越した何かだな



856 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 21:39:51.47 ID:yie2XOKe.net]
老害ロールプレイ楽しいか

857 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 23:27:33.27 ID:jATTslXV.net]
Rustは通常の言語仕様で欠落してる部分がある
それをマクロで補っている

858 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:03:02.45 ID:clxQJqr6.net]
>>826
デフォルト引数やキーワード引数が欲しいのは分かるけどオーバーロードが欲しいのはなぜ?

859 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:09:27.56 ID:a3eoLX8e.net]
>>844
JAVA出身だから

860 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:50:48.06 ID:pzXtsAzL.net]
オーバーロードは直感的だから

861 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:56:03.07 ID:pzXtsAzL.net]
デフォルト引数が必要だと思うならそれはもう関数オーバーロードが必要だとおもっていることと同義だろ

862 名前:デフォルトの名無しさん [2022/06/15(水) 01:27:19.31 ID:SBK/Y+J6.net]
>>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は知らん

863 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 03:18:03.71 ID:x0I/jK+a.net]
>>848
こう見るとPythonが一番美しいな
例外あるからエラー処理省略できるし
これが良いかどうかはまた別の話として

864 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 03:22:52.73 ID:tT/4QRGb.net]
一般的にデータを初期化する際にいくつもの数のオプション値指定が存在するものが多い
デフォルト引数にしても1つ目と2つ目はデフォルト値でいいけど3つ目は指定したいなど歯抜けでわかりにくくなる

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

ちなみにRustではこのビルダー方式の有用性&利便性が広まり後からこのビルダー方式に移行したものもあるほどである

865 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 03:32:06.02 ID:tT/4QRGb.net]
>>849
Rustは例外機構がないからもっとエラー処理がシンプル
「?」一文字付加するだけで(必要ならエラー自動変換しつつ)上位関数にエラー処理委任できる
そのため例外機構がなくても記述がシンプルかつ同様のことが出来るだけでなくエラー処理忘れなどもコンパイル時に指摘してくれて安全



866 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 06:09:36.05 ID:sEZPBRlz.net]
こんだけ色々な言語が乱立するってコンピュータの世界はバベルの塔だわ

867 名前:デフォルトの名無しさん [2022/06/15(水) 15:47:16.86 ID:IEWflW3G.net]
コンピューターはバビルの塔

868 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:32:44.57 ID:oaz3/shQ.net]
賽の河原での石積みに
昔から例えられている

869 名前:デフォルトの名無しさん [2022/06/15(水) 19:56:50.2 ]
[ここ壊れてます]

870 名前:2 ID:IqYclFLA.net mailto: twitterの「スタバでMacを開くエンジニア」って奴ほんと嫌い
qiitaの記事も大したこと書いていないわりに結構な頻度でバズってて流れて来るから目障りだわ
技術力ないから逆にわかってませんアピールを武器にしていっている印象受けるんだがエンジニア畑にああいうネタ系の自虐するノリほんまいらねえよ
エンジニア畑でバズるの狙うなら純粋に技術力の高さで競っていけよって思う
[]
[ここ壊れてます]

871 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 23:05:23 ID:a3eoLX8e.net]
なおそのQiita記事に助けられてるもよう

872 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 23:58:49.93 ID:NtuuvbZ6.net]
大したことないって書いてあるだろ…

873 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 00:21:07.28 ID:N0TE7UEH.net]
その大したことない記事に助けられてるからバカにされてるんだろアスペw

874 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 10:40:11.20 ID:oOjZlu3s.net]
コピペしてすぐ使えるコードが出ている
Qiita記事は役に立つよ
具体的な手順が書いてない記事はゴミ

875 名前:デフォルトの名無しさん [2022/06/16(木) 10:47:19.76 ID:OyMwP3lE.net]
qiitaもワイもアカウント持ってて投稿したりしてるぐらいだから別に否定しているわけではないんだが
qiitaがクソだと言っている分けではなくてただこいつがqiitaに載せている記事すべてが糞だっていう意味を言っている
気になるんなら見とけよ内容もtwitter上を跋扈するいわゆる情報商材系サイトのそれに近くて技術的な要素を一切含んでいない
https://qiita.com/SMAC



876 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 11:28:53.21 ID:jHsLwKQ/.net]
ここはお前の日記帳かよ
というか「スタバでMacを開くエンジニア」って固有名詞かよ

877 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 11:55:25.21 ID:4wdIdA1r.net]
>>858
助けられてるって書いてるか?

878 名前:デフォルトの名無しさん [2022/06/16(木) 13:02:40.58 ID:uKxWv5Aj.net]
Qiitaはごみ

879 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 16:40:13.18 ID:N0TE7UEH.net]
>>862
Twitter一生懸命見て彼の成長に嫉妬してる時点で、君の”負け”やで

880 名前:デフォルトの名無しさん [2022/06/16(木) 18:30:34.70 ID:OyMwP3lE.net]
>>864
「エンジニア1年生必見おすすめ入門書!」「【20XY年度最新】無料プログラミング学習サービス」「基本情報技術者試験のための戦略的方法」みたいなしょうもない記事しか書いていない奴のどこに技術的成長を感じればいいのか疑問なんやけど
お前はまさかこういった記事を見て勉強してんのか?(笑)
お前が勝ち負け判断すんの?(笑)
少なくともSNSで頻繁に目障りな投稿をしている人が他の媒体でどのような活動をしているのか確認する行為自体を一生懸命にならないとするの達成できない時点でお前がこの一連の流れのどんな登場人物よりも劣ってること明白じゃんwwwwwwwww
きっと自分の電話にかかってきた電話番号を迷惑電話だったのかどうかネットで調べて確認すると言った最低限な行為すらも日常生活の中でするのには精一杯になってるんやろなwこの低脳(笑)wwwwwwwwwww

881 名前:デフォルトの名無しさん [2022/06/16(木) 19:21:05.39 ID:hEUIHdUO.net]
どうみても本人の自作自演
https://www.youtube.com/watch?v=IdBBGkiECc4

882 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:03:31.12 ID:r+hk7hk0.net]
>>864
成長…?

883 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:50:21.92 ID:N0TE7UEH.net]
うわぁ、必死杉内

884 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:53:08.58 ID:arzDgCAq.net]
なにこいつ
煽りアフィカス?

885 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 20:58:13.91 ID:VGxDlt+C.net]
デジタル人材の副業・複業採用決定数をプログラミング言語・スキル別で分析
~副業・複業人材の登録が、前年度比3倍に。 調査レポートを公開~
https://prtimes.jp/main/html/rd/p/000000040.000053307.html



886 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 22:42:24.28 ID:R+xkwjLU.net]
>>869
スタバマックくんかも

887 名前:デフォルトの名無しさん [2022/06/17(金) 14:55:42.76 ID:Ld/FFEEi.net]
>>868
レスバ判定員です
言い返せなくなってる時点でお前の負けやでwwwwww

888 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 15:04:06.85 ID:jyuIrjdj.net]
非常にしつこい

889 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 15:10:54.32 ID:2abskYGH.net]
なんでワッチョイ無いんだよ

890 名前:デフォルトの名無しさん [2022/06/17(金) 17:27:59.16 ID:G79h5Zer.net]
わざと曲解して話を盛るのが5chクオリティ

891 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 17:48:44.96 ID:q4amRkHc.net]
>>872
Qiitaの若者の成長に難癖付けて2ch陰口で悦に浸ってるオッサンとか
キモすぎにもほどがあるでんで
もうちょっと客観的に自分を見つめ直した方がええで

892 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 17:52:34.99 ID:douM25C/.net]
ええでんで

893 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 19:51:03.63 ID:6H4dK9M3.net]
>>825
rustが汚く感じるのはビルダーパターンが気持ち悪いのか、ファイルのopenにビルダーパターン使うのが気持ち悪いのか、どちら?

894 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 21:08:38.74 ID:ueszn7cF.net]
>>878
どちらでもない
optionをopenするのが気持ち悪いだけ

895 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 21:38:00.10 ID:8YmvneAf.net]
let mut stream = FileStream::builder().read(true).write(true).build("foo.txt")?;
これならいいのか



896 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 21:48:55.86 ID:G5rhOs4/.net]
Rustにはなんでデフォルト引数ないの?
Kotlinみたいに名前付き引数もデフォルト引数も欲しい

897 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 21:49:12.87 ID:8YmvneAf.net]
でもパス名が最後に来るの確かに思考の順序と一致しなくてウザいな
どのファイルを開くかより先にモードを考えたことなんかなかった

898 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 22:02:17.99 ID:flaMOIXW.net]
>>878
ソフトエンジニアはビルダーパターンは気持ちよすぎになるが
一方、ドカタは気持ち悪いになるってだけだろ
言語としては主ターゲットユーザーがソフトエンジニアかドカタって重要だからな
Rustはソフトエンジニアがターゲットで、そうじゃない奴はRustじゃなくドカタ用言語使え
ってこと。

899 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 22:12:15.35 ID:1Z6irghS.net]
そうでなくて最後に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")?;

それぞれ他のプログラミング言語で書くとどうなるかを考えてみよう

900 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 23:24:36.27 ID:1Z6irghS.net]
あと余談だが
>>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した時のみ有効となる
つまり既にある仕様を壊さずに拡張が可能

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

901 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 01:48:38.80 ID:ElTVdqXo.net]
ビルダーパターンはオプション引数のある言語でも簡単に実現できるんだが
逆は一般的にハードルが高い(Rustならproc macroとかになる)

ビルダーとオプション引数は本来はユースケースによって使い分けるものなので
使い分けられないようならその言語は機能的に劣っているということ

902 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 03:34:01.13 ID:qRZqKkc3.net]
Rustは代数的データ型のOption型があるから特に困らないんじゃない?
むしろOption型がないプログラミング言語はundefinedやnullやnilなどの排除すべき危険なものが存在していて安全じゃない

903 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 03:46:11.38 ID:1ZLmOyHM.net]
欲しいのはオプション引数というかキーワード引数?
Noneなりnullなりが連続する関数呼び出しはつらいよね

904 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 03:49:38.33 ID:qRZqKkc3.net]
デフォルト引数のことか
C、Java、Go、Rust、Haskell、…とサポートしていないプログラミング言語は多いけど
それらの言語が劣っている欠陥言語と言われることはないよ

905 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 07:13:04.48 ID:bAwBngwg.net]
やっぱりカリー化が欲しいのよ



906 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 10:59:53.21 ID:W1b6m0i9.net]
デフォルト引数はあったほうがいい
究極的にはPythonみたいに書けるC言語が欲しい
それを目指したのがおそらくGoだと思うが

907 名前:デフォルトの名無しさん [2022/06/18(土) 11:19:30.38 ID:56BPbiHd.net]
cpythonでええやん

908 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 11:24:27.43 ID:ZQWHh7s0.net]
>>891
あのゴミみたいなsyntaxで目指してるとか鼻で笑うで

909 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:11:06.20 ID:i5hxcodT.net]
>>891
Goには当然デフォルト引数は無い
あと、GoはPythonとは真逆の思想

910 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:28:29.18 ID:1P56+GFt.net]
Kotlinみたいにサポートしてほしい

911 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:37:40.53 ID:n5ZvcUIJ.net]
RustもGoも標準ライブラリが良くない
気持ち悪い

912 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:41:20.81 ID:n5ZvcUIJ.net]
>>889
欠陥言語なんてものはそもそもほとんどない

デフォルト引数は新言語に人気が出てくると確実に要望が出てくる
いつかは実装される
実装できる余地がある言語はいいけど言語仕様上実装不可な場合はどうしようもない

913 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:46:26.67 ID:pOm9NLXW.net]
>>889
ある言語が他の言語に比べて劣っている部分があるということと
その言語が欠陥言語かどうかは全く別の問題
もう少し論理的に物事を考えよう

914 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 12:52:00.37 ID:n5ZvcUIJ.net]
Rsutは意味不明なんだよな
struct初期化で名前指定して初期値入れてるのにデフォルト実装や名前付き引数がない
不思議

915 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:00:28.27 ID:7x85yRDf.net]
Rustはソースコード上の情報多くしたい感じだからデフォルト引数は入らなさそう
ソースコードの見た目をすっきりさせたいなら素直にPythonとか使うのがいいかと



916 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:08:33.19 ID:n5ZvcUIJ.net]
デフォルト引数もなく関数オーバーロードがないから謎の関数がぼこぼこ増えるんだろうな

○○
○○_with_XX
○○_by_YY

みたいに

917 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:15:01.13 ID:n5ZvcUIJ.net]
言語を作った人間がデフォルト引数絶対に入れない!って言ってても
その人が一線から引いて他の開発メンバーに任されたら速攻で入る

918 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:42:57.17 ID:7x85yRDf.net]
Rustはすでに作った人は居なくなってるし
仕様決めるのも多数決とかじゃなく意見が割れるようなのは入らないからな
コミュニティ全体が入れる空気にならない限り無理

919 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:44:38.50 ID:n5ZvcUIJ.net]
新しい元老院の出来上がりか

920 名前:デフォルトの名無しさん [2022/06/18(土) 13:57:51.20 ID:0HZmI7WS.net]
Rustは複雑な引数はstructで渡しなさいという考えだから
その方法の一つがビルダーパターンだけど、structとDefaultを組み合わせたほうが個人的には好き

921 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:03:46.44 ID:1P56+GFt.net]
..Default::default() にシンタックスシュガーあって短く書ければいいんだけど

922 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:46:02.16 ID:W1b6m0i9.net]
引数爆発の解決のアプローチはいろいろあるわな
だがキーワード引数があったほうが爆発したときに楽なんだがな
GoやRust的には構造体使えってことか

923 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:55:32.45 ID:vtBUlFGw.net]
>>899
デフォルトは作ればあるよ
オプション引数の代替策の一つとしても使える

924 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 14:56:30.79 ID:vtBUlFGw.net]
あ、ガイシュツだった

925 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 17:55:33.35 ID:+lle12+G.net]
>>903 >>902
Rustでは不可欠な機能が着実に次々と実現されていっており
それら全て状況も議論も全てオープンに行われている
互換性、安全性、関連する影響がないことなど全て満たす必要があるためどの案件も時間がかかるが信頼できて安心できる

関数の引数の諸々の件も長くオープンに議論され続けているが様々な諸問題がでておりそれらを解決しうる仕様がまだ出来上がらずかなり先になるだろう
そして色々な代替手段があるためこれを必須として現実に困っている人がいない問題でもある



926 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:43:27.93 ID:ZQWHh7s0.net]
>>903
なんや、既に崩壊してる言語なのか
ざまあねえな

927 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:21:21.77 ID:W1b6m0i9.net]
Rustって創始者いないのなんでなの?

928 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:27:03.11 ID:1ZLmOyHM.net]
>>912
創始者が抜けたのはバーンアウトしたかららしい

929 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:56:43.48 ID:ZQWHh7s0.net]
>>912
修復不可能なデザインバグを見つけてしまったから逃げたんだろう

930 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:01:24.70 ID:9K3tt+Ez.net]
Mozilla関係の組織っておんも歩けないような人が多いよね
まともな人から辞めていくんだろうか

931 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:14:49.20 ID:ApP/hHwA.net]
燃え尽きて去ったRustの創造者はいまはどこで何をしているんだ?
まさか、googleでGoしているってことないよな

932 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:18:43.54 ID:1P56+GFt.net]
AppleでSwiftの開発をしてるらしいぞ

933 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:30:46.91 ID:aTjkq+5e.net]
>>910
Rustコミュニティがオープンだとは全然思えない。async-stdとtokioなんか正にそう

934 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:40:14.11 ID:ZQWHh7s0.net]
>>917
やっぱゴミはゴミに惹かれるんやね
XウンコードとかいうゴミゴミのゴミIDEバンドルのゴミに惹かれるなんて
やっぱゴミ

935 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:40:52.91 ID:n5ZvcUIJ.net]
c++の規格団体がクソだったのと大して変わらない



936 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:46:04.24 ID:n5ZvcUIJ.net]
>>910
apple信者の人たちと大して変わらんなw

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

何週遅れてんだよと

937 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 21:07:12.04 ID:G0PSkUdv.net]
全て状況も議論も全てオープンに行われていればまあこんな事になる

938 名前:けがないよな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
[]
[ここ壊れてます]

939 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 21:10:24.45 ID:FdDF61RI.net]
>>921
気持ち悪いRust信者はこの板に1人いるだけだぞ
通称複オジこと、はちみつオジ

940 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 21:20:50.21 ID:ApP/hHwA.net]
>>917
おいおい、ほんとなのか。
優秀な奴だろうからどっかが雇っているだろうと思っていたが。
appleならMozillaより激好待遇だろうな

941 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 21:36:02.59 ID:ZQWHh7s0.net]
>>923
Qiitaで若者に嫉妬したりエアプRust信者したり大変だな

942 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 22:53:12 ID:WzwwMm2M.net]
コミュニティの意見に向き合うのは難しい問題で、どの言語でも同じ
Rust Foundationとか、Kotlin Foundationとか、コミュニティ向けに組織体制をちゃんとする努力があるだけマシだといつも思う

943 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 22:56:08 ID:eg6b2Ems.net]
スタバマックくんw

944 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 23:36:58.06 ID:WzwwMm2M.net]
そして批判の声が見当たらないコミュニティは逆に危険
ユーザーは意見を述べるモチベーションがなかったり、意見を聞き届ける環境すら整えられていない
言い換えるとカルト。

945 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 00:20:26.22 ID:Mk9KDawR.net]
>>926
なんちゃらファウンデーションなんてそれはコミュニティに向き合うとか組織体制がちゃんとする努力をしているとは違う。後ろにスポンサーがいるかどうかが違うだけ
得てしてプラス面もあるが多くは大企業の意見がよく通る



946 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 00:58:59.69 ID:61bWOpc5.net]
>>929
どの言語のコミュニティが理想だと思う?

947 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 02:05:01.40 ID:kfPGjv4I.net]
なんだその質問ww

948 名前:デフォルトの名無しさん [2022/06/19(日) 02:09:16.77 ID:6XdwO9QI.net]
ジャップは10年遅れでPython受け入れだしたからな
Juliaも10年は遅れるよ

バカなジャップだから

949 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 05:40:31.85 ID:SdXdUMni.net]
Julia流行の隆盛とともに死すナムー(-人-)
今はJuliaとか言って、もう少し経ったらの言語マンセーするくせにさ

950 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 07:28:14.73 ID:YnIsF6Qk.net]
10年後にジャップランド土人村が残ってるかも疑わしい

951 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 09:42:08.66 ID:+2WAsQm8.net]
何で突然ジャップとか言い出した?選挙が近いから?

952 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 09:57:40.03 ID:KAsrUTco.net]
>>934ってどこの国の人なんやろな
なんかウンコのにおいしてるけどw

953 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 10:15:25.21 ID:YnIsF6Qk.net]
今の日本の体たらくはジャップランド土人村と呼ぶにふさわしいよ
未だに「日本サイコー!」とか言ってる奴らの方がどうかしてる

954 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 10:30:27.88 ID:2cctUuao.net]
声の大きいクソユーザーのせいで言語がどんどん変わっていくC#

955 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 10:55:12.05 ID:KAsrUTco.net]
>>938
具体的にはどういうとこ?
俺は最初からC#ダサいと思ってたけど



956 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:04:07.37 ID:PZvlYDex.net]
>>939
具体的にダサいところあげてくれ
ついでにダサくない言語も教えてくれ

957 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:07:05.21 ID:C4wP3ian.net]
単純にMicrosoftのソフトウェア開発能力がめちゃくちゃ高いからどんどん変わっていけてるだけだぞ
昔から巨大ソフトウェアをずっとたくさん作り続けてるだけあるよ

他の言語だってリソースさえあればあれもこれもやりたい、って言ってるのたくさんあるじゃん

958 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:11:04.94 ID:2cctUuao.net]
言語仕様が使いもしないパターンマッチよりにどんどん変わってる
学習コストが上がるだけなのに

if (x is { Name.Length: 1 })
{
Console.WriteLine("single-char Name");
}

959 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:13:34.22 ID:KAsrUTco.net]
>>942
へーそうなん
サンクスコ

960 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:15:07.77 ID:2cctUuao.net]
x is { Name.Length: 1 }

これが何を指しているか直観的にわかるように思えて実際は違っている

961 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 13:07:02.40 ID:Mk9KDawR.net]
MicrosoftはTeamsのアップデートしすぎ、ほぼ毎日バージョンが変わる。マジで勘弁してほしい

962 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 13:32:37.74 ID:YdsUdLcR.net]
C#は場当たり的に糖衣構文追加するもんだから
BNFがとんでもない長さになってるな
ここまで言語仕様汚くなった言語他に無いんじゃね?

963 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 13:39:49.73 ID:MGBoiv+i.net]
さすがに C++ Perl Ruby には敵わないだろ

964 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 14:13:50.73 ID:vUT9u2r3.net]
>>944
具体的に他の言語で書くとどういう記述に相当するもの?

965 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 14:16:23.55 ID:61bWOpc5.net]
BNFで構文表現できてる時点で綺麗だよね



966 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 14:21:29.08 ID:Db+21BxG.net]
BNFで表現できない文法はやめてくれ

967 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 14:37:30.12 ID:XPOA14Ne.net]
>>947
Rubyは意外にシンプル

968 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:16:16.80 ID:YnIsF6Qk.net]
>>951
シンプルでなくイージー
型無し糞言語代表だろ

969 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:23:17.11 ID:T+HLe5Kk.net]
rubyに型がないとかw
恥を知れ恥を

970 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 17:07:15.35 ID:SjAidwyp.net]
恥を知れ恥をって一番恥ずかしい煽りだよな

971 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 17:08:50.63 ID:2cctUuao.net]
他の言語の定型文をそのまま日本語に持ってくるからそうなる

富士山は日本で一番高い山の一つですは誤訳

972 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:06:45.19 ID:VFAsiM2X.net]
Rubyはスクリプト言語にしてはPythonに比べ型は厳格だが、なんにでもなれるメソッドなかったっけ?

973 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:28:00.46 ID:8/kH/R2d.net]
#method_missing

974 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 12:03:09.79 ID:7+wjkIp4.net]
>>952
型無し言語って何?

975 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 12:17:32.20 ID:G0GSIi1k.net]
シェルスクリプトやアセンブリのことです



976 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 12:59:21.71 ID:EbOcYieG.net]
シェルスクリプトにも変数の型はあるしアセンブリもレジストリの種類は意識しないといけない

977 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 13:09:02.41 ID:rr2OcjMu.net]
型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど

978 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 13:09:53.23 ID:rr2OcjMu.net]
値に型がない言語のことを型なし言語、って呼ぶのは正しいの?

979 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 13:52:48.64 ID:6L0FdSjR.net]
型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が

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

未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ

980 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 13:55:02.11 ID:4VWLMq9p.net]
>>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種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。

981 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 14:10:59.58 ID:G0GSIi1k.net]
>>960
bashのdeclareについては一旦忘れていただく方向でお願いします

982 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 14:23:54.46 ID:rr2OcjMu.net]
>>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな

983 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 14:32:59.17 ID:njNeMAGl.net]
>>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと?

984 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 15:16:39.40 ID:gnE/PDYV.net]
untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと

現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い

985 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 15:39:41.45 ID:rr2OcjMu.net]
>>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。



986 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 15:54:46.01 ID:4VWLMq9p.net]
型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから

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

これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う

987 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 16:28:03.20 ID:G0GSIi1k.net]
複おじ怒りのマジレス

988 名前:デフォルトの名無しさん [2022/06/20(月) 18:29:27.28 ID:1agQsnkM.net]
>>901
これがちょっと辛いんだよな。

989 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 18:53:41.48 ID:BnXOM/sm.net]
型無し言語と言えば型無しラムダ計算だろ。

990 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 19:04:42.99 ID:hXDnNrPc.net]
次スレ(リニューアル)
Era 26

コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。

991 名前:デフォルトの名無しさん [2022/06/20(月) 19:05:46.77 ID:hXDnNrPc.net]
https://mevius.5ch.net/test/read.cgi/tech/1655719441/l50
↑次スレのリンクです。もし興味があればどうぞ。

(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。)

992 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 19:24:15.90 ID:cgMFd80D.net]
そういうのGitHubでやったほうがいいよ

993 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 19:52:16.37 ID:E2oosySA.net]
>>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()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている

994 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 20:07:59.34 ID:8GsqMDfw.net]
次スレ立てるのはもうそろそろかな

995 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 20:46:13.10 ID:6L0FdSjR.net]
>>975
アスペっぽい ガイジ



996 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:02:14.54 ID:Hg6hQLhP.net]
>>963
ガイジ乙!

997 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:08:22.86 ID:mSfgS0Wr.net]
>>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う

998 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:24:31.48 ID:j7veV6LL.net]
シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?

999 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:29:29.90 ID:ofPdKV5n.net]
>>982
その2つがどう関係あるのか説明してくれ

1000 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:39:32.57 ID:j7veV6LL.net]
シャドーイング  同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き

1001 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 21:50:35.85 ID:lr2wAV+c.net]
引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。

1002 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:04:20.07 ID:j7veV6LL.net]
せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ

1003 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:09:55.02 ID:xRbFgwNB.net]
>>984
なるほどそういう意味か

イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる

1004 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:17:07.52 ID:G0GSIi1k.net]
>>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな

1005 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:26:34.16 ID:GOjINbNj.net]
>>982
効果が真逆という結論のようです

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

確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね



1006 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:30:15.50 ID:j7veV6LL.net]
書き込みする前に読み返したか?
ふわっふわしてるぞ

1007 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:36:51.94 ID:j7veV6LL.net]
Rsutは関数オーバーロードがないから
int(price_str)できない

1008 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:44:52.02 ID:d/VymnYf.net]
>>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める

1009 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:52:38.23 ID:j7veV6LL.net]
Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある

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


-1_i32.abs()
は -1になる変な言語

1010 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:54:18.35 ID:GOjINbNj.net]
>>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?

1011 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:55:48.87 ID:j7veV6LL.net]
>>994
出た
愚者の?

1012 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:59:31.50 ID:bmv2finQ.net]
>>993
>int(price_str)できない
>Rustは同様に abs(x)ができない

それはどっちもできるよ

1013 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 22:59:45.45 ID:4VWLMq9p.net]
>>993
i32::abs(-1)

1014 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 23:01:03.11 ID:j7veV6LL.net]
parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味

そのparseだってどうせトレイトで実装してんだろ?

1015 名前:デフォルトの名無しさん [2022/06/20(月) 23:02:42.38 ID:MklghZCY.net]
>>985
ジェネリクスはまた別物だろ。

ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。



1016 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 23:03:17.12 ID:j7veV6LL.net]
>>996-997

それは実質fabs()と変わらない

1017 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒

1018 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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