Pull to refresh

Comments 134

Они, как никто другой, знают, чем чревата разработка важных проектов в созданном ими самими программном обеспечении.
UFO just landed and posted this here
Видимо коммент к другому посту:)
Слишком многое зависит от самого программиста, к чему он привык и какие навыки у него есть. Рано или поздно человек сам определяет с какими инструментами ему удобнее работать: графическими или текстовыми. Да и для разных задач программист может использовать разные инструменты.

«Однако специалисты самой Microsoft зачастую предпочитают кодировать в обычном текстовом редакторе.» — не нужно забывать что есть масса разных специальностей, связанных с программированием, врядли системный архитектор будет проектировать систему в текстовом редакторе.
в emacs'е — почему бы и нет?
Проектировать систему лучше всего на огромном листе бумаги, за большим столом со всеми, кто потом разбежится по комнатам и будет это реализовывать. Причём в комнате не должно быть ничего, кроме людей, огромного листа бумаги, карандашей ( фломиков, ручек ) и здравого смысла в обсуждении.
Компьютер — лишь инструмент).
А из редакторов я лично использую только UltraEdit.
ИМХО.
vi — да, зато он есть везде. а вот vim… ;-)
"Настоящие программисты использую бабочек" ©
Title: Настоящие программисты устанавливают универсальные константы с самого начала таким образом, чтобы эволюция вселенной привела к появлению диска с нужными им данными.
emacs с viper-mode рулит! Три ключевых преимущества, которые больше никто не в состоянии обеспечить:
1. Отличный текстовый редактор, позволяющий выполнять сложные операции в две три кнопки. Особенно с плагином vimpulse к viper-mode.
2. Правильная архитектура IDE, большое количество хороших плагинов и вменяемый язык расширений (eLisp), вместо всяких vimscript'ов и Джав.
3. Наличие текстового режима, что позволяет использовать его по ssh. Для меня это необходимость. Остаётся только дождаться когда x-popup-menu заработает в текстовом режиме. :)
думаю, этот пост завуалированный намёк на то, что программисты Microsoft на самом деле кодят в vim
UFO just landed and posted this here
Кодят в vim в том числе, это точно. Алекс Могилевский из команды IE говорил об этом в прошлом году в одном из интервью.
Я думаю, что в Microsoft есть даже программисты, которые кодят в TextMate, не то, что в vim :).
Я работаю в микрософт и порой пишу код в виме тоже )
Но в основном всё же в eclipse и notepad2. Вот недавно начал учить студию.
сходил поднял тебе кармы. спасибо!
«vim имеет два режима: всё портить и бибикать» ©bash
баш? да эту шутку придумали когда большинство из нас о нём и не слышало.
поправка. Ресурс «bash.org.ru»
я б даже сказал, тем более.
Про контроллер для X-Box — это он хорошо пошутил. К тому все и идет
И самое главное, как мне кажется — это совсем не есть плохо. Смотря с какой стороны смотреть на программирование. Если как на искусство — это одно, но если как на способ максимально быстро решить реальную прикладную задачу — это совсем другое.
Во втором случае, считаю, что было бы круто иметь интуитивно-понятный (даже для не-программиста) DSL, основанный на жестах.
А в чем цель такого «интуитивно-понятного даже для не-программиста DSL»? Все равно ведь будут только программисты пользоваться :)
А то, что скорость решения задач увеличивается — это да, несомненно плюс.
«Все равно ведь будут только программисты пользоваться :)»

Ну я наверное не совсем верно выразился. Я имел в виду программистов в современном понимании. Ведь с ростом технологий вполне возможно появление DSL, когда просто хороший спец в предметной области может стать «сам себе программист» (все остальное абстрагировано, а сам «язык» программирования интуитивен).

