Web開発マシンをMacbook ProからThinkpad X1 Carbon(OS: Ubuntu)に変えてから2年が経ったので感想を書いてみる

2018年5月に仕事で使っている開発マシンをMacBook proからThinkpad X1 Carbon(OS: Ubuntu)に変更し、2年ちょっと経ちました。今の感想としては、MacBookの時と比べるとだいぶ快適に使えて、変えて本当に良かった!トラブルもない!という感じです。

MacからUbuntuへの移行の背景や移行に関して、Web開発に必要なアプリケーションがどう変わったか、良かった点・悪かった点・変わらない点を共有したいと思います。

f:id:moritamorie:20200717224350j:plain

Macをやめた理由

そもそもMacを使い始めた主な理由が、職場の人がほとんどがMacを使っていて、開発環境周りの構築で困ったことがあれば誰かに聞いて解決できそうというのがありました。しかし、ほぼググって問題を解決できたので、徐々にMacじゃなくても良さそうと感じていました。

そんな時にMacbookのイヤホンジャックが壊れてしまい、修理に出している間に仕事をするために代替機が必要となって、もしかしてMacbookは開発環境として可搬性が低いのでは。。と思ったというのがきっかけです。

あと、OS関係なくマシンのメモリ不足のせいかもしれませんが、重たく感じることが多く、ちょくちょく再起動していたりしました。

元々のLinuxの習熟度

学生の頃から自宅の自作PCのデスクトップ環境としてRedhat系のディストリビューションを使っていたりしたので、特に日々の運用で困ることは想定できなかったので、導入には抵抗感はなかったです。

ただ、Macは仕事で使うだけで

  • iTermでシェルコマンド実行
  • RubyMine(JetBrains IDE)やVSCode, Atomを使ってWeb開発
  • Chromeで色々調べる
  • その他、SlackやZoom等でコミュニケーションする
  • たまにKindleで本読む

くらいしか使っていなかったので、Ubuntuをインストールしてしまえば、必要な知識というかやることはあまり変わらないと感じています。

MacからUbuntuへどう移行したか

仕事の開発環境としてUbuntuを使ったことがなかったので、まずは自宅のPCに仕事で必要なアプリケーションを入れてみて、ちゃんと使えそう、と思えてから会社にPC(Thinkpad X1 Carbon)買ってもらいました。

