- Почему Linux лучше подходит для программирования?
- 1. Безопасность
- 2. Менеджер пакетов
- 3. Нет надобности в перезагрузки
- 4. Программы из коробки
- 5. Производительность
- 6. Кастомизация
- Заключение
- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- Linux, Windows или macOS: что выбрать программисту — отвечают эксперты
- старший backend-разработчик .defa
- инженер-программист компании ICL Services
- декан профессии «Программист С++» образовательного портала GeekBrains
- ведущий frontend-разработчик TalentTech
- разработчик в Kodix Auto
- Итак, кому какой системой стоит пользоваться?
Почему Linux лучше подходит для программирования?
Многие задавали мне вопрос почему же программисты предпочитают Linux и почему он очень популярен среди программистов. На самом деле на то существует много причин и читая отзывы в интернете (особенно в зарубежных странах) я лишний раз убедился в этом.
Однако я постарался упростить статью и собрал наиболее общепринятые причины, почему Linux популярен среди программистов. Поэтому в этой статье я приведу топ 6 причин почему многие программисты так ценят операционную систему Linux.
1. Безопасность
Первая причина — это конечно же безопасность. Linux имеет тенденцию быть более безопасной системой и это факт, так что вам не понадобится устанавливать дополнительное антивирусное ПО и вообще в связи с тем, что Linux менее популярен среди общего количества пользователей компьютеров, соответственно он менее подвержен вирусным атакам.
Отсутствие необходимости установки антивируса значительно упрощает жизнь разработчикам. Вам не нужно платить за лицензию и антивирус не съедает системные ресурсы компьютера.
Причина безопасности Linux — это то что данная операционная система с открытым исходным кодом. Это означает, что любой желающий может посмотрите исходный код системы. Те кто не хорошо знаком с этой концепцией может подумать что, ну если исходный код системы доступен всем, то любой желающий сможет просмотреть его и найти уязвимости или баги которые приводит к уязвимостям и создадут для этого вирус. Это логично и отчасти они будут правы, однако на самом деле все происходит чуть иначе.
Поскольку Linux популярная открытая операционная система и наверное является одним из основоположников современной философии open source, то есть открытости, многие скажем «добрые» разработчики найдя уязвимость, обязательно дадут инициативу по его исправлению или как минимум сообщат разработчикам системы об этом. В итоги если определенно количество «плохих» людей ищут уязвимости из исходного кода Linux и захотят сделать вирус, найдутся ещё больше «хороших» людей которые захотят исправить данную уязвимость и помочь всем пользователям данной системы.
Из этого всего можно сделать вывод, что Linux действительно безопасная операционная система.
2. Менеджер пакетов
Вторая причина в том, что Linux намного улучшает рабочий процесс для программистов с помощью менеджера пакетов встроенный в почти каждый дистрибутив. Это полезно для программистов с точки зрения эффективность, то есть если вы хотите установить новую программу или обновить уже имеющуюся, просто введите sudo apt (если у вас например ubuntu или linux mint) и напишите соответствующую команду. И всё это происходит буквально за пару минут.
Например на Windows данный процесс является относительно кропотливым, так-как все это вам нужно будет делать вручную.
Допустим, что вы хотите установить программу VLC media player. Для этого вам сначала надо будет открыть браузер, затем в поиске набрать скачать vlc, найти официальный сайт (так-как в пиратках часто бывают вирусы), далее нажать на кнопку скачать, после это открыть скачанный .exe файл и выбрать место для установки программы. После установки многие программы потребуют перезагрузки, чтобы изменения вступили в силу. И уже после ожидания перезагрузки вы полноценно сможете воспользоваться программой.
Конечно можно будет установить менеджер пакетов chocolatey, однако новичку данный процесс покажется сложным.
С дистрибутивами Linux вы получаете менеджер пакетов прямо из коробки, то есть после установки менеджер пакетов уже установлен и настроен.
Теперь допустим, что ты хотите сделать то же самое, но в Linux. Все, что вам нужно сделать, это открыть окно терминала и ввести sudo apt-get install vlc и нажать на Enter. И все после ожидания установки вы можете полноценно ей пользоваться. При этом вы уверены что скачали программу из надежного источника.
Данный фактор очень важен для программиста, так-как сегодня разработка лишь одного проекта требует скачивания нескольких программ.
3. Нет надобности в перезагрузки
Отсутствие перезагрузки, это то, о чем я говорил в предыдущей главе, когда я объяснял, как устанавливаются программы на Windows. То есть в большинстве программ, после установки требуется перезагрузка для полноценной работы с программой.
Данный неудобный процесс не относится к операционной системе Linux и это я думаю действительно важно для разработчика из-за того, что программисты обычно устанавливают много разных программы во время процесса разработки. Перезагрузка системы сбрасывает оперативную память, поэтому все процессы и программы соответственно закрываются.
Думаю это одна из многих причин почему Linux популярен и среди операционных систем используемых на серверах. Linux для серверов построены для стабильной и надежной работы и имеют тенденцию работать годами без сбоев или даже перезагрузок.
4. Программы из коробки
Четвертого причина это то, что большинство Linux дистрибутивов поставляются со множеством действительно мощных и нужных программ, предустановленными инструментами, как например grip, wget, cron и многими другими.
Плюс ко всему, большинство из них это cli утилиты или программы для командной строки, которые весят относительно мало и не нагружают систему.
Конечно данный фактор является отчасти индивидуальным, так-как какие программы нужным именно вам, зависит от ваших предпочтений и не факт оно будет уже предустановлено. Однако думаю наличие стандартного набора пакетов программ, является универсальным решением для всех.
Kali Linux, например поставляется с большим набором хакерских утилит, которые нужны системный специалистам для тестирования программ, сети и т.д.
5. Производительность
Пятая причина — это производительность. Под этим не имеется ввиду, что linux обязательно работает быстрее, чем любая другая операционная система, однако во многих случаях он очень легкий и совместим практически с любой железой, поэтому очень часто вы можно взять свой старый и медленный ноутбук и установите на него какой-нибудь легковесный Linux дистрибутив. Поэтому думаю любой ноутбук под управлением Linux может прослужит намного дольше, чем работающая на Mac OS или Windows.
6. Кастомизация
Думаю эта причина, по которому многим пользователям нравится Linux. Само ядро Linux позволяет создавать отдельные дистрибутивы, что в определенной степени тоже является кастомизацией, так-как многие дистрибутивы создавались для определенных задач.
Также есть возможность менять среду рабочего стола. Самой популярной скорее является среда GNOME, которая установлена по умолчанию во многих дистрибутивах. Среда KDE Plasma, благодаря своему внешнему ввиду и простоте, набирает обороты и многие пользователи 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, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Источник