[Maven] [James] [javamail] [Java (Blog)] [Tomcat (Blog)]
[ABNF] [JSON] [TomcatとRaspberryPiとLet's Encrypt]
JDKとかNetBeans IDEとか各種
SoftLib(BASE64、Packet、etc)、ABNF (解説)、JSON (解説) 、暗号(速いAES,DES)などのライブラリをGitHubにて公開してみた。
BASE64は昔公開したものが各所に分散していたので回収して改良版。PASS、URLエンコードにも対応してみてちょっと速い。
ABNFはRFCで使われている書式的なもの。解釈順序でまだ少し癖ありだがほぼそのまま書けるので便利すぎる。
ABNFの応用で書いたJSONはJavaオブジェクト、配列、CollectionなどとJSONの変換が便利。javax.jsonと互換ではない。
Packetは無くなったりいろいろしたので3世代目を作成。前と後ろからデータの読み書きができるFIFOとかFILOとかSTACKとかそんな感じのもの。パケット的なものが作りやすいかと思ってそういう名前。ABNFなど各所でよく使う。
BitStreamっぽいものも作ってみたり。圧縮には成功した。
PKI関係もつついてみたが、ASN.1はごっちゃりすぎて公開に至らず。
Java言語のにゅうもんはどこからはじめればいいのか、といろいろ考えてみるとオブジェクト指向までのプログラムの基礎、Java言語の文法、ライブラリ各種、というような順番になるのかもしれない。最終的に作りたいものがあればそちらへ舵を切りながら使ってみると上達も早いかもしれない。
開発ツール的なものは、コンパイル方法、統合開発環境、ビルドツール、バージョン管理などといろいろある。
について知っておくのがおすすめNetBeansの他にはIntelliJ IDEA(JetBrains)、Eclipseなどもある。Mavenの一つ前にはApache Antなどもあり、Gitの前はSvnやCVS?なんかもあったかもしれない。MavenもGitもNetBeansに入っている。
Android系の開発にはGoogleが開発しているAndroid StudioというIntelliJ IDEA系のツールもあるのでそちらを試すならJetBrainsのIntelliJなどからでもいい。Eclipseはどうなってしまったのか?
Javaは昔々SunMicrosystemsが開発したオブジェクト指向言語。C++が機種依存APIなどで困り果てていたので動作を統一してみたりしたもののようだ。その昔Netscapeに搭載されブラウザで動くアプリとして認識されているが、アプリでもサーバ方面でも使えるのでサーバ界隈(Java EE)の方が普及している。今はSunをOracleが買収してOracleの管理下。JavaScriptとは別の言語。
Java SE 8以降の運用、サポートが有償化され、無償版としてOpenJDKが継続利用可能。その他Amazonなどが無償JDKの公開をしている。
JREとAppletが廃止されてしまった。
Java EEの開発はOracleからEclipse Project下に移り、Jakarta EEという名称で継続される。Java SE内に含まれていたJava EEライブラリも削除されていく予定。
開発環境はIntelliJ IDEAが普及、NetBeans IDEもApacheで開発が続いている。
Androidのアプリ開発でもJavaのようななにかが使われていて、現状の開発環境はIntelliJ IDEAを拡張したAndroid Studioが主流なようだ。Javaの他Kotrinかなにかも使える。
Jakarta EE、Eclipse EE4J、Eclipse GlassFish、それぞれどう違うのか
Jakarta EEはJava EEの継承となる名称。
Eclipse Enterprise for Java(EE4J)はJava EEからの移行プロジェクトの限定名称?
Eclipse GlassFishはSun、Oracleから引き継いだ実行環境。
ということでいいのかな。EE4Jは限定なので忘れよう。JakartaといえばTomcatのようなものが詰まったApacheのプロジェクトだったような。
Jakarta EE 8はJava SE 8の上で動く前提。
パッケージ名はjavax.*を継続利用できないので(変更が不可)、旧機能、新機能どちらもjakarta.*に移行されるという話。