В чем преимущества *nix, linux перед windows (для веб разработчика)?

вот все говорят "Сваливайте с винды", "если у тебя винда то это жесть", " Если вы под виндой - мои соболезнования".
Есть более аргументированные ответы на этот вопрос? Системник с виндой сейчас с такими характеристиками: i7/16gb/256ssd
  • Вопрос задан
  • 26729 просмотров
Решения вопроса 1
DevMan
@DevMan
1. вы получаете окружение близкое или идентичное к продакшену.
2. вы получаете внятную консоль/шел из коробки.
3. вы избавляетесь от массы вопросов типа "на локалке все работает, а залил на сервер и получил жопу" (или наоборот).
4. у вас появляется более лучшее понимание как на сервере все работает.

при теперешнем развитие технологий и производительности железа, нет необходимости себя ломать.
можно попробовать в виртуалке (docker/vagrant)/дуалбуте и самому для себя решить стоит или нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 13
@spotifi
Нету никаких проблем.
Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.

Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.

А так - даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.

Microsoft это тоже понимает.
И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.

И многие вещи, например, те же шрифты - в Windows работают лучше, чем под Linux.

Могут сказать - что лучше использовать для разработки ту же среду что и для production.

Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.

Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.

Где именно вести разработку, где вам удобнее - это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows - нет никаких причин себя строить. Кроме любопытства - а как оно там на других системах живется.

У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же - ведь Linux можно сконфигурить руками.

Ага, конечно.

Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
Или если освоили ArchLinux - то построили себе совершенно убогое окружение по готовым мануалам.

Чтобы действительно набрать скиллы ручной настройки Linux - нужно огромное количество упроства и времени, чем ваши друзья, которые вас троллят, вряд ли обладают.

На деле 99% твердящих о гибкости Linux - далее чем ставить Apache и MySQL из пакетов - ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?

Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
Неважно под Ubuntu ты сидишь или под Windows.

Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий - виртуальные машины, Vagrant, Docker, отдельные физические сервера.

В этом случае под твоей любимой ОС работает только текстовый да графический редактор. А все развертывание для тестирования и для продакшн проводится в совсем другой среде.

Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем - несущественно на чем работать.
Ответ написан
Jump
@Jump Куратор тега Windows
Системный администратор со стажем.
Вообще нет никакой разницы.
Работать надо в той системе в которой удобно.
Ответ написан
nki
@nki
bezkart.ru готовая система лояльности
Участвовал в разработке крупного веб-сервиса. Вся разработка велась на винде. Проблем не было. Все замечательно работает по сей день.
Ответ написан
Комментировать
proshin
@proshin
Java web developer
Я бы добавил в список преимуществ линукса вот что:
- в линуксе везде по умолчанию используется UTF-8, а в винде - CP1251
- в линуксе файлы с расширениями 1.JPG и 1.jpg будут "указывать" на разные файлы, для винды это один и тот же файл (при работе с Git в винде это иногда напрягает - видишь JPG, хочешь переименовать в jpg, а фига).
- по моим личным наблюдениям файловая система в линуксе быстрее работает, чем в винде (Ext4 против NTFS; один и тот же жесткий диск).
- ну и как бонус: в линуксе ты не можешь "по-быстрому погамать несколько часов пока проект компилится" - но это уже мелочи.
В конце же концов, нужно выбирать ту систему, где удобно работать - сейчас любую софтину можно запустить на любой ОС.
Ответ написан
NeiroNx
@NeiroNx
Программист
Просто перемены. Windows уже начала вырождаться - погоня за числом установок вин10 в доказательство тому. Сами активно в компании внедряем Linux, по вопросам безопасности - он пока намного надежнее, по цене намного ниже(посмотрев сколько стоят вин8). Есть конечно нестабильность, несогласованность обновлений.
Большинство разработчиков линукса русские, во вторых армия активно переходит на линукс так как есть возможность проверить исходный код.
Самый главный аргумент: чисто чтобы не кормить Microsoft - потому что в вин10 платить придется за каждый клик мышкой.
Ответ написан
@abcd0x00
В чем преимущества *nix, linux перед windows

В лине ты можешь поставить много всякого софта и он будет работать одновременно без каких-либо проблем. А в винде поставить что-то одно - уже счастье, а чтобы оно ещё и работало - так это счастье в квадрате.
Ответ написан
selivanov_pavel
@selivanov_pavel
Linux admin
Виртуализация на современных процах работает быстро, необходимости работать в такой же системе, как на сервере, нету. Vagrant/Virtualbox подволяют разрабатывать под нужную систему, оставаясь в своей привычной. Работать надо в системе, которая позволяет эффективно выполнять требуемые задачи, не отвлекаясь на её обслуживание, обновления, починку и т. д.

