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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2022/09/17(土) 19:05:49.83ID:6v3irpfN
スレタイ以外の言語もok

前スレ
次世代言語28 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1661739736/
2022/09/28(水) 19:10:09.32ID:ToxcoP+T
>>539
Goはnil安全性すらないから前世紀の言語っぽい
2022/09/28(水) 19:15:39.85ID:6MwVPPZN
Goは色んな機能を削りすぎていて苦痛
ジェネリック導入で明るい未来を期待していたけどあんな使えない仕様になるとは
2022/09/28(水) 19:17:23.82ID:lioEJO8p
>>540
あーそれもあるか
err != nilには笑ったわ
なんかエディタのスニペットに登録してるから問題ないらしい
2022/09/28(水) 19:20:37.46ID:Jk2txA1W
正直NULL安全みたいな機能いるか?
Kotlinとかにもあるけど、結局NULL許容型も書けるし中途半端過ぎる
2022/09/28(水) 19:21:11.66ID:M8/EGStO
>>539
Rustは絶壁の学習曲線で多数の初学者が挫折し、エンスー以外使えないエンドコンテンツで終わるだろう。

せめてライブラリとかフレームワークを初心者向けに作り込むことができればまだ可能性はあるが、所有権とライフタイムがラフな使い方を拒否するからそういうことも困難。

まぁ、「3番目に学習する言語」くらいの位置になれれば万々歳だな。
2022/09/28(水) 19:25:13.91ID:lioEJO8p
>>543
関数型界隈以外ではその重要性に気がついてなかった
いわゆるシステムプログラミング言語でRustが唯一まともにNULL安全性を持って生まれた言語
2022/09/28(水) 19:30:16.66ID:lioEJO8p
>>544
初心者が挫折しがちというのは理解できるのだが
(俺自身C/C++のヘビーユーザーだったが最初はコンパイルを通すのに苦労した)
しかし一旦理解するとコンパイルエラーはほぼ起きないし
Rustの気持ちになって考えることができるようになる
本当にコンパイラの気持ちがわかる
2022/09/28(水) 19:40:17.57ID:M8/EGStO
>>543
Javaのヌルポは散々馬鹿にされていたからなぁ。
実際には、正常値としてのNullならnull objectの方が素性が良い。optionalみたいなNullが良いのは、異質なケースとして明示的に処理したい場合のみ。
2022/09/28(水) 19:43:30.85ID:M8/EGStO
>>546
その「一旦理解する」というのが絶壁だっつうの。
2022/09/28(水) 19:43:33.10ID:AiQeg8Nw
データ構造含めてスパゲッティでも動いてくれるGC言語と
データ構造が整理されていないとコンパイラが通ってくれないRust
保守性の良いコードを強制してくるRustはウザいよな
2022/09/28(水) 19:51:26.79ID:9pngDMED
>>547
ポインタであろうとデータであろうと
nullやnilなどはその型と全く別の型であるべきであり
型が異なればコンパイルエラーとすることができるため
nullやnilをうっかり使ってしまう悲劇を確実に回避できる
この仕組みを備えることをnull安全性と言う
2022/09/28(水) 20:06:25.79ID:nKJkDRPP
>>543
kotlinは割りとバランスいいと思う。
Option<T> みたいな冗長な型にならず T? で済ませてるから。
Rust はそこはちょっとダルい。
552デフォルトの名無しさん
垢版 |
2022/09/28(水) 20:27:35.31ID:dSAv9mNm
はぁ?w
2022/09/28(水) 20:37:57.86ID:wiWWHZ2n
>>539
そんな優等生な実用性は求めてないんだよ。

