スレタイ以外の言語もok
前スレ
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1587276362/
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
2021/08/22(日) 08:59:03.31ID:QorwbXcj
268デフォルトの名無しさん
2021/10/19(火) 08:56:27.98ID:9axoCOPN 二番目はAppleと言われてるけどどう考えてもAmazon
ケツから将来性の無い順番で消える、つまりGAFAMのMが消えてGAFAになったので
次のAppleが消えてGAFになる
ケツから将来性の無い順番で消える、つまりGAFAMのMが消えてGAFAになったので
次のAppleが消えてGAFになる
269デフォルトの名無しさん
2021/10/19(火) 09:55:30.99ID:T9srRJav GAFAMって言葉が生まれたのはGAFAより後では?
MSをハブったらかわいそうってことで生まれたような
将来性が一番微妙だからハブられてたんかもしれんけども
MSをハブったらかわいそうってことで生まれたような
将来性が一番微妙だからハブられてたんかもしれんけども
270デフォルトの名無しさん
2021/10/19(火) 10:09:08.48ID:L/QTVpd7 まあFacebookよりは明らかに上やから入って当然ではある
271デフォルトの名無しさん
2021/10/19(火) 13:41:00.66ID:HngacVLx 国産検索エンジンはなぜつぶされるのか
272デフォルトの名無しさん
2021/10/19(火) 19:00:05.85ID:089JTvXc Crystal入れてちょんまげ
273デフォルトの名無しさん
2021/10/19(火) 19:37:36.30ID:OaBrXs9n crystalはrubyライクという以外あまり特徴がないよな。次世代言語としてどこで存在感出せばいいのか
274デフォルトの名無しさん
2021/10/19(火) 20:15:37.83ID:LrPlA7Vp >>254
一人で作業するなら好きな言語使えば?
一人で作業するなら好きな言語使えば?
275デフォルトの名無しさん
2021/10/20(水) 09:10:49.09ID:OEiI06HQ >>261
++
++
276デフォルトの名無しさん
2021/10/20(水) 16:10:03.72ID:lLepbwfw Nim version 1.6 is now officially released!
277デフォルトの名無しさん
2021/10/21(木) 09:29:50.15ID:Hd41fW1K Nimくん自分とこのスレに書き込まれずにこっちにばかり話題が来るのちょっとかわいそうになってきた
278デフォルトの名無しさん
2021/10/23(土) 00:34:45.65ID:o3xA5lbA >>273
Crystalの開発は、Rubyの特徴である優雅さと生産性の高さ、コンパイラ言語の特徴である実行速度の速さと
効率の良さと型安全を目的として、2011年6月に開始された。バックエンドにLLVMを利用することによって
効率的な機械語を生成することができる。
他のコンパイラ言語と比較して、高度な型推論とユニオン型の組み合わせによって、高水準スクリプト言語の
ような簡潔な記述を実現している。
Goに影響されたファイバー間の通信を行うための軽量なチャネルとファイバーが実装されている
Crystalの開発は、Rubyの特徴である優雅さと生産性の高さ、コンパイラ言語の特徴である実行速度の速さと
効率の良さと型安全を目的として、2011年6月に開始された。バックエンドにLLVMを利用することによって
効率的な機械語を生成することができる。
他のコンパイラ言語と比較して、高度な型推論とユニオン型の組み合わせによって、高水準スクリプト言語の
ような簡潔な記述を実現している。
Goに影響されたファイバー間の通信を行うための軽量なチャネルとファイバーが実装されている
279デフォルトの名無しさん
2021/10/23(土) 01:42:06.05ID:psrWRCod 俺が思うに
このスレに登場する言語は次世代言語なんかでは無く
狂信者がいる言語にしか見えない
次世代言語の話してるのに「C++」という単語の出現頻度の高さがそれを物語ってる
旧来の狂信者がいる言語と新しい狂信者がいる言語の
宗教戦争の場がこのスレだと感じた
このスレに登場する言語は次世代言語なんかでは無く
狂信者がいる言語にしか見えない
次世代言語の話してるのに「C++」という単語の出現頻度の高さがそれを物語ってる
旧来の狂信者がいる言語と新しい狂信者がいる言語の
宗教戦争の場がこのスレだと感じた
280デフォルトの名無しさん
2021/10/23(土) 08:56:00.74ID:qfDvYrOr 気がつくのが遅いよ、きみ!
281デフォルトの名無しさん
2021/10/23(土) 10:07:43.64ID:rv17aNSC >>279
ちょっと前まではC++が最速最強言語だったからでしょう
ただし唯一の欠点がメモリ安全でないコードも生じ得て現実にセキュリティ脆弱性なども招いていること
そこで次世代言語としてC/C++と同じく最速でありつつメモリ安全性を保証する真の最速最強言語Rustが登場したことから旧世代のC++が比較対象として話に出るのでしょう
ちょっと前まではC++が最速最強言語だったからでしょう
ただし唯一の欠点がメモリ安全でないコードも生じ得て現実にセキュリティ脆弱性なども招いていること
そこで次世代言語としてC/C++と同じく最速でありつつメモリ安全性を保証する真の最速最強言語Rustが登場したことから旧世代のC++が比較対象として話に出るのでしょう
282デフォルトの名無しさん
2021/10/23(土) 11:45:11.96ID:kIBEGvOM むしろアニメの登場人物全員JKにするみたいな奴が狂信者
爺婆はいても信者はいない
爺婆はいても信者はいない
283デフォルトの名無しさん
2021/10/23(土) 12:14:12.92ID:OTpUh678 c++の唯一の欠点とかw
284デフォルトの名無しさん
2021/10/23(土) 13:05:15.91ID:kIBEGvOM 賛成とか反対とか言えなくてへらへら笑ってるのも悪いんだよ
285デフォルトの名無しさん
2021/10/23(土) 15:14:01.04ID:kbstlDmN >>281
結局最速にするにはunsafeするやん。そういう誤魔化しをあえて語らんところが信用を失うんだよ。
結局最速にするにはunsafeするやん。そういう誤魔化しをあえて語らんところが信用を失うんだよ。
286デフォルトの名無しさん
2021/10/23(土) 17:40:45.89ID:o3xA5lbA rusterの気持ち悪いのが一番嫌い、お前が自分とこの発音で盛り上がるスレに書いてろ
287デフォルトの名無しさん
2021/10/23(土) 17:46:02.31ID:Usgnsf5k 最初から全部unsafeで書けばいいのに
288デフォルトの名無しさん
2021/10/23(土) 18:07:07.88ID:A4VxVCoL289デフォルトの名無しさん
2021/10/23(土) 18:10:31.38ID:dzQukzcx RustってC++のmoveが楽になった言語の認識だったけど
ここ読むと捉え方ちがうような気がしてきた
ここ読むと捉え方ちがうような気がしてきた
290デフォルトの名無しさん
2021/10/23(土) 18:12:33.07ID:rnZCdbOY >>288
競プロでもしてんじゃね
競プロでもしてんじゃね
291デフォルトの名無しさん
2021/10/23(土) 18:14:14.05ID:kIBEGvOM 最安で欲しい物を手に入れる方法が購入ではなく盗むことだとしたら盗むか?
unsafeで最速にするというアイデアはそういうイメージ
unsafeで最速にするというアイデアはそういうイメージ
292デフォルトの名無しさん
2021/10/23(土) 18:26:04.70ID:A4VxVCoL >>289
メモリ安全性保証などの話は別にしても
C++は最初の小さな家Cを何度も建て増ししてきたような言語
Rustは最初から最新のパラダイムを洗練して採り入れた言語なのでプログラミングのしやすさがかなり違うかな
メモリ安全性保証などの話は別にしても
C++は最初の小さな家Cを何度も建て増ししてきたような言語
Rustは最初から最新のパラダイムを洗練して採り入れた言語なのでプログラミングのしやすさがかなり違うかな
293デフォルトの名無しさん
2021/10/23(土) 18:53:49.04ID:OfW/Ted4 誰もがc++ありえんと思ってて、代わりの候補もたくさん出てきた中で、ようやく使い物になりそうなのがrust
294デフォルトの名無しさん
2021/10/23(土) 19:14:18.65ID:JF+Bwqfj C++が互換性を無視して不必要な機能をばっさり切り捨てることができればだいぶましな言語になる気がするけどそんなことはできないんだろうな。
295デフォルトの名無しさん
2021/10/23(土) 19:41:04.11ID:kIBEGvOM 互換性がないバージョン1から3があるなら
最も不必要なのは2なんだよ
2を無視して1の互換性を重視するのは言うほど悪くない
最も不必要なのは2なんだよ
2を無視して1の互換性を重視するのは言うほど悪くない
296デフォルトの名無しさん
2021/10/23(土) 20:21:23.52ID:8QkqEddx たしか、あわしろ氏がLinuxをRustで書き直すプロジェクト始めたはず。
297デフォルトの名無しさん
2021/10/23(土) 20:24:24.83ID:rnZCdbOY どこで?
298デフォルトの名無しさん
2021/10/23(土) 21:01:07.99ID:WtF24tRL299デフォルトの名無しさん
2021/10/23(土) 23:36:13.26ID:rsO/lln+ Rustは難しい言語ではない。気軽に始めてみるところからスタートしよう。Rust活用企業の現場に聞いてみた
https://engineer-lab.findy-code.io/rust
松本おおおおおおおお!
https://engineer-lab.findy-code.io/rust
松本おおおおおおおお!
300デフォルトの名無しさん
2021/10/24(日) 14:51:32.96ID:x5aKIXa7 FacebookはReactとかVRあるから日本でも結構重要なポジションになりつつあるな
SNSは全然流行ってないとしても
SNSは全然流行ってないとしても
301デフォルトの名無しさん
2021/10/24(日) 17:16:59.20ID:MlWNQcCM c++の安心側に制約を追加したSmart c++は欲しい。Rustは要らない。
302デフォルトの名無しさん
2021/10/24(日) 18:13:51.90ID:NLtlOSxj D言語の話した?
303デフォルトの名無しさん
2021/10/24(日) 19:18:02.70ID:4GW3Pp+f F#……
304デフォルトの名無しさん
2021/10/24(日) 20:44:53.71ID:x5aKIXa7 F#って結局何作れる言語なの?
305デフォルトの名無しさん
2021/10/24(日) 23:46:02.08ID:J36a/Om9 >>301
プログラミングしやすいRustがあるのにC++ベースにはもう戻りたくないよね
プログラミングしやすいRustがあるのにC++ベースにはもう戻りたくないよね
306デフォルトの名無しさん
2021/10/24(日) 23:51:33.94ID:x5aKIXa7 そういえばWebAssembly Studioなんてのがあるのを最近知った
https://webassembly.studio/
https://webassembly.studio/
307デフォルトの名無しさん
2021/10/25(月) 00:38:46.00ID:Zg5tRANc >>301
c++23で契約プログラミングが標準化されたら改善するかも?
c++23で契約プログラミングが標準化されたら改善するかも?
308デフォルトの名無しさん
2021/10/25(月) 00:42:01.96ID:Zg5tRANc そういやrustって契約プログラミングをサポートする文法あったっけ?
309デフォルトの名無しさん
2021/10/25(月) 01:31:51.79ID:13mKJPww310デフォルトの名無しさん
2021/10/25(月) 23:17:33.61ID:vPVmdF1Z 結局、データの共有かコピーかが楽に設定できるかどうかってことに焦点が当たって、
rustは捨てられることになるよ。
こんな明らかなことさえわからん連中ばっかなのが面倒ごとだな。
rustは捨てられることになるよ。
こんな明らかなことさえわからん連中ばっかなのが面倒ごとだな。
311デフォルトの名無しさん
2021/10/25(月) 23:55:02.93ID:Hh6pHipi コピーの反対はムーブかもしれないので、コピーの反対は共有だろうという雑な考えを捨てよう
312デフォルトの名無しさん
2021/10/26(火) 10:23:33.99ID:oHFZf85O >>267
goroutineのネイティブスレッドとM:N関係。軽量と言っても、当然、中でコンテキストスイッチのように
実行の切り替えがある。他の言語は(機能が)無いので真っ当に比較出来ないが、ほかの言語で似た外部の
ライブラリを入れるとgoより重たいし、nodeのように、I/Oバウンドな非同期しかないと1つが詰まったら
全部止まるデメリットがある。goのGCが遅めなのは、当然、このgoroutineの並行性における不可分操作が
難しいからであり、rustのRc/Arcやnimの--gc:arc/orcに比べ並行性を保ちながら参照カウントを不可分の
操作にするとコストがとても大きくなるためと言われる。多くの人が勘違いしているのは、理論上はRcより
(トレース系のGCは)GCのほうが効率的(高速化が望める)だ、ただしGCはネックが生じる
goroutineのネイティブスレッドとM:N関係。軽量と言っても、当然、中でコンテキストスイッチのように
実行の切り替えがある。他の言語は(機能が)無いので真っ当に比較出来ないが、ほかの言語で似た外部の
ライブラリを入れるとgoより重たいし、nodeのように、I/Oバウンドな非同期しかないと1つが詰まったら
全部止まるデメリットがある。goのGCが遅めなのは、当然、このgoroutineの並行性における不可分操作が
難しいからであり、rustのRc/Arcやnimの--gc:arc/orcに比べ並行性を保ちながら参照カウントを不可分の
操作にするとコストがとても大きくなるためと言われる。多くの人が勘違いしているのは、理論上はRcより
(トレース系のGCは)GCのほうが効率的(高速化が望める)だ、ただしGCはネックが生じる
313デフォルトの名無しさん
2021/10/26(火) 11:22:52.21ID:UCZJSiVy バカが老害ガー言われ始めるのに大体10年くらいかかる。
こうして流行は終わる。
こうして流行は終わる。
314デフォルトの名無しさん
2021/10/27(水) 12:05:58.55ID:6tzLPjk/ Crystal入れてください
315デフォルトの名無しさん
2021/10/27(水) 14:14:45.58ID:P9D6Cr2V 存在感微妙だし。nimもいらんな
316デフォルトの名無しさん
2021/10/27(水) 15:48:46.91ID:G9Y5/nKM Zigでもいれとく?
317デフォルトの名無しさん
2021/10/27(水) 16:26:23.01ID:Jg7L84/d Vがいいかも
318デフォルトの名無しさん
2021/10/28(木) 12:19:59.27ID:pk2ZbUG1 Vの良さでも語ってくれ
情報少なすぎてよく分からない
情報少なすぎてよく分からない
319デフォルトの名無しさん
2021/10/28(木) 13:00:24.39ID:owG9GWEY あれは詐欺だろ
320デフォルトの名無しさん
2021/10/29(金) 00:13:25.52ID:RD2SEv+6 vlangは0.3が全然出ないね。mutを後から導入したのがよほど不具合頻発になったのだろうか
321デフォルトの名無しさん
2021/10/30(土) 02:12:19.09ID:CsJIfRO2 次に取り沙汰されるのはKokaみたいなAlgebraic Effectsのある言語だと思う
322デフォルトの名無しさん
2021/10/30(土) 02:29:08.63ID:qGEfyGin 取り沙汰される、って何年後のことやねん
やたら表現力高そうだし、ベストプラクティスがなかなか定まらなそう
やたら表現力高そうだし、ベストプラクティスがなかなか定まらなそう
323デフォルトの名無しさん
2021/10/30(土) 03:11:26.17ID:U9OTRLVf rustだgoだと言ってたら一瞬Vが騒がれて消えてなくなって今はnimなの?
今ならrustでいいじゃん
クッソ速くて賢くて小さくて安全でどこでも動いて便利な使いやすい言語誰か作ってくれ
一番大事なのは速いことな
今ならrustでいいじゃん
クッソ速くて賢くて小さくて安全でどこでも動いて便利な使いやすい言語誰か作ってくれ
一番大事なのは速いことな
324デフォルトの名無しさん
2021/10/30(土) 08:15:37.97ID:fF4OSUNs Nim is efficient, expressive, and elegant.
どこらへんがどうエレガントなのか謎やわ
どこらへんがどうエレガントなのか謎やわ
325デフォルトの名無しさん
2021/10/30(土) 10:49:51.87ID:5VdQtJkF 「エレガントさ」とか「楽しさ」で売ってる言語はクソの法則
326デフォルトの名無しさん
2021/10/30(土) 11:52:44.92ID:YSY9yYdl 他の言語の存在を無視したりOSの存在を無視したりしたら
まともな説明ができなくなる
空虚な言葉を使うのは原因というよりむしろ結果
まともな説明ができなくなる
空虚な言葉を使うのは原因というよりむしろ結果
327デフォルトの名無しさん
2021/10/30(土) 13:21:47.38ID:U9OTRLVf むしろ複数のコンピュータをまとめて1つの環境として扱い、その環境で最適化して実行可能な言語を作ってくれ
328デフォルトの名無しさん
2021/10/30(土) 13:40:35.45ID:OQ2dRDm5 >>327
速度優先とメモリ効率優先は誰が決めるの?
速度優先とメモリ効率優先は誰が決めるの?
329デフォルトの名無しさん
2021/10/30(土) 14:03:03.78ID:U9OTRLVf330デフォルトの名無しさん
2021/10/30(土) 22:25:15.35ID:G/S2+R78 >>324
公式は3つ挙げてる。macro記述と言語そのもの差異がほとんど無いことを挙げている。$aとか別言語になったり
してない。もう1つはpython風の構文がエレガントだと言っている(これはpython風の構文を多くの人が嫌うの
で賛否が分かれると思う)もう1つは多くの言語が該当するので書かない。個人的にはvar/letじゃなくlet mutや
いちいち打つ::や、マクロで!とかの方がエレガントだと思わんけど、goでいえばpanicがあるのにtry/catchが無い
(多値戻りの2番目にerrorを入れてif判定させる)、genericsがまだ無いのもエレガントとは思えない
公式は3つ挙げてる。macro記述と言語そのもの差異がほとんど無いことを挙げている。$aとか別言語になったり
してない。もう1つはpython風の構文がエレガントだと言っている(これはpython風の構文を多くの人が嫌うの
で賛否が分かれると思う)もう1つは多くの言語が該当するので書かない。個人的にはvar/letじゃなくlet mutや
いちいち打つ::や、マクロで!とかの方がエレガントだと思わんけど、goでいえばpanicがあるのにtry/catchが無い
(多値戻りの2番目にerrorを入れてif判定させる)、genericsがまだ無いのもエレガントとは思えない
331デフォルトの名無しさん
2021/10/30(土) 22:27:20.82ID:G/S2+R78 >>327
Juliaでは、標準ライブラリの一つとして提供されているDistributedモジュールで分散メモリ並列計算を実装して
いる。Juliaのベースインストール状態では、2種類のクラスタがサポートされる。(1つはローカル)
・複数のマシンからなるクラスタ。--machine-fileオプションで指定する。パスワードが不要なSSHを
用いてJuliaのワーカプロセスを指定した計算機で分散される
@distributed for i = 1:100000
a[i] + b[i]
end
こういうのが1つの実行環境で複数のコンピュータでクラスタ実行される
--machine-fileで
3 164.67.165.21 # 3process
5 164.67.165.22 # 5process
Juliaでは、標準ライブラリの一つとして提供されているDistributedモジュールで分散メモリ並列計算を実装して
いる。Juliaのベースインストール状態では、2種類のクラスタがサポートされる。(1つはローカル)
・複数のマシンからなるクラスタ。--machine-fileオプションで指定する。パスワードが不要なSSHを
用いてJuliaのワーカプロセスを指定した計算機で分散される
@distributed for i = 1:100000
a[i] + b[i]
end
こういうのが1つの実行環境で複数のコンピュータでクラスタ実行される
--machine-fileで
3 164.67.165.21 # 3process
5 164.67.165.22 # 5process
332デフォルトの名無しさん
2021/10/30(土) 22:36:16.21ID:G/S2+R78 まあmacro記述を簡単にインライン展開するために別言語風になるのも分かるけど、、名前衝突が起きないように
デフォルトで別名に自動で名前を付けて展開してインライン展開する場合は特殊タグを付けるほうが
デフォルトで別名に自動で名前を付けて展開してインライン展開する場合は特殊タグを付けるほうが
333デフォルトの名無しさん
2021/10/30(土) 23:31:55.44ID:U9OTRLVf >>331
そんなの言語レベルのサポートいらんやん
分散も並列化も勝手にやってくれ
プロセスもマシンも意識したくない
意識してもいいけど必須じゃなく、自動で可能な限り適切にリソースが配分されてほしい
プロセスとかそんなざっくりした単位でもなくね
それが実現可能な言語を用意せよと言っている
そんなの言語レベルのサポートいらんやん
分散も並列化も勝手にやってくれ
プロセスもマシンも意識したくない
意識してもいいけど必須じゃなく、自動で可能な限り適切にリソースが配分されてほしい
プロセスとかそんなざっくりした単位でもなくね
それが実現可能な言語を用意せよと言っている
334デフォルトの名無しさん
2021/10/31(日) 00:40:29.24ID:Qz/5KmYR それって言語じゃなくてOSとか別のレイヤーが果たす役割じゃね?
335デフォルトの名無しさん
2021/10/31(日) 00:43:34.15ID:e5ZzvOAs 言語レベルサポートが無いということは、分散も並列化も勝手にやったら不可分解の通常のforループも
分解されてしまうので、そんなことは不可能。繰り返し順次実行と、(表現上は繰り返しだが)並列実行
では意味も結果も異なる。
要らないというコンピューター言語学での証明は無い。思想的には集合要素に対するmap/reduceなどが
並列の操作ができるからと言って、forだけで表現できる語彙ではない。言語の標準ライブラリにreduce
などのAPIがある事は、それそのものが(並列に実行していないのに)並列性の表現と同じ意味。
CPU側でそれが並行操作可能か、何らしらのマーカーは必要というのは素人以外はすぐ分かる事
>”言語を用意せよと言っている”おまえ何様やねんw
分解されてしまうので、そんなことは不可能。繰り返し順次実行と、(表現上は繰り返しだが)並列実行
では意味も結果も異なる。
要らないというコンピューター言語学での証明は無い。思想的には集合要素に対するmap/reduceなどが
並列の操作ができるからと言って、forだけで表現できる語彙ではない。言語の標準ライブラリにreduce
などのAPIがある事は、それそのものが(並列に実行していないのに)並列性の表現と同じ意味。
CPU側でそれが並行操作可能か、何らしらのマーカーは必要というのは素人以外はすぐ分かる事
>”言語を用意せよと言っている”おまえ何様やねんw
336デフォルトの名無しさん
2021/10/31(日) 00:44:58.68ID:LjLsZLEJ プログラミング言語という概念すら理解してないのがこのスレの住人のレベル
337デフォルトの名無しさん
2021/10/31(日) 01:28:26.60ID:e5ZzvOAs >>334
その通り。分散コンピューティング/グリッド・コンピューティングなどではミドルウェアが利用される。
Erlangなどでも、分散処理できるがspawn(node, ...)などノードを意識しなくてはならない。また
CPU処理が分散できたからと言って、ファイルシステムなどローカルしかないため、大規模分散には
分散ファイルシステムが必要になり、Googleのようにbigtableができ、その上で耐故障性を備えるように
仮想化して、スケールアウトやオーケストレーションのためにkubernetesなどなど、別レイヤーが
果たす役割が多い
その通り。分散コンピューティング/グリッド・コンピューティングなどではミドルウェアが利用される。
Erlangなどでも、分散処理できるがspawn(node, ...)などノードを意識しなくてはならない。また
CPU処理が分散できたからと言って、ファイルシステムなどローカルしかないため、大規模分散には
分散ファイルシステムが必要になり、Googleのようにbigtableができ、その上で耐故障性を備えるように
仮想化して、スケールアウトやオーケストレーションのためにkubernetesなどなど、別レイヤーが
果たす役割が多い
338デフォルトの名無しさん
2021/10/31(日) 01:35:34.83ID:sAwtPlvj そういうことじゃないw
俺様が言ってるのはマシン/アプリ/ライブラリ/OS/デバイスの垣根を超えて
言語とそれらの複合環境がカバーしうる汎用な表現が可能な言語やw
作れw
俺様が言ってるのはマシン/アプリ/ライブラリ/OS/デバイスの垣根を超えて
言語とそれらの複合環境がカバーしうる汎用な表現が可能な言語やw
作れw
339デフォルトの名無しさん
2021/10/31(日) 01:43:15.98ID:e5ZzvOAs 基地外かあ…、この業界こういうの大杉壮大な能無し基地外のかまってちゃん
340デフォルトの名無しさん
2021/10/31(日) 01:47:23.36ID:sAwtPlvj 例えば組み込み制御系で使えばCの配列を作るのと同じ記述でスケールしたら分散KVSもどきやらが出来上がるような言語
並列実行可能かどうかはあるロジックの入力が別のロジックの出力を使ってるかどうかだけ
並列実行可能かどうかはあるロジックの入力が別のロジックの出力を使ってるかどうかだけ
341デフォルトの名無しさん
2021/10/31(日) 01:58:47.24ID:sAwtPlvj できそうにないだろ?
既存のアーキテクチャにどっぷりなら
高速にぶん回したかったらrustでもC++でもgolangでも使えばいいし
スケールするだけで十分な速度が出るなら誰でも使える言語を使ってスケールすればいいし
僅かに違う新しめの言語の差分をネタに趣味・嗜好を語るよりは夢を語った方が有意義でないかい?w
既存のアーキテクチャにどっぷりなら
高速にぶん回したかったらrustでもC++でもgolangでも使えばいいし
スケールするだけで十分な速度が出るなら誰でも使える言語を使ってスケールすればいいし
僅かに違う新しめの言語の差分をネタに趣味・嗜好を語るよりは夢を語った方が有意義でないかい?w
342デフォルトの名無しさん
2021/10/31(日) 02:01:52.96ID:dE1SXutD Common Lisp
343デフォルトの名無しさん
2021/10/31(日) 02:08:26.79ID:e5ZzvOAs おまえのチンポコの穴から並列でションベン出来るか考えてロンパーロンパーしてろwくそ基地外w
344デフォルトの名無しさん
2021/10/31(日) 02:12:58.45ID:e5ZzvOAs おまえがいるだけで世の中迷惑、人の足引っ張りまくり、親に迷惑かけまくり、誰もがお前を見ると顔をしかめる。
クズの癖に1つも優れた能力も、努力もなく、相手を貶し、悦に入る
問題の原因の根本たるおまえが消えて無くなれば、よほど有意義
クズの癖に1つも優れた能力も、努力もなく、相手を貶し、悦に入る
問題の原因の根本たるおまえが消えて無くなれば、よほど有意義
345デフォルトの名無しさん
2021/10/31(日) 10:57:39.56ID:dKAtRzTx LISP専用CPUとRISC-CPUを聴き間違えたけど同じもの?
346デフォルトの名無しさん
2021/10/31(日) 11:13:06.97ID:gOKmIPxI347デフォルトの名無しさん
2021/10/31(日) 12:55:57.25ID:o3yW9Bfn >>346
公式はgoと比べてる訳じゃないよ?
公式はgoと比べてる訳じゃないよ?
348デフォルトの名無しさん
2021/10/31(日) 13:41:46.14ID:nF8ypkXG Goは断捨離の観点でエレガント
try throw catchなんか無くても関数は返り値をエラー値とタプルで返せばいいし
classなんかなくても構造体と関数でいいし
イテレータなんか使わずともfor回せばいい
try throw catchなんか無くても関数は返り値をエラー値とタプルで返せばいいし
classなんかなくても構造体と関数でいいし
イテレータなんか使わずともfor回せばいい
349デフォルトの名無しさん
2021/10/31(日) 13:50:44.46ID:5SuYQG0J 落ち着いていて品のよいさま。上品。優雅。エレガン。
(考え方や手法などが)簡潔で要を得たさま。手際のよいさま。明快なさま。
抽象度は高めたほうが優雅なのでは?
(考え方や手法などが)簡潔で要を得たさま。手際のよいさま。明快なさま。
抽象度は高めたほうが優雅なのでは?
350デフォルトの名無しさん
2021/10/31(日) 13:56:01.91ID:sAwtPlvj 昔のperlみたいにならないよう糖衣構文やそれに類するモノはどちらかに振った方がいい(エレガントな)こともある
結局は好みだけどなw
結局は好みだけどなw
351デフォルトの名無しさん
2021/10/31(日) 14:23:30.67ID:512CMESs 中置記法をユーザー定義する構文糖を否定したやつは失敗
PythonとC++は少なくともその失敗をしなかった
PythonとC++は少なくともその失敗をしなかった
352デフォルトの名無しさん
2021/10/31(日) 15:04:58.04ID:OVPW0Dsp Nim言語では最近特定のunicode文字を2項演算子としてオーバーロードできるようになりました。
unicodeにある文字を演算子として使うのは文字を入力し辛いとか∪∨がアルファベットのUVと似ていて紛らわしいとかで反対派もいるようですが。
https://nim-lang.org/docs/manual.html#lexical-analysis-unicode-operators
proc `*` (x: Dollar, y: int): Dollar =
result = Dollar(int(x) * y)
みたいな感じで'*'演算子を定義できます。
https://nim-lang.org/docs/manual.html#procedures
unicodeにある文字を演算子として使うのは文字を入力し辛いとか∪∨がアルファベットのUVと似ていて紛らわしいとかで反対派もいるようですが。
https://nim-lang.org/docs/manual.html#lexical-analysis-unicode-operators
proc `*` (x: Dollar, y: int): Dollar =
result = Dollar(int(x) * y)
みたいな感じで'*'演算子を定義できます。
https://nim-lang.org/docs/manual.html#procedures
353デフォルトの名無しさん
2021/10/31(日) 15:42:26.32ID:OVPW0Dsp Nim言語にはtype classというのがあって、これを使うと特定の種類の型のみに限定されたgeneric procedureを簡単にかけます。
詳しくは
https://nim-lang.org/docs/manual.html#generics-type-classes
Nim言語ではprocedure/template/macroを呼び出す方法が複数あって、
foo(arg1, arg2)という普通の書き方に加えarg1.foo(arg2)というオブジェクト指向のメソッドぽく呼ぶMethod call syntaxと括弧を省略してコマンドラインぽくfoo arg1, arg2と書くcommand invocation syntaxがあります。
https://nim-lang.org/docs/manual.html#procedures-method-call-syntax
https://nim-lang.org/docs/manual.html#procedures-command-invocation-syntax
詳しくは
https://nim-lang.org/docs/manual.html#generics-type-classes
Nim言語ではprocedure/template/macroを呼び出す方法が複数あって、
foo(arg1, arg2)という普通の書き方に加えarg1.foo(arg2)というオブジェクト指向のメソッドぽく呼ぶMethod call syntaxと括弧を省略してコマンドラインぽくfoo arg1, arg2と書くcommand invocation syntaxがあります。
https://nim-lang.org/docs/manual.html#procedures-method-call-syntax
https://nim-lang.org/docs/manual.html#procedures-command-invocation-syntax
354デフォルトの名無しさん
2021/10/31(日) 15:50:59.21ID:15Fr5KXV 実に表現豊かでエレガントですねぇ…☺
355デフォルトの名無しさん
2021/10/31(日) 16:18:17.43ID:nF8ypkXG >>353
type classは関数型言語Haskell発祥
そのNimのページを見る限りその貧弱なおもちゃ版に見える
例えばNimと同じ手続き型言語のRustのtraitも用語は違えどtype classなので比較するとわかりやすいが機能面でも型付け面でも強力
type classは関数型言語Haskell発祥
そのNimのページを見る限りその貧弱なおもちゃ版に見える
例えばNimと同じ手続き型言語のRustのtraitも用語は違えどtype classなので比較するとわかりやすいが機能面でも型付け面でも強力
356デフォルトの名無しさん
2021/10/31(日) 17:04:32.64ID:r7nTmIjE >>348
言ってる事はその通り。goで構文上、覚える事の少なさは”非常に良い”が、上の簡潔で要を得たさまを借りて
言えば、finallyに相当するdeferはあるのに、?演算子が無いだけでerrが2番目というルールでifを多発させる。
これはRust/Swift/HaskellのResult/Option/Either標準伴うルールとほぼ同じだが、?演算子が無いだけで
if err != nil { return nil, err }を書かなくてはならない。あるいは(panicではなく)exceptionに対する
try/catch/finallyとも言い換えることが出来る
言ってる事はその通り。goで構文上、覚える事の少なさは”非常に良い”が、上の簡潔で要を得たさまを借りて
言えば、finallyに相当するdeferはあるのに、?演算子が無いだけでerrが2番目というルールでifを多発させる。
これはRust/Swift/HaskellのResult/Option/Either標準伴うルールとほぼ同じだが、?演算子が無いだけで
if err != nil { return nil, err }を書かなくてはならない。あるいは(panicではなく)exceptionに対する
try/catch/finallyとも言い換えることが出来る
357デフォルトの名無しさん
2021/10/31(日) 17:32:36.81ID:Qz/5KmYR https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md
このドラフトでもRustの?演算子とかが言及されてるけど、そういうのはやっぱ欲しいわ
このドラフトでもRustの?演算子とかが言及されてるけど、そういうのはやっぱ欲しいわ
358デフォルトの名無しさん
2021/10/31(日) 18:15:22.28ID:4KbMhR6u 演算子なら
∩∪⊕
あたりは欲しい
∩∪⊕
あたりは欲しい
359デフォルトの名無しさん
2021/10/31(日) 18:21:20.58ID:d0afoHzs >>355
最初に実装されたのはHaskellだがコンピュータサイエンスではもっと早く提唱されていた。NimはAdaから影響で
Haskellからも影響は当然あるが、範囲型の実装などはAdaから来ていると一般的には言われる。逆に、Rustは
機能面でHaskellのType classはフルセットでサポートしていない。traitは別の概念でType classを一部限定して
サポートしているに過ぎない。範囲型すら無いし、type c = a or cなんて出来ない、それとコンパイラ言語で
型付け面が強力では無い言語なんていまどきの言語なら珍しい、ランタイムが無くnative-compileなら尚更。
最初に実装されたのはHaskellだがコンピュータサイエンスではもっと早く提唱されていた。NimはAdaから影響で
Haskellからも影響は当然あるが、範囲型の実装などはAdaから来ていると一般的には言われる。逆に、Rustは
機能面でHaskellのType classはフルセットでサポートしていない。traitは別の概念でType classを一部限定して
サポートしているに過ぎない。範囲型すら無いし、type c = a or cなんて出来ない、それとコンパイラ言語で
型付け面が強力では無い言語なんていまどきの言語なら珍しい、ランタイムが無くnative-compileなら尚更。
360デフォルトの名無しさん
2021/10/31(日) 18:42:57.86ID:d0afoHzs Goに関して言えばユーザー定義のiteratorは何度もproposalされて撥ねられてるがいずれ入るちゃうかな?
演算子に関して言うならinや->,=== ,<>,instanceofなんていうものが世の中あるので、UTF-8/16で
関数名が書ける言語なら、uniform-func-callが出来る言語ならなおさら出来ないのはおかしかった
演算子に関して言うならinや->,=== ,<>,instanceofなんていうものが世の中あるので、UTF-8/16で
関数名が書ける言語なら、uniform-func-callが出来る言語ならなおさら出来ないのはおかしかった
361デフォルトの名無しさん
2021/10/31(日) 20:07:49.45ID:yTUS2Zye >>359
typeのorならばRustでも色んな複数の方法で様々なアレンジ付けて出来るよ
例えばi32と&strのorをそのtraitを用いてするのも可能で
trait I32OrStr {}
impl I32OrStr for i32 {}
impl I32OrStr for &str {}
fn print<T: I32OrStr + std::fmt::Display>(x: T) {
println!("{}", x);
}
fn main() {
print(100);
print("abc");
}
これでi32と&str以外の型は受け付けないprint()関数の出来上がり
あとtraitとimplの中身が{}で空なところにアレンジを書いたり
typeのorならばRustでも色んな複数の方法で様々なアレンジ付けて出来るよ
例えばi32と&strのorをそのtraitを用いてするのも可能で
trait I32OrStr {}
impl I32OrStr for i32 {}
impl I32OrStr for &str {}
fn print<T: I32OrStr + std::fmt::Display>(x: T) {
println!("{}", x);
}
fn main() {
print(100);
print("abc");
}
これでi32と&str以外の型は受け付けないprint()関数の出来上がり
あとtraitとimplの中身が{}で空なところにアレンジを書いたり
362デフォルトの名無しさん
2021/10/31(日) 20:24:12.66ID:yTUS2Zye 例えば素朴な例だけどこんな感じ?
trait I32OrStr {
fn info(&self) -> String;
}
impl I32OrStr for i32 {
fn info(&self) -> String {
format!("{} <-- i32", self)
}
}
impl I32OrStr for &str {
fn info(&self) -> String {
format!("{} <-- &str", self)
}
}
fn print<T: I32OrStr>(x: T) {
println!("{}", x.info());
}
fn main() {
print(100);
print("abc");
}
これで>>361と同じくprint()関数はi32と&strしか受け付けないけど
実行結果は>>361と異なり型毎に別表示
100 <-- i32
abc <-- &str
trait I32OrStr {
fn info(&self) -> String;
}
impl I32OrStr for i32 {
fn info(&self) -> String {
format!("{} <-- i32", self)
}
}
impl I32OrStr for &str {
fn info(&self) -> String {
format!("{} <-- &str", self)
}
}
fn print<T: I32OrStr>(x: T) {
println!("{}", x.info());
}
fn main() {
print(100);
print("abc");
}
これで>>361と同じくprint()関数はi32と&strしか受け付けないけど
実行結果は>>361と異なり型毎に別表示
100 <-- i32
abc <-- &str
363デフォルトの名無しさん
2021/10/31(日) 20:38:03.38ID:yTUS2Zye trait利用でなくもちろんenum利用で型のorも可能ですね
使い勝手が異なるのでRustでは両者を使い分け用いることが出来ます
enum I32OrStr<'a> {
I32(i32),
Str(&'a str),
}
fn print(x: I32OrStr) {
match x {
I32OrStr::I32(n) => println!("i32: {}", n),
I32OrStr::Str(s) => println!("&str: {}", s),
}
}
fn main() {
let n = I32OrStr::I32(100);
print(n);
let s = I32OrStr::Str("abc");
print(s);
}
使い勝手が異なるのでRustでは両者を使い分け用いることが出来ます
enum I32OrStr<'a> {
I32(i32),
Str(&'a str),
}
fn print(x: I32OrStr) {
match x {
I32OrStr::I32(n) => println!("i32: {}", n),
I32OrStr::Str(s) => println!("&str: {}", s),
}
}
fn main() {
let n = I32OrStr::I32(100);
print(n);
let s = I32OrStr::Str("abc");
print(s);
}
364デフォルトの名無しさん
2021/10/31(日) 22:21:09.61ID:rLjO7mCc365デフォルトの名無しさん
2021/10/31(日) 23:58:11.44ID:sAwtPlvj rustってデフォルトだと共用体みたいな形になるんだっけ?
366デフォルトの名無しさん
2021/11/01(月) 08:07:15.03ID:cuJVsFXJ だからそれはtraitでありtype classじゃないでしょ。どっちが”貧弱なおもちゃ”やねん。こんな単純な事を
表現するためにクダラナイ事を何度も何行も貼り付けるなよ。もう一つについてはTagged Unionだが、Adaも
Swift/Nim/Pythonも出来るし、”両者を使い分け用いる”なんて必要ない。そもそも単純に書こうとしたら
or表現や、Typescriptのようにtype C = A | B;部分型だし、このように表現するのが限りなく一般的で
一行でシンプルです。Rust唯一教徒の話は回りくどい上にキモ過ぎる、別にRustそのものを否定している訳じゃ
無いし、traitは他にあまり無い十分に柔軟性がある特性なんだから、奇妙な信仰的な推し方をすんな
表現するためにクダラナイ事を何度も何行も貼り付けるなよ。もう一つについてはTagged Unionだが、Adaも
Swift/Nim/Pythonも出来るし、”両者を使い分け用いる”なんて必要ない。そもそも単純に書こうとしたら
or表現や、Typescriptのようにtype C = A | B;部分型だし、このように表現するのが限りなく一般的で
一行でシンプルです。Rust唯一教徒の話は回りくどい上にキモ過ぎる、別にRustそのものを否定している訳じゃ
無いし、traitは他にあまり無い十分に柔軟性がある特性なんだから、奇妙な信仰的な推し方をすんな
367デフォルトの名無しさん
2021/11/01(月) 08:14:17.55ID:cuJVsFXJ go2もgenericsと関連して、Tagged union的なType set/Type list/Sum typeが入るはず
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- ブタをぶったたく
- とうとう袖なしジージャン買ったったwww
- こんな自転車乗ってたやつがいたら?
- 【画像】童貞は絶ッッッ対"4"を選ぶバレー部J Kが寮でパンパンの集合写真見つけちゃったwwwwwwwwwwwwww [904880432]