Macで行っていた以下のようのことを、段階的にUbuntuで行うように置き換えていき、途中で問題が見つかれば一旦現状のMacでの作業に戻し、1つづつ問題を解決していって仕事に支障がないように移行しました。

  • SlackやZoomなど仕事上のコミュニケーション
  • Webブラウザでの調べ事
  • 開発周り(IDE・エディタ、シェルコンソール、Git、DB等ミドルウェア

Web開発マシンの選定

Web開発マシンとして採用したThinkpad X1 Carbonは以下の観点で採用しました

  • リスク面
  • ユーザビリティ
    • 家電量販店で、キーボードを試し打ちしたら、非常に打ちやすかったので個人的に気に入った
    • カーボンは軽くて頑丈なので持ち運びにも良い
  • コスト面
    • カスタマイズでちょっとスペックを上げたX1 Carbonでも20万円前後の金額で購入できるのは嬉しい
      • Macbook proだとスペックの割にちょっとお高めで気持ち的に買いづらい。。

Web開発用途でそこまで高いスペックは要求されないので、使っていたMacbookよりは良いスペックであれば良いくらいの感覚で選んでいました。

Thinkpad購入するとWindows OSがついてくるので、デュアルブートで社内で開発しているWindowsデスクトップアプリのテストにも使えるのも良いなと思いました。

仕事でよく使うアプリケーションの置き換え

よく使うアプリケーションは以下のように置き換えました。Macのアプリはよく出来ているアプリが多いのでUbuntuに変えてから全体的に少し使いづらくなった印象がありますが、致命的なものはないと感じています。

ターミナル

(Mac) iTerm => (Linux) Gnome Terminal

そんなに変わらない印象。

DBクライアント

(Mac) Sequel Pro (MySQL用) + PG Commander (Postgresql用) => (Linux) DBeaver Community

MacのDBクライアントはシンプルで使いやすかった分、DBeaverは複雑なので最初慣れるのに苦労した。が、慣れてしまえば普通に使える。

画像キャプチャ + 矢印や文字、ぼかし等を入れるツール

(Mac) Skitch => (LInux) Shutter

使い勝手はそんなに変わっていない。Evernoteには連携できなくなるので、使っている人は困るかも。

バックアップツール

(Mac) Time Machine => (Linux) Timeshift(ファイルシステム用) + Déjà Dup(ホームディレクトリ用)

Déjà DupはTime Machineのようにファイル毎に復元できないので、ちょっと不便かも。復元自体あまりしないので、そんなに困っていないけど。

ランチャー

(Mac) Alfred => (Linux) Albert

workflowが使えなくなったけど、もともとアプリケーション、Chromeブックマーク、Web検索しか使ってなかったので、あまり困っていない。

デザインツール

(Mac) Sketch => (Linux) Figma

最初、Inkspaceを使っていたけど、だいぶ使いづらく感じた。デザイナーではないのでFigmaだけあれば、Sketchは不要な感ある。

ER図作成

(Mac) SQLEditor => (Linux) MySQL Workbench

あまり使っていないけど、ちょっと使いにくくなった感ある

良かった点

  • 重くならなくならずいつでも快適(Android Studioエミュレータ起動しながら、Rubymineでデバッグ実行しつつも、Zoomで会話しててもスムーズ)
  • Docker使うのにパフォーマンス上の問題がなく、快適に使える
  • Railsの開発をするのにGemのインストール時にオプション指定が一切要らないのでハマらず、時間ロスしない

悪かった点

  • RubyMine(JetBrains IDE)のDocker連携がちゃんと動いていないっぽい
  • iOSアプリのビルドができない
    • 私はあまりビルドしないので、使う時だけMacbook出せば良いので支障はない

Macと変わらない点

  • 外部ディスプレイ2台付けてもちゃんと使える
  • UbuntuKindleアプリ使えなくなるかも!?と思っていたけどwineで使えた
  • SkypeやSlack、Zoom、Rubymine、Authy、VSCodeといったよく使われるアプリはLinux版も普通にある
  • Android StudioもあるのでAndroidアプリ開発も普通にできている。むしろ、マシンスペックがよくなった分、より快適になった
  • Googleドキュメント、スプレッドシート、スライドは、Macと同様に普通に使える
  • あまりキーマップは変えていなかったので、大きなところはgnome-tweak-toolでwinキーの動作を変えたくらいで済んでいる

Web開発マシン変更前後のスペック

マシンスペックはこんな感じです。

Thinkpad X1 Carbon (変更後)

プロセッサ メモリ ストレージ
Thinkpad X1 Carbon 6G Intel Core i7-8650U プロセッサ
1.90GHz, 8MB
16GB LPDDR3
2133MHz Soldered
512GB SSD

Macbook pro(変更前)

プロセッサ メモリ ストレージ
Macbook pro
2015 early
(13 inch)
Intel Core i5プロセッサ
2.9GHzデュアルコア
8GB 1,866MHz
LPDDR3オンボードメモリ
512GB PCIeベース
フラッシュストレージ

終わりに

今後もThinkpad + Ubuntuを使い続けると思います。

現状(2020年7月時点)ではコロナの影響で多くのエンジニアの方が自宅でリモートワークをする状況になってきていて、今後物理的なマシンのやり取りが手間になるかもしれません。オフィスに行くだと、マシンを用意する人とマシンを使う人の両方がオフィスに居る必要がありますから。

自作PCのマシンや古いWindows機にもインストールできるので、マシンを調達しやすいLinuxが人気でるかもしれませんね!