Функциональность JAVA не позволяет сделать все что хочется или так как хочется, приходится морочить голову. И вся эта классовая структура, мягко говоря, не гениальная идея.
Да, кроссплатформенность. Но кому она нафиг нужна если сложнее кальтулятора нифига написать нельзя.
А про J2ME вообще не говорю.
(Это я утрирую на счет калькулятора, конечно, можно многое написать, но оно будет работать не так как надо + медленно. Даже я смог написать просмотр графиков функций на целочисленных переменных и простой файл-менеджер, но это же изврат?!)
Примеры кривого софта на кривом мультиплатыорменном языке:
WinPower. Работает отлично на "чистой винде" до установки j2ee т.к. при ее установке меняется виртуальная машина явы.
OpenOffice - это к скорости работы.
Для успешной компиляции jimm из исходников нужно изрядно повозиться - это к совместимости вариантов языка и компиляторов.
Весь мобильный софт (версии для Нокий, Самсунгов и Сименсов всегда разные) - к совместимости плаформ
Кто продолжит? мне пока больше ничего не вспоминается.
В данном случае можно было бы обойтись исполняемыми com файлами, откомпилированными с кодами под соответствующий процессор.