今回は、スマートフォン登場前後のITエンジニアの変化について書かせていただきたいと思います。
いきなりですがスマートフォンは、今や大人だけでなく、小学生から高校生まで普及し、幼児向けには疑似的にスマートフォン操作を体験できるおもちゃまで出てきています。このように今や、国民に一人一台普及しているスマートフォンですが、振り返ってみますと、本格的にスマートフォンが普及し始めたのは2011年頃にiphone 4sが販売されたときですから、まだ、それから10年もたっていません。
しかし、この2011年頃を境にITエンジニアの仕事内容は大きな変化の時を迎えました。
それが、Android(アンドロイド)と呼ばれるそれまであまりITエンジニアの間でも噂で留まっていたOSによる開発環境の普及です。
一方、iPhoneに搭載されているiOS(アイオーエス)は、iMacユーザにとっては目新しいものではありませんでしたが、その認知度は、2011年を境にiMacユーザ以外にも急激に高まりました。
では、IT業界にどれほど影響があったのかスマートフォン普及前後のITエンジニアの仕事内容や必要なスキルを比較してみましょう。
①スマートフォン登場前後のIT業界の仕事内容の変化
(1)仕事で用いるOSの種類
私の認識で開発エンジニア数の順番で並べると下記のようになります。
<スマートフォン普及前>
- Windows系OS
スマートフォン普及前はいわゆる”リッチ”な画面操作を伴うアプリケーションといえば、パソコン上で動作するアプリが指すことが一般的でした。 - Linux系OS
オープンソース(無料)、動作が軽い(Pentium 4等 2000年前後のCPUを搭載したパソコン上でも軽快に動作が確認された)ということで主にサーバアプリケーションの開発に利用され、現在においてもそれは変わりません。 - iTron系OS
家電製品の制御アプリケーション(組み込み系ソフトウェア)の開発に利用され、現在においてもそれは変わりません。大きな特徴としては、ソフトウェアのCPUの利用方法がiTron系OSでは優先度方式であるのに対し、Windows系OSやLinux系OSではタイムシェアリング方式であるという点にあります。もう少し噛み砕いて表現すれば、Windows系OSやLinux系OSで動作するソフトウェアはCPUを利用できる時間は、一定時間中に細切れで複数のソフトウェアが平等に分割されているのに対し、iTron系OSで動作するソフトウェアは一定時間中にどのようにCPUを利用するのか、コンパイル段階で設定することが可能になります。こうしたことから、リアルタイムOS(外部からの操作要求に対して、厳格に応答する時間が決められた機能を実現するOS)とも呼ばれています。
<スマートフォン普及後>
- Android
AndroidスマートフォンまたはAndroidタブレットに搭載されているOSです。
有名な端末としてはサムスン社のGalaxyシリーズ、ソニー社のXperiaシリーズ、富士通のらくらくフォンシリーズが有名ですね。 - iOS
iPhoneやiPadに搭載されているOSです。
日本ではスマートフォンにおけるシェアはAndroidがトップですが、世界的にはiOSがトップです。 - Windows系OS
- Linux系OS
- iTron系OS
上記OSの状況はスマートフォン普及前と大きな変化はありません。
(2)仕事で用いられる人気言語
私の認識で開発エンジニア数の順番で並べると下記のようになります。
<スマートフォン普及前>
- C言語またはC++言語
WindowsアプリケーションやLinuxアプリケーションやiTron系OSの開発言語として利用されています。 - Java言語
Linux上で動作するサーバアプリケーションの開発言語として利用されています。
<スマートフォン普及後>
- Java言語
Androidスマートフォンや同タブレット上で動作するアプリケーションの開発言語として利用されています。スマートフォン普及前まではサーバアプリケーションの開発言語としては有名でしたが、より一層、開発エンジニアに普及しました。 - C言語またはC++言語
スマートフォン普及前と大きな変化はありません。 - Object-C言語またはSwift言語
iPhoneやiPad上で動作するiOSアプリケーションの開発言語として利用されています。
(3)プログラマーの開発スタイル
<スマートフォン普及前>
- 開発言語が同じであれば、Windowsアプリケーション、Linuxアプリケーションなど複数の異なるOSをターゲットとした開発経験を有することは珍しくなかった。
<スマートフォン普及後>
- 基本的にスマートフォン普及前と大きな変化はない一方でスマートフォンの普及に伴い、Android系OSやiOS系OSとターゲットを絞って開発を行うエンジニアも増えてきた。背景には両者間の開発言語の違いが大きいと思っています(Android系OS→Java言語、iOS系OSはObject-C言語またはSwift言語と両者、同じオブジェクト指向言語であるものの文法の様式が大きく異なる)
(4)設計者の開発スタイル
スマートフォン普及前後で基本的に大きな変化はないものの、スマートフォンアプリ開発の急激な需要からUMLに代表されるオブジェクト指向設計の手法が、ここ10年で目覚ましく進化、洗練された。この中でオブジェクト指向設計のための様々な便利なツール(アプリケーション)が誕生している。
②まとめ
- スマートフォンアプリ開発において、特定のOSをターゲットとするプログラマーが増えた。
- スマートフォン普及後、オブジェクト指向設計の需要が急激に増えた。それに伴い、オブジェクト指向設計手法自体も進化した。
個人的な実感としてスマートフォン普及後はそれまでと比べて本当にオブジェクト指向設計の熱が高まったと同時に目覚ましい技術革新が起こった期間だったと実感しています。オブジェクト指向設計が主役となっている流れはこの先、当分長く、変わらないだろうと思っています。