1. にゃおのリテラシーを考えるラジオ
  2. #396 【技】COBOLはアセ..
2022-12-07 05:43

#396 【技】COBOLはアセンブラみたいなものである

COBOLの移行が進まないのはコンピュータのアーキテクチャレベルの違いが大きすぎるから。

といおう話です。

にゃおの考える現代の基礎的なリテラシーは、ITをきちんと使えることが含まれます。

そのためにどのような問題があり、どう解決していったらよいか考えてみるPodcastです。

配信書き起こし
https://note.com/nchiba

twitter @nchiba

YouTube
https://www.youtube.com/@nyaos

「読書と編集」の活動は、
https://www.nyaos.net/

ストアカの「読書と編集のITリテラシー教室」は、
https://www.street-academy.com/steachers/468576?conversion_name=direct_message&tracking_code=62e788e6ff484f6d2952151bb9c955b4 

をご覧ください。


00:05
にゃおのリテラシーを考えるラジオ、読書と編集の千葉直樹です。
このチャンネルでは、読書とIT時代の読み書きソロ版を中心に様々な話をしています。
今回のタイトルは、「コボルはアセンブラみたいなものである。」というものです。
古いシステムと新しいシステムを同じレベルで比較してはいけないという話をします。
僕がエンジニアとして仕事を始めた頃、パソコンはおもちゃだと思われていました。
業務システムには使えないと思われていたんです。
今は普通に使われているし、ネット上にあるサーバーもパソコンの技術の延長線上にある時代になっています。
実用的に使えるシステムは、メインフレームと呼ばれる、冷房完備のガラス張りの部屋に鎮座するコンピューターが担っていたわけです。
業務系のシステムは、大抵コボルという言語でプログラミングされていました。
というか、今でもこれは変わっていないかもしれません。
よく、なぜそんな古い言語やシステムが使われているのかが議論になるのですが、
これ、最新のシステムしか知らない人にはわからないだろうし、
逆に、古いシステムしか知らない人にもなぜなのかは説明しにくいところがあると思います。
古いシステムが残っているのは、ズバリ速いからです。
最新のシステムより昔のシステムの方が速いなんて言ったら、嘘だって言う人もいるでしょう。
でもそうなんです。
その理由はこういうことです。
コボルはマシン語に近いんです。
コボルはコンパイル、リンクを終えるとほぼマシン語になり、それが実行されることになります。
ほぼマシン語というのは、動かすコンピューターがほぼそのまま実行できる、という意味です。
移行対象とされることが多いJavaはどうかというと、
コンパイルされたものはJava仮想マシンのバイトコードになります。
Java仮想マシンは実際にはインタプリタです。
OSの上に仮想マシンを動かして、その上でインタプリタでバイトコードを実行するんです。
最近はアセンブラでプログラミングすることはほとんどなくなってしまったので、
マシン語になったコードとインタプリタ上で実行されるコードのスピードの違いを体感することが難しいんですが、
インタプリタで実行ってキーを押して一呼吸割って答えが出る感じの処理が、
マシン語だとキーを押さないうちに答えが出た、というくらいのスピードの違いがあるんです。
あくまで体感ですけどね。
もちろんその間にストレージとかネットワークにアクセスするケースもあるので、一概には言えませんが、そんな体感です。
03:07
コボルの行動をまじまじと見てみると、これはメモリマップだなぁと思います。
ほとんどそのままメモリ状に貼り付けて実行できそうな感じなんです。
これも最近のプログラミング言語から始めた方にはわかりにくいでしょうけど、
コンピューターのプログラムはメモリ状にマッピングされて実行されて、
しかもそのサイズがコンパクトであればあるほど処理が早いんです。
コボルは古い時代の言語ですから、
最初からメモリにコンパクトに載せることを考えてプログラミングするようにできているんですね。
だからコボルが優れているんだと言いたいわけではありません。
そもそもプログラミングのモデルが違うから比較してもしょうがないと言っているんです。
コボルでプログラミングされたものを、
現在の複雑化したモダンなOS上で動作させるためには、
コボルを動かせるコンピューターをシミュレーションする必要があって、
最初からコボルに特化した構造のコンピューターとは
勝負にならないほど遅くなってしまうというわけなんですね。
結論は、コボルのロジックをそのままJavaに置き換えると100万倍遅くなるということです。
100万倍というのはベンチマークではありませんよ。
そんなわけで、コボルで作られた業務系システムを
モダンなシステムに単純に置き換えをするというのは難しいわけです。
やるなら今のシステムに合わせて設計し直してから
モダンな言語でプログラミングする必要がありますが、
そんな時間もそれができる人的リソースの確保も難しいというのが現状だと思います。
これは技術の断絶。
メインフレームとパソコンの違いが未だに大引いていると言っていいかもしれません。
どっちも同じコンピューターだろう?
というのは他と違いなんですね。
読書と演習では、ITを特別なものではなく
常識的なリテラシーとして広める活動をしています。
ITリテラシーの基礎を学べるオンライン講座をやっています。
詳しい内容については概要欄のリンクから
または読書と編集と検索して
猫がトップページに出てくるホームページをご覧ください。
この配信の書き起こしをノートで連載しています。
概要欄にリンクがありますのでフォローいただけると嬉しいです。
今日もワクワクする日でありますように。
千葉直樹でした。ではまた。
05:43

コメント

スクロール