Advertisement
Guest User

LangA - LangB

a guest
Jul 29th, 2016
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.89 KB | None | 0 0
  1. Фундаментальная ошибка местной студентоты и джуниоров, рассуждающих о ненужности лямбд и т.п., в том,
  2. что они пытаются рассуждать о языках программирования практически не имея никакого опыта разработки.
  3. Написавшим свой первый тетрис, калькулятор и теперь вооон тот отчет для Клавдии Ильиничны за 35 тысяч рублей в месяц,
  4. им всё кажется новым и интересным, даже какашки в песочнице, а синдром утёнка заставляет их думать, что первый язык,
  5. за программирование на котором им дали первые деньги на карманные расходы, и есть самый лучший, самый мощный и самый правильный, а все, кто не с нами - те глупее нас.
  6.  
  7. Психология опытного разработчика устроена иначе. После нескольких лет работы он знает свой инструмент от и до,
  8. не находит в нём ничего нового, и все свои задачи он знает от и до. Причем задачи для него становятся похожими друг на друга как две капли воды,
  9. ведь процесс познания заключается в изучении множества частных случаев с последующим абстрагированием и выведением общих закономерностей.
  10. В конце концов какая разница, нужно ли мне зипануть два списка, собрать результаты работы двух парсеров или посчитать сумму двух сигналов:
  11. для опытного разработчика всё это - map apply на аппликативных функторах.
  12.  
  13. Вот тут и начинается самое интересное: с одной стороны язык для опытного разработчика больше не является предметом фапа и изучения,
  14. единственное требование к нему - возможность записать программу в категориях, максимально близким к тем, которыми он мыслит.
  15. С другой - мышление опытного разработчика гораздо более абстрактно и высокоуровнево, чем мышление джуниора, следовательно,
  16. язык должен иметь средства выражения этих абстракций. В этот момент многие разработчики перерастают свой инструмент.
  17. Более удачливые переходят на другой, более развитый. Менее удачливые, у которых нет такой возможности, вообще перестают программировать,
  18. аргументируя это тем, что программирование - тупое, однообразное занятие, и становятся аналитиками или архитекторами
  19. (т.е. фактически тоже меняют инструмент - убогий негибкий язык программирования на гибкий и удобный документ microsoft word).
  20. Восторга джуниоров ни те ни другие как правило не разделяют, просто первые говорят, что LANG_A - убогое говно,
  21. а LANG_B - крутой инструмент для опытных программистов, а вторые говорят, что LANG_A - это нормальный инструмент для подчинённых им обезьянок,
  22. а применения для LANG_B они не видят, поскольку ни они сами, ни их обезьянки этим инструментом не владеют.
  23.  
  24. И последний вопрос - что же происходит, если LANG_B попадает в руки джуниора? А ничего не происходит,
  25. потому что он просто еще не понимает назначение всех этих абстракций и в лучшем случае программирует на LANG_B как на LANG_A
  26. (обычно более мощные языки позволяют писать на них как на менее мощных, обратное неверно). Я сам неоднократно встречал студентов,
  27. изучавших lisp и prolog в университете (да, сейчас это норма, в моё время никаких лиспов в росийских университетов не было) и совершенно не понимающих,
  28. к чему все эти знания. Какого же было их удивление, когда я показывал им как то, чему их пытались учить, применяется на практике,
  29. как это позволяет делать более грамотную декомпозицию программы, писать более сопровождаемый код,
  30. где лежат пределы выразительности используемого нами языка и как программу можно было бы записать если бы язык был более выразителен.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement