Я разрабатываю приложение LoB в Java после длительного отсутствия на платформе (проведя последние 8 лет или около того, укоренившиеся в Fortran, C, smidgin С++ и последний .Net).
Java, язык, немного отличается от того, как я его помню. Мне нравятся сильные стороны, и я могу обойти свои недостатки - платформа выросла и решила множество несвязанных структур, которые, похоже, делают то же самое, что и друг друга, это другая история; но это может подождать еще один день - все-в-одном мне нравится Java. Однако за последние пару недель я стал влюблен в Groovy и исключительно с эгоистичной точки зрения: но не только потому, что делает развитие против JVM более кратким и интересным (и, ну, "groovy" ), чем Java (язык).
Что меня больше всего поражает в Groovy, это его неотъемлемая ремонтопригодность. Мы все (надеюсь!) Стремимся писать хорошо документированный, понятный код. Однако иногда языки, которые мы используем сами, побеждают нас. Пример: в 2001 году я написал библиотеку на C для перевода EDDIACT EDI-сообщений в сообщения ANSI X12. Это не особенно сложный процесс, если он слегка задействован, и я подумал, что в то время, когда я правильно документировал код, и, вероятно, был у меня, но через шесть лет, когда я снова просмотрел проект (и после того, как я акклиматизировался на С#), я обнаружил, я потерял столько таблиц C (маллоков, указателей и т.д.), что прошло три дня вдумчивого анализа, прежде чем я, наконец, понял, что я делал шесть лет назад.
В этот вечер я написал около 2000 строк Java (это все-таки день отдыха!). Я документировал как лучше, как знаю, но, но, из этих 2000 строк Java значительная доля - это плита Java-котла.
Здесь я вижу, что Groovy и другие динамические языки выигрывают - поддерживают и затем понимают. Groovy позволяет сосредоточиться на своих намерениях, не увязнув в реализации конкретной платформы; это почти, но не совсем, само документирование. Я считаю это огромным благом для меня, когда я пересматриваю свой текущий проект (который я перенесу на Groovy как можно скорее) через несколько лет, и моим преемникам, которые унаследуют его и будут продолжать хорошую работу.
Итак, есть ли причины не использовать Groovy?