chameleon_pos twitter vivouac youtube
弱小IT社長のひとりごと
~この国の若きITエンジニア達へ~

【第33回】オブジェクト指向プログラミングの功罪

2024-01-15

今回かなり技術寄りの話です。

 

いわゆる「オブジェクト指向プログラミング」というものが広まり始めたのは、かれこれ30年近く昔でしょうか。

 

その後、様々なプログラミング言語や各種フレームワークが出てきて、今ではすっかり主流になりました。

それ自体には何も問題ありません。

が、物事にメリットとデメリットがあるのは世の常。

 

デメリットの一つがデータベースです。

 

えーと、専門外の方のために少し解説します。

 

情報システムでは様々な「データ」を扱いますが、それらは通常「データベース」という別のソフトウェアに格納します。

 

その「データベース」にデータを格納したり、取り出したりするために、「SQL」と呼ばれる共通言語を使います。

 

「SQL」は比較的敷居が低く、わかりやすい言語体系なのですが、慣れるためにはやはりある程度の技術習得が必要です。

 

時代とともに「できるだけ簡単にプログラム開発することができる」ように各種言語やフレームワークは進化を続けました。

 

その結果、「SQL書かなくてもプログラム開発することができる」となったのが現在です。

 

オブジェクト指向プログラミングでは、「SQLは自動生成してデータベースにアクセスする」という方式が主な形態になっています。

 

ところが、この「自動生成」が時としてとんでもないことを誘発してしまうのです。

特に「データ量が膨大な情報システム」において。

 

「SQLは比較的敷居が低い」と書きましたが、そのかわりとても「奥が深い」言語です。

データ量が増えると、書き方ひとつで実行速度が大きく変わります。

 

それこそ「数十分」「0.1秒」くらいに。

 

「どのように書けば早くなるか」はその時のデータの状態によります。

一概に「こうすれば良い」という書き方はありません。

ある程度の熟練が必要なのですね。

 

「自動生成されたSQLのまま、時間がたってデータ量が増え、どんどん速度劣化してついに動かなくなってしまう情報システム」とか、

 

「SQL覚えないままシステム構築し続けたため、肥大化したデータベースの取り扱いができないITエンジニア」がどんどん増えるのも、それはそれで困りものだな、と少し危惧しています。