※当サイトの記事には、広告・プロモーションが含まれます。

TypeScriptの型の定義って複雑で難読なものも出てきますしな...

www.itmedia.co.jp

⇧ お金の問題に行き着く感じですかね...

う~む、

news.yahoo.co.jp

⇧ 妥当な予算を研究に回せているんだろうか...

話は変わりますが、

www.huffingtonpost.jp

⇧ 22年が経過したのか...

アメリカがだいぶ叩かれてるけど、自爆テロを計画・実行した輩が諸悪の根源であることに変わりはない気はするが、未だ真相は闇の中なんかね?

DHH(David Heinemeier Hansson)、TypeScriptやめるってよ

見出しは、


桐島、部活やめるってよ (本編BD+特典DVD 2枚組) [Blu-ray]

⇧ へのオマージュですが。

By the way、ちょっと前にTwitterで話題になってましたが、

laiso.hatenablog.com

DHHが「オタクくん見てる〜? 今からうちのレポジトリからTypeScriptを剥しま〜す」と宣言したことにより、Web開発者界隈でTypeScriptの是非自体の話になり騒ぎになった*1*2

Remove TypeScript - laiso

⇧ まとめてくださってる方がおられました。

そも、DHH(David Heinemeier Hansson)とは何者?

デイヴィッド・ハイネマイヤー・ハンソンDavid Heinemeier Hansson1979年10月15日 - )は、デンマーク出身のプログラマソフトウェア技術者経営者著作家カーレーサーWebアプリケーションフレームワークRuby on Rails」の作者。Basecampの創設者、最高技術責任者(CTO)。通称として「DHH」と表記されることが多い。

デイヴィッド・ハイネマイヤー・ハンソン - Wikipedia

Wikipediaさんによりますと、「Ruby」のフレームワークである「Ruby on Rails」の生みの親ですと。

TypeScriptをやめた対象のプロジェクトは「Turbo」というらしい。

TurboはRailsのviewでSPAを書くための仕組みです。https://turbo.build/とは別。

Remove TypeScript - laiso

厳密には「サーバーサイドHTMLテンプレートベースでSPAを書くための仕組み」でRails以外にも適用できるのでGitHubのorgが独立して開発されている

Remove TypeScript - laiso

⇧ サーバーサイドHTMLテンプレートベースで「SPA(Single Page Application)」が実現できるものらしい。

8617行のTypeScriptがJavaScript化された。(Sloc 便利)

Remove TypeScript - laiso

⇧ なかなかの決断ですな。

一方、RailsのviewでSPAを書いているアプリケーション開発l=Turboユーザー当事者はviewテンプレートと向きあったりwebpackやesbuildを通じたアセット管理をしているだけで、Turboのインターフェイスをコードから直接呼び出すようなことはない。

Remove TypeScript - laiso

なのでTurboの中身がJavaScriptになったことでアプリケーション側ではひき続きTypeScriptで書くことができる(と言ってもTurboを使っている時に主に書くのはHTMLとRubyだが)

Remove TypeScript - laiso

⇧「Turbo」を利用する側は、これまで通りの使い方で問題ないらしい。

TypeScriptの型の定義って複雑で難読なものも出てきますしな...

メジャーなプログラミング言語の年表が公開されてるっぽく、

gigazine.net

coolinfographics.com

⇧ 元は「O'Reilly」が作成していて更新が止まっていたものを、有志の方が更新を続けてくださっているようです。

2023年9月11日(月)時点では、

www.levenez.com

⇧ 上記サイト様でメジャーなプログラミング言語の年表が確認できるのですが、更新者様の中では「TypeScript」はプログラミング言語として認めていないのか年表の中に「TypeScript」は見当たらず。

「TypeScript」嫌われてるなぁ(笑)。

一応、Wikipediaさんの情報だと、

TypeScript はマイクロソフトによって開発され、メンテナンスされているフリーでオープンソースプログラミング言語である。TypeScriptはJavaScriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセット(既存のものを全て含んだ上でより機能が拡張されている上位互換となるモノ)となっている。

TypeScript - Wikipedia

歴史

TypeScriptはマイクロソフトで2年間かけて内部開発された後、2012年10月に初めて外部に公開された (version 0.8)

TypeScript - Wikipedia

プログラミング言語って扱いですと。

まぁ、話が脱線しましたが、プログラミング言語を大きく分けると、

  • 静的型付け言語
  • 動的型付け言語

の2つに分類されるっぽいのですが、「TypeScript」は「静的型付け言語」に該当しますと。

で、おそらく、「TypeScript」が嫌われる理由としては、

  1. 型の定義が複雑になり過ぎて手に負えなかったり、適切な型が分からないケースが起こり得る。
  2. 結果、any型で妥協せざるを得ないケースが出てきて、予期しない型も許容せざるを得ない状況が起こり得る。

って感じなんですかね。

まぁ、Javaとかでも、Object型で解決せざるを得ない時があるからなぁ...

結局のところ、中途半端になりがちってところが「TypeScript」が忌避される理由なんですかね?

neos21.net

⇧ 上記でサイト様でも仰られていますが、「TypeScript」の型の定義にかかるコストがネックというのは肯ける。

まぁ、そもそもとして、JavaScript が、

qiita.com

⇧ 摩訶不思議なコーディングされることもあって、余計に、型の定義とかで足踏みさせられる、ってのもあるんかね。

「TypeScript」の型の設計の問題なのか分からんのだけど、「型パズル」みたいと見なされてしまうような型の定義が起こり得るのが問題の気もするのだけど。

「TypeScript」が公開されたのが、2012年10月らしいので、今現在が2023年9月なので、10年以上は経過してることになるんだが、もう少し型の定義について何とかならんもんか...

何やら、

github.com

⇧「ECMAScript」で「静的型付け」の提案を検討中らしい。

PHPPythonも「静的型付け」を使えるようにしてきたから(実際に活用されているのかは不明)、いよいよJavaScript でも「静的型付け」が導入されていくんだろうか?

まぁ、ユーザーが使い易い仕様にしてくれると嬉しいよね。

とりあえずは、「TypeScript」を使う場合は、「any型」で妥協せざるを得ない状況を許容していくしか無い感じなんかな...

ちなみに、

qiita.com

⇧ 上記サイト様だと、「any型」は使用を避けるべき禁じ手扱いとなっておりました。

適切な型の定義が分からずエラーを解決できないから「any型」を使わざるを得ないわけで、誰も好き好んで「any型」を使ってるわけではないと思うんだけどな...

う~む、

codezine.jp

⇧「VS CodeVisual Studio Code)」の拡張機能の「Pretty TypeScript Errors」とかを導入すれば、エラーを解決しやすくなるんかな?

まぁ、フロントエンドを学習してる余裕が無いんだけどね...

毎度モヤモヤ感が半端ない...

今回はこのへんで。