Миф о супер языке
Nov. 29th, 2011 05:53 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сомнительная польза от эзотерических языков – это эффект избранности. Вот вам типичный сценарий.
Большинство по настоящему умных программистов считают, что они слишком хороши для того, чтобы растрачиваться на программирование обычных приложений.
Но к тому же они любят эзотерические языки, демонстрирующие какие они умные.
Значит, их можно заставить писать приложения, разрешив им использовать их обожаемые языки для умников. Престо! Замечательный результат.
Но уберменши не будут унижаться внедрением. Как только весёлая разработка закончена, они исчезают.
После приходят профессиональные программисты и ошарашено созерцают величественный монумент ментальной мастурбации. Система выбрасывается и переписывается на нормальном языке программирования с использованием нормальных техник, доступных нормальным людям.
Суперпрограммисты обвиняют всех в тупизне, еще более раздувая чувство собственного превосходства.
Автор пишет только о языке. Я бы добавил - хороший программист умеет интегрироваться. То есть, (1) он сам может пользоваться чужими наработками и (2) кто-то ещё может использовать то, что написал этот хороший программист.
(1) Так случилось, что чужие наработки выглядят в виде библиотек. Вот начиная от stdlib, OWL, JDBC и Struts, и заканчивая MSXML, XAML, и прочим. Хороший программист знает много конкурирующих платформ и библиотек и умеет правильно выбирать ту, которая лучше всего подходит к конкретной задаче.
Чем больше знает - тем шире выбор.
Чем больше знает - тем лучше пишет на выбранной, умея использовать именно её преимущества и аккуратно обходить её недостатки.
(2) А после "уберменшей" приходят те, кому это внедрять и допиливать.
Все новорят писать ядро. Я не видел ни одного, кто написал бы в резюме, например, такое: "я не хочу быть библиотечным программистом, а хочу писать UI или прикладные скрипты под ядро". При этом ровное ядро - это удел одного-двух гуру, и работа измеряется в считанных человеко-месяцах. Дальше гуру теряет интерес, и его уже никакими коврижками не заманишь. А прикладная обвязка - это долгая и кропотливая работа "не-гуру".
Так вот, этим "не-гуру" иногда приходится допиливать и логику ядра. И если это ядро написано чёрт-те-как, из серии "0 errors, 100500 warnings - компилится, значит, работает" - это превращается в реальную проблему.
Не катят даже отмазки вида "я могу по каждой из этих 100500 warnings объяснить, почему авторы среды разработки - мудаки, а я - герой". Можешь объяснить - будь любезен, сядь и объясни -- например, в каментах к каждой строчке.
Большинство по настоящему умных программистов считают, что они слишком хороши для того, чтобы растрачиваться на программирование обычных приложений.
Но к тому же они любят эзотерические языки, демонстрирующие какие они умные.
Значит, их можно заставить писать приложения, разрешив им использовать их обожаемые языки для умников. Престо! Замечательный результат.
Но уберменши не будут унижаться внедрением. Как только весёлая разработка закончена, они исчезают.
После приходят профессиональные программисты и ошарашено созерцают величественный монумент ментальной мастурбации. Система выбрасывается и переписывается на нормальном языке программирования с использованием нормальных техник, доступных нормальным людям.
Суперпрограммисты обвиняют всех в тупизне, еще более раздувая чувство собственного превосходства.
Автор пишет только о языке. Я бы добавил - хороший программист умеет интегрироваться. То есть, (1) он сам может пользоваться чужими наработками и (2) кто-то ещё может использовать то, что написал этот хороший программист.
(1) Так случилось, что чужие наработки выглядят в виде библиотек. Вот начиная от stdlib, OWL, JDBC и Struts, и заканчивая MSXML, XAML, и прочим. Хороший программист знает много конкурирующих платформ и библиотек и умеет правильно выбирать ту, которая лучше всего подходит к конкретной задаче.
Чем больше знает - тем шире выбор.
Чем больше знает - тем лучше пишет на выбранной, умея использовать именно её преимущества и аккуратно обходить её недостатки.
(2) А после "уберменшей" приходят те, кому это внедрять и допиливать.
Все новорят писать ядро. Я не видел ни одного, кто написал бы в резюме, например, такое: "я не хочу быть библиотечным программистом, а хочу писать UI или прикладные скрипты под ядро". При этом ровное ядро - это удел одного-двух гуру, и работа измеряется в считанных человеко-месяцах. Дальше гуру теряет интерес, и его уже никакими коврижками не заманишь. А прикладная обвязка - это долгая и кропотливая работа "не-гуру".
Так вот, этим "не-гуру" иногда приходится допиливать и логику ядра. И если это ядро написано чёрт-те-как, из серии "0 errors, 100500 warnings - компилится, значит, работает" - это превращается в реальную проблему.
Не катят даже отмазки вида "я могу по каждой из этих 100500 warnings объяснить, почему авторы среды разработки - мудаки, а я - герой". Можешь объяснить - будь любезен, сядь и объясни -- например, в каментах к каждой строчке.
no subject
Date: 2011-11-29 11:40 am (UTC)no subject
Date: 2011-11-29 11:41 am (UTC)no subject
Date: 2011-11-29 11:43 am (UTC)no subject
Date: 2011-11-29 11:45 am (UTC)no subject
Date: 2011-11-29 11:46 am (UTC)no subject
Date: 2011-11-29 11:46 am (UTC)