стоит ли изучать groovy? [закрытый]
вопрос, который я задаю, стоит ли изучать новый язык, такой как groovy? потому что, если я узнаю groovy, кажется, что я кодирую groovy, а не java. и насколько это умно, когда я должен быть хорош в java, чтобы кодировать настольные приложения в будущем. так что, если я использую groovy много для веб-приложений, я просто буду хуже и должен начать все сначала, чтобы быть хорошим в java, когда я кодирую настольные приложения правильно?
Так почему бы мне просто не придерживаться java и быть хорошим на одном языке вместо переключаясь между 2 языками и их синтаксис. Потому что это было бы так запутанно...
12 ответов
цитата:
Так почему бы мне просто не придерживаться java и быть хорошим на одном языке вместо переключаясь между 2-х языках и их синтаксис.
Это кажется более общим вопросом об изучении языков программирования, чем изучение нового языка (Groovy), который работает поверх виртуальной машины Java.
вот вопрос:
Предположим, вы изучаете иностранный язык, потому что хотите свободно владеть несколько языков, так что вы можете общаться с многими людьми. Ты учишь немецкий прямо сейчас, но у тебя это хорошо получается, но ты также хочешь выучить испанский. Вы бы просто внезапно забыли немецкий, если вы начнете изучать испанский? Если вы действительно боитесь ли вы, что бы вы сделали?
Если вы собираетесь изучать Groovy, но не хотите забывать, как писать Java, то почему бы не продолжать использовать оба языка одновременно?
одна из вещей, о программист будет учиться адаптироваться к новым технологиям по мере их появления. Это хорошая вещь, чтобы иметь возможность изучать новые языки, так как это будет умение, которое будет очень полезно в области, которая постоянно меняется.
Groovy-хороший, скриптовый и простой в использовании Java "подделка" - и я не имею в виду это уничижительно. хотя Java-это язык для компиляции, развертывания и (часто) запуска на корпоративных серверах, где важна производительность, Groovy-это язык, на котором вы можете быстро создать программу, чтобы что-то сделать. Часто Это что-то довольно простое, поэтому это час или день кодирования. Часто код запускается только один раз, а затем выбрасывается. Потому что Java имеет больше шаблонности и формализма в это, вы можете сделать этот вид программы быстрее и, следовательно, более эффективно в Groovy.
однако, просто чтобы дать вам некоторую перспективу, Groovy-относительный новичок, топающий по дерну различных других, лучше установленных языков сценариев:
Perl является одним из дедов скриптовых языков; редко сервер Unix устанавливается без Perl на нем, а скрипты Perl являются жизненной силой многих серверов. Однако Perl - это язык только для записи для непосвященных это похоже на линейный шум. Есть несколько способов сделать все, поэтому стили резко расходятся. Кодирование Perl имеет тенденцию быть немного беспорядочным.
Python-более свежий, более чистый язык сценариев, чем Perl, и в наши дни многие предпочитают язык сценариев. Это весело программировать, это делает вещи, и потому что это было вокруг в течение нескольких лет, многие люди знают это. Python находится за / внутри ряда систем Linux коммунальные услуги.
Groovy оставляет Perl и Python в пыли, когда (a) среда уже использует JVM и/или есть требование использовать существующий Java-код, включая библиотеки. Пока все хорошо. Groovy не ослепительно быстро, но быстрее, чем Python. Будучи динамически типизированным, это" весело "и" легко " программировать таким образом, что Java нет.
но потом появилась скала. Scala как Java на стероидах. Это статически типизировано, поэтому это не совсем так "весело" программировать как Groovy, но у него есть вывод типа так часто, что вы можете оставить типы, и компилятор может их понять. Scala работает очень трудно, чтобы сделать большинство типов; он делает общие типы намного более легко, чем Java. Он избавляется от многих шаблонов Java, поэтому программы Scala обычно примерно на 30% короче, чем аналогичные Java-программы. Scala работает на JVM и довольно хорошо взаимодействует с Java-кодом. Он также работает примерно так же быстро, как Java, который большинство других языков нет.
наконец, в историческом порядке, есть Clojure. Clojure является производным Lisp, поэтому он имеет стиль программирования, очень отличный от языков, которые вы знали бы в противном случае, и он прожигает много скобок! Но Clojure работает на JVM, это очень совместим со всеми остальными Java, и он динамически типизирован. Вы можете использовать его как скриптовый язык, или рассматривать его как язык... это до вас. Я нахожу это забавным для программирования, и факт что это почти чистый функциональный язык заставляет вас думать по-новому о программировании. Вначале это причиняет боль вашей голове, но если вы выживете, это очень полезное упражнение, потому что вы узнаете некоторые методы, которые станут более релевантными (я думаю) в будущем программировании.
вкратце, вам, вероятно, будет полезно (положите волосы на грудь, если я могу быть таким сексистом) изучить один или несколько из этих "альтернативных" / "скриптовых" языков. Вы можете найти их полезный. Обычно, когда в моем проекте есть что-то, что нужно быстро взломать, я получаю работу, потому что все мои коллеги знают только Java, и к тому времени, когда они заканчивают настройку своей структуры классов, я уже закончил.
Почему бы вам не закодировать свои настольные приложения в groovy тоже? Просто потому, что groovy-это выбор веб-фреймворка (grails), не означает, что вы не можете использовать его для настольных приложений.
действительно, он отлично подходит для настольных приложений тоже. Это скорее вопрос динамических или статических языков...
на мой взгляд, неплохо иметь под рукой для каждой задачи нужный язык. Так что вперед и узнать groovy-результат будет то, что вы пропустите grovy функции при попытке использовать java опять ; -)
Я бы сказал, что в целом в этой области всегда хорошо учиться. Я стараюсь постоянно изучать новые концепции для добавления в мой набор инструментов, в то же время улучшая основные вещи, которые меня интересуют, такие как Java. Недавно я купил книгу по изучению Clojure-еще одного функционального языка для JVM.
недостатком обучения чему-то, не используя его каждый день, является то, что некоторые детали не прилипают к вашей голове. Тем не менее, я рад, что провел некоторое время с Clojure; важный материал застрял, и я знаю, что могу быстро найти детали, если и когда мне нужно. Возможно, вы захотите применить аналогичный подход к Groovy.
платформа Java медленно начинает менять направление на то, где JVM нацелен на несколько исходных языков (трюк .net хвастается с первого дня, но это занимает Java некоторое время, чтобы догнать там). Формат java7 classfile даже добавляет новую инструкцию, чтобы эти динамические языки работали быстрее.
Если вы хотите сохранить себя текущим, то изучение Groovy-хороший способ сделать это, не отказываясь от всех ваших инвестиций в Java платформа.
кроме того, Groovy (и Grails) теперь поддерживается SpringSource, поэтому его популярность будет только расти.
переход от java к groovy-это не так много работы. Нет, где рядом с тем, что нужно было бы перейти на менее Явайский язык, такой как clojure.
Мне очень нравится groovy для одноразовых приложений и для сценариев существующего кода java. Я использовал его для анализа данных из вызовов REST и подачи данных в очередь JMS. Я использовал его для создания скремблированных тестовых данных для партнера из наших производственных данных. Для таких вещей это удивительно.
Если цель-научиться динамический язык добавить для панели инструментов Python и Ruby-хороший выбор. Они работают на JVM и имеют собственные версии. Оба они хорошо поддерживаются на большом количестве платформ.
Если целью является изучение альтернативного языка JVM, groovy-отличный выбор. Scala и Clojure также могут стать хорошим выбором.
раньше я придерживался правила "изучать новый язык каждый год" от прагматичного программиста, но это было до того, как у меня появились дети. Теперь я учусь строить новые игрушки каждые шесть лет. месяцы.
прежде всего, я это очень субъективный вопрос.
по моему скромному мнению, стоит изучить новый язык, особенно если он варьируется в парадигмах (как в случае с groovy). Я сам довольно молод, поэтому для меня изучение нового языка не является большой проблемой, но, как я вижу, если вам нравится язык, вы оцениваете, что кодирование на языке X будет прибыльным, вы должны его изучить.
Это не повредит вашему резюме. Это не заставит вашу голову болеть (сильно). Этот только проблема в том, воспользуешься ли ты им. Вы должны использовать язык, чтобы стать хорошим в этом. Если вы собираетесь изучить его сейчас и никогда не использовать его завтра, вероятно, не стоит изучать его.
изучение чего-то нового не отнимает то, что вы уже знаете. Вы можете быть немного ржавым, когда вернетесь на Java, но он вернется очень быстро.
еще...
Я не Java-парень, но я считаю, что Groovy нацелен на JVM. Если это так, то программирование в Groovy сделает вас лучшим программистом Java, потому что вы все равно будете нацелены на ту же структуру, что и Java (язык), поэтому вы все равно продолжите получать опыт работы с библиотеками Java. Знание доступных библиотек-вот что действительно важно, а не то, насколько хорошо вы знаете каждую мельчайшую деталь конкретного языка.
Я нахожу, что, изучая новые языки, я всегда в конечном итоге изучаю новые способы думать о проблемах. Каждый язык ведет вас к решению проблем таким образом, который наиболее легко выражается языком. Изучение новых языков только делает вас сильнее, потому что вы узнаете новые способы решения проблем.
возможно, вам придется переориентироваться с библиотеками после долгого времени вдали от языка, но даже тогда это не огромное испытание - просто более частые поиски google, так далее.
преимущества, однако, стоят того. Недавно я впервые сделал функциональное программирование, и это действительно научило меня по-разному думать о некоторых ситуациях. Теперь я использую некоторые функциональные аспекты C#, и в некоторых случаях это делает мой код намного чище. Суть в том, что если вы собираетесь делать это для жизни, вы захотите выучить более одного языка, вы когда-нибудь встречали механика, который знал только одну марку и модель машину?
всегда хорошо изучать новый язык, чтобы быть лучшим программистом. Groovy-это естественный выбор для Java-программиста-легко учиться, и вы все еще можете использовать все свои знания java.
Groovy-это динамический язык, после попытки изучить любой функциональный язык (например, Scala). С этим опытом вы увидите Java из разных perspecitve. Некоторая задача, которая была болезненной в Java, будет тривиальной в Groovy / Scala.
вы можете запрограммировать настольное приложение с Griffon, чей язык выбора Заводной, дайте ему попробовать
Если вы ищете онлайн-помощь, проверьте эти веб-сайты:
- на в Groovy
- на файл Grails