typescript練習帳

本書はtypescirptの使い方について書いて行きます。

1373 views

対象読者

対象読者の年代は30代後半から40代あたりを想定しています。

  • C言語やjavaが得意で、同期、非同期などを理解し、システムプログラムの基礎から応用までできる方
  • フルスタックのWEBフレームワークを使ったWEBサービスは作れるけど、javascriptにアレルギーを感じる方

最近のWEB界隈

一昔前、WEBサービスを作成するときは、フロントエンドajaxJQueryといったjavascriptのライブラリを使い、バックエンドPHPJavaといった、異なる言語で作るのが主流でした。

しかし、よくよく考えると、フロントエンドはjavascript、バックエンドはPHPやJavaなど、別の言語で作成するのは非効率なやり方です。

そこで、フロントエンドもバックエンドも一つの言語で完結できたらいいのに、と考えられるようになりました。

その思想から、最近はフロントエンドもバックエンドも、javascriptで完結させる流れになってきています。

おっさんプログラマーへ

気づけばわたしもプログラマー歴20年を超えるおっさんプログラマーになりました。

30代まではC言語を中心としたミドルウェアをやり、40代になってからWEBプログラマーを始めました。

そんなわけで、最近のわたしは仕事でPHPやpythonでWEBプログラムを書くことが多いです。

フロントエンドは旧式のajaxやjQueryなどを使っていますが、若者に負けねーぞということで、興味本位にjavascirptを調べました。

調べて分かったのは、従来のjavascirptの知識しかない人にとっては、結構ハードルが高い状況になってきているということです。

どうハードルが高いのか

ハードルが高いといっても、AIやブロックチェーンなどのように、微分や積分、ハッシュ計算や暗号化など小難しい理論の上に技術があるとか、そういうことではありません。

全部おっさんの知識でどうにかなります。

ハードルが高い、を平たく言うと、面倒臭くなっているです。

もう少し馬鹿正直な感想を言うと、javascirptがおっさん化している、です。

javascirptのおっさん化 その1

コンパイルするようになりましたw

C言語か!って言いたくなるような状況です。

コンパイルしないといけないので、ソースをどこに配置して、ビルドしたモジュールはどこに吐き出すといった、makeファイルみたいなものを作る必要が出てきました。

これは、C言語でも面倒くさい作業でしたが、javascriptにそれを求められると、えー、そんなのjavascirptじゃないよ!と言いたくなり、拒絶反応が起きます。

または、俺は何か違う言語の記事を読んでいるのか?と錯乱する人も出てくるかもしれません。

ただ、コンパイルするのにはそれなりにメリットがあります。
javascriptのライブラリの依存関係とかを適切に扱ったり、ザルだった変数チェックなどもできます。

旧javascirptを書いていて、こう思ったことがあると思います。

この言語、危なくない?コンパイラ言語みたいに型を厳しくできないかなぁ…

javascirptを貧弱、貧弱、とディスり続けたおっさんたちのせいで、なめんなよ!と言わんばかりに、できるようになっちゃいました。

ただ、コンパイルと言っても、ソースコードをバイナリファイルに変換するのではありません。
typescirptで書かれたプログラムをjavascirptに置き換えるのです。

これをかっこよく、altJSと言います。

ちょうど、C++をビルドすると、いったんC言語に置き換え、そこからバイナリに変換しますが、C++からCに置き換える処理がtypescirptとjavascirptにも起きるのです。

javascirptのおっさん化 その2

作ったライブラリの配布が、C言語のDLLの配布と同じ感覚

もう、javascirptは、ちょこっと動くプログラムではなくなりました。

もはや、一大言語として接しましょう。

一大言語なので、いろいろなライブラリが複雑に絡まるようになりました。

旧javascirptでそうなると、取り込むライブラリの順番なども気にしなければならず、発狂モノでした。

インストーラーじゃないですが、javascirptで作ったライブラリは、webpackなどを使ってまとめる必要があります。

ジェネレーションギャップ

さらにジェネレーションギャップも起きています。

ジェネレーションギャップ その1

パッケージ管理ソフト?

ちょっと前まではCDNをhtmlのscriptタグに書いて、ささっと書いて終わり、みたいな世界でした。

そのとき、思ったことありませんか?

ライブラリを調べてダウンロードして集めるの、メンドクサイ

これは、npmというパッケージ管理ソフトを使うようになりました。

pythonで言えば、pipコマンドみたいなものです。

これはややこしくなった半面、慣れればかなり便利です。

C言語って最近どうしてるのかなぁ…。もう3年くらい離れているからわからない…。

ジェネレーションギャップ その2

apacheいらねーよ

WEBサービスというとapacheをインストールしてしましたよね。

もっと便利なxamppがあるぜとか、そういう次元ではありません。

nodeというコマンドを使えば、WEBサーバが起動します

昔は思いましたよね、apacheの設定メンドクセェ

pythonのflaskやdjangoで言えば、デバッグ用のWEBサーバが起動しますが、あのノリでWEBサーバが起動します。

しかも、本番でも使えるらしく(違ったらごめんなさい、まだ信じられない)、SSLも設定できます。

これは便利!!

本章でのまとめ

色々と変わっていますが、総じて言えるのは、「昔、XXだったらいいのにぁ」がほぼ実現しているということです。

そして、実現したら、C言語などとやることが同じ、というデメリットが出てきた、ということです。

Page 1 of 12.

次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626