Vue vs React vs Svelte Part.6

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/10/27(火) 13:09:05.31ID:5aYZ+KyB
実際どうなん?
※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。
2020/12/26(土) 17:16:03.34ID:nir8tHzM
>>650
それはF1カーの運用までが大変だからだろ
比喩表現としてまったく不適切だよ
C#はスクリプトに比べてパフォーマンス以外も楽だからね
楽で速いのだから答えは決まりだ
2020/12/26(土) 17:25:22.32ID:3y5CuLti
>>660
だから、言語を選ぶ条件なんて様々だろうに。言語自体の機能、開発しやすさ、環境、あるいは開発者を
集めやすいとか過去の資産の継承とか。
それらを踏まえたうえで要求を満たせる言語ならスクリプトとかそうじゃないとかこだわる必要はないと思うが。

>メリットないのにベンチマークで遅いとわかってる言語を選ぶ理由はないでしょう

そこでベンチマークという指標だけを特別視する理由があるのかということと、そもそもそのベンチマークの
成績がどれだけあればいいのかとか、そういう基準をもって選択しているのかと。
2020/12/26(土) 17:25:26.09ID:Y46mRX42
C#はJSの2倍程度しか早くないですよ。
Cなら一桁違う事もあるけど
2020/12/26(土) 17:26:02.76ID:nir8tHzM
>>654
JavaはポストCOBOLのポジションだからもう生産性やパフォーマンスを期待してはいけない

ちなみにC#は非同期処理が得意な言語の筆頭だよ
非同期処理を実用レベルの高生産性まで最初にもっていった言語はC#
JSやその他の言語がイベントドリブンのコールバック連鎖で気持ち悪い非同期処理をシコシコ書いてた時代にC#では真っ先にReactiveExtensionやAsync/Awaitを実装した
C#はライブラリの非同期対応も最も充実している言語の1つだ
JSやその他の言語では未だに非同期ライブラリがコールバックしかサポートしていないといったことも珍しくない
2020/12/26(土) 17:28:35.04ID:nir8tHzM
>>662
言ってることは間違ってないけどどの要素をとってもC#が最強なのでな
2020/12/26(土) 17:37:12.79ID:3y5CuLti
最初から「俺はC#が好きだ」って言ってればそこで終わってた話。
足りない頭でもっともらしい理屈をつけようとするからおかしなな話になる。
2020/12/26(土) 17:37:18.38ID:A5wLytvy
>>661
C#とJavaを引き合いに出したいのなら、ハマーぐらいかな。
確かに頑丈だしそれなりに走るけど、それが要るかと聞かれれば疑問符。
俺もC#はよく使うが、楽さは全然違うぞ。
Goとかと比べると、遥かにC#はめんどくさいし、そもそもC#は.net coreでAOTかけてても起動遅い。
2020/12/26(土) 17:40:22.14ID:abA8NdUG
>>667
Goも楽で速いがC#とは方向性が違うので共存できる
2020/12/26(土) 17:42:22.62ID:nir8tHzM
いずれにせよバックエンドでスクリプトを使うメリットは

ない
670デフォルトの名無しさん
垢版 |
2020/12/26(土) 17:45:37.56ID:UNoc468U
ジャッジが居ないから結論が出ないんだよね。

>>1が進行役のMCやる。
・MCがジャッジを三名指名する。
・棄権も許容して、ドローになる場合クラウドにゆだねる。
・MCは、クルーが大技を繰り出してきたとき、Yeah! や WoW! HoHo! など適切に合の手を入れる。
・7 to smoke ルールで、7勝した奴が勝ち。
2020/12/26(土) 17:49:44.17ID:vt3FfngW
おまえらphpもスクリプトだってこと忘れて議論してるな
メリットなかったら普及しないだろ
2020/12/26(土) 17:50:33.74ID:BjZvExSE
C#おじさんは狭い知識から屁理屈捏ねて勝利宣言繰り返すだけの人だから。お手本通りの老害
2020/12/26(土) 18:11:05.74ID:nir8tHzM
>>671
当時は高級言語の選択肢が少なかっただけだ
674デフォルトの名無しさん
垢版 |
2020/12/26(土) 18:14:32.55ID:UNoc468U
Windowsで使えた、レンタルサーバで使えた。
需要にこたえていた。

我わ正義なり我に従えってRubyより流行ったのは当たり前だった。
2020/12/26(土) 18:22:33.03ID:A5wLytvy
>>669
使いこなせません、と言うことだな。
それはC#が好きなんではなくて、C#しかできないんだろ。
C#に謝れ。
2020/12/26(土) 18:30:08.64ID:bYNEuO+K
C#おじさん邪魔だからBlazorでも使ってろよ
2020/12/26(土) 18:35:47.28ID:T66JFeJq
Blazorスレと似たような展開だが、あっちはスクリプト系クソ
こっちはC#,Javaクソ
理由はどちらもパフォーマンスや生産性が〜
これはもう宗教だな
2020/12/26(土) 18:41:30.60ID:abA8NdUG
>>675
使うメリットがないと言ってる
日本語わかる?
679デフォルトの名無しさん
垢版 |
2020/12/26(土) 18:45:16.11ID:UNoc468U
Javaはライブラリの勝利じゃないだろか。
企業で使う場合、認証が一番厄介な部分だと思うけど、Javaはそこがしっかりしてた。
GlassFishを試用してみたけど、軽くは無かったな。
2020/12/26(土) 18:47:15.38ID:Xky1/n2X
C#は別にクソじゃないよ。一人で狂信者やってるC#おじさんがクソなだけ。
使ってる用語や説明の仕方に癖があるからわかりやすい
2020/12/26(土) 18:49:31.55ID:T66JFeJq
>>680
癖があってわかりやすいんですか!
2020/12/26(土) 18:53:53.93ID:A5wLytvy
>>678
メリットを知らない、と言うことだなって言ってるの。
逆に言えばC#のメリットも、本当に両方で作った上でメリットを感じた事があるかどうかすら怪しいもんだ。

知らない物は、無いに等しいわなって単純な話で、おっさんが哀れなだけだよ。
だからC#に謝れって言ってるんだが。
日本語わかる?

俺もC#好きで、それこそFW2.0の時に「良くも切り捨てやがったな…」とか恨んだレベルで年季入ってるけど、他の言語のメリットもちゃんとプロダクト出すレベルで使って判断できるつもりだぞ。
2020/12/26(土) 18:55:06.83ID:rNbO8nf2
>>646
そうだよ
2020/12/26(土) 18:56:22.81ID:abA8NdUG
>>682
メリットがないといってんだ
無いもんを知ってるわけ無いだろ
ないんだから
2020/12/26(土) 18:57:06.62ID:A5wLytvy
>>684
可哀想な人だな。
C#のデメリット言ってみ。
無いと言うならもう言う事は無い。
686デフォルトの名無しさん
垢版 |
2020/12/26(土) 19:08:20.63ID:UNoc468U
1万円のBluetoothより300円の有線のほうが音良いからね。
2020/12/26(土) 19:12:49.05ID:8Nevj14A
C#おじさんBlazorスレでも鼻つまみ者じゃん……
688デフォルトの名無しさん
垢版 |
2020/12/26(土) 19:16:07.29ID:UNoc468U
安くてもシャープはシャープ(腐っても鯛みたいな感じで)だけど、安いソニーはアイワだからね。
2020/12/26(土) 19:16:17.08ID:abA8NdUG
技術の話から逃げる連中ばっかりだなここは
2020/12/26(土) 19:23:32.52ID:T66JFeJq
C#のメリットデメリット
script系のメリットデメリット
向き不向きを知った上で正しい技術選択をすべきだな

Blazorは出来たてほやほやなので、フロントをやるとしたらjs系言語一択になるだろう。
サーバーもjs系言語にした方が技術者も集めやすいというのが一番のメリットだとおもう。

ただ、重ためのバッチ処理が入るような企業向けシステムには向かない。
エクセル管理してたものをWebシステム化する程度のものに向いている。
どうだ!
2020/12/26(土) 19:28:33.38ID:wnNA/ljl
>>689
お前さんが一番技術の話して無いじゃん
2020/12/26(土) 19:35:53.32ID:A5wLytvy
>>689
自己紹介ですか?
デメリットは?
2020/12/26(土) 19:42:12.23ID:BjZvExSE
685がわざわざ明確な評価基準出してくれてるのに無視してて草

>>690
> エクセル管理してたものをWebシステム化する程度のものに向いている。
それって個人の感想ですよね?
クックパッドがNext.js採用したそうですよ
2020/12/26(土) 19:47:23.61ID:Me3WzmOr
そういえばvueの人気が低下してきてせっかく抜いたangularに逆転されそうってマジですか?
2020/12/26(土) 19:53:47.56ID:T66JFeJq
>>693
個人の感想だよ
間違ってたら訂正してくれ。

クックパッドのサイトは条件に合うデータとってきて表示するくらいの要件だよね
あと個人が一件一件データを出し入れするだけの要件なら向いてる

裏で大量データの計算したり、帳票生成したりするのに向いてないのではなかろうか。
(個人の感想です)
2020/12/26(土) 20:01:15.31ID:A5wLytvy
>>695
帳票作成、最近うちはnodeベースのpuppeteerでPDF書き出すものを試験的に作ったけど、めっちゃ良いよ。
言うほど重くない上に、そこそこのクオリティの帳票が描ける。
というかクオリティに対する重さが極小なのと、帳票作成のしんどさが相当軽減されてる。
iTextSharpとか使ってたのが地獄だったかのような感じ。
ただどうやっても背景が透明ではなく、白い板になってるのがなんとかならんかなって思ってる。
2020/12/26(土) 20:05:37.15ID:BjZvExSE
>>695
でもクックパッドは凄いアクセス数を捌いてるよ?
> あと個人が一件一件データを出し入れするだけの要件なら向いてる
クックパッドのページ見てから語ろうね

というか貴方はC#のデメリットをちゃんと答えてあげなよ。Blazorが時期尚早なんて濁した回答してないでさ
2020/12/26(土) 20:16:33.93ID:BjZvExSE
>>696
puppeteerにそういう使い方あるのか。
スクレイピングと自動化にしか使ってなかったわ。
良いこと聞いた
2020/12/26(土) 20:22:06.40ID:q2RopqqH
JavaやC#はaws lambdaやgcp functionsのwarm startが遅い。ランタイム重いからね。
nodeはちょっぱや。
goは速くてしかもシングルバイナリだからgoというのは分かるがJavaやC#はダメダメだね。
2020/12/26(土) 20:22:56.55ID:q2RopqqH
立ち上げっぱなしだとaws lambdaやgcp functionsの意味ないからね
2020/12/26(土) 20:24:09.16ID:A5wLytvy
>>698
そうそう。特に単票はWeb版と同じAPIでHTML出して、帳票向けのcss当てて出力するだけだから、劇的に楽。
page.pdf()で完結。

悩むとしたら集計系とか、連続帳票のヘッダとフッタぐらいかな。
そのへんは小細工してcss書くのは諦めて、素直に複数ページ描画した。

手書きで心を込めた罫線の描画命令を書く必要もないし、クリレポ職人も要らないし、もちろんライセンスも要らない。
2020/12/26(土) 20:47:51.69ID:BjZvExSE
>>701
新しくAPI切ったりしなくて良いのは楽だなぁ。
前社で楽に帳票作るためにC#でxslxのテンプレートにデータ焼き込んでた怠惰な俺向きだわ
2020/12/26(土) 20:49:22.36ID:T66JFeJq
>>697
いやおれは要件が合えばscript系に移行することもかんがえてるC#erなんだよ
ていうかここのスレの意見聞いてたら弱点なんか全くないじゃないか
2020/12/26(土) 21:11:43.91ID:A5wLytvy
>>702
xlsxも綺麗に刷ろうと思うとCOMになるから、プロセスが落ちなかったりすると面倒だし、非UIのサーバアプリではやるなってのがMSの公式見解だしで、どうにかしようと行き着いたのがHTML帳票だった。

>>703
自分が知ってるC#の弱点は?
俺は色々思い浮かぶけど。
2020/12/26(土) 21:27:19.36ID:T66JFeJq
>>704
そもそもBlazorは未完成なのでSPAが作れないという感想
他は…
VisualStudioが重たい
.NETのサポートが短くなった
技術者を集めにくい
MSがフレームワークを作るだけつくって非推奨とか言い出す

言語というか、環境まわりだな

代わりにスクリプト系言語の弱点教えて
2020/12/26(土) 21:51:25.33ID:A5wLytvy
>>705
C#の弱点を聞いてて、Blazorの弱点を聞いてるんじゃない。

その全てはだいたいnodeと今時のJSのフレームワークで解決出来るんじゃないかな。

スクリプト系言語の弱点は、デプロイがちょっと面倒な事と、ランタイムが必要な事だと思う。
その辺はコンテナとか周辺技術で解決かな。
まあ、.net coreのSCDで解決しようとして未だに燻ってる所だよ。
2020/12/26(土) 22:12:05.25ID:Ii8YlEBO
>>656
彼が馬鹿だからさ!
2020/12/26(土) 22:24:59.74ID:T66JFeJq
>>706
C#の弱点はぱっと思いつかないな…
いろんな言語のいいところをパクって尚且つ非破壊だから
言語としてはひどい目にあったことはない
ADO.NETとかWebFormにはひどいめにあった

パフォーマンスや生産性がC#&ASP.NETと同等、それ以上なら前言を撤回する

以前どこかのスレに金融系のガチガチシステム、計算処理やエンドユーザー向けに大量の帳票吐く要件がある何十人ものメンバーでつくるようなシステムでスクリプト系言語使えるか聞いたらやめた方がいいって言われたことがある
2020/12/26(土) 22:29:52.08ID:aPjFRcaw
fastlyのcompute@edgeやcloudflareのworkersなどのエッジコンピューティングプラットフォームにC#でデプロイしてみなよ
2020/12/26(土) 22:36:31.82ID:A5wLytvy
>>708
いくらでも思いつくぞ。
GCがイケてない。
古いAPIが残りすぎ。
スレッドプールの使い方が下手。
最近ValueTaskが出てさらに無茶苦茶になった。
新機能がとことんシンタックスシュガーで、awaitするだけで暗黙のメンバ変数が生まれて寿命が長くなる。
いっぱいある。

それ以上だよ。少なくとも生産性に関しては。
既存資産という意味では。

規模が増えてきたら静的型付き言語でやりたくなるのはわかるけど、別に動的型付け言語でも普通にできる。
言われた事があるだけで、やってみて駄目だった訳じゃない時点でお察しだぞ。
まずは一人で、次はチームで、次はプロダクトでやって見ればいいじゃん?
2020/12/26(土) 22:59:58.77ID:T66JFeJq
>>710
ここに来てやっと有用な情報が出てきた…

どっちもやったことのある人の意見を聞きたかった。
スクリプト系総じてくそ!で終わらせる奴もいるし。

会社でそういう技術を試すにも理由がいるんでな。

充分選択の余地ありだな

ありがとう。
2020/12/26(土) 23:24:34.97ID:A5wLytvy
>>711
なんでこんなに試し試されるような会話をしないといかんか考えてよ。
みんなわかってて、批判してるんよ。
ちゃんと聞こうよ。
2020/12/27(日) 00:04:05.78ID:+391sGQI
またそのうちC#おじさん湧いてくるだろうけど、マジで不毛なんだよね。全く懲りない反省しない
2020/12/27(日) 00:24:48.94ID:V6kYHqJF
AWS Lambda には、Ruby も採用されている

マネージドサービスを使っていれば、環境構築運用など何も考える必要ない。
バッチ、Lambda、SQS・キュー、SNS・通知を、一杯つなげるだけ
2020/12/27(日) 01:08:11.82ID:pJh4CuO4
新規案件でSPA作りたかったらサーバーサイドもフロントサイドもC#選ぶ理由なんてないってことだ
2020/12/27(日) 01:34:36.12ID:muwPWXFk
>>708
VitualStudio使わなきゃいけないってのはサーバーサイドやるには結構面倒
2020/12/27(日) 02:16:33.08ID:Ezs6G331
>>716
なぜ使わなきゃいけないと思った?
2020/12/27(日) 02:17:11.17ID:sH9shL9g
C#おじさん全くスレと関係ないことを書き散らかして
自演改行しまくるから本当に迷惑
2020/12/27(日) 07:40:53.11ID:bUn1CAUk
自演がヒドイしとだから...
2020/12/27(日) 13:35:21.05ID:JDlKWc3Q
>>620
tsはまぁ分かるがjsはちょっと
pythonは古い言語だから記述のもどかしさは多いね
import周りは迷走しすぎ
2020/12/27(日) 16:30:32.33ID:xvZc4lDU
es3の頃のバッドノウハウを一旦リセットしてes2017とかやるとだいぶ違うよ。
同じ動的型付け言語でもpythonなんかより言語として洗練されている。
2020/12/27(日) 20:55:15.37ID:sH9shL9g
pythonも型書けるからねえ
tsはなんか型パズルしちゃう人が多くてよくわからん
表現力が強すぎるのも考えもの
2020/12/28(月) 20:26:09.84ID:KNPSf2Ws
>>710
>GCがイケてない。
JSを含む多くの言語がGCを持っている
それらのGC実装比較して具体的にどうイケてないと感じた?

