プリント基板設計・シミュレーション

TOP > アポロレポート > コラム > 第88回 プログラミングについて『いまさらですがC言語の門を叩こう その11』
コラム
2024/11/29

第88回 プログラミングについて『いまさらですがC言語の門を叩こう その11』

アポロレポート
これまで長い間C言語の入門ということでお話しをしてきました。かなり端折ったので理解しづらいこともあったと思いますが、C言語の基本はなんとかお話しできたと思います。
 C言語の基本といっても、本当はこれまでの話しで殆どすべてになってしまうのがC言語の恐ろしさです。言ってしまえばC言語は中身が少ない言語なのです。覚えなければならない事柄は少ししかありませんので、後はどう使うかにかかってくるのです。高級な機能がないのでプログラムを書く側に負担はかかってしまうのですが、プログラムの隅々にまでプログラムを書く側の自由になると言えます。

 C言語は、OS、科学計算、事務処理、グラフィックス、CAD、コンパイラ、制御などどんな分野でも広範にカバーすることができます。ということはあまり特徴がない言語ということも考えられます。
 仕様する分野に特化した言語、例えばCOBOLは事務処理、FORTRANは科学計算などと良く言われますが、FORTRANでコンパイラを書くことも、COBOLでゲームを書くことも可能ではあります。しかしながらかなり厳しいことだろうと思います。ところがC言語にはこれといった得意な分野がないので、どの分野でもそれなり対応できてしまいます。

 C言語が嫌いな方も大勢いることと思います。確かに自分もそうでした。FORTRANを命として生きていた頃は、他のどんな言語もその存在すら許せないほどかたくなに拒否していたものでした。私は、C言語を嫌いな方に好きになれと命令する気は少しもありません。どんな言語でも欠点はありますが良いところをたくさん持っています。開発環境によっては使用する言語の選択の余地がないときもありますし、自分の使っている言語に魅力を感じている人も大勢いることと思います。それはすばらしいことだと思います。
 私も、開発環境が変ってからFORTRANを捨ててC言語を使うようになったのですが、現在はC言語に魅力を感じています。他の言語でもプログラムを書いてみたいとは思うのですが(実際、Windows用のFORTRANも、BASICもコンパイラは持っています)、なかなか仕事の関係で他の言語でプログラムを書く余裕がないのが正直なところです。これも環境なのでしょうね。
 どんな言語であっても、自分が使っているものに魅力を感じることは大切なことです。FORTRANを使っていた頃はその言語に非常な魅力を感じ、C言語を使っている現在はこの言語に魅力を感じています。これはプログラミング言語に限ったことではありません。テキストエディタなども非常に好みの分かれるもので、Vzが絶対にいいという人がいれば、Viこそが最高という人もいます。当たり前と言えば当たり前なのですが自分で作ったJUMは自分でも気に入っています。最近は自分が作ったことも忘れて、『いいなあ』と一人で喜んでいます(手前味噌....か?)。

 プログラムを作る人にとって自分のプログラムを他人に使ってもらうとか、自分で使うということは初心者であればあるほど度胸の必要なことです。それも仕事となると生半可なものではありません。どんな人でも最初は初心者なのですが、自分のプログラムを仕事で使うということは大きなハードルです。
 この自分のプログラムを実際に他の人たちに使ってもらうというハードルを乗り越えられない人たちは、どんなに努力しても初心者と同じです。実際にこれまでに私が色々な人たちを見てきましたが、そういう人が驚く程多いのです。というよりも殆どがそういう人たちなのです。プログラム開発のプロジェクトの一員といった人は別として、どんな会社にも個人でちょっとしたプログラムを作って自分で使っている人は多いはずです。その上、コンピュータの知識もプログラミングの知識も豊富なのです。ところが、自分のプログラムを堂々と仕事で使ったり、他人に使ってもらうといったことができない人が本当に多いのです。別にそうしなければならないという法律がある訳でもないので強制することはできません。
 もし読者の皆さんがもっと強力なプログラマーになりたいと思うのでれば、このハードルを越えなければなりません。良いプログラムならば賞賛されます。悪いプログラムならば罵倒されます。私はそれが大切なのだと思います。良きにつけ悪しきにつけこれが肥料になるのです。
 実際、私の場合もそうでした。かれこれ15年程の昔話になってしまいますが、以前の会社で配属になった部署というのがプリント基板のCADを扱う部署でした。その部署というのがそのときに新しく出来た部署だったので自分が最初の係員だったのです。
VAXという今では過去の遺物となってしまった計算機と、日本製のCADソフトを使用していました。やがて私は少しずつプログラムを書くようになりましたが、あくまでも個人でちょっとした遊び程度にしか使用していませんでした。実際に仕事で自分のプログラムを使う度胸がなかったのです。
 度胸のないまま1年程経ちましたが、どうしても作業効率を上げるためにはプログラムを書かないわけにいかなくなってしまいました。一般的にはCADソフトの周辺プログラムというものは、システムをカスタマイズするためにソフトメーカに依頼して作ってもらうものですが、予算がどうの、仕様がどうの、納期がどうのと面倒な話が面倒になってしまうものです。ましてや100行程度のプログラムにそんな悠長に構えてはいられません。確か最初に仕事で使ったプログラムは50行程度の小さいお粗末なものだったと思います。それでも仕事ということになると恐る恐るだったと思います。
 これが最初のハードル越えでした。プログラムはなんとか動作していましたが、今から思うとオモチャのようなものでした。しかし、一度ハードルを乗り越えてしまうと人間という生き物は勝手なもので慣れてしまうのです。その後どんどんCADソフトの周辺プログラムを作っていき、しまいにはCADソフトそのものも全部自分で作ってしまいました。そして最後にはその部署で使っているプログラムはOS以外は自分のプログラムだけになってしまいました。これは極端な例かも知れませんが、ハードルを乗り越えられずにいつまでもハードルの前でウロウロしているよりは、思い切って乗り越えて前に進むことをお勧めします。

 話がC言語から外れてしまいましたが、C言語は覚えることは少ないのでとにかくプログラムを作って慣れることです。そして少しでも使えるものであればどんどん使ってみることです。もしできるのであれば、他の人にも使ってもらうことです。そしてちょっとの賞賛とたくさんの罵倒を浴びることです。これがプログラミング上達への道の一つです。

 今回は短いのですが、次回からはまた気を新たにしてお話しする予定です。

そのお悩み、
アポロ技研に話してみませんか?

アポロ技研でワンランク上の物創りへ!
そのお悩み、アポロ技研に話してみませんか?