標準 Red Hat Linux プログラミング

標準 Red Hat Linux プログラミング レビュー記事

[ ブックレビューコーナー 目次 ]

インプレス株式会社 様のご厚意により, 書籍 "標準 Red Hat Linux プログラミング" を ブックレビューコーナー にご献本いただきました. この本のレビューをして頂くべく, Linux Users ML や本サイトにおいて公募を行い, これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.

ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)

インプレス 様および レビューアの皆様のご厚意に感謝いたします.

なお, 以下のレビューは初版を対象としています.


Reviewed by 佐藤 正博 (m@sa.to) さん (web page)

Linux の使用歴
3 年半 (1996 年秋頃から). これまでのところ Slackware 一筋.
UNIX の使用歴
約 7 年 (1993 年春頃から). Linux を使い始めるまでは単なるユー ザで, 管理者の経験はありませんでした.
Linux Box の主な用途
PC で行う作業のほぼ全て. 具体的には, 文書作成 (Mule, LaTeX), データ処理 (gawk, Ruby, Perl, gnuplot), お絵描きや画像処理 (Tgif, xpaint, ImageMagick, Gimp), メール (Mew), ネットニュース (slrn), Web browsing (Lynx, Netscape Navigator), Web server のテスト (Apache), プログラミングの勉強 (最近は Ruby), 実験装置の制御 (RT-Linux) など.
Linux Box に載っている Linux 以外の OS
プレインストールされていた Windows98 :-p
Linux と Linux 以外の OS の使用頻度の比
Linux : Others = 99 : 1

はじめに

私は大学院の学生で, PC に触っているほとんどの時間を Linux と共に過ごしています. そして, 私の本分である研究においては実験データを処理するために, また遊びにおいては web page のメンテナンスや献血データの管理 :-) などのために, しばしばプログラムを作成しています.

本書では, いろいろなプログラミング言語が取り上げられています. そして, それらに対する私の経験は次の通りです.

このように, 本書で扱われているプログラミング言語の全てを経験しているわけではありませんが, 全てに対して初心者というわけでもありません. そこで, 様々な立場から本書をレビューできると思い, レビューアに応募しました.

内容

本書の構成は インプレス様 のページに詳しく紹介されてますので, そちらを御覧下さい. また, 単純に目次から計算した各章のページ配分は, 次の通りです. なお, 右端はページ数をグラフにしたもので, 1 つの "+" は 4 ページを表し,
第 1 章 シェルプログラミング 32 ページ ++++++++
第 2 章 awk プログラミング 38 ページ +++++++++
第 3 章 タスクの自動化 20 ページ +++++
第 4 章 ネットワークプログラミング 24 ページ ++++++
第 5 章 C/C++ プログラミング 42 ページ ++++++++++
第 6 章 Perl プログラミング 24 ページ ++++++
第 7 章 Motif プログラミング 18 ページ ++++
第 8 章 Tcl/Tk プログラミング 36 ページ +++++++++
第 9 章 Python プログラミング 52 ページ +++++++++++++
第 10 章 Java プログラミング 36 ページ +++++++++
付録 ソフトウェアの国際化 4 ページ +

全体的な特徴

本書は, 少なくとも 1 つのプログラミング言語を知っている人が, 他の言語の雰囲気を味わうのに適していると感じました. 具体的には C 言語や Perl の知識があると読みやすく, また本文の記述にも, それらの言語に関する知識を前提としている箇所があります. そして本書だけでは, 個々の言語をマスターするのはまず無理です. 本書によって興味を持った言語 に本格的に取り組むのなら, 別の資料を探す必要があります.

本書の「はじめに」には, 対象読者として プログラミング入門者を対象にしている (P.12) とあります. しかし, プログラミングの経験のない人が本書を読み通すのは, 大変だと思います.

また本文中には, maninfo というコマンドでドキュメントを読むようにという指示が, 何度も出てきます. ですので, 手とり足とり教えてもらうというのではなく, わからないことは maninfo などを使って自力で何とかしようと努力をする態度が, 本書を読みこなす上で必要かもしれません (これらのコマンドの使い方は, 本文中で説明されてます) .

良い点

Red Hat Linux のユーザじゃなくても OK

タイトルに「Red Hat」とありますが, Red Hat Linux に限らず Linux 一般, あるいはもっと広く UNIX 系 OS のユーザなら, 本書を読む上で特に支障はありません. ただ, プログラムのパス (例えば /usr/bin/perl) などは Red Hat Linux を前提にして書かれており, Red Hat Linux ユーザに優しくなっていると思います.

