(ほぼ)Windowsデフォルトの環境でプログラミングをする
インターネット常時接続が当たり前な現在、今なおネット接続不可、フリーソフトのインストール不可という現場があったりします。
そんな環境においてプログラミングをしたい!という人向け(いるのか?)に、Windowsデフォルト環境で使用できる言語と個人的な感想をまとめてみました。
以下を前提とします。
- OSはWindows (バージョンは不問)
- ネット接続不可
- IDE等の開発ツール、コンパイラのインストール不可
- その他フリーソフトもインストール不可
- Microsoft Officeはインストール済み
私の調べた限りでは以下の7(8)個の言語が使用可能でした。
- コマンドプロンプト
- PowerShell
- JavaScript
- C#
- VB . NET
- VBScript
- JScript
- (VBA)
以下に各言語の習得・使用についての個人的な感想を述べます。
コマンドプロンプト
良い点
- "help"コマンドや各コマンドの"/?"オプションで大抵の書き方が確認できる
- WindowsXP以降のバージョンなら同等の機能が提供されている
- 意外にいろんな場所で使われている
いまいちな点
- 遅延変数など独特な概念があり分かり難い
- 外部ファイルを編集するのには不向き
- 複雑な処理を行おうとするとややこしいコードになる
- デバッグが分かり難い
バッチファイル(.bat)を作成すればクリックで実行できるため試し易いです。
Textファイルならある程度バッチから編集できますが、操作対象が増えてくると非常に扱い難くなってきます。 また、独特な仕様が多くデバッグがやり難いです。
PowerShell
良い点
- 開発環境(PowerShell ISE)がデフォルトで提供されている
- コマンドレットの命名規則がきちんとしており慣れると使いやすい
- NETのオブジェクトも使えるらしい(未確認)
いまいちな点
- コマンドレットが独特
- コマンドプロンプトに比べ操作が複雑
コマンドプロンプトと比較すると、できることが多くコマンドも規則的です。
PowerShell ISEはヘルプも充実しており、ネット環境がない場合でもあまり困りません。
ただし、小さな操作をさせるにはコマンドプロンプトに比べ少々面倒な印象を受けました。
JavaScript
良い点
- 今更書くまでもなく様々なところで使われている
いまいちな点
言語としては非常に魅力的ですが、ネット不可だと出来ることが限られます。
ネット不可の現場だと古いバージョンのブラウザしか入っていないことも多く、結構使いにくいです。
C# , VB. NET
良い点
- 標準の.NETFreameworkライブラリが使用できるため、大抵のことはできる
- 比較的コンパイラが親切
いまいちな点
C#、VB.NETは"C:\Windows\Microsoft. NET\Framework"配下に各.NETFrameworkのバージョンのコンパイラが配置されています。そのため、IDEや外部ライブラリ等をインストールしていない状態でも、わりと本格的なプログラムを書くことが可能です。
また、コンパイラが比較的親切なため他の開発環境が提供されていない言語に比べデバッグが容易です。ただし、GUIもソース上ですべて書くことになるためフォームアプリケーションの作成はかなりの苦行になります。
WPFは正直無理ゲー。
最近はクロスプラットフォームでも動くようになったのでお勧めです。
VBScript , JScript
良い点
- ファイル単独で動作可能
- 言語にある程度互換性がある
いまいちな点
- 言語の独自カスタマイズ
- デバッグが分かり難い
VBScriptは.NET以前のVB、JScriptはJavaScriptとある程度の互換性があります。 ただし、独自のカスタマイズが入っているためそのままでは使えない部分もあります。
バッチファイル同様、ファイルを1つ作成すれば即実行できるため非常に試しやすいですが、IDEやコンパイラがないためデバッグが非常にやり難かったです。
(番外)VBA
良い点
いまいちな点
- .NET以前のVBがベース
- IDEがちゃんと動いてくれないことがままある
- 挙動が不安定
- 最も嫌いなプログラミング言語第3位
VBAは.NET以前のVBがベースのため現在主流の言語に比べ見劣りする部分が多いです。
また、IDEも現在のVisualStudioに比べると貧弱です。
(というかおそらくVB6.0時代のままな気が…)
レガシーな現場だとよく見かけるため、使えると便利ではありますが進んで使用したい言語ではないです。
おわりに
(ほぼ)Windowsデフォルト環境で使える言語を挙げてみました。
個人的にはコマンドプロンプト + C#あたりがおすすめです。
コマンドプロンプトは複雑な処理させると大変ですが、Windowsでプログラミングしているとコンソールを操作することもままあるので覚えていて損はないかなーと思います。