次世代言語23 Go Nim Rust Swift Kotlin TypeScript
レス数が1000を超えています。これ以上書き込みはできません。
スレタイ以外の言語もok
前スレ
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1629590343/ こんなところに来る小学生はあんまり小学生とか言わないで使いそうだけどなw
喧嘩なんてしなくて、じゃれ合ってるだけだからだよw >>947
>C#は1.xと2.0と4.6?で作ったかなw
古すぎだろ
最新はバージョン10だぞww もちろん.NET Frameworkのバージョンだよw C#のバージョンなんて誰も覚えてないだろw >>950
それはやり方を間違ってるからおかしな事になってるだけ。
例えて言うなら、舗装道路が用意されてるのにイキって荒地を走行してパンクしてるようなもの。
天の邪鬼も自由だが、それでフレームワークや言語のせいにするのは違う。 結局程度の低いプログラマーがC#が悪い!って言ってるだけだろ?
話を見てるだけでも.netのフレームワークも別に悪くない
C++で文字コードの扱いが悪いと言うならわかるけど… お前まだいたの?w ここでの話は
・.NETのモデルは出来が悪い
・お前C#erに必要な最低限の知見がない
これだけだし結論出てんだよw >>957
C#erって言葉を使ってるだけで相手を見下してるよね
Rustで同じ状況じゃ競合が起きないとかいうならわかるけどそういう話でもないし
あなたが勝手に出来が悪いと言ってるようにしか見えないんだから
出された例も馬鹿らしくて.NETのモデルも別に悪くないと思う
誰もあなたに同意できない
それだけの技量があなたにはない
他人を見下したり自分が悪いと思える謙虚さがないと低級プログラマにしかなれない
いい加減に静かにしてもらえないかな
それかどこか別に行ってやるか デッドロックに対応できないのは言語やフレームワークのせいじゃないだろ
実際にモデルが悪いのはそっちの設計の方だろ? まだ言ってるしwwwww
普通にTaskをwaitするのがawaitなのにTask.Waitって名前でデッドロックする仕様はモデルが悪いとしか言いようがないだろwwww 謙虚さとかプログラマには要らないからw
色眼鏡かけてなければ問題ないよw >>961
謙虚さがないからおまえみたいに色眼鏡かけるようになるんだよ。少しは学べよ。 ろくに調べもしないで不具合だしてるだけじゃん
名前で判断するなよ 色眼鏡かけてるのはお前だけだよw
公平に見るために謙虚さはむしろ要らないw
謙虚にすると周囲に合わせることになり、自分の意見が100%反映されなくなるw
迎合してエコーチェンバーの一部になると、色眼鏡をかけることになり、公平な判断は出来なくなるw
不具合出したわけではなく、.NETのモデルが悪いだけw 日本語不自由なんだねw Tas.Waitでデッドロックする条件分かってんだからライブラリ側で例外投げてくれよとは思うが
1ライブラリのクソ要素を根拠に言語自体をクソと言い張る思考には感心するよ C#をクソと言ったことはないぞw 日本語不自由さには事欠かないねw
マルチスレッド同期機構と非同期処理を言語で比較する話で、やれデッドロックがどうのと言っており、かつC#が良いという結論を出していたので、>>876で.NET Frameworkのモデルの悪さを指摘し、goでいいのでは?と言っただけだろうにw
話を続けた結果、彼は案の定デッドロックの話を把握しておらず、Task機構についても誤解しており、await後のスレッドについても知見がなかったので、彼の知見は一般のC#erに劣るという結論を出しただけw いい加減に辞めたら?
それを持ってライブラリのモデルが悪いと言うのは変じゃないか
あなたの主張が誰一人説得できないのはあなたの問題であってスレの住人の問題じゃない 次スレでも不毛な話が続く予感
と言うか最初からこのスレは不毛地帯だった こんなに分かりやすいモデルの悪さを納得できないとか、お前がプログラマ向いてないだけwwww この人色々なスレでスレごとに違うもの叩いてるから
おかしな人なんだろ >>966
まあ君は「ぼくはわるくない!まわりがわるいんだ!」のタイプで、一生間違いを認めないんだろうけどさ。
C#はasync/awaitの導入で、『正しく使えば』、同期周りをユーザーが全く書く必要がなくなった。
結果、『意図的に間違えるような事をしなければ』、デッドロックはしなくなった。
そして見た目はほぼ同期であり、素晴らしく分かりやすかったので、他も追従した。
(だから他言語でもasync/awaitを『正しく』使ってる限りデッドロックはしないはず)
『正しく使えば』『意図的に間違えるような事をしなければ』なんて一々言わずともまともな人には大前提だし、
そもそもフレームワークは規定通り使わないとまともに動かない。
君がイカレてるから君の周りも同様の人しか居らず、自分達が掘った墓穴に落ちて大騒ぎしてただけだと思うぞ。
(「正しく使おう」とか、君は考えた事ないだろ)
とはいえ、平行線だし、合意を取る必要はないので、まあこれで終わりだね。 ちなRustの所有権とか見直してみたが、
以前読んだ時よりは大分文面が修正されてるのか、マシな印象だが、
いずれにしてもゴミなのは事実だね。RustはC++の出来損ないになってる。
一番の問題は、所有権でライフタイム管理を「入れ子」ではなく「投げ捨て」型にした事であり、
これで余分に手間が増えてしまってる。
「入れ子」の方が自然なので殆どの言語で採用されており、
問題は「入れ子」にならない場合にどうするかだが、
C:全部プログラマが管理しろ
C++:スマポ入荷しました
Rust:スマポと所有権(投げ捨て型)
なら、全く進歩してない。
必要なのはスマポに変わる何かであり、Rustは何ら役に立つ新規提案がない。
基本的にC++の構成をなぞっただけであり、おかしな補助輪を付けてしまってるので、
C++で苦労してない人にとってはC++の方がマシだろう。
それで改善点がメモリリークしなくなった程度では、流行りようがないよ。
(そもそもC++も『正しく使えば』メモリリークはしない。
君の視点だと文法的に問題がない=コンパイルが通る=正しく使う、なのだろうし、
実際こう出来ればいいのも確かだが、現状のプログラミング言語の大半はこうなってない。
これは一概に悪いというわけでもなく、プログラミングスタイルに自由度を与える為には必要でもある。
文法エラー=新しいスタイルを試しようがない=進歩しない言語、という事になるので) 記述や理解が楽になる言語、ってわけじゃなくて、そもそも安全で高性能な言語であることが前提の言語だし、別にRustはメモリリークは解決してない
手間が少なく、安全である必要もないなら、Rustを使う必要性は薄れる >手間が少なく、
手間を少なくしたくて、
の書き間違い >>973
Rustはメモリリークは保証してないのに
そこを叩いてるのは何を調べたの? >>974,976
「GC無しで!!!」と謳ってたから「メモリリーク無し」は当然だと思ってたのだが違うのか?
(なお見てるのは主に公式勝手訳日本語版。そこすら全部読んでもないので)
> 手間を少なくしたくて、安全である必要もないなら
手間は少なくなってない気もするが。
安全って型安全の事?なら俺は型無しでもまあいいや程度なので、
確かに俺には意味がない言語なんだろう。
(型があっても困らないが、
C++みたいに関数ポインタを常用しようとするとテンプレートを書きまくらなくてはいけなくなるのは困る。
この点、関数型やスクリプト言語がどれもこれも型無しなのは非常に納得)
見た目Rustは、C++をある特定の使い方(と言っても多分本流本筋だが)に特化しただけのように見える。
だからそのプログラミングスタイルだった人には素晴らしく嵌るのだろうけど。 >>973
あまりにもデタラメすぎてむしろ苦笑
理解できなかったこと自体は仕方がないが
それにも関わらず他の言語をデタラメに叩くのはまともな人がすることではない
あまりにも間違いが多すぎて指摘しきれないが
例えば所有権はC++のスマートポインタ(unique_ptr/shared_ptr)で導入された概念
それなのになぜかC++にはスマポと書きながら所有権がなくRustのみに所有権と書いている
まずこの時点でC++の所有権とスマートポインタからして理解が出来ていない
さらにその後のRustに関することは妄想だらけになってしまっている >>977
変にrust叩きするのは恥かくだけなので
そのあたりでやめといたほうが >>973
貴方がC#に関して戦っている相手ID:BAdp3agq (>>966など)も同じくRustのアンチでRust関係スレで暴れているが
貴方は同じRustのアンチでもダメな彼より劣る
貴方は他の言語の知識も薄くRustについては何も理解しないまま嘘を書いている >>978
書き方が悪かったかもしれんが、
ブロックスコープで済み、それが最適な場所にすら所有権を強制して、
結果的に無駄に借用とかする羽目になってるのは事実だろ。
問題は、プログラミングでは大半の場合で「入れ子」が最適な事。
「投げ捨て」が向いてるのは、上から下に流れて終わり、のようなプログラムで、
サーバーは確かにそうだが。 あの子みたいにまともに議論する気がないのはお話にもならないけど、
知識が足りないのはまあしょうがないやろ
全部わかってるひとなんてこんなスレには1人もいないだろうし
>>977
伝わらなかったみたいだけど、そうそう、Rustは手間を少なくする言語でもないよ
データ競合なくして型も省略しまくりたい、みたいなのだったらHaskellみたいに型推論がやたら強い言語とかもあるし >>981
他の言語を批判したいなら、せめてもう少しは勉強したほうがいいよ
その意味不明な文章は理解不足が引き起こしている
もしどうしてもRustについて理解できないのならば、先にC++のunique_ptrを学んで所有権とは何かを理解すべき
あと他の人たちも指摘しているが「入れ子」や「投げ捨て」が意味不明 >>982
なら何を目指してんのよ?
他に謳ってたのは「ゼロコスト抽象化」だが。
公式勝手訳日本語版まえがき、には
> 既に低レベルコードに取り組んでいるプログラマは、Rustを使用してさらなる高みを目指せます。
> 例えば、 Rustで並列性を導入することは、比較的低リスクです: コンパイラが伝統的なミスを捕捉してくれるのです。
一文目は素晴らしい。
が、二文目は、無いよりまし程度だし、そもそも無駄に手間が増えてる部分もあるから意味なくね? >>982
Rustを使うことで様々な手間が省けるのは事実
もちろん元の言語が何であるかによって、どんな手間が省けるようになるのか変わる
だから手間が省ける議論に関しては、比較対象を毎回固定しないと一般的な議論は無意味 >>985
色んな言語やればわかるが
その並列性に関してはRustがベストで間違いない
データ競合が起きないことをRustは保証する
言いがかりをつけているだけの君の負けだ 知識不足指摘されて意味のわからん逆ギレ起こすのは
同程度だったな Rustの利点はプログラミングがしやすいことに尽きるかな
とにかく書きやすくて全体の効率がいい
自分にとっては安全とか保証とかはオマケで付いてくる位置付け >>987
それについてはさんざん言ってきたが、同様に前書きには
> 伝統的にこの分野は難解で、年月をかけて
> やっかいな落とし穴を回避する術を --- (A)
> 習得した選ばれし者にだけ可能と見なされています。
> そのように鍛錬を積んだ者でさえ注意が必要で、 --- (B)
これも事実だが、逆に(A)が存在するのも事実なんだよ。
ただ、(B)も事実だから、やってくれる事に越した事はないが、
それでも「全部完璧にやってくれる」のでなければ丸投げは出来ない。
具体的に言えば、GCならメモリ管理一切しなくて済むけど、そういうわけでもないし、
並列時のロックや競合も完璧にはやってくれない(だろう)から、手間自体は大して減らないよ。
例えば(A)だけどさ、
> データ競合が起きないことをRustは保証する
実際Rustがどこまで検出出来るのか知らんが、データ競合を回避したいのなら、
そもそもディスパッチ前に全部解決してしまう
(共有部分に書き込み出来るのはメインスレッドだけにする、
ディスパッチ以降は不変、無理ならディープコピーを渡す)のがセオリーで、
この形式でメインスレッドからサブスレッドをこき使うのがC#のasync/awaitの形であり、
こう「正しく使えば」全く問題ないわけ。(上位構造で問題を解決する)
このセオリーを知らない=『術を習得もしてないし選ばれてもない者』にはRustは役に立つかもしれんけど、それは、
> Rustを使用してさらなる高みを目指せます。
なら、嘘だね、という話だよ。術を修得してれば同じ事は既に出来てる。
だから何度も言ってるように、
Rustが得意(らしい)、細かく共有しないと無理か、爆速になるアプリは何?
(セオリー通りに構成した時に性能が出ないアプリは何?)
と聞いてきてたわけ。
馬鹿向けの杖ならいらねえ、な奴はいくらでもいるでしょ。
(俺が賢いというのではなく、ノウハウは既に溜まってるという意味で) >>985
Rustは性能、メモリ安全性、安全な並行性を目指して設計されているシステムプログラミング言語です
結果としてベアメタル環境でも利用可能です
>>986
そうっすね、同意するし、こだわりたい話でもないのでどうでもいいけど一応今回の手間に関しては >973 の文脈だよ >>990
C#の人かね
それならば習得すればRustの方が圧倒的に楽
後発言語なだけあって既存言語の問題点を解決しつつ良いところを洗練して採り入れてることが習得するとよくわかる >>991
> 結果としてベアメタル環境でも利用可能です
ちなみに、以下の
> Rustの非同期プログラミングで出来るようになること
> 組み込み
> https://tech-blog.optim.co.jp/entry/2019/11/08/163000
この「組み込み」は面白いと思ったよ。(妄想らしいが)
見た目ポーリングにしか見えない点が問題だが。(慣れかもしれんが) データ競合なんて言葉を使うから議論がかみ合わないのであって
例えばgolangでforループで逐次処理してた部分をgoroutine使って並列動作するよう修正したときに
うっかりループカウンタをgoroutine内でそのまま使ってしまって意図通り動かなくなったりすることがある
普通はテストなりで検出できるけど、条件が込み入ってくると検出するのが難しいバグの原因になるかもしれない
rustの場合こういったうっかりをコンパイル時にできるだけ検出できるように言語仕様が考えられている
rustを使えばあらゆるミスを検出できるわけではないけど、うっかりの入り込む余地を減らせるだけでも嬉しい人はいるだろう
逆にそんなうっかりはしないから好きに書かせてくれよという人もいるかもしれない
それぞれの考えに合った言語を選べば良い、と言ってしまうこのスレのテーマの否定になってしまうか >>991
その>>973を見てみたが意味不明すぎる
>C:全部プログラマが管理しろ
>C++:スマポ入荷しました
>Rust:スマポと所有権(投げ捨て型)
C++が所有権を導入したことがunique_ptrとshared_ptrのスマポであるのに
なぜかスマポと所有権が別扱いになっている
さらに所有権が初めてRustで登場するのもおかしい
『投げ捨て型』に至っては何のことやら意味不明
C++もRustも理解していない人が妄想で批判しているようだが >>972
.NETのモデルの悪さを指摘されてそれを認められないのはお前だろwwwww
俺はそれ以外の話をしてないんだよw 向いてないよマジでw Rustのメモリ安全については、いかなる条件でも「保証する」と言われない限りは突っ込んだ人の負けだぞw
循環参照については、
https://doc.rust-lang.org/book/ch15-06-reference-cycles.html
を読んでそれに従って苦情を言えw そうでないと反論にならないw このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 113日 11時間 15分 5秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。