各章に関連情報へのポインタがある

各章に書かれている内容は限られていますが, それを補うために, 関連する web page や書籍が紹介されています. より深くその言語を知りたいときなどは, それを足掛かりとして, 必要な情報を探せます.

Python が取り上げられている

この文書を書いている 2000 年 3 月上旬に 紀伊国屋 BookWeb で書名に「Python」を含む国内和書を検索したところ, 3 冊しか見つかりませんでした. Python に関する日本語の書籍は, まだ少ないと言えます. 一方で本書のページ配分を調べると, Python について書かれた第 9 章が最も多いです. そしてその内容は, Python の雰囲気を知るには十分であるように感じました. 「Python は気になるけど, オライリーの本は高いし…」という人は, 本書を読んでみてはいかがでしょうか?

第 3 章で目から鱗

私が一番気に入ったのは, 第 3 章「タスクの自動化」です. この章は, 特定の言語を解説しているわけではありません. しかし, 自動処理の全体的な利益はずっと大きなものだ. 時間を節約する以上に, それが与えてくれる品質やトレースアビリティ, 再利用性の向上が大きい (P.98) などの言葉から, プログラミングの際の心構えや態度みたいなものを感じとりました.

残念な点

コマンドプロンプトの不統一

コマンドプロンプトが, 場所によって $ や # だったり, あるいはコマンドプロンプトがなかったりと, 統一されてません. 特に # が出てくると, root で作業しなければならないのかと条件反射的に身構えてしまいます. しかし, # であっても一般ユーザ権限で十分な箇所がいくつかありました.

説明順序への配慮が不十分

例えば, if ステートメントに関する説明がまだなのに, プログラムのサンプルに if ステートメントが使われているというような箇所が, いくつかありました. 他の言語の経験があれば何となく理解できますが, 説明の順番や方法に, 一工夫欲しいところです.

理解を助ける図が不十分

本書には, もっと図があったほうが良いと思いました. 例えば, 説明が抽象的になりやすいネットワークプログラミングの考え方を図解したり, あるいは Java において基本的にグラフィックのプログラムになる AWT や アプレットについてはその実行結果を図示するなど, 効果的に図を使って欲しいと感じました.

各章での情報量にむら

awk や Python については, 駆け足ながらも一通り説明されていると思いました. しかし Tcl/Tk (特に Tk) や Java などは, 説明が不足しています. これは, 1 冊の本で複数の言語を取り扱っている本書の性質を考えると, 仕方がないとも考えられます. しかし, 例えば awk の章を立ち読みした人が, 他の章でも同レベルの内容が書いてあると勘違いする可能性を考えますと, 「はじめに」などに適切な説明が欲しいと思いました.

おわりに

1 つのプログラミング言語を究めることにも, 十分意義があります. しかし, 大雑把であったとしてもいろいろな言語に触れてみますと, 単に問題解決の手段が増えるばかりではなく, 普段使っている言語を別の視点から見直し, 新たな考え方を身につけるきっかけになるかもしれません. 本書を読むことで, 私はそのような効果を得られました. タイミング良く Programming Languages mini-HOWTO の翻訳 が公開されました. これらをきっかけにして, プログラミングの技術を深めていければと思います.

最後に, ブックレビューの機会を与えて下さいましたインプレス様と www.linux.or.jp 管理グループの皆様, そしてここまで読んで下さった皆様に感謝致します. また, このレビュー記事に対するご意見やご感想などがありましたら, 遠慮なく m@sa.to 宛にメールでお寄せ下さい. 今後, もし再びこのような機会がありましたら, 参考にしたいと思います.


Reviewed by 加来 徹平 (teppei@sat.co.jp) さん

Linux の使用歴
約 4 年 (Slackware -> RedHat -> Debian)
UNIX の使用歴
約 5 年 (Solaris, FreeBSD)
Linux Box の主な用途
(自宅) : どうしても Windows が必要な場合以外の全ての用途
(会社) : Apache, Samba 等の各種サーバとして
Linux Box に載っている Linux 以外の OS
Windows 98
Linux と Linux 以外の OS の使用頻度の比
自宅では 8 対 2 くらい

はじめに

Linux (や FreeBSD など) を使用する大きなメリットとして, 様々な種類の優れた開発環境 (gcc などのプログラミング言語やデバッガ, GUI ツールキットなど) をフリーで使用できるということが挙げられます. 本書は, その中で RedHat Linux に含まれている開発環境や 開発を支援するソフトウェアについて, それぞれの概要と基本的な解説で構成されています.

