おすすめプログラミング環境

提供: メモ帳@fmaj7b5.info
2011年1月23日 (日) 00:35時点における白飯 (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

独断と偏見で勧める、プログラミングし易い環境。

目次

OS

1. (GNU/)Linux・BSD

無料で始められるというのも大きいが、ソースコードをやりとりしている人達がメインのため、選択できるプログラミング言語の幅が広い。
加えて自由に使えるライブラリを、どこかの奇特な(暇な?)プログラマ達が沢山公開しているのも魅力。
主要なディストリビューションを選べば、何か問題があった場合でも対処し易い。ググり方くらいは身につけておこう。

2. Mac OSX

ほとんど触った事がない。けど、中身はBSDなので、LinuxやBSD向けのプログラムが大体動くらしい。
信者と初心者しかいないところが気にならなければ、それなりに使えるんじゃないかと思う。

3. Windows

昔はWindowsじゃなきゃヤダ!っていう時代もあった。が、いざプログラムを書こうと思うと大変・選択肢が少ないことに気付く。
Windowsユーザ相手に商売するんじゃなければ避けた方が良い。


プログラミング言語

1. C

普及率でいけば、やっぱりコレ。(動)画像の入出力とか、カメラの制御とか、複雑な計算とかのライブラリは大抵C言語向けなので、一番ラクができる。
是非はともかくダーティーなコーディングもできるので、行き当たりばったりの実験・趣味プログラミングに最適。

2. C++

マルチパラダイム言語。昔ながらのスタイル、オブなんとか指向、ジェネリック、ジェネティック・・・などなど懐の深さが良い。
クラスは仕様が決まっているものの方が扱い易いため、自分用ライブラリを書く時にお勧め。

3. Python

スクリプト言語なんだけど、ライブラリが豊富で使いやすそう。文法にクセがあるので慣れが必要かも。

(ランク外) Java

手のひらで踊らされているというか、箱庭っぽいというか、拡張の無さが微妙。ユーザが結構いるっぽいんだけど。
まあ、個人的にオブジェクト指向がキライっていうのもあるかな。ケータイプログラマ目指すなら必須か。


ライブラリ

数値計算

BLAS
線形代数ライブラリのデファクトスタンダード。これに従っておいた方が後々苦労しない、かも。
このライブラリはベクトル・行列の四則演算くらいしかできない。QR分解や固有ベクトルを求めたりしたい時は次のLAPACKと一緒に使う。
フリーならリファレンス版の他にATLASGotoBLASあたりが有名。あるいはCPUに応じてIntel MKLACMLとか。
C言語から利用する場合はCBLASから使うのが(多少)安全。大体BLASのライブラリに付いてくるのでcblas.hが無いか探すべし。
LAPACK (読み:lay-pack, L-A-pack)
レイパック、エルエーパックなどと読むらしい。ラパックなんて呼ぶヤツはモグリだ。気をつけよう。
これを使えばLU分解、QR分解、線形連立方程式の計算、固有値・固有ベクトル、特異値分解などなど面倒な計算が簡単にできる。
もともとFORTRANのライブラリでCから呼ぶのが長年の悩みの種だったけど、version 3.3からC言語用インタフェースが含まれた。
Intelさん、太っ腹!
FFTW
フーリエ変換のライブラリ。コンピュータ・ビジョンで必要という訳ではないけど、手法によっては使う事もあるので一応。

画像表示

OpenGL
3次元グラフィックス向けのAPI。なんとかってのと違って、Linux、windows、macのどれでも対応しているのが利点。
ちょっと結果を確認したい程度ならGLUT(またはfreeglut)が簡単。
Cg、CUDA、OpenCL、GPGPUあたりのキーワードに興味のある人にも。

画像入出力

ImageMagick
MagicじゃなくてMagick。画像周りの色々なライブラリをまとめたようなソフトのライブラリ。
画像の読込/保存だけに使うのはオーバースペック気味だけど、簡単に使えるのでお勧め。
FFmpeg
動画が読み書きできるライブラリ。ImageMagickも利用しているらしい。動画を扱う人むけかな。

カメラ

libdc1394
IIDCっていう規格のIEEE1394カメラを制御するライブラリ。Point Greyのカメラとか使う事があれば。
1394カメラっていってもDVとかとは違うので注意。