はてなキーワード: サン・マイクロシステムズとは
JavaScriptの名前に「Java」がついている理由は、この言語を開発したネットスケープ社が、もともとLiveScriptと名付けていたものを、Javaを開発したサン・マイクロシステムズ社と提携していたことから「JavaScript」という名前に変更したからです。
しかし、JavaとJavaScriptは全く別の言語で、それぞれ異なる目的と特性を持っています。
ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。
今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。
「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。
タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー
面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。
Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。
かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日にリリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。
今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。
Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日にオラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。
当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。
1996年の時点にこんな言語が登場したのですから革新的でした。
いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。
プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロード、テンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。
Wikipediaからピックアップすると1.1での大きな機能追加は
といったところです。当初よりJavaの内部文字コードはUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。
なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。
当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。
JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアのフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。
Microsoft Visual J++ もこの時代ですよ。
Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。
当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。
この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。
strictfpキーワードは浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。
リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassをロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。
1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。
初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。
JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードにコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。
あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。
Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつがMicrosoftだったわけですね。
Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルはMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftはブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。
結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。
JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。
Java SE とは別にこの時代に Java EEがリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。
2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットのサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的なユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。
企業で用いられる社内システムにもServletは多く採用されました。
理由はいろいろ挙げれると思うのですが
というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャはある意味では便利で簡単でした。
もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。
2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホ、ガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。
そこにdocomoのiアプリ、Jフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリはちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。
iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。
docomoはiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。
この賭場が、将来にAppleのiPhone, GoogleのAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoはSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。
話を2001年に戻しましょう。
Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。
Java Appletがブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。
Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。
端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。
また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。
こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。
Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。
RIAの代表とされるのは
あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。
Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。
RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントのひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。
しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。
1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。
Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。
言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。
Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。
Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日にオラクルに吸収合併されました。
Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。
やや戻って2007年にAndroidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。
Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。
このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語も次世代へと移りつつあります。業界動向には注視していきましょう。
1989年に東芝が発売したDynabook J-3100SSが世界で最初のノートパソコンである。すぐにNECが続き、1990年代になると、IBMとアップルが参入、東芝、アップル、IBMが次々に新機能を加え、1995年頃には、現在のノートパソコンの標準的な機能の原型が完成した。
1990年代中頃から、国産各社が参入、先行各社は新機種シリーズを展開した。また、インターネットが普及し、モバイルコンピューティングが盛んになった。それにより、ノートパソコンが急速に使われるようになり、2000年にはノートパソコンの出荷台数はデスクトップパソコンを追い越した。
2000年代を通して、小型化、軽量化、高機能化、省電力化が進んだ。2000年代末には、iPadで代表される新しい形態の携帯機器が出現し、ノートパソコンと競合するようになってきた。
とかくパソコンの分野では日本企業の低迷が指摘されるが、ノートパソコンの分野では、東芝に代表される日本企業が業界を先導したきたのである。少なくとも1990年代まではそうであった。ところが、2000年代になると、ノートパソコンがパソコンの主流になったのに、日本企業の優位性は低下してきた。それを挽回する手段を講じるべきなのか、あるいは陳腐化したこの分野は中国等に任せて、日本は新分野を開拓すべきなのだろうか。
ラップトップとは「膝の上」の意味であるが、デスクトップパソコンより小さく、ノートパソコンよりも大きいサイズのパソコンを指す。携帯可能であるから、これを含めてノートパソコンということもあり、その境界は厳密なものではない。
・1984年 NEC PC-8401A
(PC-8401Aのほうが早いのだが、電池やフロッピーなどが外付けなため、一般にはT-1100が世界初で、PC-98LTがNEC初だとされている)。
T-1100の仕様を示す
・CPU:80C86(16Bits)、5MHz
・メモリ:最大512KB
・外部記憶:3.5インチFDD内蔵(720KB) 。ラップトップでは世界初のHDD内蔵
・サイズ:310(W)×300(D)×67(H),4kg
最初のノートパソコンは1989年に、世界に先駆けて日本で出現した。
発表はPC-286NOTEのほうが先だったが、出荷はJ-3100のほうが早く、しかもヒットしたので、一般的にJ-3100を最初のノートパソコンだとしている。なお、PC-9801Nはやや遅れて出荷されたが、これにより「ノートパソコン」という用語が広まったといわれている。
J-3100SSの仕様を示す
・CPU:80C86(16Bits)、5MHz
・メモリ:最大3.5MB(標準1.5MB)
・外部記憶:3.5インチFDD内蔵(720KB/1.2MB)
・電源リジューム機能の提供 ・ジャストシステムATOK7のROM搭載 ・AT互換機
・サイズ:310(W)×254(D)×44(H),2.7kg)
1990年代に入ると、IBMとアップルがノートパソコンに参入した。1990年代前半の特徴のある機種を列挙する。1995年頃には、現在のノートパソコンの標準的な機能の原型が完成したといえよう。
・1990年 東芝 DynaBook J-3100 SS02E 世界初のHDD搭載
・1991年 NEC PC-9801NC 世界初のTFT液晶16色、TVチューナー付
・1991年 アップル PowerBook 170 世界初のパームレストとトラックボール
・1991年 IBM PS/55note 5523-S IBM初のノート。VGA解像度640x480(他社は640x400だった)
・1992年 東芝 DynaBook 486-XS 世界初のTFT液晶フルカラーVGA
・1992年 東芝 DynaBook EZ ワープロ、表計算などアプリケーションをROM内蔵
・1992年 IBM ThinkPad 700C 当時最大級の10.4インチTFTカラー液晶。世界初のトラックポイント装備
・1992年 IBM ThinkPad 220 世界初のサブノート。重さ 1kg、単三乾電池で駆動
・1994年 東芝 DynaBook SS433 世界初のFDD内蔵B5版サブノート
・1994年 IBM ThinkPad 755 内蔵型CD-ROMドライブ搭載
・1994年 アップル PowerBook 520 世界初のトラックパッド採用
1990年後半には、国産各社がノートパソコン分野に参入、先行各社も新シリーズを展開して、現在でもポピュラーな機種名が出揃った。ノート型は、デスクトップ型に比べて割高であったが、モバイル環境での利用が盛んになったこと、オフィスや家庭での占有面積が小さいことから人気が高まり、2000年にはノートパソコンがデスクトップパソコンの出荷台数を上回る状況になった。
・1995年 富士通 FMV-BIBLO リチウム電池採用。プレインストールソフト多数
・1996年 IBM ThinkPad 560 2kg以下の軽量
・1996年 東芝 Libretto 20 世界最小・最軽量(840g)のミニノート
・1997年 ソニー VAIO NOTE 505 B5サイズモバイルノート
・1997年 パナソニック LetsNote AL-N2 光学式トラックボール搭載
・1997年 三菱電気 Pedion A4で当時画期的最軽量(1.45kg)最薄(18mm)
2000年代になると、パソコンの主流はノートパソコンになり、パソコンでの関心はノートパソコンが主になる。ノートパソコンは、本質的にモバイル環境での利用である。そのための軽量化や小型化競争は1990年代後半から活発であったが、2000年代になると、長時間充電せずに利用できること、立ち上がりの時間が短いこと、堅牢性や耐久性に優れていること、さらにはデザインへの要求など、多様な品質での競争になってきた。
筺体の軽量化
軽量な素材を用いながら堅牢性を高めるため、ハニカム構造など設計上の工夫が進んだ。
パソコンを使用しない状態での省電力技術であるスリープ/スタンバイ機能は従来からあったが、インテルによるディープ・パワー・ダウン・テクノロジやASUSTeK ComputerによるExpress Gateなど、新方式が開発された。
SSD(Flash Solid State Drive)
SSDは、フラッシュメモリを発展させた記憶媒体で、HDD(磁気ディスク)と比較して、機械部分がないため、小型化、省電力化、高性能化が重要なノートパソコンに適している。しかし高価格である。2004年頃から注目されるようになり、2000年代後半には高級機に採用されるようになった。
ノートパソコンの製造には、小型化や低電力化などの高度なな技術が求められので、日本企業に適した分野であった。ところが、低価格化競争が進むのに伴い、台湾や中国などで生産するようになった。それが、2000年前後から、現地企業の技術向上により、現地企業に生産だけでなく設計も委託するようになり、独自のパソコン事業から撤退するようにもなってきた。そのため、日本国内で生産している製品は、特に高度技術が要求される小型の高機能のパソコンに絞られるようになってきた。
2000年後半には、ノートパソコンが多様化した。ディスプレイサイズで区分すると、次のようになる。
7 8 9 10 11 12 13 14 15 16 17
───┬─── ─┬─── ──┬──
│ ──┬──│──┬── │
│ │ │ │ ハイエンド 1920x1200 モバイルを意図せず高機能機
│ │ │ A4ノート 1680x1050 最も広く利用
│ │ B5ノート(コンパクト) 1280x 800 モバイル用の標準
├ウルトラモバイル(タブレットパソコン) 1024x 600 操作性を重視
シンクライアント(Thin client)とは、処理機能をサーバに集中させ、パソコンには必要最小限の機能しかもたせないパソコンのことである。1996年当時は、モバイルパソコンの軽量化、低廉化を狙ったのであるが、あまり普及しなかった。
1996年 オラクル、シンクライアントの概念を提唱。そのコンセプトモデルNC (Network Computer)を紹介。「500ドルパソコン」とも呼ばれた。
1997年 サン・マイクロシステムズ、コンセプトモデルJava Stationを発表
1997年 マイクロソフト、Windows CEをベースとした「Windows Based Terminal(WBT)」を発表
それが2005年頃から、外部記憶装置の接続ができないこと、パソコンに情報が残らないことが、セキュリティの観点から重視され、パソコンメーカーはシンクライアントを発表、多くの企業が採用を検討するようになった。
2005年 日本経済新聞「日立製作所がパソコン利用を全廃する」の記事。これが広く一般の関心を呼ぶ。
2005年 富士通 FMVシンクライアントTC8200等出荷
2005年 NEC Mateシンクライアント、VersaProシンクライアント 出荷
ネットブックとは、インターネット利用に特化した小型軽量なノートパソコンである。2005年頃、発展途上国の教育分野にインターネットの活用が重視され、「100ドルパソコン」として生産、支援団体等を通して提供する計画が進んだ。
ところが、安価で使いやすいことが注目され、先進国でもセカンドマシンとしての重要が高まり、2008年頃から、その用途を目的とした機種も出るようになった。
2008年 ASUS(台湾) Eee PC:本来の目的用の例
・CPU,本体:Ultra-Mobile PC(タブレットPC)携帯端末用のPC、パソコン用と比較して安価
・記憶装置:HDDなどはなく、システム基板上にフラッシュメモリを直接搭載
・ハードウェア構成:通常のPC/AT互換アーキテクチャを採用して、パソコンとの互換性あり
iPadの出現
タブレットパソコンとは、タッチパネルディスプレイを搭載し、指や専用ペンで画面操作できる携帯用パソコンのこと。2002にマイクロソフトはタブレットPCを発表したが、あまり普及しなかった。2009年に発売されたWindows 7が「Windows タッチ」というタッチ操作系統を標準搭載したため、タッチパネルディスプレイを備えたパソコンが各社から発売されるようになった。
2010年、アップルはiPadを発売した。電子書籍閲覧で代表される多様なアプリケーションが評判になり、爆発的な売れ行きを示した。ここでのマルチタッチ操作方法は、一般のパソコンにも大きな影響を与えている。