具志ブログ(β版)

ピキーン!ときたフレーズや画像、動画なんかを俺のフィルタを通して紹介

17.効率より移植性

スポンサーリンク

いきなりだけどムーアの法則って知ってる?

ムーアの法則(ムーアのほうそく、英: Moore's law)とは、大規模集積回路(LSI IC)の製造・生産における長期傾向について論じた1つの指標であり、経験則に類する将来予測である。
 
https://ja.wikipedia.org/wiki/ムーアの法則ja.wikipedia.org

つまり、コンピュータの発達はめちゃくちゃ早くて指数関数的、時間がたてばたつほど伸び率が加速していくよ、ということ。

で、そんなコンピュータの機能アップを考えると、今、速さを求めるより、将来の処理速度が上がったコンピュータでも使えるプログラムを作ろうよ、ってのがこの定理。

効率より移植性

普通だと、プログラムの処理速度を追求すると、その機械の特性を引き出すため、それ以外のコンピュータでは使われないような特殊な方言みたいなので作ることになる。

もし、その機械がコンピュータとは違って、あまり進化しない、違う機械構成にならないってんだったら、そういった方法で効率性を求めることもアリ。

でも、多くの場合、特にソフトとハードが別々に開発されるようなものは、ハードの進化が早いもんだから、ソフトが動かなくなることが多い。

となると、またソフト(プログラム)開発が必要になって、お金も時間もかかるし、その使い方も学び直さなきゃいけない。

それならば、ソフトウェアでの効率性を求めるより、将来、十分に速くなった機械でも動くようにしたほうがいい。

実際、今のUNIXコンピュータでも使われ続けているのは、そんな移植性を優先したものが多い。

さて、コンピュータならそうだろうけど、人間なら、そういった移植性に優れたソフトというのは何だろう?

俺は、それが「哲学」とかの抽象度の高い考えだと思う。

家なら「家訓」だったり、企業なら「理念」なんかがそれに当たるかな。

国なら「憲法」かな。

こういった抽象度の高い考えは、ぶっちゃけ、解釈に時間がかかるから、めんどくさい。

でも、だからこそ、長い年月の運用に耐え得る。

これが、小手先のノウハウみたいな、すぐにわかって、すぐに結果が得られる効率の良いものだと、環境が変わると使えなくなることが多い。

人も社会もどんどんと成長、変化していく中で、核となる信念というかコンセプトのようなものがないと、存在できなくなるんじゃないかな?

効率性を求めたプログラムが、すぐに使われなくなるように。

じゃ、そんな抽象度の高い考え方を身につけるにはどうしたらいいんだろう?

って、問いには次の定理が効く。

「数値データはASCIIフラットファイルに保存する」です。

何のことやら?

大丈夫、ゆっくり伝えていくから。

じゃ、また。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学