今まで読んだ中で最低の本: 肖鋒, 長崎孝夫, 数値流体解析の基礎 – Visual C++とgnuplotによる圧縮性・非圧縮性流体解析 2020/1/9

この記事は4分で読めます

このサイトは学部では早稲田で物理を, 修士では東大で数学を専攻し, 今も非アカデミックの立場で数学や物理と向き合っている一市民の奮闘の記録です. 運営者情報および運営理念についてはこちらをご覧ください.

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!


あまりにも最低の本だったので, Amazon にもレビューを書いたが, 消されるかもしれないし, ブログにも記録しておく.

次のツイートのツリーにも怒りの記録がある.

今読んでいる数値計算の本のサンプルコード、コメント中ではあるが、半角スペース・全角スペース・タブが空白の表記で混在していて厳しい気持ちになっている。— 相転移P (@phasetrbot) March 10, 2020

以下, レビューで書いた内容.

レビュー: 2020年のソースコードではない

多少のプログラムは書いたことがあり, C も少し書いたことはあるが C++ は完全未経験であることをお断わりしておく. サンプルコードを推奨の Visual Studio 2019 でビルドしたら次のようなエラーが出る.

  • ファイルは, 現在のコード ページ (932) で表示できない文字を含んでいます. データの損失を防ぐために, ファイルを Unicode 形式で保存してください.
  • 型指定子がありません – int と仮定しました. メモ: C++ は int を既定値としてサポートしていません

書名には「Visual C++」とあり, サンプルコードの拡張子も cpp. しかし付録の「 A.3 プログラムの実行」では「Microsoft Visual Studio の C (あるいは C++)」と書かれていて, C++ というよりも C 前提なのだろうか. しかし上のような C++ 対応とは思えないようなエラーが出ている. まだ読み終わっておらず, まさにコードが出てくるところでこのレビューを書いていて, まさにビルドを通すための作業をがんばっている. とてもつらい.

ちなみにコードは (Visual Studio で作っているから?) 文字コードが Shift_JIS で, コメント中のスペースには半角・全角スペースとタブが混在していたり, インデントもタブだったりスペースだったりする. 工学系の研究室のコード管理はひどいというのは聞いているが, これはその片鱗なのだろう. とてもつらい.

追記: コードサンプルが本当に最低であることがわかった.

#define i_max 100
double u[i_max]

とした上で「u[i_max] = u[3];」という未定義動作のコードが境界条件として設定されている. 著者も最低だが, 編集者が何も仕事をしていない. 他にも描画に関して, 古代の gnuplot ではアニメーション機能が無く外部プログラム経由で随時描画していたそうで, その手法をいまだに踏襲していて, 2020 年のコードではない. 正気の沙汰とは思えない. 1 番簡単な移流でさえ何なのかさっぱりわからない. 本を買ってここまで損したと思ったことはない. ただただ最低としか評価できない. 評価 5 をつけた人は何を考えて評価したのか. 本当に読んだのか.

他の欠点がひどすぎてかすむ程度の欠点だが, 本のコードではインデントが消えていて, 本当に読みにくい. こういうところにも編集者の無能さ加減が見える. コロナ社の本はもう 2 度と買いたくない.

修正版レビュー

多少のプログラムは書いたことがあり, C も少し書いたことはあるが C++ は完全未経験であることをお断わりしておく. 結論から書くとまずプログラムがひどく, 本もまともな体裁を保っていない. 著者が研究用に書いて公開しないコードというならいくらでもひどくて構わないが, 商業にのせていいレベルの品質のプログラムではない. コード中, インデントは不揃いで, コメント中のスペーシングには半角・全角スペースとタブが混在しているし, インデントもスペースとタブが混在している. そして本に載っているコードでインデントが消えていたりするし, 公式で配布されているサンプルを推奨環境の Visual Studio 2019 でビルドしようとしても通らない. ここまでひどいと物理・工学的な記述もひどいのではないかと疑わざるを得ない. とりあえずコードについては Python で書き直したバージョンを GitHub にあげてある: 興味がある方はぜひ見てほしい. (C 言語版は購入者しかダウンロードできないようにしているようなのでアップしない. この対応もコードの品質がひどいから公開したくないのでは, とさえ勘繰りたくなる.)

