Мой девиз (и уже давно): «Python, где я могу, C ++, где я должен» (однажды я найду возможность реально использовать Java, C #, & C & C, в реальном проекте, но я еще нет, за исключением пилотного проекта в Java 1.1, более десяти лет назад ... ;-) - Javascript (с dojo), когда код должен выполняться в браузере клиента, и SQL, когда он должен запускаться в сервер БД, конечно, но C ++ и Python - мой ежедневный хлеб на «обычных» серверах и клиентах, которые я разрабатываю, и это относится ко всем частям Google, в которых я работал более 4 лет (есть много частей используя Java, я просто никогда не работал там ;-). Хммм, есть чистый C, когда я работаю над ядром Python и соответствующими расширениями, конечно же; -).
Ни Python, ни C ++ не являются "строго ОО" - они мультипарадигмы, и в этом заключается значительная часть их силы в руках программистов, обладающих высокой квалификацией в ОО и других парадигмах такие как функциональные, общие, декларативные и т. д. Я полагаю, что C # тоже использовал некоторые из них (иногда превосходя C ++, например, предлагая лямбды), и даже Java пришлось уступить некоторым (по крайней мере, универсальным) в некоторой степени, так что, несомненно, ясно, что «один размер подходит всем " не - многопарадигмальное программирование живо и хорошо! -)
C ++ (например, C) заставляет меня тщательно контролировать всю память (наше внутреннее руководство по стилю c ++ запрещает использование «умных указателей», которые равносильны плохим реализациям сборки мусора! -), что сильно увеличивает мою работу, но помогает убедитесь, что я не использую один бит памяти больше, чем строго необходимо в любое время: так, C ++ (или C, когда необходимо) - это выбор, когда память ограничена и драгоценна. В противном случае чрезвычайно высокая производительность Python (и Ruby или Javascript не сильно отличается, если вы к этому привыкли) делает его предпочтительным.
Я уверен, что есть промежуточная ниша для языка, который собирает мусор, но в основном статический, такой как Java (или C # до того, как он начал накапливать все больше и больше функций, включая динамические в 4.0, как я слышал), или иначе эти языки и родственные языки не были бы настолько распространены - я просто еще никогда не жил в этой своеобразной нише.