おすすめWindowsアプリ (開発ツール)

(2012.4) ページを分割.

統合開発環境 (IDE) は別ページに分けました; おすすめWindowsアプリ (IDE & テキストエディタ)

UNIX互換環境

Windows 上で UNIX環境を再現したいことがある.

一つは, GNU toolchainを使って Windows ソフトウェアを開発したい場合。Cross-platform / multi-platform なソフトウェアの開発で、コンパイラや make だけ使いたい。

この場合は, 以下の MSYS2 か, それをベースにした Git for Windows がいい。

二つ目は, UNIX 用のソースコードのコンパイル。

この場合は, 以下の Cygwin。ネイティブバイナリにはならない。

最後は, このページでは扱わないが, Linuxバイナリを動かしたい場合.

VMware Workstation PlayerOracle VirtualBox を入れて仮想環境を構築するか, Windows Subsystem for Linux を導入すればいい。Windows とシームレスな X環境が必要な場合は, 加えて Cygwin/X がいい。

☆ Git for Windows

(2015.10更新)

MSYS2 の成果を利用して, コマンドラインの gitコマンドだけでなく, git gui, gitk も利用できるようにしたもの。

MSYS2 をベースにしているので, 次の 3つの環境が利用できる。"MSYS2" は Cygwin と同様に, ネイティブバイナリではない。

  • mingw32
  • mingw64
  • msys2

現在の最新版はv2.6.2. Git-2.6.2-32-bit.exe はインストールに管理者権限が必要. PortableGit-2.6.2-32-bit.7z.exe のほうは管理者権限不要.

さまざまなコマンドが同梱されているものの, gcc が入っていないため, そのままでは開発には使えない.

Git for Windows SDK を入れればいい。インストーラの実行に管理者権限は不要。ネットインストーラで、gcc などを自動ダウンロードしてくれる。git コマンドも含まれるので、これだけインストールすれば OK.

インストール後の設定

改行の自動変換は切っておくこと。有効だと, 意図せず化けてしまう。バイナリファイルが壊滅。

$ git config --global core.autocrlf false

mingw32 で git gui が起動できない

mingw64 は問題ないのに, mingw32 だと git gui が失敗する。

[Error in startup script] エラーダイアログ

bitmap "/usr/share/git-gui/lib/git-gui.ico" not defined
  while executing
"wm iconbitmap . -default $oguilib/git-gui.ico"
  invoked from within
"if {[is_Windows]} {
        wm iconbitmap . -default $oguilib/git-gui.ico
        set ::tk::AlwaysShowSelection 1
        bind . <Control-F2> {console show}

        # Spoof an X..."
    (file "D:/git-sdk-64/usr/lib/git-core/git-gui" line 734)

簡単なのは, /usr/bin/git ではなく, mingw32 でも /mingw64/bin/git コマンドを起動する。

一応, /usr/lib/git-core/git-gui ファイルのここがポイント;

if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {
        set oguilib $::env(GIT_GUI_LIB_DIR)
} else {
        set oguilib {/usr/share/git-gui/lib}
}

上手い解法は見つけていない。

パッケージのアップグレード

Git for Windows は pacman を利用している。/etc/pacman.conf で, リポジトリを5つ使うようになっている.

  • git-for-windows
  • git-for-windows-mingw32
  • mingw32
  • mingw64
  • msys

すべてのパッケージをアップグレードするのは、次のコマンド。

$ pacman --sync -u -y

△ Cygwin

Windows上にUNIXっぽい環境を構築。Cygwin のゴールは, UNIX (POSIX) 用ソフトウェアのソースコードをそのまま Cygwin 上でコンパイルでき, 動かせるようにすること。

cygwin1.dll が POSIX API機能を提供する。Windows API だけでは実現できないエミュレーションをおこなえるので、UNIX環境の再現性は比較的高い。一方, Cygwin 上でコンパイルしたプログラムは cygwin1.dll に依存するようになる。Windows 用の再配布するソフトウェアの開発には向かない。

2019.4月現在の最新版は, バージョン3.0.6.

[2015-10 ここから]
2015年10月現在の最新版はバージョン 2.2.1. 32bit版と64bit版がある。

setup-x86_64.exe をダウンロードし、実行する。管理者権限が必要。

パッケージには, GNOME 3.14 (2014年9月リリース), MATE 1.8 (2014年3月リリース), や KDE 4.11 (2013年8月リリース) などが見える。最新版というわけではない。

下の MSYS2 には gtk3 はあるが, GNOME や KDE は用意されていないようだ。UNIX環境を再現するパッケージは, Cygwin のほうがまだまだ豊富みたい。

[2015-10 ここまで]

Windows Subsystem for Linux を使う場合の X環境 (Xサーバ) として, Cygwin/X を使う手がある。VcXsrv よりも優れているという意見もチラホラ見かける。

Cygwinの情報は、例えば下記から入手できる。

同種のソフト:

djgpp
UNIX-like tools

△ MSYS2 + Mingw-w64

(2015.10追加)

