|OCaml| |Smalltalk| です。
許してやろうじゃねえか・・・! 寛容な精神で・・・・・・・・・・!
それでも静的型付けがいいに決まっている
俺は静的型付けができない言語は嫌いだ。
F#最高!
俺はPHPもJavaScriptも嫌いだ。なんとでも言え。ダメなプログラマーで結構。
PHPの$を見ているだけでめまいがする。
PHPは意地でも使わないが、JavaScriptは必要に迫られているから使いたい。
でも、動的型付けでブロックスコープもないJavaScriptなんか使いたくない。
だからHaxeを使いたい。
静的型付けだと、IDEが良い感じの補完をしてくれるんだぜ。
自分がいじくっている変数にどんなメンバーがあるかわかるんだぜ。
ケアレスミスだってコンパイル時にわかるんだぜ。
なんでこの良さがわかんねーんだよ。
JavaScriptでがりがりクールなコードを書くような連中は若い奴が多いんだろうよ。
若い頃はいいんだよ。何十万行ソースがあっても頭の中で全部処理できるだろ?
だからIDEのコード補完もいらないし、コンパイラーの補助なんかいらない。
でもな、若い頃に書いた素晴らしいコードは何年もメンテナンスされていくんだぜ。
何年もの間に他に面白いことを考えついて別のプロジェクトを始めたりするんだぜ。
スランプで全然頭が動かなくなることもあるんだぜ。
若いやつだって年を取るんだぜ。
デキルやつはそんな状態にはならないか?
何億行コードがあろうと全部頭の中で処理OKか。
さすができる奴は違うなぁ。
でも、俺はできない子だから、コンピューターがやってくれるどうでもいいことは、コンピューターに任せたい。
問題が起きる可能性がある状況下で必死にミスしないように無駄な努力をするより、最初から問題が起きない状況下で楽をしたい。
でもま、JavaScriptをそのままガリガリ書きたくなる気持ちはわかる。
やりたいことがたくさんあるのに、Haxeからライブラリを使えるようにちんたらラッパーなんか書きたくないよな。俺も書きたくないよ。だから矛盾しているけどJavaScriptで書くよ。
書き捨てみたいなコードはJavaScriptで、重要なコードをHaxeに置き換えていくとか?
JavaScriptなから書いてすぐ実行なのに、コンパイルのステップが入るHaxeはどうしてもここのリズムが悪いわ。
その点F#はすごいよな。
書き捨てのコードだろうがなんだろうがなんでもF#でできるんだぜ。
面倒くさいから最初は型推論に任せておいて、込み入ってきたら型で縛っていくような良い感じの書き方ができるんだぜ。
あーもうF#最高。最高すぎる。なんでみんな使わないのかな。こんな素晴らしい言語。
最近はサーバー系は全部F#で書いているけど、楽ちんすぎてマジ最高。
F#より何十倍も遅くて、しかも実行して初めてエラーがわかったり意味不明な仕様に気をつけながらPHPを使う人達、マジ気の毒(TT)
F#でもHaxeでも好きに使ってろ、って感じだろうけど、俺は今でも悩んでいる。
F#はすばらしい。関数型言語はすばらしい!
だが学習コストが高い!
だから使える人が少ない!人気がない!
だからF#やHaxeみたいなマイナー言語を使うと、書いた俺がずっとメンテナンスしなくちゃいけない!
援軍なしに一人で敵を倒しまくる真・三國無双みたいな状態になる。
やっぱ数は力だよなぁ。
長いものには巻かれろとは良く言ったもんだよ。
悔しいなぁ。
それでも俺はF#とHaxeで行けるところまで行くつもりだけどね。
よーし、パパ酔った勢いで言語について語っちゃうぞ
ま、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!