(・q・) < 雑記

エンジニアの学習メモやら経験談やら

(ほぼ)Windowsデフォルトの環境でプログラミングをする

インターネット常時接続が当たり前な現在、今なおネット接続不可、フリーソフトのインストール不可という現場があったりします。

そんな環境においてプログラミングをしたい!という人向け(いるのか?)に、Windowsデフォルト環境で使用できる言語と個人的な感想をまとめてみました。

以下を前提とします。

私の調べた限りでは以下の7(8)個の言語が使用可能でした。

以下に各言語の習得・使用についての個人的な感想を述べます。

コマンドプロンプト

良い点
  • "help"コマンドや各コマンドの"/?"オプションで大抵の書き方が確認できる
  • WindowsXP以降のバージョンなら同等の機能が提供されている
  • 意外にいろんな場所で使われている
いまいちな点
  • 遅延変数など独特な概念があり分かり難い
  • 外部ファイルを編集するのには不向き
  • 複雑な処理を行おうとするとややこしいコードになる
  • デバッグが分かり難い

バッチファイル(.bat)を作成すればクリックで実行できるため試し易いです。
Textファイルならある程度バッチから編集できますが、操作対象が増えてくると非常に扱い難くなってきます。 また、独特な仕様が多くデバッグがやり難いです。

PowerShell

良い点
  • 開発環境(PowerShell ISE)がデフォルトで提供されている
  • コマンドレットの命名規則がきちんとしており慣れると使いやすい
  • NETのオブジェクトも使えるらしい(未確認)
いまいちな点

コマンドプロンプトと比較すると、できることが多くコマンドも規則的です。
PowerShell ISEはヘルプも充実しており、ネット環境がない場合でもあまり困りません。

ただし、小さな操作をさせるにはコマンドプロンプトに比べ少々面倒な印象を受けました。

JavaScript

良い点
  • 今更書くまでもなく様々なところで使われている
いまいちな点
  • ブラウザのバージョンへの依存度が高い
  • ネット、フリーソフトインストール不可の環境では充実したライブラリ、フレームワークを使用できない

言語としては非常に魅力的ですが、ネット不可だと出来ることが限られます。
ネット不可の現場だと古いバージョンのブラウザしか入っていないことも多く、結構使いにくいです。

C# , VB. NET

良い点
  • 標準の.NETFreameworkライブラリが使用できるため、大抵のことはできる
  • 比較的コンパイラが親切
いまいちな点
  • デバッグ時の情報源がコンパイラのみ
  • .NETFrameWorkのバージョンによって出来ることに制限がある
  • フォームアプリケーションの作成は苦行

C#VB.NETは"C:\Windows\Microsoft. NET\Framework"配下に各.NETFrameworkのバージョンのコンパイラが配置されています。そのため、IDEや外部ライブラリ等をインストールしていない状態でも、わりと本格的なプログラムを書くことが可能です。

また、コンパイラが比較的親切なため他の開発環境が提供されていない言語に比べデバッグが容易です。ただし、GUIもソース上ですべて書くことになるためフォームアプリケーションの作成はかなりの苦行になります。

WPFは正直無理ゲー。

最近はクロスプラットフォームでも動くようになったのでお勧めです。

VBScript , JScript

良い点
  • ファイル単独で動作可能
  • 言語にある程度互換性がある
いまいちな点
  • 言語の独自カスタマイズ
  • デバッグが分かり難い

VBScriptは.NET以前のVBJScriptJavaScriptとある程度の互換性があります。 ただし、独自のカスタマイズが入っているためそのままでは使えない部分もあります。

バッチファイル同様、ファイルを1つ作成すれば即実行できるため非常に試しやすいですが、IDEコンパイラがないためデバッグが非常にやり難かったです。

(番外)VBA

良い点
  • IDEが提供されており、ヘルプも充実
  • Excel等Officeファイルの編集が容易
  • レガシーな現場ではよく使用される
いまいちな点

VBAは.NET以前のVBがベースのため現在主流の言語に比べ見劣りする部分が多いです。

また、IDEも現在のVisualStudioに比べると貧弱です。
(というかおそらくVB6.0時代のままな気が…)

レガシーな現場だとよく見かけるため、使えると便利ではありますが進んで使用したい言語ではないです。

おわりに

(ほぼ)Windowsデフォルト環境で使える言語を挙げてみました。
個人的にはコマンドプロンプト + C#あたりがおすすめです。

コマンドプロンプトは複雑な処理させると大変ですが、Windowsでプログラミングしているとコンソールを操作することもままあるので覚えていて損はないかなーと思います。