|
|
前のページ 1 2 3
|
|
プログラム言語習得の甘い罠
|
ここで少し話題を変え、プログラミング言語の習得時間にどうして差があるのかを掘り下げて考えてみます。
PHPはプログラミング言語として単純だと書きました。しかし、そのマニュアルの厚さだけをみた場合、C言語のほうが薄く、またライブラリ関数も数えられるほどしかなく、はるかに単純とみることもできます。なお、X Windowを使いこなすためには別途1,000個ほどの関数を理解する必要がありますが、これは特別な例となります。
このように覚えるべきライブラリ関数が少ないのにもかかわらず、C言語を使いこなせるまでに膨大な時間を要するのはなぜなのでしょうか。
まず、C言語は「システム記述言語」と呼ばれるように、アプリケーション開発よりも基本ソフト開発に適しているといわれています。もともとUNIXを開発するために設計されたものであり、現在でもLinuxはもちろん、MySQLやPostgreSQLなどのDBMS、代表的なWebサーバであるApacheなどがC言語で書かれています。実はPHPの処理系そのものも、C言語で書かれています。
C言語ではしばしば複雑なメモリ操作をしますが、これを行うためにプログラマはメモリの構造について知る必要があります。さらに、ファイル操作やネットワーク通信部分のプログラムを書くためには、ファイルシステムや通信に関するOSの機能を理解している必要があります。
このようにC言語を使いこなすためには、どうしてもコンピュータの基本構造やOSに関する知識が不可欠なのです。
また、C言語ではライブラリ関数が少ないと書きました。これは、PHPやJavaでは既存のライブラリ関数を呼びだすだけで可能な処理を、C言語では自分で手作りする必要があるということをあらわします。このため、1つのプログラムを完成させるためには、多岐にわたったプログラミング技術を学ぶことが求められます。
つまり、C言語の技術者育成に時間がかかるのは、より基礎的なことまでも含めて教育する必要がある、ということがあげられるでしょう。プログラミング言語+コンピュータアーキテクチャ+OS+ソフトウェア工学、といった様々な分野を理解して、はじめてC言語の一人前のプログラマになれるのです。
これに対してPHPを習得する際には、そのような基礎学習を(当面は)省くことができます。PHPはWebに特化して設計された言語のため、Webシステムを開発するためにはPHPの知識を得るだけである程度の開発を達成できるのです。
しかしこのことが技術者育成の面で、ひいてはIT業界全体にとって問題になると筆者は考えます。
プログラマの早期育成が可能になり、現場への投入が早くなると「PHPが書けるだけの技術者」が現場に増えることになります。若手技術者を現場に早期投入できることは悪いことではありません。また、より基礎的な、あるいは広範な技術の習得は「それとは別に」考えればよいことです。
しかし、いったん現場に入った技術者に改めて基礎教育を施すことは容易ではありません。筆者は、現場が楽しくなり、改めて基礎技術を学ぼうとしない技術者をしばしばみてきました。一度「使う」便利さを覚えてしまうと、それを「作る」ことまでは学ぼうとしないのかもしれません。
このことはPHPだけの問題ではもちろんありません。技術者育成をどうするか、また、技術者のキャリアパスをどのように考えるかという別の問題です。しかしながら、我が国のIT産業全体の未来が、まさにこの点をどうするかにかかっているように思えてなりません。
最終回では、この点を含め、PHPの未来について考えてみます。
|
前のページ 1 2 3
|
|
|
|
著者プロフィール
オープンソース・ジャパン株式会社 須藤 克彦
青森オフィス 代表
1980年立命館大学理工学部を卒業後、独立系ソフトハウスに入社。CやFORTRANコンパイラなどの言語処理系の設計・開発に約10年間従事。その後ユーザ系企業でUNIXによるクラサバの設計・開発を主導。同時に企業の内外で人材育成に注力する。現在はオープンソースソフトウェアの普及と教育のため青森でOSSに関する教育事業を企画する傍ら、神戸情報大学院大学で講師として教鞭をとる。「ソフトウェア科学の基礎を勉強してオールラウンド・プレーヤーを目指せ」が技術者育成についての口癖。
|
|
|
|