От автора: выбор среды разработки под Ubuntu еще несколько лет назад был сложной задачей. Сегодня лучшие IDE для Java на Ubuntu можно определить довольно легко: достаточно спросить о том, какие из них наиболее часто используются большими компаниями. Сегодня мы сформируем свой топ, который покажет, какая из сред разработки достойна называться лучшей. Помимо бестселлеров мы рассмотрим еще одну среду, которая имела хорошие исходные данные, но так и не стала популярной.
Подбор Ubuntu под Java
Не так много линуксов могут похвастаться столь широким распространением, как Ubuntu. Эта система смогла стать альтернативой существующим платным OS, таким как Windows или Mac. Как только предприятие решает отказаться от коммерческих операционных сетей, они не имеют другого выбора – только Ubuntu, реже Linux Mint. Системы хорошо выглядят, стабильно работают и имеют интуитивно понятный интерфейс и…многие конкуренты обладают теми же характеристиками. Что же отличает Ubuntu и чем она привлекает Java-разработчика?
поддержка железа. Многие пользователи Windows гордятся своим выбором, так как их ОС умеет мгновенно подключать любое оборудования и находить на него драйвера. В Linux’ах все иначе: нужно устанавливать все самостоятельно через терминал, исключение составляет Ubuntu. Эта система «дружит» с оборудованием в тот момент, когда вы их подключите. При установке ставятся и дрова на все подключенные устройства;
сообщество юзеров и разработчиков. Если у вас возникла проблема при взаимодействии с Ubuntu, это значит только одно: кто-то уже был в подобной ситуации. Ответ на ваши вопросы можно найти на форумах. Что касается настройки среды разработки – все еще лучше;
акцент на безопасности. Существует миф о том, что на Linux нет вирусов. Это, конечно же, неправда. Малвар производят и для самых редких операционных систем, и Linux не исключение. Причем большинство дистрибутивов менее защищены, чем яблочные ОС и Windows. Опять Ubuntu выделяется на фоне других, его безопасность на высшем уровне;
центр приложений. Когда он появился в Windows, несколько лет назад? В Ubuntu эта опция существует уже давно и оптимизирована гораздо лучше, чем это смогли Microsoft (и совсем немного хуже, чем в Mac).
Существуют и слова против, но они больше касаются не Java-разработчика, а начинающего пользователя. Например, в Ubuntu сложнее установить корпоративные ограничения. Но сложно не значит невозможно. Серьезным аргументом можно считать только то, что с Windows или Mac сложно «слезть». Нет хороших программ для переноса данных с одной операционной системы на другую. Чтобы все выглядело так, будто вы просто изменили инструмент работы, а сами данные сохранились.
Подбираем Ubuntu под Java
Наверняка у новичка разбегаются глаза, когда он видит сколько дистрибутивов и клонов представлено в линейке Ubuntu. Некоторые советуют сборку для разработчика, некоторые и вовсе предлагают отказаться от графического интерфейса. Но это все вопрос предпочтений, которые еще не выработаны у новичка.
Можно дать только один совет, который будет релевантным еще много лет: ставьте официальный дистрибутив, который выпущен на несколько версий раньше, чем последний релиз. Установка свежих Ubuntu – это не только высокая нагрузка на процессорную мощность, но и встреча с неизбежными багами. Чем дольше поддерживается ось, тем она более стабильна. Так что ставьте последние Убунту только если вы фанат и имеете в распоряжении мощное оборудование.
Нужна ли джаве IDE
Если вы уже начали заниматься программированием, значит знаете, насколько это может быть изнурительным процессом. Это будто создавать математическое уравнение по собственным законам, со своими переменными и действиями — IDE призван максимально упростить этот процесс. И Java – один из тех языков, кому действительно нужна среда разработки.
У Java непростой синтаксис, плюс строгая типизация данных. Некоторые прогрессивные разработчики даже ругают за это язык программирования. Но, благодаря такой характеристике, он хорошо подходит для изучения: заставляет программиста понимать, какая логика руководит решениями компьютера.
Несмотря на свою сложность, этот язык хорошо подходит для разработки программного обеспечения и веб-продуктов. Он мощен настолько, насколько труден для новичка. Именно потому он так распространён среди веб-разработчиков. Приложения, созданные на Java, работают в сети значительно быстрее и запускаются на большинстве машин.
Код на Java и правда может быть достаточно сложным. Никакой концентрации не хватит, чтобы контролировать отсутствие ошибок. Для этого существует IDE: она умеет автоматизировать процесс разработки, помогает найти и исправить проблемный элемент кода, и даже генерирует участки на ходу. В Eclipse (и некоторых других средах разработки) этот сервис называется IntelliSense. Он умеет завершать слова языка программирования, закрывать нужные функции и даже помочь в топографическом размещении: отступы и интервалы, которые нужны для удобочитаемости, делает программа.
То же самое касается и компиляции. Конечно до наших дней дожили те, кто считает, что компиляцию лучше проводить сторонним инструментом, но этот взгляд, зачастую, лишен объективного подхода: кто-то привык и не хочет мириться и с неизбежным прогрессом.
Java относится к компилируемым языкам, да и постоянно переносить код в другое приложение – нецелесообразно. Намного удобнее запустить компиляцию прямо из среды разработки. То же касается и запуска программы: из IDE всегда удобнее.
Среда разработки хорошо служит в командной разработке, и дело не только в полноценном переносе кода с одной машины на другую. В некоторых средах разработки можно включить одновременный удаленный доступ к коду: совместно писать, редактировать и тестировать. И это касается не только Java, а всех языков, которые используются в веб-разработке.
Требования разработчика
Уже давно не существует стандарта, который бы определял современную IDE. Среды разработки настолько развивают свой функционал, что набор из текстового редактора, компилятора и дебаггера уже называют IDE лишь условно. Хорошая среда разработки джависта должна иметь еще несколько характеристик, без которых она неконкурентоспособна.
С основными требованиями к функционалу вы уже знакомы, теперь перейдем к некоторым системным монетам. К примеру, среда разработки для Ubuntu должна быть кроссплатформенной. Для нашего случая она может быть написана исключительно под сочетание Java/Ubuntu, но такой вариант не очень удобный. Разработчику предстоит работать со своей командой, демонстрировать наработки и приспосабливать их для запуска. Намного рациональнее делать это на кроссплатформенных IDE.
Уже потом идут чисто субъективные факторы, такие как интуитивность, скорость разработки и определенная степень эффективности. Но их мы тоже будем учитывать, основываясь на опыте Java-разработчиков.
Три кита Java-программирования
Сколько бы не велись споры о том, какие IDE лучше подходят для Ubuntu и в целом для веб-разработки, в результате получается три основных среды: IDEA, Eclipse и NetBeans. Со всеми ними вы уже, должно быть, знакомы. Две из них бесплатны, а IDEA имеет ультимативную версию, где все реализовано в лучшем виде. Можно точно сказать, что эта среда разработки лидирует в тройке по количеству поклонников и скорости разработки. Но, как всегда, субъективные предпочтения и базовые знания конкретного программиста заставляют его выбирать ту или иную IDE.
Намного более интересным ответвлением сред разработки можно назвать облачные IDE. Ранее они были не более чем утопией, идеей и экспериментом. Но, с приходом широкополосного интернета, мощных устройств и глобального покрытия, облачные IDE стали приобретать популярность. К примеру, трудно придумать что-то лучше для групповой разработки, чем код, который пишется в сети. Доступ таким образом можно обеспечить простой ссылкой, как в онлайн-системах обмена документами.
Тем не менее, такие IDE недопустимы для полномасштабной разработки продукта из-за вопросов безопасности. Весь исходный код может перехватить человек с доступом к серверной комнате, если не применять достаточных механизмом секьюритизации. Эта сфера развивается с каждым годом, представляя все новые продукты.
Наиболее яркий из них – Codenvy. Это одна из первых облачных IDE, которая поддерживает разработку на Java. Значительная роль в этой среде разработки уделена шерингу и совместному созданию программ. Всего в одно нажатие можно представить свою работу другому пользователю. В стационарных IDE это более долгий процесс: компиляция, сохранение, пересылка. Здесь все намного проще – открыть доступ к рабочему полю.
Во многом проект соперничает с Eclipse Che, а в некоторых моментах даже выигрывает и отбирает себе поклонников. Расстраивает лишь отсутствие поддержки основных веб-языков: PHP, Ruby, Python. Писать на них можно, но автозаполнение и прочие плюшки отсутствуют. Напомним, что стационарная IDEA умеет анализировать мультиязычный код.
Облачные IDE могут быть интересны не столько джавистам на Ubuntu, сколько пользователям экзотических дистрибутивов Linux. Они не всегда могут запустить популярные среды разработки. А при помощи облачных систем, такие пользователи смогут присоединится к разработке.
Результаты от Gel
Мы уже забыли время, когда среда для разработки на Java весила мало и выполняла свои задачи быстро. Очень жаль, что теперь они ассоциируются с объемным инструментом, который потребляет большинство ресурсов устройства.
В начале столетия достаточно популярной была среда разработки Gel. Она имела неплохой на то время графический интерфейс, быстрее остальных устанавливалась, настраивалась и могла выполнять все основные функции, даже по меркам современной IDE. К тому же, количество плагинов было сравнимо с NetBeans, IDEA и прочими бестселлерами. Но, как всегда, неспособность к маркетингу и отсутствие поддержки погубило амбициозный проект.
Вывод: обращайте внимание на то, как часто обновляется IDE и какое общество ее поддерживает. А у нас все.