Хотя, наверное, программисты, в классическом понимании слова, вряд ли исчезнут в ближайшее время, несмотря на все технологии (Domain-Specific — понятно, но ведь еще и системные штуки кто-то писать должен). Впрочем, загадывать не буду — завтра возможно все, что угодно :)
С джойстиком в виде бубна :)
А если наиграть мелодию из марио напишется фраза: «Thank You Mario! But Our Princess Is In Another Castle!»
ахтыжнифига себе кому-то делать нечего %)
Наконец то я увидел как удаляют гланды через одно место.
Был такой фильм "Нирвана" в своё время — там в качестве инструментария использовался исключительно мыслеконтроллер на голове =)
что-то мне подсказывает что речь идет не о IDE, а о WYSIWYG редакторах форм. а IDE гараздо более чем «текстовый редактор» и я очень сомневаюсь что они используеют notepad, а не IDE
текстовый редактор — это гораздо более, чем notepad. (см. vim, emacs, ..)
«Ведущие программисты Microsoft» работающие в vim или emacs, это было бы забавно :)
Microsoft используют *nix системы, в этом нет ничего странного. Если они пишушут в vim или emacs, только плюс им +)
Это что-то из области когнитивного диссонанса, умом вроде понимаешь что это нормально, но ощущение что как-то это неправильно :)
кстати, а при чём тут никсы? я, вполне себе виндузятник, всегда ставлю дефолтным текстовым редактором vim. Потому как без его макросов так неудобно же.
Мне кажется довольно сложно узнать про существование vim не попользовавшись никсами, разве нет?
У меня например дефолтный виндовый редактор Notepad++.
Не, одно дело быть знакомым, другое — использовать. (:
Не сложнее, чем узнать о существовании самих никсов, по-моему.
И вообще, будто новички в никсах пользуются вимом. Даже во всех руководствах показывают то gedit, то nano.
Достаточно читать хабр, например этот топик :)
Фокус в том, что программисты в Ms действительно используют эти редакторы. В VS, например, можно включить бинды Emacs.

Да и они довольно часто нанимают специалистов из мира *nix. А у последних текстовые редакторы — типа фетиша.
Каждый выбирает что ему удобно для работы если это не ограничено извне(корпоративные стандарты, сфера разработки и т.д.). И было бы удивительно в масштабах MS ограничиваться только собственными инструментами.
я думаю что Вы все же поняли мою мысль ;)
notepad — это вообще ошибка природы. ничто не мешало майкрософту за столько лет развить его в более-менее нормальный редактор, но нет, вон сколько лет они Ctrl+S в нём делали.
Зря ругаетесь. Notepad — идеальный сферический редактор в вакууме. Я на работе использую его чаще чем Notepad++.
>Notepad — идеальный сферический редактор в вакууме.

ага. для коня.
Советую попробовать Notepad2: code.kliu.org/misc/notepad2/
Он автоматически заменяет Notepad во всей системе, и он намного, намного удобнее.
А зачем? :) Для редактирования кода у меня уже есть VS и Notepad++. Для изливания мыслей удобен мнговенно доступный блокнот.
Notepad2.exe или notepad++.exe чем-то принципиально отличается от notepad.exe в плане доступности?..
Не скажу за Notepad2, но иногда нужно просто текстовое поле.
Истинно так. Пока я не стал «жить» в OneNote — плодил ".txt" на десктопе.
vim.png - image uploaded to Picamatic

И это по прежнему мощный текстовый редактор vim, а не штучка, в которой можно набирать текст.
Отрубаю панель инструментов в Notepad++, тогда ничего не отвлекает
для мыслей хорошо EverNote или OneNote
блокнот хорош только тем, что есть везде

ничего вы не понимаете. микрософт изобрела лучший в мире Room-редактор, а остальные ей просто завидуют и пишут свои велосипеды :)
Балин, промазал — плюс хотел, сорри.
Вы породили «ветку ненависти» :)
Редактор форм, в котором бросают компоненты — это лишь удобный инструмент, работа с которым в серьезном проекте занимает очень небольшой промежуток времени.

Другое дело, что сейчас, особенно судя по студентам, тенденция именно к компонентобросательству и мышепрограммированию. Клавиатурой мало кто владеет, с нее лишь набирают текст, а когда надо поставить закладку или брейкпоинт, то тянутся за мышью.
В посте идет речь о некоем «сферическом программировании в вакууме». Конечно, писать компиляторы языков программирования или код ядра ОС можно и в текстовом редакторе и в среде разработки с примерно равным успехом.

А как быть мне с Visual Studio soluition'ами в которых по пол-сотни проектов на разных языках и две трети из них — имеют визуальный интерфейс, который средствами среды разработки делается в 10 раз быстрее? А вьюверы классов, а отладка, а настройки проектов и т.д.?

Всё далеко не однозначно.
Ну они так и говорят. ГУИ это легче, быстрее, иногда — удобней. Но в некоторых случаях приобретается ненужный контекст. Вы контролируете не весь код, а только его часть. А другие части могут вести себя непредсказуемо. Или предсказуемо но не всегда.
>Вы контролируете не весь код, а только его часть.
Да, сами выдвинули тезис и сами успешно его побороли. Никто ведь не утверждает, что гуй прямо таки волшебный. Но почему-то они не написали, как текстовые редакторы помогают контролировать ту оставшуюся часть, которую «не контролирует» гуй. По-моему, ни как или ещё хуже.
к тому же в той же VS при желании можно (а иногда даже нужно) редактировать текстом то, за что отвеxает GUI — щас почти все в XML
Конечно.

Однако же, есть и настройки проектов, и вьюверы классов, и дебаггеры, и бродилки по проектам, и бла-бла-бла. Но самое главное — код пишется быстрее и эффективней.

Есть такой разработчик, к примеру, в Google — Steve Yegge. У него чудовищный опыт разработки на Java, но IDE он не использует.
UFO just landed and posted this here
Ну IDE вообще-то удобно… Ну к примеру, я не могу запомнить синтаксис Java (точнее, названия методов — в JDK для возвращения числа элементов в списке/массиве/строке и т.д. я насчитал то ли четыре, то ли пять разных названий метода). На Питоне и на плюсах как правило можно писать и в текстовом редакторе, потому что все предельно стандартизировано и название метода в 99% можно банально угадать.

Опять же, IDE удобно когда начинается активная работа с third-party библиотеками — просто нету времени запоминать их названия методов и классов, да и необходимость отсутствует.

Ну и наконец, удобства code browser'а никто не отменял — ⌘⇧T / ⌘⇧R в Eclipse и его производных позволяет существенно экономить время перемещаясь по дереву исходных текстов, что особенно экономит время в случае если объем чистого текста становится больше какого-то предела (по факту — больше двух-трех мегабайт, дальше на скроллинг времени больше тратишь).

FAR+colorer, увы, сильно уступают даже vim, не говоря уже просто emacs, TextMate и полномасштабные среды разработки (про визуальность — ни слова).
Тут сильно зависит от языка. Для таких вещей как Java, возможно Python, .Net — языки, имеющие безумных размеров библиотеки классов, действительно без качественного быстрого автодополнения очень сложно работать.

А для C++, например, излишне интеллектуальная среда разработки может начать сильно раздражать.
Согласен, для плюсов это как правило проще — умная IDE сильно нужна только для очень большого объема кода (когда чисто физически невозможно держать в голове все одновременно). Проекты маленького и среднего размера на плюсах можно писать в TextMate/emacs/vim.
А я тут на днях попробовал VS 2010, так тамашний intellisense прям лапочка, так что я за интеллектуальность везде.
ну кстати, там где есть repl можно на него часть функция ide навешать. Например, попробуйте набрать вот тут try-python.mired.org/

dir('example string') и увидете список методов строки

я, например, до сих пор в PowerShell набираю help *service* вместо F1

Но с IDE, конечно, удобнее
А для C++, например, излишне интеллектуальная среда разработки может начать сильно раздражать

… своей беспросветной тупостью, ибо создание для C++ чего-то хотя бы отдаленно напоминающего ReSharper — дело практически невозможное. А все то, что есть (VisualAssist тот же) невероятно глючное.
RadASM всё же поудобнее будет
Как ни странно, действительно пользуюсь такой комбинацией для развития и поддержания проекта на перле (>400 модулей, >5 Мб сорцов, не считая стороннего кода). Ну ещё indent, это понятно, для tab/shift-tab. Для навигации по файлу использую ctags. С навигацией между файлами, созданием новых модулей, переносом кода между модулями никаких проблем, так как в фаре удобный файловый браузер. Визуальные компоненты (формы) пишутся в XML (самопальный энджин, который генерирует HTML с клиентскими и серверными валидаторами, сериализует состояние формы и т. д.), тестируются сразу же в браузере. Есть какие-то удобные фишки, которые были бы нелишними, но вряд ли они ускорят процесс разработки больше, чем на 5%. Какие фишки редактора могут улучшить качество кода, я вообще не знаю. Встроенный отладчик, пожалуй, не помешал бы. А так я всем доволен :-)
На ассемблере можно написать всё, но жизнь коротка :) (с) не помню
Вот в этом случае я с ними согласен. Сколько не пробовал — неудобно мне во всяких IDE. Мне достаточно gedit и подсветки синтаксиса…
Речь не об ИДЕ, а о визуальном программировании :) Читайте внимательнее.
А что вы имеете ввиду под визуальным программированием? Что типа типа HiAsm?
Ведь вряд ли накликивание интерфейса мышкой и последующее описание обработчиков уже в текстовом редакторе это виз. программирование.
Оно самое. Ведь накликивание как раз создает код. Иногда уже скомпилированный или такой что вручную его разбирать невозможно. Еще из технологий визуального программирования навскидку можно вспомнить UML.
Про IDE:
А авто рефакторинг?
А если классов 500+?
breakpoints в конце концов
Кстати, насчёт лишних вещей в контексте. Имхо, с этим не самым дурным способом справились ребята из Eclipse в плагине mylyn. Я уже сложно представляю себе программирование без этого редактора, т.к. у меня в среду импортированно достаточно большое количество более-менее крупных проектов, и без убирания лишнего с помощью mylyn сложно очень.
Не волнуйтесь вы так. Никто не отбирает ваши любимые IDE, речь идет о визуальном программировании противниками которого и являются эти самые ведущие программисты. Вот статья на википедии — en.wikipedia.org/wiki/Visual_programming

Цитата: «A visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually.»

Вольный перевод: «Визуальные языки программирования представляют собой язык программирования с помощью манипулирования графическими элементами программ вместо написания их в текстовом виде» (корявенько получилось, но смысл надеюсь понятен)

Т.е. программисты МС против Делфи-подобного подхода в программировании.
UFO just landed and posted this here
Не нужно подозревать. %) Достаточно прочитать оригинальную статью (ссылка в посте) или приведенную мной статью на вики.
Две цитаты из статьи-оригинала:
— «Do people want to draw pictures [to program]? Sure, I guess,»
— While visual programming can be easier to learn and can help make developers more productive, it's also «easier to delude yourself,»
UFO just landed and posted this here
странно, чего все так не любят delphi…
ведь все зависит от того, как человек, сидящий за ней, представляет программирование…

и вообще, не для экономии времени для более важных вещей придумали принцип кидания кнопки на форму? а не траты 5 минут на прописывании ее в коде…
Напоминает Нила Стефенсона:
It's possible to program a computer now by sitting at your desk in the Metaverse and manually connecting little preprogrammed units, like Tinkertoys. But a real hacker would never use such techniques, any more than a master auto mechanic would try to fix a car by sliding in behind the steering wheel and watching the idiot lights on the dashboard.
UFO just landed and posted this here
Нил, он, наверное, всё-таки Стивенсон. :)
Черт, действительно читается как Стивенсон. Виноват.
Ребятки, всем вам большоооой минус, особенно автору статьи.
«Но если вы выросли на программировании, как я, вы делаете это в текстовом виде»
«В текстовом виде» != «В текстовом редакторе», а означает «Без использования ГУИ», что включает прямые операции с кодом и не исключает CASE.
К примеру я программирую на JS и PHP, использую SQL и HTML. Все коды пишу в Eclipse IDE, который мне даёт серьёзный инструментарий, но при этом я также процесс программирования проходит «В текстовом виде».
UFO just landed and posted this here
Лет пять назад тоже так думал. Но после того как стал программить на Java в Eclipse мысли о том что нет ничего лучше ноутпада както пропали. Честно.
Попробуйте emacs с JDEE, если ничего не имеете против Лиспа и есть пара дней на первоначальную настройку.
Заказчик: Мне нужен сайт с CMS. Почем у вас танцевальное программирование?
Фрилансер: Без бубна 5$/час, с бубном 15$/час, VIP танец у шеста 50$/час.
танец у шеста женщины-программиста $200/час =)
И настанет время когда женщины-программисты будут получать в разы больше мужчин-программистов…
В основном мелкими купюрами.
«Однако специалисты самой Microsoft зачастую предпочитают кодировать в обычном текстовом редакторе.»
А вот если пойти и прочитать статью, на которую дана ссылка, то станет понятно, что (а) специалисты предпочитают old-school coding methods и (б) my text editor, а не «обычный тектовый редактор».

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

как раз для оптимизации чисто-текстовый редактор слабо подходит — он не даёт фидбэк.
я хочу видеть как располагается в памяти некая структура или как раскладывается в машинный код/конвеер CPU
мой свеженаписанный цикл. Тут же, мгновенно, в отдельном окошечке. без утомительного make-objdump-analyze
Речь в статье, грубо говоря, про рисование кода против печатания, а не про IDE vs текстовые редакторы.
хм. действительно :-/
Я собственно написал это после прочтения сходной статьи на osnews.com
там был спор IDE vs. plain text editor
действительно интересующимся этим вопросом предлагаю послушать и посмотреть оригинал
microsoftpdc.com/Sessions/FT52
а не читать пересказы журналистов через третьи руки

Don Box например, противопоставлял текстовый редактор всяким визуальным DSL-ам
в этом контексте и VS вполне себе текстовый редактор

а сам он, я думаю, использует intellipad:)
Если бы визуальные редакторы не были бы нужны, их просто не стали бы создавать. Для низкоуровнего программирования они не нужны, зачастую для простеньких программулин или каких-то отдельных модулей. Но когда перед тобой проект с сотнями тысяч строчек когда, процесс отладки, например, без визуального интерфейса представляется затруднительным.
> Если бы визуальные редакторы не были бы нужны, их просто не стали бы создавать.

\suicider_mode{Windows Vista тоже была никому не нужна, но это не помешало её написать}

> Но когда перед тобой проект с сотнями тысяч строчек когда, процесс отладки, например, без визуального интерфейса представляется затруднительным.

Не становится. Eclipse вполне себе справляется с проектом из сотен тысяч строк кода. Более того, я затрудняюсь понять, что такое «визуальный интерфейс отладчика».
Видимо противопоставляется GUI и CLI — половина комментов в топике — полный оффтопик :)
> Более того, я затрудняюсь понять, что такое «визуальный интерфейс отладчика».
ну хотя бы тултипы со значениями полей при наведении указателя мыши на переменную, визуализаторы значений.
Тултипы, визуализаторы значений и т.п. показывают информацию в текстовом виде и легко могли бы работать в текстовом режиме.

Чего в текстовом режиме не сделаешь (ну… почти), так это рисовалок блок-схем, и ГУЙ-дизайнеров.
У меня через плечо человек пишет довольно большой проксирующий сервер. Использует для брожения по коду gtags; для сложной отдадки — скрипты на gdb; для текста — Емакс.

