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