アカウント名:
パスワード:
VBの次には証拠にもなくTypeScriptを作ってるようだが・型が自慢のくせに、整数と実数を区別しない。・"any"型が山盛りで、ただの回りくどいJavaScriptでしかない。・nullについて厳密なのはモダンだが、Save Navigation(foo?.bar?.hoge()みたいなの)が無い。・パターンマッチが無く、レガシーなswitch()のみ。・普通の関数とアロー演算子の関数で、"this"が指すものが変わりややこしい。・ろくなテンプレートライブラリが無い。reactやvueに頼らざるえない。で、別のAltJSである「Elm」に惨敗。
TypeScriptも消えていく運命か。MSは言語作るのむいてないんじゃない?
まず大前提として、TypeScriptの目標は「JavaScriptに型をつけた言語」、言い換えれば「TypeScriptのコードから型を取っ払うとJavaScriptになる言語」です。
> ・型が自慢のくせに、整数と実数を区別しない。JavaScriptは整数と実数を区別しない言語です。必然的に「number型」という区別しない型をつけるしかありません。
> ・"any"型が山盛りで、ただの回りくどいJavaScriptでしかない。anyは原則としてリターンされるオブジェクトの型が一定にならないものに対して使われている型です。また、型がしっかりしているものとanyがまぜこぜになるとanyになってしまうという特徴があります。(JavaでSomeClassとObjectが混ざるとObjectに倒さざるを得ないというのと似た話と思ってください)
そのため、any型が山盛りになるケースは・JavaScriptの時点で型がガバガバ・「コンパイルエラーが出るけどよくわかんないからanyで潰した」等のクソコードが溢れかえっているなどが主な原因となります。
> ・nullについて厳密なのはモダンだが、Save Navigation(foo?.bar?.hoge()みたいなの)が無い。JavaScriptに存在しないためです。次期JavaScriptに入ることが確定したらTypeScriptにも追加されるでしょう。
> ・パターンマッチが無く、レガシーなswitch()のみ。JavaScriptに存在しないためです。次期JavaScriptに入ることが確定したらTypeScriptにも追加されるでしょう。
> ・普通の関数とアロー演算子の関数で、"this"が指すものが変わりややこしい。JavaScriptがそういう言語であるためです。
> ・ろくなテンプレートライブラリが無い。reactやvueに頼らざるえない。言語とライブラリーの違いは理解していますか?
> で、別のAltJSである「Elm」に惨敗。2019年にわざわざ学ぶまでもない言語 [codementor.io]堂々の1位おめでとうございます!
TypeScriptは他のAltJSと違って、現行JavaScriptのスーパーセットで有ることが存在意義ですものね。結果、JavaScriptの良くない部分や糞コードがそのまま入り込んでしまう事も可能な仕様。その事が気に食わないんでしょうが、過去の圧倒的なJavaScript資産をそのまま生かせるからこその圧倒的シェアな訳で。結果的に、親コメの人はTypeScriptをディスってるつもりが、ECMAScript(次期JavaScript含む)自体をディスってるのよね。
# async/awaitとかも気に食わないとか言いそう。
しかしTypeScriptの存在意義がそれなら無意味だと思うんだよね。ECMAScriptのままででよくないかって思う。
あなたの目的は言語で好きな開発する事だけなの?動作環境がなけりゃECMAScriptで作っても意味が無いでしょ。TypeScriptの出力は、ECMAScript(JavaScript含む)です。つまり、ECMAScriptの新しい仕様をサポートしてないブラウザでも新しい仕様が動くようになる、トランスパイルとしての価値も有る。
あなたは無意味だと思うかもしれないけど、多くに人に求められているバランスのとれたところに収まってるの、AltJSとしては後発にもかかわず、AltJSのデファクトスタンダードとしてここまで普及して利用されてるわけですよ。
>> ・型が自慢のくせに、整数と実数を区別しない。>JavaScriptは整数と実数を区別しない言語です。>必然的に「number型」という区別しない型をつけるしかありません。
えっ・・・
有れば便利だと私も思うし、演算を展開したり、代入時にチェックルーチン組み込めば可能なんだろうけど、コストパフォーマンスが悪るすぎだろうねぇ。
JavaScriptにトランスパイルする以上、JavaScriptの数値型から大きく離れるとロスが増えるのでは。
型の挙動を揃えるための処理を毎演算毎に行う必要があるのは当然として、その上で元の型での演算にJITされるのを期待するってーのは無責任だし、かと言って多数のJavaScript実行環境でうまくJITされるようメンテし続けるのもコストが半端ない。WebAssemblyとかなら対応してれば高性能だろうが対応環境が縛られてしまう。
数値型細分化は分が悪いととして避けるのは何ら不思議ではない。
実行時にjavascriptとして動く以上は「Numberではない数値型」は非プリミティブ型となってしまい、パフォーマンスはNumberよりかなり劣ると思われる。実数型より遅い整数型を使いたい需要はほとんどないだろう。
JITによって局所的に整数演算コードが吐かれるのを期待することは非効率だが不可能ではないし、asm.jsに対するV8エンジンも当初はそっち系だったとかなんとか。不可能ではないけど遅くなるリスクを十分打ち消すにはコストが見合わないだえいうねぇ……本気で速度欲しけりゃそっち系出力するしかないけど、互換性が大分低いし。出力の可読性も低い。
パフォーマンスがよくなるケースはあってもほかが酷くてメンテコストも高く、そのくせ需要が大きいわけでもない。そりゃ積まんわな。
MS自体がGoogleに負けず劣らず切り捨てるのが速い会社。Games for Windows LIVEレベルにごり押ししていてもいらなくなったらポイよ。
むしろビジネスユーザーには十分な期間のサポート提供してもらえる印象なんだが
正直、IEでしか動かないVBScriptなんて、IE限定で、かなりレガシーとか、特殊な所でしか残ってないよね。今も生き残ってるとしたら、放置サイトか、イントラネット限定か、有ってもEDI位じゃないかなぁ。イントラネットや、HTAにも影響有りますとかだと困る人も多いだろうけど。普通の企業とかなら、ホワイトリスト追加で事足りそう。ゾーンが不足しそうだけど。
ブラウザの判定ルーチンとかでわざわざ使ってるとか有るかなぁ?
お薬足りてますか?
足りないのは、経験とか見聞かと。
経験と見聞では補えない偏見を持っている様子なので、お薬が足りていないほうに一票
> MSは言語作るのむいてないんじゃない?
C#とかF#とか、いい言語だと思いますが。
そうだそうだ!もっと言ってやれ!
AngularJS使おうぜ
safe navigationがありがたいほどnullable型を多用する元コメ
> MSは言語作るのむいてないんじゃない?そもそもNetscapeが作ったものだから・・Netscapeがすべて悪い。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
MS系技術はどうなってるの (スコア:-1)
VBの次には証拠にもなくTypeScriptを作ってるようだが
・型が自慢のくせに、整数と実数を区別しない。
・"any"型が山盛りで、ただの回りくどいJavaScriptでしかない。
・nullについて厳密なのはモダンだが、Save Navigation(foo?.bar?.hoge()みたいなの)が無い。
・パターンマッチが無く、レガシーなswitch()のみ。
・普通の関数とアロー演算子の関数で、"this"が指すものが変わりややこしい。
・ろくなテンプレートライブラリが無い。reactやvueに頼らざるえない。
で、別のAltJSである「Elm」に惨敗。
TypeScriptも消えていく運命か。
MSは言語作るのむいてないんじゃない?
Re:MS系技術はどうなってるの (スコア:1)
まず大前提として、TypeScriptの目標は「JavaScriptに型をつけた言語」、言い換えれば「TypeScriptのコードから型を取っ払うとJavaScriptになる言語」です。
> ・型が自慢のくせに、整数と実数を区別しない。
JavaScriptは整数と実数を区別しない言語です。
必然的に「number型」という区別しない型をつけるしかありません。
> ・"any"型が山盛りで、ただの回りくどいJavaScriptでしかない。
anyは原則としてリターンされるオブジェクトの型が一定にならないものに対して使われている型です。
また、型がしっかりしているものとanyがまぜこぜになるとanyになってしまうという特徴があります。
(JavaでSomeClassとObjectが混ざるとObjectに倒さざるを得ないというのと似た話と思ってください)
そのため、any型が山盛りになるケースは
・JavaScriptの時点で型がガバガバ
・「コンパイルエラーが出るけどよくわかんないからanyで潰した」等のクソコードが溢れかえっている
などが主な原因となります。
> ・nullについて厳密なのはモダンだが、Save Navigation(foo?.bar?.hoge()みたいなの)が無い。
JavaScriptに存在しないためです。
次期JavaScriptに入ることが確定したらTypeScriptにも追加されるでしょう。
> ・パターンマッチが無く、レガシーなswitch()のみ。
JavaScriptに存在しないためです。
次期JavaScriptに入ることが確定したらTypeScriptにも追加されるでしょう。
> ・普通の関数とアロー演算子の関数で、"this"が指すものが変わりややこしい。
JavaScriptがそういう言語であるためです。
> ・ろくなテンプレートライブラリが無い。reactやvueに頼らざるえない。
言語とライブラリーの違いは理解していますか?
> で、別のAltJSである「Elm」に惨敗。
2019年にわざわざ学ぶまでもない言語 [codementor.io]堂々の1位おめでとうございます!
Re: (スコア:0)
TypeScriptは他のAltJSと違って、現行JavaScriptのスーパーセットで有ることが存在意義ですものね。
結果、JavaScriptの良くない部分や糞コードがそのまま入り込んでしまう事も可能な仕様。
その事が気に食わないんでしょうが、過去の圧倒的なJavaScript資産をそのまま生かせるからこその圧倒的シェアな訳で。
結果的に、親コメの人はTypeScriptをディスってるつもりが、ECMAScript(次期JavaScript含む)自体をディスってるのよね。
# async/awaitとかも気に食わないとか言いそう。
Re: (スコア:0)
しかしTypeScriptの存在意義がそれなら無意味だと思うんだよね。
ECMAScriptのままででよくないかって思う。
Re: (スコア:0)
あなたの目的は言語で好きな開発する事だけなの?
動作環境がなけりゃECMAScriptで作っても意味が無いでしょ。
TypeScriptの出力は、ECMAScript(JavaScript含む)です。
つまり、ECMAScriptの新しい仕様をサポートしてないブラウザでも新しい仕様が動くようになる、トランスパイルとしての価値も有る。
Re: (スコア:0)
あなたは無意味だと思うかもしれないけど、多くに人に求められているバランスのとれたところに収まってるの、AltJSとしては後発にもかかわず、AltJSのデファクトスタンダードとしてここまで普及して利用されてるわけですよ。
Re: (スコア:0)
>> ・型が自慢のくせに、整数と実数を区別しない。
>JavaScriptは整数と実数を区別しない言語です。
>必然的に「number型」という区別しない型をつけるしかありません。
えっ・・・
Re: (スコア:0)
有れば便利だと私も思うし、演算を展開したり、代入時にチェックルーチン組み込めば可能なんだろうけど、コストパフォーマンスが悪るすぎだろうねぇ。
Re: (スコア:0)
JavaScriptにトランスパイルする以上、
JavaScriptの数値型から大きく離れるとロスが増えるのでは。
型の挙動を揃えるための処理を毎演算毎に行う必要があるのは当然として、
その上で元の型での演算にJITされるのを期待するってーのは無責任だし、
かと言って多数のJavaScript実行環境でうまくJITされるようメンテし続けるのもコストが半端ない。
WebAssemblyとかなら対応してれば高性能だろうが対応環境が縛られてしまう。
数値型細分化は分が悪いととして避けるのは何ら不思議ではない。
Re:MS系技術はどうなってるの (スコア:1)
実行時にjavascriptとして動く以上は「Numberではない数値型」は非プリミティブ型となってしまい、パフォーマンスはNumberよりかなり劣ると思われる。
実数型より遅い整数型を使いたい需要はほとんどないだろう。
うじゃうじゃ
Re: (スコア:0)
JITによって局所的に整数演算コードが吐かれるのを期待することは非効率だが不可能ではないし、
asm.jsに対するV8エンジンも当初はそっち系だったとかなんとか。
不可能ではないけど遅くなるリスクを十分打ち消すにはコストが見合わないだえいうねぇ……
本気で速度欲しけりゃそっち系出力するしかないけど、互換性が大分低いし。出力の可読性も低い。
パフォーマンスがよくなるケースはあってもほかが酷くてメンテコストも高く、
そのくせ需要が大きいわけでもない。そりゃ積まんわな。
Re: (スコア:0)
Re: (スコア:0)
MS自体がGoogleに負けず劣らず切り捨てるのが速い会社。
Games for Windows LIVEレベルにごり押ししていてもいらなくなったらポイよ。
Re:MS系技術はどうなってるの (スコア:1)
むしろビジネスユーザーには十分な期間のサポート提供してもらえる印象なんだが
Re: (スコア:0)
正直、IEでしか動かないVBScriptなんて、IE限定で、かなりレガシーとか、特殊な所でしか残ってないよね。
今も生き残ってるとしたら、放置サイトか、イントラネット限定か、有ってもEDI位じゃないかなぁ。
イントラネットや、HTAにも影響有りますとかだと困る人も多いだろうけど。
普通の企業とかなら、ホワイトリスト追加で事足りそう。
ゾーンが不足しそうだけど。
ブラウザの判定ルーチンとかでわざわざ使ってるとか有るかなぁ?
Re: (スコア:0)
お薬足りてますか?
"にわかな奴ほど語りたがる -- あるハッカー" (スコア:0)
足りないのは、経験とか見聞かと。
Re: (スコア:0)
経験と見聞では補えない偏見を持っている様子なので、お薬が足りていないほうに一票
Re: (スコア:0)
> MSは言語作るのむいてないんじゃない?
C#とかF#とか、いい言語だと思いますが。
Re: (スコア:0)
そうだそうだ!
もっと言ってやれ!
AngularJS使おうぜ
Re: (スコア:0)
safe navigationがありがたいほどnullable型を多用する元コメ
Re: (スコア:0)
> MSは言語作るのむいてないんじゃない?
そもそもNetscapeが作ったものだから・・Netscapeがすべて悪い。