次世代なら、超すごいGCとかなんでも推論してハマればすごいけれど外れるとクソみたいなのをやってくれよ。
2022/09/28(水) 21:50:06.42ID:lioEJO8p
>>553
その辺はcopilotなど最新のAIの分野だと思われる
モダン言語としてはまず言語仕様をしっかり安全性の高いものにするのが大事
それに俺はヤンキーを否定してるわけではない
pythonとかライブラリの充実度は世界一だろうし
雑なツールを作るには一番早くできるだろう
TypeScriptもスクリプト言語の型システムとしてはよくできている
しかしその手の言語を最初に使っても結局そのスクリプトを人がどんどん改造してスパゲッティになる様子を見てきた
スクリプト言語である程度実装可能なことがわかったら
すぐにRustに切り替えるべき
2022/09/28(水) 22:09:10.05ID:lioEJO8p
>>548
C/C++を理解していないと難しいとは思う
所有権の移動はあらゆる変数参照で起きうるから
ひとまず借用しまくること
Rustの借用はコンパイルが通る限り安全なのだ
所有権を移動しない
これで既存の言語のように書けるのではないかな
2022/09/28(水) 22:56:28.26ID:MJCKmooB
>>555
move不要説って、RefCellで複雑なことやろうとするでしょ

Cellでreplaceしまくったほうが簡単だよ
2022/09/28(水) 23:45:50.98ID:Ujmzyxrz
moveでもborrowでも呼び出し階層のどのレイヤーで所有権を持つか常に意識しないといけないから既存の言語と同じ感覚では書けないよ

それが良い面もあれば悪い面もある
2022/09/28(水) 23:54:28.10ID:TuAX623B
>>556
Cellや動かせないOptionの中身に対してはreplaceだな
生成コストかかるものならtakeで一時的に借りるしな
moveはいつでもコスト安い
559デフォルトの名無しさん
垢版 |
2022/09/28(水) 23:56:03.77ID:Abgphp/D
>>543
いるに決まってんだろ。
お前意味なくいつもnull許容ばかり使ってるのか?ありえねーわ。
2022/09/28(水) 23:58:55.54ID:POQG8oSL
>>557
それは>>515も書いているように
どんな言語でもまともなプログラマーならば内心で意識してプログラミングするっしょ
そしてその意識の差で速度が大きく変わって来るから言語に関係なく重要な
2022/09/29(木) 00:25:48.05ID:DsUo27GE
moveは速い
cloneも速くするためにはRcに入れて循環参照とかいうリスクを取る

逆に言えば、最適化の意識が低いスタイルを確立すれば循環参照問題が無くなるのでは?
2022/09/29(木) 01:02:09.01ID:Z2jW5FHk
>>561
聞きかじりだけでRustを使ったことがないからそんな間違えをする
Rcのcloneと中身のcloneは全く別物かつ独立
例えば中身がclone実装なく不可でもRcはcloneできる

循環参照は意図的に作らない限りRustでは自然に生じることはない
そして作らないことが正解
2022/09/29(木) 01:13:01.23ID:bDeqabsn
>>560
GC言語では全く意識する必要ないよ
性能にも関係ない話
2022/09/29(木) 02:20:18.96ID:y6wWIkPL
>>563
GC言語でも意識しないと性能に直結するぞ
>>515が言うループの内外どちらかで速度差を測ればすぐ分かる
2022/09/29(木) 04:16:41.47ID:HJy6mZaS
複オジ相手しても時間の無駄だぞ
566デフォルトの名無しさん
垢版 |
2022/09/29(木) 04:19:15.74ID:4N/DzY+H
>>562
聞きかじりがどうのと、そんなメンドクサイ言語はダメだわ。
バグのもとだわ。
2022/09/29(木) 08:16:59.79ID:2DEJTfP6
>>560 >>562
そんな前提が無いと使えないんじゃ、やっぱりRustは絶壁の学習コストだな。

コミニティも初心者に配慮する気配無いし、>>544が正解か。
2022/09/29(木) 08:35:25.13ID:l+nUKPCx
>>566
>>567
じゃあC++についても知らないのね
C++のshared_ptrもRustのRc/Arcもどちらも機能もその件も同じで
そのスマートポインタのコピー(clone)をしても中身はコピーされないんだよ
中身はそのままで共有する仕組みであって基本知識の入門レベル

GCのある言語でもオブジェクトの参照のコピーとオブジェクト自体のコピーの違いがありますね
それと同じことだからこの2種類のコピーの違いを理解できていないのはマズいですよー
2022/09/29(木) 08:50:17.22ID:wt+vHEcs
ホントRustをわざと嫌われるように仕向けてるように見えるよなあ
2022/09/29(木) 10:17:24.11ID:oclOsxMu
Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
https://codezine.jp/article/detail/16416
2022/09/29(木) 11:33:20.73ID:ixRuqvEN
まずは既存言語の延長として借用ベースでコードを書いてから
適切にムーブもするというスタイルをお勧めしたいね
本来のRustのスタイルとしてはムーブベースで考えるべきなのだけど
ハードルがかなり高いと思う
(C++のムーブコンストラクタやムーブ代入演算子を使いまくってた俺クラスの人間じゃないと無理)
借用の乱用でライフタイムの指定が嫌になったころにムーブを覚える
これこそアハ体験
2022/09/29(木) 11:38:34.00ID:cdfoharm
>>568
2種類のコピーが同じではない証拠があればそうなる
証拠を得ることができない仕組みをわざと作れば、両者は速度以外同じになるので最適化に利用される
2022/09/29(木) 12:05:38.59ID:wt+vHEcs
毎回ID変えて書き込む理由って結局何なの?
2022/09/29(木) 13:45:27.89ID:cdfoharm
自分の名刺に知らない会社の名前が書いてある理由は?
2022/09/29(木) 13:48:46.01ID:c7o9QpKC
Rust初心者なのになぜ強がって墓穴を掘りたがるのか
複オジ病の心理が理解できん
2022/09/29(木) 14:01:28.67ID:uqGHlXBC
>>575
承認欲求だろ
他で承認されることがないから
匿名掲示板で嘘ついても虚勢を張ってでも
承認してもらいたくてしょうがない心理状態

子供が親に褒めてもらおうと嘘をつくのと同じ
大人でそれが常態化してれば病気だよね
2022/09/29(木) 14:30:58.29ID:v+CEiWWO
>>571
消費する時はムーブ
消費しない時は借用
2022/09/29(木) 17:55:07.76ID:BEcK0oxF
>>572
参照のコピーと実体のコピーは異なる
後者はそれ以後二つの実体へ分岐となる
2022/09/30(金) 16:19:35.52ID:GviXnHhi
ファミコンで動作するGUI付きOS「NESOS」が爆誕
2022年09月30日 11時06分

ファミリーコンピュータ上で動作するGUI付きのOS「NESOS」が開発されました。
NESOSではタスクバー付きのデスクトップ画面を表示したり、デスクトップ上のアイコンを自由に並び替えたり、テキストの編集を実行したりできます。
デスクトップ上のアイコンは自由に並び替え可能で、タスクバーにファイルやアプリを配置することもできます。
テキストエディタでは、ファミリーベーシック用のキーボードを使ってアルファベットと各種記号を入力可能。

NESOSは無料配布されており、公式ページのダウンロードリンクからダウンロード可能です。
https://gigazine.net/news/20220930-family-computer-nesos/
2022/09/30(金) 18:09:21.49ID:ehwOVJGt
最近の流行りが静的型付けと型付きラムダ系FPからの便利機能輸入だから逆風だけど、雑に書くのに向いてる言語ってなんだろうね
Nimはかなり書き味意識してるって話だし、ベタッと実装するならGolangは向いてると思ってる
2022/09/30(金) 18:32:32.92ID:5s+XxWyj
開発環境も含めてならC#は雑に書くのに向いてると感じたな
最近のバージョンだとクラスやmainメソッドを省いてスクリプト言語みたいに書けるし、IDEの補助が神がかってるから迷わずに書けてミスしにくい
まあ書き味も大事だが、雑に書く場合は極力テストの手間も抑えたいから、ミスしないことは超重要
2022/09/30(金) 21:42:44.42ID:e4s4we75
型推論できる?
2022/10/01(土) 09:46:02.05ID:GWYjbPGr
C#はF#みたいにネイティブでスクリプト実行できるようになった?
2022/10/01(土) 09:50:20.55ID:TxHdfIOV
nodeとgoとrustで/helloを受け取ったら、hello worldと返すだけのAPIを立ててベンチマークしたんだけど何でここまで差が出るかわかる人いる?30倍も違うんだけど
12スレッドのwsl linuxだけどtaskset -c 1で1コアに制限しても
Goでは 36345.50rps avg102.03ms, Rustでは 82382.92rps avg43.57ms と依然として差があるんだが
シンプルなAPIでもここまで差が出るんだから、Nodeは論外ってことなのかな
コード: https://pastebin.com/cWdaC2rZ

