1.モバイル開発
モバイル開発の習得に時間を割く価値などないと思っている人は、考え直した方がいい。最近のGartnerのレポートによれば、Android向けのモバイルデバイスの売り上げは、2012年第3四半期にPC出荷額を上回った。ほかの有名どころのモバイルデバイスを計算に入れれば(「iPhone」「iPad」あるいは瀕死状態のRIMのデバイスなど)、モバイルデバイスの売り上げはPCよりもはるかに大きくなっている。これは何を意味しているのだろうか。もし、読者がPCでしか動かないソフトウェアを作ることで生計を立てているのであれば(これには、モバイルデバイスでは使えない、あるいは使いにくいウェブサイトが含まれる)、今こそモバイル開発を学ぶべきだということだ。
2.NoSQL
私もほかの人たちと同じように、上手に設計されたリレーショナルデータベースのスキーマは大事だと思っているが、これはすべてのプロジェクトに適しているわけではない。これまでは、ほかに良いツールが見あたらなかったために、最適とは言えない場面でもリレーショナルデータベースが使われてきた。しかしここ数年、さまざまなNoSQLデータベースシステムが導入されるようになってきている。今では、大手サービスベンダー(AmazonやMicrosoftのような)もNoSQLをサポートしているため、NoSQLを使うのに技術的な問題はない。では、NoSQLはどんなプロジェクトにでも使えるのだろうか。答えはノーだ。では、NoSQLは従来のデータベースの代わりになるものだろうか。一部のプロジェクトの、一部の開発者にとっては、確かにその通りだ。NoSQLの重要性は今後高まるばかりであり、来年こそはその使い方を学んでおいた方がいいだろう。
3.単体テスト
単体テストは、あればそれに越したことはないというものから、業界のベストプラクティスになりつつある。また動的言語の利用が増えているため、単体テストはより重要になっている。単体テストには、さまざまなツールとフレームワークが利用できる。まだ単体テストのやり方を知らないのであれば、今こそ習得しておくべきだ。2013年には、単体テストは「履歴書を飾るもの」から「履歴書に必須のもの」になるだろう。
4.PythonまたはRuby
すべてのプロジェクトが動的言語に適しているわけではないが、多くのプロジェクトは動的言語を使った方がうまくいく。この分野では長年のあいだPHPが使われてきたが、今ではPythonとRubyも真剣に検討されるようになっている。Ruby + Rails(あるいはRuby + Sinatra)またはPython + Djangoが、ウェブ開発のプラットフォームとして向いているという議論もあるし、Pythonは以前から「ユーティリティ」の仕事にはよく使われていた。PythonまたはRubyを今のスキルセットに加えられれば、ある種のプロジェクトをやっつけようとする際に役に立つ別の選択肢や、よりよい方法が得られるはずだ。
5.HTML5
HTML5は急速に離陸しつつある。「IE 10」のリリースによって、ほとんどのユーザー(「IE 6」や「IE 8」で止まっていないユーザー)はHTML5のフルパワーを活用できるようになった。今HTML5を学べば、次世代アプリケーションの最前線に出られるだろう。またほとんどのモバイルデバイスは、すでにHTML5のサポートに秀でているため、HTML5の習得はモバイル開発を始めるためにもよい。そして、HTML5がWindows 8のUI定義に使われる方法の1つであることも忘れないでほしい。