Re[4]: Впечатления разработчика JRuby о Lang.NET 2008
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.01.08 14:53
Оценка: 1 (1) +4 :)
Здравствуйте, iZEN, Вы писали:

ZEN>Моё мнение.


ZEN>1. Яву как язык (не платформу) "испортили" в Java 5.0 с появлением обобщённых типов (да, они экономят время написания кода) и аннотаций вместо того, чтобы, например, из String'а сделать мутабельный класс.


Ну следуюя такой логике, я мог бы сказать, что Ява -- она была изначально испорченным C++. Да, она экономит время написания кода (временами ), но все это вместо того, чтобы сделать JDK и SWing библиотеками для C++ -- вот тогда бы не пришлось никакие Boost-ы выдумывать

ZEN>2. Включать в ядро поддержку других языков вряд ли стоит, так как усложняется JVM, инфраструктура и средства тестирования/отладки. Кроме того, нужно заботиться об обратной совместимости с унаследованным кодом.


Как раз если не переделывать набор инструкций JVM, то JVM окажется не конкурентоспособной, т.к. для динамических языков будут лишние тормоза при вызове динамически определяемых методов, а для функциональных языков еще какая-нибудь бяка найдется (вроде отсутствия средств поддержки хвостовой рекурсии и пр.).

Тем более, что потеря совместимости на уровне байт кода между старой и новой JVM не так уж страшна. Компиляторы Java могут иметь переключатели, которые будут определять в какой байт-код выполнять трансляцию. А унаследованные и сторонние разработки для которых нет исходников, можно пускать на старой JVM. Или же делать трансляцию одного байт-кода в другой.

ZEN>3. Переработка языка должна вестись в сторону упрощения, а не усложнения семантики. Дополнительные фичи должны обеспечиваться библиотечным кодом. Иначе получится ещё один монстр типа PL/M.


Еще только получится? Может пора уже говорить в прошедшем времени?
Как раз нарушение совместимости на уровне исходников при изменении языка гораздо более серьезный шаг, чем нарушение совместимости на уровне байт-кода. Так что основные промахи языка так в Java и остануться. Надежда есть только на новые языки на платформе JVM, вроде Scala или Nice.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.