wrkを使用
$ wrk -c 4000 -d 5 http://localhost:3000/hello

node (express)
Thread Stats Avg Stdev Max +/- Stdev
Latency 466.94ms 73.50ms 669.37ms 81.57%
Req/Sec 4.09k 678.72 4.82k 82.98%
38284 requests in 5.07s, 8.73MB read
Requests/sec: 7547.73
Transfer/sec: 1.72MB

go (net/http)
Latency 8.72ms 5.33ms 102.98ms 96.17%
Req/Sec 122.50k 6.37k 135.10k 69.57%
1163747 requests in 5.10s, 144.28MB read
Requests/sec: 228242.97
Transfer/sec: 28.30MB

rust (active-web)
Latency 8.77ms 3.15ms 31.07ms 76.16%
Req/Sec 115.76k 18.13k 156.46k 62.22%
1085310 requests in 5.08s, 133.52MB read
Requests/sec: 213464.53
Transfer/sec: 26.26MB
2022/10/01(土) 10:38:25.68ID:WgkbTFRg
ひょっとすると JavaScript だから遅いんじゃなかろうか
2022/10/01(土) 11:22:52.62ID:TxHdfIOV
IO処理が主体ならそんなに変わらない認識だったけど10行程度のWebAPIでここまで変わると思ってなかった
2022/10/01(土) 11:33:35.78ID:PbFN9kvE
>>583
なった
2022/10/01(土) 11:52:41.67ID:h74T9WJ/
スパゲッティにならなきゃRustは最速だな
2022/10/01(土) 12:47:40.48ID:bVj73OG1
Goは1コアに制限したらGCのペナルティが大きいんじゃね。今は複数コアある前提でコンカレントマークでしょ?
2022/10/01(土) 13:00:54.63ID:d18GHPyd
>>584
起動時にモジュールを大量に読み込んでるしJITもしてるからそんなベンチじゃ遅いのは当たり前
2022/10/01(土) 13:02:43.96ID:d18GHPyd
スクリプト言語とコンパイル言語を比較する場合はランタイムのオーバーヘッドに差がありすぎるのだから
そこで差が出るようなベンチは無意味
実際のアプリケーション相当の処理を想定しないと
2022/10/01(土) 13:24:49.19ID:TxHdfIOV
>>590
はあ?
1分やっても2分やっても全く同じだけど?
もしかして平均の意味すら知らないのかな?
2022/10/01(土) 13:29:50.04ID:d18GHPyd
>>592
偉そうにいう前にまともなベンチしろ
2022/10/01(土) 13:35:05.69ID:TxHdfIOV
>>593
いやだから10秒だろうが1分だろうが5分だろうが変わらないって
偉そうなこと言ってるのはお前だろ

あらゆるノイズを排除してここまで差が出るんだから起動時のコストなんて関係ないだろ
適当なこと言ってマウント取ってんじゃねーよゴミ
2022/10/01(土) 13:42:50.86ID:d18GHPyd
>>594
ゴミはお前
論点ずらしするな
ただのストローマンだぞ
俺の言ったことをまずやれ
そしてそれでも差があるなら反論しろ
それが正当なやり方だろ
お前は手を動かさずに自分の意見が正しいと言ってるだけ

もしかして数分実行しただけでキャッシュができると思ってる?
しかもそんなよくわからんサンプルで?
そもそもキャッシュができる条件など仕様にはない
できない可能性もある
そういうことを含めてのベンチなんだよ
2022/10/01(土) 13:44:30.12ID:d18GHPyd
「俺の意見が間違ってる」ことをコードで証明しろ
ストローマンの口八百で語ってもなんの意味もない
それこそただのマウント野郎だろ
2022/10/01(土) 13:50:13.47ID:8aXdhr6R
いくらなんでもNode遅すぎで気になるね
レスポンスしてるヘッダの内容とかも比べてみなよ
HTTP/1.1が使われてるのか、cookieセットされてるかとか、keep-aliveはどうかとか
2022/10/01(土) 13:50:43.33ID:d18GHPyd
俺の意見を無視するならここに書く意味はないし
はろーわーるどのベンチでnodeは遅いね、で終わる話
ここに書かずに1人で納得しとけ
ここに書く以上何か意見を求めてるんだろ?
その意見を言ってやってるのに無視する
正しい人間の態度とは思えんな
あまりの自分勝手さに怒りさえ覚える
2022/10/01(土) 13:58:44.87ID:d18GHPyd
とりあえず家帰ったら動かしてみる
俺のローカル環境だが
2022/10/01(土) 14:07:18.89ID:TxHdfIOV
>>597
試したけどcurl -vで複数回投げた時にconnection left intactとRe-using出るからコネクション使いまわせてるね
HTTP1.1だからデフォルトでkeepaliveになってる
wrkはHTTP1.1対応

Nodeは日付とか色々ヘッダに入ってみたいだから公平な比較にはなってないけどそれにしても差があるすぎると感じるね
601デフォルトの名無しさん
垢版 |
2022/10/01(土) 14:27:28.59ID:nfi+ceWJ
>>584
Q:なぜ何でここまで差が出るのか?
A:この場合、rust (active-web) は、asyncなどでI/O待ちを切り替え起点とした非同期処理を行うが
goは1リクエストに対してgoroutineが1つ付く。細かく言うとRustはソケットI/Oへ受・送信が終わらないと
次のリクエストは処理待ちになる。
結果はReq/Secに出て高速で(効率的な)スイッチングを行えるgo (net/http)のほうが最終的に処理できる
リクエスト数は高いが、平均処理時間avgはRustのほうがほんの少し速くなる。

goでavgが遅くなるのは、処理中にI/Oを起点としない時分割で別リクエスト処理へ切り替えるために
切り替えコスト+処理コストの合計で1つのリクエストを完了する時間は長くなる

余談だが、wrkは5秒だと並列テストなどをするには短い。より厳密な計測ができるwrk2とかあるが
この場合は並列での負荷テストではないのでそんなに変わらない。ただ最初の1秒が参考にならない
上の例はあくまで1コアだが、多コア高負荷環境(1000同時スレッド・3万リクエスト・30秒ぐらい)だと
50%はgoのほうが速くなり、Req/SecはRustのほうが多くなる

node(express)は、express自体の重厚さJS/TS自体の重さがかなり効いていると思う
602デフォルトの名無しさん
垢版 |
2022/10/01(土) 14:50:55.94ID:nfi+ceWJ
ただWSLであってもLinuxのbacklog当たりのカーネルパラメータを弄れば結果は変わるかもしれない。
並列・高負荷ではなくても4000コネクションだと標準の状態だと足りない気がする

$ sudo sysctl -a 2>&1 | grep -E 'somaxconn|tcp_max_syn_backlog'
net.core.somaxconn = 128
net.ipv4.tcp_max_syn_backlog = 512
2022/10/01(土) 14:57:42.06ID:8aXdhr6R
WSLでやってんのか、WSLってパフォーマンス的にはなんか特徴あるのか?
このあと気が向いたらおれもちょっと気になるとこのベンチ比較してみる
2022/10/01(土) 15:34:25.37ID:OE4o0z6J
とりあえずNodeは遅いゴミってのが証明されてるな
605デフォルトの名無しさん
垢版 |
2022/10/01(土) 15:59:56.14ID:qXf32HZQ
>>597
その木なんの木。
606デフォルトの名無しさん
垢版 |
2022/10/01(土) 17:07:51.42ID:nfi+ceWJ
もう1つ言うと高負荷で比べるならrust (active-web) なら、go側はSO_REUSEPORT/SO_REUSEADDRを
効くようにするか、fasthttp系(fiber)などを使用すべきで、net/httpを普通に使っただけだと極限の性能では
無いので注意が必要です、今回は高負荷でないので関係ありませんが
607デフォルトの名無しさん
垢版 |
2022/10/01(土) 19:35:39.80ID:cdNryapk
利用者数が全然違うので、今はGo言語を使うほうが良いのでは?
もしもRustが使われるようになったなら、その時使えば良い。
今はまだHaskell候補の状態。
そのうちHaskellのように誰も見向きもしなくなるんだろうなあと。
2022/10/01(土) 19:44:27.68ID:WgkbTFRg
万能言語は作れない
用途別だ
2022/10/01(土) 22:06:34.84ID:WF3iEAg3
並行プログラミングなら、関数型のElixir
2022/10/01(土) 22:14:09.37ID:dtVI/r0B
型なしのゴミ
2022/10/01(土) 22:57:03.33ID:6Ogoexfu
型連呼している奴って逆に無能なのかと思うw
2022/10/01(土) 23:39:41.67ID:sINRWAWi
殊更に型の重要性を連呼する人間は、本人が有能か無能かはともかく、自分含めて人間の技能と精度を信用していないというのは確かだと思うよ
2022/10/02(日) 05:56:42.85ID:ieoagAHy
>>611
では質問するがなぜMicrosoftはJavascriptは不十分だと認識してTypescriptを開発したの?そして普及したの?
なぜPythonなどのスクリプト言語はしきりに型ヒント機能を追加してるの?

