2005年05月23日
川俣晶の縁側技術関連執筆情報total 3812 count

「今時C入門書いたの? 本当? マジです!」日経ソフトウェア2005年7月号 新連載 基本はいつもC言語 第1回

Written By: 川俣 晶連絡先

 日経BP発行のパソコン雑誌「日経ソフトウェア」誌でCプログラミング入門の新連載が始まりました。

 5月24日発売予定の日経ソフトウェア2005年7月号に連載第1回が掲載されています。

基本はいつもC言語 第1回 Cの美学! ゼロからのC入門! コンパイラをセットアップしよう

 ちなみに、日経ソフトウェアは、他の日経を関するパソコン関連雑誌と異なり、普通の書店で購入できます!。売れ筋パソコン雑誌の1つなので、割と多くの書店で見かけます。お手にとってご覧下さい。

今時C入門書いたの? 脳味噌腐っているんじゃないの? §

 ある種のプロのプログラマであれば、このJavaすら時代遅れに鳴りつつある今になって、C++よりも更に古い"C"と聞いただけであまりに非常識だと思い、私に「狂った人」のラベルを貼って安心しようとするかもしれませんね。

 しかし、別のある種のプロのプログラマは、今でもメインは"C"で仕事をしていると言い、そのようなラベル貼りに強い不快感を示すかもしれません。

 それぐらい、今時の"C"という話題は微妙な空気を孕んでいるように感じられます。

 では、当事者である著者の私がなぜ"C"入門という記事を書く決意をしたのかと言えば、それは編集部から提示された候補案の1つだったから、と言うことでしかありません。

 多くの人達、特に自分は賢いつもりの身体だけ大きな子供達は誤解しがちですが、通常、著者が書きたいと言ったぐらいで雑誌に記事は載りません。どのような記事から構成される誌面を作り出すかは、主に編集者によって決定されます。そして、そのような誌面を構築するための手段として著者が呼ばれるわけです。

 では、狂っているのは私ではなく編集部の方でしょうか?

 それも違います。

 C入門は、人気連載なのだそうです。

 つまり、読者が期待するものである以上、それを提供しようとするのは健全でまっとうな編集者の態度です。

 では、狂っているのは、編集部ではなく読者の方でしょうか?

 それも違います。

 Cには様々な魅力があります。その中には、技術的なものもあれば、デザインセンス的なものもあります。そして、憧れのブランド的な側面もあるでしょう。

 そして、Cに魅力があることは、間違いないと私は思います。

 流行や効率だけを追いかけて過去を顧みず、世界の広さと価値観の多様さに敬意を払わない人達には理解できないことでしょうが、確かにCには人を魅了する魅力があります。

 その魅力には、様々な側面があって、単純に割り切ることはできません。しかし、その魅力の1側面を、自信を持って明確に語ることは価値があるだろうと私は思いました。

余談 §

 この連載でフォーカスしていくのは、標準入出力とフィルタです。なぜかといえば、極めて少ないコーディング量で、非常に大きな成果が得られるためです。「だって、プログラミングを面白がるのに、面倒なのは嫌じゃない?」。それをアピールするため、連載第2回から、自作プログラムをパイプでつないで、プログラムが本来持つポテンシャルを相乗効果で高める事例が出てきます。

 そして、このような特徴は、その1点に限れば、明らかにオブジェクト指向プログラミングなどのより新しいパラダイムに対しても優越しています。見失われつつあるそのような優越性を、それが価値を持つ人達に対して、再度アピールする価値はあると思います。絶対に誤読をする人が出ると思うので強調しますが、「それが価値を持つ人達に対して」ですよ。これを読んでいる「あなた」に対して「ではないかも」知れません。

 実は、この方向性は、XML技術の再構成を目指す檜山正幸さんのサイトChimaira.orgにも通じるものがあります。このサイトのコンポネント・アーキテクチャで、「Junusコンポネント・アーキテクチャは、 Unix流のパイプ&フィルターの正統な後継だと僕は思っている。」と述べられていますが、ここでいう「Unix流のパイプ&フィルター」がこの連載で取り上げる「美学」の主要な構成要素となります。

スローフード宣言 §

 連載第1回冒頭の文章の原稿を再掲します。

 これが、今Cを学ぶことの意義として提示されています。

 なお、実際に掲載されているものは、これよりやや短く、文体も「ですます」なっています。同じではないことに注意してください。

