始まりはJAVAとバイトコードの出現。
Google翻訳です。
多数のCPUアーキテクチャがある中でソフトウエアの配布性を高めるために考え出されたアイデア。マシン語に近いバイトコードで配布してエミュレートしてもらう。
これだと実行時の負荷が少ない。
これを開発したのはサンマイクロシステムズ(後にオラクルに吸収される)。サンマイクロシステムズは当時独自アーキテクチャのCPUを使ったサーバーシステムを販売。
インターネットが普及しブラウザーが出来始め。
ブラウザーとHTMLがクライアント側での大勢力になるのが予見された。
クライアント側は別会社(マイクロソフト)がハードを握ってる。
そこでJVMを仲介にしてクライアント側でアプリを実行させる策を考えた。
サーバー側からアプリを送り込んで連携をうまく取ればクライアント側アプリの開発が楽になる。この方法は昔から普及してます。多数の端末から成るシステムには必須ですがWindowsパソコンに関してはそうではありません。運用管理に手間が掛かる。
結果としてWindowsパソコンで一番使われてるブラウザーはGoogleのChrom。
マイクロソフトは独自のJVMを開発して抵抗。
サーバ分野を握ってないので使われず負けてしまいました。
一大企業でも対抗できない強い流れ。
作業の大半がブラウザーで完結する状況ではマイクロソフトの存在は希薄。
Webアプリケーション全盛の世になりました。
それから時代は更に進歩して、先祖帰り。
CPUアーキテクチャが限られてくればbytecode要らなくねー。
ARMかX86でしょう。C言語みたいにマシン語にして実行すればいいじゃん。
JVMよさらば。
kotlinでもネイティブコンパイラーを使えばC言語と同等。
ここでC言語の替わりにkotlinで書くって図式が生まれます。
JVMを前提として生まれたjavaそしてkotlin。
javaはc言語に変換してネイティブで実行することも可能。
ですがJVMを前提として開発環境・実行環境が整備されてるので、
脱JVMなら必要とする環境をネイティブで揃える必要があります。
実家暮らしが自分の部屋を借りる図式。自立。
私は何が目的なのか?
私は静的言語としてkotlinをマスターしたいのであるからネイティブが妥当。
それにC言語向けのライブラリを使ってアプリを構成。
それなりに仕込みが大変なのです。
なので今はクラウドサービスでそのへんを実現して、
ブラウザーで言語教室を開く例が多いです。それだとコーディングから入れます。
アプリはGUIやらDBやら外部のライブラリーに依存してる。
大きな開発になるとモジュールに分割されて、開発進度もばらばら、
ということでテストするにも準備が大変。
こんなふうにプログラミングの世界は手続きが多くてくそ面倒。
巨大なシステムを数百人規模で作るってんならこんな仕掛けが必要でしょう。
それが高収入に繋がるんなら誰も文句は言いませんよね。
それもこれもマシンが進化しないからこうなったんですよね。
人類がやってきたのは回路を小さくして集積度を上げ、CPUを沢山詰め込んで同時に処理させ、動作クロックを上げる。市場はそれで満足?
こんなCPUに足引っ張られたらAIは進歩しませんぜ。
ビジネスとしては十分儲かるからそれで良しって説もあるね。
将来はpythonに特化したCPUをUSBメモリーみたいに差し込んで使う事に成るといいね。pythonでよく使う処理をハードでカバーしたら格段に高性能。
メインCPUに負荷低減と拡張性。スティク型PCと似てるけど機能は外付けグラボ的。
今はAIがCPUに入る局面だけど、次の段階はグラボがCPUから出たように、
高度AIがCPUから出る。このときのAI=python。
リアルタイム推論に静的言語は無いわ。それで長い負け戦。
中国が脱欧米化するようだから頑張って欲しいね。
共産党政権下では無理だろうけど、次の時代には可能性がある。
欧米の既得権益で守られた、ハードもOSもアプリ開発手法も一新してもらいたいものです。日本は負けましたからね。需要人口を考えると中日連合の芽はあります。
漢字でソースコードが書ける時代はすばらしい。
漢字版JAVAとか。日本語AI-pythonとか。
西洋と東洋。文化的にも両立してもらいたい。競い合って進化。