* はじめに [#p1b1293a] やったー、とうとう、Javaもヒアドキュメント使えるようになったんだってね。 えっ3カ月たってたの 最近、知ったので、寝る前に、しらべてみるとします。わくわく。寝る前に、しらべてみるか。 以下、独断と偏見と眠たい頭で、書いた文章が続きます。ご注意を! * ダウンロード元 [#g6c98748] ** Liberica JDK 13 [#pfcd6f15] Java11は、AWSのCorrettoが、いいとおもうけど、安定板しか、対応してないみたい。 しらべてみると、いまのJavaって、Linuxのディストリビューションがたくさんあるみたいな感じになってきているみたい。 で、いま、がんばっている、Javaは、Liberica JDK 13みたい。 https://bell-sw.com/ 特徴は、オラクルより、サポート期間が長い。 オラクルの、ライセンス縛りは、商売上手というか、 自分は、いやな感じをしてたけど、リベリカは、優しい感じがするなぁ。 なにが、いやかというと、新しいJava言語で、なにか、儲けてから、ライセンスのとか請求されるのなら、払えるけど、 練習するだけとかで、お金を取ろうとすると、新規参入者が減って、言語が廃れる流れになるとおもうの マイクロソフトと、アップルだって、アップルは開発環境XCodeを無償で提供したから、アプリがたくさん増えて、便利になって、覇者になったと自分は、おもっているの。 応援しよう。 リベリカも、自分のところのJavaで作ったアプリを販売するサイトを作るビジネスモデルにしたら、世界とれるとおもうんだけどなぁ。 ** オラクルから [#dd7dee61] ライセンスよくわからんけど、ここからダウンロードできるみたい。調べる気もおきない。どうせ、ひどい縛りなんでしょ。はいはい。みたいな感じになってる。 https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html * Javaのすごいところ [#c1327d51] Javaが優れているのは、言語自体ではなく、クラスをすべて構文解析済みで管理手している開発環境が神だからで、クラスをちゃんとオブジェクト指向でつくってあれば、ビジネスの概念と、オブジェクトに紐づけることができ、クラス数が1万を超えるソフトでも、開発環境の力をかりて、不具合なく管理できる点にあります。 各ライブラリのバージョンとの不整合も少ないです。 いま、仕事で、RubyとかGoとかさわらさせていただいておりますが、巨大なシステムであれば、あるほど、Javaの構文を完璧に構文解析して管理している開発環境のメリットを感じずにはいられません。 * IDEが管理しやすいと何が、いいのか [#ee5ecd37] 一括リファクタリング機能である。レベルの低いSEは、メンテナンスを考えずに、変数に、一文字のアルファベットを、短いコーディング俺スゲーとかおもって使いがちだが、ほかのひとからみたら、なんの意味?と、なっている場合が多い。だいたい、炎上しているプロジェクトは、そういう「オレオレ」プロジェクトで、メインの人が抜けてだれも、サポートできなくなってしまったというケースが少なくはない。でも、Javaだったら、変数を意味あるものに、置き換えるのが、プロジェクトに規模に関係なく、非常に簡単に行えるわけだ。 そのためには、単体テストが、自動化されていなくてはならない。 単体テストするには、DIの仕組みを使った設計にしなくてはめんどくさい。 というわけで、SpringBoot開発環境のSTSで、管理されたプロジェクトは、大規模開発に向いているわけなのだ。 *** STSインストール [#u4c19a86] というわけで、インストールしてっと。。。 ああ、そろそろねむくなってきたから、きょうは、このへんにしておこう。 おやすみなさい。 おはよう、続きです。 STSは、ZIPでダウンロードしたけど、解凍するとき、windows標準のZIP解凍と、lplsでの解凍は、2つファイル解凍に失敗した。 パス長 260 文字制限により正常動作しないとか、なんだろうか。7-zipで解凍した。 おもうんだが、マイクロソフトは、7-zipのライセンス買って、デフォルトにすべき。 こんなん、OSレベルでサポートすべきものでは?と思う。解凍スピードも、10倍ぐらいは、早い感じがしたぞ。早くて、エラーが起きない。神ですな。 * gradle [#xbe3820f] Javaのいいところは、依存ライブライの解決ツールがあるというところだと思う。 RubyのプロジェクトとかGoとかは、バージョンアップ時に、依存ライブラりが、最新にすると、バグっていて。。。パッチをあてるとか、をやるはめになるケースが多い。 Rubyや、Goは、最初のスタートダッシュはいいかもしれないけれど、メンテナンスには、向いていない。 でも、Mavenは、しっかりいい仕事してくれる。で、その後継のGradleは、Mavenのお堅い、XMLが、スクリプト言語化されたイメージだな、自分はそう感じている。 ** gradleをインストール [#vf58bd5c] SDKMAN、macでいうところのbrewみたいなもの。 *** STSでJava13をつかいたいよう [#q730f3fa] あれ、まだ、STSってば、ギリギリ対応してないの? しらべてみたところ、Eclipse4.14から、Java13に対応していて、いま(2019/12/20)のSTSは、Eclipse4.13ベース。。。 うぉーーー、ちょっとフライングしちまったぁ。。。 ** しょうがないJava13はあきらめて、Java12やるか [#zb6be4b0] そういえば、Java12さわってなかった、きっと、神様が、Java12も、いいんじゃよ、 といっているに違いない。 ** STS スタータプロジェクト [#k2d5e088] プロジェクトを作るときにスタータプロジェクトってあるよ。なんだろう。 いろいろなプロジェクトのひな形集。例えば、Amazon使う場合、とか、結構細かくあるみたい。 自分は、とりあえず、いま、ストリームを扱うのに興味があるので、kafkaと、kafka-streamを選択してやってみることにしよう。どうなるの?、わくわく。