ИМХО существующие ОС в этом плане можно выстроить в такой порядке:
1. MacOS
2. Windows
3. Linux

З.Ы. Сам на десктопе использую Linux, но исключительно потому, что очень не люблю слежение за пользователем и серьёзно отношусь к приватности своих данных. Иначе давно использовал бы MacOS.
Ответ написан
Комментировать
@konstunn
Юзаю ubuntu, python, pycharm, bash, pyenv, docker, postgres. Очень доволен, очень быстро можно жонглировать окружениями. На Винде у меня заняло бы это гораздо больше времени: либо по гуйне жмакать, либо твикать её кастрированный терминал, либо ставить баш и нормальный терминал, а это опять открывать сайт ПОшки, жмакать до кнопки скачать. В убунту я набираю одну команду и сижу курю бамбук, разминаю руки, ноги, спину. А тем временем уже все готово - с полпинка и 2 присеста.

А может это просто дело вкуса и я просто очень плохо знаю Винду. Но разве должно быть больше сложностей с платным продуктом, чем с бесплатным? Сейчас если я пытаюсь что-то по работе сделать на Винде, то мне очень-очень больно.
Ответ написан
Комментировать
@VDoskuSvoi
Вряд ли те, кто вам так говорят, понимают действительную суть проблемы. Вряд ли те, кто вам так говорят, сами используют идентичность окружения для разработки и эксплуатации. Это важно только для веб-разработчиков, так как сервера в эксплуатацию обычно запускаются на Linux. Для других неважно. Как правило для не веб-разработчиков существуют хорошие платформы под Windows и MacOS X. Но можно отлаживать на Ubuntu и не мочь вывести в эксплуатацию без косяков. Изучайте Docker, Vagrant. Они помогут сделать вам идентичное окружение и во время разработки и во время эксплуатации. Тогда и на Windows и на MacOS X сможете без проблем работать с идентичным ПО и обходить ваших "советчиков". Маленькая деталь - на сервере тоже должен использоваться Docker.
Ответ написан
Комментировать
kiberspy
@kiberspy
1. В стабильности и производительности (понятное дело речь не о Windows!)
2. В возможности собрать "локальный стенд" (Apache+PHP+MySQL)/платформу, аналогичную той, которая используется наверное на 80% хостинговых серверов (оставшиеся 20% - это Nginx (альтернатива Apache) )
...
Достаточно?
Ответ написан
@lucifer-m
golang php js html css
Я пишу на го. Под виндой мод код выполняется почти секунду, а под дебианом за 50мс. Разница на лицо (почему такой большой разрыв я хз)
Ответ написан
Если использовать контейнерный движок ( см. Docker) - то разницы особо нет. На работе сижу в ubuntu, дома windows 7. Все проекты ( и рабочие и домашние исключительно в докере) поэтому проблем с чем либо не возникает.
Да, пока есть некоторые проблемы с самим docker под винду, но по мануалам за 1-2 часа всё настраивается и больше не беспокоит.
В качестве IDE использую Sublime, поэтому проблем на windows/ubuntu опять же нет.
Кстати совсем забыл: очевидный плюс винды - фотошоп/иллюстратор не под виртуалкой.
Ответ написан
@xverizex
Ну вот смотрите. вебсайты крутяться на linux. вы себе ставите тот же самый сервер, например ubuntu 20.04 и в нём есть пакетный менеджер, в котором можно установить удобно нужные программы. Некоторый софт всё таки нужно скачать с официального сайта, например nodejs и это потом не сложно настроить и так как в linux консоль богатая, то вам удобно будет пользоваться ею. Например вам нужно заархивировать каталог. В windows вам нужно перейти в этот каталог с помощью файлового менеджера выделить каталог и нажать запаковать, но запакуете в скорее всего в этот winrar, который ну никак не *nix way. А в linux вы напишите
tar zcvf html_00.tar.gz html/
и всё. Потом научитель пользоваться vim, с помощью него вы сможете вообще виртуозно владеть текстовым редактором и вносить правки в конфиги или писать даже код в vim. Вот пример, смотрите.
sudo apt install apache2 php php-mbstring mysql-server

Всё. у вас установиться всё нужное. В windows ещё надо найти программу, которая будет предоставлять сервер, да и то, возможно будет старую версию предоставлять. И в windows ещё платные пакеты всякие. Почему? Потому что windows был создал как коммерческий продукт и предполагалось что в нём будет софт, на котором разработчики смогут заработать денег. А linux разрабатывался программистами для программистов с полным набором gnu софта бесплатного. Вы только представьте, компиляторы, библиотеки и это всё бесплатно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы