1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Windowsが今更(?)開発者に優しくなろうとしている!? 「Dev Home」は開発者にとって使い物になる?

ASCII.jp / 2024年6月23日 10時0分

Dev Home
Dev Homeの起動画面。最初に「ダッシュボード」が表示される。ここには、登録したウィジェットが並び、ツールのアップデート状態やGitHubの通知などが表示できる。左側にあるのがページ切替のナビゲーション領域だ

Build 2023で発表された開発者向けアプリ「Dev Home」 開発が進められているようだ

 昨年5月に開催されたMicrosoftのイベント「Build 2023」で、「Dev Home」なるアプリケーションが発表された。しかし、Copilotと同じタイミングだったので、ほとんど話題になることはなかった。このとき、筆者もインストールして試してみたが、特筆するようなことは何もなく、ソフトウェアの開発には特に不要なものと判断していた。

 それから1年、プレビュー版はバージョンアップしていた。まだまだ完成ではないが、将来を考えるとWindowsを開発マシンとして使うときの「入口」ぐらいにはなる機能を持ち始めていた。今回は、このDev Homeと開発環境としてのWindowsを考えることにする。

 Dev Homeは、一応オープンソースとしてGitHub上にソースコードがあるが(https://github.com/microsoft/devhome)、実際にはMicrosoft内部で開発されており、その一部がGitHubで見えている感じだ。

 というのも、評価に使ったDev Home Ver.0.1501.533.0は、原稿執筆時点でまだリリースノートも公開されていない。また、5月のBuild 2024で、Windows Sandboxにも対応と発表されたが、それにも未対応のようである。

 プレビュー版Dev Homeは、Microsoftストアからインストール可能だが、スタートメニューなどからのアプリ検索でDev Homeが見つかるなら、起動するとインストールが開始される。

使い物になりそうなDev Home

 Dev Home(記事冒頭画面)には、大きく以下のような機能がある。

ダッシュボード:ウィジェットの表示 マシン構成:開発環境の基本を整備する 環境:Hype-VやMicrosoft Dev Boxなどの登録、起動 Windowsのカスタマイズ:開発者ドライブ、エクスプローラー、開発者向け設定 ユーティリティ:現状はPowerToysなどの開発関連機能の呼び出し 拡張機能:Dev Homeの拡張機能のインストール 設定:試験的な機能のオンオフなど

 「ダッシュボード」に関しては、以前の記事(「Windows 11の2つのウィジェットを調べる」)で少し触れた。簡単に言えば、Dev Home用のウィジェットをピン留めして、開発に関わるさまざまな情報をカード形式(ウィジェット)で表示するページだ。

 後述する「拡張機能」などにより、追加できるウィジェットが増えるが、「開発ホーム」に付属するCPUやGPUの負荷率やメモリ状態を表示するウィジェットを、ピン留めするとかなり負荷がかかる。Dev Homeを閉じていてもウィジェットプロバイダは動き続けるらしく、負荷がかかった状態になるので注意が必要だ。

 「マシン構成」は、開発環境を準備するためのもの。ただし、今のところGitHubのリポジトリのクローンと、Wingetを使ったアプリケーションのインストールしかできない。マイクロソフトの開発ツール(Visual StudioやVS Codeなど)は、Winget経由でインストールできる。

Dev Home
「マシン構成」は、開発環境の整備をする。「ローカルマシンのセットアップ」では、GitHub上のリモートリポジトリのクローンや、Wingetなどを使ったアプリケーションのインストールをする。これらの操作は、wingetの構成ファイルとして保存でき、他のマシンなどで同じ環境を作ることができる

 直接表示されるアプリケーションは、代表的な開発ツールのみだが、検索欄を使うことで、Wingetでインストール可能なアプリケーションが検索されてリストとして表示される。ここから必要なツールを選び、インストールできる。

 リポジトリとインストールしたアプリは、以前紹介したWinget Configuration(「WinGet ConfigurationとPowerShell DSC」)の構成ファイルとして保存できる。この構成ファイルを使うと、他のマシンでも同じ開発環境を再現できる。

 そのほか、Hyper-Vの作成済み仮想マシンや、MicrosoftのDev Box開発サポートサービス(有償)による開発環境設定も可能。前者は、Windowsデベロッパーセンターにある開発環境を入れた仮想マシンイメージ(https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/)である。後者は有償サービスであるため、調査はしなかった。

 ここには開発者ドライブの有効化のリンクがあるが、実作業は、以前解説したDev Driveの記事(「開発者向けに性能が高い、Windowsの「開発ドライブ」を試す」)と同じくWindows 11の設定アプリを使うものだ。

「環境」「拡張機能」「設定」など

 「環境」は、マシン構成で作成した仮想マシンなどを選んで起動する場所である。

Dev Home
「環境」は、登録された仮想マシンなどを起動するところ。現状、Hyper-VとMicrosoft Dev Boxサービスが対象

 「Windowsのカスタマイズ」は、設定のシステムにある「開発者向け設定」やエクスプローラー設定を変更するところ。

Dev Home
「Windowsのカスタマイズ」は、開発者向け設定やDev Driveの最適化(言語パッケージマネージャーのキャッシュ移動など)ができる

 ここに「開発者ドライブの分析情報」というのがあるが、これは、開発言語パッケージマネージャーのキャッシュを最適化する。

Dev Home
Dev Driveを作ると「Windowsのカスタマイズ」に、「開発者ドライブの分析情報」が表示されるようになり、ここで、言語パッケージマネージャーのキャッシュをDev Driveに移動させる最適化ができる

 言語のパッケージマネージャーは、いまのところPythonのpipや.NET用のnuget、node.js(JavaScript)のNpm、JavaのMaven、Gradleが対象で、そのキャッシュを開発ドライブ上に配置する作業ができる。、以前解説したように、開発者ドライブはNTFSのドライブと比較して、アクセス速度を稼ぐことができる。

 「ユーティリティ」は、いまのところPowerToysの開発向け機能を起動するもの。ホストファイルエディター、レジストリプレビュー、環境変数エディタが登録される。

Dev Home
「ユーティリティ」からは、今のところPowerToysの開発関連ツールなどが起動できる

 「拡張機能」は、Dev Homeのプラグインをインストールするところ。現時点では、「Azure」「GitHub」「Game Dev」「UniGetUI」(以前のWinget UI)が用意されている。インストールすることで、それぞれが提供するウィジェットや設定機能などがDev Homeに追加される。

Dev Home
「拡張機能」は、Dev Homeの拡張機能をインストールするところ。拡張機能はMicrosoftストアから入手する

 「設定」では、テーマなどを変更できるが、重要なのは「試験的な機能」だ。ここでは、「Project Ironside」「Quickstart Playground」「静かなバックグラウンドプロセス」の3つを有効化できる。

Dev Home
設定には「試験的な機能」があり、「Project Ironsides」(ユーティリティに追加)、「Quickstart Playground」(同マシン構成)、「静かなバックグラウンド」(同Windowsのカスタマイズ)の3つがある

 Project Ironsideは、プロセスからの情報を表示するためのツールで有効化すると、Dev Homeのユーティリティにツールとして登録される。起動するとプロセスのリストが表示され、詳細な情報を表示できる。Windows Internalにあった、Process Explorerのような表示が得られる(ただしプロセスツリーは表示されない)。

 「静かなバックグラウンドプロセス」は、有効にすると「Windowsのカスタマイズ」に項目が表示され、優先度の高いプロセスの実行を抑制する。ソフトウェアのビルド時などに、CPUをコンパイルなどに専念させたいときに使う。

Dev Home
Dev Home
「静かなバックグラウンド」は「Windowsのカスタマイズ」に追加され、最大2時間、遅延可能なプロセスを一時停止させることができる(画像1つめ)。セッションを終了したあと、「分析の概要」で、どのプロセスをどれだけ停止させたかを表示可能(画像2つめ)

 たとえば、作業途中でWindows Defenderのスキャンが起動すると、コンパイル速度が低下してしまうことがある。「静かなバックグラウンドプロセス」は、こうしたプロセスを一時停止させる。ただし、一時停止できるのは、遅延しても構わないような緊急性のないプロセスのみで、一時停止時間は最大2時間までとなっている。現在この機能が有効なのは、Devチャンネルのプレビュー版Windows 11などで通常版では利用できない。

 「Quickstart Playground」は、OpenAIの有料アカウントを使いChatGPT経由でプロジェクトを準備する仕組みだ。自然言語で開発したいソフトウェアの概要を入力すると、AIで作成したコードを含むプロジェクトが作成される。これも有償アカウントが必要なため、試していないが、チュートリアルがMicrosoftのページ(https://learn.microsoft.com/ja-jp/windows/dev-home/quickstart-playground)にある。

開発者に優しくなろうとしているWindows

 現状、Windows以外の多くのプラットフォームが、開発環境としてWindowsを使っている。異なるプラットフォーム向けのソフトウェア開発を「クロス開発」と呼ぶが、Windowsは最も使われているクロス開発プラットフォームだろう。

 ただ、これまで、Microsoftは開発ツールを提供するなどはしてきたが、Windows自体を開発プラットフォームとして環境整備することがなかった。

 その風向きが変わったのがWindows 10である。設定に「開発者向け設定」が入り、Linux環境を動かすWSL(Windows Subsystem for Linux)が導入された。Windows 10より前、Windowsはパソコン初心者にとって使いやすくすることが至上命令で、開発者のような“玄人”のことは何も考えていなかった。

 もっとも、勝手にレジストリを書き換えるようなこともできたので、「放置」していてもよかったわけだ。しかし、スマートフォンの台頭やWebサイト構築などで、開発者の数が増え、必ずしもすべての開発者がWindowsに精通しているわけでもない時代になった。

 そうなると、クロス開発の開発者が他のプラットフォームに逃げていく可能性もある。Microsoftも開発者に「優しく」なる必要が出てきた。

 Dev Homeは、こうした動きの一環といえる。現状、Windowsに開発環境を頼らないプラットフォームは、LinuxとmacOSくらいだろう。そのLinuxはすでにWindowsに取り込んだのであるから、ほぼすべてのプラットフォームの開発に利用できるようになった。Windowsは、x86/x64だけでなく、ARM版Windowsもあり、ARM64のバイナリも実行が可能だ。

 Microsoftの主力開発ツールであるVisual Studioも、PythonやNode.js(JavaScript)といった開発が可能になっている。また、Win32側で開発したLinux向けコードをWSLで実行することもできる。

 また、Docker Desktopを使うことで、Linux向けに作られたコンテナの実行も可能になり、WSLgでLinux GUIアプリケーションも動かせるようになっている。Linuxの開発ツールはコマンドラインのものも多く、Dockerコンテナイメージで配布されるものも少なくない。これにより、コンテナを動かすだけで開発がすぐにできるようになる。

 Windows 10以来、実行環境としては充実してきたわけだが、さまざまな環境整備をするための最後のピースがDev Homeというわけだ。ただ、まだプレビュー版でもあり、かなり荒削りな状態だ。今後は、ローカル推論に使われるAIモデル(学習済みニューラルネットワーク)なども開発の対象となる。開発プラットフォームとしてのWindowsの環境整備はようやく入口に到達した段階と言えるだろう。

 Dev Homeは、いまのところ、すべての開発者に便利というわけでもないが、役に立ちそうな機能もある。筆者は、今のところ個人でしか開発していないので、チーム開発向け機能の使い勝手がいいのかどうかは判断しかねる。しかし、WingetやDev Homeの機能でインストールしたアプリや、言語パッケージの更新通知やプロセスの情報を得られるProject Ironsideあたりは、個人開発者でも使えそうである。

 Dev Homeの「マシン構成」にある「アプリケーションのインストール」を使えば、構成ファイルを出力できる。単独でWingetコマンドを使ってインストールするより、再現性が高く、何かのときに開発マシンを別に用意する、ハードウェアを乗り換えるときなどに便利だ。しかも、Wingetでインストールできるなら、対象は開発ツールでなくてもよい。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください