Я увидел комментарий / замечание, в котором он что-то сказал - в отношении LINQ / lambda - в духе: «Пишите код, читаемый людьми, а не читаемый вашим компьютером».
Я думаю, что это утверждение имеет много достоинств, однако рассмотрим разработчика (такого как я), который прошел через весь спектр языков разработки от ассемблера, через процедурный, через ОО, через управляемый, используя высокопроизводительные параллельные решения для задач ,
Я гордился тем, что сделал свой код максимально читабельным и многократно используемым, и принял многие из принципов шаблонов проектирования GOF, чтобы предоставлять системы и сервисы качества производства во многих различных бизнес-секторах.
Когда я впервые столкнулся с лямбда-выражением, я подумал: «Что это, черт возьми, ?!» Это было сразу нелогично моему знакомому (и потому удобному) явному декларативному синтаксису. Младшие <5 лет на работе, ребята, однако, сложили это, как будто это была манна небесная!
Это потому, что в течение многих лет мыслить как компьютер (в синтаксическом смысле) очень легко переводилось в синтаксис прямого кодирования (независимо от языка). Если у вас было такое вычислительное мышление в течение примерно 20 лет (в моем случае 30+), вы должны понимать, что первоначальный синтаксический шок лямбда-выражения может легко перерасти в страх и недоверие.
Может быть, сотрудник в ОП произошел от меня, похожего на меня (то есть несколько раз был в этом районе), и это было для них нелогичным в то время? Мой вопрос: что вы с этим сделали? Пытались ли вы переучить своего сверстника в понимании преимуществ встроенного синтаксиса, или вы осудили / осудили его за то, что он «не участвует в программе»? Первый, вероятно, видел бы, как ваш коллега пришел к вашему образу мышления, а второй, вероятно, заставил бы их еще больше не доверять синтаксису LINQ / лямбда и, таким образом, усугубил бы негативное мнение.
Для себя я должен был перевоспитать свой собственный образ мышления (как выводит Эрик выше, это не незначительное изменение ума, и мне пришлось программировать в Миранде в 80-х, так что у меня был свой опыт функционального программирования) но как только я прошел через эту боль, преимущества были очевидны, но - что более важно - там, где его использование было чрезмерно использовано (то есть использовалось ради его использования), более сложным и повторяющимся (учитывая принцип СУХОЙ в этом случае).
Как человек, который не только все еще пишет много кода, но и должен также технически просматривать большой объем кода, я должен был понять эти принципы, чтобы я мог беспристрастно просматривать элементы, и посоветовать, где использование лямбда-выражения может быть более эффективным. читаемость, а также чтобы разработчики могли учесть удобочитаемость очень сложных встроенных лямбда-выражений (когда вызов метода - в этих случаях - делает код более читабельным, поддерживаемым и расширяемым).
Так что, когда кто-то говорит, что они "не получают лямбду?" или синтаксис LINQ, вместо того, чтобы рекламировать их, пытаться помочь им понять основные принципы. В конце концов, у них может быть «старая школа», как у меня.