クラウドの普及が加速している。
Webブラウザから、メモリやディスクの容量、OSなどを指定すると、目的のマシンが一瞬(文字通りの一瞬ではないが)完成してしまう。
サーバーを購入してマシンをセットアップする場合は、OS導入の前に、通常BIOSの更新やら、ディスクユーティリティーのセットアップやらを行い、マシンにどのようなハードウェアが収まっているのかを理解する必要がある。
ただ、クラウドになるとそのような七面倒臭いことを考えなくていい。
(本当は考える必要があるのだが、検討するレベルが格段に低くなる)
これからますます泥臭いハードウェアに煩わされずシステムの構築が可能になっていくのだろう。
羨ましい限りだ。
そういえば、Windowsが普及した時も、同じような議論があった、以前はMS-DOSというコマンドプロンプトベースのOSが主流で、メモリーが限られていたので、ドライバやロードするプログラムのメモリ配置を気にしながら、config.sysやらautoexec.batというファイルを編集したものだ。
Windowsが32bit OSになると、MS-DOSの仕様に引きづられることもなくなり、広大なメモリー空間を贅沢に使用できるようになった。ハードウェアもある程度隠蔽化され、デバイスドライバに悩まされることも少なくなった。
また、Java言語が出てきた時も、そうだった。C言語に比べて抽象化されているので、Segmentation FaultやBus Errorといった、メモリーやI/Oに関するエラーを(ある程度)意識せずにプログラムが書けるようになった。
本当に便利だ。
ただ、そうなると、物足りなくなる人はいるようで、Raspberry Piが普及してきたのも、ハードウェアに近いソフトウェアづくりをしてみたい人がいるからなのかもしれない。
私なんかは、さんざんハードウェアで苦労してきたので、いまのITの驚嘆すべき環境に満足してはいるのだが、やっぱりソフトウェアエンジニアだったら、一回は苦労したほうがいいとも思う。
なお、「コンピュータアーキテクチャ」に関する本を一冊は読んで理解しておくべきだ。
以上、おっさんのひとりごとだが…