- PVSM.RU - https://www.pvsm.ru -

Из Groovy ушёл Cédric Champeau‏

Из Groovy ушёл Cédric Champeau‏ - 1

В проекте Apache Groovy перестаёт участвовать один из ключевых участников сообщества, само имя которого у многих ассоциировалось с этим языком. Уходит Седрик Шампо, известный в первую очередь как автор статического компилятора Groovy.

Если рассмотреть причины ухода в том виде, как их формулирует сам Седрик, получается история о том, как Groovy-сообщество хотело лучшего, а в итоге ненамеренно сделало себе хуже. В самом сообществе, впрочем, есть другие трактовки произошедшего. В любом случае история может быть интересна и разработчикам из JVM-мира, и не только.

Чтобы понять произошедшее, надо зайти издалека. Язык Groovy, версия 1.0 которого вышла в 2007-м, стал претендентом на роль «лучшей Java»: он тоже был рассчитан на JVM, и при этом принёс ряд новых возможностей, полюбившихся разработчикам. Например, известный многим джавистам Барух jbaruch [1] Садогурский в своё время писал [2] на Хабре о том, как прекрасны AST transformations и как они улучшают жизнь при работе с Java.

Groovy проникал в разные области. Например, на нём основали DSL для билд-скриптов в Gradle, тем самым резко повысив заметность языка: самые разные джависты стали регулярно сталкиваться с ним в контексте сборки, что провоцировало дальнейший интерес к языку. Наблюдая такие события, легко было представить светлое будущее, в котором Groovy займёт непоколебимые позиции в лидерах JVM-языков.

Шли годы, и Groovy, с одной стороны, вполне использовался, с другой — не сказать чтобы захватил мир. А перспективы при этом были неопределёнными: например, с появлением Java 8 стала менее очевидна потребность в «лучшей джаве».

А затем начал стремительно набирать популярность Kotlin. Его создатели называют [3] Groovy в числе тех языков, которыми вдохновлялись, так что в некоторых отношениях Kotlin напоминает Groovy. В принципе, это подтверждает, что в Groovy были приняты правильные решения: они зарекомендовали себя на практике, и другим захотелось перенимать их. Но часть Groovy-сообщества не порадовалась такой валидации идей, а увидела угрозу.

Ещё один JVM-язык (теперь уже не только JVM, но изначально Kotlin боролся именно за этот рынок). Который тоже называют «лучшей Java». Который отчасти дублирует возможности Groovy. И который быстро растёт.

В 2016-м Gradle объявили [4], что билд-скрипты станет можно писать не только на Groovy, но и на Kotlin. И это в Groovy-сообществе многие восприняли как удар в спину. В своё время Gradle помогло использование языка, который нравился многим разработчикам куда больше XML из Maven. И теперь, став популярным не без помощи Groovy, Gradle поддержал заклятого конкурента!

Правда, работа над Kotlin DSL растянулась настолько, что только в конце 2018-го (спустя два с лишним года после анонса) он получил [5] статус «production ready», так что на данный момент мир всё ещё никуда не ушёл от Groovy в Gradle-скриптах.

Наконец, возвращаемся в настоящее. Седрик Шампо объявляет об уходе из Apache Groovy, и в своём посте [6] объясняет причины.

Он работает в Gradle Inc, и пишет, что его жизнь усложнилась с того момента, когда было объявлено о поддержке Kotlin в Gradle. Каждый раз, когда он говорил что-либо хорошее о Kotlin, люди из Groovy-сообщества писали ему «не надо так, ты вредишь Groovy», «вы там в Gradle не на нашей стороне»…

При этом Седрик не рассматривает Kotlin как угрозу для Groovy, ему нравятся оба языка, он пользуется обоими, видит в обоих свои преимущества. В последнее время ему интереснее Kotlin — но для него это не означает какого-то «перехода на другую сторону баррикад», он не привязывает свою личность к выбору любой конкретной технологии. В итоге он устал от ощущения борьбы и ему стала некомфортна ситуация, когда он не может просто упомянуть язык, не сталкиваясь с возражениями и подшучиваниями.

Последней каплей стало то, что на днях он закоммиттил [7] в Apache Groovy билд-скрипт, написанный на Kotlin Gradle DSL (что вызвало возражения). По словам Седрика, люди заявляли, что он принял такое решение из-за работы в Gradle Inc, а такое он терпеть не готов:

«I am Cédric. I am not Gradle Inc.
I am Cédric. I am not Kotlin.
I am Cédric. I am not Groovy.
Technologies live and die, I’m not interested in being married with a technology».

В этом можно было бы увидеть историю «ужасного сообщества, загнобившего человека» — но Седрик подчёркивает, что он сам совершенно не считает сообщество Groovy токсичным. Он считает, что там просто много страха за будущее (вполне объяснимого), и объясняет действия людей этим.

Если считать его трактовку правильной, то история вырисовывается такая: сообщество опасается за будущее языка, но из-за этих опасений само создало атмосферу, от которой ушёл яркий и полезный представитель. То есть, желая Groovy лучшего, в итоге сделало хуже.

В самом сообществе, впрочем, есть и другая трактовка: на самом деле добавление билд-скрипта на другом языке вызвало не религиозный ужас, а вполне разумные возражения вроде «это ненужное усложнение проекта, не все знают этот язык». И с такой трактовкой история начинает выглядеть совсем иначе.

Чтобы составить собственное мнение, можете прочитать, например, обсуждение [8] этого коммита.

В любом случае, история печальная. Но, к счастью, закончившаяся хотя бы не скандалом, а многочисленными благодарными реплаями [9] Седрику за всё, что он сделал для Groovy.

Минутка рекламы. Раз вы здесь, вероятно, вам интересна разработка на Java/JVM-языках — а в таком случае может быть интересна и конференция JPoint [10] (Москва, 5-6 апреля). На этом JPoint не будет докладов конкретно по Groovy, зато среди спикеров есть Сергей @bsideup Егоров [11], контрибьютивший в Apache Groovy — так что, если вам интересен этот язык, на конференции будет с кем о нём поговорить.

Автор: phillennium

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/312405

Ссылки в тексте:

[1] jbaruch: https://habr.com/ru/users/jbaruch/

[2] писал: https://habr.com/ru/post/215343/

[3] называют: https://mobiusconf.com/2018/spb/talks/4br9b0dlvy28ig6eymyeei/

[4] объявили: https://blog.gradle.org/kotlin-meets-gradle

[5] получил: https://github.com/gradle/gradle/releases/tag/v5.0.0

[6] посте: https://melix.github.io/blog/2019/03/goodbye-groovy.html

[7] закоммиттил: https://github.com/apache/groovy/commit/56c219eca0c028c95713a3abd74f14fa40cb0e6c

[8] обсуждение: https://lists.apache.org/thread.html/d498a86a7f8147fe5dc6d21d015122b3a5befa04f12ccd497b613048@<dev.groovy.apache.org>

[9] благодарными реплаями: https://twitter.com/CedricChampeau/status/1108637045101133824

[10] JPoint: http://jpoint.ru/?utm_source=habr&utm_medium=444884

[11] Сергей @bsideup Егоров: https://jpoint.ru/talks/7m8s8rp8df5oseq1aky6lk/?utm_source=habr&utm_medium=444884

[12] Источник: https://habr.com/ru/post/444884/?utm_campaign=444884