Как стать автором
Обновить

Комментарии 8

Мнение: главная проблема Java в том, что язык* пишется на C++. То есть чтобы хотеть что-то новое и полезное привнести в него, нужно быть экспертом в другом языке. Из-за этого коммьюнити джавистов может только опосредованным образом участвовать в развитии языка.

\* Строго говоря не сам язык, а основная реализация - HotSpot JVM.

Не соглашусь.

  1. Java написана на C.

  2. Никогда не слышал, что бы проблема была в этом. Вносится много всего хорошего и нового. И если где-то что-то выходит долго, то это не из-за "незнания С", а из-за обратной совместимости и прочих стратегических инициатив. Писать код в данном случае не самое сложное.

  3. C#, JavaScript, Python, ... - они все не сами на себе написаны. И нет у них с этим проблем. И при этом новые модные фичи присутствуют. Но в ЖаваСрипте куча мусора, а в двух других обратная совместимость далека от уровня Джавы. Вот и причина, почему в Джаве фичи появляются позже.

Брайан об этом всем говорил очень много раз. Все в интернете есть.

C# практически полностью написан сам на себе: его фротенд Roslyn - полностью, его бекенд runtime - на 80%.

Подчеркну - это мнение, интересно именно пообсуждать эту тему, покрутить с разных точек зрения. Касаемо пунктов:

  1. Раскройте плз, что именно тут имеется в виду.

  2. Обратная совместимость присутствует как сдерживающий фактор в развитии большинства языков, ситуация плюс-минус одинаковая. Забегая вперед насчет слабой обратной совместимости - почему у C# и Python она не такая, как у Java? У шарпа вроде вообще безупречная репутация, а пайтон "прославился" переходом между мажорными версиями, когда совместимость и не гарантируется строго говоря.

  3. C# как справедливо заметил @KvanTTT во многом на C#, Go с версии 1.5 (как давно это было!) написан на Go, у Python'истов есть PyPy (строго говоря там не совсем пайтон, но на чем поиграться). Языки сильно набрали в скорости в этот момент, когда у адептов языка появилась возможность на нем же улучшить компилятор или стандартную библиотеку.

Язык Java это не только его синтаксис, а ещё виртуальная машина, делающая очень много вещей. То что JVM пишется на C++ это нормально, ведь на прямую работать с железом и поддерживать различные ОС требуется низкоуровневый язык. Синтаксис от этого никак не ограничивается, возьми тот же Kotlin или Scala. Крупные компании вообще могут иметь свой собственный JVM.

На языке Java написано очень много либ, фреймворков, систем. Когда вносятся какие-то улучшения в язык, то они должны не только удовлетворять потребности, но и чтобы при миграции на новую версию языка не возникало проблем, тут скорее идёт речь больше про патчи безопасности, то есть был сервис написанный на Java 7, а поддержка языка закончилась и патчи больше не выпускаются, поэтому компании нужно перейти на новую версию языка и чтобы в процессе когда они просто повысили версию языка ничего не сломалось, разрабы openjdk заботятся об этом и предоставляют максимально как могут обратную совместимость, чтобы при повышении версии не пришлось нигде переписывать код.

Ну не знаю, когда со спринг бута 2 на 3 переходишь много что ломается)

Интересно, почему они просто не запретили public constructors в value-классах. Это ж вывих мозга будет:

assert new Value(…) != new Value(…); // false

И это после .NET Core 7+ ?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий