※このブログ記事は、存在しない技術 Advent Calendar 2021の18日目の記事です。
ここ最近の技術屋界隈では、Log4jに関する話題でもちきりですね。 パッチを当てたり、一時的に無効にしたり、などの対策をされていない方は、早急に対応されたほうが良いかと思います。 かくいう私も、(このサーバーではないですが)とあるサーバーでLag4jの無効化を行いました。
さて、Log4jは、御存知の通り、Javaベースのロギングライブラリの1つですが、今回の事件がNHKで取り上げられるなどし、にわかに(非技術者へ対する)Javaの認知度も上がってきています。そこで今回のブログでは、これまで私が扱ってきたJava関係の技術についてまとめておきたいと思います。
Java
1995年にサン・マイクロシステムズ社によってリリースされたプログラミング言語です。C++に似た構文をしており、事前に「.class」形式の中間言語にコンパイルされた後、Java仮想マシンによって実行されます。 また、特徴としては、Java仮想マシンによって実行されるため、基本的にOSに依存しないプログラミングを行うことが可能です。つまり、Windows用、Mac用、Linux用と作り直す必要がなく、容易に移植が可能ということも挙げられます。
ちなみに、私が初めて触ったプログラミング言語はJavaでした。
JavaScript
1995年に登場したプログラミング言語です。WebサイトやWebアプリに利用されているだけでなく、NodeJSなど、サーバーサイドにおいても利用されています。 今見ている、このブログでも利用されており、このリンクを押すと...
varなどのキーワードを利用して変数を宣言できる等の特徴を持ち、オブジェクト指向の言語でもあります。JavaScriptは名前の通り、内部ではJavaが走っており、例えば上のリンクは、以下のようなコードを実行しています。
import java.io.*;
import javascript.*;
public static kasumigaura-work{
public void main(const arg[]){
try{
var output = new PrintStream(new BrowserStream("alert"));
System.setOut(output);
System.out.print("このようにJavaScriptが実行されます。");
output.close();
}catch(Exception e){
console.log(e);
}
}
}
JavaFX
Javaに内蔵されているAPIの1種です。その名の通り、FX取引を行うことを目的として作成されており、それに関わる様々な機能が提供されています。 歴史的には、JavaFXは2007年の5月に発表されました。当時、資金難に陥っていた開発者チームは、有力な資産家に資金援助を求め、資金援助を受ける代わりに、FX投資に関する機能を追加するよう求められたそうです。 これは、世の中にFXを広めたいとする、資産家らの思惑がありました。
近年は、Javaの現在の開発元、Oracleが開発した機械学習ライブラリ「Tribuo」と組み合わせ、取引予測を立ててFXを行うなどの使い方もあるため、トレーダー界隈では有名なプログラミング言語となっています。
Javajava
Java仮想マシン上で動くプログラミング言語の1種です。基本的にはJavaの構文を継承していますが、産業利用向けの汎用言語として開発された、という側面もあるため、Javaにはない独自の構文も利用できます。 この言語の特徴としては、産業利用向け、特に普通洗濯業、リネンサプライ業などの業種に向けた機能が数多く提供されているところにあります。例えば、代表的なJavajavaのサンプルプログラムは以下のようになります。
fun main(args: Array<String>){
val laundry = wash(args)
try{
while(laundry.finished()){
laundry.Javajava()
}
}catch(e: getDriftException){
println(if(e.name=="peach"){"どんぶらこ"}else{e.name+"が流れてきた"})
}
}