以下, もう少し詳しく書いていこう. まずタイトルがあまりにもひどい. Visual C++ と書いてあるが, Visual Studio 2019 を使っているだけで, 実際には C++ ではなく, C でコードが書かれている. それにも関わらず, ファイルの拡張子は cpp になっている. Gnuplot の部分もひどい: 描画はアニメーションを作れなかった太古の Gnuplot の流儀で計算しながら随時 Gnuplot で描画させている. 最終的な動画作成には postscript を使っている. ここが私の環境ではうまく動かないのだが, postscript はほとんと何も知らないので, 調整のしようもない. 上記のような理由であまりにひどいので著者に問い合わせる気も失せる. 2020 年のコードとは思えない.

ビルドについては, サンプルコードを推奨の Visual Studio 2019 でビルドしたら次のようなエラーが出た.

  • ファイルは, 現在のコード ページ (932) で表示できない文字を含んでいます. データの損失を防ぐために, ファイルを Unicode 形式で保存してください.
  • 型指定子がありません – int と仮定しました. メモ: C++ は int を既定値としてサポートしていません

他にも 15 程度のエラーが出た. よくわかっていないが, C でビルドすべきなのに C++ としてビルドしようとして起きたエラーなのかもしれない. C ならまだしも, C++ も Visual Studio もよくわからないので追求は諦めた.

ちなみにコードは (Visual Studio で作っているから?) 文字コードが Shift_JIS で, コメント中のスペースには半角・全角スペースとタブが混在していたり, インデントもタブだったりスペースだったりする. 工学系の研究室のコード管理はひどいというのは聞いているが, これはその片鱗なのだろう. とてもつらい.

他にもコードのすごいところを書いておこう. 例えば次のような配列外参照が平然と書いてある.

#define i_max 100
double u[i_max]

// 中略

u[i_max] = u[3];      //  計算領域右端の境界条件

境界条件を配列外参照で書くというの, 研究用コードなら動けばいいで終わらせてもいいが, 商業用・教育用のコードで書くことか? いくら研究能力を買われてこその話とはいえ, 著者は大学の教員であり, 教育者でもある. これが教育者の態度か. 工学者であってプログラマーではないといったスタンスが許されるのか. 100 歩譲って著者は工学の研究者であって教育者としての誇りを持っていないとしよう. 次の問題は編集者だ. こんなコードを平然と通せる編集者は理工学の専門書の編集としての仕事をしたつもりか. 税込でほぼ 4000 円, 専門書としてはともかく, 日本では一般の本として決して安くない値段の本でこのクオリティというのは読者を愚弄している. ここまでひどい本に評価 5 をつけた人は何を考えて評価したのか. 本当に読んだのか. 安くもない専門書に関して, ここまでひどい編集者が編集した本にはあたりたくないし, コロナ社の本はもう 2 度と買いたくない.


中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

このサイトについて

数学・物理の情報を中心にアカデミックな話題を発信しています。詳しいプロフィールはこちらから。通信講座を中心に数学や物理を独学しやすい環境づくりを目指して日々活動しています。
  • このエントリーをはてなブックマークに追加
  • LINEで送る

YouTube チャンネル登録

講義など動画を使った形式の方が良いコンテンツは動画にしています。ぜひチャンネル登録を!

メルマガ登録

メルマガ登録ページからご登録ください。 数学・物理の専門的な情報と大学受験向けのメルマガの 2 種類があります。

役に立つ・面白い記事があればクリックを!

記事の編集ページから「おすすめ記事」を複数選択してください。