RIDE ROAD

Second wind

Ubuntu vs Mac vs Windows

Ubuntuを仕事PCのOSとして使い続けて10年くらいになるでしょうか。

もともとはサーバーサイドのエンジニアとしてのスキルを確立するため、普段から仕事道具である*nixを触っておこうという目論見で、自分のPCにUbuntuを入れたのですが、今となっては手に馴染みすぎて手放せなくなってしまいました。

2年ほどMacを触った時期もありましたが、そしてとても良いOSでしたが、どうしても違和感が拭えない部分があり、ピッタリフィットとはいきませんでした。

なぜ私がUbuntuを良いと思い使い続けるのか、またMac,Windowsと比較してどうなのか、をまとめてみます。

そんなわけで完全にUbuntu目線です。ご了承頂ければと。

仮想デスクトップ

私は基本的に4x3で計12枚の仮想デスクトップを使います。これをショートカットで切り替えながら仕事します。ぶっちゃけ全てを使うことはないのですが、なんとなくslackは左下隅、IntelliJは中段真ん中より右とか場所が決まっていて、脳をあまり使わずにアプリを切り替えられます。

Ubuntuというか現在の標準ウィンドウマネージャーであるUnityは最初から仮想デスクトップに対応しているので、設定さえすれば即この環境が利用できます。 ただし、17.10から標準となるGnomeだと縦方向にしか増やせないはずなのがちょっと頭痛いところ。

universeにはUnityが残るらしいので、Unityを使い続けることになるやもしれません。

MacにはTotalSpace2という素晴らしいアプリがあり、ほぼ変わらぬ使い心地を実現できました。

Windows10はどうなんだろう。。ネイティブで仮想デスクトップに対応しましたが、横方向にしか増やせないのがつらいところ。

アプリを追加すればできるんでしょうか。情報求むです。

コマンドラインランチャー

基本的にホームポジションから手を動かしたくない人種なので、ランチャーはコマンドラインが基本なのですが、UnityにはLensという強力なランチャーが存在します。アプリからファイル検索までお手のもので、ぶっちゃけMacのspotlightに勝るとも劣らない感触です。

これもただこれもUnity固有機能なんですよね。さらにUnityが手放せなくなっていく…。次点でGnome-Do。

Mac横綱spotlight。圧巻です。文句なしです。

Windows10では、Cortanaが同じ役目を果たしてくれている感じです。ただ若干アニメーションがうざい。オフにするには全てのUIアニメーションをオフにしなければならないという…

HUD

これは他のOSではなんといったらいいのか。。

各アプリのメニューに載っている機能をコマンドラインから呼び出す機能です。OSの言語が日本語のうちはぶっちゃけ半分ゴミですが、英語にすると256倍はかどります。gnome-terminalのprofileに'red',‘blue'等の名前で登録し、HUDで即座に切り替えるのが気に入っています。

これもまたUnity固有機能。Macの場合はメニューの各項目にショートカットを割り付けられるので、頻繁に使うやつはそれでしのげばいいのですが、覚えておかなければならないのが、脳のリソース的につらい。

Windowsの場合は、、、autohotkeyでショートカット割り付け?

いずれにせよ、HUDの操作感を実現する方法はわかりません。

そしてこれもUnityの機能。私がgnomeに移行できる日はくるんでしょうか。

ターミナル

これが無くては始まらないターミナル。サーバーサイドを主戦場とするエンジニアとしてはgnome-terminalが必要にして十分。特にHUDと組み合わせてプロファイルを切り替えながら作業するのが好きです。本番サーバーに繋いでいるターミナルは赤にしとくとか。

Macの標準ターミナルもiterm2も試しましたが、起動後にプロファイルを切り替える手段が無いのがなじめませんでした。起動時には指定できるんですけれども。方法があったらぜひ知りたいです。

Windows10は標準のcmdが背景透過できるようになってモチベーションアップ!起動後のプロファイルの切り替えもOK!頑張っている感じです。

