MacBook Pro

Около десяти лет назад в интернете появилась статья, утверждающая, что “у каждого разработчика должен быть MacBook Pro”, в которой перечислялся ряд причин, например:

  • Лучший дизайн устройств / ОС. MacBook Pro имеет настолько удобный тачпад, что может полностью заменить вашу мышку. Некоторые функции ОС также сосредоточены на удобстве, например Spotlight.
  • Unix-подобный терминал позволяет использовать практически все программное обеспечение из Unix/Linux.
  • Удивительная экосистема программного обеспечения. Приложения для OSX, как правило, разработаны гораздо лучше и удобнее, чем приложения на Windows, особенно приложения для дизайнеров. App Store также делает покупку программного обеспечения намного проще.

Да, эти причины актуальны даже сегодня. Я бы до сих пор радостно водил пальцем по тачпаду, использовал Spotlight для поиска моих приложений, строил диаграммы в OmniGraffle и устанавливал пакеты при помощи команды «brew install», если бы я до сих пор использовал MacBook Pro.

Однако я поменял свои предпочтения, и теперь использую ноутбук линейки Thinkpad  с установленным на нем Ubuntu. В дальнейшем я объясню, почему считаю, что вышеприведенные причины верны и для разработчиков, которые используют Linux.

Если вы работаете со стеком Microsoft, и в этом случае не используете macOS вообще, или создаете приложения на iOS, поэтому вынуждены использовать macOS, эта статья не для вас.

Убийственная особенность: Touch Bar

К концу 2016 года Apple выпустила новое поколение MacBook Pro, оснащенного Touch Bar. Я соглашусь с тем, что Touch Bar был отличным дизайнерским решением, к тому же он облегчил жизнь многим пользователям, которым не нравились традиционные функциональные клавиши, но вместо того, чтобы называть его «убийственной особенностью», как это делали СМИ, я бы сказал, что Touch Bar убил MacBook Pro.

Я, как разработчик, постоянно работаю в приложении Vim. Уверен, многие из вас тоже его используют. Наиболее важной клавишей для пользователей Vim является клавиша «Esc». Мне необходимо нажимать «Esc» каждые несколько секунд, естественно, не глядя на то, где она находится, и самое главное, мне нужно почувствовать само нажатие клавиши. Однако, Touch Bar полностью удалила клавишу «Esc». Из-за этого Vim гораздо труднее использовать.

Touch Bar также избавился от функциональных клавиш, которые очень полезны для отладки. PyCharm, WebStorm, Android Studio или даже Chrome Developer Tools, все эти инструменты для отладки используют F5~F11 в качестве горячих клавиш. Опять же, мне нужно почувствовать нажатие клавиш, чтобы убедиться, что я нажимаю правильную. С Touch Bar все это исчезло.

Совсем другой Linux

В последние годы Linux сильно преобразился. Я использую Ubuntu около года, недавно обновился до версии 18.04 на второй день после релиза. Ubuntu удовлетворяет большинство из моих повседневных потребностей. Посмотрим, что я использую каждый день:

  • IDE(интегрированная среда разработки) — VSCode / PyCharm / WebStorm, или просто Vim
  • Браузер: Chrome / Firefox
  • Мессенджеры: Slack / Skype / Telegram
  • Office: LibreOffice

Все эти приложения имеют версии на Linux, работают они также хорошо, как и на Mac OSX. LibreOffice является исключением, поскольку MS Office не поддерживает Linux. Да, я считаю, что MS Office и iWork намного лучше, чем LibreOffice, но LibreOffice очень стабильна, и, поскольку я не работаю с документами каждый день, я считаю, что данной программы мне вполне достаточно.

Единственный минус, который я нашел в Linux, это отсутствие приложения для создания диаграмм. OmniGraffle намного лучше, чем Inkscape. К счастью, диаграммы я рисую редко, поэтому могу просто жить бок о бок с LibreOffice Draw или Google Drawings.

Ограничение программного обеспечения

Некоторые программы на Mac OSX работают не совсем хорошо. Одной из самых главных причин моего перехода на Ubuntu послужило ограничение VirtualBox на Mac OSX.

VirtualBox — это бесплатное кроссплатформенное программное обеспечение для запуска виртуальных машин внутри вашей операционной системы. На рабочем столе используется программа «Vargant» (Бродяга), которая по сути является оберткой для VirtualBox. Когда я использовал MacBook Pro, я написал код и запустил его на Ubuntu, работающей в VirtualBox. Поскольку я использую webpack для написания кода на JavaScript в VirtualBox, моя проблема заключалась в синхронизации измененных файлов в VirtualBox. Я перепробовал разные функции и прочел множество советов, однако ничто из этого толком мне не помогло:

  • Сначала я настроил Samba для дистанционного редактирования кода в VirtualBox. Технически это работает, но поскольку мне нужно следить за изменениями файлов в VirtualBox, чтобы перестроить проект, изменения, сохраненные через Samba, не будут немедленно инициировать перестройку. Обычно мне приходилось ждать около 20 секунд после сохранения изменений до восстановления проекта.
  • Я использовал NFS для экспорта кода на MacBook Pro и устанавливал его как отдельный диск в моем VirtualBox с Ubuntu. Технически, это тоже работает, однако для восстановления изменений в проекте потребуется еще больше времени, чем с Samba.
  • Также я настроил общую папку в VirtualBox для сопоставления кода на моем Ubuntu и MacBook Pro. Однако данный вариант мне также не подошел из-за низкой скорости доступа к коду.
  • Затем я разместил два отдельных репозитория, как на моем Ubuntu в VirtualBox, так и на MacBook Pro и локально запустил webpack на моем Macbook Pro. И кажется вот оно — идеальное решение. Изменения кода фиксируются немедленно и завершается за считанные секунды. Однако затем, у меня возникла другая проблема: я не мог зафиксировать код сервера и внешний код в одном коммите. Я должен был выполнять их отдельно и затем синхронизировать репозитории, что делает этот способ для меня неудобным и от которого мне в итоге пришлось отказаться.

Однако на самом деле, глупо обвинять в этом OSX, так как по сути это проблема VirtualBox, но в любом случае, причиной всех этих проблем послужило то, что наша среда разработки не могла работать непосредственно на OSX. В конце концов я просто удалил OSX и установил Ubuntu на мой MacBook Pro и всё — все мои проблемы просто исчезли.

Заключение

В этой статье я пытался объяснить, почему, по моему мнению, MacBook Pro больше не является лучшим выбором для разработчиков. Безусловно, он по-прежнему является отличным ноутбуком, например для дизайнеров UI / UX, менеджерам различного уровня и всем тем людям, которым приходится много работать над различными документами и дизайном, однако теперь, для разработчиков есть решение получше! Просто возьмите любой ноутбук и установите на нем Linux!

Спасибо за прочтение!

Перевод статьи Charlee LWhy Developers Should NOT Use MacBook Pro

Предыдущая статьяФункциональное программирование со Scala: введение
Следующая статьяПочему искусственный интеллект никогда не захватит мир?