Имеется в виду серьезный проект, где большая прикладная проблематика. То есть, выбрали например для веб-разработки вместо PHP -- C++ CGI. Или для встроенных решений вместо Assembler или C -- какое-нибудь Perl. Ну вы поняли? Насколько важно выбрать именно тот язык, который оптимален? А если его знаешь плохо, но он будет хорош в этой задаче? Это лучше или хуже того, чем если будешь использовать старый проверенный знакомый тебе язык?
"То есть, выбрали например для веб-разработки вместо PHP -- C++ CGI" Бывает такое. Ну, не настолько тупо. Но например запилить ядро на C++ в расчете под highload и фронт на PHP или Node.js, а в итоге получить 2000 пользователей (совсем не highload), но зато этим C++ чудовищно усложнить разработку с первых до последних дней проекта, вполне себе реально. Я в таком проекте и работаю. Чудовищно - это, может быть, не в десятки раз (если в десятки, то там еще и другие факторы), но 3-5 раз будет. "А если его знаешь плохо, но он будет хорош в этой задаче? Это лучше или хуже того, чем если будешь использовать старый проверенный знакомый тебе язык?" Важно еще - кто кроме тебя его знает. Если проект - это не заказ на фрилансе за 15000, конечно.
Это сложно назвать ошибкой. Ближе будет - саботаж, намеренное действие. Сегодня сложно ошибиться. Даже на начальной стадии можно понять, что поставили не на ту лошадку и произвести коррекцию, минимизировав ущерб поспешного решения. Но чаще всего перед непосредственной разработкой полезно провести нечто вроде ОКР с оценкой возможных сценариев и использования тех или иных средств, привлекая экспертов по мере возможности. Так что, если упрямо следовать однажды выбранного курса, результат ожидает быть плачевным, но в обычном, не фанатичном состоянии можно прийти к оптимальному
Сложный и многогранный вопрос, общий знаменатель здесь подвести очень сложно. Есть очень условное понятие уровня языка. Мол Ассемблер - язык низкого уровня, С - среднего, пайтон - высокого а яваскрипт - небесного. Так вот, если выбранный язык уровнем ниже, чем решаемая задача (написание CGI на С) то это вероятно выльется в большие временные потери, но не более того. Если же решаемая задача ниже уровнем, чем выбранный язык, то задача может оказаться неришаемой средствами выбранного языка. Т. е. перед тем, как начать писать микропрограммы для контроллёров на каком нибудь перле, этот самый перл вероятнее всего придётся портировать на микроконтроллеры. Для чего понадобится С/Ассемблер. Кроме того, некоторые фишки языков высокого уровня могут быть впринципе неприменимы или сложноприменимы в низкоуровнеывх задачах. Но, послушай совет, если перед тобой в принципе стоит проблема выбора между "языком, который знаю хорошо" и "языком, который подходит к задаче", выбирай последнее. А ещё - освой в свободное время какой нибудь ассемблер. Неважно какой - хоть минималистичный от микроконтроллера PIC, хоть трюковатый от архаичного MOS6502, хоть перегруженный x86-64. Можно на эмуляторе каком нибудь. И, желатьельно, почитай про лисп и форт. В какой-то момент времени просто становится без разницы на чём писать. И вот именно в этот момент можно уже начинать называть себя программистом с уверенностью не только на собеседованиях но и среди друзей.
Зависит от того, насколько сильно ты промазал. Если для работы с WinAPI ты вместо C++ использовал Delphi, то в общем-то ничего страшного - потрахаесси с поиском заголовочных модулей и все устаканится. А если для тех же целей ты решил использовать JavaScript - тады ой тебе, родной.