なぜアプリ開発の入門書は役に立たないのか

誰にとってもスマートフォンや SNS が身近になった昨今、iOS や Android といった OS や SPA (Single Page Application) のような Web 技術は技術者だけのものではありません。

書店に足を運べば、雑誌や一般書コーナーでも iPhone や Android はもちろん、React, Angular, Kotlin, Swift といった単語に遭遇することも珍しくはありません

そのなかには既成のサービスやアプリケーションを利用するばかりでなく、目的に合致したものを自分で作りたい人に向けて書かれた書籍も少なからず存在します。

ところが、こうした書籍の多くには共通して一つの残念な傾向が見られます。読者レビューで酷評されていることが多いのです。

プログラミング言語やデータベースのように「名著」と絶賛される書籍が少なからず見られる分野と比較して、最新のウェブやモバイルアプリ開発の入門書という分野は統計的有意性が確認できそうなほど低評価のレビューが目立ちます。




その内容を詳しく見ていくと、掲載されているソースコード通りに記述してもプログラムが正常に動作しない、初心者向けではない、誤植が多い、技術的な考証がない(なぜ、そこでそれを使うのかという説明がない)といった評価は日本語に限らず、この分野の書籍レビューでは普遍的に行われていることが分かります。

そのレビューから、興味を持って手にとっては見たものの、エラーが出てまともに動かずに途方に暮れている読者の姿が浮かび上がってくるようです。

しかし、擁護するわけではないですが、多くの執筆者や編集者も決して手を抜いている訳ではありません。商品として提供するソースコードに対して全く動作確認を行わないということもありえません。

問題なのはソースコードではなく、ソフトウェア開発環境のほうが常に変化を続けている事です。とくにウェブやモバイルの分野はその変化が急激で、わずか1年ばかりの間に生じた変化により過去の情報が全く役に立たなくなることが実際に起こりえます。

書籍の場合は執筆途中から既に情報が旧くなり続けていていて、発行日当日から、とっくに環境変化に内容が置いて行かれていることさえあります。こうなると変化に適応するだけでも手一杯で、技術的に深い考察を行ったり、隅々まで内容を精査するところまで手が回らなくなることは容易に想像がつきます。

それでは本に書かれていることは全く役に立たないかと言うと、決してそんなことはなく、自分自身で非推奨になった技術を廃したり、エラーを修正できたりすれば著者の意図は伝わります。

ここで不幸なことには、有償刊行物として成立させるため、そうしたエラー対処などの経験を持たない多数派の一般層に向けた執筆を行う必要があることから、読者層が曖昧になったり、冗長な章や記述が増えたり、あるいは読者によっては段階を飛ばして、いきなり難しくなったように見える部位が出てくることです。

その上、機能解説のためのサンプルプログラムと多くの貢献者がいる人気アプリとでは、同じプログラムでも書き方が全く異なっていたりするので、本の内容と実際に使われている人気アプリや業務アプリとの間には大きな溝があります。

こうした読者の諸々の期待と書籍の内容の不一致が不幸な低評価レビューの一因となっていることが推測されます。

この分野の入門書や教科書を正当に評価するためには、ウェブやモバイルはそもそもが特殊な環境において、特殊な用途をもって動作するものであり、多くのライブラリやフレームワークを用いるためにソースコードは長大で複雑になりがちだということを理解しておかなければなりません。

日常生活において身近にあるからと言って、開発環境としては決して親しみやすいものではありません。公式のチュートリアルですら、初見では何をやっているのかイメージできないことが普通です。

したがって、まず導入以前のところで躓かないようにプログラミング言語や開発環境についての理解は万全にしておくことが求められます。少なくとも、問題が生じたときに、それがソースコードの問題なのか、設定の問題なのか、ライブラリやミドルウェアの問題なのかを自分で判断して切り分けられなければいけません。

これは単体で定番書が欲しくなるぐらいの大きなテーマです。しかし、現状では未経験者を対象としたプログラミング言語の入門書を何冊か読みこなしてコツを掴むしかありません。

また執筆者の方にも基本的な機能紹介に留まるだけではなく、どのような設計思想でプロジェクトを作り上げられているのかを理解し、模範的なクラス設計や適切なメソッドの使用法などを実例として積極的に提示していただきたいところです。

公式のドキュメントやチュートリアルに書かれていることをなぞるだけであれば、最新版に対応している分だけ、ウェブ上の情報のほうが正確で理解に要する手間も少なく、わざわざ書籍を購入する必要性がなくなってしまいます。

そうなると敢えてこの分野で入門書を出版する意義も薄れ、分野の発展にとって不幸な未来しか訪れません。

書籍は公式チュートリアルではありませんので、同一の対象についてパターンを変えながらさまざまな応用例を提示したり、柔軟にオーバーライドをつかって特定の機能を書き換えたり、同一の機能どうしを比較したり、多数の貢献者が参加している人気プロジェクトを初学者にも分かりやすく解説したりとドキュメントには書かれないことを追求する余地が多分にあります。

ぜひ思わず手に取りたくなるようなテーマを取り上げて、この分野を大きく盛り上げてもらいたいところです。

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us