- 1 名前:デフォルトの名無しさん [2018/04/26(木) 21:48:23.07 ID:mMDBzDaB.net]
- www.typescriptlang.org/
JavaScript that scales. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source. part1 https://peace.5ch.net/test/read.cgi/tech/1349187527/ part2 https://mevius.5ch.net/test/read.cgi/tech/1430386649/
- 637 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 18:57:19.02 ID:iumhQK0o.net]
- マロックできないやつがおりゅってマ?ww
- 638 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 19:25:10.03 ID:rXA2CZZq.net]
- >>611
未定義動作以外はもちろんやってるぞ。 ただJSでもTypedArrayは導入されたし、メモリパズルや最適化はCだけの話でも無いけど。 むしろそれをやる気がなければ最高速は目指せない。 numjsとか使ってる奴はJS/TSでそれやってると思うよ。 あと、お前もそうだが、最近の若い奴は使いこなす=全機能を使う、と勘違いしている。 Cのマクロなんて深入りしたら余計に生産性が落ちる。あれはぱっと見て分かる範囲で使うべき物。 プログラミング言語なんてアプリを作る道具であって、道具を使い倒すのが目的ではない。 分かる範囲で使い、希望の動作をするアプリが出来るのなら、それでいい。 全く使って無い機能があったとしても、関係ない。
- 639 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 19:27:09.39 ID:6reX+khV.net]
- 別にここTSスレなんだからmallocできん奴おってもええやろ。今は細分化の時代だし。
- 640 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:54:24.48 ID:rXA2CZZq.net]
- >>611
613読んで気づいたが、別人であったか。 Cにはもうこりごりなら、それもいいと思うけどね。 一応Nodeからffi経由でCのDLLは呼べるらしい。 それなりにオーバーヘッドはあるらしいけども、普通に使ってる分にはほぼ誤差だと思われる。 JSの数値はdouble相当だし、一応32bitのビット演算もあるし、 環境自体がそこそこ速いから、事前準備はJS側でやっても大して問題ないだろう。 単発の演算でオーバーヘッドがでかいのは問題だから、そこを何とかできれば、 科学技術計算からPythonを駆逐できる可能性がある。 ただ、PythonのCのDLLコールも同様にそれなりに遅いらしいので、マーシャリングであればどうにもならないけどね。
- 641 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 21:21:39.97 ID:CIdPEDg5.net]
- >>602
>C、あれは難しいのではなくて、理解するのにPCの物理的構造の理解が不可欠なだけだ PCの物理的構造とやらが理解できたところで void (*signal(int sig, void (*func)(int)))(int) なんて宣言を読めるようになるとはとても思えないんだが
- 642 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 21:58:54.02 ID:rXA2CZZq.net]
- >>617
それは慣れだね。 ただ、俺もあの文法はかなり謎で、正直、仕様がよくないと思う。 それはカーニハンも文句言われてて、言い訳は多分ググッたらヒットする。 確か、曰く、この形式ならマクロにしても入れ子でも動く、らしいが、 俺が試した限りはGoみたいな分かりやすい形式でも普通に出来た。 ただ、それ以前に実は当時のCでは関数ポインタをそんなに使わなかった。 正確に言うと、sortとかでは必要とされていたが、単発で使う分には呪文扱いでよく、 勿論熟練者はそれでも使ってたのだろうけど、今ほどカジュアルには使われてなかった。 K&Rでも、「関数ポインタも出来るよ」とさらっと触れられている程度でしかない。 それがJavaで関数ポインタが存在しなかった理由だし、 C#でも最初は採用されなかった理由だ。(C#は確か2,.0から) 当時はOOPで全て行ける、継承すれば関数ポインタを直接扱う必要も無い、と思われていた。(のだと思う) ただその後、おそらくJSのブレークにより、クロージャ/ラムダの有用性がプログラミング界隈で認識された。 勿論Lisperはそれ以前からずっと呟いていたのだろうが、今も昔もLisperなんて空気だ。 そしてあまりにも感化された連中がClosure言語をリリースする始末。 だから、今のC初心者がいきなり関数ポインタを使おうとしているのなら、 それは確かに昔のC初心者より難しいことをやってる。 ただそれは呪文扱いで
- 643 名前:「いと思うよ。
自分が望むアプリを作ることが目的であって、呪文使いになることが目的ではない。 まあ確かに、ここ20年でプログラミング回りもだいぶ変わったから、 C言語自体は確かに変わって無いけども、学ぶべきことが明らかに増えてるのは事実だ。 関数ポインタも、OOPも、クロージャも、並列も、昔の学生には必要なかったから。 [] - [ここ壊れてます]
- 644 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 22:21:00.46 ID:6reX+khV.net]
- 思ったよりは詳しいみたいだし、その長文書くエネルギーでTypeScriptもっと使い込んで?
批判するならその上で批判して。ここTSスレだから。 使うまでも無いとか技術者らしからぬ事言わないでね。
- 645 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 22:30:53.12 ID:KPje/k62.net]
- 長い、3行で
- 646 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 22:42:52.59 ID:rXA2CZZq.net]
- >>619
TSについては、今のところ使う予定無いからね。 理由は既に言ったとおり、「スモークテストまでだけの為に記述が増えすぎ」だから。 ただTSは確かに立ち位置は悪くない。 型のおいしいところだけつまみ食いしよう、という意図が明確でいい。 そもそも使って無いから細かい粗も知らんし、批判しようも無い。 JSが糞な点は多々あるけど、それはTSでどうにかなるものでも無いし。
- 647 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 23:10:58.87 ID:pHYX9F42.net]
- >>618
>C#でも最初は採用されなかった理由だ。(C#は確か2,.0から) Delegateは1.0からあるよ
- 648 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 02:32:07.80 ID:ay8eu3sV.net]
- スレチは3行もいらん
- 649 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 06:56:35.72 ID:MB2VBDRV.net]
- >>622
確認してみたがどうやらそのようだ。 なんだかんだでC#はマトモだな。
- 650 名前:デフォルトの名無しさん [2020/10/12(月) 08:01:12.80 ID:D7FMyxf4.net]
- 実際のところ、皆さんtsを仕事で使ってたりするの?
- 651 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 08:49:35.94 ID:sR+xz/oc.net]
- うん
- 652 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 08:51:37.03 ID:wrjLnlZW.net]
- 使ってるよ。
元々JS使いだから最初は型と戦ってばかりで時間かかって生産性下がって辛かったけど、慣れればむしろ早いし、リリースした後の安心感が段違い。 小規模開発でもこれだから規模が大きいとさらに影響は大きいだろうね
- 653 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 08:55:55.53 ID:g334XhqZ.net]
- フロントエンドエンジニアやってるけど、React + TypeScriptが鉄板過ぎる
これ以外でUI組む気になれん
- 654 名前:デフォルトの名無しさん [2020/10/12(月) 10:31:14.01 ID:lIqFO5mi.net]
- サーバーサイドでも使ってる人いるのかな
typescriptとサーバーサイドでググると サーバーサイドでもtypescript 最高たぜ〜みたいな記事出てくるけどほんまかいなと。 Java,や.NET使った上でそう判断してる現場もあるんだろうか。 いま.NETしか経験がないメンバーにtsを習得させるか、思い切ってBlazorに手を出しちゃうか悩み中。
- 655 名前:デフォルトの名無しさん [2020/10/12(月) 10:41:40.32 ID:pl0L2hmu.net]
- 鯖サイドってOSコロコロ変わるイメージ無いんだけど、JVMにしろ.netにしろVMで動かす意味ってあるの?
GoとかRustで良いんじゃ無いかって思うんだが。
- 656 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 10:56:21.63 ID:sR+xz/oc.net]
- >>629
.NET Core使っとけ
- 657 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 11:29:41.17 ID:CsRHImZw.net]
- Ruby on Rails では、Bootstrap, React だけど、
JavaScript(JS) に、Ruby の式を埋め込む、ERB を使って、JSへ変換する。 a.js.erb <%= Rubyの式 %> $( "body" ).append( "<%= j(render partial: 'example_partial') %>" ); こういう書き方で、TypeScript を使えるかな?
- 658 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 11:39:26.90 ID:tosLr/AM.net]
- >>630
むしろVM使ってるかどうかで言語を選択するケースのほうが稀
- 659 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 11:47:16.30 ID:wrjLnlZW.net]
- >>629
TSに手を出すのとBlazorに手を出すのでは冒険度合いが違いすぎない?
- 660 名前:デフォルトの名無しさん [2020/10/12(月) 12:34:06.06 ID:lIqFO5mi.net]
- >>634
だよね… こんなところで聞くことじゃないかもしれないんだけど、 サーバーサイドに記述されてるクラスって、フロントでも使えるの? それともフロント側でもtypescriptで同じクラスを宣言しないといけない? Blazorはクラスを共有できるくさくて…それはメリットとしてかなりでかいなあと。
- 661 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 12:38:53.86 ID:gBcZoQLz.net]
- >>630
サーバーは言語何を使うとしても仮想化前提だろ。
- 662 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 12:49:06.93 ID:wrjLnlZW.net]
- >>635
同じ言語だからクラス書いたファイルを両方から参照すれば良くない? そういう意味でなくてサーバとクライアントでシームレスにインスタンスをやり取りしたいとかであればフレームワークが居るのでは?
- 663 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 13:00:28.44 ID:tosLr/AM.net]
- >>635
両方同じ言語なら共有ライブラリとしてそれぞれから参照すればいいけど 言語が違ってもOpenAPIみたいの使ってコード生成すればいいから 2度手打ちする必要はないかも
- 664 名前:633 [2020/10/12(月) 13:15:11.55 ID:lIqFO5mi.net]
- ごめんごめん
サーバーサイドはasp.net coreです OpenApiとやらを使えば、クラスの生成が楽ちんてことね… しかし二度手間感はすごいあるな… でもBlazorに手を出すリスクを考えるとまだマシか…
- 665 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 13:38:59.49 ID:sR+xz/oc.net]
- Blazorも使ってるけど、まだ.NET5対応のツール周りが全然だめなんだよね…業務なら素直にTypeScriptでいいと思うよ
- 666 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 15:15:45.91 ID:1F5XaUKJ.net]
- over knight blazorくらいになってからが本番。
- 667 名前:デフォルトの名無しさん [2020/10/12(月) 15:31:28.54 ID:TNFvs/DR.net]
- >>633,636
だよね。 なのに何でJavaとC#何だろ?って思った。
- 668 名前:デフォルトの名無しさん [2020/10/12(月) 15:34:05.12 ID:TNFvs/DR.net]
- >>636
特に仮想化前提で遅くなるのに何で言語をネイティブコンパイラ言語にしないんだろ?と。 昔は実質C++しか無かったなら仕方ないとして、今なら選択肢はもっとあるのに・・・。
- 669 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 15:46:11.22 ID:YFC4n48A.net]
- Goのコードは高機能でファットなランタイムに依存している
ランタイムとアプリを分離できないだけで、実質VM言語みたいなものだ 一方、.NET Coreはアプリとランタイムを実行ファイルに全部ぶっこんで配布することも可能 従来のVM言語という線引きは曖昧になりつつある
- 670 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 16:22:11.38 ID:DGsDArLw.net]
- C#だとジェネリクス関連はJITに任せたほうが速かったりできるし、
.NET CoreはReady to Runでネイティブコンパイルされたコードを同梱することもできるぞ。
- 671 名前:デフォルトの名無しさん [2020/10/12(月) 18:07:07.48 ID:pl0L2hmu.net]
- あー・・・。
そう言えばC#はネイティブにもコンパイル出来るようになったんだっけ・・・。 C#については納得。 Javaはまあ、コード資産だろうし。
- 672 名前:デフォルトの名無しさん [2020/10/12(月) 18:13:15.12 ID:pl0L2hmu.net]
- JITについては正直半分くらいしか信じてないんだけど、あり得なくは無いなと思ってる。
Dや一部のC++みたいにコンパイル時実行での最適化とどっちが速いんだろうとか思う。
- 673 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 18:27:26.57 ID:wrjLnlZW.net]
- >>645
ジェネリクスってコンパイル時に解決するものだと思ってた
- 674 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 18:58:23.00 ID:2+ZUcZ4K.net]
- TypeScript part3
- 675 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 20:08:52.47 ID:aavFFkjO.net]
- >>647
コンパイル時の方が多少早いけど、cppのジェネリクスもといテンプレートは型の分関数を用意するって愚直な方法をとってるので、バイナリサイズがデカくなる。 型情報も使えないしね。 あと、分岐命令なんかはどっちのほうが頻度
- 676 名前:高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。
>>648 コンパイル時に解決はしてるけど、ILレベルでは複数の関数が作られてる訳ではなかったはず。 もちろん実行時には、JITで型ごとに関数が生えることもある。 [] - [ここ壊れてます]
- 677 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 20:18:21.71 ID:wrjLnlZW.net]
- >>650
そゆことね。なるほど
- 678 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 21:17:35.13 ID:/8/TUV2P.net]
- モダンC++対マネージコード:パフォーマンス対生産性
https://www.infoq.com/jp/news/2012/04/native_vs_jit/
- 679 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 22:34:15.13 ID:CacJvltN.net]
- >>627
型はトモダチ…!
- 680 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 22:37:04.59 ID:CacJvltN.net]
- 質問なのですがTypeScriptでC++みたいに関数引数をconstにするにはどうすれば
良いの?
- 681 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 22:47:48.13 ID:CacJvltN.net]
- >>650
>あと、分岐命令なんかはどっちのほうが頻度高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。 デマくね…? プロファイル取る手間はタダじゃないし、
- 682 名前:デフォルトの名無しさん mailto:sage [2020/10/12(月) 23:49:02.74 ID:m2BvN3X6.net]
- >>654
eslint no-param-reassign
- 683 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 00:53:50.25 ID:y5Oy6HcC.net]
- Ruby では、1秒で100万回ループすると、
JIT されて、1秒で1,000万回ループされる
- 684 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 06:14:03.47 ID:ksuhhYbG.net]
- >>653
型はトモダチ!(゚∀゚)
- 685 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 07:33:03.58 ID:mCCwe/N2.net]
- >>655
どっかで読んだけどな。 というか、AOTの制限事項として、JITより効率が悪い可能性の一つとして挙げられてるよ。
- 686 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 17:57:10.11 ID:cQUBKlo0.net]
- (´・ω・`) webpack v5 ……
- 687 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 21:41:54.07 ID:mhza1+DZ.net]
- >>656
「Invalid option '--param-reassign'」って言われた つ∀`;) ESLint: 6.5.1. ていうかできたとして無差別にconnstというのもそれはそれでC++と違う希ガスorz
- 688 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 17:16:37.21 ID:pazOZeAi.net]
- webpack@5、めっちゃ破壊的やん…
- 689 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 17:39:38.69 ID:hmYZFqJj.net]
- >>661
お前の目はフシアナか? https://eslint.org/docs/rules/no-param-reassign ていうか引数に再代入するガイジなんて必要ないから無差別にエラーで構わんやろ
- 690 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 19:19:55.76 ID:T4Ek6w2r.net]
- JavaScriptからTypeScriptへの書き換えオワタ\(^o^)/
JavaScrpit最初に知って一ヶ月で全部書いたから3000行ぐらいだろうと思っていたら あとでちゃんと数えたら8790行やったorz 実作業4日かかった ここで4日というのは4日×8Hではなくて4日×24Hの意m(ry
- 691 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 19:27:20.93 ID:cZ59ogsv.net]
- 乙
TypeScriptやってない頃に書いたコードってTypeScriptのこと意識してなくてオブジェクトの形を動的に変えたりしない? 自分がやったときはそのせいでだいぶ時間かかったわ
- 692 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 19:31:22.31 ID:T4Ek6w2r.net]
- prototype文で無理矢理classにしていたやつを
さらに基底クラス(にあたるブツ)の所有でもって継承を表現していたやつの普通のclassと継承への書き換えが苦痛やった、 機械的とはいえ自動化できるほど単純には行かず苦痛やった、 手製イベントのインターフェースが実際何になるのかがぐちゃらけていたので3種類のインターフェースのORで 表現できるとワカルまで試行錯誤を要した、 あとはだいたいうまいぐあいに逝けた とわいえVSCodeの強力なインテリセンスとリアルタイムエラー報告(スクロールバーのところが赤くなるやつ)が無かったら 到底完遂不可能なところやった、、、 webpack使用
- 693 名前:デフォルトの名無しさん [2020/10/31(土) 19:34:13.19 ID:fxcwqRC2.net]
- おめでとう
- 694 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 21:54:44.53 ID:bInJNbvZ.net]
- ウンコードなJSをTSに変えることで人は強くなるのだ
おまえはまた強くなった
- 695 名前:デフォルトの名無しさん mailto:sage [2020/11/01(日) 08:10:24.39 ID:jzqs5N6a.net]
- 委譲から継承に切り替えたらそりゃ辛いっしょ。
乙〜
- 696 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 00:59:20.76 ID:ZpVsHyOp.net]
- delegation over inheritance って言うしな
- 697 名前:デフォルトの名無しさん mailto:sage [2020/11/06(金) 22:00:05.98 ID:4red4XqV.net]
- GithubでもTsは定義箇所にジャンプできたりするんだな
強い
- 698 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 19:43:09.64 ID:m4E6C9lQ.net]
- 今からTypeScriptやるならDenoでいーの?
あっギャグじゃないです真面目な質問
- 699 名前:デフォルトの名無しさん [2020/11/09(月) 21:13:08.03 ID:EKGzterf.net]
- 作った本人は デノ って発音してるように聞こえる
- 700 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 21:43:52.92 ID:nCMtc7Yy.net]
- Denoあんまり詳しくないけど、何やりたいかにもよると思う
Web開発をする分にはまだNodeなんじゃないかな 周辺のツールやライブラリが揃ってるので CLIツールとかならDenoでいーんでの?
- 701 名前:デフォルトの名無しさん mailto:sage [2020/11/11(水) 11:00:58.08 ID:UmNDS4oo.net]
- >>671
jsx/tsx でもイケるようになったね
- 702 名前:デフォルトの名無しさん mailto:sage [2020/11/17(火) 22:53:14.47 ID:slG9DoRm.net]
- https://ncjamieson.com/prefer-interfaces/
https://github.com/microsoft/TypeScript/wiki/Performance 以前 type 推しの人がいたけどやっぱり interface か…
- 703 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 14:22:41.76 ID:Us83CHd5.net]
- Announcing TypeScript 4.1
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
- 704 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:01:29.75 ID:2CLFT5fk.net]
- どんどん複雑になるなぁ
ついていけまへんわ
- 705 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:22:14.83 ID:2ALlQdvp.net]
- 逆にバージョンアップでシンプルになっていく言語ってあるの?
互換を完全に切るような言語なら可能だろうけど
- 706 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:41:42.91 ID:lbWKfW5j.net]
- >>679
Schemeが小さくはなったな ま、大規模に使われてる言語じゃないから出来る芸当だ
- 707 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:44:46.30 ID:4mUoVYL/.net]
- 言語機能が増えたからと言って全部使う必要はないしな
たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
- 708 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:50:47.55 ID:lbWKfW5j.net]
- JavaScriptは動的型だけど、動的型は意識しなくても複雑な事が出来てしまう
TypeScriptはそれらに対して何としてでも型を付けたいんだよ それだけの事 JavaScript自体は何も変わってない
- 709 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 23:06:21.09 ID:YMHZwsA3.net]
- もうaltJS風WebAssemblyコンパイラにして
- 710 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 23:26:29.58 ID:CQfd4Gtb.net]
- >>683
つ AssemblyScript
- 711 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 01:50:51.61 ID:uA84MfqB.net]
- コンパイラ型ほ生産性低いよ。
- 712 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 04:03:36.16 ID:KUTDu7Bm.net]
- template literal typesなんていれるから
型レベルSQLとかおかしな事やり始めてるし https://github.com/codemix/ts-sql
- 713 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 09:57:45.60 ID:y2efXPmb.net]
- くっそ遅くなりそう
- 714 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 10:46:50.16 ID:+IqFTLxs.net]
- C++並にコンパイル遅くなったりしてね。
実質マクロだから実行時は速いんちゃう?
- 715 名前:デフォルトの名無しさん [2020/11/21(土) 10:54:34.52 ID:QRxilPan.net]
- >>680
あれ小さくなったって言えんの? r7rs なんて common lispよりでかいじゃん。 コアだけなら小さいだろうけどコアだけじゃなんもできんだろ。
- 716 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 12:06:56.10 ID:FiI26J/z.net]
- うちのtsプロジェクト、tslintも入れてビルドに10分くらいかかってる。
前に -incremental 試してみてなんかの理由で断念したんだよな。 もう一度トライしてみるか。
- 717 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 12:34:04.91 ID:8nB0jPpm.net]
- スクリプトのメリット完全に失っててワロタ
スクリプトはビルドしちゃいけないんだよ IDEでパラレルLintするぐらいならいいけどな ビルドしないと動きませんじゃ本末転倒でなにがなんだか ビルドするならC#とかGoでやりゃいい
- 718 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:16:27.04 ID:L7J0TnQj.net]
- ts-nodeならビルド不要だけど、それとは違う話か
TypeScriptを直に実行できる処理系は今後も現れないだろうな
- 719 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:30:05.02 ID:y2efXPmb.net]
- >>691
>ビルドするならC#とかGoでやりゃいい ブラウザで使うのが現実的じゃない
- 720 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:42:58.96 ID:uA84MfqB.net]
- Dart始めました
- 721 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 14:02:54.86 ID:xoaJjvLB.net]
- そもそもスクリプト言語でスクリプト言語向きじゃない大規模なことをやろうとしてるからこれができたわけで、言語のせいにするのは違う
そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
- 722 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 14:35:34.39 ID:FiI26J/z.net]
- まあ、べつに「スクリプトのメリット」を期待してtsを使ってるわけじゃないしな。
とはいえビルド時間が短縮できるならそれに越したことはないが。
- 723 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 15:32:21.74 ID:+IqFTLxs.net]
- watch使うからビルド速度そんなに気にならないなぁ
- 724 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 18:31:06.90 ID:/DiusCOy.net]
- >>689
RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
- 725 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 18:58:48.16 ID:+IqFTLxs.net]
- いっそガチでマクロ入れてくれたら色々捗るなぁ。凄く読みにくくなるだろうけど。
そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
- 726 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 21:30:42.37 ID:gfVn9W3hf]
- 型定義ファイルを自作する場合どこに置くのがセオリーでしょうか?
プロジェクトルートに@typesフォルダ作ってその中でしょうか?
- 727 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 05:11:45.78 ID:7UB7snzp.net]
- ブラウザ使っててよく Webページ が固まることがあるから、ちゃんとUIスレッド以外で処理しろよとよく思ってたが
JavaScript 自体がシングルスレッドだったのね WebWoker とかいうのもあるみたいだが、MDN見るに、 言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ Java やってて、クリティカルセクションの処理が一番嫌いだった デッドロックの原因探すの大変すぎた
- 728 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 05:52:13.96 ID:427cIB03.net]
- そもそもIO待ちにスレッドを使うのがナンセンスだったんだよな
- 729 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 07:23:19.35 ID:7UB7snzp.net]
- まぁでも、
JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。 そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
- 730 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 09:04:21.16 ID:TR+u0YNG.net]
- 非同期処理はスレッドの場合とそうでない場合の2種類ある
そうでない場合は基本的にハードウェア割り込みで実装されてる タイマーとか通信処理
- 731 名前:ニか
ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ [] - [ここ壊れてます]
- 732 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 09:10:54.87 ID:TR+u0YNG.net]
- setTimeoutはスレッドを使ってない様に思うけど、結局の所ユーザー側でそれを知る術が無い
- 733 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 12:01:30.61 ID:hVx5pFA4.net]
- >>701の問題はスレッドがどうとか関係なくて、html中のある個所の内容が決まらないと
全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
- 734 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:13:24.97 ID:7UB7snzp.net]
- 最近ないように思うけど、1つのページがブラウザ全体をストールさせることが多かったのよ
そんでブラウザを起動し直さなければいけない その原因が、JS のスレッドと ブラウザのレンダリングスレッド(UIスレッド)が同じスレッドを共有してることにある DOM 書き換えてる最中に レンダリングされちゃうと、ページレイアウトがぐちゃぐちゃになるから、全部同じスレッドで処理してるんだけど、 JSの処理でUIが固まるのを防ぐには、JS の DOM 書き換え「以外」の操作を別スレッドでやって、レンダリングスレッドと同期処理すればいい (Java の synchronize とかの要領) DOM 自体が レンダリングスレッドに属してるのは、しょうがないと思う 昔、マルチスレッドで動作する UI ライブラリ の多くがデッドロックその他のバグでどうにもならなくなって廃棄された(Java でいう AWT) ということで、UI が固まるのにはスレッドは関係あると思うのよ まぁ書き方が悪かったのかもしれんが あと、JS がシングルスレッドなのはとても良いことだと思ってるからね、自分は マルチスレッド化したら、どのみち同期化処理に失敗して、デッドロックで今よりも固まること多くなるだろうから 参考にした: https://stackoverflow.com/questions/30932870/why-doesnt-javascript-get-its-own-thread-in-common-browsers
- 735 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:18:46.36 ID:7UB7snzp.net]
- JS で重めの処理をしたりバグがあっても、レンダリングスレッドと分離されてれば、
少なくとも UIが固まることはないということね(デッドロックがなければ) あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね? 後でちゃんと調べます
- 736 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:30:26.86 ID:Lq+ZSFwA.net]
- firefoxがフリーズすることは最近ちょくちょくあったな
edgeに乗り換えたらきれいさっぱり直った ffはもうだめかもわからんね
- 737 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 16:42:31.82 ID:7UB7snzp.net]
- https://gimhana-ds.medium.com/how-firefox-and-chrome-use-process-and-threads-f58f478561f0
ブラウザのスレッドの話ココに載ってた いろいろとたどってって疲れたので、全部は見てない Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
|
|