- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- старший backend-разработчик .defa
- инженер-программист компании ICL Services
- декан профессии «Программист С++» образовательного портала GeekBrains
- ведущий frontend-разработчик TalentTech
- разработчик в Kodix Auto
- Итак, кому какой системой стоит пользоваться?
- Веб-хостинг: Windows или Linux?
- В чем разница?
- Клиенты и серверы
- Технологии и средства
- Простота использования
- Безопасность
Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
У каждой ОС есть свои плюсы, минусы и особенности, и как правило программисты выбирают ОС на основе своих предпочтений и представлений. Но что, если отбросить личные симпатии и попытаться взглянуть объективно: какая ОС даёт больше всего преимуществ программисту? Мы задали этот вопрос экспертам, и вот что они ответили.
старший backend-разработчик .defa
Выбор ОС в первую очередь зависит от того, в какой области разработчик работает, а ещё это дело привычки и субъективных представлений об удобстве. Я веб-разработчик и успел попробовать несколько операционных систем. Вот мой личный рейтинг удобства ОС именно для разработки веб-решений.
Первое место — macOS. Практически всё идеально, могут возникать проблемы с Docker, поскольку не всегда оптимально используются ресурсы (бывает >= 70 % CPU). Но это мелочи. macOS — это практически идеальный баланс между ОС для работы и для повседневных задач.
Ещё одно первое место — Ubuntu/Mint (и другие Linux-дистрибутивы). Именно для разработки я считаю это семейство ОС лучшей. Из плюсов перед macOS — близость к production-окружению, «нативная» работа Docker. Из минусов — всё-таки иногда всплывают ошибки, которые без консоли не поправить (пример, проблемы со звуком), ну и софта гораздо меньше.
Второе место отдам Windows. Здесь можно спокойно вести разработку. При наличии такого софта как Docker или Vagrant многие проблемы можно легко обойти. Чего мне действительно не хватает в Windows, так это нормального терминала (ConEmu, Git Bash и другие не в счёт). Зато софта под эту ОС гораздо больше, чем на Ubuntu или macOS.
В качестве заключения отмечу, что всё-таки выбирать стоит ту ОС, в которой разработчику привычнее и комфортнее работать. Если всё в операционной системе устраивает, то переход на что-то другое вызовет лишний стресс и трату времени на изучение возможностей новой ОС. В конце концов, в ту же Windows потихоньку внедряется WSL.
инженер-программист компании ICL Services
На вопрос, какую операционную систему выбрать для программирования, в большинстве случае нет чёткого ответа, т. к. это больше субъективный выбор каждого человека: как по удобству взаимодействия с самой системой, так и с используемыми инструментами для разработки. Большинство популярных языков и сред разработки в основном присутствуют на всех платформах.
Конечно, есть немало случаев, когда выбор ограничен. Например язык программирования плохо адаптирован под конкретную операционную систему или требуется конкретная платформа для выполнения, тут стоило бы или даже необходимо использовать то, что есть.
Если ограничений нет, то, я считаю, самый правильный выбор — попробовать каждую из систем, для того чтобы решить, что же конкретно тебе удобнее. У каждой системы есть как плюсы, так и минусы: где-то удобнее разворачивать среду и работать с ней, где-то есть более удобные инструменты разработки и т. д., поэтому говорить, что для веб-разработки нужна обязательно macOS или для разработки на .net core нужен Windows, я считаю, неправильно.
Также для нашей страны актуален вопрос цены рабочей машины. Например, для многих, а тем более для начинающих, продукты компании Apple могут показаться дорогими при прочих равных. У компьютеров на Windows или Linux ценник более доступный.
Если подытожить, то если нет ограничений на выбор системы, советую попробовать все системы и выбрать ту конфигурацию системы и инструментов, которую удобно использовать именно вам.
декан профессии «Программист С++» образовательного портала GeekBrains
В первую очередь нужно быть уверенным, что инструмент, с которым человек будет работать, удобен. А операционная система — это инструмент и ничто иное. Если говорить о выборе операционки, то неплохо было бы сразу знать, где ваше приложение будет в дальнейшем крутиться. Если человек предполагает разработку под операционную систему OS X (под MacBook, iOS, iPhone, iPad), то ему обязательно нужен опыт работы в macOS и собственно сама OS X, потому что все остальные операционки хоть и поддерживают языки Swift и Objective-C, но на довольно слабом уровне. Инструментарий разработки под OS X внутри OS X хорошо настроен и нативен.
Дальше у нас встает извечная борьба между Windows и Linux. Начинать холивар, я думаю, смысла нет. Если у пользователя есть привычка работать в Windows — то имеет смысл в этой операционной системе и оставаться, так как в принципе, 80 % задач разработки можно закрывать в Windows. Если хочется попробовать что-то другое — это, бесспорно, Linux. Желательно делать Linux на виртуальной машине, чтобы не потерять своё текущее окружение, но иметь возможность «пощупать». Очень много всякого софта для разработки написано под обе операционки, тут тоже стоит сразу оговориться, что если предполагается разработка на Android — то надо быть по крайней мере знакомым с операционной системой Linux. Необходимо представлять, что это за окружение, как оно работает, знать про открытые драйверы, системные настройки, потому что Android — это тоже Linux.
Есть специализированный стек разработки под Windows: это разработка под Active Directory, разработка разнообразных протоколов, разработка под Microsoft Office и прочие штуки. Понятное дело, что с Microsoft Office перейти на Linux будет нельзя, под него стопроцентно нужен Windows. Тут встает вопрос лицензирования. Если у человека всю жизнь был Linux, то ему не с руки покупать лицензию, которая условно стоит 8 000 рублей. Поэтому в большинстве случаев пользователи остаются на Linux.
Я, в свою очередь, несмотря на то, что веду свои уроки с макбука, активно пропагандирую Линуксы разного рода: это и всякие попсовые Debian и Ubuntu, разного рода Arch Linux, даже Red Hat и прочее, прочее. Соответственно, если у вас есть какие-то опасения, то стоит помнить, что инструментарий на Linux такой же, как на Windows, то есть все среды разработки (всё, что не касается Microsoft Visual Studio) портированы и работают кроссплатформенно. Для новичка будет несложно сориентироваться, главное, не надо сразу начинать лезть в консоль или жить в терминале и пугать себя.
ведущий frontend-разработчик TalentTech
Выбор операционной системы, как правило, происходит на усмотрение самого программиста. Это дело вкуса — кому-то нравится macOS, другие считают Linux топовой системой. Одно важное условие: если ваш продукт будет иметь дело с iOS, то поле выбора ограничено — тут не обойтись без macOS. Иначе ничего не получится, если только разработка не идёт на удалённых серверах. Также эта система считается более user-friendly. То есть все мобильные разработчики, чьи продукты будут запущены в AppStore, не имеют другого выбора, кроме Mac.
Веб-разработка менее требовательна к ОС. Лишь два браузера – Explorer и Safari являются специфическими: первый будет работать только на Windows, а второй – на Mac. Когда разработчику нужно тестировать то, что он разработал, — ему понадобится соответствующий браузер.
Linux считается немного более сложным вариантом — она также бывает простой в использовании, но есть и «хардкор-версия», она скорее для тех, кто «пишет» драйверы и в целом больше работает с «железом». Преимущество этой системы в том, что можно собрать её целиком «под себя» и иметь над ней полный контроль. Это сложнее, требуются мозги и навыки, но использование в таком случае будет немного производительнее.
Разработка игр, как правило, происходит на кроссплатформенных системах. А вот приложения backend-разработчиков чаще выпускаются на Linux, соответственно будет удобно держать именно эту систему на своей машине разработки — это может быть и локальная машина, и нет. Часть разработчиков работает на удалённых серверах, а их локальная машина — это по факту просто интерфейс доступа.
Также если вы привыкли работать на macOS, то будет довольно трудно «переключиться» на Windows, и наоборот. То, чего на Mac можно добиться простыми действиями, на «винде» делается сложно.
разработчик в Kodix Auto
На такой вопрос сложно дать однозначный ответ. Скорее, это больше зависит от предпочтений разработчика. Но очевидно следующее:
- Если пишете программы для какой-то определённой платформы, то её и нужно выбирать.
- Если это веб-разработка, то вероятность того, что сервер будет крутиться на Unix — 80 %, а значит, стоит выбирать Linux или Mac.
Прежде всего следует разобраться, в чём отличие Unix от Windows, и выбрать то, что нравится и больше подходит. Писать хороший код можно везде. В этом вопросе нет серебряной пули, и это самое главное, что нужно понимать начинающему разработчику.
Итак, кому какой системой стоит пользоваться?
Всё зависит от двух вещей: что вам удобно и чем вы занимаетесь. Например, если вы разрабатываете iOS-приложения, то вам придётся пользоваться macOS; если вы пишете бэкенд и сервер крутится на Linux, то, скорее всего, на нём вам и удобней будет работать. Если не принимать во внимание завязанные на конкретной платформе стеки разработки, то всё зависит от ваших предпочтений, ведь очень много софта работает на всех основных системах. Нравится работать в Windows/Linux/BolgenOS? Работайте дальше, если это не ограничивает ваши возможности. К тому же при необходимости в простых случаях можно воспользоваться виртуальной машиной. А переучиваться работать на другой системе просто «потому что» — пустая трата сил и времени.
Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Источник
Веб-хостинг: Windows или Linux?
Итак, вы, наконец, решили, что вам нужен аккаунт для хостинга веб-сайта, и теперь задаетесь вопросом: «Linux или Windows?» К счастью, разница между ними невелика, и оба варианта подходят для большинства клиентов. Linux и Windows – доминирующие операционные системы в хостинге веб-сайтов, причем, хотя Linux лидирует с заметным отрывом, в плане функций и приложений различия между ними минимальны, так что выбор не очевиден. Чтобы окончательно убедиться в его правильности, нужно исходить из того, как вы строите свой сайт, размещенный у поставщика услуг хостинга, какие именно инструменты планируете использовать.
В операционных системах Linux и Windows применяются разные скрипты и языки баз данных. Так что, если потребуется PHP, Perl, Python, Ruby или MySQL, то выбираем Linux, если ASP или ASP.NET — Windows. К примеру:
Инструменты разработки | Linux | Windows |
WordPress или иные Web-приложения | ✓ | — |
Dreamweaver или другие приложения WYSIWYG | ✓ | — |
PHP, MySQL, CGI, Python или Perl | ✓ | — |
ASP, ASP.NET, MS SQL | — | ✓ |
ASP, ASP.NET и PHP, MySQL | — | ✓ |
Конечно, это сильно утрированный подход. Windows фактически поддерживает большую часть этих средств разработки, но распространено убеждение, что Linux-хостинг лучше подходит для большинства потребностей клиентов.
В действительности в каждом конкретном случае выбор Linux или Windows зависит от предъявляемых к хостингу требований и от особенностей сайта. Но, учитывая, что на базе Linux работает порядка 70% всех сайтов, за ним некоторое преимущество. Linux нередко считают лучшей ОС для веб-хостинга. Ее характеризует стабильность, надежность, она хорошо подходит для сложных сред, блогов, форумов, систем управления контентом, онлайн-магазинов.
В чем разница?
Стоит поближе взглянуть на Windows и Linux, чтобы понять различия и преимущества этих систем. Обычно такие сравнения сводят к совместимости приложений.
Появившаяся в 1992 году бесплатная модульная операционная система Linux во многих отношениях считается лучшей ОС для веб-серверов. В случае Linux платить придется только за поддержку некоторых дистрибутивов: хотя есть бесплатные версии Linux, в бизнес-среде они обычно менее популярны, чем коммерческий софт. Благодаря своей надежности, стабильности и эффективности ОС Linux заслужила репутацию одной из самых продвинутых опций для веб- и почтовых серверов.
На каждый веб-сервер под Windows приходится два под Linux. Все крупнейшие хостинг-провайдеры работают именно на Linux. ОС Linux — особенно хороший вариант для тех, кто подумывает об использовании PHP, Perl, Python, Ruby или MySQL. Решения для Windows обычно платные, в то время как Linux предлагает для хостинга множество приложений Open Source, включая различные конструкторы сайтов, блоги, форумы, системы управления контентом (Content Management Systems, CMS) и многое другое. Если вы хотите сэкономить, то, возможно, лучшим выбором станет Linux, хотя его поддержка и технические знания в этой области, как правило, стоят денег.
ОС Windows Server выпущена Microsoft в 1993 году. С тех пор корпорация стала признанным игроком рынка серверных операционных систем. Хотя она не бесплатна, как Linux, Microsoft предлагает поддержку и обновления. Одно из сильных преимуществ Windows над Linux – наличие среды разработки веб-приложений ASP.NET, хотя ее текущие версии совместимы и с Linux. Кроме того, в ОС Windows приложения SharePoint и Exchange облегчают совместную работу над проектами. Однако в Window более сложная модель лицензирования.
Попробуем сопоставить два варианта:
Веб-хостинг в Windows | Веб-хостинг в Linux | |
Тип ПО | Проприетарное | Open Source |
Веб-сервер | Microsoft IIS | Apache, Nginx |
Языки скриптов | VBScript, ASP.NET | Perl, PHP, Python, Ruby |
Базы данных | MSSQL, Microsoft Access | MySQL, MariaDB |
ПО администрирования | ISPManager, Plesk | ISPManager, cPanel, Plesk, Confixx |
Прочее | Exchange, .NET-Applications, SharePoint | WordPress, Joomla и др. |
Характерно, что ISPManager, например, обойдется у хостинг-провайдера примерно в одну сумму для Windows и для Linux. Этот инструмент отличают детальные настройки, понятные пояснения в документации и индивидуальная настройка квот благодаря привязке к пользователю. Панели Plesk и ISPManager дают возможность создавать или удалять пользователя FTP, указывать путь к его домашней папке, устанавливать ограничение на дисковое пространство и менять пароль.
Все еще не определись? Тогда идем дальше. Пытаясь решить эту дилемму, некоторые исходят из неверных предпосылок.
Клиенты и серверы
Некоторые поставщики услуг хостинга предлагают для размещения веб-сайтов ОС Linux, другие — FreeBSD, третьи – Windows или оставляют выбор за заказчиком. Распространенное заблуждение – считать, что гостевая ОС сервера и его базовая программная платформа должны быть идентичными. Это не так.
То же самое с клиентской ОС. Неопытные пользователи подчас считают, что если на стороне клиента используется Windows или Mac OS X, то и на стороне веб-хоста предпочтительнее та же платформа. На самом деле это не важно. Веб-хост функционирует сам по себе, никаких «проблем совместимости» не будет. Да и работать с веб-хостом под Windows будет вовсе не легче, если вы уже привыкли к Windows на ПК. Для доступа к сайту веб-мастер применяет веб-редактор наподобие Dreamweaver или KompoZer, FTP, Secure Shell (SSH) или браузер. Другими словами, какая бы ОС ни использовалась на хосте, интерфейс будет тот же. Простота его зависит от применяемого на ПК веб-редактора, а не от операционной системы хоста.
Более того, используя такие распространенные средства управления как Plesk, системные администраторы удаленно работать с веб-северами независимо от используемой на этих серверах ОС.
Технологии и средства
Каковы же реальные критерии выбора веб-платформы? Еще раз уточним: это зависит от того, что вы собираетесь использовать на своем веб-сайте. Выбор «Linux vs. Windows» кажется сложным лишь в случае, если вы не знаете в точности, какие инструменты вам необходимы.
Потребуется ли ASP.NET, Microsoft Access или Microsoft SQL Server, то есть специфические для Windows технологии и продукты? Если сайт должен их поддерживать (именно на стороне хоста), то, конечно, выбираем Windows. Возможны и другие варианты, но так меньше «головной боли».
Нужен PHP, Perl, WordPress, Blogging Software, MySQL? Или просто сайт без особых требований, вроде блога? Тогда подойдет ОС Linux или FreeBSD. Для этих систем есть немало продуктов, например, для создания и публикации блогов, а в интернете – множество руководств по конфигурированию и администрированию веб-серверов.
PHP, Perl и MySQL будут работать и под Windows, но не совсем так, как под Linux/Unix. А готовые скрипты PHP/Perl для работы под Windows могут потребовать модификации. Поскольку Linux – самая популярная ОС на веб-серверах, для нее создано больше приложений и инструментов, поэтому, если не требуются конкретные Windows-приложения, такие как ASP, ASP.NET, Microsoft SQL Server, Microsoft Access, Microsoft Exchange, Microsoft SharePoint, Visual Basic, C#, Remote Desktop, то логично будет выбрать Linux.
ОС Linux понадобится также, если вы планируете использовать SSH, скрипты и приложения, для которых нужны какие-то модули Apache, панели управления под Linux. Например, с Linux часто применяется панель управления ISPManager (при хостинге Linux Shared, VPS или Linux Dedicated Server), Web Host Manager (VPS и Linux Dedicated Server). В Windows — Plesk (Windows Shared и Dedicated Server). Еще одно отличие Linux и Windows: в Linux различается регистр символов в именах файлов, в Windows – нет.
Windows предлагает такие инструменты как ASP.NET для создания веб-страниц и MS SQL Server для работы с базами данных. Для управления контентом – выкладываемыми на сайт статьями и новостями, фото и видео – часто используют такие средства как WordPress или Joomla.
Большинство веб-проектов под Linux можно достаточно легко перенести под Windows. Обратное не верно.
Простота использования
Есть разные дистрибутивы Linux, например, популярные Ubuntu (на ней работают 33,9% веб-серверов под Linux), Debian (31,5%), CentOS (20,6%). Не очень опытным пользователям подойдет такой вариант как CentOS с ISPManager. Однако по критерию «простоты использования» лучшим выбором считается Windows Server. На самом деле критерий «мне бы что-то попроще» относится не столько к операционной системе веб-хоста, сколько к устанавливаемым на вашем ПК инструментальным средствам для управления сайтом.
Безопасность
Серверы под Windows предусматривают мощные инструменты управления доступом и централизованной аутентификации через Active Directory. Linux-серверы предлагают надежную системы полномочий для работы с файлами. В CloudLinux предусмотрена повышенная безопасность и изоляция аккаунтов для многопользовательской среды.
С выходом Windows Server 2008, 2012 и 2016 эта операционная система как минимум не уступает по безопасности Linux, а по некоторым параметрам даже ее превосходит.
Источник