Когда нужны и не нужны IDE.

Mar 22, 2013 10:21

(это мой коммент к прошлому посту)

Есть совершенно разные виды кода - есть код "трудный" и "сложный", по-английски "complex" и "complicated" (но английские варианты я все время путаю), для трудного лучше супер-языки, для сложного - супер-IDE.

Трудный код - его мало, он нетипичный и, как правило, плохо поддается разбиению на модули. "Рожается" медленно и типично для этого нужны супер-гуру, 1-2 шт.
Сложный код - его много, но он плюс-минус однообразный, и не поддается уплотнению. "Рожается" быстро, но с кучей мелочей, типично параллелизуется на Х программистов, X>5.

Например, "написать движок построения планов к БД" - трудный код.

Написать экспортеры в Х форматов - сложный код.

Поскольку я сам люблю писать трудный код, да и многие другие программисты любят, то легко попасть в "пузырь" обратной корреляции - "для супер-гуру IDE не нужны, значит они никому не нужны". Нужны. Только не всем.

А делятся программисты на два лагеря вот так: http://osteele.com/posts/2004/11/ides (за ссылку спасибо lionet)

Хорошие инструменты рефакторинга, тестирования, профилирования (!) и "умные" редакторы так же повышают производительность программиста, как и языки программирования с повышенной смысловой плотностью кода, т.к. позволяют редактировать на уровне более осмысленных операций, но при этом не требуют компромисса с читабельностью кода (т.к. в мозгу требуется держать меньше идиоматических языковых конструкций).

И, да, это я не скажу что "железобетонно", но по моему опыту это коррелирует. И коррелирует, действительно, тем сильнее, чем больше людей работает над проектом.

Если я пишу сам - я могу херачить DSL'и транслирующиеся по нескольку метауровней в итоговый код, если пишет 3 человека - уже появляются какие-то conventions, если пишет 30+ - то фичи языков начинают активно запрещаться, иначе человек, ушедший в отпуск, тратит еще месяц на последующее "вьезжание в тему".

Поэтому, проекты, где много рутины - надо писать на языках с IDE и прочим инструментарием, используя его на всю катушку, а "жесткие ключевые части" можно писать на чем угодно.

Рутины типично много везде. Поэтому LISP не побеждает, а остается нишевым языком. А тот же самый дотнет рантайм прототипировался на лиспе. И это нормально. Для каждой задачи свой инструмент.

This entry was originally posted at http://wizzard.dreamwidth.org/271706.html. It has
comments. Please comment there using OpenID.

программирование, мысли

Previous post Next post
Up