Вы найдете в основном два ответа на это & ndash; религиозный (Да! Конечно! Это самый лучший язык!) и другой религиозный (ты, должно быть, шутишь! Питон? Нет ... он недостаточно взрослый). Возможно, я пропущу последнюю религию (Python ?! Используйте Ruby!). Правда, как всегда, далеко не очевидна.
Плюсы : это легко, удобно читать, с батареями, есть много хороших библиотек почти для всего. Это выразительная и динамичная типизация делает ее более краткой во многих случаях.
Минусы : поскольку динамический язык имеет гораздо худшую поддержку IDE (для правильного завершения синтаксиса требуется статическая типизация, будь то явная в Java или предполагаемая в SML), его объектная система далеко from perfect (интерфейсы, кто-нибудь?) и легко получить грязный код, в котором есть методы, возвращающие либо int, либо boolean, либо object, либо что-то вроде при неизвестных обстоятельствах.
Мой дубль & ndash; Я люблю Python для сценариев, автоматизации, крошечных веб-приложений и других простых четко определенных задач. На мой взгляд, это лучший динамический язык на планете. Тем не менее, я бы никогда не использовал бы его любой динамически типизированный язык для разработки приложения значительного размера.
Скажи & ndash; было бы неплохо использовать его для переполнения стека, в котором участвуют три разработчика, и я думаю, что не более 30 тыс. строк кода. Для больших вещей & ndash; Сначала ваша разработка будет очень быстрой, а затем, когда команды и кодовая база растут, все замедляется сильнее, чем в Java или C #. Вам нужно компенсировать отсутствие проверок времени компиляции, написав больше юнит-тестов, рефакторинг усложняется, потому что вы никогда не знаете, что прервал рефакоринг, пока вы не запустите все тесты или даже целое большое приложение и т. Д.
Сейчас & ndash; решите, насколько большой будет ваша команда и насколько большим должно быть приложение, как только оно будет готово. Если у вас 5 или менее человек, а целевой размер примерно равен переполнению стека, пишите на Python. Вы закончите в кратчайшие сроки и будете довольны хорошей кодовой базой. Но если вы хотите написать второй Google или Yahoo, вам будет намного лучше с C # или Java.
Заметка о C / C ++, которую вы упомянули: если вы не пишете критически важное для производительности программное обеспечение (скажем, массивный параллельный raytracer, который будет работать в течение трех месяцев, снимая фильм) или очень критически важную систему (скажем, Mars Marsander, который будет летать три года подряд и имеет только один шанс получить право, или вы потеряете $ 400 млн.) не используйте его. Для веб-приложений, большинства настольных приложений, большинства приложений в целом это не очень хороший выбор. Вы умрете при отладке указателей и распределении памяти в сложной бизнес-логике.