この記事を読むのに必要な時間は約 6 分です。

近頃開発されるソフトウェアの種類

少し前までは、コンピューター上で動作するソフトウェアと言えばデスクトップ型アプリが主流でしたが、最近ではWebアプリの方がかなり多く存在していると思います。

デスクトップ型のプログラミング言語は、”C/C++”や”Java”が多くコンパイルして機械語(コンピューター言語)で、動くものが比較的多く存在していました。現在では、WebブラウザでWebアプリを提供しているホームページにアクセスして、プログラムを利用する形式に移行してきています。ただし、ハードウェア情報(CPU・GPU・メモリの容量など)の情報を参照するようなものは、まだありません。

アプリ開発に必要なもの

プログラミング作業そのものは、どのようなプログラミング言語であれ”テキストエディタ”があれば、プログラムを作成することはできますが、実行する方法としてはデスクトップ型は主に”コンパイラ”が、Webアプリは”HTTPサーバー”と連携して動作する”拡張モジュールetc”が必要になります。

初期化したWindowsでは、プログラムそのものを書くことは出来ますが、プログラムを動かす方法を持っていません。
“コンパイラ”も”HTTPサーバー”も、インストールされていないためです。一応、マイクロソフト社から、”無料”でコンパイルする機能を保持している開発環境(IDE)をダウンロードすることはできますが、”HTTPサーバー”を必要とするWebアプリに関しては、サードパーティ製のソフトウェアを使う必要があるということになります。

デスクトップ型アプリの開発に必要なソフト

これまで伸びたようにWindowsでデスクトップアプリ型アプリの開発には”コンパイラ”が必要になりますが、マイクロソフト社謹製の”visual studio”の無料版を利用するか、オープンソースで開発が続いている”MinGW”を利用する必要があります。

“visual studio”は、一般的な統合開発環境(IDE)であり、インストールすると”C/C++”や”C#”のコンパイラが同梱されております。
“MinGW”は、WindowsでLinuxコマンドを利用できるようにするソフトウェアであり、その中にGCC(GNU Compiler Collection)と呼ばれる”C/C++”のコンパイラが同梱されております。

“visual studio”はGUIで操作することができる他、テキストエディタが同梱されていたりやコンパイル作業などが、ボタンを押すだけで実行することができるため、プログラミング学習の「入門者・初級者」向けの方法であると言えます。

“MinGW”はCUIで操作することが基本であること、コンパイラ以外に必要なものは、自分で用意する必要があるため、プログラミング学習の「中級者以上」の方向けの方法であると言えます。

  1. “visual studio”
    GUIで操作。必要なものは全て入っている。
  2. “MinGW”
    CUIで操作。テキストエディタなど自分で用意する。

Webアプリの開発に必要なソフト

Webアプリの作成に適しているプログラミング言語には、「PHP・Ruby・Python」が存在しておりますが、インターネットの普及に伴って浸透してきたプログラミング言語であるため、デスクトップ型の”C/C++”などのプログラミング言語より、あとに登場しております。あとから、登場しているが多くの開発者が利用しているということは、客観的にしても主観的にしてもデスクトップ型のプログラミング言語より、優れているということになります。(でなければ、普及しませんね。。。)
Webアプリの開発には、あまり統合開発環境(IDE)は利用されておりません。コンパイラが必要ないのです。

Webアプリのメジャーな開発言語「PHP・Ruby・Python」は、インタープリター型と呼ばれコンパイル作業(厳密にはコンパイルとは呼ばない)は、ソースコードの実行時にコンパイルされます。では、Webアプリの開発言語のコンパイルを逐次実行しているのは、何かと言うと広義の範囲で言えば、”HTTPサーバー(Apache・Nginx)”がしています。

これらは、どちらもフリーソフトであるため無料でダウンロードして利用することができますが、Webアプリを動作させるためには”HTTPサーバー”の拡張モジュールを別途で組み込んだり、設定をテキストファイルで記述する必要があるため、Webアプリの実行環境の構築(HTTPサーバーの設定)は、中上級者向けではありますが、一度、実行環境を構築してしまえばコンパイル作業が不要であるため、「入門者・初級者」向けであると言えます。

まとめ

以上のことを、以下の表にまとめます。

デスクトップ型アプリWebアプリ型
開発環境の用意簡単普通
実行環境の用意コンパイラが必要HTTPサーバーが必要

ただ、最近はWebアプリケーションのほうが、多くリリースされているので、多くの人に利用してもらいたいのであれば、Webアプリを開発すると良いでしょう。ただし、プログラムの動く仕組みやメモリ管理(最近はあまり聞きませんがw)などの勉強をしたいのであれば、デスクトップ型アプリを開発してみると良いでしょう。

以上になります。