次世代言語29 TypeScript Swift Go Kotlin Rust Nim
■ このスレッドは過去ログ倉庫に格納されています
スレタイ以外の言語もok 前スレ 次世代言語28 TypeScript Swift Go Kotlin Rust Nim https://mevius.5ch.net/test/read.cgi/tech/1661739736/
スケールできるってのはあくまでも効率よくって話な ISUCON12の初期実装でもGoとJavaでは5倍ほど差があったとのことだし、同じように実装しても普通に差が出るんだから 当然効率よくスケールできるという話になるわけ >>758 いやー、Goのエラー処理は適当やってると問題起きた時につらいんだよね。スタックトレース付けてなかったりすると、どこで問題起きてるかがわからない。 スタックトレースをエラー処理に組み込んでないってのが、JVM言語やってた人間からすると信じがたい。 軽量スレッドを使った並行並列処理する上で例外は相性が悪いからオミットされて代わりに値として扱ってるってのがまずあるね Goが作られた最大の理由は効率よくマルチコアを利用するってのだし Nodeみたいにシングルスレッドなのであれば例外も扱えることができるが これを両立してる言語は存在しないね 実際、D言語にはGCがあるけど、LLVMを使ってるLDCでコンパイルすれば C++にかなり近い実行速度になるし、GCはそんなに遅くない気はする >>759 Javaの場合はフレームワークもそれなりに重いからね >>754 別に書き換える必要はないと思うよ 新規で始めるならGoとかRust使った方が面白いのではないかと言うこと そもそもJavaとWebって相性が悪い なぜならオブジェクト指向とWebの相性がそもそも悪いから アホがOOPを意識して書くとオーバーエンジリアリングになりがちで、基本的に手続型の方が適してる Spring Bootとか重厚すぎて終わってる OOPが向いてるのはGUIとか public static void mainとかアホじゃねーの public static final int countdown 違うと思う 相性が悪いわけではなかった 「今後必要になるプログラミング言語」を見てみると当時javaがどう思われていたのかが分かる >>756 「でも」の意味がわからなすぎて草 「Goじゃなきゃ非機能要件を満たせない」なんて、その言語がチューリング完全じゃないみたいじゃん 極論過ぎて言いたいことがぼやけてるぞ >>760 適当にするからでしょ。 そもそもその場で処理しているはずであって、スタックトレースに頼る実質超巨gotoな例外の方がどうかしてると思う。 メッセージ送信とかいう概念がwebと相性がいいのは分かる その概念が何故オブジェクトの概念と密結合になってるのかが分からない >>772 理想はまぁそうなんだけどさ。現実そうでないコードがどうやっても紛れ込むんだから根性で解決とかは勘弁。 >>774 errcheckとか活用すればいいし、コーディングする際は必ず戻り値を確認すればいい 漏れやすいのは確かだけど、エラー表現が全く統一されてないC、C++に比べると圧倒的に楽なのは事実 Rustのエラー処理に慣れると他の言語使えんよ anyhowとthiserrorのコンボこそあらゆるプログラミング言語のエラー処理のエデンと感じる DelphiとC#とTypeScriptの関係みたいなもんでしょ >>776 InvalidArgumentみたいな標準的なのを各レイヤーごとにいちいち自分で名前決めて定義しないといけないのはどうかと思う プロジェクトがかわってもRust使ってる場合に標準的に使えるエラー型は用意して欲しい まあanyhowレベルで浸透するならcrateの形でも提供でもいい let hoge try { hoge = maybeThrow() } catch (err) { エラー処理 } hogeをここで使用 スコープが分断されるのが嫌い かといって全部try catchでまとめて囲むのも嫌だ それ以上の描き方思いつかないならそれで我慢しろとしか言いようがねえな try { const hage = ...... // ここでハゲる } catch ..... 思いついてやったぞ 3項演算子みたいに書けるトライキャッチがあればいいんだろう なんでこっちにしなかったんだろう スコープを考えたら絶対こっちの方が良いのに try { ..... catch (e) { ..... } } let hoge = maybeThrow() ? catch(err){ //エラー処理1 //エラー処理2 //エラー処理3 }; こういう見映えだとラムダ式に似てるだろ そうか? case e => HogeException case e => FugaException みたいにすればすげーわかりやすい気がするが この構文は前から俺が温めていたものだ 特に出す機会はないがw >>787 例外ってすげー祖先まで遡る事もあるって知らないの? stderrに文字を書き込んでexitしてもターミナルは終了しない というマルチタスク的なUIを シングルタスクで擬似的に再発明する機能がcatchだ catchしなければ全部終了するから 多分岐を前提としたエラーハンドリングはクソだと思うわ GoやTSみたいに基本一つで必要に応じてエラーハンドラの中で分岐でいい >>794 それ、エラーハンドリングの書き方の違いで結局多分岐じゃん スタックフレームを遡る時点でとんでもない副作用だから 今の時代にはふさわしくないわな 日本ではどっちもサッパリだけど海外だとZig>>>Nimだな 次スレはNim外してZigでよろしく 日本ではどっちもサッパリだけど海外だとZig>>>Nimだな 次スレはNim外してZigでよろしく やたらZig人気あるけど理解できん 構文もそんなにわかりやすいか? ZigはZenでケチついたけど、トラブルは片付いたのかね? >>794 ワロタw 問題の本質を分かってない Go推奨してるやつの半分以上はこのレベルなんだよなぁ いつも通り 何か言ってそうで 何も言ってなくて ワロタw >>794 はJavaですら catch (IOException | SQLException ex) とか書けるのを知らないアホ >>810 それはまさにJavaのcatchが多分岐を前提にしているからこそ必要になった構文だよね 後から追加されたってことは実際に多くの人が「多分岐を前提としたエラーハンドリングはクソ」と感じていたということでしょ バカにされたからって無理筋でつっかかるなよみっともない 本質を選択する 本質に集中する メンバーを書かなければ中身のないただの箱になる >>811 いや 多分岐は全然オッケーだけどまとめたい時もあるよねというだけ そもそも多分岐を前提としてないエラーハンドリングなんてないからw >>814 多分岐を想定してるのと多分岐が大前提でデフォなのはデザインの志向としては全然違うでしょ 例えばGoの言語仕様をデザインする上でそりゃ多分岐のエラーハンドリングを想定していないわけはないけど、結果としてエラーの多分岐に対する第一級のサポートは何もない スマン、こいつの言ってる多分岐のエラーハンドリングってはいったいどういうコードなのか誰かエスパーしてくれんか。 そもそも「多分岐」ってワードが聞き慣れないので 話が耳に入ってこない 自分で言葉作っちゃうやつと議論してもムダに終わる >>816 catch (〜) { } catch (〜) { } ... みたいなのじゃね? こっちの方が中でifするよりネストが減ってエレガントだよね >>818 tryのネストがあるだろ。 ネストの深さだけでいうとifのほうがどちらかというと分があるんじゃね。 Goのエラー処理は、そもそも大域脱出したいとかスタックトレースをたどらないといけないような呼び出し階層の深いコード書くなというメッセージ的な側面もありそう。 >>819 tryのネスト? try { try { ... こんなコード書く人居る?????? まあ呼び出し階層を削減しろって意見は分からんでもないが それはエラーハンドリングとは別ベクトルの問題だろ Webで型なんかいるか? 型チェックしてエラーになっても死ぬのは許されないから 適当にごまかす処理を書くしかない 厳密なチェックしてもかえって厄介であんまり意味ないと思うんだよな >>826 俺はOption型強制ぐらいで十分だと思ってる IsやAsやtype switchやvalue switch使って シコシコと手動でネストさせたコードを書かなきゃいけないのがクソじゃなかったらなんなんだろうな >>823 Typescriptは文法好きだけどこうやってあっという間にエコシステム入れ替わるから真面目なバックエンド、ビジネスでは使えんのよね フロントはいつか総とっかえするからまあいいかって感じだけど 「シェルピンスキーのギャスケット」を描画する機会はあまり無いのでは extern "C" 以外のABIが意味不明 → 全部静的リンク → 一部変更があれば全部入れ替える 正直ここまでコンパイル前提にするならJSとの互換性なくても良くねーか? 開発者のレベルが上がってるし そこはもう割り切ってやろうよ TypeScriptには変換後のJSに対してハックを入れない(ただしbabelを目的とする場合は除く)というポリシーがあるようで、 JSに対する後方互換性よりもそっちの方が重い足枷になっている >>829 新しいものが出てきたからってすぐに乗り換える必要はないんだぜ? >>834 新しく始めるときにあれ前とテンプレが違う、、、ってのが最悪なのよ すまん最近Blazor始めたけどTypeScript使うならC#使ったほうが良くね?って結論出てしまったわ 動的型付け言語だしオブジェクト指向だし作った人同じだし >>825 C#でいいもんなw C#はバックエンドで使用可能だからハイブリット運用が楽 Node.jsとかいらんかったんや すまんなんか勢いで動的型付け言語って書いたけど静的型付けだったわ Blazorは面白いけど業務でお目にかかることはないだろう ふつうは用途によって使い分けると思うがBlazorとか言っているからWebアプリの話か。 UIフレームワークがRazorってところがネックだな。WPFなんかが使えたら喜んで乗り換えるんだが。 とは言ってもRazorしか使えない現状じゃあやっぱりReact+Typescriptだな。 素のhtml/cssだけでWebアプリ組むのはさすがに大変なんで。 >>845 ? ウェブコンポーネントの概念知らない? >React使う必要ある??? >ウェブコンポーネントの概念知らない? この2つの質問はどう繋がっているんだろう? >>847 Reactを使う必要があるか?に対してHTML,CSSを使うのはめんどくさいからという問いが帰ってきたわけだな それで俺はHTMLやCSSをゴリゴリ書く必要がないコンポーネント使えばよくね? と返したわけだ >ウェブコンポーネントの概念知らない? が >それで俺はHTMLやCSSをゴリゴリ書く必要がないコンポーネント使えばよくね? という意味だったと? わかんねーよw まぁ伝わりづらかったのはすまんと思ってる だがまぁ言いたいことは伝わったしいいや >>843 Razorも慣れると便利よ Reactと違って直感的だしDIもサポートされてる うねいへの要望 ・受け取りボックスの下の次ページと最終ページの間に次10ページと次100ページを追加する ・カードを選択した場合に、ピックアップ機能で絞り込んだ場合、絞り込み外をグレーアウトでなく非表示にする ・1つ1つ開封する機能に加えて、一斉開封機能を追加する ・開封したものがハロの場合、指定した機体に自動で合成する機能を追加する 開封を楽しむゲームじゃないんだから、ユーザの気持ちを考えて、ちゃんと利便性を上げるように! 0.1アップするのに10ヶ月かかったことから計算すれば 1 = 0.100.0 とすると 72年後くらい そんくらいは人月の威力でどうにかなるでしょ 作業者が10人だとすれば72年 100人で7年 700人だと1年 世界中から参加者を募ると爆速になる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる