Закрытие BGGA как надёжное решение для Java?

Вчера @headius / Чарльз Наттер придумал в твиттере очень интересную идею:

@danny_l Gafter made the same mistake; I don't mean a forked Java any more than Groovy is a fork. I want a "mostly Java" with closures.

или ответ @danny_l / Дэнни Лагроу:

@headius or could the BGGA prototype be "bolted on" any future version of Java? That might be useful

Это действительно то, что я тоже хотел бы видеть. Разве мы не можем иметь какой-то препроцессор байт-кода, чтобы прототип BGGA работал в любой современной версии Java? Я имею в виду, что scala, Groovy и JRuby имеют замыкания и выдают действительный байт-код!

Я бы даже хотел помочь и приложить усилия. Хотя толком не знаю, с чего начать.

(выше - отрывок из Сообщение блога, который я написал по этой теме)

Что другие думают об этой идее?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
628
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема с закреплением этих вещей в том, что вы создаете фрагментированный язык.

Язык java - это наименьшая часть того, что делает java, java. Библиотеки и культура составляют большую часть. Закрепление замыканий и универсальных шаблонов на болтах означает, что они либо не могут использоваться в базовых библиотеках, либо для базовых библиотек потребуется, чтобы они присутствовали в используемом SDK. В лучшем случае это приведет к фрагментации внутри библиотек (поскольку некоторые разработчики работают с ядром, а некоторые требуют крепления на болтах), а в худшем случае будет означать, что мы начнем иметь `` дистрибутивы '' java в поместье java, каждый из которых будет содержать другой набор банок и «болтов».

Я бы сказал, что это начало скользкой дороги, от которой я бы предпочел держаться подальше.

Ответ принят как подходящий

Слово «препроцессор» возвращает меня к C++ и пугает.

Существует странная дихотомия: я приветствую разнообразие языков в JVM, но я думаю, что «Mama Bear» (он же Java) не должен становиться таким фрагментированным. Нам нужен прочный фундамент.

Тем не менее, я поддерживаю закрытие BGGA. Я также считаю, что язык должен обеспечивать все свои возможности. Если в команде есть люди, которые не могут обрабатывать замыкания (или обобщения, или многопоточность (!!)), тогда эта команда должна контролировать себя с помощью обзоров кода и статического анализа.

Возможно, одна из идей состояла бы в том, чтобы во время компиляции переключить такие расширенные функции, как эта, но даже это кажется немного резким.

Я думаю, что эта идея действительно пытается решить проблему раздробленного лидерства в пространстве Java. Эта проблема кажется скорее политической и дипломатической, чем технической.

Другие вопросы по теме