なぜ今Cなのか §

 スローフードという言葉がある。

 画一的なファーストフードの流行に危惧を抱き、食生活を見直そうとする運動を示す言葉である。けして、食事に不必要に長い時間を掛けることを意味する言葉ではない。その内容は、伝統的な食材や料理を守り,質の良い食材を提供する小生産者を保護し,消費者に味の教育を行う運動だという。

 そもそも、なぜファーストフードが問題なのだろうか。本来、食文化とは地域ごとに異なる多様性があり、味に対するこだわりもある。しかし、ファーストフードは、地域に関係なく画一的な味を実現し、品質の安定化の裏返しとして、微妙な味へのこだわりは排除される。つまり、極端に不味いものを排除すると同時に、料理人のちょっとした工夫による味わいの向上も否定される。それにより、多様な「食」と出会う驚きや感動、そして微妙な味の変化を楽しむ余地を奪い去るのである。

 もちろん、ファーストフードにはそれ自身の価値がある。素早く提供され、しかも安価。それに加えて、同じ味が出ると思えば、見知らぬ土地で安心して入ることができる。しかし、「食」の楽しみや感動の多くの部分は、ファーストフードからは得られないのである。充実した「食」の快楽を求めるなら、ファーストフードの他にスローフードを求めざるを得ない。

 同じような問題は、パソコンの世界にもある。

 今のパソコンは、急速にファーストフード化が進んでいるように私には思われる。

 かつて、パソコンと言えば、無限の可能性を秘めた箱であり、手間と時間を費やしてそれを引き出すものであった。しかし、今や、パソコンとは買ってきて電源を入れると即座に使えるものであり、インターネットに接続すると即座に様々な情報にアクセスできてしまう。パソコンを使いこなすために、手間や時間を費やす必要は無くなってしまった。

 しかし、手間や時間を費やさないと言うことは、良いことばかりではない。ファーストフード化したパソコンを使う限り、それによって体験できるものは、あらかじめ画一的なメニューとして用意されたものに限定されてしまう。それは、文化の多様性を切り捨てるものである。そして、ある程度の品質を保証する代わりに、それ以上を得ることもない世界である。つまり、パソコンのファーストフード化とは、本来味わえたかもしれない喜びや感動から、利用者を遠ざける行為だと言える。

今こそ目指そうCの美学! §

 さて、ここからはプログラム言語の世界の話をしよう。

 この世界では、「生産性の向上」という言葉がファーストフード化を示していると言える。つまり、「より少ない時間で」「より多くの成果が」「確実に」得られるプログラム言語が良いプログラム言語という価値観が、一種のファーストフード化といえないだろうか。

 一見、成果さえ得られればファーストフードであっても問題はないように見えるが、そうではない。「生産性の向上」の背景には、様々な微妙な問題をプログラマから巧妙に隠すテクニックが存在する。問題を隠してしまえば、それに悩まされる時間が節約できるので、生産性は向上する。しかし、それらの問題は、無くなってしまったわけではない。ただ隠されているだけである。それは、時としてひょっこりと顔出すことがある。ファーストフードに慣らされたプログラマ達は、そのような問題に対処することができないことがあり、それが致命的な問題に発展することもある。

 このような問題対処する1つの手段となるのが、スローフード主義への回帰である。生産性だけでプログラム言語の善し悪しを決めるのはやめよう。もちろん、特定の機能を最短の時間で実現したい場合は、ファーストフードなプログラム言語を使うのも良いだろう。しかし、単にプログラミングを学びたい、体験したい、楽しみたいと思っているだけならば、スローフード主義を取るのも有意義ではないだろうか。

 では、「生産性」を目指さないとしたら、いったい何を目指すのだろうか。

 目指すべき目標は様々なだと思う。

 この連載では「美学」を目指すべき目標として捉えてみたい。このように書くと驚く読者もいると思うが、プログラム言語の設計とは理屈だけで可能になるものではなく、むしろ美醜が問題にされる感覚的な領域にあるものだと言える。美しいものが嫌いな人はいないだろうから、美しいプログラム言語の美を意識しつつ学ぶことは、単に苦痛に耐えるだけのレッスンよりも、遥かに楽しい有意義な時間になるだろうと思う。

 そう、プログラミングは楽しいことであり、けして苦行に耐えて習得すべきものでなない。

 では、スローフード主義に即して美学を学ぶに値するプログラム言語とはどれだろうか。

 ずばり、それはCであると私は考える。

 Cには長い伝統がある。Cが優れていることは、20年間から現在に至るまで、多くのC関連の書籍が書店の書棚に並んでいることから分かるだろう。つまり、スローフード主義で扱うのに適した伝統がある。

 そして、Cには美学がある。その美学とは私なりが考える私的な美学ではあるが、多くの実績の上に成り立つものであり、この連載で徐々に語っていきたいと思う。

 最後に繰り返すが、生産性よりも美学を取るということは、結果至上主義ではなく、読者の楽しさや感動を重視するという表明である。主役は結果でも美学でもなく、読者である。

Facebook

トラックバック一覧

2005年06月08日[読書]日経ソフトウェア7月号From: 新日々此何有哉

会社の売店で売っていたので、ざざっと斜め読みしてみました。川俣さんの「基本はいつでもC言語」が目当てです。私はC大好きです。はじめてちゃんとANSIから出ている言語仕様を読んで、K&Rとの違いでほうほうと一つ一つ確認していったのが大学時代の話。microVAXでも動いたのですが、どうしてもemacsになじめなくて、Vzで編集してftpで送ってました(笑)。 特に共感を覚えたのが「ファーストフード化」と書かれていたあたり。編集される前の原稿の一部が[http://mag.autumn.org/Content ... 続きを読む

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20050523114750
サイトの表紙【技術関連執筆情報】の表紙【技術関連執筆情報】のコンテンツ全リスト 【技術関連執筆情報】の入手全リスト 【技術関連執筆情報】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.