質問: 画像を扱う場合、CとJAVAではどちらがおすすめでしょうか?
回答: 私はCを薦めますね。 Javaはその仕様上、画像データをRAWデータとして完全オンメモリで扱う必要があるためです。 100KBのjpeg画像であっても、内部ではraw展開されて数十MBのメモリを消費するということがありえる、ということになりますが、Javaはメモリ管理をユーザー側でできないため、開いてみるまでどのくらいメモリを消費するかわかりません。 小さな画像をちまちま弄るならJavaで十分ですが、最近の高画質、高解像度データを扱おうとすると、使用されるメモリが見積もれない、というのは結構大変だったりします。 Javaで画像処理をまともにやっている技術者ならOutOfMemory食らった経験が一度はあるでしょう。 ※大抵はXmxオプションの指定が甘いせいだったりしますが。 Cの場合はライブラリにもよりますが、メモリが少ない頃からの歴史の積み重ねにより、逐次読み込みやブロック読み込みなど、省エネで高速展開できる仕組みが豊富です。 実行速度に関しては、メモリを気にしないなら現在のJavaとCでは大した差はありません。 若干Cのほうが速い、程度です。