Comments 60
Плагины для application servers какие есть?
Можете конкретнее уточнить какие интересны, если мы говорим про расширения для Tomcat и подобных, то есть. Без установки можно проверить по названию сервера в магазине приложений
гуд, отличный гайд
Так, в целом довольно круто, но из всего описанного не понял, как включить поддержку котлина. Открываемые файлы не имеют никакого хайлайта внутри
del
Вот откуда можно узнать про обязательность этого Extension Pack? Я просто скачал VSCode, установил, не увидел самой главной фичи, которая обязана быть в любой IDE (со времен Visual Basic в 1996 году) и удалил этот блокнот с подсветкой, ибо Geany уже есть.
В обычной Visual Studio не надо ничего дополнительно скачивать, автокомплит для C# там есть из коробки. Как и в упомянутой IDEA для Java.
Спасибо, но танцы с бубном в духе vim/Emacs совершенно не интересны. В LEGO я наигрался в детстве. Работать надо, сроки горят, некогда красноглазыми глупостями заниматься.
С подобным подходом никаким конкурентом IDEA или Eclipse оно никогда не станет. Для любителей, для open source разработки, возможно и неплохая вещь. Но для энтерпрайза такое категорически неприемлемо. Здесь нужен завершенный инструмент без костылей.
Ну это потому что есть Intellij бесплатное. А вот с Эклипсом были какие-то проблемы с масштабированными экранами, неудобно было использовать.
Вот для примера сравните с С++ на Линуксе, СLion платный, QT creator очень специфичный, Codeblocks какой-то простой что-ли, неразвивающийся свиду. Остаётся только Vs code с плагинами. Что в принципе норм работает, хотя и не без замечаний.
Как помню, при открытии .java файла приходят всякие предложения - "тебе подходит XXX расширение, поставить?". А так да, не всегда это интуитивно, тут полностью согласен. Тем более еще бывает несколько расширений для одной и той задачи)
Да и конкурировать с IDEA сложно. IDEA заточена под конкретную задачу, да и многолетняя привычка сродни слепой печати - все уже делаешь на автомате и знаешь куда нажимать. Тут мне больше интересно изучать - "А есть ли что-то еще, не отстал ли инструмент". И да, первая неделя использования была полна страданий и красноглазия, но потом стало понятно как это работает :)
Другой переломный момент это AI ассистенты, они нивелируют "умность" автокомплитов, тонкости знаний IDE особенностей технологий. Стандартные автокомплиты IDEA уже не сравнятся с ними, что тоже дает больше вариантов использованию другого инструмента. И не важно, это перед тобой Java, properties файлы спринга или gradle build.
VS Code же не позиционируется как среда для какого то конкретного языка, наоборот, каждый ставит только то что ему надо, а не как в Visual Studio - 4 гига хлама по умолчанию.
Для JS один набор плагинов
Для C# другой
Для Java третий
Для Python, четвертый
Для N-го языка - N-ный
И все это есть в документации: Language Support in Visual Studio Code
Очень интересно и познавательно. Но сам так я делать конечно не буду. IDEA наше всё.
Уже несколько лет как перешел на VSCode для java-разработки. Из главных минусов - IDEA теперь кажется крайне тормозной.
Автодополнение несколько хуже работает в VSCode, все для List предлагает на 1й строчке что-то из сторонней библиотеки, а не java.util.List
. По факту это самое большое мое замечание к Java в VSCode (не использую ИИ-ассистентов).
Года 3 назад (а может и больше) были проблемы с многомодульными проектами, но уже все исправили и они работают прекрасно (maven).
С eclipse-java-google-style.xml
в свое время игрался, но так и не подружился полностью - всплыли проблемы с форматированием, возможно уже исправили - надо будет еще поиграться (уже и не помню в чем именно были проблемы). Но я итоге google-java-format
подключил в maven (форматирование и валидацию).
Как резюме могу сказать, что с VSCode прекрасно живется java-разработчику. Про IDEA и не вспоминаю. Максимум - по интерактивному git rebase еще скучаю иногда. Уж очень он удобен в IDEA был.
в VS code какой-то скудный рефакторинг по сравнению с IDEA или я ошибаюсь?
JetBrains, что называется, "собаку съели" на рефакторинге. Так что да, IDEA в этом лучше будет.
Но базовых возможностей и в VSCode хватает: https://code.visualstudio.com/docs/java/java-refactoring
В расширении gitlens имеется интерактивный rebase
Да, им и спасаюсь (впрочем, есть и другие аналоги, а при необходимости и консоль в моем распоряжении). Но в IDEA его реализация кажется как-то эталоннее и удобнее )
Да и сам GitLens (amodio.gitlens) мне не нравится - уж слишком впихивают платный функционал. Использую GitLess (maattdd.gitless) - форк GitLens "до того, как он испортился премиумом".
Не упомянуто главное преимущество VSCode - расширение devcontainers. Выше жаловались про танцы с бубном в стиле vim, так вот с этим расширением и соответствующей папочкой в проекте, с правильно прописанными версиями и зависимостями, все сводиться к двум кликам. Типичная ситуация на проекте - коллеги пару дней тратят на запуск сложного проекта в Idea, тогда как в Vscode с devcontainers уже вовсю идет активная разработка.
Из недостатков - не поддерживаются некоторые экзотические связки вроде rancher + arm mac, но в классике linux + docker все стабильно.
В последней IDEA вроде есть поддержка devcontainers https://blog.jetbrains.com/idea/2023/10/intellij-idea-2023-3-eap-6/
Да, devContainers - очень мощный инструмент.
Правда я по итогу перешел к запуску контейнера под стек и ssh-сервера в контейнере.
Очень уж раздражал постоянный сброс кеша зависимостей - после обновления базового образа надо собирать образ, качать code-server и все зависимости заново. А если у тебя хреновый интернет - то это все может не с первого раза еще и отработать.
А если посреди дебага перезапустил IDE и пошло обновление - то совсем грустно становилось...
Интересно, до devcontainers не добрался еще. По поводу локального запуска приложения, тут считаю на старте надо сделать однокнопочный запуск, типа ./run.sh , а рядом ./run-tests.sh и тд. Там внутри использую docker-compose/skaffold или что необходимо другое. Из плюсов - не важно IDE, каждый может запускать и писать где хочет - запуск не зависит от IDE. Из минусов, страдают только те, кто использует голый Windows для разработки, поэтому упоминал WSL2 как хороший универсальный вариант.
DevContainers может мне заменить этот ворох скриптов?
Скорее не заменить, а дополнить запуском скриптов в контейнере )
Для замены - можно tasks использовать, но это тоже будет VSCode-only, так что скрипты универсальнее.
Вообще через maven можно автоматизировать многие вещи - тоже достаточно универсально получается, особенно с maven-wrapper. Но для запуска maven зачастую уже свои скрипты нужны )))
Про локальный запуск не совсем понял вопрос - в контексте разработке нужен отладчик, с голым docker-compose из run.sh отлаживать из VSCode не получится (наверно как-то можно через ssh, но это и будет эмуляция devcontainer). Конечно, в проекте обычно есть Makefile с build-docker, run-docker, test и т.п., но внутри devcontainer все это становится не нужно. Когда-то заморачивался с гибридными Makefile-ами, которые по разному выполняются в зависимости откуда запущен make.
Ворох скриптов сокращается, но главное, что единожды все настроив и закоммитив в репо, другой разработчик с VScode и devcontainer, склонировав проект, поднимет все в два клика и сможет сразу приступить к работе.
А как насчёт памяти и процессора? Переход на VS останавливает тот факт, что загруженный проект в VS потребляет столько же ресурсов процессора и памяти как и IDEA. В вашем опыте также или нет?
Обратите внимание на NetBeans. На мой взгляд, это наиболее близкая к Idea IDE. не без недостатков конечно, но работать можно.
Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу
Итого в сухом остатке мы имеем:
Плюс 2 обязательных вопроса к нанимающей стороне во время собеседования.
Плюс один повод сменить работодателя, если гениальная идея об импортозамещении экскаватора лопатами настигнет позже.
Жаль что нету каких-либо пакетов плагинов. Что-бы вот например для той-же явы - поставил эту штуку, поставил пакет плагинов для явы одной командой, и можно работать не занимаясь всеми этими танцами с бубном.
Чем Идея и хороша - ты ее просто устанавливаешь и можешь сразу же нормально работать, все эти тонкие настройки под себя можно и на потом отложить, если они нужны вообще.
Кстати отличная идея, пак сделать несложно, накидываешь в конфиг файлик нового расширения другие расширения и получаешь свой vsix файл. Согласен,а то по ссылкам бегать и одинаковые кнопки жать хоть и надо один раз - но муторно. У меня даже есть заготовка, надо дожать и будет проще получить готовую альтернативную среду.
Не программирую на java, но у нас на работе есть подгруппа C++ программистов, которые топят за vscode. Так как я использую CLion, то в принципе эта статья смежна с моим опытом.
Не могу поддержать рукоплесканий в сторону vscode. Конкретно, очень медленный анализ и поиск символов и ограниченный рефакторинг, как уже упоминали. Тонна плагинов - напоминает npm, где тоже живёт целый зоопарк.
Возможно тем, кто всё время сидел на Виндоус эта программа кажется открытием. Но в линуксе всегда был Emacs и vim, которые справляются очень хорошо со своими задачами и больше.
Однако, если надо ИДЕ, то лучше используйте ИДЕ. И JetBrains делает это хорошо.
Насчёт WSL, при работе с ним настоятельно не советую обращаться напрямую из линукса в виндовый раздел и наоборот. Тормоза будут отменными, скорость чтения может составить 2 мб/с.
Как-то можно сделать, чтобы это расширение не открывало все Java-проекты рекурсивно в открываемой папке? У меня иной раз чуть ноутбук не расплавился от такого удобства, когда случайно открыл папку с несколькими проектами.
Почему на венде под wsl надо работать?
желательно использовать WSL 2 для работы с Linux средой. Таким образом решите проблемы при запуске.sh скриптов, которые может содержать ваш проект
Увидел, читал по диагонали. А если там будут ещё и батники? ?
А для чего скрипты могут быть в проекте? Я не программирую на Java, немного тыкал когда выходил NetBeans 8 и когда ставил IDEA 15 потыкать яву для андроида. Не припоминаю там каких-то bat или sh ?
Можете подсказать, как настроить VS Code на удаленную работу со Scala? Насколько понимаю, расширение Scala всё же нужно устанавливать на самом VS Code на локальном хосте? Можно ли обойтись без установки JDK и Scala на локальном хосте, чтобы VS Code использовала их на удаленном хосте? Если да - как это сделать?
Круто! Честно говоря, не верил, что из VS Code можно приготовить вменяемую Java IDE. Мы пошли другим путем - реализовали плагин поверх Community, который дает полноценную поддержку Спринга и не только, можно посмотреть на amplicode.ru . Если интересно, давайте спишемся в ЛС, было бы здорово услышать ваше мнение.
Провернул все описанное и чувства смешанные. Вроде бы и работоспособно, но как-то космически далеко до идеи. Даже до комьюнити. Да, у меня и нет проблем платить за их лицензию, однако, как тут кто-то выше писал, приятно иметь план "Б".
Да, интерфейс непривычен, все такое, но меня сильно огорчил именно один момент, навигация. Короче, вот знаете как в идее ты на там объект жмешь и попадаешь в декларацию его структуры, класса или что там оно, в нем нажимаешь - ищешь использования, то же самое с методами. Как по мне это самая удобная и полезная штука в IDE. Но сходу и при установке и запуске тех плагинов навигации нет. Возможно, я что-то сделал не так, конечно.
Вопрос, подобную навигацию на VSCode можно как-то получить?
Если брать грубо по фичам, то в бесплатном vscode вполне можно работать, да не очень удобно, но и не блочит никто, и немного привыкнув будет даже довольно быстро.
Кроме того, джетбрейнс сами сокаратили дистанцию натянув убогий скин в духе vscode и попутно еще много чего испортив хорошего.
Как начать писать на Java в VSCode