Здравствуйте, iZEN, Вы писали:
ZEN>Моё мнение.
ZEN>1. Яву как язык (не платформу) "испортили" в Java 5.0 с появлением обобщённых типов (да, они экономят время написания кода) и аннотаций вместо того, чтобы, например, из String'а сделать мутабельный класс.
Ну следуюя такой логике, я мог бы сказать, что Ява -- она была изначально испорченным C++. Да, она экономит время написания кода (временами
![](/Forum/Images/smile.gif)
), но все это вместо того, чтобы сделать JDK и SWing библиотеками для C++ -- вот тогда бы не пришлось никакие Boost-ы выдумывать
ZEN>2. Включать в ядро поддержку других языков вряд ли стоит, так как усложняется JVM, инфраструктура и средства тестирования/отладки. Кроме того, нужно заботиться об обратной совместимости с унаследованным кодом.
Как раз если не переделывать набор инструкций JVM, то JVM окажется не конкурентоспособной, т.к. для динамических языков будут лишние тормоза при вызове динамически определяемых методов, а для функциональных языков еще какая-нибудь бяка найдется (вроде отсутствия средств поддержки хвостовой рекурсии и пр.).
Тем более, что потеря совместимости на уровне байт кода между старой и новой JVM не так уж страшна. Компиляторы Java могут иметь переключатели, которые будут определять в какой байт-код выполнять трансляцию. А унаследованные и сторонние разработки для которых нет исходников, можно пускать на старой JVM. Или же делать трансляцию одного байт-кода в другой.
ZEN>3. Переработка языка должна вестись в сторону упрощения, а не усложнения семантики. Дополнительные фичи должны обеспечиваться библиотечным кодом. Иначе получится ещё один монстр типа PL/M.
Еще только получится? Может пора уже говорить в прошедшем времени?
![](/Forum/Images/wink.gif)
Как раз нарушение совместимости на уровне исходников при изменении языка гораздо более серьезный шаг, чем нарушение совместимости на уровне байт-кода. Так что основные промахи языка так в Java и остануться. Надежда есть только на новые языки на платформе JVM, вроде Scala или Nice.