「ジェネリクス」を含む日記 RSS

はてなキーワード: ジェネリクスとは

2018-10-02

あるがままを愛せばいいのに

Goジェネリクスがないとか,正直どうでもいいだろ.

おまえは愛してる女のおっぱい小さいからといって,

おっぱいを大きくする拡張必要ですね!

おっぱい大きくないなんて考えられない!

とか言わんやろ.

2018-09-19

anond:20180919015322

そもそもオブジェクト指向のものが40年以上前技術だろが。

生物が単純な細胞の組み合わせと相互作用で複雑なシステム構成するモデルに習って、単純なオブジェクトメッセージパッシングの組み合わせでプログラム表現する事で、プログラムを完結する小さなオブジェクトという単位に分割し、管理困難な複雑さに対処する事がオブジェクト指向本質だろ。

構造化との違いはデータ構造管理単位に含めた事で、これによって複雑な状態管理オブジェクトの中に閉じ込め、インターフェースだけ意識すれば良くなった点。

本質理解していればオブジェクト指向プログラム作るのにオブジェクト指向言語とか必要ない。ジェネリクスとかそもそもオブジェクト指向関係ないし、後付けのいろんな用語に騙されて本質を見失うなよ。

日本語オブジェクト指向が相性良いと言われてたのは日本語語順オブジェクトメソッドというプログラム上での表現に似ているから、日本語話者にはすんなり理解やすいよねって点。

anond:20180919005202

納得以前にオカルトじゃろ。

10年位前の知識ベースに話されても、それで今通用しないって増田はわかるじゃろ。

継承」を日本語文章説明してみ?「インターフェース」を。「ジェネリクス」を。「オーバーライド」は?

文章には出来ると思うが、出来上がった文章コンピュータオタクのソレにしかならんやろ。

しまともに読み物として成立できる説明が出来るんなら、日本プログラミング教育は今頃世界トップを走ってる筈だぞ。

[]2018年9月18日火曜日増田

時間記事文字数文字数平均文字数中央値
006810007147.252.5
017411677157.868.5
02658255127.035
031092892.851
0481023127.9100.5
0571650235.7132
061179071.844
07277501277.837
08283948141.045
09658887136.740
108510708126.049
1192883296.032.5
127614348188.854
1398874689.250
141271176992.737
15103806078.346
169410540112.144
179711267116.247
188411220133.648.5
198911521129.449
2012715857124.947
21787808100.147.5
228715049173.062
239919630198.365
1日1699220021129.548

頻出名詞 ()内の数字単語が含まれ記事

人(195), 自分(163), 今(100), 話(94), 増田(88), 仕事(66), 前(65), 子供(64), 日本(62), 人間(62), 問題(60), 相手(54), 好き(49), 気(48), あと(47), 必要(45), 普通(45), 会社(44), 関係(43), 気持ち(43), 場合(40), 男(39), 手(39), ネット(39), 最近(37), 女(37), 社会(36), 感じ(35), 親(34), 日本語(33), 女性(33), オタク(32), 世界(32), 頭(32), 結局(31), 今日(31), 意味(31), 人生(31), 時間(30), 金(30), 昔(30), 安倍(30), しない(28), 目(27), 毎日(27), 他人(27), 顔(27), 最初(27), 嫌(26), 言葉(26), 説明(26), 他(26), 存在(26), 理解(26), 価値(26), 英語(26), 理由(26), 可能性(25), 結果(25), 現実(25), 原因(25), 別(25), 日本人(24), 幸せ(24), 友達(24), 全部(24), 確か(24), 時代(24), 逆(24), ダメ(24), 時点(23), 一人(23), 自体(23), 一番(23), アニメ(23), レベル(23), 一つ(23), エロ(23), 完全(23), 家(23), 誰か(23), 個人(22), ー(22), 内容(22), 絶対(22), 表現(22), 自由(22), 無理(22), 結婚(22), 生活(22), じゃなくて(22), 判断(21), 発言(21), 職場(21), 興味(21), 口(21), 批判(21), 努力(20), 話題(20), 人たち(20), 女の子(20)

頻出固有名詞 ()内の数字単語が含まれ記事

増田(88), 日本(62), 安倍(30), 可能性(25), じゃなくて(22), 養育費(17), 石破(15), アメリカ(15), ラノベ(14), 元増田(13), スマホ(13), わからん(13), 何度(13), ネトウヨ(13), 表現自由(12), OK(12), いない(12), 表現規制(11), エロ漫画(11), なのか(11), マジで(11), 自民党(11), なんだろう(11), AI(10), 個人的(10), ブログ(10), 外国人(10), 中国(10), いいね(10), 普通に(10), 毎日(9), 罵詈雑言(9), モテ(9), トラバ(9), 数年(9), ツイッター(9), コスパ(9), キモ(8), エロゲ(8), ゾーニング(8), フェミ(8), 女性専用車両(8), リアル(8), 人間関係(8), ブコメ(8), w(8), はてブ(8), Twitter(8), SNS(8), 10年(8), 基本的(8), 2018年(8), BL(8), ヤバい(8), ???(7), である(7), Apple(7), ぶっちゃけ(7), なっちゃった(7), …。(7), 団塊世代(7), 下方婚(7), 20年(7), ジェネリクス(7), 安楽死(7), ガンダム(7), 東京(7), iPhone(7), LGBT(6), PC(6), 自己責任(6), 真逆(6), 一緒に(6), コロンブス(6), イケメン(6), ワイ(6), 経済的(6), ネット上(6), 欧米(6), 女子高生(5), 緊急事態条項(5), 自分たち(5), 価値観(5), 慰謝料(5), gt(5), ナチス(5), にも(5), A(5), 18禁(5), いいんじゃない(5), 帰国子女(5), 何回(5), 目的地(5), 社会的(5), ヴィーガン(5), 最終的(5), ロードムービー(5), 自分自身(5), キツ(5), 1980年代(5), 韓国(5), キモい(5), ポリコレ(5), 差別主義(5), 好きな人(5)

投稿警察もどき日中に再投稿された本文の先頭20文字 ()内の数字投稿された回数

https://jsfiddle.n(3), とネットに書いてどうすんだ? (3), 確かに俺は年収800万の貧乏だわ・・(3), それな (2)

頻出トラックバック先(簡易)

会社臭いと言われるのだがどうしていいかからない /20180918135609(40), ■日本語ってすごくコスパが悪い言語だと思う /20180917202443(21), ■女だけど親権押し付け離婚して、それから /20180918120625(18), ■敬老の日なので、長生きについて考えて欲しい /20180917203123(13), ■本当に表現規制って厳しくなってるの? /20180918194029(11), ■そば香りって本当にあるの? /20180918110338(11), ■子どもを生むというエゴ /20180918114817(9), ■テンションが上がる差し入れって何? /20180917203615(8), ■親友と縁を切ろうと思ってる /20180918114257(8), ■貧乏人の家は不潔だ /20180918160825(8), ■他人の喘ぎ声に困っている /20180918172057(7), ■コロンブスの卵って /20180918132104(6), ■三大「時代の変化に伴ってアニメで描けなくなったもの」 /20180917210222(6), ■スーパーカミオカンデの中に /20180918103943(5), ■anond20180918010434 /20180918135608(5), ■小児性愛ロリコン)だけど辛さを分かってほしい /20180918172436(5), ■自分いじめてた人がお笑い芸人になってた /20180918012627(5), ■君たちが差別に反対することを拒否するのなら /20180918194520(4), ■メスガキ /20180918161546(4), ■明坂さんのRoselia卒業美談にしないでほしい /20180918112604(4), ■エロ雑誌は誰が読んでいるのか /20180918220704(4), ■医学生とは /20180918014126(4), ■貧困が呼ぶ声 /20180918195136(4), ■チップとデールって何が出るの? /20180918122442(4), ■anond20180918132252 /20180918132450(4), ■来世が怖い /20180918125216(4), ■男女別れて生きよう 選ばれた者だけが繁栄のため子供を作ろう /20180918124629(4), ■モテない /20180918145503(4), ■エレベーターで左側を歩く人 /20180917192759(4)

増田合計ブックマーク数 ()内の数字は1日の増減

5623978(3133)

2018-09-18

anond:20180918114626

動的型付けなんだから何型でも自由に返せばいいじゃん

事前に型情報渡すのも自由にやればいいじゃん

ジェネリクス必要なのは「型チェックを有効にしつつ、型をパラメータ化したい」でしょ?

チェック無しなら動的型付なんだから自由にやればいいじゃん

anond:20180918114341

これはジェネリクスじゃなきゃ到達不可。

<T>を指定したときに<T>を返すようにしてくれるコードは、静的型制約でももちろん書けるけれどもそれこそ DollerMoney getDollerMoney() みたいに大量のメソッドが並ぶことになる。

anond:20180918114248

からそれジェネリクス以前に静的型付け使いたいって話でしょって

anond:20180918113635

から、それ、オブジェクトrateを持ってればいいだけでしょ?

ジェネリクスいらないじゃん

anond:20180918111557

よくわからんので例を示してくれ

ジェネリクス以前に静的型付したいということではなく?

Rubyってジェネリクスとか無いの?

意外と低機能なんだな…

2018-02-22

Go言語、正直ジェネリクスはなくてもいいから代わりにlistをプリミティヴで提供して欲しい・・・

2017-09-22

あれってジェネリクスの話じゃなくて福祉の話だよなぁ

自分医者ではないし、そうであっても診察もしていないのに診断を下すことはできないけども、golangのあれ、本人は本気で不快にさせるつもりはないというのだから、害意が本当にないならもうあれだよね。健常者が読んだら不快にさせてしま文書を書けるということで、まあ、あれ。

ダイバーシティ云々するなら、健常者はそれをくみ取って接しなければならないよ。大変かもしれないけど。繰り返しだけど、これは福祉の話だ。Scala使っとけ、で終わらせてしまったら、車椅子ユーザは家から出るなっていうのと同じになってしま・・・

2017-09-20

Golangジェネリクスがない件

Golangジェネリクスあったほうが便利だと思うんだけど、"ないほうがいい"っていうひとも多いよね。"なくても十分便利だよ"ならわかるけど"ないほうがいい"はちょっと視野が狭いんじゃないの」という意見に対して「ジェネリクスないって文句言ってるひとはあなたの好きな最高の言語で黙ってコードかけハゲ」みたいな反応とか「なくてもGolang十分便利ですし」みたいな反応がたくさんあって噛み合ってないまま喧嘩しててなんなんだおまえら!!!

ただ「ジェネリクスないのあったほうがいいよね」って言ってるひとの表現結構攻撃的だから反発しちゃう気持ちもわかる。でもかみあってないまま喧嘩するな!おまえらなかよくしろ!!!!!!!!1

2016-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

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を腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

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は今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

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は使うべきではありません。

Microsoft 離反

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 EE

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のシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を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の思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

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を学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2015-02-09

http://anond.hatelabo.jp/20150209095644

すまんのぉ

俺そこまで詳しくないから

ジェネリクスって聞こえて

変換したらそのまま出たから使ったんだわ

ジェネリックって言ってたのな

から気をつけるわ

http://anond.hatelabo.jp/20150209094414

ジェネリクス?作り話しするなら用語調べてからやればいいのに

どうせ暇なんだから

調剤薬局にて

薬剤師

ジェネリクスでいいですか?同じ成分で安いですよ

健康保険のぼく

じゃあジェネリクスでいいです


隣の薬剤師

負担無いですが、先進医薬かジェネリクスかどうされますか?

隣の居たナマポ

生活保護って馬鹿にしとるのか?ジェネリクスなんか使える訳無いだろ

何故なのか。。。。

2013-08-02

インターフェースとかちゃんと設計すれば必要ない。複雑にするだけ。

上司言葉

インターフェースとかそんなものをちゃんと設計を考えれば必要ない。複雑にするだけ。

リファクタリング必要を説明したところ…)バグでもないのに動いているシステムソースを書き換える?ふざけるな

Javaジェネリクスを見て)なんだこれは、ちょっとからいから説明して……ふむふむ、わかりにくいか配列しろ

DB正規化DBの使っていないテーブルの洗い出しという意味で使用)

UMLクラス図(フローチャートのこと)

Javaの最新は6(2013年言葉

JavaScript?あんな簡易言語なんて使えるのか?

(昨今のStruts脆弱性ニュースを聞き)よし!攻撃をされていないかチェックだ!ここのページ(なんかのニュース)を参考にして調査報告をしてくれ(Strutsは使っておりません)

役員言葉

昔ながらの静的でApacheのみで動く会社サイトについて)なんか簡単でいいからさ。資料問い合わせフォームみたいなのを作ってさ、メールが営業に飛ぶようにしてさ、そして問い合わせした会社データをためておい統計みたいなのをだしたいんだけど。

ほんと簡単なものでいいからさ。デザインとかは気にしないからさ。簡単なエクセルみたいなので出せるくらいでいいからさ。一週間くらいでできるかな

2009-10-15

Javaが好きになれない10の理由

  1. メモリ管理がほぼVM任せ
  2. デストラクタが無い
  3. テンプレートが無い
  4. プリミティブ型とか参照型とか混乱の元
  5. friendが無い
    • friendが無いと最高位の蜜結合単位が無くなってしまう
    • 机上の単位PGでの表現単位は必ずしも1-1対応である必要は無いはず
  6. mainもclass内部
  7. キャスト構文がわかりづらい
    • Cも同じく
    • でも、C++のはちと面倒……もっと略せなかったのだろうか
  8. ファイル名とclass名、パッケージ階層ディレクトリ階層の関係マジウザイ
  9. 拡張for文は素直にforeachで良かったと思う
    • C++も同じく
  10. 何より、素直にアップデートするとJRE増殖するのが酷すぎる
 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん