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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2022/03/22(火) 03:23:41.60ID:ZDHdo9X7
スレタイ以外の言語もok

前スレ
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1638086359/
2022/04/08(金) 13:59:03.07ID:ueuwLW+z
RustはC++の特定のスタイルを強制してそれ以外をコンパイルエラーにするように出来てる。
だからそのスタイルを使いたい奴には超フィットするけど、
そうじゃない奴には使えない。(コンパイルエラーになるだけ)
だからやっぱりこの「エラー」ってのは強すぎてて、
> C++での危険回避法を熟知しておけ
これもちょっと違ってくる。
「Rustが採用している『術』」での危険回避をしたいのなら、
それ以外をエラーにしてくれるRustが最適で、同じ事をわざわざC++でやっても抜けを許容される分だけゴミ。
ただ問題は、Rustの場合はそれ以外を許容しないから、いつまで経っても「Rustが採用した『術』」以外の方法を学ぶ事が出来ない。
だって試そうとしてもエラーになるのだから。
だから「Rustが採用している『術』」が間違っていたら(不適切だったら)その時点で終わってしまう。
だからこそ、無駄にカルト化する。言語と心中する事しか許容しないので。

本来は、「Rustが採用した『術』」と「他の方法」を知ってて、長短見極めた上で、
Rustでの採否に納得した奴がRustを使うべきなのだが、
君らは「他の方法」を知らずに「Rustが採用した『術』」をマンセーしてるだけでしょ。それはカルトだよ。

ただし「Rustが採用した『術』」はそんなに悪いものでもないし、
コーディング戦略は大きい単位で適用した方が効率がいいのも事実。
最大単位は「言語」なので、実験としてはいいし、
Rustが無くともC++で同じ事をやってた連中にとっては天国だろう。
だからやたらマンセーしたがる奴が居てもおかしくない。
(ただし実は最上位の「プログラミング全般」という単位があり、
例えば「用意した変数はそれ以降で自由に使える」とかだが、Rustはこれに反しているので混乱も来す事となっている)
2022/04/08(金) 13:59:38.12ID:ueuwLW+z
長期的展望については、構成上、Rustは(育成含めての)独立したエコシステムを持ててない事がかなりポイントになる。
これはやはりホームドアが分かりやすいと思うが、これがなかった頃、まともな大人は、
・ホームの端は歩かない
・ホーム上では走ったりしない
・ふらつく程は飲まない
等を遵守して、ホームからの転落事故はほぼ0に出来てた。
Rustはこれにホームドアをさらに設置し、物理的に転落しないようにした。
結果、「大人の常識の遵守」「ホームドア」で二重のセキュリティになり、安心感は増してる。
とはいえ、ほぼ精神的なものであり、実際は無くても転落する奴はほぼ居なかったので、実質的意味はほぼ無い。
これが、キラーアプリが存在出来てない理由。(GAFAMはこの使い方)

さてここで、「俺はホームドアがない駅なんて知らねえ。老害の常識なんて糞食らえ」というゆとりがいて、
ただの10分間の休み時間でもドッチボールをしようとしてた小学生時代と同様、
駅で10分待つ間にも鬼ごっこ等で遊ぼうとしたとする。
一般社会では「これだからゆとりは」となって袋だたきなのは確実だが、プログラミング界隈では違う。
・端を歩ける→デッドスペースだった両端の1mを活用出来、輸送能力が10-20%程増す
・走らない縛り無し→ならホームの両端はスカッシュコートに出来るじゃん!
・へべれけでも大丈夫→なら通勤電車内にバーを設置し、1時間飲んでたら家に着いてるとか出来るじゃん!
等、利便性を提供出来れば良しとされる。
俺が「Rustによって新たに提供される価値とは何か?」とさんざん聞いてたのはこれなんだよ。
Rust流のホームドアが無かった頃は事実上無理だった事も何か出来るようになってるはず。
その活用事例は何か、なんだよ。
2022/04/08(金) 14:00:07.89ID:ueuwLW+z
ただしこれは両刃の剣で、ホームドアがある前提で、それ以前の「大人の常識」を「所詮は老害の戯言」と切り捨てると、
ホームドアがない駅では確実に事故りまくる。今のRustがこれで、既に書いたが、
・「Rustが採用した『術』」以外はエラーにする=Rustではそれ以前の「大人の常識」を試せないし、学べない
んだよ。だから、構成として
・既に大人の常識がある人が、さらにホームドアが設置された駅を使う(GAFAM)
用に出来てて、
・全く何も知らない幼児が、怪我をしながらも危険を学び、次第に大人になっていく(Rust信者)
用には出来てない。(つまりRustだけではプログラマを成長させる事は出来ない)
とはいえ、現実の今時の公園ではブランコすら撤去されてる始末で、
安全重視の、スリルの欠片もなく面白みもない遊具だけになってしまってるが、
ではこれが間違ってるかと言われれば、
昭和時代のヤベー遊具は確かに楽しかったが、でも確かに危なかったし、なんだかなあ、ではある。

