有馬総一郎のブログ

(彼氏の事情)

2021年12月24日 19:26:08 JST - 9 minute read - Linux

Ubuntu 20.04、M1 MacBook Proでそれぞれ開発してみて

今年は、開発案件が短期間で変わったりと大変だった。上半期は、Ubuntu 20.04で Flutterの開発、下半期はM1 MacでJava、Kotlinで開発してみた。それぞれ、思ったことを独断と偏見で、浅慮な感想を書く。余りマジで受け取らないように。

それぞれ、開発環境は以下のとおりだった。

Windowsでの開発

そもそも FlutterはWindowsで開発していた。しかし、dartGitHub - leoafarias/fvm: Flutter Version Management: A simple CLI to manage Flutter SDK versions.の導入が手順を間違えるとうまく行かなかったり、Android Studioもバージョンアップしたら動かなくなったりとやはり不安定だった。

WSL1だと、そんな苦でもなかったかも知れないが、スペックがそもそも貧弱だった。

Ubuntuでの開発

Ubuntu

使っているツールなど見るに、これUbuntuで良いんじゃねー?と思ったので、Ubuntuで開発することにした。普段、日常で使っているものの、実は本格的に開発で使うのは初めてだった。しかし、一度環境を構築してしまえば、特に困らなかった。やはりdartfvm、Android Studioなどの導入は、Windowsよりやりやすかった。

リモートで開発するので、動かないとか、質問するとき、キャプチャーすることが多かったので、標準のスクリーンレコーダー使ってたのだけど、Alt + Ctrl + Shift + rで済んだのは便利だった。Windowsでもゲームバー使えば出来るんだけど、それより楽だった。

gitクライアントツールは Git Cola。初めは Sourcetreeより使い辛いと思ったが、ブランチとの差分などはこっちの方が分かりやすかった。慣れればGit GUIよりは使いやすいと思う。翻訳に難があるけど、それなら英語のまま使えばいいかな。

後、Windowsのフォント描画も改善されてきてるが、やはりUbuntuの方がフォント描画が綺麗。

短い期間だったとはいえ、びっくりするぐらい、開発には困らなかった。

M1 MacBook Proでの開発

M1 MacBook Pro

初MacがM1 MacBook Proだった。これが噂の…とか期待胸膨らました。Macについてはこんなイメージを持っていた。

  1. 直感的に使いやすい、操作性に優れている
  2. カスタマイズ不要でデフォルトの状態から使い易い設定で、アプリが揃っている
  3. Retinaディスプレイが美しい
  4. さくさく動いて、動作が軽い

フラットな状態で、使い始めたとき、Macの方が直感的に操作できるってよく言われるんだけど、具体的にどこらへんなんだろうか?

アプリケーションのアンインストールは、ごみに捨てるだけで済むってことぐらいしか思い浮ばない。

変に隠されて困る

ファイル管理アプリのFindedrの操作が、エクスプローラーに比べて分かりにくかった。eclipseの内部を見るにも パッケージの内容を表示 を選択しないと見れなかったり、Finderからのコマンドが、設定から変更しないとコンテキストメニューに出ないとか、あれこれ隠されたりするので困る。また、Finderパス指定での移動、隠しファイル表示2などがショートカットキーを押さないと出来ない。

ショートカットが覚えにくい

そのショートカットキーが、Windowsに比べて、覚えにくい気がする。スクリーンショットはcommand + Shift + 3。Finderパス指定移動は、command + Shift + g

WindowsならスクリーンショットはPrintScreen。エクスプローラーでのパス指定移動はCtlr + l。エクスプローラーからコマンドは、ロケーションバーでcmdまたはpowershellと打つだけ。こっちの方が覚えやすいような…

キー配列も独特というか、commandがある意味、WindowsでのCtrlに当たるけど、commandはあくまでcommandで、別にCtrlがある。そのためにどうしてもショートカットなどがWindowsやLinuxとは異なる。

キーが押しにくい

M1 MacBook Pro

日本語配列だと、\バックスラッシュが、opt + ¥という変則さ。カットペイストがcommand + ccommand + opt + vってやりにくい…またタッチバーはデフォルトではF1を押すにはfnキーを押す必要がある。設定で不要にできるが。

結構、調べたり周りの人に聞くと、キーボードをカスタマイズする Karabiner-Elementsなるものを導入してるんだよね。自分も、すぐ諦めて、外部キーボード使うことにした。

慣れの問題にしても、Windows、Linuxと比べて独自過ぎると思う。設定変更やらツールをインストールしなきゃいけない時点で、使いにくさがあるのは確かじゃないのかな。

アプリの切替、終了がめんどう

アプリの切替も、Macはデスクトップ(ワークスペース)にアプリを一対一で配置していく主義のためなのか、アプリ内でのウィンドウ切替がcommand + tabcommand + F1と面倒。ブラウザーで複数ウィンド開いたり、IDEで別プロジェクトを複数立ち上げてるときとか、迷子になる。指三本アップして探すーみたいな。

他にも全画面表示ボタンを押すと、フルスクリーンでメニューが見えなくなるから、メニュー見せつつ全画面表示は、opt押しながらじゃなきゃいけない。

アプリが完全終了するのも 閉じる を押しただけじゃ駄目で、いちいち Dockやファイルメニューから アプリを終了 3をする必要がある。

タッチパッドは使いやすい

ただ、タッチパッドが使いやすいのは確かで、ノートパソコンのマウスなし操作としては使いやすくて、それはWindowsノートパソコンに対する優位だとは思う。

とはいえ、 ASUS Chromebook Flip C101PA(C101PA-OP1)のタッチパッドに大分、肉薄されてる。他のハードウェア、OSでも実現されつつある。パクりといえばパクりなんだが。

しかし、そのタッチパッドも、あくまでタッチパッドとしての優秀さであって、マウスのほうが使いやすいと個人的には思う。私はマウスを使ってる。

ASUS Chromebook Flip C101PA

アプリの導入に戸惑う

パッケージをダウンロードしてインストールするときは、itenl版かARM版か選択しないといけない。また、nvmとかで古いバージョンだとARM版がなくて失敗したりする。あと、Windows版より安定してると思ったらeclipseでの動作は、不安定だったり。

コマンドでインストールすると Spotlight検索 出ないとか、パッケージ版のnpmインストールした場合のアンインストールが割と面倒だったりする。

比較ツールが WinMergeMeldに比べると、 P4Mergeとかイマイチなんだなぁ。

iPhoneとかはAndoroidより同じアプリでも優れてるみたいな噂を聞くんだけど、Windowsと比べると貧弱に感じる、有料アプリを買えば解決なのかな?または、クリエイター系アプリなどは強いんだろうけど。

見た目、軽量の差異は感じない

Retinaディスプレイはうんぬんは、クリエイター的なことやってないので差異を感じず…てか、ターミナル、 monako フォントなのに、表示が崩れたりするのは何故?

そもそものデスクトップは、Windowsならアニメーションオフにしたり、Linuxなら軽量なデスクトップにしたりとあるが、Macは滑かさ、見た目、体験?を重視しているから、待たされるとかイラつくってことはないが、サクサクという感じでもない。

電池持ちは良い

ノートパソコンのバッテリーなんて4時間持てば良い方なのに、M1 Macは、9時100%だとすると、Zoomを1時間使用、ブラウザー、800MB程度のソースのビルドを数回繰りかえすと、15時ぐらいには10%切るという感じ。これだけのパワーで、これは凄いのかも。

アップデートは時間かかる

アップデート

意外だったのが、アップデートが思ったより時間かかる。1時間とか待つ。Windowsよりは短い気がするが、Linuxみたいにすぐ終わらない。で、アップデートすると日本語入力を設定しなおさなかったり、gitが使えなくなって、xcodeインストールしなおさなきゃいけなかったり、下手すると文鎮化したり…え、ハードウェアとセットで売ってて、それはなくない?ってのが正直なところ。

以上、それぞれに解決方法はあるんだろうけど、そもそも調べなきゃいけない、設定変更しなければならない、有料アプリ買わなきゃいけないので、そのままで使い易いってイメージとは違っていた。

比較結果

Windows Linux Mac
事務作業 ★★★ ★★
ゲーム、エンタメツール ★★★ ★★
クリエイター系作業 ★★ ★★★
プログラミング、開発 ★☆ ★★★ ★★
安定さ ★★ ★★★

クリエイターでも、ゲーマーでもないし、狭い特定分野でのプログラマーなので、なんとなくだけど、表にするとこんなイメージ。あら、合計点ではMacが一番じゃないの!?

安定さはLinux、一番低くしたけど、UbuntuのLTS版などのOSアップグレードが不要が期間が長く、かつ、ローリングリリースモデルじゃないOSなら、開発ツールだけのインストール、アップデートだけしてればWindowsやMacには及ばずとも数年にわたっての安定開発というか、構築手順変更少なめのまま開発を続けられそうな気するけどね。

まとめ

Macについては、不満ばっかり書いてしまったのは、期待の裏返しと思っていただきたい。Linux、Windowsだったら、これだけの手間で、こんなに動くなんてスゲー、神とか思えるんだろうけど、持ってたイメージとの乖離と、一部ユーザーの過剰な持ち上げのせいだな。

ま、それだけ、Windows、Linux、Chromebookも良くなっているんだと思うし、動画・音楽作成などをするクリエイターや特定の分野の方々には最強なんだと思う。このまま使いこんでいけば来年、再来年には印象も変わるかも知れない。結局は、自分がどう使うかなので、他人の評価なんて気にする必要ない、と改めて思う。


  1. Windows Subsystem for Linuxの略。 ↩︎

  2. command + shift + .というショートカットキー。 ↩︎

  3. command + qでも終了できるみたいだけど、ここでもショートカットキーなの?みたいな。 ↩︎