Swift part3
■ このスレッドは過去ログ倉庫に格納されています
0016デフォルトの名無しさん
2014/07/29(火) 21:51:07.47ID:DxcW8iFRhttp://postd.cc/why-go-is-not-good/
・Goは何も新しいことをしない。
・Goは全てにおいてうまく設計されているとは言えない。
・Goは他のプログラミング言語から退化したものである。
要するに Google の新言語 Go への批判記事な訳だけど、
これらの視点を Swift にも当てはめてみよう
・汎用プログラミング(Generic Programming)
良い解決策:制約ベースの汎用プログラミングとパラメータ型多相
Swift => Haskell 等と同様に、パラメータ型多相による総称プログラミングが可能
(ただし、この著者は Haskell の型クラスと単なる明示的パラメタ型多相とを
ごっちゃに理解している可能性があるので、注意が必要と思われる)
・言語拡張性(Language Extensibility)
良い解決策:演算子は関数である
Swift => Haskell 等と同様に、演算子をオーバロード(多重定義)したり、
プログラマがカスタム演算子を定義することすら可能
・基本ケースおよびエラー状態(Base Cases and Failure Conditions)
良い解決策:代数的データ型と型安全なエラーモード
Swift => Haskell 等でいう代数的データ型に相当するenum型を提供し、
しかも独自(?)のOptional型まであるから、
ヌルポインタのバグにさよならを告げることができる
・型推論(Type Inference)
良い解決策:一般的な型推論
Swift => Haskell 等の関数型言語ほど完璧ではないが、実用レベルの型推論を提供
(長いので、一旦ここで切る)
■ このスレッドは過去ログ倉庫に格納されています