はてなキーワード: 漢字圏とは
漢字というのは、甲骨文字の例に見られる通り、かなりの古来から存在するものだと思っていたのだが、この「粁」(キロ)という文字を見ていて、それが本当なのかわからなくなってきた。
「粁」のように、(漢字圏以外の国の)外来語と対応する漢字は当然ながら、古来からあるわけではない。少なくとも、そういう国との交流が始まってから生まれたものであるはずだ。
そうなると、そういう漢字は、いつ、誰が作ったものなのだろう?という疑問が生まれてくる。
古来の漢字のように、自然発生的に生まれたものではないだろうから、誰かが意図的に発生させたものであるはずだが、それが誰なのかがわからない。
人気ランキングで話題にもなってるけど、外国籍同士の赤ちゃんの出生届で漢字カナ云々の話の感想。
https://b.hatena.ne.jp/entry/s/twitter.com/Funi2222/status/1404415913797898247
https://b.hatena.ne.jp/entry/s/togetter.com/li/1731240
この漢字圏は漢字、非漢字圏はカタカナって、おそらく所属する国籍に登録している名前をベースに名前を登録するってことだよね。差別だという主張は理解できるんだけど、そこまで筋が通ってないルールだとも思えない。
あと今回のこの問題は、名前の届け出の初手が日本に出生届けを出してるってことじゃないか、と思った。
多分やろうと思えば、日本では言葉サーナって名前で出生届を出しつつ、所属する国にはアノニマスンダって全然違う名前を登録することできるかもしれないし。特に結論なし。
すでに4年前に詳細な解説がされている。
外国籍の子の出生届にひらがなが使えないのは差別? - Togetter
https://togetter.com/li/1174653
・外国籍も戸籍法に基づき出生届の提出が必要だが、外国籍夫婦の子供が戸籍に記載されることはない
・戸籍に外国籍の名前が掲載される場合(父母が外国人の場合など)、表記はカタカナ(本国で氏名を漢字表記している場合は漢字も可)にすると大臣通達で決まっている
・在留カードの氏名は、出入国管理法で「ローマ字により表記するもの」と定められている(漢字圏の国籍なら漢字表記可能)
・本国では本国語で筆記する名前があるのだから日本の届け出でその読み方としてカタカナ名を登録させるのはおかしくない(本国語の名前があるはずで、カタカナはその代替でしかない。代替に平仮名や漢字を加えると混乱する。)
・今回は特別永住者(在日韓国人)が不自由したという問題で、漢字とカタカナをミックスした名前が前例無き故の対応とはいえ差別と指摘されておかしくない
・漢字圏の名前でも日本で登録できるのは日本の常用漢字だけで旧字も簡体字も使えない
https://b.hatena.ne.jp/entry/s/twitter.com/Funi2222/status/1404415913797898247
TwitterやPixivなどで腐向け一次・二次創作小説を日々拝読しているのですが、もちろん大人なのでエロ描写を含むものを好んで嗜んでいるわけで……。そんな中たまにここちん(心のちんちんの意)が途中で萎えてしまうような、普通の言葉で言えば興奮が一気に醒めるような作品に出会うこともあるわけです。
このここちん中折れ状態に至るには自分の場合「シチュエーションに萌えない」「お互いへの想いの描写が足りない」などといった本質的な理由よりも「日本語がおかしい」みたいな些細な理由が多く、今後の自分への戒めも兼ねてここに列挙しておこうと思います。小説書かないけど。
「考えれる原因は3つ」
もはや説明は要らないと思う「ら抜き言葉」・・・普段喋っている時には全然OKだと思うけど、いざ小説内の地の文で使われると即萎えてしまう…。キャラクターの口調などによってはら抜きの方が合うなぁというケースも多く、会話文やセリフではそんなに気にならないけど、地の文で使われると違和感が凄まじい。”ら抜き”を使わなくて済むような違う言い回しにしてくれないかなと思ってしまう。ただし「”ら抜き”が標準である方言を使用する地域」というものが多数存在するらしく・・・うーん。
「まだ試合には出せれないな」
「指一本すら動かせれなかった」
「れ足し言葉」という呼び方は私が勝手に言ってるだけなのであまり気にしないで。具体的には不必要なれが挟まってくる感じです。上記の例だと正解は出せない、表せない、動かせない。結構いるんだこれが。
「そうゆう言い方は卑怯だ」
大昔から言われてるのにまだユーザーがあまりにも多い。ご存じの通り「そういった」「そのような」みたいな意味の「そういう」の砕けた言い方なんだけど、この「そうゆう」を使うだけで受けちゃんだか攻めちゃんだかのIQが50ぐらい下がって見えてしまう…。実際に会話してる時はいいけど、文章上で「そうゆう」はほんとないわ…。
一度の間違いなら「タイプミスよね」と温かい目で見ることができるけど、延々同じ間違いを繰り返していると「地名や人名すらちゃんと覚えてないなんて作品愛が足りなくない?!」と萎えてしまうやつ。舞台が日本や漢字圏だとあまり発生しないタイプだけど、カタカナの固有名詞ベースの作品では結構な割合で発生しているように思う。
多いのが「グ」がつく名称を「ク」、「ド」がつく名称を「ト」で間違っているやつ。ハグリット、グットマン、ガラハット、ゲイボルク、ゴットストライク、ジャレット、ブラックドック、モードレットなど。
他にも「ヴ」を「ブ」と書いていたり、半濁点と濁点を間違えていたり(バイコーンをパイコーン、など)、固有名詞の中で文字の順番を間違えていたり(ガタノソアをガタソノア、など)。お名前はちゃんと確認しようぜ!
「今まで気ずかれないように必死で隠してきた」
「経験を一つづつ積み重ねて来た」
「近づく」「気づく」「一つずつ」が正解(※一つづつ、については歴史的仮名遣いとしては正解らしいけども)。なんとなく、カクッと膝の力が抜けるような気持ちになりませんか。
「彼のbikeの心地よいsoundが忘れられなかった」
「学校に戻ったがgroundには誰の姿もない」
こういうタイプはむちゃくちゃレアケースで、今まで2回ぐらいしか遭遇したことがないのですが、恐ろしいことに実在します。すぐ読むのやめたよね。なんかこっちが恥ずかしくなっちゃって。
「結局それを手に入れることはできなく、後悔が残った。」
「反対する者は不思議といず、あっさりと決定された。」
「〜できなく」からは幼稚な印象を受けてしまう。かと言って後者のようにむやみに「ず」に置き換えるのも珍妙な印象を生んでしまう場合があって、ケースバイケースで考えないといけないから難しいなぁ。「いず」は「おらず」に置き換えるのがベターだと思います。
また何か見つけたらまとめます。
プロテインでいいだろ。
質←日本語
っていう複合語なのかと思いきや
卵(日)=蛋(中)
Protein(英,独)=タンパク質(日)
という複雑すぎる語源。
「蛋」の字は日常的に見ない字だし
蛋白=卵白なら「卵白質」でいいじゃん。卵白はタンパク質でできてるしわかりやすいしーーと思うじゃん?なんと昭和初期に蛋白質じゃなくて卵白質にしようと言い出した栄養学者がいたけど定着しなかったらしい。
で、結局「蛋白」って何なのか分かりにくいから今は、たんぱく質/タンパク質表記らしい。
でもさぁ、ということはさぁ
でしかないわけじゃん
いやわかりにくいわ。日本語という漢字圏の長所をかなぐり捨ててんじゃん。漢字から連想できる意味もなし。音から連想できる意味もなし。最悪だ。
明治の日本人が一生懸命英語やらドイツ語やらの単語にあたる新しい日本語を作ったことの素晴らしさはわかる。「福祉」「哲学」「失恋」は素晴らしい日本語だ。ウェルフェアとかフィロソフィーとかハートブレイクじゃパッと見て意味が通らないから言葉として定着しなかったろう。和製漢語のおかげで日本人が新しい概念に早く馴染むことができた。
だが、明治の人間が頑張ってしまったばっかりに、日本人は英語により疎くなったという側面はある。その最たる例がやはり、「タンパク質」だろう。
「タンパク質=protein」感の無さは異常。これじゃあ、『タンパク質とは肉や魚、大豆や卵を構成しているアミノ酸のポリペプチドなんだな。』と覚えた後、更に『protein(名)タンパク質』と覚えなきゃならない。無駄だ。無駄すぎる。プロテイン飲んでる中学生の3割はプロテイン=タンパク質と認識していないんじゃないか。だれもプロテインがタンパク質だとは知らなきゃわからない。
対して「プロテイン=protein」はわかりやすい。英語の授業でproteinを習わなくてもproteinがプロテインだとわかる。
桜散らしの雨とかなんて言うけど、
なんだか花見って感じでもないし、
私は近所の神社の桜を愛でたぐらいで
そこでスタンレーのデカい水筒にルービーを入れて1人お花見と意気込んでパパッとグビッと決めて帰ってきたところよ。
暖が欲しいわ暖が。
というか、
ここは通常通りの勤務態勢なのかしら?とも思うけど、
きっと5月ぐらいまで休校なのが関係してるのかも知れないってことに今気付いたわ。
でね、
コロナコロナで客足が遠のいてるのかどうかはまだ微妙だと言うことで、
そのお店はそう言ってたわ。
なんだか新人さんも入ってきたようで、
なんかこっちが気を遣っちゃうわ。
なんでこっちが新人さんに気を遣わなくちゃいけないのよ?とまでは思わないけど
とりあえず頑張ってね!とは言ってみたわ。
長く続くといいわね。
その新人さん見てるとなんか余裕がないというのか一生懸命なのか、
威勢の良い美容院みたいで、
ほんと笑っちゃうけど、
ちょっと待つどころじゃないところがよかったです。
こっちの小言が増えて申し訳ないんだけど
話変わるけどさ、
日本語学習者にとって、
いま別のフロアにいる子がいるんだけど
「びよういん」と「びょういん」の区別がとても難しいらしく
これもまた学びの春ならではと言ったところで
無理!と手を上げる前からお手上げって感じで、
私だってびゃんびゃん麺のびゃんが書けたところで、
なんの特にもならないし、
ほんとうに漢字圏じゃない国の人が漢字を学ぶことは鬼難しってことを聞いて
春だなぁーって。
私も春だから何か習いごとでもしたい気がするのは気のせいなこともないかも知れないわね。
うふふ。
というか慌ただしかったので食べてなかったわ。
寒気がしてなんでだろうと考えたら朝ご飯食べてなかったんだわ!って
やっぱり朝のご飯の朝食は
身体をスタートさせるためにも温めるためにも重要だっつーことよ。
ホッツ白湯飲んだところで確かにちょっとは暖かくなるんだけど、
てへ。
すいすいすいようび~
今日も頑張りましょう!
ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。
今調べたらホッテントリメーカー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を学べばゴールというわけではありません。プログラム言語も次世代へと移りつつあります。業界動向には注視していきましょう。