統合開発環境（IDE）とは


今回Ruby on Railsの環境構築をする上で、統合開発環境とはなにか、そもそも開発環境とはなにかについて学習したので、それをアウトプットします。
本記事では言葉の意味の解説とよくおすすめされる統合開発環境についてご紹介します。


#プログラミングにおける開発環境とは

プログラミングでの開発環境には「ソフトウェア」と「ハードウェア」の2種類があります。
「ソフトウェア」は、プログラムを作成して実行する為のツールで、OSやアプリケーションもこれに該当します。もっと簡単に言えば、パソコンの中の機能ということになります。
「ハードウェア」は、パソコン本体も含め、ディスプレイやキーボード、マウスなど物理的に存在するモノや実際に触れることが出来る機械部分です。

#プログラミングに必要なこと（環境）とは

プログラムは基本的にソースコードを書いてそれをプログラムで実行するという流れになります。従ってソースコードを書くための「テキストエディタ」というソフトが必要です。これは、文字情報のみを編集出来る機能やソフト自体を指していいます。

有名なものに「Visual Studio Code」、「Sublime Text」などがあります。
私自身最初はSublime Textを使ってましたが、プラグインが豊富だからという理由でVisual Studio Codeをおすすめされたので今はこちらを使用してます。
そしてソースコードを書き終わった後に、「ターミナル」で実行指示を出して実行させます。
このターミナルを用いて、プログラミングに必要なモノをインストールし、パス（ファイルの場所、住所みたいなもの）を通していきます。
すると、プログラミングのコンパイルや実行などが行えるようになります。

Visual Studio Code 公式サイト
<https://azure.microsoft.com/ja-jp/products/visual-studio-code/>
Sublime Text　公式サイト
<https://www.sublimetext.com/3>

#IDE(統合開発環境)とは

IDEとは、「Integrated Development Environment」の略で、開発で利用されるエディタやコンパイラ等のソフトウェアを、その他様々な支援ツールを1つの開発環境で扱えるようまとめた開発環境です。そのため、プログラミングの際、ソースコードを書くところからデバッグ、そしてコンパイラまでを一つのソフトウェアで開発したいという時に使われます。
IDEを使うことによってコードのアップロードや変更履歴の保存に別々のソフトを使わずに一つにまとめられるのではじめから使ってみるのもいいのではないでしょうか。
IDEと言っても、それぞれの特徴を持っているのでまずはおすすめから入りなれてきたら自分好みのものを使うといいかもしれません。

#IDEとフレームワークの違いとは

IDEとは、アプリケーション開発に必要なソフトウェアをまとめて1つにして提供しているパッケージです。このように書くと、それって「フレームワーク」と同じでは？と疑問に思う方もいるでしょう。
ここでIDEとフレームワークの違いを説明します。

フレームワークとは、アプリケーション開発における「雛形」や「骨組み」の役割を持ちます。フレームワークは開発の際に必要とされる機能を、パッケージ化したものです。
つまり、フレームワークはアプリケーション開発の工程を楽にするものなのです。
統合開発環境（IDE）は、エディタやコンパイラをまとめて提供する開発環境「そのもの」です。日本語の「統合開発環境」という言葉の意味通りの機能を、IDEは提供しています。

もしフレームワークについてもっと知りたいという方はこちらの記事をご参考ください。
フレームワークとはなにか、おすすめのフレームワークはどれかについて解説しています。

フレームワークとは
<https://qiita.com/Shirosan10/items/549f86f91c955b651b59>

#おすすめの統合開発環境（IDE）


- Eclipse 公式サイト <https://www.eclipse.org/>
- Xcode　公式サイト　<https://developer.apple.com/jp/xcode/ide/>
- Android Studio 公式サイト　<https://developer.android.com/studio?hl=ja>
- Visual Studio　公式サイト　<https://visualstudio.microsoft.com/ja/?rr=https%3A%2F%2Fwww.google.co.jp%2F>


Eclipse 

対応言語：Java
（プラグインで追加対応：C++、PHP、Perl、C#、D言語、TeX、Python、Ruby、JavaScript、COBOL、AspectJ、Mathematica）
対応OS：Windows、Mac OS X、Linux

もともとはJavaを扱う統合開発環境として、IBM(Internet Business Machine Corporation)が商品として開発していました。後にオープンソースプロジェクトに寄贈され、現在では様々なプログラミング言語に対応している言語としては、C言語、C++、PHP、Rubyなどがあります。


公式サイト <https://www.eclipse.org/>

Xcode　

対応言語：C、C++、Objective C++、Java、AppleScript、Objective-C、Swift
対応OS：Mac OS X

アップル社が提供する統合開発環境であり、Mac、iPhone、iPad、AppleWatch 向けのアプリケーション開発に特化しています。
かつてはMacにデフォルトで付属する形で配布されていましたが、現在は任意でウェブ上から無料でダウンロードすることができるようになっています。Mac系アプリケーションの開発者には、必携のIDEとなっています。


公式サイト　<https://developer.apple.com/jp/xcode/ide/>

Android Studio 

対応言語：Java（Android開発）
対応OS：Windows、Mac OS X、Linux

Android用のアプリを開発するのであれば、やはり「Android Studio」がおすすめです。Android Studioは、GoogleがAndroidアプリ開発用に公開している統合開発環境（IDE）です。


公式サイト　<https://developer.android.com/studio?hl=ja>

Visual Studio　

対応言語：C#、Visual Basic、F#、C、C++、Python、Node.js、HTML、JavaScript、TypeScript
対応OS：Windows

MicrosoftがリリースしたWindows向けアプリ開発用IDEで、.Net Frameworkをベースに「Visual Basic」、「CC++」、「C#」等の言語で開発が可能です。
IDEの一般的な機能に加えて、メモリ使用容量の解析や遠隔の環境で動作するアプリケーションのデバック等、複雑な実行環境に対応したツールが搭載されているのが魅力の一つです。

公式サイト　<https://visualstudio.microsoft.com/ja/?rr=https%3A%2F%2Fwww.google.co.jp%2F>


今回の記事は以上になります。色々と拙い部分があるかと思います。間違っている点、理解が不完全な点があればご指摘いただければ幸いです。