つまり、自前での育成(≒プログラマによる試行錯誤)を放棄している点に置いて、Rustが目指している所は、
・Rust専用コーディングドカタ育成
・他言語で育成されたプログラマの取り込み
であって、Rustではプログラミングの世界を成長させる事は出来ないし、プログラマの自主的な成長も促せない。
Rustが出来るのは、やり方を画一的に固定した開発だけだ。
ただこれが悪いわけでもない。実際、フレームワークは同様だし。
だからまあ、立ち位置としては「言語」よりも「フレームワーク」と考えるべきなのだろう。
そうすれば、「Rustに合ってる状況ならRust使え」で、みんな非常に納得出来るだろうし。
ポリシーに合致してないコードを拒絶する点に於いても、フレームワークと同様だし。
(C#の場合にデタラメなコードを食わせてイキってる馬鹿もこのスレには居たが、
この点Rustならエラーなのでフレームワークとしても正しい)
2022/04/08(金) 14:05:58.17ID:xmDi13Bx
Rustのプログラミングの快適さは
様々なプログラミングパラダイムを巧みに洗練して採り入れているところにあると思う
一つ一つは既存の言語にあるものが多いけど総合的に組み合わされたのはRust特有でそれがコーディングのしやすさに繋がっている
2022/04/08(金) 14:45:33.12ID:wv8X5M3X
昼間から長文とかおじちゃんたち仕事は??
2022/04/08(金) 14:49:38.98ID:J+DLQw6K
「Javaスクールの危険」みたいな話になってきてるな

