文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

プログラミング関連技術は進化が速く書籍が発売されてもすぐ陳腐化する現状

書籍という形態がもうマッチしなくなってきているのかもしれませんね。

f:id:treeapps:20170114053420p:plain

最近思うのですが、「◯◯についての書籍が欲しい」と思ってamazon等で探してみても、全然見つかりません。見つかったとしても、新発売の書籍なのに古いシンタックスで書かれていて、本当に知りたい事・知っておいた方が嬉しい事が書かれていないことが増えています。

そうなってしまうのも、プログラミングに関する技術の進化が最近異様に早くなってきている気がしていて、その速度に書籍という形に落とす速度が間に合っていないのではないか?と思いつつあります。

最近書籍を購入していない現実

特にjavascript界隈はそれはもう凄い速度で進化しており、たった数ヶ月で激変してしまったりする事もあります。最近Reactの書籍を購入しましたが、購入した時点で既に2段階くらい古い記述方法でかかれており、より短くエコな記述方式でないため、書籍に書かれたやり方ではトレンドから外れてしまいます。(トレンドに追従する事が良い事ではありませんが)

コンテナ関連技術も進化速度が速く、シンタックスに後方互換はあるものの、結構な勢いで変化しており、より便利でエコな最新機能について書かれていない場合があったりします。

書籍を見ていると「最新版ならもっと短く簡単に書けるのに」というパターンが結構あるのですよね。書籍のみに頼ると、最新でエコなシンタックスを知らずに進んでしまう事もあるので、ちょっと怖いですよね。

書籍という形態

どうなんでしょうね。書籍という形態はこれからも維持できるのですかね。

以前からですが、日本初の技術が少なくなってきており、欧米初の技術が世界を席巻しています。

「欧米でとある技術が人気になる」 → 「日本でも話題になる」 → 「日本で使う人が増える」 → 「書籍化」 → 「既にメジャーバージョンが上がっている」

そうなると当然↑のようなフローになってしまい、書籍化の時点で周回遅れになりがちです。いざ書籍化しようとした時点で既にメジャーバージョンが結構上がったりしていたりするので、本を作るのと並行して、最新バージョンの新機能解説をおまけ程度に追加する形になりますよね。

java・C#・Ruby・Python・PHP等のプログラミング言語はバージョンアップが遅い(速いものもありますが)のでまだ最新バージョンに追従しやすいと思いますが、フレームワーク・ライブラリとなると進化速度は結構速いので、追従するのはかなり厳しい、というか無理なのではないかと思えます。

もし自分が本を書く側になるとしたら・・・・ちょっと恐ろしいですね。追従できる気がしません。

書籍の変わりになる?ものの登場

最善なのは公式サイトのリファレンス(大体英語)を読む事ですが、頭の中で英語を日本語に翻訳する際に、精密に翻訳できずに異なる見解のまま進んでしまったりするので、やはり自国の言葉で書かれたものがあると、認識の齟齬が起きにくかったりしますよね。

そういった問題を解決するため、Githubに書籍に書かれそうな知見を集約し、皆で修正するような流れがあったりします。単純にGithubにテキストをアップする場合もあるし、Node.js製のGitbookを使ってより情報を閲覧しやすくするような技術が登場したり。

Gitbook等の技術を見ていると、技術進化の速度に追従するには、変更があった差分のみを随時更新し、コンテンツ自体は誰でも追加・変更可能、という分業が向いているのかなあと思ったりします。

ただしそれにも弱点があって、優れた人達が集まってそれが更新されなければ、そのコンテンツの品質はどうしても上がりにくくなります。一方紙やkindleの書籍の場合は大抵著名な方が書かれる場合が多いので、最初から一定の水準はクリアされている場合が多いです。ここが恐らく最も難しい問題になると私は思います。

雑感

最近プログラミング関連の書籍を購入する機会は本当に減りました。紙媒体も電子書籍もあまり購入していません。購入しても「ああ、古いシンタックスで書かれている・・・」と落胆する事も多いです。年末に自宅にある書籍を確認したのですが、もう古すぎて役に立たないものが多かったので、大部分を売却してしまいました。

そうなってしまう場合が多いので、最近は「公式サイトの英語のリファレンスしか見ない」という方も多いのではないでしょうか。その場合は一定の英語力が無いと、「あれ、この文章、微妙に何言っているのか解らないぞ」という残念な事になります。「プログラミングやるなら英語は重要」とよく言われますが、本当にそうですね。英語を話せない・書けないのはまだしも、読む事ができないと、もう本当に損をするというか、周回遅れになりやすい状況です。

とはいえ何もかも英語のドキュメントを読もうとすると翻訳等で効率が下がるので、どうしても最初に日本語で解説された記事を探したいですよね。qiita等にはスキルの高い方々が欧米の最新技術についての記事が沢山投稿されますが、qiitaですら「この記事凄く良いのにバージョンが古い」と思う事が結構あります。「最新のシンタックスの記事はどこだ〜」と探し回るのですが、中々見つからなかったり。

そこで日本語サイトを諦めて言語未指定で検索すると、知りたい最新の情報が書かれている海外の個人ブログやStackOverFlowがすぐ見つかったりして、「ああ、やはり今より英語が読めるようにならないと本気でマズイ」と痛感する機会が増えました。


書籍の話から大分脱線してしまいましたが、最近の技術の進化速度を見ると、プログラム関連書籍の将来が心配になりますね。今後どうやって進化の速度に追従していくのか、追従していくのを諦める人が増えて書籍が衰退していくのか、Githubに知見が集約されていくのか、さあ、どうなるのでしょうね。