トップページ > プログラム > 2014年07月29日 > DxcW8iFR

書き込み順位&時間帯一覧

15 位/178 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000021104



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【Python】スクリプト バトルロワイヤル45【pl,rb,php,js】
スレ立てるまでもない質問はここで 137匹目
Swift part3

書き込みレス一覧

【Python】スクリプト バトルロワイヤル45【pl,rb,php,js】
134 :デフォルトの名無しさん[sage]:2014/07/29(火) 20:06:24.83 ID:DxcW8iFR
Go や Node.js は、Ruby や Rails よりも先に滅びる運命なのかもしれない....


・【翻訳】Go言語がダメな理由 | POSTD
  http://postd.cc/why-go-is-not-good/
 Goは何も新しいことをしない。
 Goは全てにおいてうまく設計されているとは言えない。
 Goは他のプログラミング言語から退化したものである。


・Farewell Node.js (翻訳) - from scratch
  http://yosuke-furukawa.hatenablog.com/entry/2014/07/06/094617
 visionmedia、Node.js辞めるってよ
スレ立てるまでもない質問はここで 137匹目
653 :デフォルトの名無しさん[sage]:2014/07/29(火) 20:19:39.44 ID:DxcW8iFR
>>652
ソフトウェア・ベンダーが神の声によって正当な大口契約を
掘り当てた例であれば、一太郎だけでなく数多くある
ただし個人開発のシェアウェアが超大手企業で大口契約まで
こぎ着けたのは、後にも先にも秀丸くらいではないのかと
Swift part3
16 :デフォルトの名無しさん[sage]:2014/07/29(火) 21:51:07.47 ID:DxcW8iFR
【翻訳】Go言語がダメな理由 | POSTD
 http://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 等の関数型言語ほど完璧ではないが、実用レベルの型推論を提供

(長いので、一旦ここで切る)
Swift part3
17 :デフォルトの名無しさん[sage]:2014/07/29(火) 22:04:22.69 ID:DxcW8iFR
(>>16 の続き)

・不変性(Immutability)
 良い解決策:デフォルトで不変に設定する
 Swift => すでに ObjC 時代から(NSArray と NSMutableArray のように)デフォは
  不変性であると意識して設計されたライブラリが提供されていたのはもちろんのこと、
  手続きの宣言時に可変性を明示的に mutating で指定する構文も可能になった

・制御フロー構造(Control Flow Structures)
 良い解決策:パターンマッチングと複合式
 Swift => Rust のmatch文と同様、Swift のswitch文では、enum型(代数的データ型)の
  変数代入を伴うパターンマッチや範囲マッチ...etc を提供している

以降は「組み込みプログラミング(Embedded Programming)」における部分的課題

・部分的課題1:ヒープと動的割り当て(The Heap and Dynamic Allocation)
 良い解決策:動的割り当てを選択制にする
 Swift => メモリ制約の厳しい iOS 上では、GC の代わりに ARC が利用できます

・部分的課題2:危険な低級コード(Unsafe Low-Level Code)
 良い解決策:危険なコードの分離
 Swift => C言語の関数を透過的に呼び出すことができるので、
  危険なコードをC言語コードとして分離することが容易(=現実的なコストで実現可能)です

記事と Swift との対比は、これで終わりです
こうしてまとめると、C#/Rust/Go から遅れること数年、満を持して Apple から新登場した
後発の Swift だけあって、いかにも他言語から「いいとこどり」した設計に見えてきます
ただし、それだけ冒険的な挑戦ですから、バグ取りにもしばらくの時間が必要でしょう


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。