https://web.archive.org/web/20190226013343/http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA
2022/04/08(金) 14:54:51.52ID:zi4mesOO
一方でRustは色んなことが身につくからその問題点もないよな
2022/04/08(金) 14:56:47.94ID:CQiu8f2R
>>650
再起とポインタなんて知らなくてもWebプログラマーはつとまるんだよ
ましてや精神的態度なんて根性論いいだしたら人材不足の今、人なんて集められないよ
2022/04/08(金) 14:58:59.00ID:CQiu8f2R
>>650は下の(2)の人のことをいってるんであってこのスレにいる大多数の(1)の人たちには関係がないこと。
ーーーーーーー
プログラマーには2種類の人がいる。
自動車産業に例えたら、(1)地方の工場勤務の期間工と(2)研究開発センターのエンジニア
(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。

(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。
2022/04/08(金) 15:07:49.60ID:Js+ybEIJ
自分はCS出てフルスタックやってるから他の立場のことはわからないが
色々やってきた言語の中でRustが最も開発効率良いと断言できる
2022/04/08(金) 15:13:55.24ID:FJuOSvU4
rustとgoが合体したらいいのになあ
2022/04/08(金) 15:30:55.82ID:fiUiUlD4
なんか一部のrust推しがすごいっすね
2022/04/08(金) 16:23:35.95ID:UBiXicJa
>>655
V言語
2022/04/08(金) 16:57:15.66ID:PcnkB3on
>>656
rust推しだけど変な人が無理筋の推し方してて困ってる
2022/04/08(金) 17:09:14.19ID:a6HBTm5x
頭の悪い子に限って延々演説するよなw
お前らそれを完全スルーしてて賢いわw
2022/04/08(金) 17:14:34.86ID:BG4ZrdKI
>>657
Vは確かに最初の宣伝はそんな感じだっけど、現状はRustとGoを足して10で割ったくらいの状態だからなぁ
2022/04/08(金) 17:54:29.26ID:0JDStoXf
V言語はマクロがないとかクロージャがないとか
あと安定しないままだよね
2022/04/08(金) 18:14:16.72ID:CQiu8f2R
>>659
スルーというかNGWordに正規表現で
.{50}
としてるからまったく気づかない
2022/04/08(金) 18:59:02.09ID:wv8X5M3X
>>652
そうして集めたPHPerたちが作ったWebシステムはどうなりましたか
2022/04/08(金) 19:35:51.32ID:gFm4wviN
>>663
facebookって言って超メジャーなサービスになってるよ。
2022/04/08(金) 19:40:32.31ID:wv8X5M3X
>>664
facebookのPHPエンジニアが優秀=PHPエンジニアが優秀

という短絡思考には感服致します
障害者学級PHPoorたちの心のより所なんですね
2022/04/08(金) 19:54:22.21ID:haRe9nr5
このスレだけ見てるとPHPerよりRusterのほうが危険で頭がおかしいと思ってしまう…

実際はそんなことはないかもしれないが
2022/04/08(金) 19:58:36.19ID:gFm4wviN
>>664
え、どうなったか聞かれたから答えたらなぜかPHPともどもボロクソ言われるの、
意味がわからんのだが。
2022/04/08(金) 20:05:37.41ID:g/vqQJB9
>>654
「unsafeに触らない限りは」だろ。
実際にはフレームワークとかライブラリとかが充実している言語のほうが開発効率は高い。
(すでに開発済みだからという理由だけど)
2022/04/08(金) 20:09:42.84ID:nC7N6zb/
Rustは欲しいcrateほど放置されてるcrateやwipの空crateが一定数あるのが実用を考えた時に厳しい
RustのWinUI3対応早く来ないかなー
後別に何でもかんでも関数型になって欲しい訳でもないんだけど、スクリプト的な簡単に書きたいモチベーションのある言語に、関数のデフォルトのカリー化と、引数を渡すのと同じ記法での部分適用が導入されて欲しい
個人的に見た目がスッキリするし書くのが楽に感じるので
Fsharp使えというのはそうかもしれない
2022/04/08(金) 20:31:38.25ID:wv8X5M3X
>>667
元レス読めよ文盲
これだからPHPoorは
さっさと氏ねゴミカス
2022/04/08(金) 20:39:12.10ID:IqLRftxA
>>668
それはプログラミング言語の問題ではないな
純粋にプログラミング言語の比較でRustより上のものを挙げないと
2022/04/08(金) 20:39:56.09ID:haRe9nr5
webの世界を支えてるのはPHP
2022/04/08(金) 20:42:20.02ID:haRe9nr5
>>671
使いやすさから言えばjavaやc#のほうが上だと思う
Rustは使いどころがまだ確立されていない
2022/04/08(金) 20:48:04.21ID:4vP7lCV8
>>671
なら「標準ライブラリが充実している」でいいよ。
標準ライブラリが言語に含まれないとは言わんよな?
2022/04/08(金) 20:50:18.47ID:MnFLToWU
>>669
ところでカリー化はラムダではあかんの?
2022/04/08(金) 20:53:57.99ID:nx5fqsfT
>>673
そこはさすがに誰が見ても
Rust>Javaはあらゆる面から全員一致として
Rust>C#もほとんどの人が同意でしょ
2022/04/08(金) 21:15:04.96ID:hRiSi6np
>>676
それは過大評価し過ぎでは…
2022/04/08(金) 21:31:56.88ID:Br+emjPa
言語自体の比較だと現状ではRustが一番かもしれん
新言語が現れなければじわじわと利用環境や利用者を拡大していくのだろう
2022/04/08(金) 21:33:57.02ID:a6HBTm5x
>>669
> 後別に何でもかんでも関数型になって欲しい訳でもないんだけど

リストのリテラルが無いあたりで割り切りを感じるよな
あくまで軸足は関数型言語にはないという

リストの結合とかカリー化や関数結合もデフォで組み込まれてたら
もっと違う感じだったやろねえ
2022/04/08(金) 22:02:06.45ID:GQWBx4Yt
ガベージ出まくるからゼロコスト抽象にならない問題点などあるよな
見かけはマクロでわかりやすくする程度が現実解
まあ普通のGC言語でもサポートしてないのが多い中
そこまで必要とされていない機能なのかもしれん
2022/04/08(金) 22:13:42.74ID:haRe9nr5
なんでIDコロコロ支店の?
2022/04/08(金) 22:23:42.64ID:wv8X5M3X
いきなりコロしとか言い出すとかマジやべえな
2022/04/08(金) 23:37:25.21ID:nC7N6zb/
>>675
処理として等価なものが書けるという意味では問題ないよ
それよりもっと簡単に書けるようになるので、あると嬉しいなって
2022/04/08(金) 23:52:45.49ID:fiUiUlD4
rust推しに狂気を感じるスレ
2022/04/09(土) 00:07:03.26ID:il24SwZF
それしか言えんのか
2022/04/09(土) 00:20:56.02ID:qlihBLS+
>>650
似てはいる。

「JavaではCS学生には過保護すぎ」が趣旨だと思うが、
同様にRustを考えるなら
・修得概念は多いがこれは暗記の類であり、チャレンジではない
・コンパイラ頼みで考える事を放棄してるから、成長しない
で、アカデミックには不適だ。
大学なんて就職予備校だと割り切るならありだが。

Goなら、
・修得概念は少なく抑えられている
・構成自体は何でも出来る(はず、多分)
・やたらコピペさせられる点が糞
であって、教育/アカデミックには向いてる。(少なくともRustよりはいい)


「データ競合」「デッドロック」等のバグをコンパイラに頼って回避してる限り、
コンパイラがサポートしてくれない状況では確実にやらかす。
コンパイラのサポート無しでも回避出来る腕だが、さらにコンパイラでダブルチェックする、が正しい。

フレームワークなんて暗記の類で、ちゃんとプログラミングが出来る奴なら、使えば使えるようになってる。
フレームワークは生産性を上げる為の手段であり、
プロダクトを目指さなくてもいい学生の時点で型に嵌めてしまうのは成長を阻害する気がする。Rustがこれ。
(他言語でもフレームワークを使って課題製作して出来たつもりになってるのなら同様ではあるが、
既に書いたようにRustの場合は言語自体がフレームワーク化してるので、これを回避出来ないのが難点)
2022/04/09(土) 01:45:47.90ID:H+Mv/KjD
コンパイラのチェックが厳しい→コンパイラに頼る→学習にならない
もう言語の利点を語るんじゃなくて、学習に向いてるかどうかってことに話を絞ることでRust批判につなげることにしたのね
2022/04/09(土) 01:58:00.79ID:il24SwZF
暗記ごときでボローチェッカーに対処できるなら自他ともに認めるRustの学習曲線の問題は発生しないんだよなあ
2022/04/09(土) 02:01:36.12ID:il24SwZF
あとデッドロックは別にRustで静的に防止できる類のバグではないぞ
メモリリークと同様だね
2022/04/09(土) 02:15:58.74ID:eXc0QQCs
言語として魅力を感じるのはGoよりRustだが、将来的にGoよりシェアを拡げるかと言われたら疑問
2022/04/09(土) 02:26:41.71ID:730EZC4A
Rustはシステムプログラミングの分野でだけちゃんと生き残れば大成功だよ
あとは特にハイパフォーマンスや低コストが要求されるとこくらいか

ほとんどのアプリケーションでは、JavaやらPythonやらなりの高水準言語にて、より適す言語が見つかるやろ
2022/04/09(土) 03:28:08.67ID:iJevktt3
>>691
Javaの諸々の弱点を克服したものがRustであるため
従来Javaで書かれていた分野にRustが食い込んで行きつつあります
2022/04/09(土) 03:34:37.18ID:ntDYOunj
ツルツル無毛の奇麗な一本筋なんだろうね
2022/04/09(土) 04:14:38.03ID:0HVqg1ER
FacebookがバックエンドをJavaからRustにした記事でJavaの問題点が多数挙げられていたな
2022/04/09(土) 05:55:15.91ID:GQoYu9QH
他部分の結論がまだ早いが、環境的な点から考えて、
GoはJavaとPythonと比べて、教育言語として価値が高いことは今のところない

・良くも悪くもOOPではない。抽象化のレクチャの定番が崩れている
・コンベンション重視のせいで、文化風土が専制的
(たとえばインデントは実質タブしか。手法にフレームワークを当てはめがち。考える余地を与えない)
・C言語の代わりにはならず、高級言語として教えるにもポインタの概念が余計
・例外処理/リソース管理/並行処理あたりの重要ポイントの対応方法が独創的で潰しが効かない

以上、拡大解釈せずにあくまで業界最適化言語と考えるのが無難という意見だ
2022/04/09(土) 06:21:18.57ID:Qew3WBrk
>>695
そのGo批判は間違っている
OOPはclassが無いだけだろ
例外処理もtry-catchが無いだけだろ
GoもRustもどちらもclassやtry-catchは無いが異なる方法を取っているだけにすぎない
言語毎に様々な形態がある部分を取り上げて批判するあなたの視野が狭く偏見を持っているだけにみえる
2022/04/09(土) 07:21:22.99ID:qlihBLS+
>>695-696
それは教育目的を明確にしておかないと空回りする。単純には以下となる。
・実務: 大学は就職予備校である
・養成: 大学は人材養成所である
・アカデミック: その分野の発展を目指す

695は実務寄りの意見だ。
ただ、実務なら議論するまでもなく現在のシェア、または求人のシェア通りにやるべきであって、
それ以外を選ぶのは教授の趣味でありエゴでしかない。
今ならPython/Java/JavaScript/C#/C++/C/PHP/Rubyの順かと。

650記事と696(と686内俺のGoへの意見)は養成寄りで、人材の底上げを目指したものだ。
> ポインタを使うプログラミングは今日書かれるコードの90%には必要とならず、製品コードにおいてははなはだ危険なものであるということは素直に認める。
> その通りだ。そして関数プログラミングは実務ではほとんど使われていない。それも認める。
> しかしそれでも、最もエキサイティングなプログラミング仕事ではこれらは重要なものなのだ。
> たとえばポインタなしにLinuxカーネルで作業することはできない。
> Linuxのコードを1行も理解することはできず、実際ポインタの理解なしにはどんなオペレーティングシステムのコードも理解できない。
つまりはプログラミングドリルに何を用いるかで、プロダクトを目指したものではない。
だから界隈の文化なんて全部無視でよく、単に、学生の頭の体操/訓練に何が適しているかだ。
この場合、スタート時から色々概念が必要なRustは最悪で、仕様は軽ければ軽い程良く、
早い段階で「仕様とか概念に苦労せず」学生が自在に「こねくり回せる」必要がある。
こねくり回す時の苦労が養成になるので、そこは頑張って苦労しろ、というわけだ。
この用途なら、Goも悪い選択ではない。
が、まあ、素直にCを選択する方が妥当ではあるが。
2022/04/09(土) 08:15:54.24ID:yjPUnyR6
最初はC → Rustが王道だろうな
さすがにCのままだけでは効率悪すぎる
2022/04/09(土) 08:16:17.09ID:cvyLC6WE
GoもRustもclassはない
でも実質似たようなことはできる

でも実質は実質であり素直にOOPできるかと言えばそうでもなく変な制約がある
ファイル分割とかしたいとか思わないならその限りではない
2022/04/09(土) 08:17:47.26ID:ehpYMGIZ
goはある意味goroutineとchannelを使うための言語だしな。そこに価値を見出す人が使えばいいこと。
ただまぁ、独創的だから潰しがきかないとか批判しだしたらpythonも癖が強すぎてたいがいだがな。
結局普及したもの勝ち。
2022/04/09(土) 08:24:05.70ID:cvyLC6WE
>>698
目的に応じて言語を選んだほうがいい

C→Rustは狭すぎるし心に余裕がなくなるし楽しくない
標準的なGUIもないから入門には不向き
個人的には間にGC言語やPython挟んだほうがいいと思うよ
2022/04/09(土) 08:54:42.92ID:0xXBKlCN
>>701
PythonよりはRustの方がええやろ
Pythonは偏り過ぎ
2022/04/09(土) 08:56:00.27ID:LAfniSDw
バランスいい言語ないの(´・ω・`)
2022/04/09(土) 09:09:13.58ID:ehpYMGIZ
個人的にはswiftがそこそこモダンな機能を一通り備えていながら癖の強くない文法でバランスがいい言語だと思うけど、
Apple依存というところが最大のネック。
2022/04/09(土) 09:09:29.66ID:H+Mv/KjD
ないです
RustのGUIクレートってどれがいいんだろ
2022/04/09(土) 09:33:25.59ID:cvyLC6WE
コンパイラチェックが厳しいで思い出した

全然関係ないけど自分は麻雀が打てない
ゲームではできる
自分では上がりだと思ってても実際は上がれなかったりする
結局ゲームで判定してもらってる
どこが悪いのかは自分で分かっていない

コンパイラのチェックでは原因が出るのでどこが間違ってるのかはわかる
2022/04/09(土) 09:43:27.34ID:7NJqkFJL
Rustのコンパイラはどの部分とどの部分がどういう問題となっていて今回のエラーとなっているのかを
複雑なケースでも丁寧に教えてくれて学習効果も高いですね
2022/04/09(土) 10:38:03.26ID:ALVqghU/
結局 c -> c++ -> rust って感じに進まないと理解できないと思うがな。
いきなり c -> rust で何をやってるか理解できるとはとても思えん。
この種のことをrust信者はすぐ誤魔化す。
2022/04/09(土) 10:45:26.66ID:n9UcTFQC
>>708
どのあたりが理解できないと思う?
2022/04/09(土) 10:47:43.60ID:3YobdmGS
>>708
そこは完全に逆
C++は学ぶ必要なし
今となっては何の価値もない言語
C++を学んでも回り道をしている無駄なunique_ptrくらいしかRustのために役に立つ知識がない
2022/04/09(土) 10:53:42.52ID:EFTB/rfv
>>708
自分はそのルートだったけどC++を経由する必要はどうかなぁ
現代のC++をマスターするのはRust以上に難しいし、初心者が自分でどこまで学べばいいかを判断するのも難しそう
まぁ結局我々は初心者ではないので推測で言ってもあまり意味はないけど
2022/04/09(土) 11:02:06.42ID:SpxMIjuY
要するにマロックだろ?
2022/04/09(土) 11:11:18.68ID:UvtYS0nS
単刀直入に言うと
実はC++とRustには共通点が非常に少ない
特にC言語との共通点を除くとほとんど残らない
だから学ぶべきはC→Rustが正解
2022/04/09(土) 11:38:59.26ID:P+77Yson
>713
>実はC++とRustには共通点が非常に少ない

そういう嘘をつくからRust信者はクソ言われるんだよ。

Rustの根幹をなすメモリ安全性はC++のRAII/unique_ptrから着想を得た所有権/ムーブセマンティクスの運用を徹底することによって実現しているし、
Rc/ArcもC++のshared_ptrの機能を強化しているだけ。
引数渡しをムーブセマンティクスデフォルトにするという致命的ミスをしているからC++と別物のように見えるけど、
C++ユーザーからすればC++を少し洗練させたぐらいにしか見えない。
その実体を知りながら「共通点が非常に少ない 」とか言うのは詐欺師ぐらいなものだ。
2022/04/09(土) 11:49:01.58ID:0K2sKttC
C++に着想を得ているのはそうだと思うけど、歴史通りの順番で学ぶ必要ある?
(その理屈だと最初はパンチカードからかな…)
C++の後付したわかりにくいmoveを学ぶより、最初から洗練された方を学んだほうがいいと思うけど
2022/04/09(土) 11:53:43.59ID:EFTB/rfv
C++の歴史を追っていくみたいなのは、言語設計的にはすごく学びがあって、好きな人にはおすすめなんだけど
ただプログラミングがしたい人におすすめできるかというと…
2022/04/09(土) 11:55:25.64ID:cvyLC6WE
現実的にはPythton or Java or C# → C  → Rustかな
2022/04/09(土) 12:00:59.18ID:LZU2nudI
最近のC++はなんとRustの後追いをしている状況
例えばRustの中核となっている enum OptionとResult そして Iterator
Optionは C++では std::optionalで これはC++17でようやく導入された
Resultは C++では std::expectedで これは現在導入に向けて審議中
Iteratorは C++では std::rangesで これはC++20でようやく導入された
このようにRustでの成功を見てC++が後から導入となっている
最近導入されたばかりなのでC++入門書や解説サイトにはもちろん出てこない
【結論】C++は学ぶ必要なし
2022/04/09(土) 12:05:05.94ID:cvyLC6WE
C++は無駄に増改築を繰り返された老舗旅館
通路の途中で無駄に段があったり渡り廊下があったり

HPに書いてある現代風の部屋に泊まれる場合もあるけど古い部屋に泊まることもある
2022/04/09(土) 12:09:41.54ID:EFTB/rfv
C++98ならそんな増築感はなかったけど、そこまで戻るとRustとの共通点もほとんどなくなっちゃうしなぁ
2022/04/09(土) 12:15:44.17ID:ehpYMGIZ
RAIIとテンプレートメタプログラミングが発見されてから独特の進化を始めたな。
2022/04/09(土) 12:16:15.06ID:cvyLC6WE
>>718
>>720
新しい部分を指してC++を学ぶべきと言ってるのではないと思うよ
それまでのC++からC++11 以降の新しい流れをみるんだろ
C++で何が都合が悪かったか判る
2022/04/09(土) 12:19:37.41ID:EFTB/rfv
>>722
それって歴史を知っている我々には分かるけど初心者に分かる?
2022/04/09(土) 12:24:26.93ID:cvyLC6WE
>>723
自分はC++を学ぶべきとは思ってないけど何が都合が悪いのか体験したらいいということだろうと推測

初心者にわかるかどうかは知らない
初心者にはjava C# Pythonを勧める
2022/04/09(土) 12:26:21.53ID:2dOqhr+x
C++の増改築を学ぶのはムダな枝も多くて学ばないほうがいい
RustはC++含めた様々な言語から色々採り入れているけど
洗練して整合性あるようコンパクトに採り入れてるからシンプル
726デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:36:22.62ID:HmFS1ypI
>>694
URLキボン
2022/04/09(土) 12:42:40.46ID:cvyLC6WE
フレンド関数とか学んでも使いどころなどない
2022/04/09(土) 12:44:13.05ID:qlihBLS+
>>706
> どこが悪いのかは自分で分かっていない
Rustで作ったゲームなら、フリテンですor役がありません、と親切に教えてくれるよ

と信者の代わりに突っ込んでみる
2022/04/09(土) 12:51:14.42ID:byaB+Tw8
Rustのコンパイラは賢い先生みたいなもので不十分なところを的確に適切に指導してくれる
昔Rustは学習難易度高いと言われていたためコンパイルエラーに最も力を入れたプログラミング言語へと成長した
2022/04/09(土) 12:52:42.79ID:lI/OjvKQ
レス番がとびとびなんだがそんなに長文書き込んでるやついるの?w
2022/04/09(土) 13:05:08.55ID:P+77Yson
>715
何をトンチンカンな指摘をしているんだよ。
>713 >実はC++とRustには共通点が非常に少ない
に対する反論なのに、
>715 歴史通りの順番で学ぶ必要ある?
とか共通点の話と何の関係も無いだろ。
Rust信者はこういう詭弁を弄するクソしかいないのかね。

あと、言語の話をしているのに
> (その理屈だと最初はパンチカードからかな…)
とか言語じゃないものを引っ張り出すようなアホな反論するなよ。
2022/04/09(土) 13:10:56.96ID:Wb48yUxI
>>718
C++から見てRustのそのシンプルで分かりやすい記述と概念は羨ましい
だからRustから輸入する形で取り入れることになった
2022/04/09(土) 13:23:59.57ID:P+77Yson
>718
>最近のC++はなんとRustの後追いをしている状況

Rust信者は我田引水が酷いな。
C++の標準化が遅いのはC++が巨大だからであって、しがらみのないRustの方が採用早くなるのは当然だろ。

> Optionは C++では std::optionalで これはC++17でようやく導入された
初出はboost::optionalで2003年8月

> Resultは C++では std::expectedで これは現在導入に向けて審議中
これはboost::outcomeが初出かな? 2014年

> Iteratorは C++では std::rangesで これはC++20でようやく導入された
そこそこ違いがあるけど、boost::rangeは2003年。

どれもRustリリース前のものばかりだろ。
RustがC++のアイディアをパクって先行実装しただけじゃね?
2022/04/09(土) 13:25:35.27ID:OTzifHJR
C++の貧相なラムダ式見て涙出てくるわ
おばちゃんの必死の若作りみたいで痛々しい

>>730
相変わらず読む価値無しの駄文オナは続いてるようだよw
2022/04/09(土) 13:29:34.12ID:il24SwZF
https://mevius.5ch.net/test/read.cgi/tech/1643289587/
そろそろこっちでやってくれませんか?
2022/04/09(土) 13:41:58.59ID:xJyQ5Sl3
>>733
C++にはRustのenum(=型収容付きenum=タグ付きunion)が無いため
それらC++のバージョンはRustのものより劣っている
それではRustに勝てない
2022/04/09(土) 14:01:07.29ID:n9UcTFQC
スレタイの言語間で争える話題ないか考えてみたけど
それぞれ狙うところがバラバラで共通項がないな
2022/04/09(土) 14:06:05.68ID:J0gE1zR3
rustスレでやれば
もうJavaレベルには普及しないって結論じゃん
2022/04/09(土) 14:11:30.90ID:cvyLC6WE
次のスレからRustの話題は荒れるから禁止にしてスレタイからも削ろうw
2022/04/09(土) 14:14:38.49ID:ehpYMGIZ
このスレで荒れてくれる分には構わんわ。C++スレとかRustスレとかを荒らさないで。
2022/04/09(土) 14:19:25.04ID:mmQa05p2
便利さを理解するために不便さを体験するべきか否か論な訳だけど、個人的にはそれをするにしては遠回りが過ぎるのがC++という長大な壁だと思っているので経由する必要はないかなと思ってる
代わりの話としてZigとかどうよ
依存型的なコンパイル時計算と実行時計算をフラットに書ける感じ
結構賛否両論来そうな話題だと思う
2022/04/09(土) 14:22:44.53ID:cvyLC6WE
あれるのは上等なのか

関数オーバーロードがない言語は軒並み糞
2022/04/09(土) 14:27:38.36ID:OWfDePLk
オーバーロードあると高階関数に渡すときに一手間かかるのがヤダ
2022/04/09(土) 14:30:13.22ID:cvyLC6WE
標準ライブラリの標準関数のシグネチャー変える言語は糞
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況