無能は型の重要性を理解できないお前、エンタープライズでは必須
2022/10/02(日) 07:31:01.25ID:er6rX+SK
>>610
じゃあErlangなら文句ないな
2022/10/02(日) 08:25:14.53ID:kfWfVuRd
>>611
みんな無能だよ。

たまに型無しで完璧にやれるやつはいるけど、そういう奴は他の人と一緒に仕事しても自分の高い能力を盾にルールに従ってもらえないから面倒だわ。

一人でR&Dとか調査主体の部署でやってもらうのが無難。
2022/10/02(日) 09:29:20.44ID:nK3zLFOq
無能向けのルールに従っていたらせっかくの高い能力を発揮できないじゃん
妥当じゃないの
617デフォルトの名無しさん
垢版 |
2022/10/02(日) 10:19:17.56ID:/RWx79y8
>>616
ところが >>611 みたいのは能力が高いわけで無いという。
2022/10/02(日) 11:45:56.93ID:HCH0ui8L
>>594
>あらゆるノイズを排除してここまで差が出る
全然ノイズ排除できてないじゃんww
意味のないベンチだよ
2022/10/02(日) 11:49:28.21ID:nGDo4Vej
>>613
型パズルで開発者にできた感を与えられるから
で実際、型を合わせるだけで正常系は大体うまく動くからね
2022/10/02(日) 11:51:59.81ID:rn8puyre
>>611
100%同意
適材適所で選ぶ能力が無いだけ
2022/10/02(日) 11:54:19.38ID:qWyZcf2G
>実際、型を合わせるだけで正常系は大体うまく動くからね
ほら無能じゃんw
2022/10/02(日) 11:56:25.66ID:I7V0xRyx
>>612
テスト書かないの?
2022/10/02(日) 12:04:09.63ID:37W/LuFO
まあ実際動的型付け言語でやるプロジェクトは
少数精鋭のチーム編成ができないと厳しいわな

メンバーが多くてコミュニケーションコストが高かったり入れ替わりが頻繁だったり下請け孫請けから最低ラインを下回るメンツが入ってくるようなら静的型付け言語のほうが楽
2022/10/02(日) 12:30:18.64ID:Bnxz+VO6
>>618
どこができてない?ヘッダに多少差があるとはいえ明確な差が出てるよね
Nodeはhttpモジュール使っても遅いし言語自体がゴミとしか言いようがない
2022/10/02(日) 12:34:37.19ID:Bnxz+VO6
APIに存在しうるCPU処理、IO処理を排除してミニマムな状態でもGoやRustと比べるとここまで差が出る

だからISUCONで誰もNodeなんか使わないんだよ
Goは手軽でスピードが出るから人気なのは自明だな
2022/10/02(日) 18:32:39.72ID:95XqQzPR
>>622
このスレに居てその質問は流石に不勉強じゃないかな……

静的型付け言語での実装においてもテストはもちろん書かれるよ
当然テストに網羅性は無いわけだけど、型はそれを補ってくれて、テストで調べるべき範囲を絞ってくれる訳だ
スイスチーズモデルにしても型は理論的に一定の範囲に穴がないことを保証してくれるのでテストの良き友だよ

