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

Swiftスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/06/03(火) 04:12:21.08ID:rEEU5ykv
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
https://developer.apple.com/swift/
0002デフォルトの名無しさん2014/06/03(火) 04:17:00.47ID:u4jrgx59
Apple Developer
https://developer.apple.com/swift/

iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
0003デフォルトの名無しさん2014/06/03(火) 04:34:50.18ID:0Yv/wN/p
Objective-Cのキモイ書き方から解放されるっていう意味では歓迎したい
0004デフォルトの名無しさん2014/06/03(火) 04:38:13.14ID:RuKqYDTE
はえーよw
0005デフォルトの名無しさん2014/06/03(火) 04:42:17.80ID:FE8l7XVP
javascriptみたいなやつか?
0006デフォルトの名無しさん2014/06/03(火) 04:49:00.24ID:nzrdKQgu
発表してすぐにドキュメント公開とは、さすが
オープンソースベースのIDEすら未完成のどっかとは違うな
0007デフォルトの名無しさん2014/06/03(火) 04:57:41.31ID:WOckUK4g
LLVMでScalaっぽいのつくりましたって感じか?
マカじゃないから羨ましい悔しい
0008デフォルトの名無しさん2014/06/03(火) 05:25:48.47ID:FE8l7XVP
kindleで配布はよ
ていうかwebでドキュメント公開しないところがいやらしいな
マカー以外も興味ある人多いのに
0009デフォルトの名無しさん2014/06/03(火) 05:38:35.52ID:rEEU5ykv
書籍の形にはなってないけどドキュメント

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
0010デフォルトの名無しさん2014/06/03(火) 05:39:22.69ID:siem544m
やばい、ナウでヤングでいけてる、それで性能もいいというし。
これからiosとosxの開発賑わうのでは?
若者をapple自軍に呼び込む召喚魔法になりそう
0011デフォルトの名無しさん2014/06/03(火) 05:49:11.67ID:QNehfQ3/
開発環境は?
0012デフォルトの名無しさん2014/06/03(火) 05:59:22.34ID:rEEU5ykv
>>11
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/
0013デフォルトの名無しさん2014/06/03(火) 06:10:21.67ID:soMTJmL9
Objective-C と見た目が違い過ぎて笑う。
でも、流石にObjective-Cよりは遅いんじゃないか?
0014デフォルトの名無しさん2014/06/03(火) 06:13:05.29ID:NLcqYubo
はやすぎワラタw
0015デフォルトの名無しさん2014/06/03(火) 06:31:52.93ID:mG676Gbl
TypeScriptに似てるね。
0016デフォルトの名無しさん2014/06/03(火) 06:32:47.09ID:rEEU5ykv
>>13
WWDCではObjective-Cより速いってグラフ出してたけどどうなんだろうな
もともとLLVMを念頭に置いて設計されてるから有利なのかも?
0017デフォルトの名無しさん2014/06/03(火) 06:46:58.26ID:0v65KPbJ
Microsoftをパクってきたのか。
0018デフォルトの名無しさん2014/06/03(火) 06:50:33.89ID:Fqc6zuT2
結局、なんの言語のパクリなのか、まとめといてくれ。
0019デフォルトの名無しさん2014/06/03(火) 06:51:51.09ID:9Ltabfc6
早いよ。 マシンレベルでも最適化されるし言語仕様自体見ても高速に動きそう。
0020デフォルトの名無しさん2014/06/03(火) 06:52:31.51ID:9Ltabfc6
>>18 Clangの発展形。
0021デフォルトの名無しさん2014/06/03(火) 06:56:19.45ID:9Ltabfc6
新しいプログラミング言語 Swift
http://dev.classmethod.jp/smartphone/swift/

米アップル、iOSアプリの新開発言語にSwiftを導入
http://ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。

Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。

LLVM
http://ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。

playgrounds を使うとインタラクティブに実行できる。
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/Art/largeshot_2x.png
0022デフォルトの名無しさん2014/06/03(火) 07:12:38.78ID:iQXQSz/x
Enumもあるし、Genericsもあるのか。ますますTypeScriptに近いな

Swiftのprotocolっていうのは、TypeScriptのアンビエント宣言のことかな?
0023デフォルトの名無しさん2014/06/03(火) 07:16:40.40ID:iQXQSz/x
タイプセーフ言語らしい。

Type Safety and Type Inference

Swift is a type safe language. A type safe language encourages you to be clear about
the types of values your code can work with. If part of your code expects a
String, you can’t pass it an Int by mistake.

Because Swift is type safe, it performs type checks when compiling your code and
flags any mismatched types as errors. This enables you to catch and
fix errors as early as possible in the development process.
0024デフォルトの名無しさん2014/06/03(火) 08:32:34.25ID:tLJazyzK
1レスでマスターできるSwift言語入門
他言語のよせあつめだから、マスターするにはこれだけで十分w
(まあざっとしか見てないから間違ってたらすまん)

タイプセーフ言語。全般的に型ある。型キャストもある。
Generics搭載、アトリビュートあり

var(変数)とlet(定数)。変数・引数の定義は「名前: 型」の順番
文字列リテラル = よくある文字列クラス。文字列の中で変数展開や関数実行可能
for、for in、while、do while、if、swtchがある。
ループ系はラベルが使えてbreak、continueできるタイプ
switchは、caseにそこそこ色んなモノが使えてFallthroughキーワードでフォールするタイプ

関数はfuncで定義。デフォルト引数と名前付き引数が使える。
可変引数は...、inoutキーワードで引数で戻り値を返せる。クロージャある。アロー演算子もある。

タイプセーフEnum。おなじみのclassとstruct。thisはself。
(たぶん)単一実装継承。インターフェース(protocols)継承は複数可能
overrideキーワード、プロパティ(set、getキーワード)あり
コンストラクタ=init、デストラクタ=deinit。
自動リファレンスカウンタ方式。Weak Referencesあり
extensionで既存クラス拡張可能

例外、try-catchは不明(なし?)
0025デフォルトの名無しさん2014/06/03(火) 08:39:53.35ID:SsmCsZ51
>>20
clang は言語か?
0026デフォルトの名無しさん2014/06/03(火) 08:44:53.58ID:Tlzh3MoL
どっかで見たような言語だな。
0027デフォルトの名無しさん2014/06/03(火) 08:46:43.13ID:va6vQ78Z
米アップル、iOSアプリの新開発言語にSwiftを導入
http://ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。

Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。

LLVM
http://ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。

http://www.apple.com/apple-events/june-2014/
0028デフォルトの名無しさん2014/06/03(火) 08:49:02.50ID:WvSy6YGV
>>24
例外無いの?
golangと同じかね
0029デフォルトの名無しさん2014/06/03(火) 08:51:46.23ID:L+zlmaIc
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

javascript ジェネレータはよ
0030デフォルトの名無しさん2014/06/03(火) 08:55:32.79ID:va6vQ78Z
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/index.html

なんというか
一言で言うとダサい言語だな
0031デフォルトの名無しさん2014/06/03(火) 08:56:46.37ID:Tlzh3MoL
>>28
ざっと見たけど見当たらなかった。
どこかに書いてあるのかねぇ。
0032デフォルトの名無しさん2014/06/03(火) 08:57:48.29ID:uZjFICqp
これでObj-C食ったら皆得だな
0033デフォルトの名無しさん2014/06/03(火) 08:58:42.76ID:Tlzh3MoL
Objective-Cはさすがに古臭すぎて
やりたくなかったが、これで消え去れば最高だね。
Swiftの方がJavaScriptに似てるからいいよ。
0034デフォルトの名無しさん2014/06/03(火) 09:10:47.58ID:BwOFmS9H
NS遺伝子のジョブズ消えたから発表できたのか
0035デフォルトの名無しさん2014/06/03(火) 09:30:10.40ID:9Ltabfc6
>>29 Javascript コンパイラは有るみたいだよ。
Emscripten is an LLVM to JavaScript compiler
https://github.com/kripken/emscripten/wiki

Swiftは次の様なコンパイル手順を取ってる。

Swift > Clang > LLVM byte code > マシン語
だからこんな感じになるのでは

Swift > Clang > LLVM byte code > Emscripten > Javascript

またLLVM中間語をわざわざコンパイルしなくてもそれ自体を実行できるJavascriptも存在しているようだから、そのままHTMLで使える。
LLVM.js - Badass JavaScript

Ruby, Python, Haskell, Java, D, PHP, Pure, Lua 等へもコンパイルできるらしい。
これは夢が広がるな。
0036デフォルトの名無しさん2014/06/03(火) 09:35:53.62ID:t1I4ETzW
とりあえずつい最近Objective-Cの勉強始めた俺からするとめちゃくちゃ嬉しいwww
いやー早速rMBP15 rate 2013をXcode6とYosemiteにして遊んでるがめっちゃ簡単やん!TypeScriptやん!普段仕事はC#.NETやからめっさ馴染み深いシンタックスやん!!楽勝やんこれwww
ほんま如何にObjective-Cが難しかったかよくわかるわー、これでコーディングやなくてアプリの中身そのものにリソース注げるわー
0037デフォルトの名無しさん2014/06/03(火) 09:40:34.97ID:Y/pEIVnr
今風のcって感じだな
大して目新しい機能はなさそうだけど、今さらobjcよりましと思う
0038デフォルトの名無しさん2014/06/03(火) 09:45:10.46ID:t1I4ETzW
いやでもこれでXamarin必要なくなるwww
あのクソ高くてふざけた制限ばかりのサブスクリプションを契約しなくてよくなるwww
マジXamarinざまぁwww
0039デフォルトの名無しさん2014/06/03(火) 09:46:10.84ID:va6vQ78Z
>>34
ジョブスなら歓迎するはず
0040デフォルトの名無しさん2014/06/03(火) 09:50:18.20ID:9Ltabfc6
そもそもCocoaの遺伝子がLLVMに受け継がれそれが発展してSwiftが生まれたんだから正常進化形だな。
0041デフォルトの名無しさん2014/06/03(火) 09:57:27.88ID:RuKqYDTE
誰が一番最初にSwiftインタプリタ実装するか勝負だ!

てかLLVMってことはemscriptenで簡単にJSにできたりするかな?
新たなaltJSの誕生である。
0042デフォルトの名無しさん2014/06/03(火) 09:59:34.95ID:RuKqYDTE
>>38
C#が使えるってだけならXamarinいらんけど、
Xamarinの価値はAndroidやWindowsターゲットとも主にモデル等でコード共有出来るってとこじゃねえの?
俺使ったことないし知らんけど
0043デフォルトの名無しさん2014/06/03(火) 10:00:18.19ID:d3S2ffsw
>>31 が言うように例外処理が書いてないなぁ
ゼロ割りは error だけど overflow operator 使えば 0 になるよ、とは書いてあるが
error になったらどうなるのかが書いてねぇ
0044デフォルトの名無しさん2014/06/03(火) 10:03:39.83ID:S1JFtVB8
いまどきの新しめの言語機能を全部ぶち込んだような言語だな。
静的型の型推論、クラスベース、関数型の機能もある。クロージャもある。演算子オーバーロードもある。
そしてガベコレなし。GCは結局それほど良い物ではなかったと明らかになってきたな、最近は。
(いまだにヌルサクに動かないAndroid見れば分かる)
動的型に対する静的型の反撃、LLVMベースと
ある意味、この10年ほどの紆余曲折が全部込められてるw

システムレイヤからアプリケーションレイヤ、エンタープライズから3Dゲームまで幅広く対応できるんじゃね?
Appleオンリーのクローズドな言語ということを抜きにすれば神がかってるわw

とりあえずさー、JavaScriptとはかなり距離の遠い言語だぞw 共通項はC風構文ってくらいだ。
JavaScriptに似てるって言うやつのプロフ見るとほぼウェブ屋だから
やっぱウェブ屋は世界狭いんだなとか思ってるよ(´・ω・`)
もっとも、そういう人達も表向きJavaScriptに近い感覚で使えるというのはいいことだと思うね。
0045デフォルトの名無しさん2014/06/03(火) 10:06:21.04ID:d3S2ffsw
ガベコレはまんまARCだろ
0046デフォルトの名無しさん2014/06/03(火) 10:07:55.16ID:9Ltabfc6
>>41 行けると思うよ。 LLVMバイトコードは同じはずだから。
■ このスレッドは過去ログ倉庫に格納されています