誠ブログは2015年4月6日に「オルタナティブ・ブログ」になりました。
各ブロガーの新規エントリーは「オルタナティブ・ブログ」でご覧ください。
プログラム言語を学ぼう
仕事と生活と私――ITエンジニアの人生
プログラム言語を学ぼう
グローバル ナレッジ ネットワーク株式会社で、Windows ServerなどのIT技術者向けトレーニングを担当。Windows Serverのすべてのバージョンを経験。趣味は写真(猫とライブ)。
当ブログ「仕事と生活と私――ITエンジニアの人生」は、2015年4月6日から新しいURL「http://blogs.itmedia.co.jp/yokoyamat/」 に移動しました。引き続きご愛読ください。
そういえば、最近プログラムを書いていない。昔は「コンピュータを使う」と「プログラムを作る」は、ほとんど同義だったが今は違う。しかし、プログラム作成の需要が減ったとは思えない。今回は「PC上のプログラミング」について考える。
●BASIC言語の時代
私は1983年頃、京都府宇治市の文具店兼パソコンショップで「PC-8801用BASIC言語講習会」のアルバイトをしていた。変数の概念から始まり、繰り返しや条件分岐など、基本的な制御構造を教える1日コースである。
当時は「ビジネスマンはパソコンを買ってBASIC言語を使ってプログラムを作ろう」という風潮があった。そのため、受講生は真剣であったが、やはり「やりたいこと」と「できること」の差は大きく、実際に自分が思ったプログラムを作れるようになった人は皆無だった。
それに、そもそも講習会の目的は「プログラミングの体験」であり、業務システムの作成ではなかった。
そのうちに講習会は開催されなくなり、私は文具店の「パソコンに詳しい店員」になった。ちょうど年末であり、最も売れたのは「プリントゴッコ」とそのインクだった。今ならプリンタの交換用インクが売れているに違いない。
ちなみに、もうひとつの売れ筋商品は「ファミリーコンピュータ」、通称「ファミコン」だったが品薄で全く入荷せず、代わりにMSXパソコンを勧めた。このことはちょっとだけ後悔している。
その後Windowsが登場し、BASICはVisual Basicとして劇的な進化を遂げた。Visual Basicを使えば、シンプルなビジネス・アプリケーションなら簡単に作れるように思えた。しかし、簡単なのはデータ入力フォームやファイル入出力であって、肝心のプログラム本体(ロジック)が簡単になったわけではない。
プログラム言語とビジネスの間には以前として大きな溝があった。これを「セマンティックギャップ」と呼ぶ。
●当時の背景説明
当時、表計算ソフト「VisiCalc」は存在したがApple II専用(PET-2001用もあったらしい)だし、表計算機能を含む簡易言語「PIPS」はソード社のPC専用だった。
Apple IIは48KBメモリの本体が約50万円もした。ソード社のPCのシステム価格は150万円ほどで、性能を考えると当時としてはそれほど高価でもなかったが、サードパーティ製のソフトウェアが存在せず、ゲームもなかった。一方、売れ筋商品だったPC-8801は本体価格が22万8,000円と比較的安価であり(!)、多数のゲームも存在した。
PC-8801に搭載されたBASIC言語(N88 BASIC)はマイクロソフトとNECの共同開発であり、ベースとなっているのはMicrosoft BASIC(MBASIC)である。MBASICはMS-DOS上でも動作し、のちにQuick Basicへ進化したが、いずれにしても業務アプリケーションを簡単に作成できるようなものではなかった。
●表計算ソフトの時代
プログラム言語を使って、自分でアプリケーションを作るのは無理だとみんなが気づき始めた頃に登場したのが表計算ソフトである。
この分野で先鞭を付けたVisiCalcが新製品開発に手間取っているすきに登場したのが「Lotus 1-2-3」、そしてMacintosh専用だった「Microsoft Excel」だった。特にExcelはWindows版が登場してから市場シェアを1-2-3と激しく争い、最終的に勝利した。今ではExcelは表計算ソフトの代名詞である。
BASICで挫折したビジネスパーソンだが、Excelを使いこなすことはできた。何しろ、縦横集計の機能は最初から備わっている。ビジネス処理の大半は集計処理だから、これほど便利なものはない。セマンティックギャップが小さかったのである。
さらに複雑な処理は「マクロ」と呼ばれるプログラムを作成することで対応できた。このマクロ、当初はExcel専用だったが、のちにVBA(Visual Basic for Applications)に発展し、Excel以外のアプリケーションでも使えるようになった。
VBAは名前の通りBASIC言語に準拠しており、Visual Basicの簡易版である。PC-8801やVisual Basicで挫折した経験がここに来て役に立ったのである。
●クラウドの時代
Excelマクロは便利だが、非IT系の社員が個人的に作成したものが大半であり、以下のような問題を抱えていた。
- 内容を完全に理解しているのは作成者だけなので、作成者が異動すると保守できない
- コピーして広まるうちに、勝手な改善が施され、微妙に違う版が混在している
保守の問題はIT部門の大きな課題だ。すべてのマクロを禁止すると生産性が低下するが、無条件に許可すると保守ができない。現場で作ったマクロをIT部門に送って保守作業だけを依頼する方法もあるが、そこまで力のあるエンジニアを抱えている企業は少ないだろう。
一方、「勝手な改善」は現場の課題だ。マクロはクライアント上で実行する必要がある。そのため、クライアントの台数だけ複製を作る必要がある。複製されたあとで修正が行われたら、それをオリジナルに反映するのは難しい。
マイクロソフトは、同社のサーバー製品「SharePoint Server」上にExcelサーバーを実装した。これにより表データを広範囲に共有できるようになった。ただし、マクロ機能は実装されていないため、社員が作った便利な機能を共有することはできない。
さて、こうしてみると、BASIC言語のバリエーションがいかに長く使われてきたかがわかる。PC-8801から数えるとざっと30年である。ここまで歴史があると、これからもBASICが何らかの形で生き残ると考えるのが自然だろう。BASICの基礎を身につけておいて損はないはずだ。
Visual Basicを本格的に勉強するなら「Visual Studio Express」がお勧めだ。本格的なアプリケーション開発にも使えるうえ、無償だ。入手方法は「コンピュータって何?」でも紹介した。
●終わりに
今回はマイクロソフト製品を中心に紹介した。実際に企業で使われている言語はWindowsならC#かJava、LinuxならJavaが多いかも知れない。その他、PerlやPython、Rubyなどの言語も使われている。しかし、プログラム言語を1つマスターしておけば、たいていの言語に対応できる。BASIC系の言語は、初心者が学習するには悪くない言語だし、ある程度大きな小規模なシステムでの利用例もある。決して「おもちゃ」ではないので安心して学習してほしい。
ちなみに、ここまでBASICを勧めてきたが、私はC#を勉強するつもりである。BASICは学生時代に散々やったし、C#の方がかっこよさそうに見えるからである。皆さんも、「今さらBASICなんて」と思ったらC#をお勧めする。Visual Studio Expressも存在するので無償で使える。
●今週のおまけエピソード
私が使っていたのはPC-8801でも、前身であるPC-8001でもなく、富士通マイクロエイト(通称FM-8)だった。ちなみに、「FM-8」の初期キャンペーンガールは伊藤麻衣子(現いとうまい子)。どうでもいいことだが最近発見した以下のQ&A が冷めていて妙におかしい。
Q. 確かデビュ-したてのころ富士通マイクロエイトというパソコンのポスタ-のモデルをやっていましたね。そのポスタ-今でも持っていますか。
(僕は大切に持っています。水着バ-ジョンとかね)
ところで、MACを買うとき何か思うことはありませんでしたか。
A. 何も思いませんでしたよ。富士通さんからパソコンをもらってたわけじゃないしね。
●今週のおまけ写真
先日、「スプツニ子!」という名前で活躍中の理系アーティストさんの作品『ムーンウォーク☆マシン、セレナの一歩(The Moonwalk Machine - Selena's Step)』を見に、東京都現代美術館で開催中の『うさぎスマッシュ展』に行ってきた。
展示作品の『ムーンウォーク☆マシン、セレナの一歩』はもちろん面白かったし、上映されているビデオも良かったのだけど、本当に感心したのはベッドというかコンソール。理系おたく女子の部屋を再現していて、感心した。
昔は「趣味でプログラムを書く女性」の部屋はこんな感じだった。男性の部屋はちょっと違う(少なくとも洗濯物の種類が違う)。
『うさぎスマッシュ展』については個人ブログの記事「スプツニ子!『ムーンウォーク☆マシン、セレナの一歩』を見に、うさぎスマッシュ展へ行ってきました」をどうぞ。