Petroleum
Не пойму, чем линукс лучше?
Линукс ничем не лучше и не хуже, как таковой. Россказни о том, что линукс не ломается, что он супернадёжный и стабильный - это байки дядюшки Римуса. В чем практическая польза от использования линукса для питон-программиста:
1. Во всех распространенных дистрибутивах линукса питон - неотъемлемая часть операционной системы, он уже установлен, настроен и готов к работе.
2. Умение работать с консолью - важный навык для любого ИТ-специалиста. В мире виндовс консоль используют только для нетривиальных задач или каких-то аварийных случаев, поэтому масса начинающих программистов (из тех, что не видели живого MS-DOS) с консолью работать не умеют, команд не знают и такого навыка не приобретают. Однако, для программиста очень важно уметь работать с текстовым интерфейсом. Какую бы крутую ИДЕ вы не использовали, так или иначе придется многое делать вручную из командной строки, и в этом плане линукс лучше тем, что имеет из коробки очень мощный хорошо документированный командный интерпретатор bash.
3. Документация к фреймворкам, библиотекам, веб-серверам и другим программам пишется в расчете на ИТ-специалистов, а не домохозяек, поэтому чаще всего вы увидите такие инструкции “выполните $export DISPLAY=local_host:0.0”, а не такие “Откройте панель управления, выберете пункт меню была-бла, нажмите на бал-бла” и не набор скриншотов из учебника “С++ Builder за 21 день для чайников”.
4. Дистрибуция программ в виндовс и в линукс кардинально отличается. Виндовый способ - распространение программ в виде инсталляционных пакетов удобен для нубов: скачал, кликнул мышкой и готово. В линукс ты работаешь с репозиторием пакетов. Для программиста этот способ сильно удобнее, у тебя нет вопросов типа, а где же искать недостающую библиотеку, а как её интегрировать в систему и так далее, ты просто даешь команду пакетному менеджеру и все. В виндовс нет пакетного менеджера и репозитория, поэтому проблемы с разрешением каких-то зависимостей решаются или нетривиально или не решаются вообще.
5. Если вы собираетесь программировать для веб (а если вы начинающий питонист, то скорее всего это так), то вы должны понимать, что готовый продукт вам придется размещать на сервере и дальше его поддерживать, обновлять, расширять и т.д. И тут вас ждет сюрприз: оказывается в мире серверов и прочих дорогих железок правят *nix операционки, а винда где-то там сиротливо прячется на виртуалках пропуская жалкие проценты траффика. Поэтому в мир линукса тебе погрузиться придется в любом случае.
Ну и, разумеется, вести разработку сразу на целевой системе разумнее, чем полагаться на кроссплатформенность, а потом недоумевать: а что такое, а все ж работало, а почему на сервере не работает?
6. Некоторые решения для винды просто не предназначены, тем не менее весьма распространены в мире *nix. Например, веб-сервер nginx пользующийся огромной популярностью. Читаем официальный сайт
Версия nginx под Windows использует “родной” Win32 API (не эмуляцию Cygwin). В настоящий момент в качестве метода обработки соединений используется только select(), поэтому не стоит ожидать высокой производительности и масштабируемости. Хоть и возможен запуск нескольких рабочих процессов, только один из них реально работает.
Рабочий процесс может обслуживать не более 1024 одновременных соединений.
Кэш и другие модули, требующие поддержки разделяемой памяти, не работают под Windows Vista и более поздними версиями в связи с тем, что на этих версиях Windows включена рандомизация адресного пространства.
7. Комьюнити. Как вы уже поняли, большинство профессиональных питон-разработчиков работают на линуксе. Поэтому вашу проблему с линуксом, если она случится, решат быстрее, проще и надежней.
Ваши проблемы с виндой скорее всего за вас решать никто не будет, не из вредности, а просто от отсутствия венды под руками и достаточного опыта.