LoginSignup
39
21

More than 1 year has passed since last update.

他の言語がJavaにかなわない唯一のポイント

Last updated at Posted at 2021-07-10

JDBCドライバという存在は破壊的だった。

JDBCの登場まではODBCやADOなどWindows縛りの接続環境が楽ちんインストールの接続ライブラリだったけど、JDBCの登場で環境依存が極小化された形でDBにつながる。

例えばRubyでmysqlの接続ライブラリをインストールすると、libmysqlclientのCのライブラリにバインドされる。Rubyも結局はC。phpもC。Cである以上はライブラリのインストールに何かしらのCのコンパイラが呼び出されて、makeやらが動く。ここWindowsはめっぽう弱いところ。MacでもXcodeのバージョンアップで挙動が変わったりする。いろいろ言語は進化したのに、ライブラリをインストールする段階になると、私達はCのコンパイルのエラーメッセージを眺めている。(Pythonに至ってはFortranのコンパイルが動いてる)

DBMSを提供している側はCのライブラリを提供するだけで、各言語がラッパーライブラリを作ってくれるというのはある意味いいエコシステムができてると言える。ただ、各スクリプト言語がCのラッパーでしかないという点に依存している。

一方でJava。JDBCはファイルコピーで動いちゃう。この点はダントツで強力。本来ならJVMという仮想マシンありきでのポータビリティーなのだけど、Javaという言語レイヤー込で規格を作りきったという点も強い。

その強さをどこで痛感するかというと、DBeaverやmetabaseなどの、Javaで作られたデータベースフロントエンドが「JDBCドライバがあればいろんなデータベースに繋がりますよ」というスタンス。製品レベルでDB個別に頑張る箇所が極小。

DBeaverみたいなDBMSフロントエンドを他の言語で作れるかというと気が遠くなる。

39
21
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
21