20
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VscodeとVisual studioの違いやできること・できないことなどをまとめてみました!!

Posted at

下記リンクを参考にさせていただきました。
ありがとうございました。
https://qiita.com/lldev2/items/46d55f71bdc1af2e3b10

初めにーー開発環境の拠点としてのエディタ

「Visual Studio Code」を使う理由:
「開発環境の拠点としてのエディタ」を通して見ることで最近の開発環境の変化を俯瞰的に捉えられると考えたから。

VScodeが開発された背景は簡単に言うとHTML5などを中心にした「webアプリ」(もしくは「ハイブリットアプリ」)が栄えたのが大きな要因と考える。それを書きやすいコードエディタの需要が出てきたので、「VScode」が開発された可能性がある。
しかし、それだけでは何の意外性もないので、もう少し掘り下げてみましょう。なぜ、Microsoft(以下「MS」)には「Visual Studio」というIDEがすでにあるのに、「VSCode」を新たに開発したのでしょうか?

開発形態の比較

静的言語/動的言語
それを考えるには、「動的(型付け)言語」「静的(型付け)言語」の軸で考えると俯瞰的に把握しやすい。まず単純にざっくり言うと、webアプリは動的言語と相性がいい。実際、フロントエンド側スクリプトのデファクトスタンダートである「javascript」も動的言語。

バッグエンド側で広く普及しているいわゆる「p言語」、「perl」「php」「python」「Ruby」もみんな動的言語。もちろん「java」などの静的言語のサーバーもあるが、エンタープライズ向けが多く、P言語ほど、大衆的ではない。

なぜ、Webアプリでは動的言語が好まれるのか?
・「HTML」「CSS」「Javascript」「PHP」「MySQL」などと5言語も使い分けることで、型で分ける以前に言語単位での分業がされている。
・データベースからデータを取得して、それを処理、表示するだけでシンプルな「CRUDアプリ」なら、型で整理する必要性が薄い。
・動的型付け言語は実行速度の面で不利だが、データベースのアクセス速度が最大のボトルネックになりがちなので、開発速度が優先される。
・WebアプリはB版で数多く開発して、ヒットしたものの開発を継続する、という市場探索的な開発形態を取ることが多い。そこでウォーターフォール的(型)的な設計よりもアジャイル的な開発の方が相性が良い。

そして、IDEは静的型付けの型情報が必要なので、動的型付けには起動や動作が軽いエディタで十分、といった状況言語がが続いた。
ただしここで、それならなぜ、これもMSが開発した「typeScript」のような静的型付け言語が、AltJSとして登場したのか?
という疑問が起こる。
それにはこう考える。
・まず、クラウドの潮流もあり、デスクトップアプリをWebアプリに移行する流れがあった。
・すると、CRUDだけで完結せず、ネイティブアプリの複雑さを引き受ける必要が出てきた。
・だから、フロントエンドを型付けで整理する需要が増え、TypeScriptが登場した。

そして当然、そのTypeScriptを書くのに、Vscodeは適している。
IDEとエディタの中間的なVSCodeが必要とされる理由の大筋はこのような理解している。

なお、やはりMSが開発した「PowerShell」も、VSCodeで書きやすいです。このPowerShellには「GUI/CUI」という軸が絡みます。ようするに、サーバ運用にはCUIの方が都合が良く、需要があったわけです。

総合開発環境とエディター

・総合開発環境
Visual Studio
・動作:windows
・対象:マルチデバイス/クロス
プラットフォーム/クラウド

Visual Studio for Mac
・動作:Mac OS
・対象:モバイル/クラウド/Mac

・コードエディター
Vscode
・動作:Windows, mac Linux
・対象:対象を問わず(※)開発言語をするもの(数百の言語に対応)
・備考:OSS、無償
(※)コードの実行に必要なコンパイラやランタイム、webサーバーは別途必要

Visual Studio for Mac の web ツール
・ .Net Core/ASP.NET Coreによるサーバーサイド開発
・ HTML/CSS/JSON に以下の機能を提供

  • HTMLテンプレート
  • コードハイライト
  • スマートインデント
  • インテリセンス
  • スニペット

標準機能と拡張
強力な標準機能の他にwebフロントエンド開発に特化した拡張が提供

開発支援機能の分類

入力支援機能
ツール
デバッグ

20
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?