За мой многолетний опыт работы:
- Языки изменились (как правило, относительно медленно).
- Круг проблем, которые могут быть практически решены, увеличился (несколько быстрее);
- Размер и сложность решений увеличились (относительно быстро);
- Было что-то
flavor of the day
(иногда хорошее, часто плохое).
Как отмечалось в обсуждении моделей, банда из четырех человек не изобрела шаблоны. Они придумали терминологию и шаблоны для решений, которые уже применяются.
В отличие от многих других областей, все еще много чего не является обычной практикой. Я видел много передовых вещей приходят и уходят. Многие из них были перефразировкой техник, уже применяемых на практике, и те, которые обычно достигли успеха в некоторой степени. Другие более или менее ушли, и большинство, где новые подходы. (Кто-нибудь видел язык пятого поколения в последнее время?)
Наиболее эффективные программисты, которых я видел, могут выбирать и собирать проверенные компоненты в рабочее решение. Это редко включает в себя что-то передовое, что обычно увеличивает риск проекта. Способность опираться на работу, которая уже была проделана, позволяет нам расширить сферу возможного.
Языки программирования имеют тенденцию делиться на относительно небольшое количество семей. Знакомство с одним языком в семье облегчает работу с похожими языками. Понимание библиотек, доступных на языке, и их использование могут значительно повысить производительность и надежность. В общем, я бы выбрал более старый язык с соответствующими библиотеками вместо более нового языка без соответствующих библиотек.
При применении новых технологий важно избегать Because We Can
синдрома. Добавление новой технологии, потому что это вкус года, имеет тенденцию вызывать больше проблем, чем решает. Знание того, когда технология решит реальную проблему, а когда она только добавит сложности, является полезным навыком.
По-настоящему хороший программист решит новые проблемы, а остальное использует существующие решения. Немногим компаниям нужны передовые технологии, всем нужны надежные решения.
Я обычно сожалею о скольжении лезвия бритвы. Я не помню, чтобы когда-либо сожалел об использовании проверенной технологии. Тем не менее, многое из того, что описано как new
переупаковка чего-то существующего. Обычно эта переупаковка делает вещи проще для понимания и применения соответствующим образом.