読者です 読者をやめる 読者になる 読者になる

Javaとラムダ

使えるようになったら、規約で禁止系のネタとかがありますが。


しかし、Guavaが普通に使われているんだから、ラムダが使えるようになったところで、よくネタにあるような変な話は起こらないと思っているぉ(・ω・)
規約的な話とかは、LINQの時は「宣言的に書けるので○」で済んじゃったけどな(・ω・)


まあ、Javaでラムダが普通に使われる未来を作るには、R#さんが「そこはLINQで書けるよね?」っと言うかが如く、IDEや静的テストツールがサジェストもとい警告を出しまくるようになれば、そういう世界になるかもかも(・∀・)?
PMDやCheckStyleさんが「そこはラムダ使えんぞゴルァ」と警告してくれるようになれば、その部分のレビューはJenkinsさん任せにできるし(・ω・)


個人的に、8への移行の最大障壁になると思うのは、実はそのあたりというか、静的テストツール等のエコシステムが、Java 8構文へなかなか対応しない状況が続くのではないかというあたりだったりもして(・ω・;)
その問題がクリアされれば、8構文の導入にGoを出すし、逆にラムダを使っていなかったらレビューで指摘も飛びますが。(Jenkinsさんに任せだけど)


しかし、これでやっとJavaしかやっていない人も、C#Javaの両方をやっている人がJavaを書くときの苦痛を理解できるようになる(・∀・;)?
.NETもJavaもやっている人の多くは、StreamはLINQの(以下略)、JavaFXWPFの(以下略)、JSFASP.NET Web Formasの(卑語削除)くらいにしか思っていないという現実(´・ω・`)


.NETとか、使える言語ではロジックを書くときにラムダを使うのは普通になってきていると思うのよ。
あるプロジェクトのロジック層における「=>」の出現率(非ドメイン層を含まないドメイン層の中だけの数値)はNCSS:3376に対して360で、約11%、今時だとまあこんなもんかしら(・ω・)?
もにゃど(。・ω・。)ニャーンとかを意識したコードはまだそれほどでも無い感があるので、それが入ってくるともう少し数値はあがる気もしますが。


ちなみに、ラムダというかLINQ(LINQ to Objects)さんとかが活躍するのは、コアドメイン層のロジックの他に、データストアモデルの構造からレゼンテーション用に変換するプレゼンテーションモデルのあたりとか(・ω・)
プレゼンテーションモデルについても、ぶつぶつつぶやいている気がするので、それもそのうち再録するる。