- 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。
- 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
- 796 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 19:53:01.60 ID:awsGRXp2.net]
- Lispの匂いといえばMozillaのlet式が没ったのは返す返すも残念だった。今はdo式に期待してる
- 797 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 21:12:55.98 ID:LSI+C1uB.net]
- >>778
Lispのどこがいいんだ? 全てにおいて不便なだけな気がするのだが
- 798 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:06:44.05 ID:awsGRXp2.net]
- Lispのデータとソースコードは全てListである。
Lispは主にListを操作してプログラムする。 Lispには文は無く、式だけがある。 LispのマクロはListであるLispソースコードの操作をLispで行う。 Lispのマクロはありとあらゆる式をList操作で作り出せるのでDSLが簡単にできる。あらゆるコードを抽象化できる。 スレ違いだからあとは調べてね。 これは個人的な所感だけど、 ありとあらゆる式文が作れる(抽象化できる)ってことはつまり俺ルールがまかり通って分断を招く言語って事だから、そりゃ一般向けじゃないやね
- 799 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:19:25.78 ID:c62SKept.net]
- >>787
そのせいでクオートとか関数クオートみたいな邪悪な存在が生まれたのは無視かな?
- 800 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:26:15.08 ID:Ba9B66hW.net]
- >>787
長々と書いてるがメリットってこれだけだろ? > Lispのマクロはありとあらゆる式をList操作で作り出せるのでDSLが簡単にできる。 DSLを作りたいやつがどれだけいるか知らんが DSLというのはただの関数に過ぎない だからどの言語でも関数を作ることで簡単にDSLを作れるぞ
- 801 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:36:01.58 ID:awsGRXp2.net]
- 細かい反論はあるけど概ねご批判の通りだよ。
だから流行らない。俺は好きだけどね
- 802 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:38:23.99 ID:Ba9B66hW.net]
- https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E7%89%B9%E5%8C%96%E8%A8%80%E8%AA%9E/
> DSLは、大きく内部DSLと外部DSLに分類することができます。 > > 内部DSL: 内部DSLは、汎用のプログラミング言語の書き方を工夫して、 > 見かけ上の構文を自然言語に近づけた言語です。 書き方を工夫するだけだからどの言語でも出来る > 外部DSL: 外部DSLは、汎用のプログラミング言語とはまったく別の構文を持ったDSLです。 こっちはlispでも作りづらい
- 803 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:46:09.89 ID:Ba9B66hW.net]
- 内部DSLの場合、言語によって自然言語に近づけるといっても限界がある場合がある
えばC言語なら、 This("is", "a", "pen"); が限界だろう これがRubyだと This "is" "a" "pen" となる is とか a とか を定義すれば、This is a "pen" と書けるかもしれないな だがシェルスクリプトであれば This 関数を作るだけで This is a pen と書くことが出来る。 ダブルクォートでくくらなくても文字列として扱われるからだ 内部DSLを作るのに一番適した言語はシェルスクリプトだと思うが それはそれとして、DSLを簡単に作れる言語の条件はリスト操作をしてるとかではなく 引数を () でくくらなくても良いとか最後にセミコロンがいらないとか そういう言語ではないだろうか?自然言語は () でくくらないからな
- 804 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:52:22.87 ID:Ba9B66hW.net]
- 引数の区切りにカンマが不要ってのもDSLに適した言語の条件かな
- 805 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:05:32.15 ID:TuVgzDLD.net]
- >>789
kotlinぐらいじゃないかな。 無茶めな構文が変わるレベルのDSLが作れるの。 S式として成り立ってればどんな構文すら作れるから、関数を作ることで作れるとか言ってるレベルじゃないぞ。 それが良いことかはおいといて。
- 806 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:08:13.49 ID:Zk/FBUc0.net]
- どんな構文でも作りたいわけじゃない
「自然言語」に近い構文を「簡単に」作れるというのが条件 自然言語というのはシンプルで、単語を並べるだけなのだ 仮にkotlinでC言語の構文に対応できたとして それはDSLとしてはふさわしくない構文
- 807 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:08:25.33 ID:olxuh5fb.net]
- >>789
JuliaとRustはそこそこ無茶なこともできるしな ASTレベルでの操作だし Lispプログラム=実質的なASTと考えると何も変わらん そこの優位性ももはやない
- 808 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:15:06.44 ID:Zk/FBUc0.net]
- >>796
だからプログラム言語を作りたいんじゃなくて DSL(自然言語風)を作りたいんだってばw
- 809 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:19:04.50 ID:Zk/FBUc0.net]
- あと「簡単に」ってのも重要
作れるけど大変っていうのは簡単ではない
- 810 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:19:15.74 ID:olxuh5fb.net]
- Lispは自然言語風ではないだろ
あの括弧なんとかしろよ
- 811 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:21:48.47 ID:TuVgzDLD.net]
- DSLって別に自然言語に寄ってなくても良いんじゃないか?
ドメイン記述に便利な表記であればそれで良いかと。 昔ウィジェットツリーをそのまま書いたらマクロで展開されるとかそういうの書いたことあるけど、自然言語寄りではなかったな。 最近で言うとkotlinのankoみたいなやつ。
- 812 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:26:09.36 ID:Zk/FBUc0.net]
- > DSLって別に自然言語に寄ってなくても良いんじゃないか?
それは正しいが「自然言語と異なる別のプログラム言語」を 覚え直さなければいけないのはナンセンスだろ
- 813 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:26:50.79 ID:Zk/FBUc0.net]
- (なぜか「当分お断りしております。」が出たので分割して書き込み)
独自のDSLを作る場合、新たな言語を覚えなおさなくていいように 誰もが知ってる自然言語に近い構文にするのが普通
- 814 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:27:23.67 ID:Zk/FBUc0.net]
- そうしないとDSLを使うことで
- 815 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:28:25.07 ID:Zk/FBUc0.net]
- ぎゃくにこーどがわかりづらくなる
DSLの特徴である「ドメイン固有の処理を簡単に表現できる」に反してしまう
- 816 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:29:06.25 ID:Zk/FBUc0.net]
- (なんで「ぎゃくにこーどが」を漢字とカタカナにしたら書き込めないんだ?)
- 817 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:30:13.27 ID:Zk/FBUc0.net]
- 「コ ー ド」をスペース抜いたら書き込めない
- 818 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:34:39.76 ID:DCxLNcGT.net]
- こうやって言語機能そのものみたいな基本部分の重箱つついて、何かあるとすぐちゃぶ台返しして応用や発展的な話題出ないの最高に5chのプログラム板って感じ
- 819 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:35:42.82 ID:olxuh5fb.net]
- そもそもすれ違いだぞ
- 820 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:41:11.57 ID:Zk/FBUc0.net]
- >>807
そういうことじゃなくて「色々出来る言語」を過大評価しすぎってこと 簡単に目的を達成できる方が重要なのに 色々出来るんやでだからすごいっていう考えが古臭い []- [ここ壊れてます]
- 822 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:56:40.62 ID:lXmFrXZN.net]
- コード
- 823 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 00:59:28.01 ID:nb9M1V+x.net]
- >>810
どうやらブラウザ(ユーザーエージェント?)も関係あるっぽい Chromeでは書き込めず、Firefoxなら書き込めた その他の情報も見てる可能性があるな IPアドレスは変えてもクッキー消しても意味はなかった
- 824 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 01:01:03.26 ID:eKh3SvG1.net]
- スレ違いなネタでろくに知識もないのに平気で一人で盛り上がってる感じ、またC#おじさんかよ。NGすとこ
- 825 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 01:12:42.10 ID:lGcdPzxm.net]
- >>812
9月2日から10月10日までレスが3つしか付かなかった過疎スレだったんだよね テーマに沿って話して過疎るか雑談でスレを伸ばすかのどっちかで雑談でもいいと思う でないと話すことなくて過疎る 雑談が嫌なら来なければいい
- 826 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 01:42:40.61 ID:zA1s3IaL.net]
- なんでjs前提のスレで他言語について話してんだ○イジかよと思ったけど。もともと過疎スレだったのか。
フロントエンドFrameworkはすでに別にスレがあるから、雑談スレでもいいかもね。
- 827 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 01:56:29.40 ID:Cptlqs6D.net]
- みんなどうやったら良いSPAが作れるか議論したいんじゃないの
今更だけどスレタイで技術を限定するのは世界を狭めていると思う C#おじさんはうざいかもしれないがまがいなりにもSPAを作る技術があるわけで
- 828 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 02:08:36.28 ID:sThloFfy.net]
- わいはSSRの方がすこだ!
- 829 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 03:37:46.36 ID:olxuh5fb.net]
- C#おじさんの自演ここまでくると怖い
本当に年内に病院に行くべき
- 830 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 05:45:50.88 ID:WuRkJ7SN.net]
- >>816
Next.jsなら今はSSG推奨
- 831 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 06:08:39.70 ID:npFXMZqI.net]
- 時代はISR
- 832 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 06:38:08.28 ID:Kz0vlNp0.net]
- >>813
C#おじさんいっつも最後にはそれ言い出すな。荒らしが荒らして伸びるより過疎スレの方がどう考えたって健全じゃん。 スレが伸びることが何の免罪符になると思ってんだか
- 833 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 10:00:04.98 ID:TuVgzDLD.net]
- まあアホみたいにC#に反論して悪かった。
そりゃそうでそもそもスレチだわな。 React今更やり直してんだけど、スタイルってどうやってる? Vueみたいにコンポーネントごとに書いといたらcssが一本ドーンとできるみたいな仕組みが欲しいんだが、見た感じなさそう。 css in jsでインラインスタイルみたいな感じで当てまくるのが王道なの?
- 834 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 11:50:39.35 ID:mn0czGQ5.net]
- react というかNext.jsってpagesの中でscssをimport する時って
各エレメントにclassName={hoge.kage} って手動でクラス名を紐付けないと駄目なの? 比較して申し訳ないけど、vueだとcss側に*{color:red}とか.main{border:1px;}、html側に<div class="main">と書くだけで コンポーネント単位でdata-v-xxxx ってスコープ切って紐付けてくれるんだが、そういうのは無し? 前の人と多分同じネタかなこれ
- 835 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 12:16:17.47 ID:TuVgzDLD.net]
- >>822
同じネタだと思う。 かつ、俺less使ってて、共通色とか基本サイズ数とかの定数値を、importしてるんだけど、これをきれいに解決する方法がわからん。
- 836 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 12:34:12.03 ID:zA1s3IaL.net]
- 横からだけど自分もそれ気になるなあ。
コンポーネントごとcssを別出しするとか色々あるみたいだけど、やり方が複数あって迷うなぁ。 Tailwind使ってるからスタイル自体そんなに充てないけども
- 837 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 12:54:00.12 ID:mn0czGQ5.net]
- >>823
うーむ、Next.jsのgetServerSidePropsに惹かれて試してみたけど、こっちはVueと比べてCSSの考える事は多い感じかな 適当に書くけど、.main > * {color:red}とかやって、子コンポーネントに突き抜けたりしないだろうか・・・。
- 838 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 14:36:06.25 ID:97VH6JZh.net]
- >>820
他人に過疎を味あわせたいというのは異常だし おまえがこのスレに来なくて過疎を味わい他人がこのスレで雑談して楽しむのはwin-win スレのテーマを話したい人がいるときに雑談で邪魔しないというマナーはある
- 839 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 17:44:12.92 ID:zA1s3IaL.net]
- >>822
Reactだと、上記と同じことをするのはstyled-componentsかな。 エディタの補完が追いつくのかは気になるけど https://qiita.com/taneba/items/4547830b461d11a69a20
- 840 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 18:55:12.14 ID:olxuh5fb.net]
- >>826
とにかくお前はC#スレに籠ってろ 他の勢いがあるスレに関係ないことを書き込みに来てるのはわかってるんだ
|

|