従って, 本書一冊だけでプログラミングやソフトウェア開発の初心者が 一からソフトウェア開発を行うのは困難, というか不可能でしょう. 逆に, C や Perl など何らかの言語や開発技法を 既にある程度習得しているユーザーにとっては, 新たなプログラミング言語を習得するための良い出発点となるのではないでしょうか. もっとも, その言語を本格的に習得するのであれば, やはりそれぞれ専門のリファレンス等が必要となるでしょう.

なお, 本書は「標準 RedHat Linux プログラミング」と銘打たれていますが, RedHat Linux に特化した解説はそれほど多くはありません. RedHat 系以外のディストリビューションのユーザーでも 十分本書を読んで役立てることが出来るでしょう.

本書の構成

本書は, 以下のような章立てで構成されています. なお, CD-ROM などは付属していません.

  1. シェルプログラミング
  2. awk プログラミング
  3. タスクの自動化
  4. ネットワークプログラミング
  5. C/C++ プログラミング
  6. Perl プログラミング
  7. Motif プログラミング
  8. Tcl/Tk プログラミング
  9. Python プログラミング
  10. Java プログラミング
  11. 付録 ソフトウェアの国際化

注目すべき点

気になった点


Reviewed by 塩崎 量彦 (kazuhiko@ring.gr.jp) さん

「本としての出来は納得いかないが方向性は評価」

Linux の使用歴
約 4 年
UNIX の使用歴
約 4 年
Linux Box の主な用途
電子辞書 に関するオープンソースソフトウェアの開発など
Linux Box に載っている Linux 以外の OS
なし
Linux と Linux 以外の OS の使用頻度の比
4 (Linux) : 6 (MacOS)

本書は David Pitts and Billy Ball, Red Hat Linux 6 Unleashed (Sams, 1999) の全訳である. 対象読者は, Red Hat Linux でのプログラミング入門者となっている.

まず気になること

本文中の強調語句 (ファイル名や変数名など) に用いられている書体が, 「大文字のアイ」と「小文字のエル」と「数字のイチ」の区別がつかず, 極めて読みにくい. また明らかな誤植も散見される. どちらも速やかに改善されることを望みたい.

ただし, 紙質は素晴らしい. (誤植の訂正も含めて) あれこれ書き込みをしながら自分の本に育てていくと良いだろう.

内容について

本書は, シェル, awk, C/C++, Perl, Tcl/Tk, Python, Java と多くの言語について広く浅く紹介している. 実際に何かプログラミングを始めようとするときは, まず「やりたいこと」がぼんやりとあって, それを「どの言語をつかってどのように実現するか」考えることになる. そんなときに, 本書のあちこちを読み比べながら頭を整理していくこともできるだろう.

ただ残念ながら, 各言語の長所や短所の比較などはなく, 各言語に関する記述にもあまり統一性がない. 一言で言えば, 小さい独立した章が集まっている印象だ. なお awk と python に関する記述は他の言語よりもかなり詳細なので, じっくり読めばそれなりに使えるようになるだろう (一方 perl に関する記述は簡素すぎる).

言語に関する章の他, 「タスクの自動化」「ネットワークプログラミング」 に関する章がある. 特に「タスクの自動化」は, 日々 Linux を使っている人にはいろいろ役立つヒントが多いだろう. また, 日本語版付録として「ソフトウェアの国際化」という章がある. 本書の他の章からみてかなり異質だし, プログラミング入門者向けの書籍に必要な内容かどうかは大いに疑問だが, 訳者のこだわりが強烈にあらわれている. しかしその一方で awk のマルチバイト拡張や jperl に関する情報などは全くない. せっかく日本語版ならではの情報を加えるなら, そういった日本語化に関する情報や, 日本語で書かれた書籍と URI の紹介をもっと盛り込む方が重要だろう.

おわりに

オープンソース文化はハッカーによって支えられている, と言われる. 今後 Linux ユーザがさらに増えていくにつれて, まずは自分の問題を解決できて, さらには他人の問題を解決できるようなユーザがどれだけ出てくるかが, これからの Linux の発展のカギを握っている. その際どうしても何らかのプログラミングが必要になるが, ここで大切なのは, 「いかにプログラミングの敷居を低くするか」ではなく, 「いかにプログラミングの敷居を低く感じさせるか」ではないか. 本書はそんなきっかけとなる可能性を (決して十分ではないが) 秘めていると言えるだろう.


[ ホーム | マップ | ニュース | 検索 | ドキュメント | リンク | プロジェクト ]
このサイトに関するご意見・ご要望は Webmasters までお願い致します.