Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

Почему я отказался от IDE и полностью перешёл на Linux: ни за что не вернусь обратно!

Для программирования вовсе не обязательно пользоваться тяжёлыми интегрированными средами разработки — по своему опыту я нашёл куда более гибкий и простой способ работать. Я превращаю свой Linux в настоящую мастерскую, где на каждую задачу есть свой удобный инструмент. IDE подкупают многих программистов: всё под рукой — и редактор, и компилятор, и отладчик, и справка. Я понимаю соблазн иметь всё сразу в одной программе. Но мне всё больше нравится философия Unix: пусть утилита делает что-то одно, зато делает это максимально хорошо. Иногда это требует чуть больше усилий, но именно к такому стилю работы я и стремлюсь. Большинство операционных систем делятся на два больших семейства. Не случайно именно на Windows IDE пользуются особенной популярностью — там командной строке всегда уделяли мало внимания, а запуск отдельных процессов долгие годы был не самым быстрым, отсюда и привычка к «комбайнам», в которых есть всё на свете. А мне намного ближе классический подход Unix: отдельная задача —
Оглавление

Для программирования вовсе не обязательно пользоваться тяжёлыми интегрированными средами разработки — по своему опыту я нашёл куда более гибкий и простой способ работать. Я превращаю свой Linux в настоящую мастерскую, где на каждую задачу есть свой удобный инструмент.

Одно окно — одна задача

IDE подкупают многих программистов: всё под рукой — и редактор, и компилятор, и отладчик, и справка. Я понимаю соблазн иметь всё сразу в одной программе. Но мне всё больше нравится философия Unix: пусть утилита делает что-то одно, зато делает это максимально хорошо. Иногда это требует чуть больше усилий, но именно к такому стилю работы я и стремлюсь.

Что такое Unix и почему это важно?

Большинство операционных систем делятся на два больших семейства.

Не случайно именно на Windows IDE пользуются особенной популярностью — там командной строке всегда уделяли мало внимания, а запуск отдельных процессов долгие годы был не самым быстрым, отсюда и привычка к «комбайнам», в которых есть всё на свете.

А мне намного ближе классический подход Unix: отдельная задача — отдельная программа. Vim открыт в одном окне, тестирую код — в другом, в третьем работаю с файлами. Всё работает быстро и не грузит систему лишним.

Понадобился новый инструмент? Просто открываю ещё одно окно терминала — и ни на секунду не теряю темп работы.

Такой подход идеально ложится на мой стиль программирования

-2

Сразу скажу: я не профессиональный разработчик, программирование для меня — хобби и тренировка для ума. Тем, чья профессия — код, часто нужнее IDE, но у меня другой взгляд.

Я пишу на Python — в основном небольшие скрипты и часто работаю в интерактивном режиме: стандартный интерпретатор или IPython. Для меня Python — почти как калькулятор на стероидах. Нет никакого смысла ради пары комманд запускать тяжёлую IDE.

В основном занимаюсь статистикой и анализом данных, снова-таки чаще всего — через интерактивный Python. Особенно люблю связку IPython Mamba. Документацию ищу либо прямо в IPython, либо быстро открываю в браузере. Если нужно сохранить сессию для обмена или отчёта — использую Jupyter notebook. Работаю в интерактивном стиле, поэтому сложные отладчики мне просто не нужны: ошибку тут же исправляю и работаю дальше.

IDE заставляет меня ставить кучу функций, которыми я не пользуюсь. Зачем мне тратить ресурсы на ненужные отладчики или тяжёлый интерфейс, если всё нужное всегда под рукой?

Я выбираю инструменты сам — когда и какие хочу

-3

Да, интегрированные среды ценятся за то, что в них всё "под одной крышей": редактор, компилятор, отладчик, статический анализатор… Но в Linux всё это можно поставить буквально парой команд через менеджер пакетов — без привязки к одному производителю или экосистеме.

Хочу поменять редактор? Перейти на другой — дело одной минуты. Я привык к Vim: его сочетания клавиш удобны даже на современных тонких ноутбуках.

Вместо стандартного интерпретатора Python легко подключаю IPython — получаю подсветку кода, удобную историю команд, а системные команды можно запускать прямо из интерпретатора.

Даже менеджер пакетов заменил на Mamba — она специально заточена под анализ данных: работает быстро, ставит свежие бинарники и не лезет в системный Python.

Обычный IDE такой гибкости мне никогда не даст.

Какие программы использовать — решаю только я

-4

Тот, кто всерьёз увлекается Linux и программированием, со временем становится горячим поклонником своих инструментов — в первую очередь любимого редактора. Я на своей шкуре попробовал и Vim, и Emacs, поэтому знаю обе стороны.

IDE по-прежнему популярны, и не так уж важно, насколько они «настоящие» в классическом понимании. Например, фанаты Emacs любят хвастаться: из редактора можно вообще не выходить — в нём же терминал, файловый менеджер, море расширений. Но меня эта "вселенная в одном окне" совершенно не вдохновляет. Возможно, потому что всегда работал в графической среде — запустить новое окно или процесс можно за секунду.

Emacs появился тогда, когда все работали в текстовом терминале, а открытие нового приложения было целым приключением — отсюда такой упор на все-в-одном.

IDE часто ограничивают выбор: пользуйся только тем, что задумали создатели. А в Linux вариантов масса — каждый находит то, что ближе именно ему. Я лично предпочитаю собирать свой набор из небольших программ — для каждой задачи свои идеальные инструменты.

Переходишь на новый компьютер или систему — за считаные минуты собираешь свою привычную среду.

Многозадачность — мой конёк: работаю сразу в нескольких окнах!

-5

Мне по духу философия Unix: одна программа — одна задача. Это стало возможным не только благодаря архитектуре системы, но и потому, что в Linux новый процесс можно запустить элементарно — совсем не как раньше в Windows. Хочешь — открыл новый терминал, запустил Vim или интерактивный Python через Mamba. Всё быстро, не требует лишних ресурсов и не тормозит работу.

Откуда такой подход? Дело в истории: в Linux любое приложение всегда могло работать в своём процессе, тогда как на Windows это было сложнее и ресурсоёмко — отсюда и любовь к универсальным монолитам. В UNIX-подобных системах запускать отдельные задачи удобно и с точки зрения производительности, и для гибкости.

Раньше слабым местом была именно организация окон: несмотря на многозадачность, между задачами переключаться было не всегда удобно. Потом появились виртуальные консоли, затем — оконные системы и графические терминалы, где удобно держать хоть десять окон одновременно. А для работы через SSH отлично выручают терминальные мультиплексоры.

Что такое терминальные мультиплексоры и при чём тут SSH?

Работайте удалённо по SSH и не теряйте ни одной рабочей сессии.

Благодаря вкладкам, разным окнам терминала и мультиплексорам я в полной мере пользуюсь возможностями Linux. В одном окне экспериментирую с интерактивным Python, в другом — пишу отчёт в Jupyter, в третьем — кодю в редакторе. Всё разделено по своим местам, но всегда под рукой — переключился, и всё работает.

Мой подход, может, и не такой интегрированный, как в классических IDE, зато я получаю настоящую лёгкость, гибкость и полный контроль — а для меня это главное.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: