よーし、パパ酔った勢いで言語について語っちゃうぞ
ま、F#が最高だって言いたいだけだけなんだけどね。
静的型付け言語
Pascal
昔はC言語なんて高くて買えなかったんだよ。
子供がお小遣いを貯めて買えるコンパイラーはTurboPascalしかなかった。
Pascalは文の区切りが ; とか . 場所によって変わるんだけども、Erlangもこんな感じだね。
昔のMacはPascalでプログラムを書いたんだゼェ。InsideMacはPascalで解説してあったんだゼェ。
C
高級なアセンブラ
C++
俺はboostを使い始める前にC++は使わなくなったので最近のことはわからん。
C++はstlとかスマートポインタを使うとメモリー管理とかをほとんど気にせず使えるようになる。
それでも常に死と隣り合わせの緊張感あるプログラミング。
よほどパフォーマンスが必要な物を書く時以外はもう触らないね。
Java
すごく保守的な静的型付け言語。未だにlambdaすら無いんだゼェ。
型推論が無いので型の記述が面倒くさい。
型推論なしの静的型付け言語使うってどんなドMだよって今は思う。
サーバーでもAndroidでも書けちゃう。
みんなが使っているから俺も使う、そんな言語。
C#
アグレッシブなJava。痒いところに手が届く良い感じのJava。
簡単な型推論があるので、まあないよりはまし。
MonoTouchを使うとiOSのアプリだって書けるんだゼェ。
VisualBasic
VB6までは本当にBasicって感じだったけど、それ以降のバージョンは書き方が違う劣化C#みたいなもの。
ゴルゴ13で世界最高の言語はBASICだとか言っていた愚かな教授がいましたが、それ間違いなので。
そもそもVisualBasicって静的型付けだっけ? ま、いいや、VisualBasicなんて。
Ocaml
実用的な関数型言語。
俺は好きだよ。うん、すごく好き。
Haskell
純粋関数型言語。理想を貫くことが至上の命題。
関数型言語のお勉強には良いと思う。
でも実用には使えないな。でも、それは俺の頭が足りないからなのかな。
Scala
悪くはないよ。
良い、と言い切れないのは、リストをわざわざList()とか書かなくちゃいけないとか、そんな些細な部分。
でも、関数型言語に慣れていない人が使うと、ちょっと書き方が違うだけのJavaになる罠。
JVMで開発するならコレだね。
F#
msilで動くOcaml。どうしてもF#がマッチしないところはC#で書けばいい。
.net frameworkが使えて、c#で書かれたライブラリーが全部使える。
書き方がOcaml。見た目からして今までの言語と違う。とりあえず普通に書くと関数型言語っぽく書ける。
今更パターンマッチの無い言語なんか使う気にもならないよ。
IDEであるVisualStudioがすばらしい。
「俺はLinuxしか使わない」とかハッカー気取っているバカは悔い改めなさい。
最高だね。
Haxe
型推論がある静的型付けのJavaScriptって感じ。
Ocamlで書かれていて、Ocamlの影響を多大に受けている。JavaScriptの皮をかぶったOcaml。
enumとかswitchとか、名前は同じだけど超拡張されている機能があったりして、Ocamlみたいにパターンマッチもできるんだゼェ。
HaxeのコードはPHPやらC++やらC#、Java、JavaScriptとかいろんなコードにコンパイルできるんだゼェ。
JavaScriptだけでは信頼性に足りないような部分をHaxeで書けたらいいんじゃないかな。
JSX
Haxe使えよ。
動的型付け言語
マイクロソフトBASIC(N88Basicとか)
昔はみんなこれでプログラムを書いたんだ。
VisualBasicなんかとはぜんぜん違う。変数スコープなんてないんだ。
Objective-C
静的型付け言語のC言語と動的型付け言語のSmallTalkをまぜこぜにしたような言語。
iOS、MacOSのアプリを書くならこれだね。
割かし好きな部類に入るんだけど、動的型付け部分はやっぱり実行しないとエラーがわからない。
でも、Appleへの愛があれば乗り越えられる。
PHP
$にアレルギーがある人は使えません。俺はアナフィラキシーショックを起こして死ぬ。
クロージャを取り入れたりがんばってはいる。
でも、謎な仕様がいろいろあって、怖くて使えない。
サーバーサイドは安全な言語で書こうよ。
Perl
俺はアナフィラキシーショックを起こして死ぬ。
関数の書き方がわからなかった。つまり、引数ってどうやって渡すの? って感じ。
受け付ける引数はちゃんと宣言しようよ。型どころかアリティもわかんねぇじゃん。生理的に受け付けない。
こんなのありがたがって使っているMixiやらGREEなんかに負ける気はしないんだけど、なぜか全然勝てない(お金的に)
こんなのありがたがって使っている小飼弾にも負ける気はしないんだけど、全然勝てない(髭的に)
Erlang
ErlangはOcamlよりも純粋関数型のHaskellっぽい。
一時期入れ込んでいたけど、F#があるからもう使わないな。
そもそも堅牢なサーバーを動的型付けで書く、っていうのが俺には理解できんよ。
JavaScript
function <- 長すぎる
ブロックスコープがない。
でも、俺にはその程度しかケチを付けることはできないよ。
悔しいけどこいつはデキる子。避けては通れない。
憎み過ぎて逆に好きになっちゃいそう。
Node.js
JavaScriptだけど。
サーバーサイドを全部非同期IOのJavaScriptで書こうという楽しいプロジェクト。
きらいじゃないね。でもF#があるからいらない。
まー、そもそも、Node.jsで書くようなものはErlangで書けばいいんじゃねーの?
CoffeeScript
変数のシャドウィングができない。ケチを付けるのはこんだけだな。
すごく素敵な言語。でも、やっぱJavaScriptを直接書く。
Ruby
MatzLisp。こいつはいいと思うよ。でもF#があるから使わないけど。
Python
こいつはいいよ。なんかパワーが渦巻いている。
でもF#があるから使わないけど。
Prolog
子供の頃勉強してもわかんなかったけど、最近やりなおしてやっとわかった。
でも、Lispで書けばいいんちゃう?
CommonLisp
もはやLispには宇宙を感じる。
動的型付けとして書いたけど、型の制約を入れることもできるんだ。
MSIL、JVMで動くCommonLispがあればなぁ・・・・
あ、ABCLはだめよ。JVMで動くけど遅すぎる。話にならん。
動的型付け言語を使いたいなら、CommonLisp使えばいいんじゃねーの?
誰の支援もいらない、一人で敵を皆殺しにする覚悟ができたらCommonLispで書きたいね。
気になっている言語
Google Dart
Haxe使・・いや、いいと思うよ。パターンマッチ入れてくれたらぜひ使いたいな。
Mozilla Rust
F#使・・いや、いいと思うよ。パターンマッチも使えるし。うん、いいと思うよ。
ちなみに俺の開発環境はこんな感じ
MacBookPro RAM8G
- VMWareFusion WindowsXP VisualStudio2010,EmEditor,Leksah
- xcode
- JetBrain WebStorm
- JetBrain PyCharm
- vim
- eclipse
- Emacs + SBCL + SLIME
そいじゃ今日はこんなところで。See you!