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フロントエンドを他の言語で作れるかというと気が遠くなる。