Мне довелось поучаствовать в неформальной дискуссии, начавшейся с обсуждения предпочтений в синтаксисе ассемблерных исходников – Intel vs. AT&T, продолжившейся обсуждением выбора инструментов для дизассемблирования и для разработки вообще и через тезис “UNIX растет вширь, перерабатывая и улучшая существующий опыт; UNIX – это не инновационно”, плавно перешедшей в (сейчас чешу репу, не могу найти прямой связи) “opensource не дает основы для инноваций”. Я откину края и сосредоточусь на теме “UNIX и инновации”.
Основные аргументы нападения: что есть у UNIX для…
…дизассемблирования – objdump. Километры текстовых файлов; никаких дополнительных удобств;
…отладки – gdb. Консольно-командный интерфейс; никаких дополнительных удобств;
…редактирования текстов – vi(m), emacs. Почему так неочевидно и запутанно? Сколько комбинаций клавиш забудется после года бездействия?
Мои аргументы в ответ:
перечисленные инструменты – в духе UNIX: одна программа хорошо делает одно действие; они либо неинтерактивны, либо управляемы снаружи;
они базовые; они одинаковы во всех системах; они – общий язык, общая культура; они – точка приложения усилий, направленных на улучшение каждого конкретного действия – дизассемблирования, отладки, редактирования текста;
они не единственные, они – основные; если кому-то требуется большее – весь мир в его распоряжении;
только для vi(m): идея работы с текстом в основном не как с картинкой из букв а как со структурированным объектом;