Visual Studio Code
Microsoft Visual Studio Code(マイクロソフト ビジュアル スタジオ コード)(しばしば「VSCode」と略される。本記事も以下VSCodeと表記する)は、プログラミングに特化したコードエディタ(テキストエディタ)。
概要[編集]
名前の通りマイクロソフトによって開発されているが、オープンソースとしてソースコードを公開しており、世界中の貢献者によって支えられている。
クロスプラットホームでもあり、Windows、macOS、Linuxそれぞれで、なるべく同等機能になるよう開発されている(細かな違いはあり。操作が微妙に異なる、シェルが異なる(WindowsはPowerShell、Linuxはbash)等)。
2015年の登場以来、他テキストエディタや統合開発環境からの乗り換えが進み、2019年頃からシェア1位を獲得。
それまでプログラミングツールにはテキストエディタのTeraPad、サクラエディタ、秀丸エディタ、Emacs、Vim、統合開発環境ではAtom、Eclipse、
そしてマイクロソフトが昔から販売してきたVisual Studioと多数の選択肢があり、それぞれ利点欠点があり宗派があり、エディタ戦争の原因となっていたが、
今は「今からプログラミングを学ぶならまずVSCodeを覚えよ」と言わんばかりの空気になっており、様々な理由(会社からVSCode使用を強制されている等)で各宗派から離れざるを得なくなった異端者は「拡張機能」を通してVSCode上でキーバインドや類似機能を再現、
今までのエディタと似たような感覚でVSCodeを使えるようにすることで乗り換えを図っている。
Electronフレームワークで構築されており、すなわちGoogle ChromeやMicrosoft Edgeでお馴染みChromiumレンダリングエンジン(Webブラウザの描画エンジン)の技術が用いられている。
拡張機能[編集]
インストール直後のVSCodeは、とどのつまり「ちょっと重たいテキストエディタ」。
- Git連携
- 基本的なシンタックスハイライト(テキストへ色付け。JavaScript、TypeScriptなど現在のメジャーなプログラミング言語のみ)
- 基本的な単語補完
が使用可能な状態になっているものの、
については、プログラミング言語に対応する拡張機能を導入する必要あり。VSCodeは素のまま使うことは想定されておらず、各種の拡張機能をインストールして使うよう意図されている。
拡張機能マーケットプレイスにはマイクロソフト製・非マイクロソフト製が入り混じった膨大な数の拡張機能が公開されている。例えばC++用拡張機能を導入することによって、
- C++言語に対応するシンタックスハイライト
- C++言語に対応する単語補完
- C++プログラムのデバッグ
が利用できるようになる。
拡張機能は何も言語サポートだけではなく、
- 見た目を変更(表示項目を追加、或いは不要な項目をオフするなど)
- キー操作を変更(EmacsキーバインドやVimキーバインドを実現など)
- 機能強化、或いはVSCode標準では出来ない機能を実現(ファイルパス補完など)
- 外部リソースとの連携機能(AWS連携など)
など、拡張機能次第ではあるものの基本的に出来ないことはほとんどないと言える。
VSCode入門書籍・ネット上の記事も「まず○○拡張機能を入れろ。話はそれからだ」となっている場合が多い。
拡張機能はJavaScriptまたはTypeScriptで作成する。我こそはと野望を抱く開発者は自らVSCode拡張機能を作成することも可能。開発者アカウントを取得して申請することでマーケットプレイスへ登録され、世界中のVSCode利用者へ向けて公開される。
Visual Studioとの違い[編集]
VSCodeが登場するよりはるか前からマイクロソフトが販売しているVisual Studio。
- (アカデミー向けライセンスを除いて)有償ソフト。結構高い。VSCodeは無償であるだけでなくソースコード公開。やろうと思えば内容をパクって類似アプリ作成も可能は可能。
- Visual StudioそのものはWindows用。macOS版もあるにはあるが開発終了が発表されている。.NET最新版はクロスプラットホームであるためmacOS・Linux向けアプリも開発できるが、本業はWindows専用。VSCodeはmacOS・LinuxにインストールしてmacOS・Linuxアプリを開発可能。
- 開発に必要なツール郡が最初から揃っており、特に拡張機能を入れずともすぐに開発作業に入れる。それとは別にVisual Studio用のプラグインも対応している。必然的に重たい。VSCodeはインストール直後は「骨組み」だけの状態でとても軽い。拡張機能をあれこれ入れていくことによって徐々に重たくなっていく。
- Visual Studioそのもの公式な対応はマイクロソフトが注力するプログラミング言語のみ(C++、C#、TypeScript、或いは.NET基盤アプリなど。Python等はプラグインでの対応)。
- 一般には「GUIアプリケーション」や「ゲーム」など、速度重視のネイティブアプリはVisual Studioで開発されるという。VSCodeはCUIアプリケーション、或いはWebのバックエンド開発での利用が多いという。ブラウザーで動作するアプリケーションやWebページはVSCodeの独断場か。
- というわけで、Visual StudioとVSCodeは「何か名前が似てる」「開発ツールである」といった少々の共通点はあるものの、完全なる別物とされている。「どうして似たような名前にしたのよ?」と世界中の開発者が思っているに違いない。マーケティングがらみですかね?
VSCodium[編集]
VSCodeのソースコードは一般公開され、誰でも中身を確認できる(何なら改善点を提案して貢献できる)が、ソースコードをビルドした実行ファイル(バイナリー)はマイクロソフトが定めたライセンスによって配布されている。この実行ファイルには、VSCodeの動作状況を記録・マイクロソフトへ送信して改善に役立てるテレメトリー送信機能が含まれる。
「M$へ勝手にデータ送信される!」のを死ぬほど嫌悪する人々は少なくないわけで、テレメトリー送信機能を削除してビルドしたものが「VSCodium」として配布されている。テレメトリー以外は全く同等であり、各種拡張機能もVSCodeと全く同様に動作する。マイクロソフト嫌いが多いLinux界隈で大人気(偏見)。
その他[編集]
- プログラミングツールはとにかくキーボード打ち込みに集中し、マウス操作はなるべく避けたいと思われがち。VSCodeはどうしてもマウス操作が必要な場面があるにはあるものの極力少なく抑えられ、或いはキー操作で代替えできる手段が用意されている場合が多い。
- そのキー操作も自分の好みへ思う存分変更可能。インストール直後ではキー割当されていない機能も多く、上級者ほどキーバインド調整に時間を食う。
- VSCodeの動作を変更する設定画面もあるにはあるが、一方で「settings.json」設定ファイルを直接編集する設定方法もある。Linuxアプリでは珍しくないもののWindowsアプリでは珍しい。
- えてして、設定変更の検討、拡張機能の導入など、VSCode本体インストールだけでなく、その後の環境構築に時間・知識が必要。初心者には低くない壁だが、一方で世界シェアNo.1だけに解説書籍・解説記事は豊富に公開されているし、もし職場・案件での指定エディタであればマニュアルやレクチャーがあるはず。VSCodeを身に着けることで新しい案件にも素早く溶け込め、収入アップに繋がる、かも知れない?
- 上記の通り、Emacsキーバインド再現(Awesome Emacs Keymap)、Vimキーバインド再現(VSCode VimまたはVSCode Neovim)など、これまで慣れ親しんだエディタの操作をなるべく再現する拡張機能が公開されている。
- ただし、VSCode本体のキーバインドと衝突する・VSCode本体の仕様によりどうしても同等に出来ないキー操作も数多い。テキストエディタのプラグインやスクリプトで実現していた機能を実現する拡張機能を探さなければならない手間も無視できない。TypeScriptを覚えれば自ら拡張機能を作成するという荒業もあるが…。
- その意味ではいきなり全面移行するのではなく、当分の間並行使用するのが無難。数ヶ月並行使用した結果、やっぱり自分には合わないと元のエディタへ戻っていくのもまた一興。
- 確かに軽いテキストエディタと比べればVSCodeは重たいが、統合開発環境と比べれば遥かに軽い。これまで「テキスト1つ編集したら都度終了させる」使い方をしていた人は、もしVSCodeへ乗り換えるのであれば「ファイルは閉じるけどエディタは起動したまま」という使い方へ徐々に変更しても良いかも知れない。OS起動中はほとんど常にVSCodeを起動しっ放しにしておく。プログラムコードだけでなく通常のメモテキストもVSCodeで。
- 上記で「自らVSCode拡張機能を作成・公開することも可能」と書いた通り、現地点ではJavaScript・TypeScriptさえ理解できれば拡張機能作成・公開の敷居は比較的低い。
- 「敷居が低いのは良いけど、審査とかしてるのか?してないのでは…?」と懸念されており、実際にセキュリティ研究者らが「悪意のある拡張機能が公開され得る」ことを実験で立証。そして案の定、人気のプログラミング言語での開発をサポートすると謳うマルウェアが誕生してしまった。VSCode拡張機能に限らない話(Google Chrome拡張機能でも散々問題になっている)だが、その拡張機能は本当に開発に必要かを十分検討し「怪しいスクリプト・拡張機能は入れない」よう、くれぐれも注意すべし。
- 年季の入った技術者達から長年に渡って「金にがめつい」「独自機能による囲い込み・市場支配」といった負のイメージを持たれているマイクロソフトだが、近年はVSCodeのみならず.NETやPowerShell、TypeScriptなどといったオープンソース&クロスプラットホーム、Windows 10以降に標準搭載されているWindows Subsystem for Linux、Azureクラウドサービスで利用できるRed Hatベースの「Azure Linux」などなど、Linuxやオープンソースコミュニティーへの歩み寄りの姿勢が見られる
(アンチにとっては気持ち悪い「擦り寄り」に見える)。
- 昔と異なり、WindowsやOfficeの買い切りライセンス販売では時代に取り残されてしまう、シェアを繋ぎ止めつつ、これからはクラウドやサブスクリプションで稼がねばならないという危機感なのだろうか?おじさん技術者にとってVSCodeが覇権を握っている現在は歯がゆくて仕方がないだろうけど、昔のイメージを持たない若い技術者にとってマイクロソフトは「結構頑張ってる会社」のイメージを持たれているとか…。
参考文献[編集]
- “戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE”. 2024年1月24日確認。
- “ITエンジニアに人気のテキストエディタを発表!年収・職種別データあり|転職ドラフトReport”. 2024年1月3日確認。
- “VSCodeの偽拡張機能を作ったらダウンロードされまくり&悪意あるコードを簡単に仕込めるVSCode拡張機能システムの欠陥も明らかになったという報告 - GIGAZINE”. 2024年6月16日確認。
- “そこまでやる? 170万DLの人気「Visual Studio Code」拡張機能に巧緻なマルウェア - やじうまの杜 - 窓の杜”. 2024年10月14日確認。
関連項目[編集]
外部リンク[編集]
- Visual Studio Code - Code Editing. Redefined - VSCode公式サイト
- VSCodium - Open Source Binaries of VSCode - VSCodium公式サイト