К трендам, о которых вы упомянули, я бы добавил еще одну, которая объясняет их ИМХО
Программистов гораздо больше (нужно), чем когда-либо.
Количество задач, которые требуют или включают программирование, постоянно увеличивается, и даже с большей скоростью, чем число программистов. В настоящее время в среднем автомобиле есть несколько микрочипов. Через 5 лет в вашем холодильнике и тостере может появиться чип. Через 10 лет ваше нижнее белье? ... И кто-то должен произвести все это программное обеспечение, чтобы заставить их работать. Поэтому прилагаются все возможные усилия для автоматизации всего, что может быть автоматизировано, и для повышения «производительности» (как бы она ни была определена). И все больше и больше свежих мозгов набирается.
Это означает, что большинство современных активных программистов неопытны и / или плохо подготовлены к своей работе. Требуется несколько лет, чтобы достичь адекватного уровня опыта и постоянно учиться, чтобы держать себя там. Суть в том, что все больше и больше задач по программированию становятся все менее и менее сложными. Но для тех, кто их ищет, все еще достаточно проблем .
Позвольте мне сыграть адвоката дьявола против ваших пунктов выше:
Не тратить время на внедрение лучших практик
Многие люди не делают, многие люди делают. Десять лет назад, когда я впервые обнаружил модульное тестирование и гибкий подход, ни один из моих коллег не имел ни малейшего представления, что это было. В наши дни это почти стандартный материал в университетах, поэтому многие выпускники уже понимают это.
Максимально используя чужой код (пользовательский код как обязательство)
В отличие от чего? Изобретая колесо? Или используя чужой код, чтобы избежать этого?
Я думаю, важно отметить, что нам платят (в основном) за решение проблем, и написание кода - это не конец, а лишь средство для этого . Если проблему можно решить, не написав ни единой строки кода, это все равно делает клиента счастливым. Особенно, если таким образом нам удастся найти более надежное решение быстрее и дешевле. Я не вижу никаких проблем с этим.
Использование языков более высокого уровня для повышения производительности
В отличие от кодирования всего в сборке? ;-)
«Инструменты» разработки на основе графического интерфейса, которые значительно упрощают «программирование» и не требуют, чтобы люди понимали, как работает код.
ИМХО любой инструмент можно использовать не по назначению. Это не означает, что создатели графического интерфейса обязательно были идеальными или даже хорошими - большинство (или, по крайней мере, некоторые) из них можно использовать в своих пределах. Но если кто-то не знает этих ограничений, это проблема инструмента или его пользователя?
В целом, я полагаю (хотя у меня нет никаких доказательств, подтверждающих это), что в дни перфокарты и машинного кода примерно такая же доля существующего кода была ужасна, как и сейчас, только
- общий объем кода и
- шансы посторонних когда-либо видеть такой код
было намного намного меньше.
Теперь, благодаря Интернету и Daily WTF, мы ежедневно сталкиваемся с худшими примерами. Это все равно, что смотреть все новости о терроризме и землетрясениях, разводить знаменитостей и плакать, насколько опасным и аморальным стал этот мир.