いよいよ明日発売です!
明日、11月15日に発売となる「スッキリわかるJava入門 第3版」について、思いつきで始めた「ひとりカウントダウン」。発売前日の最終日の記事内容は、最初から決めていた著者の中山です。(6日目の記事はこちら)。
おかげさまで三日坊主の著者が、7日間分の記事を投稿できました。人生ではじめてです1。
最終回の今回は、スッキリわかるJava3版で、私も、恐らく出版社も「人生ではじめて」の試みを紹介します。
本屋さんにいって、紙面を見ると...
スッキリわかるJava入門の発売日は、発売日はあした11月15日となっています2。しかし、ご存じの方も多いかもしれませんが市販書は「発売日の前日や2日前」には書店に取り次ぎから搬入されることもあります。
ですので、おそらく大型書店さんとかだと、今日の夕方にふらっと立ち寄ってみると、もう、「スッキリわかるJava入門 第3版」が並んでいるのを見かけられると思います。
そしたらぜひ、ページをパラパラっとめくってみてください。
一瞬で
あれ、、、、なんだコレ
という紙面に気づかれるはずです。
スッキリわかるJava入門 第3版では、ほぼ全てのソースコードの右上に、QRコードがついているんです。たとえばこんな感じ3
・・・勘が良いみなさんは既にポケットに手が伸びていると思います。そう、これスマホで読み取って貰えるようになっています。
もしよければ、上記のQRコードを、いま、本当にお手持ちのスマホのカメラで読み込んでアクセスしてみてください。
具体的な操作方法だと、スマホの機種によってことなりますが、たとえばiPhoneだと「flair.linkを開きますか?」みたいな表示がでるので、その表示をタップ。Androidの場合は、GoogleLensアプリを使ったり、LINEのバーコードリーダーを使うのがメジャーなようです。4
無事ソースコードが表示されたら、右下の丸い緑色ボタンを1回タップ。そしてまた右下の丸いボタンをタップで動かせます。
Dokojavaが生まれ変わって帰ってきた
過去のスッキリわかるJava入門をご利用いただいたことにはおなじみ、これ「スッキリわかるJava入門」初版の発刊時に準備された「dokojava」のバージョン2です。
9年前の当時、JDKの導入がすごく入門者にとって厳しかったという背景があり準備したこと、当時のブログ記事にも残っています。
ただ、大変申し訳ないことに、この初代dokojava、公開して数年後からメンテナンスが行えない事情5が続いてしまい、古くなったりスマホでうまく稼働しない状態となってしまっていました。著者として皆様に本当に申し訳なさと悔しさを感じながら、ずっと過ごしてきたここ数年でした。
そして今回、スッキリわかるJava入門 第3版にあたり、ゼロから作り直して生まれたのが、dokojava v2です。
dokojava v2は、機能としてはv1とほぼ同じなのですが、ありとあらゆる部分を全面的に2019年の技術で作りなおしてあります6。
公開直後はアクセス集中などもあり少し不安定なこともあるかもしれませんが、前回の反省を活かして機能改善をしやすい仕組みを構築してありますので、継続的に改良して参ります。
「原点」。
「掲載ソースコードのほぼすべてにQRコードが載っていて、その場で動かせるJava入門書」って、私が知る限りではスッキリJava3版がはじめてかなと思います(ソースは俺なので、既にあったら申し訳ありません)。
もちろん、初めての試みですし、いわゆる「普通の言語入門書」にしては少し毛色が違うので、いろんなご意見があるかもしれません。
「紙面のあちこちにQRコードが入って気が散る」、だとか、「授業中に生徒がスマホで読み込んで遊ぶので講義に集中しなくて困る」とか。「理屈じゃなくとにかくキモい」とか、そうお感じになる方もいらっしゃるだろうなとも想像します。
・・・でも
考えてみれば、「スッキリわかるJava入門」という本がはじめて世に生まれた8年前も同じでした。
- 当時、堅くて高尚なプログラミング入門書が多かったので、「なんだよ、この幼稚な本」と言われました。
- 当時、概念からオブジェクト指向を解説する本がほとんどない状況でしたので、「こんなのじゃ、わかった気になるだけで邪道」と言われました。
- 当時、ブラウザでコードを実行するサービスは珍しかったですから、「JDKを自力で入れられない人間を増やす」と言われました。
不安で仕方ありませんでした。
「こういう本が、学び手の方にはきっと喜んでもらえるはずだ」と、ない頭で何度も考え、覚悟を決めて書いているはずなのに、新たな試みが本当に学び手の役に立ち、喜んで貰えるのか。...いやいや、そんな高尚なもんじゃなく、もっと利己的な保身のための不安ーー「自分が幼稚で低能で変な人間と思われてしまわないか」「立ち直れないぐらい批判されてしまうのではないか」ーーだったかもしれません。
でも、そうして私が悩んでいると、当時の編集さんが、アッケラカンというんですよ。
「読者のためにやりたいと思ったことは、やっちゃいましょうよ。せっかくだから。」
って。
それ以来、
読者のためにできる「新たな可能性」から、著者は逃げない
それが「スッキリシリーズ」の原点とDNAになりました。
スッキリJava実践編で、Java入門書なのにアジャイルやTDDを取り込んだことも、
スッキリSQLで、概念的な敷居を下げるために、表名や列名をあえて日本語表記としたことも、
スッキリServletで、MVC理解のため、ServletとJSP/HTMLのコード背景色を変えたことも、
スッキリCで、ポインタ学習をスムーズにするため「邪道な文字列型」を序盤で用いたことも、
スッキリPythonで、あえてオブジェクト指向を削り「基礎の基礎」に絞ったことも。
明日発売の「スッキリわかるJava入門 第3版」。著者・編集者はじめ製作スタッフ一同の試みが、読者の皆様に心から喜んでいただけるものとなったかはわかりません。
それでも、これからも、スッキリシリーズはチャレンジを続けて参ります!
7日間、カウントダウンにおつきあいいただき、ありがとうございました!
- 毎日記事書いてるブロガーさんとか、動画挙げてるYouTuberさんとか、神かよって思いました...
- 大人の事情で「出版物としての公式発売日」は11月21日になっています
- ブログでの解説の関係で、QRコードは紙面のものと違う物に差し替えてあります
- もしお手持ちのスマホでうまくQRを読み込めない時は、QRコードの生みの親であるデンソー社の「Q」というスマホアプリをストアから導入してご利用になってみてください。
- 強く依存していたライブラリのライセンス変更で数十万円を支払わないと利用できなくなってしまったことや、WebSocket未対応ブラウザがお多くcometという特殊なプロトコルで標準入出力を処理していたこと、スマホブラウザのセキュリティ実装が変化したことなどが重なった一方、完全無料サービスで収入と財源がまったくなかった等が重なりました...
- QRからの転送はCloudFront+Lambda Edge、PWAクライアントにVue.js(Quasar)+Amplify、認証基盤としてCognito(OIDC)、サーバーはEC2+nodeをALBで負荷分散、実行環境としてDocker+JVMサンドボックスの二重コンテナ、通信プロトコルとしてsocket.io、基盤構成自動化のためのPacker+terraformみたいな感じです。