LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

VM/платформа

  • VM отжирает гору памяти. Nuff said. Причем делает это не объектами, которые нужны, а просто незанятыми областями чтобы сборщику мусора было где разогнаться. Для десктопных приложений это значит что запускать более 1 или 2 java приложений лучше не надо.
  • VM любит оптимизировать код на лету на основе PGO в составе кажется более 100 оптимизаций. Но нафейхоа делать это заново при каждом запуске? Силушки богатырской сделать кеш бинарей не хватило? Или возможно второй запуск будет иметь совершенно другие паттерны работы?
  • Generics через стирание. Пихаешь в список int's и получаешь гору объектов по 16 байт, в идеале рядом в памяти, но не факт. Потом их все периодически пережевывает сборщик мусора.
  • Отсутствие беззнаковых типов. Хочешь беззнаковые 32 бита, юзай 64. Бакланопоцит создателей. Причин вменяемых нет, просто упоролись и все.
  • Гуи фреймворки overengineered и не угадали с концепцией. AWT и SWT в мусорку, апи отвратительное. Swing заставляет делать много телодвижений, нехило жрет память и ненависть к JTable.
  • В 90-е создатели страдали графоманией, манией величия, корпоративизмом и waterfallом, видно в любой технологии типо EJB

Язык

  • Нет лямбд. Добавь их и все приложения станут меньше в 2 раза и чище в 8. Лямбды уже добавили в паскаль, но не в Java
  • Нет traits
  • Генерить getters/setters тупняк, вполне можна было сделать universal access

Хорошие стороны Java перевешивает плохие, но ты спрашивал только поругать.

Исходная версия vertexua, :

VM/платформа

  • VM отжирает гору памяти. Nuff said. Причем делает это не объектами, которые нужны, а просто незанятыми областями чтобы сборщику мусора было где разогнаться. Для десктопных приложений это значит что запускать более 1 или 2 java приложений лучше не надо.
  • VM любит оптимизировать код на лету на основе PGO в составе кажется более 100 оптимизаций. Но нафейхоа делать это заново при каждом запуске? Силушки богатырской сделать кеш бинарей не хватило? Или возможно второй запуск будет иметь совершенно другие паттерны работы
  • Generics через стирание. Пихаешь в список int's и получаешь гору объектов по 16 байт, в идеале рядом в памяти, но не факт. Потом их все периодически пережевывает сборщик мусора.
  • Отсутствие беззнаковых типов. Хочешь беззнаковые 32 бита, юзай 64. Бакланопоцит создателей. Причин вменяемых нет, просто упоролись и все.
  • Гуи фреймворки overengineered и не угадали с концепцией. AWT и SWT в мусорку, апи отвратительное. Swing заставляет делать много телодвижений, нехило жрет память и ненависть к JTable.
  • В 90-е создатели страдали графоманией, манией величия, корпоративизмом и waterfallом, видно в любой технологии типо EJB

Язык

  • Нет лямбд. Добавь их и все приложения станут меньше в 2 раза и чище в 8. Лямбды уже добавили в паскаль, но не в Java
  • Нет traits
  • Генерить getters/setters тупняк, вполне можна было сделать universal access

Хорошие стороны Java перевешивает плохие, но ты спрашивал только поругать.