2025年10月13日「開発重視でやっていく。感動のTypeScript」
こんにちは、こんばんは!
やっほー!
今日は午前中まずTypeScriptについての本を読んでました。
TypeScriptのいいところは、コンパイルエラーでバグを見抜けるところかなと思いました。
TypeScriptはコンパイルするみたいです。
JavaScriptはスクリプト言語です。
tsファイルを、jsファイルへコンパイルして、JavaScriptとして、動かすみたいです。
それを聞いて、びっくりしました。
ただの型安全なだけかと思ってました。
型安全のメリットは、挙動のおかしいことがエラーで出るということ、確率でバグになるのにエラーがでないバグを見抜ける、コンパイルエラーで見抜けるという点です。
例えば、
1 + [1]
が、11になるとかのエラーを防げるんですよね。
え?
そう。やらなくていい型推論をして、変な型にキャストしてしまうのを防げるんです。
すごくね!?!?
感動しました。TypeScriptってすげーー!!
と思いましたよ。今朝、本を読んでて。
おいおいおい!すげえじゃねえかよ!
varを乱用するなと言われておりますよね。
letか、constかと言われておりますよね。
何で?
varだとどこでもパブリックに書き換えられるので、値が予期せぬ変更をしてしまうというバグが発生しやすいんです。
だから、varは乱用を非推奨とされております。
letはブロック内で使えて、値が変更可能で、constは定数ですね。
これが推奨されております。
だから、これはTypeScriptではありえないことなので、とてもいいなと思いました。
あと、Symbol型というのがあったり、数字はnumber型になります。
あれ?
intとか、floatじゃないの?
そうです。そこだけJavaScriptっぽいですけどね。numberでいいんだ、みたいな。
let a: number = 1
みたいな書き方です。
JavaScriptの書き方に、:と、型の名前を書いて、書きます。
これをアノテーションと言います。
@もアノテーションと、JavaやPythonなどでは、言われておりますが、TypeScriptでいうアノテーションというのは、このことです。
正確には、型アノテーションですね。
ふむふむ。
面白いですねえ!!
TypeScriptだけでこんなにも違うの!?
となります。
型の変な挙動が生まれるバグを防げること。
これが最強にいいんですね。
あと、静的型付けコンパイル言語が好きだった人は歓喜ですね!!
フロントだりぃわ……。
という人は、TypeScriptを導入してみてください。
ええ!?!?ってなると思います。
ぜひ!!
ぼくは、もうJavaScriptで書きたくないなと思いました。笑
もう、この少し読んだだけで、TypeScriptええやん!!ってなって、JavaScriptより、TypeScriptで書きたいなと思いました。
ただ、ts→jsへコンパイルするので、最後の挙動のチェックは、JavaScriptです。
だから、JavaScriptができないと、TypeScriptは無理です。
ただ、JavaScriptの基礎がある人は、TypeScriptに行くべきだと思います。
tsc script.ts
とコンパイルコマンドをします。
tsのコンパイルということで、tscですね。
これで、script.jsというファイルができます。
それでHTMLとかで動かす……というのが今流ではないんですね!
TSXというもので、ReactのNext.jsで動かすのが今流です。
だから、フロントエンドは、HTMLコーディングと、JavaScriptでよかった時代は終わりました。笑
Reactというライブラリを、フレームワークのNext.jsで記述して動かすという時代で、そのReactがカバーする言語を、TypeScriptにするという……正確には、TSXにするという時代です。
まあ、そこまでする必要はなくて、時代も終わってはなくて、JavaScriptで動かすと思います。
フロントエンドの世界だけでも、このTypeScriptとReactの波というのは非常に非常に、非常に面白いですね!!
話聞いてて思いますでしょ!奥さん!
TypeScript……正直なめてました。
ただの型つけなだけでしょ?え?
と思ってました。
しかし、変な型キャストを防げる、コンパイルエラーで見抜ける、スーッて通ってしまったバグ付きコードを見抜けるということがあります!!
それに!!
JavaScriptでは、動的型付けですが、TypeScriptは、静的型付けのコンパイル言語になります。
Javaと同じ領域になりました。
革命的だと思いますね。
これだけでも。
ぼくは、すごく感動しました!
あ、すげえな……。
そう口からもれてました。笑
JavaScriptで書いてたあれは何だったんだ!?
となってます。
ただ!!
めんどくさくなったので、Python並みに簡単に書けてたことが書けなくなりました。
コンパイルも必要になりましたし。
でもそれは、Javaでもやります。
GoでもRustでもC++でもやります。
ちょっと残念なのが、最終的にjsファイルになるので、速さは変わらないのかなと思いました。
それがまだTypeScriptの課題かなと思いました。
どっちがいいんでしょうね。
tsだけで動けるようになったほうがいいのか、それとも、jsファイルに最終的にするから、普遍性と、今までの先人たちの知恵を捨てなくていいということのほうがいいのか。
ぼく的には、速くなってほしいなと思ってます。
それは、JavaScriptとC++を……みたいな感じにハイブリッド型でやるべきなのかなとは思います。
実際にあるみたいです。
TypeScriptを語るだけで、こんなになってしまった……。
それだけすごいことなんです。これは。
型安全だから……としか言ってない人は、型安全だから何なの?というのを理解・学習したほうがいいです。
一冊、TypeScriptの本を読んだほうがいいです。
おすすめは、いま、ぼくが読んでいる「プログラミングTypeScript」という本ですね。
そこに序盤らへんですべて書かれております。
すごい。拍手レベルでした。
それからポインタの本を読み終えました。
C言語のポインタの本でした。ずっと前から勉強しており、やっと読み終えました。
文字列でポインタを使うことと、普通にポインタを使うことなどが学べました。
構造体で
typedef struct Node {
int data;
struct Node* next;
} Node;
というのが、実は連結リストの構造体です。
しかし、くっつけるには、a->next = &b;とかにしないといけません。
そうすることで、連結リストが作れます。
構造体を作るだけでは連結リストは作れません。
しかし、これがかなりアルゴリズムで出てくるので、覚えておいたほうがいいです。
Nodeというのは、構造体のエイリアス=名前です。
アルゴリズムの本で、Nodeがどうのこうのと出てきたら、あ……構造体とかの名前なだけか!と思えばいいです。
よくよく見ると、typedefとかで定義されているコードがあるので、そこを読み飛ばさずに、読んで、あ、ただのエイリアスか……と思えばいいです。
nextというのは、変数ではなく、そういうものです。
}のあとのNodeってなに?
これがまさにエイリアスのことで、名前というかタグをここに書く習慣があります。
そこらへんも書かれてあって、とてもいい本でしたね。
すごくわかりました。
それを踏まえたうえで、アルゴリズムの本を読んでました。C言語の。
かなりポインタの本を読んでからだと、理解できました。
何周もしないとだめかなとは思いました。
しかし、C言語のアルゴリズムの本はたくさん持っているので、それで相互補完していきながら、読もうかなと思いました。
これらが、今日読んだ本の話です!!
いや……。勉強って、楽しいね!!
本当に楽しい。知らないことがバンバンやってくる。
それにTypeScriptに関しては、感動までしちゃってる!!
フロントつまんねえ……って人は、Reactか、TypeScriptやるといいですよ。
たぶん、バックエンド言語並みに、面白いと思うと思います。
予定を大幅に変更することを話すのが、本題なのですが……。
今日、リポジトリを立てました!!
SDKと、AIについてです!
oggttというアカウントでやってるので、ぜひ見てみてください。
SDKに関しては、privateにしました。完成したら、publicにして、そのOSSにコントリビュートする形で連絡して、作ったんですけど……と言おうと思ってます。
それには、動作をするウェブアプリが必要なので、C++でウェブアプリをDrogonで、Docsとかを見ながら作らないといけません。
並行でやっていきます。
しかし、開発を優先したいなと思いました。
アルゴリズムは?
アルゴリズムは、12月にPaizaさんに入って、強化します。
それまでは、Kindle Unlimitedに入って、勉強します。
10月と11月は、Kindle Unlimitedに入って勉強します。
それで、12月は逆に、Kindle Unlimitedから抜けて、Paizaさんに入ります。
それでSを一ヶ月でとります!!
だから、開発のほうを今月と来月はやっていきます。
スケジュール的には、
・朝起きたら同人作業をする
・本を読む
・ウォーキング
・開発を夜遅くまでやる
このルーティンでやっていきます。
読む本は、10冊以内におさめて、それぞれ20分ずつ毎日読んでいきます。
読み終わったら、違う本と入れ替えます。
それで回していきます。
4時間いかないくらいで、全部20分ずつ読み終わると思います。
あとは開発をしていく!!
開発って何をするの?
・SDK制作
・PythonでAIの制作
・C++でウェブアプリを作る
これをやっていきます。
JavaScriptのSDKをもとに、C++ではどうなるのかをやっていきます。
ポケットリファレンスが火を噴くぜ!!
スレッドとか、APIを呼び出したり、レスポンスを送るとかそういうことがC++でまだわかってないので、ポケットリファレンスが本当に火を噴くと思います。
それでどんどん書き換えていきます。
まずは、C++でウェブアプリを作る。
AIを作る。
SDKをちびちび書き換えていく。
あとやらないといけないのが、英語の勉強ですね。
ビジネス英会話を毎回歩いているときに聞いてます。
とてもいいです。
本の中に、英語が含まれる感じですね。
JavaScriptのSDKより、PythonのSDKのほうがワンチャンわかるんじゃね!?
と思っているので、明日コードリーディングでPythonのほうを見てみたいと思います。
C++よりRustだろ!
という意見はのみます。
しかし、C++のほうがぼくは好きです。
Rustはなんか略語が多くてわかりづらかったです。
C++のほうがJavaっぽい書き方もあって、好きです。
開発重視でやっていきます。
アウトプット駆動勉強ですね。まず作ってしまう。
ザックの金言にもある通り。
それで午前中は読書をしていく。
充実した二ヶ月となることでしょう!!
同人は新しく出したやつより過去作がかなり売れてくれているので、もう300本は超えました。
ノルマ達成!!笑
まだまだ貯金したいので、もっといってくれ!
もっともっと!
新作がピコったのは、残念ですけど、仕方がないですね。
はい。
貯金を貯めて、バイトを来年始める……。
そんな感じです。
ミニPCを買うために!?
ミニPCを買いたいなと思ってます。
ノーパソは卒業ですな。
RyzenとかのCPUにしたいかなと思います。
グラフィックボードも入れられたら入れたいですね。
メモリは16GBでいいかなと。
開発を0からやっていく。
だからこそ、血肉になる!!
そしてこれは、実務に活きる!
というわけで今回はここまで!!
20日に、お金が入ったら、Kindle Unlimitedに入ります!!
Paizaさんは12月に入ります!
それでRustとかGoとかも趣味でやりたいですね。
アルゴリズムとかも。
C++に関することとか。
読めるのがあれば。
ではでは。
あ。あと、憶測で他人を誹謗中傷するのはやめましょうね。
ダサいですよ。笑
では。