Давайте посмотрим, что вы понимаете под модульностью.
В Яве есть модульность (и даже не одна) просто она "специфична".
1. Модулем можно считать класс, но это не совсем верно (точнее совсем не верно), но допустимо.
2. "Настоящие модули" по заверениям Оракла будут в 9 версии (этим летом).
3. Модули джавы представляют собой пакеты OSGi.
Нет возможности создать объект не унаследовав его - не совсем понимаю, что вы здесь имеете ввиду.
Да, все объекты наследуются от Object по-умолчанию, но это сделано для упрощения манипуляций с памятью.
Такая "специфическая" реализация дескриптора объекта для управления памятью.
Зависимость явы только от виртуальной машины, которых уже существует около десятка.
Повторить, конечно, можно, только вопрос - зачем?
Статья про критику джавы несколько устарела
(лет на 5 точно):
* Тип параметра, действительно, не доступен в среде выполнения "из коробки", но есть приёмы, позволяющие обойти это. Кроме того, это сделано намеренно, чтобы программисты использовали шаблон проектирования "визитёр" в место дорогостоящей (медленной) операции сравнения типов.
Код:
class A extends X {
...
void do() {...}
...
}
class B extends X {
...
void do() {...}
...
}
void foo(List<X> list) {
for (x in list) {
x.do(); // для объектов A вызовется (A)x.do, для B - (B)x.do()
}
}
* Что касается знаковых/беззнаковых целочисельных типов, то в Java есть byte и char.
И когда я пишу программу я точно знаю размерность short, int, long, в отличии от Оберона.
У меня нет опасений, что при выполнении на процессоре меньшей разрядности может произойти переполнение,
потому что у меня integer с плавающей размерностью: на одной машине 64 бита, а на другой машине 8 бит.
* Производительность работы джава программ лишь незначительно уступает С++,
а производительность разработки под Java превосходит значительно. Именно по этому Java завоевала рынок.
* Джаву нельзя запустить в браузере. Оракл а за ним и разработчики браузеров отказались от JavaApplets,
ещё раньше чем от Flash. Поддержку которого Мозила прекратит этой весной. Вместо этого рекомендовано использовать
Java Web Start.
* Инсталлятор Java устанавливает в Виндовс сервис обновлений, который регулярно проверяет выход обновлений и предлагает пользователю скачать и установить обновления.