>古いAPIが残りすぎ。
後方互換性は明らかなメリット
JSを含む他の言語ではそんなに簡単に後方互換性が失われて破壊的変更が頻繁に行われるの?

>スレッドプールの使い方が下手。
.NETのスレッド(を含む非同期処理全般)はうまく出来ていて最小限の労力で各環境毎に高い効果を見込めるようにできている
具体的にどういうところが下手だと感じた?

>最近ValueTaskが出てさらに無茶苦茶になった。
基本的にValueTaskを選んでおけばOKになったのでむしろスッキリした
どういうところが無茶苦茶になったと感じた?

>新機能がとことんシンタックスシュガー
シンタックスシュガーにすることによりランタイムのバージョンアップを回避して高い後方互換性を維持することができた
このメリットに対して変数のスコープが少し伸びた事によって具体的にどのようなデメリットが発生した?
2020/12/28(月) 21:29:19.32ID:8HD9KuQx
配点も書いてくれよ
2020/12/28(月) 21:49:29.10ID:gLlPtDZl
レスないからって自演かよ
2020/12/28(月) 22:08:20.13ID:KhSNASG/
お、屁理屈C#おじさんじゃん
2020/12/28(月) 22:18:18.18ID:KNPSf2Ws
なんだ
具体的に答えられないということは
やっぱり適当にそれっぽく言ってみただけか
2020/12/28(月) 22:27:42.95ID:KhSNASG/
まともに回答しても屁理屈で答えるか図星を突かれたら無視するような奴に、色々教えて介護してやる気は無いよ
2020/12/28(月) 23:18:38.63ID:KNPSf2Ws
>>728
そういうのはまともに回答できるようになってから言いなさい
2020/12/28(月) 23:19:49.01ID:0DUA8XV/
そもそも自演だし
2020/12/28(月) 23:22:09.77ID:or9XXg+k
い、一体どのレスとどのレスが自演なんだ…?
2020/12/28(月) 23:25:52.59ID:KNPSf2Ws
自演って言ってみたかっただけだろう
2020/12/28(月) 23:58:25.36ID:w2tkTAcI
GO + wasm じゃダメでしゅか?
2020/12/29(火) 00:52:45.33ID:hwRKbE5U
よい!
2020/12/29(火) 01:01:09.47ID:X0m1jPo1
wasm自体はGCサポートしてないからGC言語のGoやC#は辛いぞ。
少なくともGCをランタイムに積まないといけない。
そんなわけでwasmにはRustやC/C++ばっか使われるのだ。
C#なんかGCどころかコードをwasmネイティブにすることもできずにwasmでドトネトの中間言語インタプリタ動かしてるだけだからなw
2020/12/29(火) 01:31:07.52ID:xrSERZg5
>>723
世代を超える時の扱いが雑。Goは敢えて世代管理しないという方向で行ってるが、ほぼパーフェクト。
そのせいでstackallocとか作っててワロスって感じ。

古いAPIを残してる分には良いだろう。
Obsoleteもついてないってどう言うことよ。
なんでhttpアクセスすんのにあんなに方法あんのよ。HttpClientは罠実装だし。

うまくできてない。ConfigureAwaitメソッドなんか要らない、と言えるようになってから言え。

ValueTaskを選んでおけばという発想がおかしい。
stackallocと同じ方向性の解決法。
選択肢は解決ではない。ちゃんとコンパイラがやれ。

