マイクロソフト製のWindows/Linux/macOSクロスプラットフォーム対応シェル、オープンソースの「PowerShell Core 6.0」正式版が登場
マイクロソフトは、Windows/Linux/macOSのクロスプラットフォーム対応の新シェル「PowerShell Core 6.0」正式版のリリースを発表した。Windows専用に開発されてきたPowerShellをオープンソース化し、.NET Coreをベースに作り直したものだ。
Windowsには「コマンドプロンプト」と呼ばれるコマンドラインツールが標準で搭載されています。コマンドプロンプトは、dirやcopyのようなMS-DOSの時代から使われている命令を用いてOSを操作し、バッチファイルなどを実行することができる、いわゆるシェルの機能を提供します。
しかしコマンドプロンプトは貧弱な機能しか備えていないため、マイクロソフトは2006年に、より強力なシェルである「Windows PowerShell」(以下PowerShell)をリリースしました。
PowerShellは命令の別名を設定するエイリアス機能やコマンドラインでの入力補完、高度なスクリプティング機能などを備えています。PowerShellはWindowsだけでなくWindows Serverにも対応し、Microsoft Azure用のAzure PowerShellも用意されるようになりました。
マイクロソフトとしては、プログラマが好んで使うコマンドラインツールとしての機能を、このPowerShellに集約しようとしているのです。
マイクロソフトがPowerShellをオープンソースに
2016年8月、マイクロソフトはこのPwerShellのソースコードをGitHubで公開し、オープンソースとしました。
と同時に、それまで.NET Frameworkをベースとして開発されてきたPowerShellを、.NET Frameworkのオープンソース版でありLinuxやmacOSにも対応するクロスプラットフォーム版でもある.NET Coreをベースにしたものへと作り直しました。
そしてPowerShellそのものも、WindowsだけでなくLinux、macOSのクロスプラットフォーム対応させることを目指して開発を進めるとしたのです。
マルチプラットフォーム対応の「PowerShell Core 6.0」リリース
2018年1月10日、マイクロソフトは.NET Coreをベースにマルチプラットフォーム対応とした新しい「PowerShell Core 6.0」正式版の公開を発表しました。
PowerShell Core 6.0はWindowsとWindows Serverだけでなく、Ubuntu、Debian、CentOS、RHEL、OpenSUSE、FedoraなどのLinux、そしてmacOSにも対応します。
またPowerShellは今後、.NET Coreをベースにしたクロスプラットフォーム版であるPowerShell Coreがバージョンアップの対象となり、従来の.NET FramworkをベースにWindows専用に開発されてきたPowerShellはバグフィクスのみのメンテナンスモードに入ります。
つまり今後PowerShellといえばオープンソースのクロスプラットフォーム版のことを指すようになるのです。
開発者のためのクロスプラットフォームに邁進するマイクロソフト
LinuxやmacOSではシェルとしてBashをはじめとする強力なシェルがすでに多数存在し、使われています。今回登場したクロスプラットフォーム対応のPowerShellは、LinuxやmacOSのシェルとして既存のシェルに代わりPowerShellが使われることを目指す、そう宣言したことにほかなりません。
プログラマが日常的に使うツールの代表といえば、シェルとテキストエディタではないでしょうか。すでにテキストエディタはオープンソースで開発されているクロスプラットフォーム対応のエディタ「Visual Studio Code」の強化を、マイクロソフトは積極的に行っています。
そう考えると、PowerShellのクロスプラットフォーム対応は、Linuxの開発者もmacOSの開発者も幅広く取り込みたいと考えているマイクロソフトにとって自然な流れだったとも思えます。
いつか、多くのLinux開発者がBashの代わりにPowerShellを使い、viやEmacsではなくVisual Studio Codeでコードを書く、という風景が見られるようになるのでしょうか。「いや、それならWindowsを使うよ」という声が聞こえてきそうですが……。
あわせて読みたい
サーバレスアーキテクチャのAWS Lambda、Go言語とC#の.NET Core 2.0サポートを開始
≪前の記事
AWSもSpectreとMeltdownの対策完了を報告。対策後、Amazon EC2で性能の低下は見られないと