написание Makefile или сборочных скриптов вы тоже считаете занятием неблагородным и бесполезным? А компиляция — это такая зеленая кнопочка в IDE?
Ребята просто не могут понять, как так: они мегагуру, программисты с 15 летнем стажем, а их обходят в программировании желторотые юнцы, которые даже строчки на асемблере не написали.
ИМХО, топик очень смотрится по соседству с «Электронная почта будет вечно, говорит автор Gmail „ и “Будущего здесь нет или что останавливает прогресс»
И мне очень жалко, что многие комментаторы с хабра, соглашаясь осуждают, даже не видав всю мощь и прелести DSL
Если DSL — это Domain Specific Language, то при чём здесь прогресс, визуальное программирование и эта статья?
DSL используются уже много десятков лет. Любая программа на Lisp или XML-схема — это своего рода DSL. И никто их не боится.
Любое визуальное программирование — это чистый DSL. Т.к. редактор знает только лишь доменное пространство, и любое его расширение возможно лишь либо расширением DSL либо хаком.
А вот текстовое представление зачастую можно использовать не только в доменном пространстве. Посмотрите хотя бы на недавно пролетавшую реализацию минера на чистом DSL языке bat файлов.
Кстати, по поводу XML, советую посмотреть как редактор XMLSpy работает с xml у которых задана схема ;-) Визуальное программирование в чистом виде :)
Шутка дня «Программисты Microsoft кодят на emacs и vim!» Ха-ха-ха, как смешно. Даже боюсь посчитать сколько раз эту шутку тут в комментах написали…

По поводу визуального и IDE. Есть такое понятие как бизнес процессы, которые только один заказчик может нарисовать на диаграмме при помощи UML, сам же разработчик никогда ни за что не разберет на 100% сам бизнес процесс, но запрограммировать его сможет. Вот для таких случаев и подразумеваются графические тулзы — это идеал конечно же.

Я думаю будет в тему вспомнить высказывание товарища Брукса о несуществовании серебряной пули, т.е. метода или языка, способного повысить производительность программиста хотя бы на порядок.

Сложность ПО кроется в сложности анализа, постороения и отладки концепции, а реализация в коде имеет второстепенное программирование.

Визуальное программирование это миф, такой же миф как и автоматическая верификация программ.

Трольная тема. каждый увидел, то что хотел — тему для флуда, основанная на абстрактных высказываниях.
Популярные IDE Eclipse, Netbeens ибеют как средства для графического рисования кода, разные визарды и при это обладают мощными средствами для написания кода и автоматизации — шаблоны, макросы и т.д. Типичный процесс разработки — высокоуровневый набросок кода, набрасывание компонентов, визардов, запуск шел генераторов а-ля руби и далее переход к низкоуровнему набиранию кода ручками. IDE не ограничивает, а лишь даёт дополнительные возможности
Это просто реклама PowerShell, ничего более.
Заголовок еще более ужасный, чем переданный смысл.
Предел производительности? О чем они?
ну для одного ядра, грубо говоря, этот предел уже достигнули, сейчас увеличивают количества ядер… когда они перестанут «помещаться в корпусе» и новый софт использует все возможности Iстопиццот, придется оптимизировать программы :)
Ну да, это «грубо говоря»))
И вообще, щас тренд на уменьшение размеров всего и вся, так что мы до этого предела не доживем)
Перевод вводит в заблуждение.

1) Microsoft Corp. has done more to popularize graphical programming than any other vendor.
2) Microsoft сделала как никто много для пропаганды GUI-интерфейсов.
Визуальное/графическое программирование — это не «графические интерфейсы».

По-моему проблема приукрашена. Я так совсем мало видел визуальных программистов в России и уровня они были ниже среднего (студенты). Ясно что ведущие программисты быдло-кодингом не занимаются и мало кто из них прямо-таки саму визуальную часть программирует.
Sign up to leave a comment.

Articles