http://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/
TypeScript part3
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/04/26(木) 21:48:23.07ID:mMDBzDaB619デフォルトの名無しさん
2020/10/11(日) 22:42:52.59ID:rXA2CZZq >>617
TSについては、今のところ使う予定無いからね。
理由は既に言ったとおり、「スモークテストまでだけの為に記述が増えすぎ」だから。
ただTSは確かに立ち位置は悪くない。
型のおいしいところだけつまみ食いしよう、という意図が明確でいい。
そもそも使って無いから細かい粗も知らんし、批判しようも無い。
JSが糞な点は多々あるけど、それはTSでどうにかなるものでも無いし。
TSについては、今のところ使う予定無いからね。
理由は既に言ったとおり、「スモークテストまでだけの為に記述が増えすぎ」だから。
ただTSは確かに立ち位置は悪くない。
型のおいしいところだけつまみ食いしよう、という意図が明確でいい。
そもそも使って無いから細かい粗も知らんし、批判しようも無い。
JSが糞な点は多々あるけど、それはTSでどうにかなるものでも無いし。
620デフォルトの名無しさん
2020/10/11(日) 23:10:58.87ID:pHYX9F42621デフォルトの名無しさん
2020/10/12(月) 02:32:07.80ID:ay8eu3sV スレチは3行もいらん
622デフォルトの名無しさん
2020/10/12(月) 06:56:35.72ID:MB2VBDRV623デフォルトの名無しさん
2020/10/12(月) 08:01:12.80ID:D7FMyxf4 実際のところ、皆さんtsを仕事で使ってたりするの?
624デフォルトの名無しさん
2020/10/12(月) 08:49:35.94ID:sR+xz/oc うん
625デフォルトの名無しさん
2020/10/12(月) 08:51:37.03ID:wrjLnlZW 使ってるよ。
元々JS使いだから最初は型と戦ってばかりで時間かかって生産性下がって辛かったけど、慣れればむしろ早いし、リリースした後の安心感が段違い。
小規模開発でもこれだから規模が大きいとさらに影響は大きいだろうね
元々JS使いだから最初は型と戦ってばかりで時間かかって生産性下がって辛かったけど、慣れればむしろ早いし、リリースした後の安心感が段違い。
小規模開発でもこれだから規模が大きいとさらに影響は大きいだろうね
626デフォルトの名無しさん
2020/10/12(月) 08:55:55.53ID:g334XhqZ フロントエンドエンジニアやってるけど、React + TypeScriptが鉄板過ぎる
これ以外でUI組む気になれん
これ以外でUI組む気になれん
627デフォルトの名無しさん
2020/10/12(月) 10:31:14.01ID:lIqFO5mi サーバーサイドでも使ってる人いるのかな
typescriptとサーバーサイドでググると
サーバーサイドでもtypescript 最高たぜ〜みたいな記事出てくるけどほんまかいなと。
Java,や.NET使った上でそう判断してる現場もあるんだろうか。
いま.NETしか経験がないメンバーにtsを習得させるか、思い切ってBlazorに手を出しちゃうか悩み中。
typescriptとサーバーサイドでググると
サーバーサイドでもtypescript 最高たぜ〜みたいな記事出てくるけどほんまかいなと。
Java,や.NET使った上でそう判断してる現場もあるんだろうか。
いま.NETしか経験がないメンバーにtsを習得させるか、思い切ってBlazorに手を出しちゃうか悩み中。
628デフォルトの名無しさん
2020/10/12(月) 10:41:40.32ID:pl0L2hmu 鯖サイドってOSコロコロ変わるイメージ無いんだけど、JVMにしろ.netにしろVMで動かす意味ってあるの?
GoとかRustで良いんじゃ無いかって思うんだが。
GoとかRustで良いんじゃ無いかって思うんだが。
629デフォルトの名無しさん
2020/10/12(月) 10:56:21.63ID:sR+xz/oc >>627
.NET Core使っとけ
.NET Core使っとけ
630デフォルトの名無しさん
2020/10/12(月) 11:29:41.17ID:CsRHImZw Ruby on Rails では、Bootstrap, React だけど、
JavaScript(JS) に、Ruby の式を埋め込む、ERB を使って、JSへ変換する。
a.js.erb
<%= Rubyの式 %>
$( "body" ).append( "<%= j(render partial: 'example_partial') %>" );
こういう書き方で、TypeScript を使えるかな?
JavaScript(JS) に、Ruby の式を埋め込む、ERB を使って、JSへ変換する。
a.js.erb
<%= Rubyの式 %>
$( "body" ).append( "<%= j(render partial: 'example_partial') %>" );
こういう書き方で、TypeScript を使えるかな?
631デフォルトの名無しさん
2020/10/12(月) 11:39:26.90ID:tosLr/AM >>628
むしろVM使ってるかどうかで言語を選択するケースのほうが稀
むしろVM使ってるかどうかで言語を選択するケースのほうが稀
632デフォルトの名無しさん
2020/10/12(月) 11:47:16.30ID:wrjLnlZW >>627
TSに手を出すのとBlazorに手を出すのでは冒険度合いが違いすぎない?
TSに手を出すのとBlazorに手を出すのでは冒険度合いが違いすぎない?
633デフォルトの名無しさん
2020/10/12(月) 12:34:06.06ID:lIqFO5mi >>632
だよね…
こんなところで聞くことじゃないかもしれないんだけど、
サーバーサイドに記述されてるクラスって、フロントでも使えるの?
それともフロント側でもtypescriptで同じクラスを宣言しないといけない?
Blazorはクラスを共有できるくさくて…それはメリットとしてかなりでかいなあと。
だよね…
こんなところで聞くことじゃないかもしれないんだけど、
サーバーサイドに記述されてるクラスって、フロントでも使えるの?
それともフロント側でもtypescriptで同じクラスを宣言しないといけない?
Blazorはクラスを共有できるくさくて…それはメリットとしてかなりでかいなあと。
634デフォルトの名無しさん
2020/10/12(月) 12:38:53.86ID:gBcZoQLz >>628
サーバーは言語何を使うとしても仮想化前提だろ。
サーバーは言語何を使うとしても仮想化前提だろ。
635デフォルトの名無しさん
2020/10/12(月) 12:49:06.93ID:wrjLnlZW >>633
同じ言語だからクラス書いたファイルを両方から参照すれば良くない?
そういう意味でなくてサーバとクライアントでシームレスにインスタンスをやり取りしたいとかであればフレームワークが居るのでは?
同じ言語だからクラス書いたファイルを両方から参照すれば良くない?
そういう意味でなくてサーバとクライアントでシームレスにインスタンスをやり取りしたいとかであればフレームワークが居るのでは?
636デフォルトの名無しさん
2020/10/12(月) 13:00:28.44ID:tosLr/AM637633
2020/10/12(月) 13:15:11.55ID:lIqFO5mi ごめんごめん
サーバーサイドはasp.net coreです
OpenApiとやらを使えば、クラスの生成が楽ちんてことね…
しかし二度手間感はすごいあるな…
でもBlazorに手を出すリスクを考えるとまだマシか…
サーバーサイドはasp.net coreです
OpenApiとやらを使えば、クラスの生成が楽ちんてことね…
しかし二度手間感はすごいあるな…
でもBlazorに手を出すリスクを考えるとまだマシか…
638デフォルトの名無しさん
2020/10/12(月) 13:38:59.49ID:sR+xz/oc Blazorも使ってるけど、まだ.NET5対応のツール周りが全然だめなんだよね…業務なら素直にTypeScriptでいいと思うよ
639デフォルトの名無しさん
2020/10/12(月) 15:15:45.91ID:1F5XaUKJ over knight blazorくらいになってからが本番。
640デフォルトの名無しさん
2020/10/12(月) 15:31:28.54ID:TNFvs/DR641デフォルトの名無しさん
2020/10/12(月) 15:34:05.12ID:TNFvs/DR642デフォルトの名無しさん
2020/10/12(月) 15:46:11.22ID:YFC4n48A Goのコードは高機能でファットなランタイムに依存している
ランタイムとアプリを分離できないだけで、実質VM言語みたいなものだ
一方、.NET Coreはアプリとランタイムを実行ファイルに全部ぶっこんで配布することも可能
従来のVM言語という線引きは曖昧になりつつある
ランタイムとアプリを分離できないだけで、実質VM言語みたいなものだ
一方、.NET Coreはアプリとランタイムを実行ファイルに全部ぶっこんで配布することも可能
従来のVM言語という線引きは曖昧になりつつある
643デフォルトの名無しさん
2020/10/12(月) 16:22:11.38ID:DGsDArLw C#だとジェネリクス関連はJITに任せたほうが速かったりできるし、
.NET CoreはReady to Runでネイティブコンパイルされたコードを同梱することもできるぞ。
.NET CoreはReady to Runでネイティブコンパイルされたコードを同梱することもできるぞ。
644デフォルトの名無しさん
2020/10/12(月) 18:07:07.48ID:pl0L2hmu あー・・・。
そう言えばC#はネイティブにもコンパイル出来るようになったんだっけ・・・。
C#については納得。
Javaはまあ、コード資産だろうし。
そう言えばC#はネイティブにもコンパイル出来るようになったんだっけ・・・。
C#については納得。
Javaはまあ、コード資産だろうし。
645デフォルトの名無しさん
2020/10/12(月) 18:13:15.12ID:pl0L2hmu JITについては正直半分くらいしか信じてないんだけど、あり得なくは無いなと思ってる。
Dや一部のC++みたいにコンパイル時実行での最適化とどっちが速いんだろうとか思う。
Dや一部のC++みたいにコンパイル時実行での最適化とどっちが速いんだろうとか思う。
646デフォルトの名無しさん
2020/10/12(月) 18:27:26.57ID:wrjLnlZW >>643
ジェネリクスってコンパイル時に解決するものだと思ってた
ジェネリクスってコンパイル時に解決するものだと思ってた
647デフォルトの名無しさん
2020/10/12(月) 18:58:23.00ID:2+ZUcZ4K TypeScript part3
648デフォルトの名無しさん
2020/10/12(月) 20:08:52.47ID:aavFFkjO649デフォルトの名無しさん
2020/10/12(月) 20:18:21.71ID:wrjLnlZW >>648
そゆことね。なるほど
そゆことね。なるほど
650デフォルトの名無しさん
2020/10/12(月) 21:17:35.13ID:/8/TUV2P モダンC++対マネージコード:パフォーマンス対生産性
https://www.infoq.com/jp/news/2012/04/native_vs_jit/
https://www.infoq.com/jp/news/2012/04/native_vs_jit/
651デフォルトの名無しさん
2020/10/12(月) 22:34:15.13ID:CacJvltN >>625
型はトモダチ…!
型はトモダチ…!
652デフォルトの名無しさん
2020/10/12(月) 22:37:04.59ID:CacJvltN 質問なのですがTypeScriptでC++みたいに関数引数をconstにするにはどうすれば
良いの?
良いの?
653デフォルトの名無しさん
2020/10/12(月) 22:47:48.13ID:CacJvltN >>648
>あと、分岐命令なんかはどっちのほうが頻度高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。
デマくね…?
プロファイル取る手間はタダじゃないし、
>あと、分岐命令なんかはどっちのほうが頻度高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。
デマくね…?
プロファイル取る手間はタダじゃないし、
654デフォルトの名無しさん
2020/10/12(月) 23:49:02.74ID:m2BvN3X6 >>652
eslint no-param-reassign
eslint no-param-reassign
655デフォルトの名無しさん
2020/10/13(火) 00:53:50.25ID:y5Oy6HcC Ruby では、1秒で100万回ループすると、
JIT されて、1秒で1,000万回ループされる
JIT されて、1秒で1,000万回ループされる
656デフォルトの名無しさん
2020/10/13(火) 06:14:03.47ID:ksuhhYbG >>651
型はトモダチ!(゚∀゚)
型はトモダチ!(゚∀゚)
657デフォルトの名無しさん
2020/10/13(火) 07:33:03.58ID:mCCwe/N2658デフォルトの名無しさん
2020/10/13(火) 17:57:10.11ID:cQUBKlo0 (´・ω・`) webpack v5 ……
659デフォルトの名無しさん
2020/10/13(火) 21:41:54.07ID:mhza1+DZ >>654
「Invalid option '--param-reassign'」って言われた つ∀`;)
ESLint: 6.5.1.
ていうかできたとして無差別にconnstというのもそれはそれでC++と違う希ガスorz
「Invalid option '--param-reassign'」って言われた つ∀`;)
ESLint: 6.5.1.
ていうかできたとして無差別にconnstというのもそれはそれでC++と違う希ガスorz
660デフォルトの名無しさん
2020/10/15(木) 17:16:37.21ID:pazOZeAi webpack@5、めっちゃ破壊的やん…
661デフォルトの名無しさん
2020/10/15(木) 17:39:38.69ID:hmYZFqJj >>659
お前の目はフシアナか?
https://eslint.org/docs/rules/no-param-reassign
ていうか引数に再代入するガイジなんて必要ないから無差別にエラーで構わんやろ
お前の目はフシアナか?
https://eslint.org/docs/rules/no-param-reassign
ていうか引数に再代入するガイジなんて必要ないから無差別にエラーで構わんやろ
662デフォルトの名無しさん
2020/10/31(土) 19:19:55.76ID:T4Ek6w2r JavaScriptからTypeScriptへの書き換えオワタ\(^o^)/
JavaScrpit最初に知って一ヶ月で全部書いたから3000行ぐらいだろうと思っていたら
あとでちゃんと数えたら8790行やったorz
実作業4日かかった
ここで4日というのは4日×8Hではなくて4日×24Hの意m(ry
JavaScrpit最初に知って一ヶ月で全部書いたから3000行ぐらいだろうと思っていたら
あとでちゃんと数えたら8790行やったorz
実作業4日かかった
ここで4日というのは4日×8Hではなくて4日×24Hの意m(ry
663デフォルトの名無しさん
2020/10/31(土) 19:27:20.93ID:cZ59ogsv 乙
TypeScriptやってない頃に書いたコードってTypeScriptのこと意識してなくてオブジェクトの形を動的に変えたりしない?
自分がやったときはそのせいでだいぶ時間かかったわ
TypeScriptやってない頃に書いたコードってTypeScriptのこと意識してなくてオブジェクトの形を動的に変えたりしない?
自分がやったときはそのせいでだいぶ時間かかったわ
664デフォルトの名無しさん
2020/10/31(土) 19:31:22.31ID:T4Ek6w2r prototype文で無理矢理classにしていたやつを
さらに基底クラス(にあたるブツ)の所有でもって継承を表現していたやつの普通のclassと継承への書き換えが苦痛やった、
機械的とはいえ自動化できるほど単純には行かず苦痛やった、
手製イベントのインターフェースが実際何になるのかがぐちゃらけていたので3種類のインターフェースのORで
表現できるとワカルまで試行錯誤を要した、
あとはだいたいうまいぐあいに逝けた
とわいえVSCodeの強力なインテリセンスとリアルタイムエラー報告(スクロールバーのところが赤くなるやつ)が無かったら
到底完遂不可能なところやった、、、
webpack使用
さらに基底クラス(にあたるブツ)の所有でもって継承を表現していたやつの普通のclassと継承への書き換えが苦痛やった、
機械的とはいえ自動化できるほど単純には行かず苦痛やった、
手製イベントのインターフェースが実際何になるのかがぐちゃらけていたので3種類のインターフェースのORで
表現できるとワカルまで試行錯誤を要した、
あとはだいたいうまいぐあいに逝けた
とわいえVSCodeの強力なインテリセンスとリアルタイムエラー報告(スクロールバーのところが赤くなるやつ)が無かったら
到底完遂不可能なところやった、、、
webpack使用
665デフォルトの名無しさん
2020/10/31(土) 19:34:13.19ID:fxcwqRC2 おめでとう
666デフォルトの名無しさん
2020/10/31(土) 21:54:44.53ID:bInJNbvZ ウンコードなJSをTSに変えることで人は強くなるのだ
おまえはまた強くなった
おまえはまた強くなった
667デフォルトの名無しさん
2020/11/01(日) 08:10:24.39ID:jzqs5N6a 委譲から継承に切り替えたらそりゃ辛いっしょ。
乙〜
乙〜
668デフォルトの名無しさん
2020/11/02(月) 00:59:20.76ID:ZpVsHyOp delegation over inheritance って言うしな
669デフォルトの名無しさん
2020/11/06(金) 22:00:05.98ID:4red4XqV GithubでもTsは定義箇所にジャンプできたりするんだな
強い
強い
670デフォルトの名無しさん
2020/11/09(月) 19:43:09.64ID:m4E6C9lQ 今からTypeScriptやるならDenoでいーの?
あっギャグじゃないです真面目な質問
あっギャグじゃないです真面目な質問
671デフォルトの名無しさん
2020/11/09(月) 21:13:08.03ID:EKGzterf 作った本人は デノ って発音してるように聞こえる
672デフォルトの名無しさん
2020/11/09(月) 21:43:52.92ID:nCMtc7Yy Denoあんまり詳しくないけど、何やりたいかにもよると思う
Web開発をする分にはまだNodeなんじゃないかな
周辺のツールやライブラリが揃ってるので
CLIツールとかならDenoでいーんでの?
Web開発をする分にはまだNodeなんじゃないかな
周辺のツールやライブラリが揃ってるので
CLIツールとかならDenoでいーんでの?
673デフォルトの名無しさん
2020/11/11(水) 11:00:58.08ID:UmNDS4oo >>669
jsx/tsx でもイケるようになったね
jsx/tsx でもイケるようになったね
674デフォルトの名無しさん
2020/11/17(火) 22:53:14.47ID:slG9DoRm https://ncjamieson.com/prefer-interfaces/
https://github.com/microsoft/TypeScript/wiki/Performance
以前 type 推しの人がいたけどやっぱり interface か…
https://github.com/microsoft/TypeScript/wiki/Performance
以前 type 推しの人がいたけどやっぱり interface か…
675デフォルトの名無しさん
2020/11/20(金) 14:22:41.76ID:Us83CHd5 Announcing TypeScript 4.1
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
676デフォルトの名無しさん
2020/11/20(金) 21:01:29.75ID:2CLFT5fk どんどん複雑になるなぁ
ついていけまへんわ
ついていけまへんわ
677デフォルトの名無しさん
2020/11/20(金) 21:22:14.83ID:2ALlQdvp 逆にバージョンアップでシンプルになっていく言語ってあるの?
互換を完全に切るような言語なら可能だろうけど
互換を完全に切るような言語なら可能だろうけど
678デフォルトの名無しさん
2020/11/20(金) 21:41:42.91ID:lbWKfW5j679デフォルトの名無しさん
2020/11/20(金) 21:44:46.30ID:4mUoVYL/ 言語機能が増えたからと言って全部使う必要はないしな
たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
680デフォルトの名無しさん
2020/11/20(金) 21:50:47.55ID:lbWKfW5j JavaScriptは動的型だけど、動的型は意識しなくても複雑な事が出来てしまう
TypeScriptはそれらに対して何としてでも型を付けたいんだよ
それだけの事
JavaScript自体は何も変わってない
TypeScriptはそれらに対して何としてでも型を付けたいんだよ
それだけの事
JavaScript自体は何も変わってない
681デフォルトの名無しさん
2020/11/20(金) 23:06:21.09ID:YMHZwsA3 もうaltJS風WebAssemblyコンパイラにして
682デフォルトの名無しさん
2020/11/20(金) 23:26:29.58ID:CQfd4Gtb >>681
つ AssemblyScript
つ AssemblyScript
683デフォルトの名無しさん
2020/11/21(土) 01:50:51.61ID:uA84MfqB コンパイラ型ほ生産性低いよ。
684デフォルトの名無しさん
2020/11/21(土) 04:03:36.16ID:KUTDu7Bm685デフォルトの名無しさん
2020/11/21(土) 09:57:45.60ID:y2efXPmb くっそ遅くなりそう
686デフォルトの名無しさん
2020/11/21(土) 10:46:50.16ID:+IqFTLxs C++並にコンパイル遅くなったりしてね。
実質マクロだから実行時は速いんちゃう?
実質マクロだから実行時は速いんちゃう?
687デフォルトの名無しさん
2020/11/21(土) 10:54:34.52ID:QRxilPan688デフォルトの名無しさん
2020/11/21(土) 12:06:56.10ID:FiI26J/z うちのtsプロジェクト、tslintも入れてビルドに10分くらいかかってる。
前に -incremental 試してみてなんかの理由で断念したんだよな。
もう一度トライしてみるか。
前に -incremental 試してみてなんかの理由で断念したんだよな。
もう一度トライしてみるか。
689デフォルトの名無しさん
2020/11/21(土) 12:34:04.91ID:8nB0jPpm スクリプトのメリット完全に失っててワロタ
スクリプトはビルドしちゃいけないんだよ
IDEでパラレルLintするぐらいならいいけどな
ビルドしないと動きませんじゃ本末転倒でなにがなんだか
ビルドするならC#とかGoでやりゃいい
スクリプトはビルドしちゃいけないんだよ
IDEでパラレルLintするぐらいならいいけどな
ビルドしないと動きませんじゃ本末転倒でなにがなんだか
ビルドするならC#とかGoでやりゃいい
690デフォルトの名無しさん
2020/11/21(土) 13:16:27.04ID:L7J0TnQj ts-nodeならビルド不要だけど、それとは違う話か
TypeScriptを直に実行できる処理系は今後も現れないだろうな
TypeScriptを直に実行できる処理系は今後も現れないだろうな
691デフォルトの名無しさん
2020/11/21(土) 13:30:05.02ID:y2efXPmb692デフォルトの名無しさん
2020/11/21(土) 13:42:58.96ID:uA84MfqB Dart始めました
693デフォルトの名無しさん
2020/11/21(土) 14:02:54.86ID:xoaJjvLB そもそもスクリプト言語でスクリプト言語向きじゃない大規模なことをやろうとしてるからこれができたわけで、言語のせいにするのは違う
そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
694デフォルトの名無しさん
2020/11/21(土) 14:35:34.39ID:FiI26J/z まあ、べつに「スクリプトのメリット」を期待してtsを使ってるわけじゃないしな。
とはいえビルド時間が短縮できるならそれに越したことはないが。
とはいえビルド時間が短縮できるならそれに越したことはないが。
695デフォルトの名無しさん
2020/11/21(土) 15:32:21.74ID:+IqFTLxs watch使うからビルド速度そんなに気にならないなぁ
696デフォルトの名無しさん
2020/11/21(土) 18:31:06.90ID:/DiusCOy >>687
RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
697デフォルトの名無しさん
2020/11/21(土) 18:58:48.16ID:+IqFTLxs いっそガチでマクロ入れてくれたら色々捗るなぁ。凄く読みにくくなるだろうけど。
そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
698デフォルトの名無しさん
2020/12/18(金) 05:11:45.78ID:7UB7snzp ブラウザ使っててよく Webページ が固まることがあるから、ちゃんとUIスレッド以外で処理しろよとよく思ってたが
JavaScript 自体がシングルスレッドだったのね
WebWoker とかいうのもあるみたいだが、MDN見るに、
言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ
Java やってて、クリティカルセクションの処理が一番嫌いだった
デッドロックの原因探すの大変すぎた
JavaScript 自体がシングルスレッドだったのね
WebWoker とかいうのもあるみたいだが、MDN見るに、
言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ
Java やってて、クリティカルセクションの処理が一番嫌いだった
デッドロックの原因探すの大変すぎた
699デフォルトの名無しさん
2020/12/18(金) 05:52:13.96ID:427cIB03 そもそもIO待ちにスレッドを使うのがナンセンスだったんだよな
700デフォルトの名無しさん
2020/12/18(金) 07:23:19.35ID:7UB7snzp まぁでも、
JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる
ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。
そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる
ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。
そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
701デフォルトの名無しさん
2020/12/18(金) 09:04:21.16ID:TR+u0YNG 非同期処理はスレッドの場合とそうでない場合の2種類ある
そうでない場合は基本的にハードウェア割り込みで実装されてる
タイマーとか通信処理とか
ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ
そうでない場合は基本的にハードウェア割り込みで実装されてる
タイマーとか通信処理とか
ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ
702デフォルトの名無しさん
2020/12/18(金) 09:10:54.87ID:TR+u0YNG setTimeoutはスレッドを使ってない様に思うけど、結局の所ユーザー側でそれを知る術が無い
703デフォルトの名無しさん
2020/12/18(金) 12:01:30.61ID:hVx5pFA4 >>698の問題はスレッドがどうとか関係なくて、html中のある個所の内容が決まらないと
全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと
レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと
レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
704デフォルトの名無しさん
2020/12/18(金) 13:13:24.97ID:7UB7snzp 最近ないように思うけど、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
そんでブラウザを起動し直さなければいけない
その原因が、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
705デフォルトの名無しさん
2020/12/18(金) 13:18:46.36ID:7UB7snzp JS で重めの処理をしたりバグがあっても、レンダリングスレッドと分離されてれば、
少なくとも UIが固まることはないということね(デッドロックがなければ)
あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない
ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね?
後でちゃんと調べます
少なくとも UIが固まることはないということね(デッドロックがなければ)
あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない
ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね?
後でちゃんと調べます
706デフォルトの名無しさん
2020/12/18(金) 13:30:26.86ID:Lq+ZSFwA firefoxがフリーズすることは最近ちょくちょくあったな
edgeに乗り換えたらきれいさっぱり直った
ffはもうだめかもわからんね
edgeに乗り換えたらきれいさっぱり直った
ffはもうだめかもわからんね
707デフォルトの名無しさん
2020/12/18(金) 16:42:31.82ID:7UB7snzp https://gimhana-ds.medium.com/how-firefox-and-chrome-use-process-and-threads-f58f478561f0
ブラウザのスレッドの話ココに載ってた
いろいろとたどってって疲れたので、全部は見てない
Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド
Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
ブラウザのスレッドの話ココに載ってた
いろいろとたどってって疲れたので、全部は見てない
Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド
Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
708デフォルトの名無しさん
2020/12/18(金) 16:44:48.76ID:7UB7snzp 「Firefox が Tab ごとにスレッド」って書きたかった
そのスレッドも Main Thread = UI Thread (DOM 操作と JS 実行)が1個って意味で、
Raster Thread とか、Composer Thread とか多分他にもいろいろスレッド作る
そのスレッドも Main Thread = UI Thread (DOM 操作と JS 実行)が1個って意味で、
Raster Thread とか、Composer Thread とか多分他にもいろいろスレッド作る
709デフォルトの名無しさん
2020/12/18(金) 17:50:47.93ID:m88v/MV8 すみません、TypeScriptって開発中はコンパイルなしでブラウザですぐに変更の動作確認をできますか?
710デフォルトの名無しさん
2020/12/18(金) 19:33:24.14ID:JhB3G5yf そういう時代が来るといいね
711デフォルトの名無しさん
2020/12/18(金) 19:42:28.67ID:1RoKReGQ Chromium Edge で、YouTube を見て、
動画を、5秒先へ進めたりすると、フリーズする
動画を、5秒先へ進めたりすると、フリーズする
712デフォルトの名無しさん
2020/12/18(金) 21:47:42.98ID:TR+u0YNG WebWorkerは完全にスレッドだぞ
更にAtomicsを使えばスレッド間でatomicなデータ更新が出来る
更にAtomicsを使えばスレッド間でatomicなデータ更新が出来る
713デフォルトの名無しさん
2020/12/18(金) 21:53:39.89ID:6FItt2sR WebWorker使いやすくて好き。並列処理面倒くさいからたまにしか使わないけど
714デフォルトの名無しさん
2020/12/18(金) 22:14:36.51ID:TR+u0YNG しかし、SharedArrayBufferはSpectreのせいでほぼ使えない状態だけどね
Spectreに対応したCPUが普及しきらない限り有効にされる事は無い
Webではもはや余計な機能追加はセキュリティーホールの元という認識でこれ以上進化することも無いだろう
ただ、ストアからインストールするPWAはネイティブアプリの代わりだから、機能追加していくと思われる
Spectreに対応したCPUが普及しきらない限り有効にされる事は無い
Webではもはや余計な機能追加はセキュリティーホールの元という認識でこれ以上進化することも無いだろう
ただ、ストアからインストールするPWAはネイティブアプリの代わりだから、機能追加していくと思われる
715デフォルトの名無しさん
2020/12/18(金) 23:02:27.28ID:2C+h9Dqf ストアの収益減らすの絶対許さないマンのアップル
vs
Webから情報吸いたいマンのグーグル
vs
Webから情報吸いたいマンのグーグル
716デフォルトの名無しさん
2020/12/19(土) 13:35:36.37ID:biviwPkb promise(もしくはasync/await)が使えたらシングルスレッドでも実質別段困らない
希ガス
希ガス
717デフォルトの名無しさん
2020/12/19(土) 15:04:10.72ID:+cK8B71a WebWorkerとか知らんかった...
メインと状態を共有しないのが明確なら便利そうだな
さもなくばAsync/Awaitか
メインと状態を共有しないのが明確なら便利そうだな
さもなくばAsync/Awaitか
718デフォルトの名無しさん
2020/12/19(土) 15:41:20.87ID:1ZOkfUtM I/O boundはPromiseでいいけど
CPU boundはPromiseじゃだめだからWebWorker使う
マルチコアの有効活用
CPU boundはPromiseじゃだめだからWebWorker使う
マルチコアの有効活用
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
