Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Фундаментальная ошибка местной студентоты и джуниоров, рассуждающих о ненужности лямбд и т.п., в том,
- что они пытаются рассуждать о языках программирования практически не имея никакого опыта разработки.
- Написавшим свой первый тетрис, калькулятор и теперь вооон тот отчет для Клавдии Ильиничны за 35 тысяч рублей в месяц,
- им всё кажется новым и интересным, даже какашки в песочнице, а синдром утёнка заставляет их думать, что первый язык,
- за программирование на котором им дали первые деньги на карманные расходы, и есть самый лучший, самый мощный и самый правильный, а все, кто не с нами - те глупее нас.
- Психология опытного разработчика устроена иначе. После нескольких лет работы он знает свой инструмент от и до,
- не находит в нём ничего нового, и все свои задачи он знает от и до. Причем задачи для него становятся похожими друг на друга как две капли воды,
- ведь процесс познания заключается в изучении множества частных случаев с последующим абстрагированием и выведением общих закономерностей.
- В конце концов какая разница, нужно ли мне зипануть два списка, собрать результаты работы двух парсеров или посчитать сумму двух сигналов:
- для опытного разработчика всё это - map apply на аппликативных функторах.
- Вот тут и начинается самое интересное: с одной стороны язык для опытного разработчика больше не является предметом фапа и изучения,
- единственное требование к нему - возможность записать программу в категориях, максимально близким к тем, которыми он мыслит.
- С другой - мышление опытного разработчика гораздо более абстрактно и высокоуровнево, чем мышление джуниора, следовательно,
- язык должен иметь средства выражения этих абстракций. В этот момент многие разработчики перерастают свой инструмент.
- Более удачливые переходят на другой, более развитый. Менее удачливые, у которых нет такой возможности, вообще перестают программировать,
- аргументируя это тем, что программирование - тупое, однообразное занятие, и становятся аналитиками или архитекторами
- (т.е. фактически тоже меняют инструмент - убогий негибкий язык программирования на гибкий и удобный документ microsoft word).
- Восторга джуниоров ни те ни другие как правило не разделяют, просто первые говорят, что LANG_A - убогое говно,
- а LANG_B - крутой инструмент для опытных программистов, а вторые говорят, что LANG_A - это нормальный инструмент для подчинённых им обезьянок,
- а применения для LANG_B они не видят, поскольку ни они сами, ни их обезьянки этим инструментом не владеют.
- И последний вопрос - что же происходит, если LANG_B попадает в руки джуниора? А ничего не происходит,
- потому что он просто еще не понимает назначение всех этих абстракций и в лучшем случае программирует на LANG_B как на LANG_A
- (обычно более мощные языки позволяют писать на них как на менее мощных, обратное неверно). Я сам неоднократно встречал студентов,
- изучавших lisp и prolog в университете (да, сейчас это норма, в моё время никаких лиспов в росийских университетов не было) и совершенно не понимающих,
- к чему все эти знания. Какого же было их удивление, когда я показывал им как то, чему их пытались учить, применяется на практике,
- как это позволяет делать более грамотную декомпозицию программы, писать более сопровождаемый код,
- где лежат пределы выразительности используемого нами языка и как программу можно было бы записать если бы язык был более выразителен.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement