2011年07月10日

++のない言語と++のある言語

最近の言語には++は付いてない的なことを言ってしまった後に、ホントにないよなとちょっとだけ気になって調べたメモ。



++のない言語

[Python]
i = 0
i++ //=> SyntaxError

[Ruby]
i = 0
i++ //=> syntax error

[VB]
Dim i As Integer = 0
i++ //=> 式が必要です

[Scala]
var i = 0
i++ //=> value ++ is not a member of Int

[Lua]
i = 0
i++ //=> '=' expected near '+'



++のある言語

[Java]
int i = 0;
i++;

[C#]
int i = 0;
i++;

[C/C++/Objective-C]
int i = 0;
i++;

[D]
int i = 0;
i++;

[JavaScript]
var i = 0;
i++;

[CoffeeScript]
i = 0;
i++;

[Perl]
$i = 0;
$i++;

[go]
var i = 0
i++



番外

[なでしこ]
整数a=0;
整数aに1を足す。



こうして比較してみる限り、新しめの言語は確かに++がないように見える。でも、goは使える。

純粋オブジェクト指向と++は噛み合わせが悪いというのが大きな理由か。SmallTalkにもついてないし。

下記URLの3番でmatz先生が「++や--の「オブジェクト指向的意味」がRubyの他の部分と整合性を保ったまま定義できれば採用したいのですが…」と書いている。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/5323