268
Глава 10.
Интервью с Брайаном Гетцем
найти.другую.лошадь,.если.Java.не.встанет.и.не.запустится»..К.счастью,.наша.
лошадь.встала.и.побежала.и.с.тех.пор.работает.
В настоящее время мы наблюдаем довольно быстрое развитие языка. Как из-
менилась философия?
—.В.целом.она.не.сильно.изменилась,.но.в.деталях.произошли.довольно.зна-
чительные.перемены..Начиная.с.Java.9.мы.перешли.к.шестимесячной.схеме.
выпуска,.отказавшись.от.выпуска.раз.в.несколько.лет..Для.этого.было.мно-
жество.веских.причин,.одна.из.них.—.наличие.хороших.идей,.которые.всегда.
игнорировались,.когда.мы.планировали.выпуски.раз.в.несколько.лет.с.крупны-
ми.драйверами..Более.частый.выпуск.позволил.нам.лучше.сочетать.большие.
и.маленькие.функции..Многие.из.этих.шестимесячных.выпусков.имеют.более.
мелкие.языковые.функции,.такие.как.определение.типа.локальной.переменной..
На.это.не.обязательно.уходило.всего.шесть.месяцев..На.это.может.потребоваться.
год.или.два,.но.теперь.у.нас.есть.больше.возможностей.представить.что-либо.
готовое..В.дополнение.к.более.мелким.функциям.вы.увидите.более.крупные,.
такие.как.сопоставление.с.образцом,.которые.могут.постепенно.воспроизво-
диться.в.течение.нескольких.лет..Более.ранние.элементы.языка.могут.дать.нам.
представление.о.том,.в.каком.направлении.он.развивается.
Существуют.также.группы.связанных.функций,.которые.могут.быть.до-
ставлены.индивидуально..Например,.сопоставление.с.образцом,.записи.
и.запечатанные.типы.работают.вместе,.чтобы.поддерживать.более.ориен-
тированную.на.данные.модель.программирования..И.это.не.случайно..Это.
основано.на.наблюдении.за.вопросами,.использующими.систему.статиче-
ских.типов.Java.для.моделирования.данных..А.как.изменились.программы.
за.последние.десять.лет?.Они.стали.меньше..Люди.пишут.небольшие.
функциональные.единицы.и.развертывают.их.как.микросервисы..Таким.
образом,.большая.часть.кода.находится.ближе.к.границе,.на.которой.он.
будет.получать.данные.от.какого-либо.партнера,.будь.то.JSON,.XML.или.
YAML,.через.соединение.сокета,.который.затем.превратится.в.некоторую.
модель.данных.Java..Мы.хотели.упростить.моделирование.данных..Таким.
образом,.этот.набор.функций.предназначен.для.совместной.работы..И.вы.
можете.увидеть.похожие.группы.функций.во.многих.других.языках,.только.
с.другими.названиями..В.ML.вы.бы.назвали.их.алгебраическими.типами.
данных,.так.как.записи.—.это.типы.продуктов,.а.закрытые.классы.—.типы.
сумм,.и.вы.выполняете.полиморфизм.над.алгебраическими.типами.данных.
с.сопоставлением.с.образцом..Это.отдельные.функции,.которых,.возможно,.
разработчики.Java.не.видели.раньше,.так.как.они.не.программировали.на.
Scala,.ML.или.Haskell..Они.могут.быть.новичками.в.Java,.но.это.не.новые.
концепции,.и.было.доказано,.что.их.совместная.работа.позволяет.создать.
Интервью с Брайаном Гетцем
269
стиль.программирования,.соответствующий.задачам,.которые.люди.решают.
в.настоящее.время.
Do'stlaringiz bilan baham: |