Comments 24
Когда, по долгу службы, пришлось писать на Питоне, я начал писать в Notepad++ — вроде как подсветка синтаксиса есть, чего еще нужно. Чуть не удавился — после языков со статической типизацией писать было просто отвратно.
Поставил хорошую ИДЕ — PyCharm, настроил ремоут деплой и дебаг (чтобы сразу на девайсе исполнять, а не проделывать каждый раз цикл копипаста) — и стало вполне сносно — фичи ИДЕ компенсировали особенности языка, грамотно генеря на лету структуру классов на основе того, какой код вписан в конструктор и т.п.
Так что к выбору инструментов нужно подходить внимательно, это да…
Поставил хорошую ИДЕ — PyCharm, настроил ремоут деплой и дебаг (чтобы сразу на девайсе исполнять, а не проделывать каждый раз цикл копипаста) — и стало вполне сносно — фичи ИДЕ компенсировали особенности языка, грамотно генеря на лету структуру классов на основе того, какой код вписан в конструктор и т.п.
Так что к выбору инструментов нужно подходить внимательно, это да…
Не совсем согласен с балансовой характеристикой, предложенной в статье. Базовые функции IDE в VIM'e поддерживаются, для новых ЯП появляются практически одновременно с выходом ЯП и создаются, как правило, разработчиками ЯП и первыми программистами, благо написать пару скриптов для VIM не такая уж трудная задача. Остальные же инструменты не так уж и важны, хоть и облегчают немного жизнь, но на мой взгляд, львиную долю времени отнимает как раз редактирование текста — кода, и, как следствие, хороший редактор текста играет ключевую роль, а уж великолепное знание ЯП — вообще залог успеха. Ставить в один ряд владение ЯП и владение IDE, на мой взгляд, не правильно.
Ну, не то чтоб одно другому прям равнозначно было, но хорошая IDE (уровня IntelliJ Idea), например, вполне компенсирует пробелы в знании тонкостей языка и различных best practices за счет мощного статического анализа, экономя время разработки и заметно повышая качество кода.
Зависит от языка и проектов надо которыми приходится работать. Когда у тебя статически типизированный язык и действительно огромный проект (какой-нибудь суровый Enterprise на Java), то хорошая IDE может сильно облегчить жизнь.
Но в большинстве случаев, я согласен что знание языка играет несравнимо более важную роль чем IDE.
90% случаев навороченной функциональности IDE можно компенсировать хорошим знанием UNIX иструментов (grep/ack, awk, sed)
Но в большинстве случаев, я согласен что знание языка играет несравнимо более важную роль чем IDE.
90% случаев навороченной функциональности IDE можно компенсировать хорошим знанием UNIX иструментов (grep/ack, awk, sed)
Когда переходил с C++ на D, я был шокирован отсутствием качественных IDE. Однако, вскоре я попал в лагерь «знатоков языка» и мне стало хватать самодельных скриптов для редактора и подсветки синтаксиса. IDE сильно привязывает к себе и не дает распробовать вкусности новых языков.
Когда начал писать на python — использовал ide (netbeans, eclipse, pycharm), но, с ростом знаний, ide стала больше мешать и в итоге работа с ней превратилась в обход её фич. Сейчас использую sublime text 2 и свой скрипт, сокращающий консольные команды (читайте — набор алиасов). Но это опять же мой инструмент… Так что без инструментов никуда, но не в одних ide но не стоит ошибочно считать что все инструменты находятся в ide. Часто набор из штучных хороших инструментов лучше, чем собранная кем-то ide, которая вроде бы тоже, да не то. Но и язык надо знать в любом случае, тут на одних инструментах тоже не выедешь — опыт, его не пропьёшь. В общем ответа, как всегда нет — в каждый отдельный момент, нужно каждое отдельное знание/умение…
Очень интересно, но какие фичи навязывает тот же нетбинс?
Из опыта я видел людей, которые использовали его как простой редактор, даже проекты не создавали, использовали его как notepad, не то что сублим с его гламуром и снипетами.
p.s. Не хочу холиварить о редакторах, но ваш тезис действительно вызвал недоумение.
Из опыта я видел людей, которые использовали его как простой редактор, даже проекты не создавали, использовали его как notepad, не то что сублим с его гламуром и снипетами.
p.s. Не хочу холиварить о редакторах, но ваш тезис действительно вызвал недоумение.
Я видел людей вбивающих урл в поисковую строку яндекса и переходящих потом по «найденной» ссылке, только вот так ли разумно стрелять из пушки по воробьям, даже если это и даёт какие-то результаты?
ну, я вот, к примеру, так часто делаю, когда не помню в каком домене сайт. Всяко быстрее, чем по очереди их перебирать.
Нет, вы же говорили о том как вам ide мешает работать и что приходилось обходить её фичи.
А если хотите, могу продолжить аналогию про поиск и воробьёв.
Во-первых, этот юскейс настолько част и удобен, что все современные браузеры встроили поисковую строку в строку набора адреса, так что теперь все так или иначе пользуются поисковой строкой для ввода.
Во-вторых, про воробьёв, Здесь основная причина — что иде едят чуть больше ресурсов и чуть дольше грузятся, но данная проблема отпала лет пять-десять назад, для современных мощностей плевать какой редактор ты юзаешь.
В-третьих, если ты научишься стрелять из пушки по воробьям, то представь как ты будешь хорош в настоящем бою.
А если хотите, могу продолжить аналогию про поиск и воробьёв.
Во-первых, этот юскейс настолько част и удобен, что все современные браузеры встроили поисковую строку в строку набора адреса, так что теперь все так или иначе пользуются поисковой строкой для ввода.
Во-вторых, про воробьёв, Здесь основная причина — что иде едят чуть больше ресурсов и чуть дольше грузятся, но данная проблема отпала лет пять-десять назад, для современных мощностей плевать какой редактор ты юзаешь.
В-третьих, если ты научишься стрелять из пушки по воробьям, то представь как ты будешь хорош в настоящем бою.
Нет, вы же говорили о том как вам ide мешает работать и что приходилось обходить её фичи.
Например мешает, что для начала нужно настроить проект. Зачем мне это делать, если я просто хочу написать небольшой фрагмент кода для проверки своих идей? А если я занимаюсь большым open source проектом, со своей собственной системой сборки, про которую IDE не в курсе?
Я занимался разработкой kernel-модулей для FreeBSD и в процессе пришлось очень много копаться в коде; vim-а было вполне достаточно (ну и ctags конечно).
Хорошая статья, странно правда, почему не упоминается такой титан как Embarcadero RAD Studio?
В целом я бы резюмировал так — делать серьезный коммерческий проект в текстовом редакторе на новом «модном» языке не разумно, знакомый язык и привычная IDE будут в разы продуктивнее. А вот исследовательские эксперименты или небольшие скрипты, можно творить на чем угодно и в чем хочется.
В целом я бы резюмировал так — делать серьезный коммерческий проект в текстовом редакторе на новом «модном» языке не разумно, знакомый язык и привычная IDE будут в разы продуктивнее. А вот исследовательские эксперименты или небольшие скрипты, можно творить на чем угодно и в чем хочется.
Ну, автор оригинала — весьма уважаемый тип, программер, проджект менеджер в Apple, автор кучи опенсорсных утилит, нескольких книг и как минимум одного языка программирования. Наверное, имеет право на мнение.
Я знаком с программистами обоих «лагерей». И что правда — то правда. Каждый выбирает то, что ему ближе. Мне, лично, нравится изучать языки и сидеть в Vim. Нежели разбираться с крутецкими возможностями интеллиджей.
Бывает так, что писать на определённом языке без IDE достаточно сложно, например на Java. Но чаще всего набора средств расширяемого текстового редактора достаточно для продуктивной разработки, особенно если вы ими хорошо владаете. Я например, инвестировав много времени в изучение фич и особенностей одного редактора могу спокойно работать с Perl, Python, Ruby, C, C++, Javascript, CSS, HTML. Средства отладки (pdb, etc)- доступны. Средства рефакторинга тоже есть в редакторе. Поиск файлов, подстрок, и определений тоже реализован. Всякие там букмарки, быстрые переходы, ссылки, и т п. Т е есть готовый инструментарий, для того чтобы делать 80% функционала IDE в редакторе.Ведь в конце концов по моему то ли 80 то ли 90 процентов времени программист тратит не на непосредственное написание кода, а на чтение кода. При чтении кода чаще всего нужно уметь найти точку определения чего лидо (rgrep либо tags) и быстро перейти на определение (tags). При написании — удобно использовать готовые шаблоны, в моём редакторе это yasnippet. Ну и главное, при должном умении и упорстве можно этот самый редактор расширить почти до функционала IDE. Кто не догадался, это Emacs.
>компилятор\интерпретатор
bit.ly/crooked_slash
bit.ly/crooked_slash
Есть ещё одна сторона вопроса: нормальные инструменты под динамические языки очень сложно создавать и их почти нет (исключения здесь, пожалуй, smalltalk и common lisp), т. к. знание о типе значения часто не может быть выведено (в отличии языков со статической типизацией). Во всяких IDE типа rubymine, pycharm и т. п. используется статический анализ, но автодополнение часто врёт (причем даёт как ошибки первого, так и второго рода).
Sign up to leave a comment.
Язык vs инструмент