アプリの扱い

基本的にターミナルもブラウザもコマンドラインランチャーからバンバン開いて、いらなくなったらAlt+F4で終了したいんです。

それができるのがUbuntuWindows

Macはアプリとウィンドウの違いを意識しなければならないのがつらい。いや一発で全ウィンドウを閉じられるメリットもあるんですけれども。

どうしてもなじめなかったなぁ。。

パッケージ管理システム

aptが便利すぎます。基本的にPCを起動したら、sudo apt update;sudo apt upgrade; アプリもaptで入れて気に入らなければremove。気に入ったら自分用のインストール用スクリプトに追加して、OS再インストールに備える。Macbrewも秀逸なんですが、全てがパッケージ管理されているかどうかという点で、気持ちよさが違うと感じます。Macユーザーにもkernelアップデートが来た時のsudo apt upgradeのドキドキを知ってほしいww

Windowsは、、Windows updateに数十分から数時間かかることがあるという、ちょっと信じられない問題をなんとかしてほしいです。

updateするにはかなり勇気がいると個人的には感じます。作業が数時間できない可能性があるという…

環境のマイグレーション

アプリのインストール、設定ファイルの配置をスクリプトでほぼ全自動化できるのがUbuntuのいいところ。

半年ごとの新しいバージョンのリリースごとに気軽にクリーンな環境に戻せるのが気に入っています。もはや再インストールが趣味です。

Macbrewがあるので、かなり自動化できます。というかタイムカプセルもあるので、この件についてはMacの方がいいかも。クリーンインストールの時は若干Ubuntuに軍配があがるでしょうか。Windowsもバックアップをとれるのでいいですね。ただ、クリーンインストールの時は、つらみが勝るイメージです。これは単に私がわかってない気がします。

キーアサインの変更

Ubuntuならxkbでほぼ全てのキーアサインを変更できます。USキーボードのvim使いなので、まず必須としてcolon,semi-colonを入れ替えます。

あとCapsLockにISO_Level3_Shiftを割り付けて、Windows,Alt,Ctrl,Shiftに続く第五の修飾キーにするのが気に入っています。

MacEl CapitanまでならKarabinerという素晴らしいアプリがあったのですが、Sierraになって使えなくなったのが痛いところ。ただ、Hammerspoonでかなり細かいことができるようなので、慣れてしまえばKarabinerよりいいかも。私は慣れる前にMacを卒業してしまいましたが。。 Windowsもいわずとしれた、autohotkeyがありますね。

いずれのツールも設定ファイルで設定できるので、この項に関しては横並びな印象です。

Docker

今やかかせない仕事道具となったDockerですが、環境用意の観点でいうと、Mac,Windowsの方が楽です。 なぜならば、aptで入れると古いのが入っちゃうから。。

Docker公式サイトのドキュメントを参考に入れても、今度はdocker-composeを入れる時に困るので結局pipで入れることになるんですよね。 2017年の春先までこんな印象でしたが、どんどん改善されているので今は違うかも。違うといいな。。

ドヤリング

Think differentといえばMac。しかしWEB系エンジニアクラスタを見回してみると圧倒的にMac多し。どう考えてもdifferentではない現実です。

そしてエンジニアを離れれば今度はWindowsの独壇場。デスクトップOSシェア90%超えは伊達ではないっすな。

そんなわけでデスクトップを見せただけでドヤーッとしたければUbuntuが最も手軽かつインパクトありと断言できます。 ただ問題は、気が付いてもらえない、ことですね。 完成度があがってるんでたいして見た目はWindowsと変わらんという….

まとめ

とこんな感じです。想像以上にUbuntuというよりUnity大好きな感じです。

これを見てUbuntuを使いたくなって頂いたら嬉しいですが、まあ難しいですよね。

そしてUnityはもうすぐメインストリームを外れます。 泣けます。。