Tuesday 3 June 2014

Swift

時事ネタは書かない主義なんだけど。2時ぐらいまでは起きてたんですが、そのまま寝ちゃいました。

まさかのプログラミング言語ネタ

とは。で、朝起きて、iBook から 600 page の資料を見たのですが、
https://t.co/ZUsD5FYxBh

普通

ふつ〜ですよ。奥さん。まったく普通。これだったら、C# で良かったんじゃないかと思うくらい普通です。

Objective C を LLVM 実装した、下の方だけを共通にして、上をすげ替えた感じですね。なので、ARC 関連とか、ほぼ自動的にやってくれる。例の weak pointer とかを除いて。なので、

Objective C の古臭い構文はほぼ消滅

Smalltalk 由来の[]とか、NEXTSTEP由来の NSString とか。もちろん、dictonary とかは残っているし、protocol もある。そして、

Generic もある (Template ではない)

普通だ。Generic Programming 入れなかったのは正解だと思う。継承があることに文句つけてる関数プログラミング系な人も見かけましたが、互換性から考えれば妥当ですね。構文的には、

Switch / Enum が充実

してるかな。default break で、fallthru があるのも愛嬌があってよろしい。header file も Java 方式でなくなったし。

var あるなら、val も欲しいとは思うけど、Scala みたいにてんこ盛りされるのもね。600 page ぐらいの言語説明は丁度いいかな。

Objective C 汚いと思わないとかの病気な人を除けば、割とハッピーな言語だと思います。ただ、

既に存在している Swift 並列言語

を、やっている人たちは名前使われたのが残念だったろうけど。結構似てるところがまたね。Apple Swift とか誰も呼ばないだろうからなぁ。いや、少しもめるのかな。

残念ながら、有料ADC会員でないと Xcode6 を落とせないらしいので、学生に今から使わせることができないのが残念です。

でも、Java やってれば、特に問題なく (ARC 以外は) 使えるはず。C# にも同じことが言えるので、大学で教えるのは Java のままでいいかなとも思いました。

No comments: