次世代言語24 Go Nim Rust Swift Kotlin TypeScriptat TECH
次世代言語24 Go Nim Rust Swift Kotlin TypeScript - 暇つぶし2ch528:デフォルトの名無しさん
22/04/06 09:03:47.07 ByE3BIzU.net
move |bits|
&

529:デフォルトの名無しさん
22/04/06 09:10:21.22 aOWfxLhU.net
>>525
それの何を問題視してるのかしら
moveはクロージャに変数キャプチャするかどうかでGC言語にもある概念
&は単なる参照でこれもGC言語にもある概念

530:デフォルトの名無しさん
22/04/06 10:56:17.94 X7GvwD6X.net
>>524
それなぁ

531:デフォルトの名無しさん
22/04/06 11:00:12.47 X7GvwD6X.net
>>521
2種類の人種がいるんだよ
自動車産業に例えたら、(1)地方の工場勤務の期間工と(2)研究開発センターのエンジニア
(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。
(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。

532:デフォルトの名無しさん
22/04/06 11:12:27.97 P2epzghE.net
普通のプログラマー
 PythonでもJavaScriptでもRustでも用途毎に使い分ける
似非プログラマー
 特定のスクリプト言語しか使えない

533:デフォルトの名無しさん
22/04/06 11:18:53.29 UtHY9/K6.net
このスレは期間工限定です

534:デフォルトの名無しさん
22/04/06 11:27:29.43 XB6J8/aS.net
Rustでメモリ管理はしなきゃいけないでしょw
双方向リストを普通に書くと循環参照でるよね
WeakとRcをプログラマが手動で必死に使い分けてなんとかするのがrust
一方で循環参照もなんとかケアしてくれる(かもしれない)のがGC言語
これはRustを批判するんじゃなくて
GC言語の価値を改めて評価できるという例

535:デフォルトの名無しさん
22/04/06 11:27:36.38 XNY/VGtp.net
>>530
呼ばれた気がした

536:デフォルトの名無しさん
22/04/06 11:29:06.13 PUvuY8jT.net
>>505
Rustを難しいと勝手に思い込んでいるようだけどそれは勘違い
C言語とあともう一つ今どきのプログラミングパラダイムを備えた言語を使いこなせる人ならばRustは容易に楽に習得できる
つまり普通にまともなプログラマーにとっては難しいことは何もない

537:デフォルトの名無しさん
22/04/06 11:32:57.60 SQHVCoBe.net
>>531
双方向リストなんてライブラリにあるのを使うだけだからそんなの関係ないだろ
同様にベクターコンテナもライブラリにあるのをそのまま使うだけ
それとも君は毎回自作してるのかね?

538:デフォルトの名無しさん
22/04/06 11:38:59.86 XB6J8/aS.net
RustにGCが無いのは特徴であり
この言語の方向性においては利点でしかない思ってるよ
GC無しでRAIIでなんとかしていこうず!という潔い言語
中途半端にならなくて清々しいよ

539:デフォルトの名無しさん
22/04/06 11:41:06.57 j3mCjXSb.net
>>531
GC言語とはガベージコレクションが必須な言語
一方でC/C++/RustはGCが必須ではなくGCが必要な用途の時だけGCすればよい言語
だからどうしても循環参照などでGCが必要ならばC/C++/RustでもGCをするモジュールなどが用いられている

540:デフォルトの名無しさん
22/04/06 11:42:07.19 azRXBWjT.net
>>528 >>529
>>471が「RustがPythoneを置き換える」とかいう妄想を垂れ流しているから突っ込んだだけだよ。
バカはトンカチを持つと何でも釘に見えると言うけど、Rustユーザーはその典型だな。

541:デフォルトの名無しさん
22/04/06 11:46:18.46 iij/35sY.net
>>531
またそんなデマカセを書いてるな
ヤラセ記事ならともかく実際のプログラムでそんな変な実装をしている例を見たことがない
妄想で叩くのはやめとけ

542:デフォルトの名無しさん
22/04/06 11:46:52.40 azRXBWjT.net
>>533
C言語とあともう一つ今どきのプログラミングパラダイムを備えた言語を使いこなせる人……つまり普通にまともなプログラマー
なるほど、PythoneやJavaだけを使っているプログラマーは普通でもまともでも無いということを主張したいんだな。

543:デフォルトの名無しさん
22/04/06 11:50:43.24 yFuiayyW.net
>>537
でもその人の書き込みを見たら
Web分野と限定してるね
Web分野でのPythonなんてPythonしか使えない人しか採用しない状況だから
話としては合ってるんじゃないかな

544:デフォルトの名無しさん
22/04/06 11:54:58.50 YS4iOCfL.net
>>539
それはそうやろw
Javaしか出来ないなら土方で間違いない

545:デフォルトの名無しさん
22/04/06 12:32:21.96 rwS/Q696.net
>>540
webでもPython置き換えとしてRustが出てくることは無い。
web用途だからといって所有権だのスコープ・ライフタイムだのを回避できるわけじゃないしな。
>>541
Rustユーザーが初心者・初級者を馬鹿にするようじゃなぁ。Rustの失敗は約束されたな。

546:デフォルトの名無しさん
22/04/06 12:44:42.90 4NhGLksY.net
>>542
意味不明だな
唐突に所有権とか言い出して何が言いたいんだ?

547:デフォルトの名無しさん
22/04/06 12:58:29.92 6roFDaHL.net
>>536
えっ・・・?GCがないからRust最強他はクソじゃなかったんですか?(´∵`)
どこぞのチンカスメンがマス書いた野良イブラリでGCとかRustユーザーのおじさんたちって・・・(´∵`)

548:デフォルトの名無しさん
22/04/06 13:56:24.32 2Yw46+Tv.net
>>544
RustやC++は非GC言語やで

549:デフォルトの名無しさん
22/04/06 14:20:43.99 1nRPgXLc.net
また意味不明の非GC言語なんて言い出してんのかw、リファレンスカウント使ってんだからそんな意味のない宣伝もうやめろよ?

550:デフォルトの名無しさん
22/04/06 14:36:07.84 6roFDaHL.net
は?今の時代にリファカンとかw

551:デフォルトの名無しさん
22/04/06 14:41:06.01 6A9Aeuem.net
ここはおじさんスレだからそれを楽しめ

552:デフォルトの名無しさん
22/04/06 14:46:08.13 Fm2KF3vu.net
参照カウントのガベージコレクション
URLリンク(developer.mozilla.org)
これは、最も素朴なガベージコレクションアルゴリズムです。このアルゴリズムは、"あるオブジェクトがもはや必要ない"ことを、"あるオブジェクトがその他のオブジェクトから参照されていない"ことと定義します。あるオブジェクトは、それに対する参照がゼロの時にガベージコレクト可能であると見なされます。

553:デフォルトの名無しさん
22/04/06 14:48:22.40 7ui2nPA0.net
>>517
引数の最後のブロックを特別扱いで記述できる文法はrubyからgroovyを経由してkotlinにも引き継がれていて、わりと欠かせない記述方法になってる
ここの URLリンク(dogwood008.github.io)
これみたいな記法を頻繁に使うからいまさら無くなっても困る
lock (lock) {
sharedResource.operation()
}

554:デフォルトの名無しさん
22/04/06 14:57:27.14 rwS/Q696.net
>>543
スレの流れが追えていないのに口を出すなよ。最初の方の>470 >471 >475から所有権出てるわ。
ChMateとか導入したら?

555:デフォルトの名無しさん
22/04/06 23:24:49.88 DtmD4s0L.net
>>551
その所有権がどうしたんだい?
所有権が理解できないなら参照も理解できないから
参照渡しと値渡しの区別もつかないことになる
どの言語でもそういう話は理解しないと使えないから
所有権の概念があるかどうかで困るプログラマーは存在しない

556:デフォルトの名無しさん
22/04/06 23:41:02.75 6roFDaHL.net
コードの所有権もない派遣さんが何か言ってらw

557:デフォルトの名無しさん
22/04/07 01:43:23.21 tEZE72Zs.net
#[derive(Clone, Copy)]
struct Code(String);

558:デフォルトの名無しさん
22/04/07 07:31:09.34 zb08jYei.net
>>552
こういうRustユーザーが多いなら、RustのHaskell化は約束されたようなものだな。
Rustコミュニティー全体がその認識なら致命的かと。

559:デフォルトの名無しさん
22/04/07 07:42:19.84 wRPEswS2.net
Rustは当面プログラミング言語の王者として君臨し続けるのではないか
高速かつ省メモリかつ安全という他の言語が満たせないRustのアドバンテージを崩せる新言語が登場しない限り
> Rustの以下のメリットを持つ代替言語が存在しないため
> ・ガベージコレクションを必要とせずC言語と同等の速さと省メモリを実現
> ・各種データ競合やメモリ使用の安全性を保証
> ・現代的な各種プログラミングパラダイムを洗練して採り入れており非常にプログラミングしやすい

560:デフォルトの名無しさん
22/04/07 08:03:31.90 /n3eSctb.net
俺はRustは廃れるに一票
このスレ見てる限り信者がカルトすぎる
Go信者が可愛く見えるレベル
そもそも設計で差を付けられるレベルなら、言語に拘る意味もそこまでない
このスレがそういう趣旨だというのもあるとは思うが、言語への執着が酷すぎ

561:デフォルトの名無しさん
22/04/07 08:10:05.04 zl/syFdq.net
はっきり言って近代的な言語なら仕様も習得もそのコーディングもどの言語でも大差ないんよ
そうなると言語自体として本質的な有利な面を持つRustがじわじわと広まる結果となるかな

562:デフォルトの名無しさん
22/04/07 08:56:02.87 /n3eSctb.net
>>558
> どの言語でも大差ない
だから敢えて独自路線を、というのがGoの当初の目的でもあったろ
(上手く行ってるかは別)
> 本質的な有利な面を持つRust
俺はあれは筋が悪いと見てる
寿命管理はmoveではなくupが多分正解で、これを綺麗に書ける言語が出てきたらその瞬間終わる
(それ以前にGCの方がいいが)
あとRustの問題は、多分プログラマが上達しない事
これは長期的には絶望的に不味い
「C++はプログラマを育てる言語だ」というのはC++始祖の持論だが、これは考える事を強いるからだ
Rustの場合は(このスレ見る限り)「コンパイラが全てやってくれる!考えなくて済む!」のノリのようで、これは絶望的
Rustは「C++の特定の使い方」に近似出来、コンパイラがその形式を強制する
だからC++をこの形式で使っている連中は確実に移行する
そうではないC++使いが移行する事はない
Rustを使えばデバッグしなくて済むから楽!とか言ってる初心者連中は戦力にならない
というかね、根本的なところで、寿命管理や所有権とかは「面倒」であって「苦労」はしない
だからやらなくて済むのならそれが一番いいが、
やれと言われればやるだけであり、手間が増えるだけで、出来ないものでもなく、それ自体には苦労もしない
だから根本的な立ち位置がイマイチなんだよRustは
そしてこれに苦労するような連中は、そもそもプログラミング能力が低いだけなのだから、
そこで苦労する事は糧となるから頑張れ、でもある
これが無理だからGCを使うのだ、という事に対しても俺は肯定的で、それでいいと思うが、
Rustが目指しているのは「GCが無いと困る馬鹿でも補助輪を付けてチェックするからなんとかなり、
GC無し並の速度が出ます」であって、結局は馬鹿向けの補助輪でしかない
そこで苦労する程度ならガチでC++で苦労した方が上達するからそうしろ、でしかない
(まあ馬鹿でも何とかなるように、というのが言語の進歩でもあるのだが)

563:デフォルトの名無しさん
22/04/07 08:56:07.07 hOTZf/Ps.net
言語の普及について語るときにキラーアプリを語ればいいと思う
Rubyが普及したのはRuby on Railsがあったから。
Pythonが普及したのはAIライブラリ(tensorflowなど)があったか。
RustにはRubyのRoRやpythonのAIに相当するものがあるか?もしくはこれからでてくるか?
そのヒントとしてはWebAssemblyにあるように思う。

564:デフォルトの名無しさん
22/04/07 09:01:27.48 5wMGrsUW.net
 :::....   /|\||   
     //|'\\.... ...:::.. .......
    |/ ,'|-、 \\
    |/ ,'|-、 \\\
    |/ ,'|-、 \\\|.... ...:::.. .......
    |/ ,'|-、 \\\|:..。..... ...:::.. .......
    |/ ,'|-、 \\\|__|
    |/ ,'|-、 \\\|:...|ヽ .... ...:::.. .......
    |/ ,'|-、 \\\|::::| |::..... 
 | ̄ ̄ ̄ ̄ ̄\、'\\|;;:.|_,,|___   
 | □□ □□ | |\, \|;;::....     |\
 | □□ □□ | |  | ̄ ̄ ̄ ̄|\;: . |  |
 | □□ □□ | |  |□□□□|  |::...|  |;;:
 | □□ □□ | |  |□□□□|  |::...|  |:;:./
 | □□ □□ | |  |□□□□|  |::...|  /
 | □□ □□ |.._|__,,|□□□□|  |::...|/  
,,| ̄ ̄ ̄|| ̄ ̄\≡\,□□□|/ ,/
今北産業 [IMAKITA INDUSTRIAL CO.,LTD]
     (1978~ 日本)

565:デフォルトの名無しさん
22/04/07 09:02:23.11 qcT6PBEO.net
RustのようにCと同等の速さと省メモリの言語が出てくればRustが敗れる可能性が出てくる
現時点では存在しないためRustの天下が続きそう

566:デフォルトの名無しさん
22/04/07 09:26:02.84 /n3eSctb.net
>>560
> WebAssembly
ねえよ馬鹿タレ
というかこのWebAssembly推しは一体何なん?
シェア的にもあり得ないし、ググラビリティもJSに比してゴミ以下だろ
Webの場合はそもそもクライアントサイドで何が出来て何をやるべきかが分かってない事が多く、
つまり、他言語で既に十分出来てる連中でもクライアントサイドを書く時には、まずこれを理解せねばならず、
一番手っ取り早いのはJSであり、これを避けては通れない
JS/TSである程度クライアントサイドをこなしてからなら他言語でWebAssemblyでもいいが、
JSに比してググラビリティも0に近いWebAssemblyでクライアントサイド入門とか、ただの自殺
俺はWebAssembly推しは完全にミスリードで、糾弾されるべきだと思ってるよ
この状況で、JSに比してWebAssemblyが主流になる状況は、現在のところあり得ない
だいたい、Rustをわざわざ学んでWebAssemblyするくらいなら、上記のようにそれ以前にJSを通るし、
ほぼ全部のサイトでJSで十分だからこそ圧倒的シェアになってる
元々JSだったのは「ソースじゃないと信頼出来ない」という事であり、
それが「最早そういう状況ではないのでバイナリでもいい。速さ重要」となってきているからこそのWebAssemblyではあるが、
ならばそのうち「もうネイティブバイナリでよくね?サンドボックスを仮想的に作ろう。これが最速」となって、
ネイティブバイナリをブラウザ内で実行する状況になって終わると思うけど
仮想周りは本当に進歩したし、何故か知らんがアメリカ人はエミュには執着するしで、これも時間の問題

567:デフォルトの名無しさん
22/04/07 09:37:09.90 Nyl3OsEM.net
確かにWebAssemblyではガベージコレクションのないRustが一強になってるな
WebAssemblyにおいてreference typeがサポートされたためDOM操作の壁が大きく低くなり実用的となったことも大きい
今後Rustによるフロントエンドが更に進むことが確実となった

568:デフォルトの名無しさん
22/04/07 10:03:19.72 6mRJTF59.net
>>559
世にあるc/c++メモリ周りの扱いによるバグやセキュリティホールの殆どは、「GCがないと困るバカ」以外の人間が書いているわけだが。

569:デフォルトの名無しさん
22/04/07 10:10:10.15 hOTZf/Ps.net
>>563
おまえが(1)のタイプだということはわかったから黙ってくれw
(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。
(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。

570:デフォルトの名無しさん
22/04/07 10:18:58.15 /n3eSctb.net
>>564
> 確かにWebAssemblyではガベージコレクションのないRustが一強になってるな
今は、だろ
> (WebAssembly は将来的にガベージコレクションによるメモリー管理を行う言語をサポートする 高レベルの目標 を持っている事に注意してください)。
> URLリンク(developer.mozilla.org)
要するに今はGCの直接サポートがないから
GC言語だと436のようにGC部分も自前で用意してやる必要があるが、
直接サポートされれば丸々この部分は落とせ、436も完全に
「Rubyでもクライアントサイドが書ける」と言ってもいいくらいの物になるのだろうよ
この意味では、Ruby(436)のアプローチは正しい
とはいえ、肝心の(上記リンクの先)
> URLリンク(webassembly.org)
に「GCをこれからサポートする予定です!」という記述がないのだが、これは落とされたのか?
落とされてないのなら、サポート後はJS嫌いな奴はRyby/Python等でクライアントサイドを書くのも既定路線
ガチ最速目指すのならC++で書くのも既定路線
Rustは「『C++では無理な馬鹿にとっては』最速」というだけであり、この冠詞が取れない限り厳しいよ
C++はWebをやろうとしてないだけであって、出来ないわけではないので
RoRの状況知らんが、もしかして一番喜んでるのはRoRの連中かもよ?
これまで全部サーバーサイドレンダリングするか、諦めてJS書くかしかなかったのが、
Rubyで全て完結するようになるから。
(既にasm.js使ってJSは書いてないかもしれんが)

571:デフォルトの名無しさん
22/04/07 10:23:06.36 /n3eSctb.net
>>565
> メモリ周りの扱いによるバグやセキュリティホールの殆ど
具体的にはどんな奴よ?
そしてそれがRustやJava等だと「自動的に」「どんな馬鹿が書いても」大丈夫だとでも?

572:デフォルトの名無しさん
22/04/07 10:29:46.01 FJnsEJOV.net
WebAssemblyでなぜ利用トップがRustで2位がC++なのか?
理由は簡単でGC言語は圧倒的に不利であるため
またWebAssembly自体でのGC導入が問題点多すぎで当面無くなったことも大きい
次になぜC++ではなくRustが1位なのか?
理由は簡単でRustの方が圧倒的にプログラミングしやすいため
Rustが有利なこと自体はWebAssembly以外の分野でも全く同じだが歴史の積み重ねの差がまだある
歴史的に新しいWebAssemblyでは後発言語の不利な点がないためRust有利が顕著に現れた

573:デフォルトの名無しさん
22/04/07 10:33:32.72 /n3eSctb.net
>>566
Rust信者は(1)のくせに(2)を気取ってる、勘違い意識高い系馬鹿だね
(2)なら最初からC++を使うし、そのスタイルがRustで強制しているスタイルと合致してれば、
これまた迷うことなく最初からRustを使うし、移行にも躊躇ない
だから正直、ここで信者がやってる布教なんて全く意味ないと思うんだけどな
ウザイだけで

574:デフォルトの名無しさん
22/04/07 11:27:45.58 wigEobQO.net
ビックテックがこぞって使ってるんだからほっといてもある程度は流行るでしょ
俺は楽に稼ぎたいしみんなにもそうなってほしいからRust推してるわ

575:デフォルトの名無しさん
22/04/07 11:35:37.24 gomi3ocO.net
>>570
決めつけは低能のあかし

576:デフォルトの名無しさん
22/04/07 11:37:41.07 QfJTmIv3.net
>>557
> 俺はRustは廃れるに一票
キミの投票はキミのカーチャンにでも見てもらってください
キミのカーチャン以外はそんな一票になんの興味も無いので

577:デフォルトの名無しさん
22/04/07 12:20:35.64 pGmXk0tm.net
Rustは順調にhaskell化しているな。
いい傾向だ。

578:デフォルトの名無しさん
22/04/07 12:40:08.52 OdIUq1Z2.net
Rustはプログラミング言語にとって根源的に重要な要素「データ競合やメモリ扱いで安全性が保証される」及び「C言語と同様に最高速&省メモリ」を両立する唯一の言語
新たな言語が出現しないとRust最優位は崩れないのではないか

579:デフォルトの名無しさん
22/04/07 13:09:09.76 a0EStXea.net
Ruby on Rails 7 で、脱Node.js, Webpack, Babel。
IE の死滅により、ES5 へ変換しなくても、ブラウザはES6 のままで動く
WebSocket を使う、Hotwire で、
近年、React に奪われたシェアを回復すべく、
SPA のgame changer を目指すのが、Railsの野望!
Rubyだけで、SPA になったから、React, Vue.js は今後どうなるのか?
Railsが、SPAのシェアを奪えるか

580:デフォルトの名無しさん
22/04/07 13:44:56.72 tEZE72Zs.net
>>564
RustWasmでDOM操作まともにやれるならやってみたいなと思って最近調べてるんだけど、
URLリンク(zenn.dev)
によるとReference Typesを使うとむしろパフォーマンスは下がるらしいし、JSにはまだ到底及ばないらしいんだよね
実際使ってみての感想とか、↑のベンチ取り方おかしいわヴォケとかあったら聞きたいんだけど、どう?

581:デフォルトの名無しさん
22/04/07 14:06:25.86 WjxXuLmC.net
Rustの話は専用スレ立ててそっちでやれよ
ウザイにもほどがある

582:デフォルトの名無しさん
22/04/07 14:34:20.48 86kfLMWB.net
>>578
それはWebのDOM要素とWebAssemblyでのReference Typesの話だろ
Rustなどの特定の言語の話じゃない
それすら理解できないやつが的外れな文句を言うな

583:デフォルトの名無しさん
22/04/07 14:43:19.94 hOTZf/Ps.net
>>578
そんな言論統制したら比較すれの意味がなるなるだろ
Rustの話を禁止したらここはGoの話題だけになりGoがRustに比べてはやってるんの?って勘違いする人がでてくる

584:デフォルトの名無しさん
22/04/07 17:08:40.53 6pGOygc2.net
>>580
実際そうだし何の問題もない。

585:デフォルトの名無しさん
22/04/07 17:13:11.30 uI5WJg3m.net
>>580
Rustは習得が簡単とか大嘘つくやついるしなぁ。
話題にするのはいいけど嘘八百はいかんよ。

586:デフォルトの名無しさん
22/04/07 17:15:20.82 pxHwe1Kf.net
>>582
Rustは簡単やろ
どこが難しい?

587:デフォルトの名無しさん
22/04/07 17:23:30.39 uI5WJg3m.net
>>583
所有権、ライフタイム、moveセマンティック、参照・借用、型システム、その他もろもろの概念を「ほとんど全部使わないと」まともなプログラムができないところ。
だから「C++とHaskellが使えればRustは簡単」とかいうアホなコメントが出てくる。

588:デフォルトの名無しさん
22/04/07 17:57:35.76 +6isarPd.net
>>584
僭越ながら横から失礼しますが、概念の数は学習の難易度とは比例しません。
個別の概念を合わせた結果、目的の用途に合致するようになるかどうかのほうが重要かと思います。
機械語だったら概念の数がRustとGoよりもずっと少なくなると思いますが、機械語を使えばプログラミングしやすくなると思いますか?

589:デフォルトの名無しさん
22/04/07 17:58:57.87 K7k5hu80.net
なるでしょ
文法が少ないからGoは誰でも簡単に使えるのだから

590:デフォルトの名無しさん
22/04/07 18:23:34.25 6J24GmAj.net
>>568
全ての問題が解決すると思ってるのは馬鹿なので相手にしなくて良い
ゼロイチの議論しかしない人もそう
人間誰しも馬鹿な間違いをする可能性があって、間違いを見逃す頻度を大きく下げられることに価値がある

591:デフォルトの名無しさん
22/04/07 18:37:02.12 D5y31O0v.net
>>586
でも両方書ける人はGoよりRustの方がプログラミングしやすいと100%答える現実を見ると
Goは言語機能不足という感じやね

592:デフォルトの名無しさん
22/04/07 18:50:26.86 6pGOygc2.net
>>588
>でも両方書ける人はGoよりRustの方がプログラミングしやすいと100%答える現実を見ると
そんな現実はお前の脳内にしかない。

593:デフォルトの名無しさん
22/04/07 18:56:45.12 wax9VJjI.net
Rustも使いこなせる人でGoの方がプログラミング使いやすいと言う人を見たことないな
こればっかりはGoの貧弱な言語仕様では仕方ないところかと

594:デフォルトの名無しさん
22/04/07 18:56:54.01 pGmXk0tm.net
>>585
「概念の数が増えない段階なら」学習は簡単でしょうな。ADDとかの概念そのものは簡単に学習できる。
ただ、機械語の場合はメモリの位置にも機能&概念があるから、それらを含めると「概念の数が少ない」とは言えない。
あと、
>>584
目的の用途に合致するようになるかどうかのほうが重要かと思います。
というのは学習においては成り立たなくて、「すでに習得した概念 (日常生活なども含む) に沿っているか」の方が重要。
例えばオブジェクト指向はいろいろな概念の集まった複雑な考え方だけど、「対象物を操作する」という日常生活で慣れ親しんだ概念を下敷きにしているから比較的習得しやすい。

595:デフォルトの名無しさん
22/04/07 19:53:12.89 +6isarPd.net
>>591
同意です。
が、私が強調したい部分は、言語仕様が簡略な分、必要最低限の複雑性が代わりに言語以外のところに現れることです。
CPUレジスタの固有機能や命令セットの違いとかもまさにその通りで、言語自体の概念ではないが、目的の用途に取り組む場合に必要なる知識だったします。
RustとGoを学習する場合も勿論、言語を構成する概念だけ、一通り目を通せば終わり、というわけではないですよね?

596:デフォルトの名無しさん
22/04/07 19:53:35.29 48p+VEp6.net
雑魚ウェブプログラマーの俺からするとRustはGoに比べて言語機能がリッチでいいんだが、まだライブラリ(Rustではクレート)が十分に揃ってないように感じるのと、クレートがすごい細かい単位で分割されてるからたくさんクレートを組み合わせて使わないといけないのが難点かな
個人的には早くまともなORMを出してほしい。1番使われてるであろうORMのDieselが非同期に対応してないのは辛いw

597:デフォルトの名無しさん
22/04/07 20:33:59.30 hOTZf/Ps.net
>>593
そうあせるな。JavaだってまともなO/Rマッパーが追加されるまで10年くらいかかってる。
Java
- 1996年 Java 1.0
- 1999年 JavaEE
- 2006年 JavaEEにJPA(O/Rマッパー)追加
 
Rust
- 2015年 Rust1.0

598:デフォルトの名無しさん
22/04/07 20:39:59.88 zb08jYei.net
>>592
そこは>>584で述べた通り、Rustは
「もろもろの概念をほとんど全部使わないとまともなプログラムができない」
というのが学習する上で凶悪な障壁になっている。
例えばPythonなら基本的なメソッド呼び出しから段階的にプログラムを作りながら学習していけるけど、
Rustは関数ひとつ呼び出すにも所有権、スコープ、ライフタイム(RAII)、moveセマンティック、参照・借用あたりの概念を習得しないとそもそもプログラムが作れない。
自動車のマニュアルをいきなり習うようなもので、そりゃ挫折する人間も増えるかと。
まずはオートマで運転に慣れてから限定解除したほうが習得しやすいよね。

599:デフォルトの名無しさん
22/04/07 20:43:09.58 eYC8sBa3.net
25年前からの10年と7年前からの10年を同じく扱いにするなよ。

600:デフォルトの名無しさん
22/04/07 21:06:58.62 /n3eSctb.net
>>587
お前、ホームドアがなかった頃にホームから落ちたことあるか?
俺はないよ。

大都会では用水路に蓋がなく、偶に人が落ちて死んでる。
それらがほぼ暗渠になってるトン菌民とかからすると非難囂々だが、
住んでる連中は蓋がない事に慣れてるし、落ちる事もほぼないので、今後も蓋がされる気配はない。
同様な事はホームドアにも言える。
実際、ホームドアがなかった頃、困った奴はどれくらい居る?
俺は落ちた事も、落ちそうになった事もない。
ホームの端は歩かないというのが鉄則で、
混雑してる場合は何かの拍子で押されて一歩よろめいても問題ない程度の余裕を持って歩く、
それが出来ないなら諦めて人混みの流れに乗る、としてきたからだ。
これは電車通勤してる奴はみんなそうしてるし、実際に殆どの奴は落ちた事がないはず。
落ちるような奴は、そもそも保険も注意も足りてないだけ。
ガードレールがあり、歩道と車道が完全に分離してる道と、そうでない道、どの経路を通るかの選択も同じ。
車が通らない道が一番安全で、次にガードレール付きの歩道がある道、そうじゃない道の順なのは誰でも分かる。
なら、安全な道を選択すれば事故の確率は減らせる。

同じなんだよ。危険性があると分かっているのなら、上位での回避努力は出来る。
それがホームドアがなくても殆どの人が落ちた事がない理由だ。
上位での回避努力をして、さらにチェッカーが付いていれば、さらに事故を減らせる。
しかしRustは、上位の努力をせずにゴリゴリチェッカーだけで安全を確保しようとしてる。
それは俺は違うと思うし、今まで落ちた事もないから、俺にはRust流ホームドアも要らんよ、としか思わない。
(なおホームドア自体は視覚障害者や児童の為に有った方がいいが)
Rustの連中が言ってる安全性は、C/C++で特に困ってない連中には何の魅力もない。
その安全性は多分開発速度の向上に寄与するはずだが、Rustで早くなったって話もないでしょ。

601:デフォルトの名無しさん
22/04/07 21:32


602::17.79 ID:6pGOygc2.net



603:デフォルトの名無しさん
22/04/07 21:32:21.20 +6isarPd.net
>>595
実際は概念一つ一つを念入りに調査せずに、初心者の内はとりあえず思ったまま書いて、
コンパイラに渡してエラーになったら修正するのが普通かと思いますね。
たぶん、人によっては間違ったコードがCIとかでエラーになることを恥と思う気持ちもあるが、些細な問題です。
私もよく、失敗したくないときは、ローカルでコンパイルしてからプッシュするようにしています。
そこは基本的に気持ちの問題ですよね。

604:デフォルトの名無しさん
22/04/07 21:35:29.56 ikFGu1Ah.net
じゃあ動的型付け言語でも問題ないな
自分で気を付ければいいだけなんだから

605:デフォルトの名無しさん
22/04/07 21:38:19.51 +6isarPd.net
>>595
たとえばの話、多くの初心者は再帰関数を使って、スタックオーバーフローを起こして初めて、スタックというものを意識をするわけですが、
それまでは、スタックという概念をまったく気にせずにプログラムを作っていたことも、よくありますよね?
Rustの所有権周りの概念のうち、どれだけこのスタックのアナロジーに当てはまるかは多分人それぞれですが、
少なくとも、所有権の概念を細分化してできた概念の数が、そのまま敷居の高さになることはないと思います。

606:デフォルトの名無しさん
22/04/07 21:41:34.29 bwKax5i+.net
>>597
GAFAMのような大企業はホームから突き落とされるリスクが現実的だからホームドアを必要とするんだよ
ただお前さんのプログラムは攻撃者に狙われるほど広く使われていないというだけ
もちろんそういうマイナーなプログラムに安全性は不要というならそれは自由だけど

607:デフォルトの名無しさん
22/04/07 21:46:07.49 bwKax5i+.net
あと酔っ払ってホームから転落する大人もいるってのもあるな
つまり一流のプログラマでも絶対にミスをしないということはないから機械的にチェックしたいという話

608:デフォルトの名無しさん
22/04/07 21:59:21.50 /n3eSctb.net
>>600
実際俺はJSで特に苦労もしてない。
Rustの信者連中が間違ってるのは、Rust公式勝手訳日本語版まえがき(前スレ990)にある、
> やっかいな落とし穴を回避する術
を学ぼうともしてない事なんだよ。
これを学んでからRustを使えば確かに二重チェックになって意味はあるが、
学ばずに済ませようとするのは間違いだよ。
(とはいえ結果は君らが負うのだから好きにすればいいが)
ホームドアがない時には、端を歩かない、走ったりもしない、というのは鉄則だった。
ホームドアがあるから、走ったりしても安全!というのは明確な間違いだよ。
そんな事をしてる限り、危険予知能力なんて絶対に身に付かないから、
Rust以外の言語だとまともにプログラミング出来なくなるとも思う。
(それも含めて選ぶのもまた自由だけど)

>>602
GAFAM連中は「やっかいな落とし穴を回避する術」を知ってる上でやってるから二重チェックになってて意味がある。
ここのRust信者はこれを知らずに「Rustを使いさえすれば安全!バグ無し!」とか、
一時のHaskell連中と同じ事を言いだしてるから、ただのカルトであり、意味がない。
ただそれはさておき、コンパイラのチェックが厳しければ生産性が向上するはずなのだが、
実際聞いた事ないだろ?
実際には二重チェックとしてしか使われておらず、なければないで済む範囲での使用に留まっているから、
生産性の向上分が見えてこないだけ。
本当にRustじゃないと無理だっていうものがあれば、キラーアプリとしてそれが出てくる。
ないんだから、そういう事。

609:デフォルトの名無しさん
22/04/07 22:07:07.36 gzjYIF1u.net
>>604
やっかいな落とし穴が何に該当するかよくわからないのだけどrustやるならC++での危険回避法を熟知し


610:ておけということ?



611:デフォルトの名無しさん
22/04/07 22:09:45.98 zb08jYei.net
>>599
> 実際は概念一つ一つを念入りに調査せずに、初心者の内はとりあえず思ったまま書いて、
> コンパイラに渡してエラーになったら修正するのが普通かと思いますね。
Rustの場合、初心者がまともに動くプログラムに到達するまでいくつも修正しなきゃいけないのが問題だっつうの。
エンストしまくってたらマニュアル運転の練習もクソも無いわな。
>>601
> たとえばの話、多くの初心者は再帰関数を使って、スタックオーバーフローを起こして初めて、
> スタックというものを意識をするわけですが、
ここからすでに前提が間違っている。
Pythonとかは再帰関数を使用しなくてもプログラムを実装できるけど、
Rustは所有権を使用しなけりゃ変数定義も関数呼び出しもできない。
> 少なくとも、所有権の概念を細分化してできた概念の数が、そのまま敷居の高さになることはないと思います。
ここも間違っている。
細分化して段階的に学習できればまだマシな方で、Rustの場合は所有権の概念をほぼ丸呑みしないとプログラムできない。
クラッチとギアとハンドルを同時に操作しないとマニュアル車を前に進めることもできないようなもんだ。

612:デフォルトの名無しさん
22/04/07 22:32:09.52 /n3eSctb.net
>>605
いやC++に限らず、プログラミング全般で、
そこに危険があれば、どうやったら上位で回避出来るかは、術がある。
これまで何とかやってきてるんだから当たり前だろ。
面倒だから一々言う気もないけど、「データ競合」については前スレで既に書いたとおり、
・メインスレッド+サブスレッドでディスパッチ前に全部解決
で完全に回避出来る。
この構成を採用しているのがC#のGUIで、
どうもお前らは言語に対してのこだわりが過ぎてて、これがC#を褒めてるように聞こえるらしいが、
どの言語であってもこの構成にすれば回避可能で、C#のGUIではそれをフレームワークとして強制してるだけ。
だからC#では、フレームワークを正しく使う気があれば、「術を知らなくても」自然と回避できることになる。
他言語なら、この知識があれば、同様に自前で回避出来るだけ。
Rustの場合はこれをコンパイラのチェックにより同様に「術を知らなくても」回避出来るようにしている。(回避術は異なるが)
その他諸々突っ込んで、「コンパイルが通りさえすればOK」を目指すのも一つの手で、実際そうしてるようだが、
本来それはあくまで「Rustではどういう術を強制する事によって、どの問題を回避している」と認識出来てからやるべき問題。
それを初心者のうちはある程度すっ飛ばしても構わないとは思うが、知らずに済ませるのはどうかと思うよ。
566の(2)のつもりなら特に。
実際にRustが採用している術は、C++でのRAIIとunique_ptrに近いから、
これらを既に常用してたら、グダグダ言われずともRustに移行するだろうよ。
ただ、回避する術は一つじゃないから、違う術を使ってる連中は、Rustを使う事はないだろう。(俺はこちら)
そして本来は、どんな術があるのかを学ぶのが学習で、
元々はデザインパターンもこの方向だったはずだが、何かおかしな事になっちゃって見捨てられた感じになってるが。

613:デフォルトの名無しさん
22/04/07 22:40:48.67 eUNchQrd.net
Rust自体は好きだけどPythonの代替先になるというのは現状個人的には全く考えられないなぁ
単一所有権ベースの書き方が、意識せずとも間違いなく書ける内容なら静的チェックがなくても取り沙汰されないし、それがメリットとしても喧伝されないと思うんだよな
別分野だけど機械学習系だと公式のラッパー先としてまず出てこない言語だし、やっぱ性能とは別の事に頭使いたいジャンルだと不向きだと思うよ
もし広い範囲でPythonの代替になると思ってる人が居るんだとしたら、普段のスクリプティングとかもRustで書いてんのかな

614:デフォルトの名無しさん
22/04/07 22:41:15.91 QfJTmIv3.net
ようしわかった
もうわかった
ついにわかった
言ってほしいんだろ?
そういうことだろ?
Rustはしょうもないクソ言語で未来はないし
GAFAMが使ってるのもそれはそいつらがアホだからだ
ね、これでこの話おしまい
こんなクソ言語だれも使わなくていいからね
心配しなくていいからね
こんなクソ言語消えて�


615:ネくなるから 誰も使わないからね 俺は使うけど



616:デフォルトの名無しさん
22/04/07 22:43:27.27 YR3mJewM.net
いや駄目だ俺が使う

617:デフォルトの名無しさん
22/04/07 23:00:34.39 /n3eSctb.net
>>608
> 単一所有権ベースの書き方
これが演算には絶望的に不向き。ウザイだけ。
ただし鯖等では確かに「上から下に流れる」ように書くので、「単一所有権ベース」でも多分問題なく書ける。
だからまあ、現時点でWeb限定に近いのは、既に住分けてる、とも言える。
他のアプリでも、自前で状態管理するのを極力止めて、内部でRESTfulにすれば、そこそこ行けるはず。

618:デフォルトの名無しさん
22/04/07 23:24:34.67 hOTZf/Ps.net
>>610
ついやいや俺が

619:デフォルトの名無しさん
22/04/07 23:38:47.04 +6isarPd.net
>>606
言いたいことは分かります。
要は学習成果の可視化しにくいインターバルが長いと不利ということですよね?
学習した先に何を求めるかは人それぞれですし、
それって結局、言語機能を部分的にでも成果として、学習者が捉えられるかどうかだけの問題じゃないんですか?
(Rustの所有権を部分的にできるかは平行線なので置いておいて)
案外若い世代はところどころデジタルリテラシーがあるので、
プログラミング学習ができないと危惧して、変にレール敷くような考え方はしなくても良いんじゃないですか?

620:デフォルトの名無しさん
22/04/07 23:51:03.44 eYC8sBa3.net
1ヶ月に一度1ー2時間ほどプログラミングします
といった程度の人達が、あやふやな知識のまま
目的の動くもの素早く作れる言語でないと
広い裾野には訴求しない
ニッチな人のニーズには合致する可能性はあるけど

621:デフォルトの名無しさん
22/04/08 00:23:55.25 PcnkB3on.net
>>607
要はライブラリなど自分が依存するものの中身がどうなっているかはちゃんと把握した上で使えって話と、
自分が困ってないなら無理に道具を変える必要がないって話ね
rustというよりrustを変に持ち上げてる人に対するコメントだった訳ね

622:デフォルトの名無しさん
22/04/08 00:24:56.07 nM4swqos.net
我々の生きているうちにもしそんな素晴らしい汎用言語が出来ると夢が広がりますよね。
未来の言語研究に期待しましょう。

623:デフォルトの名無しさん
22/04/08 00:26:25.71 PcnkB3on.net
>>614
たしかに、次世代言語なんて銘打ったスレに集まるような人向けの言語なんてニッチの最たるものだろうね

624:デフォルトの名無しさん
22/04/08 00:31:27.96 TpfOdACd.net
>>613
>学習した先に何を求めるかは人それぞれですし、
なら、なおさらPythonの代替をRustに求めるのは無理。
まさしく>>608の通り、学習した先に「やっぱ性能とは別の事に頭使いたい」というならRustは不要だわな。
>>609
いやいや、自分もRustは認めているよ? Forthと同じぐらいには。

625:デフォルトの名無しさん
22/04/08 00:47:01.39 nM4swqos.net
>>618
そうですね。別に性能だけの話じゃないと思うが、
いろいろ気にしない人には確かにPythonでプログラミングを勧めるのも一つの手だと思いますね。

626:デフォルトの名無しさん
22/04/08 01:01:29.96 8ljQsUz4.net
Rustに移行するのはC++から来る人が多いだろうな
ptyhon、java,typescript、スクリプト系からは少ないだろう

627:デフォルトの名無しさん
22/04/08 03:06:12.85 Km060/QD.net
>>597
長々と書いてるけど、お前って一人で開発してんの?
なら好きなの使えばいーじゃん。

628:デフォルトの名無しさん
22/04/08 06:34:32.60 z2O+b+J1.net
>>608
Pythonなんて超遅いダメ言語だろ
C/C++に移行すれば10倍くらい速くなるぞ
メモリ使用量も大きく減る

629:デフォルトの名無しさん
22/04/08 07:08:41.73 F6GdhFTs.net
>>622
用途が違うものを比較しても意味ないよ

630:デフォルトの名無しさん
22/04/08 07:36:43.85 5MIkz0s/.net
>>620
JavaScript(


631:Node.js)からRustへ来たけど特に難しいところは無かったよ JavaScriptでPromise返す並行プログラミングしていたから RustでFuture返す並行プログラミングにすぐ移行できた



632:デフォルトの名無しさん
22/04/08 07:50:10.89 aDtoFpcQ.net
RubyやPHPからRustに来る人はゼロではないだろうけど少ないだろ
それぐらいなぜ認めたくないのか?
用途が違う

633:デフォルトの名無しさん
22/04/08 07:51:28.36 3RXqham9.net
みんな色々と考えるんたな。
自分の使う言語を選んで仕事始める人が多いのか?

634:デフォルトの名無しさん
22/04/08 07:54:38.16 atDB72kn.net
>>625
RubyからRustへも多いよ
例えばこのスレでも>>510へのレス状況から少なくとも3名は居る

635:デフォルトの名無しさん
22/04/08 08:00:35.35 aDtoFpcQ.net
病気なのか?

636:デフォルトの名無しさん
22/04/08 08:08:54.70 jLbA7OdY.net
俺がスクリプト言語からRustも使うようになった理由はスクリプト言語っぽく書けて便利で速いから
今後もそういう人が増えるのは間違いない

637:デフォルトの名無しさん
22/04/08 08:15:42.34 CQiu8f2R.net
>>629
完全に同意

638:デフォルトの名無しさん
22/04/08 08:22:48.61 G9TYKjMP.net
ぼくも(^o^)

639:デフォルトの名無しさん
22/04/08 08:38:19.52 16DK1NKj.net
>>626
逆よ
仕事を選ぶと言語が決まることがほとんど

640:デフォルトの名無しさん
22/04/08 09:31:00.03 gFm4wviN.net
>>629
設定に無理があるwテキトーなパースするだけにrustなんか絶対に使わねーよ。

641:デフォルトの名無しさん
22/04/08 09:55:16.26 ncPbKyCt.net
>>633
自分もRustを使っているけどRustで特に困っていることないぜ

642:デフォルトの名無しさん
22/04/08 11:02:37.27 wv8X5M3X.net
>>634
そらRustしか知らなきゃそうなるよ
もっと勉強した方がいいよ

643:デフォルトの名無しさん
22/04/08 11:18:15.72 J3x148PI.net
C/C++/Python/Java/Scala/Goあたりは仕事で書いてたけど今はRustメインだな
他にどの言語を学べばRust使う気がなくなるの?

644:デフォルトの名無しさん
22/04/08 11:29:00.59 CQiu8f2R.net
なんだこのビッグウェーブはw
Rustってとてつもない一大ムーブメントなのか?w

645:デフォルトの名無しさん
22/04/08 11:59:33.01 xydoIMfT.net
>>635
スクリプト言語とRustしか使っていないのですが何を勉強するとよいですか?
速さが必要なものと大きなものはRustを使っています。

646:デフォルトの名無しさん
22/04/08 12:29:19.18 lZxU7PE0.net
>>636
FORTHおすすめ。

647:デフォルトの名無しさん
22/04/08 12:33:53.85 gfZaFbSj.net
テキトーにパースするでもserdeが楽だから使うわ

648:デフォルトの名無しさん
22/04/08 12:50:21.80 uV0lTSE5.net
FORTHやるくらいならLISPやる

649:デフォルトの名無しさん
22/04/08 13:30:54.85 LwBnqH/T.net
Ruby 界隈では、mruby の本が出た。Ubuntu 18.04, C99 対応。
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11
Elixir の本も出た。
Ruby on Rails の本を書いている、黒田努の本
Rust は、Rubyと同様の式ベース言語で、Elixirと同様のパターンマッチ
ただ、YouTube で有名な、雑食系エンジニア・KENTA が、
バックエンドのキャリアパスは、Rails → Go のみと断言している!
Elixir, Rustは普及のキャズムを超えなかったから

650:デフォルトの名無しさん
22/04/08 13:52:24.78 VBKiPB4k.net
Goで出来ていることがRustでも容易に出来るようになったことが大きい
そしてRustの方が高速かつ適用範囲も広い

651:デフォルトの名無しさん
22/04/08 13:58:37.76 ueuwLW+z.net
>>615
違うぞ。
つか話が通じないのは全然立ち位置が違うからだが、ここを詰める意味はないので終わりにしたいのだが。
> 自分が依存するものの中身がどうなっているかはちゃんと把握した上で使え
理想的にはそうだが、現実的には無理だし、やる意味もない。
例えば数学関数、sin(x)とかも様々な実装方法はあるが、十分な速度と精度が出れば何でもよく、
sin(x)自体を導出する数学の知識(級数展開)なんて必要ないだろ。
ライブラリにしてもフレームワークにしても、基本的には外面仕様まで抑えればよく、内部まで知る必要はないんだよ。
実際、鯖やJSを書いてる奴等も、ブラウザの実装なんて知る必要ないし、知らないだろ。
ただしそれらの優劣を問う場合、内部実装まで掘り下げないと比較にならないだろ。
「データ競合」について言えば、C#とRustのアプローチは明確に異なるわけだが、
この「異なる」という事を認識し、それぞれの利点と欠点を把握してないと、正しい比較にはならないだろ。
Rust信者は「Rustにすれば僕がどんなに馬鹿でも無知でも全て解決してくれる」と思っているようだが、
これだと比較検討する技術レベルには達してないんだよ。
ただ、「データ競合」については確かにRustにお任せでも回避出来るのだろうし、これ自体が悪い方法でもない。
(一つか、下手すると一つも方法を知らない癖に何故比較検討出来てるつもりなのか?という話)
> 自分が困ってないなら無理に道具を変える必要がない
これも違ってて、だいたい人は困ってる事を認識出来てないものなんだよ。
携帯が無い時代に携帯が無くて困ってた奴は居なかったし、
スマホが無い時代にスマホが無くて困ってた奴も居なかったし、
Rustが無い時代にRustが無くて困ってた奴も居なかった。
だから新しい物を持ってくる場合、「実はあなたはここに困っていたのですが、気づけていません。
Rustを使えばこう出来ます。一度使えば二度と戻れませんよ」と具体例を示さねばならないのだが、
これがないだろ、という話だよ。(納得する物が有れば単に乗り換えれば済むだけ)

652:デフォルトの名無しさん
22/04/08 13:59:03.07 ueuwLW+z.net
RustはC++の特定のスタイルを強制してそれ以外をコンパイルエラーにするように出来てる。
だからそのスタイルを使いたい奴には超フィットするけど、
そうじゃない奴には使えない。(コンパイルエラーになるだけ)
だからやっぱりこの「エラー」ってのは強すぎてて、
> C++での危険回避法を熟知しておけ
これもちょっと違ってくる。
「Rustが採用している『術』」での危険回避をしたいのなら、
それ以外をエラーにしてくれるRustが最適で、同じ事をわざわざC++でやっても抜けを許容される分だけゴミ。
ただ問題は、Rustの場合はそれ以外を許容しないから、いつまで経っても「Rustが採用した『術』」以外の方法を学ぶ事が出来ない。
だって試そうとしてもエラーになるのだから。
だから「Rustが採用している『術』」が間違っていたら(不適切だったら)その時点で終わってしまう。
だからこそ、無駄にカルト化する。言語と心中する事しか許容しないので。
本来は、「Rustが採用した『術』」と「他の方法」を知ってて、長短見極めた上で、
Rustでの採否に納得した奴がRustを使うべきなのだが、
君らは「他の方法」を知らずに「Rustが採用した『術』」をマンセーしてるだけでしょ。それはカルトだよ。
ただし「Rustが採用した『術』」はそんなに悪いものでもないし、
コーディング戦略は大きい単位で適用した方が効率がいいのも事実。
最大単位は「言語」なので、実験としてはいいし、
Rustが無くともC++で同じ事をやってた連中にとっては天国だろう。
だからやたらマンセーしたがる奴が居てもおかしくない。
(ただし実は最上位の「プログラミング全般」という単位があり、
例えば「用意した変数はそれ以降で自由に使える」とかだが、Rustはこれに反しているので混乱も来す事となっている)

653:デフォルトの名無しさん
22/04/08 13:59:38.12 ueuwLW+z.net
長期的展望については、構成上、Rustは(育成含めての)独立したエコシステムを持ててない事がかなりポイントになる。
これはやはりホームドアが分かりやすいと思うが、これがなかった頃、まともな大人は、
・ホームの端は歩かない
・ホーム上では走ったりしない
・ふらつく程は飲まない
等を遵守して、ホームからの転落事故はほぼ0に出来てた。
Rustはこれにホームドアをさらに設


654:置し、物理的に転落しないようにした。 結果、「大人の常識の遵守」「ホームドア」で二重のセキュリティになり、安心感は増してる。 とはいえ、ほぼ精神的なものであり、実際は無くても転落する奴はほぼ居なかったので、実質的意味はほぼ無い。 これが、キラーアプリが存在出来てない理由。(GAFAMはこの使い方) さてここで、「俺はホームドアがない駅なんて知らねえ。老害の常識なんて糞食らえ」というゆとりがいて、 ただの10分間の休み時間でもドッチボールをしようとしてた小学生時代と同様、 駅で10分待つ間にも鬼ごっこ等で遊ぼうとしたとする。 一般社会では「これだからゆとりは」となって袋だたきなのは確実だが、プログラミング界隈では違う。 ・端を歩ける→デッドスペースだった両端の1mを活用出来、輸送能力が10-20%程増す ・走らない縛り無し→ならホームの両端はスカッシュコートに出来るじゃん! ・へべれけでも大丈夫→なら通勤電車内にバーを設置し、1時間飲んでたら家に着いてるとか出来るじゃん! 等、利便性を提供出来れば良しとされる。 俺が「Rustによって新たに提供される価値とは何か?」とさんざん聞いてたのはこれなんだよ。 Rust流のホームドアが無かった頃は事実上無理だった事も何か出来るようになってるはず。 その活用事例は何か、なんだよ。



655:デフォルトの名無しさん
22/04/08 14:00:07.89 ueuwLW+z.net
ただしこれは両刃の剣で、ホームドアがある前提で、それ以前の「大人の常識」を「所詮は老害の戯言」と切り捨てると、
ホームドアがない駅では確実に事故りまくる。今のRustがこれで、既に書いたが、
・「Rustが採用した『術』」以外はエラーにする=Rustではそれ以前の「大人の常識」を試せないし、学べない
んだよ。だから、構成として
・既に大人の常識がある人が、さらにホームドアが設置された駅を使う(GAFAM)
用に出来てて、
・全く何も知らない幼児が、怪我をしながらも危険を学び、次第に大人になっていく(Rust信者)
用には出来てない。(つまりRustだけではプログラマを成長させる事は出来ない)
とはいえ、現実の今時の公園ではブランコすら撤去されてる始末で、
安全重視の、スリルの欠片もなく面白みもない遊具だけになってしまってるが、
ではこれが間違ってるかと言われれば、
昭和時代のヤベー遊具は確かに楽しかったが、でも確かに危なかったし、なんだかなあ、ではある。
つまり、自前での育成(≒プログラマによる試行錯誤)を放棄している点に置いて、Rustが目指している所は、
・Rust専用コーディングドカタ育成
・他言語で育成されたプログラマの取り込み
であって、Rustではプログラミングの世界を成長させる事は出来ないし、プログラマの自主的な成長も促せない。
Rustが出来るのは、やり方を画一的に固定した開発だけだ。
ただこれが悪いわけでもない。実際、フレームワークは同様だし。
だからまあ、立ち位置としては「言語」よりも「フレームワーク」と考えるべきなのだろう。
そうすれば、「Rustに合ってる状況ならRust使え」で、みんな非常に納得出来るだろうし。
ポリシーに合致してないコードを拒絶する点に於いても、フレームワークと同様だし。
(C#の場合にデタラメなコードを食わせてイキってる馬鹿もこのスレには居たが、
この点Rustならエラーなのでフレームワークとしても正しい)

656:デフォルトの名無しさん
22/04/08 14:05:58.17 xmDi13Bx.net
Rustのプログラミングの快適さは
様々なプログラミングパラダイムを巧みに洗練して採り入れているところにあると思う
一つ一つは既存の言語にあるものが多いけど総合的に組み合わされたのはRust特有でそれが�


657:Rーディングのしやすさに繋がっている



658:デフォルトの名無しさん
22/04/08 14:45:33.12 wv8X5M3X.net
昼間から長文とかおじちゃんたち仕事は??

659:デフォルトの名無しさん
22/04/08 14:49:38.98 J+DLQw6K.net
「Javaスクールの危険」みたいな話になってきてるな
URLリンク(web.archive.org)URLリンク(local.joelonsoftware.com)

660:デフォルトの名無しさん
22/04/08 14:54:51.52 zi4mesOO.net
一方でRustは色んなことが身につくからその問題点もないよな

661:デフォルトの名無しさん
22/04/08 14:56:47.94 CQiu8f2R.net
>>650
再起とポインタなんて知らなくてもWebプログラマーはつとまるんだよ
ましてや精神的態度なんて根性論いいだしたら人材不足の今、人なんて集められないよ

662:デフォルトの名無しさん
22/04/08 14:58:59.00 CQiu8f2R.net
>>650は下の(2)の人のことをいってるんであってこのスレにいる大多数の(1)の人たちには関係がないこと。
ーーーーーーー
プログラマーには2種類の人がいる。
自動車産業に例えたら、(1)地方の工場勤務の期間工と(2)研究開発センターのエンジニア
(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。
(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。

663:デフォルトの名無しさん
22/04/08 15:07:49.60 Js+ybEIJ.net
自分はCS出てフルスタックやってるから他の立場のことはわからないが
色々やってきた言語の中でRustが最も開発効率良いと断言できる

664:デフォルトの名無しさん
22/04/08 15:13:55.24 FJuOSvU4.net
rustとgoが合体したらいいのになあ

665:デフォルトの名無しさん
22/04/08 15:30:55.82 fiUiUlD4.net
なんか一部のrust推しがすごいっすね

666:デフォルトの名無しさん
22/04/08 16:23:35.95 UBiXicJa.net
>>655
V言語

667:デフォルトの名無しさん
22/04/08 16:57:15.66 PcnkB3on.net
>>656
rust推しだけど変な人が無理筋の推し方してて困ってる

668:デフォルトの名無しさん
22/04/08 17:09:14.19 a6HBTm5x.net
頭の悪い子に限って延々演説するよなw
お前らそれを完全スルーしてて賢いわw

669:デフォルトの名無しさん
22/04/08 17:14:34.86 BG4ZrdKI.net
>>657
Vは確かに最初の宣伝はそんな感じだっけど、現状はRustとGoを足して10で割ったくらいの状態だからなぁ

670:デフォルトの名無しさん
22/04/08 17:54:29.26 0JDStoXf.net
V言語はマクロがないとかクロージャがないとか
あと安定しないままだよね

671:デフォルトの名無しさん
22/04/08 18:14:16.72 CQiu8f2R.net
>>659
スルーというかNGWordに正規表現で
.{50}
としてるからまったく気づかない

672:デフォルトの名無しさん
22/04/08 18:59:02.09 wv8X5M3X.net
>>652
そうして集めたPHPerたちが作ったWebシステムはどうなりましたか

673:デフォルトの名無しさん
22/04/08 19:35:51.32 gFm4wviN.net
>>663
facebookって言って超メジャーなサービスになってるよ。

674:デフォルトの名無しさん
22/04/08 19:40:32.31 wv8X5M3X.net
>>664
facebookのPHPエンジニアが優秀=PHPエンジニアが優秀
という短絡思考には感服致します
障害者学級PHPoorたちの心のより所なんですね

675:デフォルトの名無しさん
22/04/08 19:54:22.21 haRe9nr5.net
このスレだけ見てるとPHPerよりRusterのほうが危険で頭がおかしいと思ってしまう…
実際はそんな�


676:アとはないかもしれないが



677:デフォルトの名無しさん
22/04/08 19:58:36.19 gFm4wviN.net
>>664
え、どうなったか聞かれたから答えたらなぜかPHPともどもボロクソ言われるの、
意味がわからんのだが。

678:デフォルトの名無しさん
22/04/08 20:05:37.41 g/vqQJB9.net
>>654
「unsafeに触らない限りは」だろ。
実際にはフレームワークとかライブラリとかが充実している言語のほうが開発効率は高い。
(すでに開発済みだからという理由だけど)

679:デフォルトの名無しさん
22/04/08 20:09:42.84 nC7N6zb/.net
Rustは欲しいcrateほど放置されてるcrateやwipの空crateが一定数あるのが実用を考えた時に厳しい
RustのWinUI3対応早く来ないかなー
後別に何でもかんでも関数型になって欲しい訳でもないんだけど、スクリプト的な簡単に書きたいモチベーションのある言語に、関数のデフォルトのカリー化と、引数を渡すのと同じ記法での部分適用が導入されて欲しい
個人的に見た目がスッキリするし書くのが楽に感じるので
Fsharp使えというのはそうかもしれない

680:デフォルトの名無しさん
22/04/08 20:31:38.25 wv8X5M3X.net
>>667
元レス読めよ文盲
これだからPHPoorは
さっさと氏ねゴミカス

681:デフォルトの名無しさん
22/04/08 20:39:12.10 IqLRftxA.net
>>668
それはプログラミング言語の問題ではないな
純粋にプログラミング言語の比較でRustより上のものを挙げないと

682:デフォルトの名無しさん
22/04/08 20:39:56.09 haRe9nr5.net
webの世界を支えてるのはPHP

683:デフォルトの名無しさん
22/04/08 20:42:20.02 haRe9nr5.net
>>671
使いやすさから言えばjavaやc#のほうが上だと思う
Rustは使いどころがまだ確立されていない

684:デフォルトの名無しさん
22/04/08 20:48:04.21 4vP7lCV8.net
>>671
なら「標準ライブラリが充実している」でいいよ。
標準ライブラリが言語に含まれないとは言わんよな?

685:デフォルトの名無しさん
22/04/08 20:50:18.47 MnFLToWU.net
>>669
ところでカリー化はラムダではあかんの?

686:デフォルトの名無しさん
22/04/08 20:53:57.99 nx5fqsfT.net
>>673
そこはさすがに誰が見ても
Rust>Javaはあらゆる面から全員一致として
Rust>C#もほとんどの人が同意でしょ

687:デフォルトの名無しさん
22/04/08 21:15:04.96 hRiSi6np.net
>>676
それは過大評価し過ぎでは…

688:デフォルトの名無しさん
22/04/08 21:31:56.88 Br+emjPa.net
言語自体の比較だと現状ではRustが一番かもしれん
新言語が現れなければじわじわと利用環境や利用者を拡大していくのだろう

689:デフォルトの名無しさん
22/04/08 21:33:57.02 a6HBTm5x.net
>>669
> 後別に何でもかんでも関数型になって欲しい訳でもないんだけど
リストのリテラルが無いあたりで割り切りを感じるよな
あくまで軸足は関数型言語にはないという
リストの結合とかカリー化や関数結合もデフォで組み込まれてたら
もっと違う感じだったやろねえ

690:デフォルトの名無しさん
22/04/08 22:02:06.45 GQWBx4Yt.net
ガベージ出まくるからゼロコスト抽象にならない問題点などあるよな
見かけはマクロでわかりやすくする程度が現実解
まあ普通のGC言語でもサポートしてないのが多い中
そこまで必要とされていない機能なのかもしれん

691:デフォルトの名無しさん
22/04/08 22:13:42.74 haRe9nr5.net
なんでIDコロコロ支店の?

692:デフォルトの名無しさん
22/04/08 22:23:42.64 wv8X5M3X.net
いきなりコロしとか言い出すとかマジやべえな

693:デフォルトの名無しさん
22/04/08 23:37:25.21 nC7N6zb/.net
>>675
処理として等価なものが書けるという意味では問題ないよ
それよりもっと簡単に書けるようになるので、あると嬉しいなって

694:デフォルトの名無しさん
22/04/08 23:52:45.49 fiUiUlD4.net
rust推しに狂気を感じるスレ

695:デフォルトの名無しさん
22/04/09 00:07:03.26 il24SwZF.net
それしか言えんのか

696:デフォルトの名無しさん
22/04/09 00:20:56.02 qlihBLS+.net
>>650
似てはいる。
「JavaではCS学生には過�


697:ロ護すぎ」が趣旨だと思うが、 同様にRustを考えるなら ・修得概念は多いがこれは暗記の類であり、チャレンジではない ・コンパイラ頼みで考える事を放棄してるから、成長しない で、アカデミックには不適だ。 大学なんて就職予備校だと割り切るならありだが。 Goなら、 ・修得概念は少なく抑えられている ・構成自体は何でも出来る(はず、多分) ・やたらコピペさせられる点が糞 であって、教育/アカデミックには向いてる。(少なくともRustよりはいい) 「データ競合」「デッドロック」等のバグをコンパイラに頼って回避してる限り、 コンパイラがサポートしてくれない状況では確実にやらかす。 コンパイラのサポート無しでも回避出来る腕だが、さらにコンパイラでダブルチェックする、が正しい。 フレームワークなんて暗記の類で、ちゃんとプログラミングが出来る奴なら、使えば使えるようになってる。 フレームワークは生産性を上げる為の手段であり、 プロダクトを目指さなくてもいい学生の時点で型に嵌めてしまうのは成長を阻害する気がする。Rustがこれ。 (他言語でもフレームワークを使って課題製作して出来たつもりになってるのなら同様ではあるが、 既に書いたようにRustの場合は言語自体がフレームワーク化してるので、これを回避出来ないのが難点)



698:デフォルトの名無しさん
22/04/09 01:45:47.90 H+Mv/KjD.net
コンパイラのチェックが厳しい→コンパイラに頼る→学習にならない
もう言語の利点を語るんじゃなくて、学習に向いてるかどうかってことに話を絞ることでRust批判につなげることにしたのね

699:デフォルトの名無しさん
22/04/09 01:58:00.79 il24SwZF.net
暗記ごときでボローチェッカーに対処できるなら自他ともに認めるRustの学習曲線の問題は発生しないんだよなあ

700:デフォルトの名無しさん
22/04/09 02:01:36.12 il24SwZF.net
あとデッドロックは別にRustで静的に防止できる類のバグではないぞ
メモリリークと同様だね

701:デフォルトの名無しさん
22/04/09 02:15:58.74 eXc0QQCs.net
言語として魅力を感じるのはGoよりRustだが、将来的にGoよりシェアを拡げるかと言われたら疑問

702:デフォルトの名無しさん
22/04/09 02:26:41.71 730EZC4A.net
Rustはシステムプログラミングの分野でだけちゃんと生き残れば大成功だよ
あとは特にハイパフォーマンスや低コストが要求されるとこくらいか
ほとんどのアプリケーションでは、JavaやらPythonやらなりの高水準言語にて、より適す言語が見つかるやろ

703:デフォルトの名無しさん
22/04/09 03:28:08.67 iJevktt3.net
>>691
Javaの諸々の弱点を克服したものがRustであるため
従来Javaで書かれていた分野にRustが食い込んで行きつつあります

704:デフォルトの名無しさん
22/04/09 03:34:37.18 ntDYOunj.net
ツルツル無毛の奇麗な一本筋なんだろうね

705:デフォルトの名無しさん
22/04/09 04:14:38.03 0HVqg1ER.net
FacebookがバックエンドをJavaからRustにした記事でJavaの問題点が多数挙げられていたな

706:デフォルトの名無しさん
22/04/09 05:55:15.91 GQoYu9QH.net
他部分の結論がまだ早いが、環境的な点から考えて、
GoはJavaとPythonと比べて、教育言語として価値が高いことは今のところない
・良くも悪くもOOPではない。抽象化のレクチャの定番が崩れている
・コンベンション重視のせいで、文化風土が専制的
(たとえばインデントは実質タブしか。手法にフレームワークを当てはめがち。考える余地を与えない)
・C言語の代わりにはならず、高級言語として教えるにもポインタの概念が余計
・例外処理/リソース管理/並行処理あたりの重要ポイントの対応方法が独創的で潰しが効かない
以上、拡大解釈せずにあくまで業界最適化言語と


707:考えるのが無難という意見だ



708:デフォルトの名無しさん
22/04/09 06:21:18.57 Qew3WBrk.net
>>695
そのGo批判は間違っている
OOPはclassが無いだけだろ
例外処理もtry-catchが無いだけだろ
GoもRustもどちらもclassやtry-catchは無いが異なる方法を取っているだけにすぎない
言語毎に様々な形態がある部分を取り上げて批判するあなたの視野が狭く偏見を持っているだけにみえる

709:デフォルトの名無しさん
22/04/09 07:21:22.99 qlihBLS+.net
>>695-696
それは教育目的を明確にしておかないと空回りする。単純には以下となる。
・実務: 大学は就職予備校である
・養成: 大学は人材養成所である
・アカデミック: その分野の発展を目指す
695は実務寄りの意見だ。
ただ、実務なら議論するまでもなく現在のシェア、または求人のシェア通りにやるべきであって、
それ以外を選ぶのは教授の趣味でありエゴでしかない。
今ならPython/Java/JavaScript/C#/C++/C/PHP/Rubyの順かと。
650記事と696(と686内俺のGoへの意見)は養成寄りで、人材の底上げを目指したものだ。
> ポインタを使うプログラミングは今日書かれるコードの90%には必要とならず、製品コードにおいてははなはだ危険なものであるということは素直に認める。
> その通りだ。そして関数プログラミングは実務ではほとんど使われていない。それも認める。
> しかしそれでも、最もエキサイティングなプログラミング仕事ではこれらは重要なものなのだ。
> たとえばポインタなしにLinuxカーネルで作業することはできない。
> Linuxのコードを1行も理解することはできず、実際ポインタの理解なしにはどんなオペレーティングシステムのコードも理解できない。
つまりはプログラミングドリルに何を用いるかで、プロダクトを目指したものではない。
だから界隈の文化なんて全部無視でよく、単に、学生の頭の体操/訓練に何が適しているかだ。
この場合、スタート時から色々概念が必要なRustは最悪で、仕様は軽ければ軽い程良く、
早い段階で「仕様とか概念に苦労せず」学生が自在に「こねくり回せる」必要がある。
こねくり回す時の苦労が養成になるので、そこは頑張って苦労しろ、というわけだ。
この用途なら、Goも悪い選択ではない。
が、まあ、素直にCを選択する方が妥当ではあるが。

710:デフォルトの名無しさん
22/04/09 08:15:54.24 yjPUnyR6.net
最初はC → Rustが王道だろうな
さすがにCのままだけでは効率悪すぎる

711:デフォルトの名無しさん
22/04/09 08:16:17.09 cvyLC6WE.net
GoもRustもclassはない
でも実質似たようなことはできる
でも実質は実質であり素直にOOPできるかと言えばそうでもなく変な制約がある
ファイル分割とかしたいとか思わないならその限りではない

712:デフォルトの名無しさん
22/04/09 08:17:47.26 ehpYMGIZ.net
goはある意味goroutineとchannelを使うための言語だしな。そこに価値を見出す人が使えばいいこと。
ただまぁ、独創的だから潰しがきかないとか批判しだしたらpythonも癖が強すぎてたいがいだがな。
結局普及したもの勝ち。

713:デフォルトの名無しさん
22/04/09 08:24:05.70 cvyLC6WE.net
>>698
目的に応じて言語を選んだほうがいい
C→Rustは狭すぎるし心に余裕がなくなるし楽しくない
標準的なGUIもないから入門には不向き
個人的には間にGC言語やPython挟んだほうがいいと思うよ

714:デフォルトの名無しさん
22/04/09 08:54:42.92 0xXBKlCN.net
>>701
PythonよりはRustの方がええやろ
Pythonは偏り過ぎ

715:デフォルトの名無しさん
22/04/09 08:56:00.27 LAfniSDw.net
バランスいい言語ないの(´・ω・`)

716:デフォルトの名無しさん
22/04/09 09:09:13.58 ehpYMGIZ.net
個人的にはswiftがそこそこモダンな機能を一通り備えていながら癖の強くない文法でバランスがいい言語だと思うけど、
Apple依存というところが最大のネック。

717:デフォルトの名無しさん
22/04/09 09:09:29.66 H+Mv/KjD.net
ないです
RustのGUIクレートってどれがいいんだろ

718:デフォルトの名無しさん
22/04/09 09:33:25.59 cvyLC6WE.net
コンパイラチェックが厳しいで思い出した
全然関係ないけど自分は麻雀が打てない
ゲームではできる
自分では上がりだと思ってても実際は上がれなかったりする
結局ゲームで判定してもらってる
どこが悪いのかは自分で分かっていない
コンパイラのチェックでは原因が出るのでどこが間違ってるのかはわかる

719:デフォルトの名無しさん
22/04/09 09:43:27.34 7NJqkFJL.net
Rustのコンパイラはどの部分とどの部分がどういう問題となっていて今回のエラーとなっているのかを
複雑なケースでも丁寧に教えてくれて学習効果も高いですね

720:デフォルトの名無しさん
22/04/09 10:38:03.26 ALVqghU/.net
結局 c -> c++ -> rust って感じに進まないと理解できないと思うがな。
いきなり c -> rust で何をやってるか理解できるとはとても思えん。
この種のことをrust信者はすぐ誤魔化す。

721:デフォルトの名無しさん
22/04/09 10:45:26.66 n9UcTFQC.net
>>708
どのあたりが理解できないと思う?

722:デフォルトの名無しさん
22/04/09 10:47:43.60 3YobdmGS.net
>>708
そこは完全に逆
C++は学ぶ必要なし
今となっては何の価値もない言語
C++を学んでも回り道をしている無駄なunique_ptrくらいしかRustのために役に立つ知識がない

723:デフォルトの名無しさん
22/04/09 10:53:42.52 EFTB/rfv.net
>>708
自分はそのルートだったけどC++を経由する必要はどうかなぁ
現代のC++をマスターするのはRust以上に難しいし、初心者が自分でどこまで学べばいいかを判断するのも難しそう
まぁ結局我々は初心者ではないので推測で言ってもあまり意味はないけど

724:デフォルトの名無しさん
22/04/09 11:02:06.42 SpxMIjuY.net
要するにマロックだろ?

725:デフォルトの名無しさん
22/04/09 11:11:18.68 UvtYS0nS.net
単刀直入に言うと
実はC++とRustには共通点が非常に少ない
特にC言語との共通点を除くとほとんど残らない
だから学ぶべきはC→Rustが正解

726:デフォルトの名無しさん
22/04/09 11:38:59.26 P+77Yson.net
>713
>実はC++とRustには共通点が非常に少ない
そういう嘘をつくからRust信者はクソ言われるんだよ。
Rustの根幹をなすメモリ安全性はC++のRAII/unique_ptrから着想を得た所有権/ムーブセマンティクスの運用を徹底することによって実現しているし、
Rc/ArcもC++のshared_ptrの機能を強化しているだけ。
引数渡しをムーブセマンティクスデフォルトにするという致命的ミスをしているからC++と別物のように見えるけど、
C++ユーザーからすればC++を少し洗練させたぐらいにしか見えない。
その実体を知りながら「共通点が非常に少ない 」とか言うのは詐欺師ぐらいなものだ。

727:デフォルトの名無しさん
22/04/09 11:49:01.58 0K2sKttC.net
C++に着想を得ているのはそうだと思うけど、歴史通りの順番で学ぶ必要ある?
(その理屈だと最初はパンチカードからかな…)
C++の後付したわかりにくいmoveを学ぶより、最初から洗練された方を学んだほうがいいと思うけど

728:デフォルトの名無しさん
22/04/09 11:53:43.59 EFTB/rfv.net
C++の歴史を追っていくみたいなのは、言語設計的にはすごく学びがあって、好きな人にはおすすめなんだけど
ただプログラミングがしたい人におすすめできるかというと…

729:デフォルトの名無しさん
22/04/09 11:55:25.64 cvyLC6WE.net
現実的にはPythton or Java or C# → C  → Rustかな

730:デフォルトの名無しさん
22/04/09 12:00:59.18 LZU2nudI.net
最近の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++は学ぶ必要なし

731:デフォルトの名無しさん
22/04/09 12:05:05.94 cvyLC6WE.net
C++は無駄に増改築を繰り返された老舗旅館
通路の途中で無駄に段があったり渡り廊下があったり
HPに書いてある現代風の部屋に泊まれる場合もあるけど古い部屋に泊まることもある

732:デフォルトの名無しさん
22/04/09 12:09:41.54 EFTB/rfv.net
C++98ならそんな増築感はなかったけど、そこまで戻るとRustとの共通点もほとんどなくなっちゃうしなぁ

733:デフォルトの名無しさん
22/04/09 12:15:44.17 ehpYMGIZ.net
RAIIとテンプレートメタプログラミングが発見されてから独特の進化を始めたな。

734:デフォルトの名無しさん
22/04/09 12:16:15.06 cvyLC6WE.net
>>718
>>720
新しい部分を指してC++を学ぶべきと言ってるのではないと思うよ
それまでのC++からC++11 以降の新しい流れをみるんだろ
C++で何が都合が悪かったか判る

735:デフォルトの名無しさん
22/04/09 12:19:37.41 EFTB/rfv.net
>>722
それって歴史を知っている我々には分かるけど初心者に分かる?

736:デフォルトの名無しさん
22/04/09 12:24:26.93 cvyLC6WE.net
>>723
自分はC++を学ぶべきとは思ってないけど何が都合が悪いのか体験したらいいということだろうと推測
初心者にわかるかどうかは知らない
初心者にはjava C# Pythonを勧める

737:デフォルトの名無しさん
22/04/09 12:26:21.53 2dOqhr+x.net
C++の増改築を学ぶのはムダな枝も多くて学ばないほうがいい
RustはC++含めた様々な言語から色々採り入れているけど
洗練して整合性あるようコンパクトに採り入れてるからシンプル

738:デフォルトの名無しさん
22/04/09 12:36:22.62 HmFS1ypI.net
>>694
URLキボン

739:デフォルトの名無しさん
22/04/09 12:42:40.46 cvyLC6WE.net
フレンド関数とか学んでも使いどころなどない

740:デフォルトの名無しさん
22/04/09 12:44:13.05 qlihBLS+.net
>>706
> どこが悪いのかは自分で分かっていない
Rustで作ったゲームなら、フリテンですor役がありません、と親切に教えてくれるよ
と信者の代わりに突っ込んでみる

741:デフォルトの名無しさん
22/04/09 12:51:14.42 byaB+Tw8.net
Rustのコンパイラは賢い先生みたいなもので不十分なところを的確に適切に指導してくれる
昔Rustは学習難易度高いと言われていたためコンパイルエラーに最も力を入れたプログラミング言語へと成長した

742:デフォルトの名無しさん
22/04/09 12:52:42.79 lI/OjvKQ.net
レス番がとびとびなんだがそんなに長文書き込んでるやついるの?w

743:デフォルトの名無しさん
22/04/09 13:05:08.55 P+77Yson.net
>715
何をトンチンカンな指摘をしているんだよ。
>713 >実はC++とRustには共通点が非常に少ない
に対する反論なのに、
>715 歴史通りの順番で学ぶ必要ある?
とか共通点の話と何の関係も無いだろ。
Rust信者はこういう詭弁を弄するクソしかいないのかね。
あと、言語の話をしているのに
> (その理屈だと最初はパンチカードからかな…)
とか言語じゃないものを引っ張り出すようなアホな反論するなよ。

744:デフォルトの名無しさん
22/04/09 13:10:56.96 Wb48yUxI.net
>>718
C++から見てRustのそのシンプルで分かりやすい記述と概念は羨ましい
だからRustから輸入する形で取り入れることになった

745:デフォルトの名無しさん
22/04/09 13:23:59.57 P+77Yson.net
>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++のアイディアをパクって先行実装しただけじゃね?

746:デフォルトの名無しさん
22/04/09 13:25:35.27 OTzifHJR.net
C++の貧相なラムダ式見て涙出てくるわ
おばちゃんの必死の若作りみたいで痛々しい
>>730
相変わらず読む価値無しの駄文オナは続いてるようだよw

747:デフォルトの名無しさん
22/04/09 13:29:34.12 il24SwZF.net
スレリンク(tech板)
そろそろこっちでやってくれませんか?

748:デフォルトの名無しさん
22/04/09 13:41:58.59 xJyQ5Sl3.net
>>733
C++にはRustのenum(=型収容付きenum=タグ付きunion)が無いため
それらC++のバージョンはRustのものより劣っている
それではRustに勝てない

749:デフォルトの名無しさん
22/04/09 14:01:07.29 n9UcTFQC.net
スレタイの言語間で争える話題ないか考えてみたけど
それぞれ狙うところがバラバラで共通項がないな

750:デフォルトの名無しさん
22/04/09 14:06:05.68 J0gE1zR3.net
rustスレでやれば
もうJavaレベルには普及しないって結論じゃん

751:デフォルトの名無しさん
22/04/09 14:11:30.90 cvyLC6WE.net
次のスレからRustの話題は荒れるから禁止にしてスレタイからも削ろうw

752:デフォルトの名無しさん
22/04/09 14:14:38.49 ehpYMGIZ.net
このスレで荒れてくれる分には構わんわ。C++スレとかRustスレとかを荒らさないで。

753:デフォルトの名無しさん
22/04/09 14:19:25.04 mmQa05p2.net
便利さを理解するために不便さを体験するべきか否か論な訳だけど、個人的にはそれをするにしては遠回りが過ぎるのがC++という長大な壁だと思っているので経由する必要はないかなと思ってる
代わりの話としてZigとかどうよ
依存型的なコンパイル時計算と実行時計算をフラットに書ける感じ
結構賛否両論来そうな話題だと思う

754:デフォルトの名無しさん
22/04/09 14:22:44.53 cvyLC6WE.net
あれるのは上等なのか
関数オーバーロードがない言語は軒並み糞

755:デフォルトの名無しさん
22/04/09 14:27:38.36 OWfDePLk.net
オーバーロードあると高階関数に渡すときに一手間かかるのがヤダ

756:デフォルトの名無しさん
22/04/09 14:30:13.22 cvyLC6WE.net
標準ライブラリの標準関数のシグネチャー変える言語は糞

757:デフォルトの名無しさん
22/04/09 14:31:10.30 DIYn4SHb.net
教育には自分を撃てる言語を使った方が良いのでは?

758:デフォルトの名無しさん
22/04/09 14:31:48.55 cvyLC6WE.net
コンパイルするときにファイルのフォルダ階層に依存する言語は糞

759:デフォルトの名無しさん
22/04/09 14:33:14.01 gSPSOhuN.net
pythonガチアンチ勢がいるらしいな

760:デフォルトの名無しさん
22/04/09 14:38:25.49 cvyLC6WE.net
mainのあるファイルから連鎖的に参照されないと同じフォルダにあってもソースがコンパイルされない言語は糞

761:デフォルトの名無しさん
22/04/09 14:40:09.03 cvyLC6WE.net
言語じゃなかったな
コンパイラ環境か?コンパイラドライバか?

762:デフォルトの名無しさん
22/04/09 15:06:56.55 BphNan8J.net
言語依存の特性というよりはコンパイラがインクリメンタルかリカーシブルかなんて、言語にほとんど関係ない・・・

763:デフォルトの名無しさん
22/04/09 15:33:43.71 cvyLC6WE.net
じゃあ
ファイル名がクラス名やモジュール名と一致してないとダメな言語は糞

764:デフォルトの名無しさん
22/04/09 17:12:33.80 +P+cdtWg.net
自分じゃ話題も振らないのに他のスレでやれとかいう輩って・・・

765:デフォルトの名無しさん
22/04/09 17:40:19.06 qlihBLS+.net
>>741
> 便利さを理解するために不便さを体験するべきか否か論
そう捉える奴も多いのだろうが、それだと完全に精神論になってしまうだろ。

コメントで要求されてる「Howは要らない。Whyを書け」と捉える


766:べき。(C++はRust仕様のコメント) つまり、C++でどういう手法が試され、結果としてRustが何を採用してるかを紐解けば、 Rustが何故こうなっているのかが分かる、というわけ。 信者がひたすら「Rustは正しい」と信じることしかできないのは、Whyを知らず、妥当性の判断能力がないから。 ただしHowはRustの場合は文法にしてしまっているので、 Whyを知らなくても、知ってる奴と同等のコードは生成出来てしまう。 だからプロダクト目的のRustドカタには必要がないのも事実。 (これはフレームワークに於いて、何故こんな構造を採用したのか?とか考える必要がなく、 ただ従って正しく使えば生産性が上がるのと同様) 逆にアカデミックとか、Rustの次の言語を考えたい奴がWhyを抑えないのは問題。 信者ではなく、自分で判断してRustを選択したと言いたいのなら、Whyを知らないといけない。 (知ってないと判断出来ないはずなので、論理的に矛盾する。 これはC++の全てを知っておけという意味ではなく、 Rustで採用された「データ競合」「寿命管理」「例外処理」等の対処方法については、 当然だが他のやり方も存在しており、それぞれ一長一短有るから統一されてない。 それらを知らずに、Rustのやり方しか知らず、ひたすらRustマンセーなら、それはただの信者と言える)



767:デフォルトの名無しさん
22/04/09 18:34:35.92 JZiB2qZH.net
色んな言語やってきたが総合的にみてRustが現在のプログラミング言語の中の最強言語で間違いない
理論的に任意の言語が動き実際にも多数の言語が動かされているWebAssemblyにおいてもRustが利用トップである客観的事実もある

768:デフォルトの名無しさん
22/04/09 18:36:58.31 il24SwZF.net
話題は>>577で振ったけどスルーされました(^p^)
実際どうなんすかこれ、Yewとかその辺の利用者の使用感知りたいんだけど

769:デフォルトの名無しさん
22/04/09 18:48:35.17 SpxMIjuY.net
C++理解した程度でプログラミング理解したと思ってるのが痛々しい

770:デフォルトの名無しさん
22/04/09 20:19:57.41 cvyLC6WE.net
Rustはボロー周りとEnumだけがよくできていて他はそうでもない
長期で運用しにくいしょうもない弱点だらけ

771:デフォルトの名無しさん
22/04/09 20:26:08.31 n9UcTFQC.net
>>757
例えば?

772:デフォルトの名無しさん
22/04/09 20:26:09.05 TpQINAdx.net
そうだぞこんなの使ったら駄目だぞ
俺は使うがな

773:デフォルトの名無しさん
22/04/09 20:31:58.00 cvyLC6WE.net
レスをたどる能力もないのかRustの機能や制約を知らないのか自分で何かを調べる能力がないのか
どれなんだろう?

774:デフォルトの名無しさん
22/04/09 20:34:48.49 TpQINAdx.net
まとめるの面倒だからしないけど弱点だらけだぞ
それでも俺は使うがな

775:デフォルトの名無しさん
22/04/09 20:38:12.58 cvyLC6WE.net
言語面は置いといてrustはまずcargoを何とかしろ
モジュールパッケージの参照の仕組みを改善しろ

776:デフォルトの名無しさん
22/04/09 21:14:44.30 HNoOQ+Ya.net
次世代次世代つって結局Rustしか話題に上がってないやんw

777:デフォルトの名無しさん
22/04/09 21:34:11.92 lI/OjvKQ.net
>>763
つまり次世代はRust覇権が確定。Rust一択ってこと。
VScodeが覇権したようにプログラミング言語もそろそろRust一択にしようよ

778:デフォルトの名無しさん
22/04/09 23:10:39.42 SpxMIjuY.net
GoやクソバカPHPoorが滅びるべきというのには同意

779:デフォルトの名無しさん
22/04/09 23:31:48.47 qlihBLS+.net
それがRustが現在も今後とも流行らない理由だろうね

780:デフォルトの名無しさん
22/04/10 00:20:38.04 xqQhhwbp.net
他の言語でもRustのように広い意味でのデータ競合を実行前にチェックしてくれたらいいのに
そうすればその分の実行時デバッグを無くすことができるのに

781:デフォルトの名無しさん
22/04/10 00:52:23.84 fmRbxCQk.net
>>767
それ、馬鹿の一つ覚えだろうけど、割とマジに、データ競合で困る事なんて無いぞ。
もしみんなが本当にデータ競合に困りまくってたら、あらゆるアプリがRustでキラーアプリ化してるはずだろ。
実際は誰も困ってないし、さらにホームドアを付けたところで元々バグもないから差別化出来ず、キラーアプリ化もしてない。
面倒なのでスルーしたが、256で突っ込まれてるように、
実行時デバッグをそれほど必要としてる時点でプログラマとしてはポンコツ。
初心者なのを自覚して、まずはコードを頭の中で動かせるようになる事を目指すべきだよ。

782:デフォルトの名無しさん
22/04/10 00:52:41.03 dmNwgspZ.net
とかく計算系のライブラリの高速実装がGPGPU関係なくRustよりC++が優先されているのが悲しいが個人でなんとかできる規模でもなく

783:デフォルトの名無しさん
22/04/10 01:03:58.92 fmRbxCQk.net
>>769
やれば分かるが演算系はリソースの確保/開放ははっきり言ってほぼ必要ないので、
C++どころかCでも全く苦労しない。
しかもRustだと使い回すには一々所有権を気にしないといけないだけ面倒。
他言語なら見えれば何度でも問題なく使えるのに。
だからその辺がRustメインになる事はあり得ないと思うけど。実用重視なら尚更。
境界チェックが一々入る分だけ無駄に遅くなるのも致命的ではあるし。
俺は演算部分だけCのdllにして、GC言語からそれを呼び出すのが最強だと思うけど。
つまりNumPyでいい。(なお俺は使った事無いが)

784:デフォルトの名無しさん
22/04/10 01:07:40.61 clYg/AzK.net
>>768
超巨大なコードベースの前で人は簡単にポンコツになるよ
Sanitizerやclang-tidyへのgoogleの投資を見れば分かる
ただこの手のツールが必要になる言語やアプリは限られているから
あらゆる領域でデータ競合抑止が役に立つというのは偽だとは思うが

785:デフォルトの名無しさん
22/04/10 01:22:47.07 fmRbxCQk.net
>>771
それはコードベースが巨大すぎて見落とす確率が高くなるだけだろ。
ただし事実としてこれはあるのは認める。
これについては、Web系見てて思ったんだが、
Java(OOP): どんな巨大なコードでも、20年前のコードでも、メンテナンスしてみせる!!!
Web系(Restful): そもそも巨大にならないように分割。
 一人で管理出来るサイズ(1,000-10,000程度)なら管理も簡単だし、コードも最悪書き捨てでもいい。
で、俺はWeb系の方が正解じゃないかと思いだしている。
だから、Javaを殺すのはWeb系だろうなとも思っている。

786:デフォルトの名無しさん
22/04/10 01:24:17.90 7I8wnXlj.net
Rustのプログラミング開発効率の良さには感動した
めっちゃ便利やな

787:デフォルトの名無しさん
22/04/10 01:24:40.32 fmRbxCQk.net
あ、すまん、分かると思うが、772訂正。
× 1,000-10,000程度
○ 1,000-10,000行程度


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch