swiftの好きなところ嫌いなところです。 比較対象はObjectiveCなので、ObjectiveCにある機能やC++にある機能は除きます。
swiftの好きなところ第3位
未初期化の変数があるとコンパイルが通らない。
よくある言語実装のように、変数があったらデフォルト値で初期化するという方法もありますが、 swiftは未初期化の変数があったらコンパイルエラーにするという手法を選びました。
swiftの好きなところ第2位
C言語の機能をほぼ内包している。 C言語の関数ポインタも直接扱えるし、mallocと同じこともでき、ポインタは専用のクラスがある。
swiftの好きなところ第1位
typealiasとextension
以下のようなことができます。 クラスを作らずにtypealiasとextensionだけでそれに近いことができて感動しました。
import Foundation typealias Price = Int64 extension Price { func tax() -> Price { return Int64(Float(self) * 0.08) } } class Book { var price:Price init() { price = 100 print(price.tax()) } }
swiftの嫌いなところ第3位
objcと併用した場合、コンパイラが不安定。ビルドが遅い。 徐々に改善されるのを待つしかないですね。
swiftの嫌いなところ第2位
C++が使えない。 C++の資産が一切使えないのが痛いです。 swiftに移植するか、ObjC++のラッパーを作るかですが、どちらも多大なコストが発生します。 将来的には対応されるかもですが、swift3ではないようです。
swiftの嫌いなところ第1位
コンカレント対応が皆無。 変数アクセスのatomic性さえ保障されていません。 C++ですら対応されているので、atomic性くらいは 言語サポートがあってもいいんじゃないかなと思います。 swift3ではなさそうです。