MSYS (バージョン1) + MinGW.org の後継となることを目指したプロジェクト。Windows native にできるものは native で動かし、UNIXエミュレーションが必要なものは Cygwinからforkしたライブラリを使う。

MSYS (バージョン1) + MinGW.org とは、その名前と共通のゴール以外、関係がない。

次の3つの独立した環境が合わさったもの。

  • msys2 -- UNIXエミュレーション msys-2.0.dll に依存
  • mingw64 -- Windowsネイティブ, 64bit
  • mingw32 -- Windowsネイティブ, 32bit

パッケージマネジャは, Arch Linux 由来の Pacman を使う。

インストーラは次から入手できる;

インストーラの実行に管理者権限は不要。実行すると、インストール先を決めるだけで, 特にパッケージ選択もなくインストールが始まる。

"MSYS2 64bit"スタートメニューに次の3エントリが作られる;

  • MinGW-w64 Win32 Shell
  • MinGW-w64 Win64 Shell
  • MSYS2 Shell

Windows 10 (64bit) 上で試してみたが、fork() がエラーになっているようで、実用にならなかった。 -- Cygwin界隈ではよくあるみたい。MSYS2も同じか。

管理者でインストールすればよかったのかもしれないが、試していない。

MSYS (バージョン1) + MinGW.org

UNIXとソース互換の開発環境を作る。コンパイルしたプログラムはWindowsネイティブになる。

gcc, binutilsなどをWindowsに移植したもの。Windowsの msvcrt.dll を利用するプログラムを生成するので、再配布するソフトウェアの開発向き。UNIXのエミュレートはしないので、ソケットはWinsockを使うなど, Windows API を使わなければならない。

  • http://www.mingw.org/ [リンク切れ]

[2015-10]
2015年10月現在、2013年10月にリリースされたインストーラが最新版のようだ。個々のパッケージは更新されている。

インストール手順; MinGWのインストール

プログラミング言語

Ruby

オブジェクト指向のスクリプト言語。私は, 1999年、バージョン1.4頃から使いはじめた。

Rubyについての記事はこちら; Ruby Centre

Haskell

遅延評価のできる関数型言語。

Haskellについての記事はこちら; はすけるで遊ぶ

Python

もう一つのオブジェクト指向・スクリプト言語。日本以外では、RubyよりもPythonのほうがメジャー。

Python についての記事はこちら; Pythonic な Python メモ

比較・パッチ

☆ WinMerge

(2014.6追加) Windows用比較・マージツール.

もともとの本家は, 2013年2月のv2.14.0 で止まっていた。WinMerge 日本版が, 本家の開発を引き継ぐことになりました。WinMerge / News: A sign of life from WinMerge

この WinMerge日本版は, 単に日本語化したものではなく, 3ファイル比較, 比較アルゴリズムの改善など, 大幅な変更を加えたものです。こちらがお勧め。

64bit版と32bit版がありますが, 32bit版のほうをダウンロードします。

Microsoft Excel や LibreOfficeのファイルを扱うために, プラグインも入手します。

☆バイナリエディタ Bz

本家 Bz - c.mos

tamachan氏が開発を引き継いでいる; devil-tamachan/binaryeditorbz · GitHub

64bit版あり。バイナリファイルにバイト列を挿入できるのが、意外にポイント高い。

画面は SDI. 複数のファイルを表示するときは, 単に Bz をいくつか起動すればいい。

一方, ファイル比較のときは、まず [表示]メニューから上下・左右に分割したうえで、ファイルを二つ開けばOK.

△ HxD

バイナリエディタ。巨大なバイナリファイルの超高速な比較ができる。

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

日本語版あり。portable版のほうを取ってくればいい。 バージョン2.2.1 (2019年2月) は日本語版がない。インストールに管理者権限が必要。

文字列表示について, UTF-8 が選択肢になく, ほかの Unicode エンコーディングもない。

その他

pgAdmin などのデータベース管理ツールはこちら; DBMS GUIツール

UMLet

UML の作図。

UML をテキスト (記号) でも編集できる。保存形式は UXF (UML eXchange Format). 画像にエクスポート可能。

UMLに特化していて、描ける図は多数。

オープンソース。ソースコードは GPLv3. Javaで開発されている。

(2019.10) 最新版は 2018年8月の v14.3.

同種のソフト:

http://astah.change-vision.com/ja/product/astah-community.html
2018.9で終了. 多彩な UML作図ツール. 旧JUDE/Community.
PlantUML 概要 - シンプルなテキストファイルで UML が書ける、オープンソースのツール

別途 Graphviz が必要。

基本は、テキストエディタで作図して、コマンドラインツールとして使う。プレビュー機能が付いている。

描ける UMLの図は、上記のUMLet の方が多いが、UML 以外としてER図などが描ける。

Javaで開発されている。オープンソース。ライセンスは GPLv2. 一部機能が制限されるが, LGPL/Apache/EPL/MIT でもライセンスされる。

Visual Paradigm Community Edition - A Free UML Tool

商用ツール。機能豊富. 構文チェックがあるのが素晴らしい。

TortoiseGit

Windowsエクスプローラとgitとの統合。