- 1 名前:デフォルトの名無しさん [2020/10/27(火) 13:09:05.31 ID:5aYZ+KyB.net]
- 実際どうなん?
※Angularは残念ながら全く話題にならなかったのでSvelteに差し替えました Vue https://jp.vuejs.org/ React https://reactjs.org/ Svelte https://svelte.dev/ ※前スレ Vue vs React vs Angular Part.5 https://mevius.5ch.net/test/read.cgi/tech/1596029929/ ★ここではjQuery, Ruby, C#, Blazorの話題は禁止です ★jQuery, Ruby, C#, Blazorキチガイが書き込んでも無視してください Angular, Next, Nuxt, Sapper, Gatsby, VuePress, RedWoodなどはおk。
- 695 名前:デフォルトの名無しさん [2020/12/26(土) 19:08:20.63 ID:UNoc468U.net]
- 1万円のBluetoothより300円の有線のほうが音良いからね。
- 696 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:12:49.05 ID:8Nevj14A.net]
- C#おじさんBlazorスレでも鼻つまみ者じゃん……
- 697 名前:デフォルトの名無しさん [2020/12/26(土) 19:16:07.29 ID:UNoc468U.net]
- 安くてもシャープはシャープ(腐っても鯛みたいな感じで)だけど、安いソニーはアイワだからね。
- 698 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:16:17.08 ID:abA8NdUG.net]
- 技術の話から逃げる連中ばっかりだなここは
- 699 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:23:32.52 ID:T66JFeJq.net]
- C#のメリットデメリット
script系のメリットデメリット 向き不向きを知った上で正しい技術選択をすべきだな Blazorは出来たてほやほやなので、フロントをやるとしたらjs系言語一択になるだろう。 サーバーもjs系言語にした方が技術者も集めやすいというのが一番のメリットだとおもう。 ただ、重ためのバッチ処理が入るような企業向けシステムには向かない。 エクセル管理してたものをWebシステム化する程度のものに向いている。 どうだ!
- 700 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:28:33.38 ID:wnNA/ljl.net]
- >>689
お前さんが一番技術の話して無いじゃん
- 701 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:35:53.32 ID:A5wLytvy.net]
- >>689
自己紹介ですか? デメリットは?
- 702 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:42:12.23 ID:BjZvExSE.net]
- 685がわざわざ明確な評価基準出してくれてるのに無視してて草
>>690 > エクセル管理してたものをWebシステム化する程度のものに向いている。 それって個人の感想ですよね? クックパッドがNext.js採用したそうですよ
- 703 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:47:23.61 ID:Me3WzmOr.net]
- そういえばvueの人気が低下してきてせっかく抜いたangularに逆転されそうってマジですか?
- 704 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 19:53:47.56 ID:T66JFeJq.net]
- >>693
個人の感想だよ 間違ってたら訂正してくれ。 クックパッドのサイトは条件に合うデータとってきて表示するくらいの要件だよね あと個人が一件一件データを出し入れするだけの要件なら向いてる 裏で大量データの計算したり、帳票生成したりするのに向いてないのではなかろうか。 (個人の感想です)
- 705 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:01:15.31 ID:A5wLytvy.net]
- >>695
帳票作成、最近うちはnodeベースのpuppeteerでPDF書き出すものを試験的に作ったけど、めっちゃ良いよ。 言うほど重くない上に、そこそこのクオリティの帳票が描ける。 というかクオリティに対する重さが極小なのと、帳票作成のしんどさが相当軽減されてる。 iTextSharpとか使ってたのが地獄だったかのような感じ。 ただどうやっても背景が透明ではなく、白い板になってるのがなんとかならんかなって思ってる。
- 706 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:05:37.15 ID:BjZvExSE.net]
- >>695
でもクックパッドは凄いアクセス数を捌いてるよ? > あと個人が一件一件データを出し入れするだけの要件なら向いてる クックパッドのページ見てから語ろうね というか貴方はC#のデメリットをちゃんと答えてあげなよ。Blazorが時期尚早なんて濁した回答してないでさ
- 707 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:16:33.93 ID:BjZvExSE.net]
- >>696
puppeteerにそういう使い方あるのか。 スクレイピングと自動化にしか使ってなかったわ。 良いこと聞いた
- 708 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:22:06.40 ID:q2RopqqH.net]
- JavaやC#はaws lambdaやgcp functionsのwarm startが遅い。ランタイム重いからね。
nodeはちょっぱや。 goは速くてしかもシングルバイナリだからgoというのは分かるがJavaやC#はダメダメだね。
- 709 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:22:56.55 ID:q2RopqqH.net]
- 立ち上げっぱなしだとaws lambdaやgcp functionsの意味ないからね
- 710 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:24:09.16 ID:A5wLytvy.net]
- >>698
そうそう。特に単票はWeb版と同じAPIでHTML出して、帳票向けのcss当てて出力するだけだから、劇的に楽。 page.pdf()で完結。 悩むとしたら集計系とか、連続帳票のヘッダとフッタぐらいかな。 そのへんは小細工してcss書くのは諦めて、素直に複数ページ描画した。 手書きで心を込めた罫線の描画命令を書く必要もないし、クリレポ職人も要らないし、もちろんライセンスも要らない。
- 711 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:47:51.69 ID:BjZvExSE.net]
- >>701
新しくAPI切ったりしなくて良いのは楽だなぁ。 前社で楽に帳票作るためにC#でxslxのテンプレートにデータ焼き込んでた怠惰な俺向きだわ
- 712 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 20:49:22.36 ID:T66JFeJq.net]
- >>697
いやおれは要件が合えばscript系に移行することもかんがえてるC#erなんだよ ていうかここのスレの意見聞いてたら弱点なんか全くないじゃないか
- 713 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 21:11:43.91 ID:A5wLytvy.net]
- >>702
xlsxも綺麗に刷ろうと思うとCOMになるから、プロセスが落ちなかったりすると面倒だし、非UIのサーバアプリではやるなってのがMSの公式見解だしで、どうにかしようと行き着いたのがHTML帳票だった。 >>703 自分が知ってるC#の弱点は? 俺は色々思い浮かぶけど。
- 714 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 21:27:19.36 ID:T66JFeJq.net]
- >>704
そもそもBlazorは未完成なのでSPAが作れないという感想 他は… VisualStudioが重たい .NETのサポートが短くなった 技術者を集めにくい MSがフレームワークを作るだけつくって非推奨とか言い出す 言語というか、環境まわりだな 代わりにスクリプト系言語の弱点教えて
- 715 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 21:51:25.33 ID:A5wLytvy.net]
- >>705
C#の弱点を聞いてて、Blazorの弱点を聞いてるんじゃない。 その全てはだいたいnodeと今時のJSのフレームワークで解決出来るんじゃないかな。 スクリプト系言語の弱点は、デプロイがちょっと面倒な事と、ランタイムが必要な事だと思う。 その辺はコンテナとか周辺技術で解決かな。 まあ、.net coreのSCDで解決しようとして未だに燻ってる所だよ。
- 716 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 22:12:05.25 ID:Ii8YlEBO.net]
- >>656
彼が馬鹿だからさ!
- 717 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 22:24:59.74 ID:T66JFeJq.net]
- >>706
C#の弱点はぱっと思いつかないな… いろんな言語のいいところをパクって尚且つ非破壊だから 言語としてはひどい目にあったことはない ADO.NETとかWebFormにはひどいめにあった パフォーマンスや生産性がC#&ASP.NETと同等、それ以上なら前言を撤回する 以前どこかのスレに金融系のガチガチシステム、計算処理やエンドユーザー向けに大量の帳票吐く要件がある何十人ものメンバーでつくるようなシステムでスクリプト系言語使えるか聞いたらやめた方がいいって言われたことがある
- 718 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 22:29:52.08 ID:aPjFRcaw.net]
- fastlyのcompute@edgeやcloudflareのworkersなどのエッジコンピューティングプラットフォームにC#でデプロイしてみなよ
- 719 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 22:36:31.82 ID:A5wLytvy.net]
- >>708
いくらでも思いつくぞ。 GCがイケてない。 古いAPIが残りすぎ。 スレッドプールの使い方が下手。 最近ValueTaskが出てさらに無茶苦茶になった。 新機能がとことんシンタックスシュガーで、awaitするだけで暗黙のメンバ変数が生まれて寿命が長くなる。 いっぱいある。 それ以上だよ。少なくとも生産性に関しては。 既存資産という意味では。 規模が増えてきたら静的型付き言語でやりたくなるのはわかるけど、別に動的型付け言語でも普通にできる。 言われた事があるだけで、やってみて駄目だった訳じゃない時点でお察しだぞ。 まずは一人で、次はチームで、次はプロダクトでやって見ればいいじゃん?
- 720 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 22:59:58.77 ID:T66JFeJq.net]
- >>710
ここに来てやっと有用な情報が出てきた… どっちもやったことのある人の意見を聞きたかった。 スクリプト系総じてくそ!で終わらせる奴もいるし。 会社でそういう技術を試すにも理由がいるんでな。 充分選択の余地ありだな ありがとう。
- 721 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 23:24:34.97 ID:A5wLytvy.net]
- >>711
なんでこんなに試し試されるような会話をしないといかんか考えてよ。 みんなわかってて、批判してるんよ。 ちゃんと聞こうよ。
- 722 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 00:04:05.78 ID:+391sGQI.net]
- またそのうちC#おじさん湧いてくるだろうけど、マジで不毛なんだよね。全く懲りない反省しない
- 723 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 00:24:48.94 ID:V6kYHqJF.net]
- AWS Lambda には、Ruby も採用されている
マネージドサービスを使っていれば、環境構築運用など何も考える必要ない。 バッチ、Lambda、SQS・キュー、SNS・通知を、一杯つなげるだけ
- 724 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 01:08:11.82 ID:pJh4CuO4.net]
- 新規案件でSPA作りたかったらサーバーサイドもフロントサイドもC#選ぶ理由なんてないってことだ
- 725 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 01:34:36.12 ID:muwPWXFk.net]
- >>708
VitualStudio使わなきゃいけないってのはサーバーサイドやるには結構面倒
- 726 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 02:16:33.08 ID:Ezs6G331.net]
- >>716
なぜ使わなきゃいけないと思った?
- 727 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 02:17:11.17 ID:sH9shL9g.net]
- C#おじさん全くスレと関係ないことを書き散らかして
自演改行しまくるから本当に迷惑
- 728 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 07:40:53.11 ID:bUn1CAUk.net]
- 自演がヒドイしとだから...
- 729 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 13:35:21.05 ID:JDlKWc3Q.net]
- >>620
tsはまぁ分かるがjsはちょっと pythonは古い言語だから記述のもどかしさは多いね import周りは迷走しすぎ
- 730 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 16:30:32.33 ID:xvZc4lDU.net]
- es3の頃のバッドノウハウを一旦リセットしてes2017とかやるとだいぶ違うよ。
同じ動的型付け言語でもpythonなんかより言語として洗練されている。
- 731 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 20:55:15.37 ID:sH9shL9g.net]
- pythonも型書けるからねえ
tsはなんか型パズルしちゃう人が多くてよくわからん 表現力が強すぎるのも考えもの
- 732 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 20:26:09.84 ID:KNPSf2Ws.net]
- >>710
>GCがイケてない。 JSを含む多くの言語がGCを持っている それらのGC実装比較して具体的にどうイケてないと感じた? >古いAPIが残りすぎ。 後方互換性は明らかなメリット JSを含む他の言語ではそんなに簡単に後方互換性が失われて破壊的変更が頻繁に行われるの? >スレッドプールの使い方が下手。 .NETのスレッド(を含む非同期処理全般)はうまく出来ていて最小限の労力で各環境毎に高い効果を見込めるようにできている 具体的にどういうところが下手だと感じた? >最近ValueTaskが出てさらに無茶苦茶になった。 基本的にValueTaskを選んでおけばOKになったのでむしろスッキリした どういうところが無茶苦茶になったと感じた? >新機能がとことんシンタックスシュガー シンタックスシュガーにすることによりランタイムのバージョンアップを回避して高い後方互換性を維持することができた このメリットに対して変数のスコープが少し伸びた事によって具体的にどのようなデメリットが発生した?
- 733 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 21:29:19.32 ID:8HD9KuQx.net]
- 配点も書いてくれよ
- 734 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 21:49:29.10 ID:gLlPtDZl.net]
- レスないからって自演かよ
- 735 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 22:08:20.13 ID:KhSNASG/.net]
- お、屁理屈C#おじさんじゃん
- 736 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 22:18:18.18 ID:KNPSf2Ws.net]
- なんだ
具体的に答えられないということは やっぱり適当にそれっぽく言ってみただけか
- 737 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 22:27:42.95 ID:KhSNASG/.net]
- まともに回答しても屁理屈で答えるか図星を突かれたら無視するような奴に、色々教えて介護してやる気は無いよ
- 738 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 23:18:38.63 ID:KNPSf2Ws.net]
- >>728
そういうのはまともに回答できるようになってから言いなさい
- 739 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 23:19:49.01 ID:0DUA8XV/.net]
- そもそも自演だし
- 740 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 23:22:09.77 ID:or9XXg+k.net]
- い、一体どのレスとどのレスが自演なんだ…?
- 741 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 23:25:52.59 ID:KNPSf2Ws.net]
- 自演って言ってみたかっただけだろう
- 742 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 23:58:25.36 ID:w2tkTAcI.net]
- GO + wasm じゃダメでしゅか?
- 743 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 00:52:45.33 ID:hwRKbE5U.net]
- よい!
- 744 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 01:01:09.47 ID:X0m1jPo1.net]
- wasm自体はGCサポートしてないからGC言語のGoやC#は辛いぞ。
少なくともGCをランタイムに積まないといけない。 そんなわけでwasmにはRustやC/C++ばっか使われるのだ。 C#なんかGCどころかコードをwasmネイティブにすることもできずにwasmでドトネトの中間言語インタプリタ動かしてるだけだからなw
- 745 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 01:31:07.52 ID:xrSERZg5.net]
- >>723
世代を超える時の扱いが雑。Goは敢えて世代管理しないという方向で行ってるが、ほぼパーフェクト。 そのせいでs
- 746 名前:tackallocとか作っててワロスって感じ。
古いAPIを残してる分には良いだろう。 Obsoleteもついてないってどう言うことよ。 なんでhttpアクセスすんのにあんなに方法あんのよ。HttpClientは罠実装だし。 うまくできてない。ConfigureAwaitメソッドなんか要らない、と言えるようになってから言え。 ValueTaskを選んでおけばという発想がおかしい。 stackallocと同じ方向性の解決法。 選択肢は解決ではない。ちゃんとコンパイラがやれ。 ランタイムのバージョンアップを回避する必要性がわからん。必要ならしろよ。 それは後方互換性とは言わんでしょ。 個人的にはその寿命が伸びる件で踏み抜いたので割と嫌い。 [] - [ここ壊れてます]
- 747 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 02:30:03.59 ID:c62SKept.net]
- また来たよ
もう金渡すから消えて
- 748 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 06:47:47.18 ID:awsGRXp2.net]
- wasmにGC載せる計画はあるみたいだけど、そのGCはおそらくJSのGCと同一だろう。ChromeではwasmがTurboFan上で動くのと同様に。
これが移植上ネックになることもあるのかな、と上のを見ながら思った
- 749 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 06:50:26.39 ID:awsGRXp2.net]
- あと、C#の話する時はC#って書いてくれ。NGするから
- 750 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 07:25:05.07 ID:iWtJxFHh.net]
- WebAssemblyをNGわーどにしたら?
- 751 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 07:35:42.01 ID:ZrXqpCJW.net]
- ワッチョイ付ければNG楽になるよ?
- 752 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 09:33:32.36 ID:KX/n8CkP.net]
- 一時期ワッチョイスレもあったけどなんか毛嫌いするヤツが多かったんだよな
- 753 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 11:29:58.07 ID:b5xW7Gve.net]
- >>736
>世代を超える時の扱いが雑 どういうふうに雑だと感じた? Goは世代管理をしないと言うがJSやその他の言語はどんな実装になってる? >Obsoleteもついてないってどう言うことよ 高い互換性おかげで問題なく動作するから無理して修正する必要がないからではないかな 次期バージョンで消える可能性すらない安定したAPIになぜお節介にもObsolateを付けた方が良いと考えたの? >なんでhttpアクセスすんのにあんなに方法あんのよ 複数の方法が共存するのは言語が後方互換性を維持しつつ順調に成長している証拠 君の考えかただと新APIだけ残して古いAPIは削除して後方互換性破壊することになる 唯一のAPIを残して他を削除すべきと考えたのはなんで? >ConfigureAwaitメソッドなんか要らない ConfigureAwaitはプログラム文脈から機械的に判断できないコンテキストの切り替えをコントロールするためのメソッドだ これがないとプログラマはコンテキストの切り替えをコントロールできなくなってしまう なぜコンテキストの切り替えをコントロールできないほうが良いと思った? >ValueTaskを選んでおけばという発想がおかしい。 なぜ発想がおかしいと考えた? >ランタイムのバージョンアップを回避する必要性がわからん 古いプログラムをそのまま動作保証するのに最も確実で安全で低コストな方法がランタイムをそのまま維持することだからだよ なぜ破壊的変更が紛れ込む可能性があるのに変えなくてもいいところまでわざわざ変えたほうがいいと考えた?
- 754 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 11:47:10.79 ID:awsGRXp2.net]
- その毛嫌いしてたのってC#おじさんじゃね?
- 755 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:02:26.55 ID:Fq3XcUlo.net]
- TypeScriptも互換性維持のために同じ運命を辿るのだろうか
同じ作者だし いまイケてる言語、フレームワークもいつかはレガシーに ナウなヤングは気付いたらおじさんに
- 756 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:32:52.41 ID:awsGRXp2.net]
- そのへんはある程度はしゃーない。
そうなったらいかにナウなヤングの邪魔をしないようにするか、いかに限られたリソースでキャッチアップするか考えるさ。 それまでに沢山経験積んどかなきゃ……
- 757 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:39:50.65 ID:Fq3XcUlo.net]
- >>746
みたいなバイタリティある人はいいけど 大半の人間は潰しが効かなくなるだろうね フロントサイドしかやってない人とか特に…
- 758 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:41:22.77 ID:k23+wtCh.net]
- Cordovaは、iOS, Andoid, macOS でJSで書いたプログラムをWebViewを
使ってAppStoreやGooglePlayに登録できるアプリとして作製できるが、 iOS 11 以上だと、Wasmも実行できるらしい。Androidでは当然出来る。 そして端末の独自機能にJSやWasmからアクセスできる。 ファイルアクセスなども可能。 仕組みはJSと端末との間で通信するブリッジを用意している。 つまり、Wasmとして出力したプログラムは、Cordovaを使えば モバイルOSで、ファイルシステムや端末の独自機能をフルアクセス できるようになるらしい。 HttpServerなどを使ってJSとnative APIとの間が仲立ちされているので JSからnative APIが全て使用できるだろう。
- 759 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:49:48.81 ID:k23+wtCh.net]
- >>748
nativeアプリの仕組みはこうだ: 1. 時間や乱数を利用してパスワードの様なセキュリティートークンを作る。 2. Posix Socketを使ってLocal Http Serverを作る。ポート番号を5000とする。 3. WKWebViewなどのWebViewを使ってHtml+JSのプログラムを起動する。 4. 2 や 3 を起動するとき 1 のトークンを2と3の両方に渡す。 5. JSが端末の独自機能を使いたい場合、fetchやXmlHttpRequestを使って localhost:5000/機能名?トークン&パラメータ の様なURLでLocal Http Serverにアクセスする。 6. Local Http Serverは、トークンが正しい場合にのみ動作するようにする。 機能名とパラメータに応じてファイルの読み書きや端末の独自機能のAPIを呼び出す。 7. APIの結果は、Http プロトコルの response で JS 側に返す。 8. JSは結果を受け取る。
- 760 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 12:54:14.36 ID:4hVd0nGl.net]
- wasmってブラウザだけじゃなくK8SでもIo
- 761 名前:Tデバイスでも動くわけだし
モバイルでも動かしたいって欲求も当然出てくるだろうな そうなるとストアアプリの実装言語も将来的に何でもありになるのかもね [] - [ここ壊れてます]
- 762 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 13:29:33.29 ID:xrSERZg5.net]
- >>743
nodeなんかはインクリメンタルではなかったっけ。 Javaはアプリの仕様に合わせて好きに選べる。 awaitで寿命が伸びる件と相性が悪いけど、あまりにも世代1に行き過ぎ。 ライブラリ関数ではゼロアロケーション意識しないといかんレベル(ライブラリ関数でgcが起きるとgen0がライブラリ関数で尽きるので呼び出し元がgen1にあっさり追い出される) .net coreでやっとある程度柔軟にはなったものの。 無理して修正する必要はない。 逆だろ。処理系のバージョンアップ側にメンテナンスコストかかり続けるじゃん。 それ言い続けて、限界を迎えたら.net core? アホかな。 後方互換性を維持しつつ順調に成長してるならば、関数が変わるよな。 実のところ、本館、新館、別館と建て増した温泉旅館だよ。 古いAPIは2世代ぐらいで殺すべきだろ。 なんで.NET FWがあんなに亀レベルでしか成長できなかったと思ってんの。 コントロールできない方が良いんではない。 コントロールする必要があるのがアホかなって言ってる。 UIスレッドだけ特別扱いしてるところからわかるだろ。 中途半端。 発想がおかしい理由がわからんならもう黙れよ。 古いプログラムをそのまま動作保証するために必要なのは、互換性ではなく、そのバージョンをLTSにしてちゃんとパッチ出してく事だよ。 で、SideBySideできるようにするか、コンテナにするかどっちかだろ。 バージョンアップするけど(だいたい)互換性はありまぁすとか言ってるから、2020年なのに.NET FW 4以上に上げられん基幹系みたいな負の遺産を残すんじゃないか。 お前が言ってることはC#というか.NETを何度もだめな言語にしてきた老害の発想だからな。 C#が好きならちゃんと考えろよ。
- 763 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 13:57:14.43 ID:Fq3XcUlo.net]
- すっげえわかる
MSってほんと最低な奴だよな…
- 764 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:21:44.49 ID:xrSERZg5.net]
- ホントに他の言語やれと。
俺ずっとVue+JavaScript派だったけど、最近何周か遅れてReact+TypeScriptやってて、これはこれで確かにいいなと思ったりしてるぞ。 いろんな設計思想があるのは良いじゃん。最強で至高なんかねえよ。 めっちゃ叩いたけど、そのすぐ裏側はC#の良いところなのもわかってるからな。
- 765 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:36:53.53 ID:EHaGj/ct.net]
- >>751
>Javaはアプリの仕様に合わせて好きに選べる。 結局のところアプリのメモリ使用特性に合わせて選択するのが賢いのであって特定の実装が良い悪いという絶対的な指針はないのだろうね ではなぜ君は.NETのGCが絶対的に悪いような言い方をしたのかな? >awaitで寿命が伸びる件と相性が悪いけど、あまりにも世代1に行き過ぎ。 awaitシンタックスシュガーで変数の寿命が伸びていたのは昔の話 少なくとも7年前には非同期を跨がない変数はキャプチャされなくなった なお非同期をまたぐ変数の寿命が伸びるのは非同期処理の宿命でありawaitシンタックスシュガーは関係ない なぜ君はawaitシンタックスシュガーが変数の寿命を伸ばすことを問題視したの? >ライブラリ関数ではゼロアロケーション意識しないといかんレベル C#のメモリ管理サポートは.NET Coreで急激に進歩している 他の多くの高級言語ではゼロアロケーションを意識しても難しいがC#ではそれほどでもない これはパフォーマンス意識する上で非常に大きい アロケーションを減らせるならGCの負荷も小さくなる JSなど他の言語では機械的な最適化以外にメモリ確保そのものを大幅に減らす工夫はあるのかな?
- 766 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:37:48.66 ID:EHaGj/ct.net]
- >処理系のバージョンアップ側にメンテナンスコストかかり続けるじゃん
いやいや処理系のメンテナスコストは低いよ だって仕様が変わってないんだから シンタックスシュガーのバージョンアップで変化するのはコンパイラのほうね >それ言い続けて、限界を迎えたら.net core? Coreへの移行はメンテナンスが累積して限界を迎えたから行ったわけではないよ 主な理由はマルチプラットフォームへの対応を迫られたから >実のところ、本館、新館、別館と建て増した温泉旅館だよ。 >古いAPIは2世代ぐらいで殺すべきだろ。 その本館も新館も別館も安定稼働してお金を稼ぎ続けている なのになぜむりやりお金をかけてまで閉じる必要があるのかな? >なんで.NET FWがあんなに亀レベルでしか成長できなかったと思ってんの。 .NET FWというかC#の成長は速かったよ いくつもの先進的な機能たとえばLinqだとかReactiveExtensionだとかAsync/Awaitだとかを生み出して 他の言語はC#を追いかけるように機能を模倣してきた >コントロールする必要があるのがアホかなって言ってる。 コントロールする必要がなければデフォルトでいいよね コントロールしたいときにできないのは大きな問題だとは思わないかい? >UIスレッドだけ特別扱いしてるところからわかるだろ。 これは言語の問題ではなくOSアーキテクチャの成約ね 他の言語だってUIスレッドは特別なもの もしコンテキスト切り替えをコントロールできない言語だと特別なスレッドのために他の関係ないスレッドがパフォーマンス上の不利益を被る
- 767 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:38:21.55 ID:EHaGj/ct.net]
- >発想がおかしい理由がわからんならもう黙れよ。
わからないから説明をしてほしいのだけど? 根拠も理由もなく発想がおかしいというだけではまったく意見になってないよ >古いプログラムをそのまま動作保証するために必要なのは、互換性ではなく、そのバージョンをLTSにしてちゃんとパッチ出してく事だよ。 .NET FWはそのあたり手厚いね 未だにWinアップデートで3.5のセキュリティパッチとか落ちてくるでしょ? >で、SideBySideできるようにするか、コンテナにするかどっちかだろ。 .NETはSBSもサポートしているね コンテナ化することをそのまま動作保証とは普通は言わない >バージョンアップするけど(だいたい)互換性はありまぁすとか言ってるから、2020年なのに.NET FW 4以上に上げられん基幹系みたいな負の遺産を残すんじゃないか。 負の遺産ではなく未だに安定して利益を生み出す正の遺産だよ 負の遺産っていうのは言語のAPIが急にサポート切れになって大幅な改修を入れなければならなくなり開発コストで大損したみたいな場合ね >お前が言ってることはC#というか.NETを何度もだめな言語にしてきた老害の発想だからな。 C#が駄目な言語になったことなんてないよ VBという悲しい過去があるので.NET全体を称賛するわけにもいかないが C#は常に成功してきたしこれからも成功する言語だと確信している
- 768 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:46:23.51 ID:xrSERZg5.net]
- >>754
絶対的に悪い部分はあるだろ。 「挙動の変更不可」。 「GCの挙動が気に食わん」の解決法が「別のGCを選べる」というのは、GCの設計として正しい。 「気に食わんけど耐えるしかない or ワークアラウンドで対応」 これはなんの解決でもない。 非同期を跨ぐときに伸びるから問題なんだよ。 ずいぶん質問が多いが、なぜ、問題視しなくて良い、と言い切れるの? 難しくないから、人間がやれば良い? アホか? じゃあGoみたく、ベンチツールにデフォでアロケーションカウンタついてるのか? そうでもないだろ。 他の言語を引き合いに出す前に「できるだから気合で解決」をまず減らせよ。
- 769 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:54:23.36 ID:xrSERZg5.net]
- >>755
高いよ。 お前あんまりミッションクリティカル系でC#使ってないだろ。 違うよ。マルチプラットフォームへの対応だけであればPCL、.NET Standard、あのあたり何だったことになる? 特にPCL。あれで現に破綻しただろ。 安定稼働してお金を稼ぎ続けてるなら、3棟それぞれメンテしろ。 お金をかけてまで維持するのとお金をかけてまで閉じるのは同じ話だ。 >>755 言語仕様は早かったな。 で、2016年まではawaitでキャプチャしてたとか、歪な形になってたわけだ。 その頃のアセンブリはもちろんその頃のまま。パフォーマンスもお察し。 さらに今のコンパイラでコンパイルしたものとILは異なるよな。 そのあたりで踏み抜くものが多すぎるんだよ。 コントロールしたいときに出来ないとかそんな事を言う時点で「スレッドプールとは」って話なんだよ。 UIスレッドだけ特別視するのが悪いと言ってるんじゃない。 「UIスレッドはちゃんと勝手にConfigureAwaitできてるじゃん。お前らなんで他のコードでも同じように勝手に処理されるように、メソッドの属性とかそういうもので解決しなかったの?」という話なんだよ。 手動設定信仰過ぎるだろ。
- 770 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:56:52.79 ID:EHaGj/ct.net]
- >>757
>「挙動の変更不可」。 .NETもパラメータである程度の調整はできるようだが… アルゴリズムを手軽に差し替えるような解決策が用意されている言語はどれほどあるのだろうか? 非同期を跨ぐときに伸びるから問題なんだよ。 ずいぶん質問が多いが、なぜ、問題視しなくて良い、と言い切れるの? 難しくないから、人間がやれば良い? アホか? じゃあGoみたく、ベンチツールにデフォでアロケーションカウンタついてるのか? そうでもないだろ。 他の言語を引き合いに出す前に「できるだから気合で解決」をまず減らせよ。
- 771 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 14:58:38.03 ID:xrSERZg5.net]
- >>756
ほう、4.0と同時に入れられる4.xがあるなら手厚いと言えるだろうな。 コンテナ化する事を動作保証と言うぞ。 というか、完璧に構成管理してやっと動作保証できるものであって、コンテナ化に関しては理想型だろ。 安定して利益を生み出す、で履き違えるな。 負の遺産と言うのは、現状利益を生み出しているかとは全く関係のない尺度だ。 言語のAPIが急にサポート切れ、な。 いつ誰がやらかしたかな?
- 772 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:05:12.04 ID:xrSERZg5.net]
- >>759
焦って途中でレスすんなよみっともない。 ほかのすべての言語はできるがC#だけは出来ない、と言ってるんではない。 C#が得意な事とそうではない事があることは認識しろ、と言ってる。 他の言語を選択するメリットは無い、と言い切ったのが破綻してることはもう充分理解できただろ。 C#なら、C#でも、ってのは、そりゃ原理上可能だろ。可能じゃなかったらチューリング完全でない。 ただ、向いてるかって聞くと、それぞれもっと向いているものを知ってる人間は居るってことなんだよ。 ちょっと冷静に考えろ。 C#は好きだが、議論の道具として叩いてて、反対側にはメリットもあるのはわかってんよ。
- 773 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:10:39.54 ID:EHaGj/ct.net]
- >>757
>「気に食わんけど耐えるしかない or ワークアラウンドで対応」 >これはなんの解決でもない。 GCの差し替えができないならそうするしかない C#は他の言語と違って安全なメモリ管理サポートが充実しているので「耐えるしかない」ということはない >非同期を跨ぐときに伸びるから問題なんだよ。 ずいぶん質問が多いが、なぜ、問題視しなくて良い、と言い切れるの 非同期を跨いで利用される変数のスコープが伸びることは必然だから問題じゃない もし問題だというならそれはシンタックスシュガーのせいではなく非同期アルゴリズムの設計に問題がある 言語のせいではなく設計ミス >他の言語を引き合いに出す前に「できるだから気合で解決」をまず減らせよ。 そうじゃない「他の言語でできないor難しいことが簡単に出来る」と言ってる たとえばC#のref構造体やspanのように安全に低頻度のアロケーションをサポートするスクリプトが幾つあるだろう
- 774 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:24:29.79 ID:EHaGj/ct.net]
- >高いよ。
>お前あんまりミッションクリティカル系でC#使ってないだろ。 処理系のメンテコストの話がミッションクリティカルでのC#利用経験の話になるのはなぜ? >違うよ。マルチプラットフォームへの対応だけであればPCL、.NET Standard、あのあたり何だったことになる? >特にPCL。あれで現に破綻しただろ。 PCLは確かにあまりうまく行っていなかった うまく行っていなかったからこそだ 本格的なマルチプラットフォーム対応のためのCoreでありStandard >安定稼働してお金を稼ぎ続けてるなら、3棟それぞれメンテしろ。 >お金をかけてまで維持するのとお金をかけてまで閉じるのは同じ話だ。 もちろんメンテナンスは続けてるだろ 古いコード新しいコード両方が安定して稼働するからこそ安価にメンテナスが可能となる APIが急になくなったらちょっとしたメンテナンスでも大騒ぎだ >そのあたりで踏み抜くものが多すぎるんだよ。 多すぎるというからには何かしら数字が出てるのだと思うけど示せる? >コントロールしたいときに出来ないとかそんな事を言う時点で「スレッドプールとは」って話なんだよ。 すまん 正直意味不明なので説明を求む >なんで他のコードでも同じように勝手に処理されるように、メソッドの属性とかそういうもので解決しなかったの?」という話なんだよ。 その属性をつけるのは結局手動だろう? 自動化信仰も結構だが世の中全てを自動化できるわけではない 手動で解決してる理由は機械的、自動的に決定できないからだよ 機械的、自動的に決定できないものに対して取れる最もマシな方法は昔から決まってて 事故が起こりにくい方をデフォルトにする どちらも安全なら統計を撮って利用頻度で決める
- 775 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:34:45.80 ID:EHaGj/ct.net]
- >>760
>コンテナ化する事を動作保証と言うぞ。 いや言わない 基本的に今まで動作していた環境で同じように動作することを動作保証という 新しくコンテナに載せ替えるかどうかは動作保証とはまったく別のベクトルの話であって関係がない >安定して利益を生み出す、で履き違えるな。 >負の遺産と言うのは、現状利益を生み出しているかとは全く関係のない尺度だ。 技術的負債のことを言いたいのだろうけど 古いAPIが全て負の遺産であるような認識は典型的な間違いだぞ たとえ古いAPIを使っていてもテストが整備されていて設計が美しく開発環境の準備が難しくないならそれは借金でもなんでもない >言語のAPIが急にサポート切れ、な。 >いつ誰がやらかしたかな? .NETでは幸いなことにまだぶち当たったことがない
- 776 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:40:20.23 ID:Fq3XcUlo.net]
- なげーなー
C#はSPAには特化してない 歴史的な経緯があるからそのせいで扱いにくいこともある SPA作るなら特化しているReact+ts使った方が幸せになれる ってこと?
- 777 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:43:25.20 ID:EHaGj/ct.net]
- >>761
>焦って途中でレスすんなよみっともない。 うるせえな寒くて手が滑ったんだよ 暖房つけたからもう大丈夫 >C#が得意な事とそうではない事があることは認識しろ、と言ってる C#より上手く特定の分野を実装できる言語はあると思う しかしC#は各分野で最高とまでいかなくとも何でも得意で C#が特別に苦手なことというのはない そういう成績オール5 or 4的なところが気に入ってる >他の言語を選択するメリットは無い、と言い切ったのが破綻してることはもう充分理解できただろ。 C#を使えるなら他を使う「積極的」なメリットは無い 他の言語が特別に得意な分野がどうしても必要なときに仕方なくその言語を使う程度の塩梅でおk
- 778 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:49:41.14 ID:EHaGj/ct.net]
- >>765
>C#はSPAには特化してない SPAについてはまだまだ黎明期 >歴史的な経緯があるからそのせいで扱いにくいこともある 新規に開発する分には扱いやすい レガシーがモダンと比較して扱いにくいことがあるがそれはレガシーなので仕方がないこと レガシーが安定して動作するよう後方互換性とセキュリティパッチが充実しているので レガシーのメンテナンスを最小化することができる >SPA作るなら特化しているReact+ts使った方が幸せになれる 人による 現時点ではReact+TSのほうが支持者が多い
- 779 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:51:29.01 ID:xrSERZg5.net]
- >>766
全部言い訳だわ。 GC(メモリ管理サポート)に文句つけて、GCがあるから問題ないとか寝言言ってるのか? IDisposableなクラスでawaitで暗黙のメンバ変数になったらいつまで寿命伸びると思う? ケース知らなすぎるだろ。 他の事も色々間違ってるがもうそもそもおかしい。 C#は別になんでも得意じゃねえぞ。 オール3だよ。 C#でこれは4だなって思うのはLinqぐらいだ。それももう追いつかれた。 他の言語を知らんから、本当の5を知らんのだろ。 積極的なメリットは無い。知らないからそりゃそうだろうな。 それでC#が好きだとほざくな。
- 780 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:55:19.91 ID:yginI0z/.net]
- ・・・本当の5の言語って何や?
- 781 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:04:46.05 ID:xrSERZg5.net]
- >>769
人とニーズによるだろうけど、Goの並行処理とか、 Erlangのメッセージパッシングとか、 F#の測定単位とか、 Lispのマクロとかかな。 JavaScriptも、あれはあれでとても良いと思う。
- 782 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:08:35.63 ID:b5xW7Gve.net]
- >>768
>GC(メモリ管理サポート)に文句つけて、GCがあるから問題ないとか寝言言ってるのか? 大抵のことはGCで問題ない クリティカルなところでのC#なら安全に比較的細やかにメモリ管理ができるので問題ない >IDisposableなクラスでawaitで暗黙のメンバ変数になったらいつまで寿命伸びると思う? 当たり前だがDisposeするまでだろ 非同期挟もうが挟むまいが不要になった時点で速やかに破棄される awaitを使ったからと言って必要もないのに無駄に変数の寿命が伸びることはないよ 伸びるのは非同期処理を実装するのに本当に必要な変数だけだ >本当の5を知らんのだろ。 例えば?
- 783 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:11:47.13 ID:Fq3XcUlo.net]
- >>769
5=GOなんだろ ダジャレだよダジャレ エスプリの効いたギャグをかましてくれたんだよ
- 784 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:24:08.58 ID:Fq3XcUlo.net]
- >>770
これ特化してるところじゃん あらゆる分野において平均以上かどうかなんじゃないの ジェネラリストかスペシャリストか
- 785 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:24:33.75 ID:b5xW7Gve.net]
- >>770
果たしてそれがメインの開発言語を乗り換えるほどの価値があるかどうかだよね 自分はとてもではないがそうは思えない もし本当にどうしても避けられずそれが必要になったら局所的にその言語で実装してメイン言語から呼び出すって形にするだろうな まあGoぐらいなら別にメインにしてもいいかなぁ…とは思うがね(実際にはしないだろうけど)
- 786 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:16:37.52 ID:Hcyt9B7d.net]
- C#は素敵な言語だけどさすがにオール5は言い過ぎたねって話だね
- 787 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:29:46.92 ID:Cpv18UIo.net]
- なんでこの人たちいつもC#の話してるの?
- 788 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:30:27.64 ID:xrSERZg5.net]
- >>773
5ってのは、そういう事だと思うぞ。 4で、それが書きやすい、程度。 >>774 ニーズ次第じゃないかな。
- 789 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:44:00.86 ID:awsGRXp2.net]
- オール5の言語なんてLispしかないよ!DSLで何にでも特化できるから!神はLispで世界を作ったんだぜ!(ぐるぐる目)
冗談はさておき、昔のJSはLispの匂いがして好きだった。今は(TSは)Lispの匂いほぼなくなって、万人ウケしやすい言語になったと思う。
- 790 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:19:37.56 ID:xrSERZg5.net]
- >>778
ほんとにそれよね。JSはC構文のLispっぽくて好きだったけど、TSでどんどん静的な言語になってしまってる。
- 791 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:25:03.79 ID:PuaagtBb.net]
- 高階関数で関数型プログラミングの匂いはするがLispの匂いはしない
Lispって全部がリストになってるから
- 792 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:35:30.70 ID:xrSERZg5.net]
- >>780
applyと分割代入あたりが、おおむね対応するんではなかろうか。
- 793 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:39:46.86 ID:LSI+C1uB.net]
- C#をNGにしたら書き込み全部消えちゃった
- 794 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:41:55.81 ID:xrSERZg5.net]
- まあ、作った人がScheme意識してるって言ってるからな。
https://brendaneich.com/2008/04/popularity/
- 795 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:47:54.10 ID:awsGRXp2.net]
- 全部がListだったらそれはもう匂いがするどころではなくLispそのものだと思う。
Lisp脳だったのでTS始めた時は型演算そのものを(Lispみたいに)JSで書かせてくれと思ったよw
|

|