Я только начал изучать Python, и я хотел бы получить больше контекста по языку.
Я понимаю, что во многих случаях Python является медленным языком по сравнению с C или C ++. Таким образом, Python, вероятно, не лучший выбор для приложений, которые должны работать как можно быстрее.
Помимо этого, кажется, что Python - отличный язык общего назначения, который легко читать и писать. Доступные библиотеки дают ему огромное количество функциональности. Помимо приложений, критичных для производительности, где плохой выбор для использования Python (и почему)?
Ответы:
Программное обеспечение нацелено на встраиваемые цели с их ограниченными ресурсами. Большинство процессоров на этой планете либо не могут запускать Python из-за недостатка ресурсов, либо никто не перенес версию на эту архитектуру. Большинство процессоров, даже сейчас, имеют меньше мегабайта памяти.
источник
Два места, которые приходят на ум, - это вещи, которые требуют большого количества параллелизма, для чего я бы использовал Erlang. Или сверхмощные числовые вычисления, которые я, вероятно, попытался бы использовать на Фортране.
источник
Поскольку Python является языком с динамической типизацией, без проверки во время компиляции, рефакторинг большого проекта Python, который не имеет обширных модульных тестов, будет трудным.
Поэтому, если у вас есть большой проект, который нужно поддерживать и модифицировать в течение длительного времени, и ваша команда не стремится создавать автоматизированные тесты для всего, тогда вам лучше использовать Java или C #.
источник
Если основное внимание уделяется разработке графического интерфейса для Windows, то я бы рекомендовал не использовать CPython, поскольку не хватает хороших дизайнеров форм (по сравнению с использованием .Net).
Однако IronPython работает на .Net, и у вас есть две IDE с дизайнерами форм на выбор: Visual Studio и SharpDevelop. На самом деле Python Tools для Visual Studio можно использовать как для CPython, так и для IronPython, что довольно неплохо, хотя я еще не пробовал ...
источник
Это действительно зависит от того, что вы подразумеваете под «плохим выбором».
Если вы имеете в виду приложения, в которых использование Python является очень сложным, то их относительно немного: основное, что приходит на ум и еще не упоминалось, - это код, требующий высокого уровня корректности, когда языки с системами сложных типов (Haskell, языки с зависимой типизацией) ) лучшие варианты.
Если вы имеете в виду приложения, в которых Python является неоптимальным (то есть есть лучший выбор), то их больше, но они также более субъективны. Например, по моему общеизвестному ограниченному опыту, работа с компиляторами и интерпретаторами намного проще с алгебраическими типами данных, сопоставлением с образцом и более функциональными функциями, чем у Python. Однако исчерпывающий список таких приложений невозможен, так как они варьируются в зависимости от человека.
источник
Он идеально подходит для быстрого написания сценариев из-за его выразительных возможностей и широкого спектра вспомогательных библиотек.
Динамическая проверка типов и отсутствие явного объявления переменных делают его плохим выбором для больших проектов, в которых используются сотни тысяч или даже миллионы строк кода. То же самое относится к критически важным системам или системам безопасности. Например, в системе авионики было бы совершенно неприемлемо отказывать систему из-за ошибки, которая могла быть обнаружена во время компиляции.
источник
Ну, как и вы, я также только начинаю с Python. Но для меня в контексте машинного обучения и науки о данных.
Я также только что приобрел все новые знания в Java 8 и его новых ориентированных на потоки библиотеках.
Мне очень понравилось плавное ощущение новых потоковых библиотек Java 8 и то, насколько он близок мне благодаря библиотекам Apache. Когда я вошел в Python, я ожидал того же и большего.
Я видел больше. Но намного меньше. Плохая документация, хотя ее было много; нет текучести, и на самом деле мне оставалось гадать, правит ли метод новым объектом или оперирует этим; ничего близкого к карте / уменьшению и т. д. Я был удивлен, что остался разочарованным.
Однако с самого начала у меня не было больших надежд на то, как легко будет учить язык. Я был признан правым: непоследовательным, не интуитивным, трудным для изучения. Но это был только мой опыт быть довольно хорошим во всем, как Java.
источник