ランタイムやコンパイラの型の実装が間違ってるかもしれないとかいう意見は、構文解析が間違ってるとか最適化が間違ってる並の、有り得はするけど議論するレイヤーが異なる難癖なので無視するよ
2022/10/02(日) 18:49:30.07ID:rGaa40h0
>>626
バカにされてることがわからず斜め上のレスをしちゃう無能w
2022/10/02(日) 19:02:06.24ID:ieoagAHy
>>627
上司に無能って言われた経験ありそうw
2022/10/02(日) 19:07:31.43ID:luHcc1UZ
アンカーを付けるときはまず無知無能異常者認定する複おじしぐさ
2022/10/02(日) 20:08:45.57ID:JygyFtJu
Rustなら安心安全だからテストは必要ない
コンパイラーが全部教えてくれる
2022/10/02(日) 20:37:15.64ID:X4ijFCuF
>>630
Rustはプログラムを書き始めるためのcargo new --lib した時にテスト用mod testsの雛形が自動的に生成用意されるくらいテスト重視主義の言語
もちろん強力な型システムによりRustコンパイラがコンパイル時点でデータ競合を含む多くのバグを実行する前に指摘してくれるのも事実
その分だけテスト記述は本来のロジックに関するテストに対して専念できる
2022/10/02(日) 20:38:45.06ID:zjrrEOrw
>>630
それって
コンパイラが教えないバグが一部存在してもコンパイラにペナルティがないこと
を問題視しているんだよね

全部教えると断言すればきっと罰を受けるのになあってことだよね
2022/10/02(日) 20:47:01.74ID:Vwpwuo9W
>>627
バカにされてる、というか煽られている部分を感じなかった訳じゃないけど、そうだとしても煽ってくる人間は、型とテストが複合的にエラーを減らす手段であって排他なものではないということを、理解していないか少なくとも認識していないので、レスの内容は変わらないよ

大体実装が早くできて楽だよね、っていう動的型付け言語の特性を私は否定するつもりはないし
技術というのはメリット・デメリットを認識した上で選定するものであって、単に煽るだけとか無能呼ばわりするような人間がそれらを認識できてるとは思わないし、もし不勉強と言われたくないならテストを書くという単一の手段がエラーを防ぐという点でどういう十分さがあるのか説明しなきゃ

あと
>>630
Rustだって基本のツールチェーンでテストが実行できるように作られてるんだからテストが必要ないなんで事は少なくとも言語開発チームは思っちゃいないよ
テキトー言わんでくれるかな
2022/10/02(日) 21:05:46.88ID:2u4kRfur
>>633
かつての静的型付け言語は型宣言が面倒だったため動的型付け言語は型宣言が必要ない僅かな分だけ有利だった
今の静的型付け言語は自動的に型推論が行われるため動的型付け言語が有利なことはない
実行時デバッグの手間が増える動的型付け言語は劣ったプログラミング言語
2022/10/02(日) 21:25:54.32ID:zjrrEOrw
現実は違う
まるで不殺主人公みたいに動的型を殺さないし、コンパイルが通らなかった人を殺さない
検査しかしないくせに結構役に立つのが現実
636デフォルトの名無しさん
垢版 |
2022/10/02(日) 22:58:21.35ID:5dFyg2Cc
FacebookがRust使ってると自慢レスがあったけど。
それでFacebookは使いにくいのかと納得してしまった。
637デフォルトの名無しさん
垢版 |
2022/10/02(日) 23:20:02.90ID:/RWx79y8
c++は拡張子が規格で決まってない糞だ
2022/10/02(日) 23:54:28.90ID:VOshVQpb
>>636
クラウド世界トップのAWSも
CDN世界トップのCloudflareも
Rust製です
2022/10/02(日) 23:55:48.81ID:nK3zLFOq
じゃあ企画委員会に入ればいいんでねーの
640デフォルトの名無しさん
垢版 |
2022/10/02(日) 23:57:50.44ID:5dFyg2Cc
>>638
アマゾンが倒産する日も近いな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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