トップページ⇒tech
1001コメント317KB

Swift part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/07/23(水) 11:46:48.42ID:x29J8vdY
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
Swift Blog
https://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
https://developer.apple.com/swift/resources/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
0002デフォルトの名無しさん2014/07/23(水) 12:01:12.75ID:rdKtmwhJ
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0003デフォルトの名無しさん2014/07/23(水) 12:01:26.09ID:xa9IqUVv
関連スレ
プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/
0004デフォルトの名無しさん2014/07/23(水) 12:02:42.28ID:rdKtmwhJ
Swift Blog
https://developer.apple.com/swift/blog/

Resources
https://developer.apple.com/swift/resources/
(Xcode 6が無料でダウンロードできる)

Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
0005デフォルトの名無しさん2014/07/23(水) 12:04:02.20ID:rdKtmwhJ
関連スレ

新言語Swiftを語るスレ
http://anago.2ch.net/test/read.cgi/mac/1401736249/

Wikipedia
Swift (プログラミング言語)
https://ja.wikipedia.org/wiki/Swift_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
0006デフォルトの名無しさん2014/07/23(水) 12:12:58.20ID:xa9IqUVv
>>5 のスレは、>>3のスレの前スレ
0007デフォルトの名無しさん2014/07/23(水) 12:46:53.59ID:rdKtmwhJ
The Swift Programming Language
https://itunes.apple.com/us/book/id881256329
0008デフォルトの名無しさん2014/07/23(水) 13:18:52.66ID:xa9IqUVv
>>7 >>1 iBooksの本が 7/21改訂版になった。
0009デフォルトの名無しさん2014/07/23(水) 16:58:45.20ID:x29J8vdY
>>4
そのリンク >>1 に入れてあるから
0010デフォルトの名無しさん2014/07/23(水) 20:23:53.00ID:UkE72Sh4
>>1 乙wift
0011デフォルトの名無しさん2014/07/23(水) 22:50:27.44ID:d4fKxbj7
>>8
ibookも差分アップデートしてくれたらいいのに。
0012デフォルトの名無しさん2014/07/26(土) 23:14:33.81ID:fwCKMr/Y
return って打とうとしたら RETURN が候補に出るのが邪魔だな
なんだ RETURN って
0013デフォルトの名無しさん2014/07/27(日) 02:36:22.52ID:1WIwg84i
protocol TestProt {
init(_ : Int)
}

class Test0 : TestProt {
init(_: Int) { }
}

class Test {
init() { }

func test<T : TestProt> () -> T {
return T(0)
}

func test2() -> Test0 {
return test<Test0>() // <- Cannot explicitly specialize a generic function
}
}

なぜエラーが出るのか分からない
0014デフォルトの名無しさん2014/07/27(日) 02:50:27.29ID:1WIwg84i
分かった。<Test0> が要らんのか。
return test() // これで良い
0015デフォルトの名無しさん2014/07/29(火) 00:03:30.46ID:sbHfEaWW
過疎
0016デフォルトの名無しさん2014/07/29(火) 21:51:07.47ID: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 等の関数型言語ほど完璧ではないが、実用レベルの型推論を提供

(長いので、一旦ここで切る)
0017デフォルトの名無しさん2014/07/29(火) 22:04:22.69ID: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 だけあって、いかにも他言語から「いいとこどり」した設計に見えてきます
ただし、それだけ冒険的な挑戦ですから、バグ取りにもしばらくの時間が必要でしょう
0018デフォルトの名無しさん2014/07/29(火) 22:41:34.93ID:ocgppLb3
今のところサーバサイドをSwiftで書けないのが問題といえば問題かな。
Goの魅力ってそこな気がするので。
OSXがVPSで動いたりしないのかしら
■ このスレッドは過去ログ倉庫に格納されています