Я думаю, что Эван поднимает увлекательную точку. Возьмите его пример подпрограммы. В ранних языках программирования идея передачи параметров в подпрограмму и возвращение результата была чем-то, что вам нужно было явно кодировать. В современных языках он встроен. Или взять еще один пример: если/then/else встроен в большинство, если не все современные языки. Но в свои дни ассемблера мне пришлось написать код, чтобы это сделать. Не много, конечно, но все же, вы должны были написать инструкцию jump или goto, чтобы обойти блок else. И тот факт, что вам приходилось писать эти вещи сами, означало, что разные программисты сделали бы это по-разному, и было бесконечное соблазн быть умным и сделать это несколько иначе в этой программе, чтобы сделать его более эффективным или получить некоторые другие предполагаемое преимущество.
Последний пример, который приходит на ум, - итераторы. Вам нужно вручную написать их на C++ и в ранних версиях Java, но они встроены в Java 5. Это, возможно, синтаксический сахар, вам просто нужно просто создавать функции итератора. Лично я считаю, что это хорошая функция. Радикально ли это улучшает мою производительность? №
Есть ли что-то, что мы делаем все время, которое должно логически быть встроено в язык, чтобы стандартизировать и упростить его? Увлекательный вопрос. Я не думаю, что кто-то всерьез утвердит, что даже их любимый язык совершенен и абсолютно невозможно улучшить. Но каково будет направление следующего языка?
Конечно, некоторые функции, которые были добавлены в языки, являются бесполезным дополнительным багажом. По моему скромному мнению, Java enum делает больше, чем нужно, они добавляют пучок багажа без уважительной причины. Я уверен, что другие не согласятся и скажут, что они считают их невероятно полезными.
У меня нет вывода. Я просто согласен, что это увлекательный вопрос.
Мне очень нравится этот ответ. Это предполагает, что некоторые именованные шаблоны уже находятся в скромном повседневном использовании. Это заставляет меня думать: «Хорошо, вот ваш специальный набор шаблонов для завтрашнего суперязыка». –
«завтрашний супер язык» не может исходить из современных языков. Это должно быть совсем другое - иначе мы будем использовать только современные языки с несколькими расширениями. –
@ S.Lott: «Tomorrows super language», вероятно, придет на смену технологической сингулярности и, как я могу себе представить, сделает все шаблоны дизайна устаревшими;) – Juliet