ランタイムのバージョンアップを回避する必要性がわからん。必要ならしろよ。
それは後方互換性とは言わんでしょ。
個人的にはその寿命が伸びる件で踏み抜いたので割と嫌い。
2020/12/29(火) 02:30:03.59ID:c62SKept
また来たよ
もう金渡すから消えて
2020/12/29(火) 06:47:47.18ID:awsGRXp2
wasmにGC載せる計画はあるみたいだけど、そのGCはおそらくJSのGCと同一だろう。ChromeではwasmがTurboFan上で動くのと同様に。
これが移植上ネックになることもあるのかな、と上のを見ながら思った
2020/12/29(火) 06:50:26.39ID:awsGRXp2
あと、C#の話する時はC#って書いてくれ。NGするから
2020/12/29(火) 07:25:05.07ID:iWtJxFHh
WebAssemblyをNGわーどにしたら?
2020/12/29(火) 07:35:42.01ID:ZrXqpCJW
ワッチョイ付ければNG楽になるよ?
2020/12/29(火) 09:33:32.36ID:KX/n8CkP
一時期ワッチョイスレもあったけどなんか毛嫌いするヤツが多かったんだよな
2020/12/29(火) 11:29:58.07ID:b5xW7Gve
>>736
>世代を超える時の扱いが雑
どういうふうに雑だと感じた?
Goは世代管理をしないと言うがJSやその他の言語はどんな実装になってる?

>Obsoleteもついてないってどう言うことよ
高い互換性おかげで問題なく動作するから無理して修正する必要がないからではないかな
次期バージョンで消える可能性すらない安定したAPIになぜお節介にもObsolateを付けた方が良いと考えたの?

>なんでhttpアクセスすんのにあんなに方法あんのよ
複数の方法が共存するのは言語が後方互換性を維持しつつ順調に成長している証拠
君の考えかただと新APIだけ残して古いAPIは削除して後方互換性破壊することになる
唯一のAPIを残して他を削除すべきと考えたのはなんで?

>ConfigureAwaitメソッドなんか要らない
ConfigureAwaitはプログラム文脈から機械的に判断できないコンテキストの切り替えをコントロールするためのメソッドだ
これがないとプログラマはコンテキストの切り替えをコントロールできなくなってしまう
なぜコンテキストの切り替えをコントロールできないほうが良いと思った?

>ValueTaskを選んでおけばという発想がおかしい。
なぜ発想がおかしいと考えた?

>ランタイムのバージョンアップを回避する必要性がわからん
古いプログラムをそのまま動作保証するのに最も確実で安全で低コストな方法がランタイムをそのまま維持することだからだよ
なぜ破壊的変更が紛れ込む可能性があるのに変えなくてもいいところまでわざわざ変えたほうがいいと考えた?
2020/12/29(火) 11:47:10.79ID:awsGRXp2
その毛嫌いしてたのってC#おじさんじゃね?
2020/12/29(火) 12:02:26.55ID:Fq3XcUlo
TypeScriptも互換性維持のために同じ運命を辿るのだろうか
同じ作者だし
いまイケてる言語、フレームワークもいつかはレガシーに
ナウなヤングは気付いたらおじさんに
2020/12/29(火) 12:32:52.41ID:awsGRXp2
そのへんはある程度はしゃーない。
そうなったらいかにナウなヤングの邪魔をしないようにするか、いかに限られたリソースでキャッチアップするか考えるさ。
それまでに沢山経験積んどかなきゃ……
2020/12/29(火) 12:39:50.65ID:Fq3XcUlo
>>746
みたいなバイタリティある人はいいけど
大半の人間は潰しが効かなくなるだろうね
フロントサイドしかやってない人とか特に…
2020/12/29(火) 12:41:22.77ID:k23+wtCh
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が全て使用できるだろう。
2020/12/29(火) 12:49:48.81ID:k23+wtCh
>>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を使って
 http://localhost:5000/機能名?トークン&パラメータ
 の様なURLでLocal Http Serverにアクセスする。
6. Local Http Serverは、トークンが正しい場合にのみ動作するようにする。
 機能名とパラメータに応じてファイルの読み書きや端末の独自機能のAPIを呼び出す。
7. APIの結果は、Http プロトコルの response で JS 側に返す。
8. JSは結果を受け取る。
2020/12/29(火) 12:54:14.36ID:4hVd0nGl
wasmってブラウザだけじゃなくK8SでもIoTデバイスでも動くわけだし
モバイルでも動かしたいって欲求も当然出てくるだろうな
そうなるとストアアプリの実装言語も将来的に何でもありになるのかもね
2020/12/29(火) 13:29:33.29ID:xrSERZg5
>>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#が好きならちゃんと考えろよ。
2020/12/29(火) 13:57:14.43ID:Fq3XcUlo
すっげえわかる
MSってほんと最低な奴だよな…
2020/12/29(火) 14:21:44.49ID:xrSERZg5
ホントに他の言語やれと。
俺ずっとVue+JavaScript派だったけど、最近何周か遅れてReact+TypeScriptやってて、これはこれで確かにいいなと思ったりしてるぞ。
いろんな設計思想があるのは良いじゃん。最強で至高なんかねえよ。
めっちゃ叩いたけど、そのすぐ裏側はC#の良いところなのもわかってるからな。
2020/12/29(火) 14:36:53.53ID:EHaGj/ct
>>751
>Javaはアプリの仕様に合わせて好きに選べる。
結局のところアプリのメモリ使用特性に合わせて選択するのが賢いのであって特定の実装が良い悪いという絶対的な指針はないのだろうね
ではなぜ君は.NETのGCが絶対的に悪いような言い方をしたのかな?

>awaitで寿命が伸びる件と相性が悪いけど、あまりにも世代1に行き過ぎ。
awaitシンタックスシュガーで変数の寿命が伸びていたのは昔の話
少なくとも7年前には非同期を跨がない変数はキャプチャされなくなった
なお非同期をまたぐ変数の寿命が伸びるのは非同期処理の宿命でありawaitシンタックスシュガーは関係ない
なぜ君はawaitシンタックスシュガーが変数の寿命を伸ばすことを問題視したの?

>ライブラリ関数ではゼロアロケーション意識しないといかんレベル
C#のメモリ管理サポートは.NET Coreで急激に進歩している
他の多くの高級言語ではゼロアロケーションを意識しても難しいがC#ではそれほどでもない
これはパフォーマンス意識する上で非常に大きい
アロケーションを減らせるならGCの負荷も小さくなる
JSなど他の言語では機械的な最適化以外にメモリ確保そのものを大幅に減らす工夫はあるのかな?
2020/12/29(火) 14:37:48.66ID:EHaGj/ct
>処理系のバージョンアップ側にメンテナンスコストかかり続けるじゃん
いやいや処理系のメンテナスコストは低いよ
だって仕様が変わってないんだから
シンタックスシュガーのバージョンアップで変化するのはコンパイラのほうね

>それ言い続けて、限界を迎えたら.net core?
Coreへの移行はメンテナンスが累積して限界を迎えたから行ったわけではないよ
主な理由はマルチプラットフォームへの対応を迫られたから

>実のところ、本館、新館、別館と建て増した温泉旅館だよ。
>古いAPIは2世代ぐらいで殺すべきだろ。
その本館も新館も別館も安定稼働してお金を稼ぎ続けている
なのになぜむりやりお金をかけてまで閉じる必要があるのかな?

>なんで.NET FWがあんなに亀レベルでしか成長できなかったと思ってんの。
.NET FWというかC#の成長は速かったよ
いくつもの先進的な機能たとえばLinqだとかReactiveExtensionだとかAsync/Awaitだとかを生み出して
他の言語はC#を追いかけるように機能を模倣してきた

>コントロールする必要があるのがアホかなって言ってる。
コントロールする必要がなければデフォルトでいいよね
コントロールしたいときにできないのは大きな問題だとは思わないかい?

>UIスレッドだけ特別扱いしてるところからわかるだろ。
これは言語の問題ではなくOSアーキテクチャの成約ね
他の言語だってUIスレッドは特別なもの
もしコンテキスト切り替えをコントロールできない言語だと特別なスレッドのために他の関係ないスレッドがパフォーマンス上の不利益を被る
2020/12/29(火) 14:38:21.55ID:EHaGj/ct
>発想がおかしい理由がわからんならもう黙れよ。
わからないから説明をしてほしいのだけど?
根拠も理由もなく発想がおかしいというだけではまったく意見になってないよ

>古いプログラムをそのまま動作保証するために必要なのは、互換性ではなく、そのバージョンをLTSにしてちゃんとパッチ出してく事だよ。
.NET FWはそのあたり手厚いね
未だにWinアップデートで3.5のセキュリティパッチとか落ちてくるでしょ?

>で、SideBySideできるようにするか、コンテナにするかどっちかだろ。
.NETはSBSもサポートしているね
コンテナ化することをそのまま動作保証とは普通は言わない

>バージョンアップするけど(だいたい)互換性はありまぁすとか言ってるから、2020年なのに.NET FW 4以上に上げられん基幹系みたいな負の遺産を残すんじゃないか。
負の遺産ではなく未だに安定して利益を生み出す正の遺産だよ
負の遺産っていうのは言語のAPIが急にサポート切れになって大幅な改修を入れなければならなくなり開発コストで大損したみたいな場合ね

>お前が言ってることはC#というか.NETを何度もだめな言語にしてきた老害の発想だからな。
C#が駄目な言語になったことなんてないよ
VBという悲しい過去があるので.NET全体を称賛するわけにもいかないが
C#は常に成功してきたしこれからも成功する言語だと確信している
2020/12/29(火) 14:46:23.51ID:xrSERZg5
>>754
絶対的に悪い部分はあるだろ。
「挙動の変更不可」。
「GCの挙動が気に食わん」の解決法が「別のGCを選べる」というのは、GCの設計として正しい。
「気に食わんけど耐えるしかない or ワークアラウンドで対応」
これはなんの解決でもない。

非同期を跨ぐときに伸びるから問題なんだよ。
ずいぶん質問が多いが、なぜ、問題視しなくて良い、と言い切れるの?

難しくないから、人間がやれば良い?
アホか?
じゃあGoみたく、ベンチツールにデフォでアロケーションカウンタついてるのか?
そうでもないだろ。
他の言語を引き合いに出す前に「できるだから気合で解決」をまず減らせよ。
2020/12/29(火) 14:54:23.36ID:xrSERZg5
>>755
高いよ。
お前あんまりミッションクリティカル系でC#使ってないだろ。

違うよ。マルチプラットフォームへの対応だけであればPCL、.NET Standard、あのあたり何だったことになる?
特にPCL。あれで現に破綻しただろ。

安定稼働してお金を稼ぎ続けてるなら、3棟それぞれメンテしろ。
お金をかけてまで維持するのとお金をかけてまで閉じるのは同じ話だ。

>>755
言語仕様は早かったな。
で、2016年まではawaitでキャプチャしてたとか、歪な形になってたわけだ。
その頃のアセンブリはもちろんその頃のまま。パフォーマンスもお察し。
さらに今のコンパイラでコンパイルしたものとILは異なるよな。
そのあたりで踏み抜くものが多すぎるんだよ。

コントロールしたいときに出来ないとかそんな事を言う時点で「スレッドプールとは」って話なんだよ。

UIスレッドだけ特別視するのが悪いと言ってるんじゃない。
「UIスレッドはちゃんと勝手にConfigureAwaitできてるじゃん。お前らなんで他のコードでも同じように勝手に処理されるように、メソッドの属性とかそういうもので解決しなかったの?」という話なんだよ。
手動設定信仰過ぎるだろ。
2020/12/29(火) 14:56:52.79ID:EHaGj/ct
>>757
>「挙動の変更不可」。
.NETもパラメータである程度の調整はできるようだが…
アルゴリズムを手軽に差し替えるような解決策が用意されている言語はどれほどあるのだろうか?

非同期を跨ぐときに伸びるから問題なんだよ。
ずいぶん質問が多いが、なぜ、問題視しなくて良い、と言い切れるの?

難しくないから、人間がやれば良い?
アホか?
じゃあGoみたく、ベンチツールにデフォでアロケーションカウンタついてるのか?
そうでもないだろ。
他の言語を引き合いに出す前に「できるだから気合で解決」をまず減らせよ。
2020/12/29(火) 14:58:38.03ID:xrSERZg5
>>756
ほう、4.0と同時に入れられる4.xがあるなら手厚いと言えるだろうな。

コンテナ化する事を動作保証と言うぞ。
というか、完璧に構成管理してやっと動作保証できるものであって、コンテナ化に関しては理想型だろ。

安定して利益を生み出す、で履き違えるな。
負の遺産と言うのは、現状利益を生み出しているかとは全く関係のない尺度だ。

言語のAPIが急にサポート切れ、な。
いつ誰がやらかしたかな?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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