開発環境の変化に思うこと
私は、長年MicrosoftのOSの上で動くソフトウェアを開発してきました。
MS-DOS 2.11に始まりWidows3.0,3.1、WIndows95、WindowsNT、WIndows2000、WIndowsXP、Windows7、Windows8、Windows10、Windows11
本当にいろいろはOSでしたが、基本はMicrosoftなのです。
もちろん、その間にも、OS/9(懐かしー)やOS/2や、各メーカーのUNIXやLINUXも必要に応じて使ってきました。
しかし、Apple系やAndroidは、あまりご縁はありませんでした。
そういう意味でMicrosoft信者だったのですが、ここ最近は、”Windowsは面白くない”と思うようになってきました。
ワクワク感がないのです。
それは、年齢のせいかもしれません。
とはいえ、まだプログラムを書く事の興味はなくしていません。
昨年、初めてApple製品を買いました。(スマホはiPhoneなので、Apple製品が初めてではないのですが)
PCとしてのApple Mac mini (M4)を購入しました。
購入理由は、iPhoneアプリを作るには、Macが必要ということ。これだけです。
少し前に、スマホで動くアプリを作ることになりました。
日本ではスマホのシェアではiPhoneが多いこと、Androidは各社で違いが大きいことなどがあり、本来ならターゲットはiPhoneにしたいところでしたが、ネットワークを使うアプリであることから、iPhoneのセキュリティの制約もあり、結局Androidをターゲットに開発しました。
Android版の後で、iPhone版の開発も視野に入れて開発検討を進めましたが、やはりハードルは高く、断念しました。そんなことで、Macを購入しましたが、それが活躍することはありませんでした。
Macの操作には戸惑いも多く…
Mac Miniを買っても、最初は操作にかなり戸惑いもあったりました。
私が購入しているアプリは全てWindowsなので、メインはやはりWindowsのままでした。
開発関係のツール、音楽関係のツール、ドキュメント処理関係のツール、動画編集関係のツールなど全てWindowsで長年おこなってきたので、なかなかMacで作業を行うようにはなりません。
ただ、最近の機械学習をはじめAI関係の開発に取組むためには、私のWindows環境では今一つなのです。
Windows PCは、Intel Core i9 (第12世代)なので、CPUとしては、まあまあなんでもできますが、GPUがAMD Radeon RX 6700 XTなもので、AI系にはちょっと難があります。
なぜ、NVIDIAを選択しなかったのか、後悔しています。
そんなこともあり、機械学習やAI関係の作業は、もっぱらGoogle ColaboratoryやGoogle Cloudを使っています。
クラウドサービスは、快適ではあるのですが、利用料金も結構な支払になり、支出を抑えることも含めて、Local環境の再構築を模索するようになり、Mac miniで開発することが多くなってきました。
最近の仕事でも、Windowsでの稼働が前提になることもなくなり、Intel-Linuxベースだったり、Raspberry PiのARM64ベースだったりと、Windowsに拘ることも少なくなり、昨年後半からの開発では、Mac環境でシステムを開発するようになってしまいました。
Macがメイン機になる日も近い
Linuxベースのアプリ開発とはいえ、わざわざLinux機を稼働させることもなく、Macでも十分な部分は多いのです。
特にAI関係の作業するには、Mac miniでもそこそです。
AIモデルの学習の時は、Googleなどのクラウドを利用して行い、学習済モデルをLocalにダウンロードし、アプリに使うことで十分です。
クラウドに頼る分だけ、外部支払の問題は解決していません。
そはいえ、まだモデルも小さいことからMac miniでも時間はかかりますが、モデル学習でもなんとかこなせています。
私の開発環境は、4Kモニタ3画面を並べて使っています。
Mac miniを購入するまでは、全てがWindowsで、実験や用途に合わせて、画面を他のPCに割り当てたり、1枚の4Kモニタを分割表示で、RaspberryPiや別なPCなど色々な構成しようしていました。
Mac miniを購入後は、1枚のモニタがMacに割当て、残り2枚のモニタをWindows(メイン開発機)とサブ機器用に割り当ててきました。
当初の配分は、Windows 2/ Mac 1のモニタ配分が続いていましたが、最近時々、Windows 1/Mac 2のモニタ配分になりてきました。
Macがメイン機になっていくために…
Windowsでの不満として、PCのハードウェアによっては動かないアプリがあるという事です。
特に、グラフィックボードによって制約を受けるアプリがあります。
どうしても、NVIDIA中心になっている気がしています。
一番気になっているのは、”AIに関係する開発”と”DNLAアプリがAMDグラボで動かない”この2点です。
そんな時に、Macの開発環境に触れてみて、ハードウェアにより能力に違いはあるもの、Windows環境で気になっていたことを乗り越えられることが確認できたのです。
しかし、Macの日本語入力はどうも使いにくいのです。変換確定と未確定がわかりにくいということです。
Appleキーボードを使わず、Logicool MX KeysをWindows/Macで共有している影響なのかもしれませんが、変換未確定の文字の下線が見えなくなるのです。
そんな時に、Google日本語入力の情報を見つけました。何やら以前はMac Rosetta 2ベースで動いて動作が機敏でなかったようですが、現在はNativeで動作するそうです。
GoogleがNative対応した理由は、Rosetta 2が段階的に終了するため、Nativeに対応したそうです。
という背景的なこともあり、メイン開発機をWindowsに拘る理由は低くなるばかりか、Macを中心に据える時期がすぐそこに来ている気がします。
私にとってのメイン機の定義は何か、というと次のような事なのです。
- ・メールを読む(OutLookなのです)
- ・正面のモニタを占有している(今は、Windows/Macが時々変わります)
- ・外部スピーカーでBGMを流している(Blue-ray DiskがWindowsにつながっているので、しばらくはWindows)
- ・動画制作ができること(今は、PowerDirector365なのでWindowsなのですが、DaVinci Resolve StudioとかApple Creator Studioを契約になります)
- ・音楽制作ができること(Cubase/VOCALOIDが今のところWindowsのみなので。Macへ変更はできますが。。。その他の音楽系アプリが沢山Windows版を持っているので変えにくいです)