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