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

Swift part2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/06/11(水) 14:42:15.02ID:+13mKJ0Z
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
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
0233デフォルトの名無しさん2014/06/23(月) 17:09:38.07ID:IjFKX6YY
副作用的で嫌な気もするな
ObjCでゲッタに書く処理といえば遅延初期化が典型的だったけど、それは@lazyでできる
他にゲッタで値を変える必然性のあるケースって何かあるだろうか
0234デフォルトの名無しさん2014/06/23(月) 20:07:54.04ID:bY8lx62F
値は変えることはよいし
自分自身を呼び出したら無限ループするのもあたりまえ
0235デフォルトの名無しさん2014/06/23(月) 22:44:10.74ID:yZxj5sEO
メソッドの+-ヘッダや[ ]記法、好きだったのになぁ。。
0236デフォルトの名無しさん2014/06/23(月) 22:45:58.55ID:knxG2Zrc
いや、Obj-Cもなくなるわけじゃないから
0237デフォルトの名無しさん2014/06/23(月) 22:52:46.74ID:yZxj5sEO
while(YES) {
[Objective-C retain];
}
0238デフォルトの名無しさん2014/06/23(月) 23:38:38.48ID:BKKkXYpe
>>232

Object
 subclass: #Example
 instanceVariableNames: 'value'
 classVariableNames: ''
 poolDictionaries: ''
 category: 'Example'.

! Example methodsFor: 'Accessing' !
value
 ^ value ifNil: [ value := 0 ].
!
value: aNumber
 value := aNumber.
!!

Accessingで値を取り出す時値を書き換えるってのは、割りと古典的な方法なんだけどね。
objectが重要じゃなくて値が重要って場合は別解としてこういう使い方もあるけど。

! Example methodsFor: 'Accessing' !
value
 ^ value ifNil: [ 0 ].
!
value: aNumber
 value := aNumber.
!!
0239デフォルトの名無しさん2014/06/24(火) 00:13:09.22ID:o+ts05fh
何故いきなりSmalltalk書き出した?
0240デフォルトの名無しさん2014/06/24(火) 00:16:28.10ID:o+ts05fh
つか、遅延初期化ならSwiftは@lazy属性で指定できるよ
0241デフォルトの名無しさん2014/06/24(火) 00:21:29.84ID:nsfoMIba
>>239
古典的だから
0242デフォルトの名無しさん2014/06/24(火) 09:52:46.32ID:AAHBTYvg
GOCHA!
0243デフォルトの名無しさん2014/06/25(水) 21:58:00.07ID:79R/fCgL
レスがめっきり減ったな
Swiftもそろそろオワコンか
0244デフォルトの名無しさん2014/06/25(水) 22:26:41.23ID:8AOeuyaK
Appleで閉じたベータ版ならこんなもんでは
信者混じりの初速がおかしかっただけでしょう

アクセスコントロールはよ
シングルトン書きにくくてもにょる
0245デフォルトの名無しさん2014/06/25(水) 22:55:47.78ID:yyfslmCP
シングルトンはEnum使えばいいんじゃね
0246デフォルトの名無しさん2014/06/25(水) 23:18:47.49ID:79R/fCgL
???
0247デフォルトの名無しさん2014/06/26(木) 00:50:20.58ID:ifBtr7TR
enum < ふえぇ…拡張されたといってもそんな太いの無理…
enum < …いゃぁっ!! やっぱり無理だようっ、まだ列挙子だもん、デザパタなんて入らないよぅぅっツ!!
enum < うぅ…ま、満足してくれた? アクセス制御ちゃんが来てくれないからって…無理しちゃいけないよ…はぅ…

なんでもない
今、近場の病院をググってる所だ安心しろ
0248デフォルトの名無しさん2014/06/26(木) 06:00:34.87ID:fv8mroUT
そうか
0249デフォルトの名無しさん2014/06/26(木) 23:33:31.01ID:BVAAIzQv
>>244
いい加減Singleton卒業しろよ。
保守しづらくてたまらんわ。
0250デフォルトの名無しさん2014/06/26(木) 23:39:50.30ID:WAwEPjdj
Singleton卒業した後は、どこに入学したらいいですか?
0251デフォルトの名無しさん2014/06/26(木) 23:42:07.98ID:qPqjUHLv
グローバル変数
0252デフォルトの名無しさん2014/06/26(木) 23:59:18.79ID:BVAAIzQv
真面目な話Monostate pattern。
Singletonと違ってMonostate patternで
作ったclassのobjectは
他のclassのobjectと置き換えが容易。
並列処理を新たに追加する場合や、
複数のobjectが必要になった場合なんかは特に助かる。
0253デフォルトの名無しさん2014/06/27(金) 00:49:08.49ID:9hXQR0vq
モノステートで済む場所ならよく書いてるけど多態絡むとね
つか置き換え要求があり得るならばシングルトン一択では?
多分お互いの考えてる想定ケースが違うんだろうけど

続く二行がなおのこと意味不明
最後のなんか、そもそもシングルトンもモノステートも適用しちゃいかんだろ
0254デフォルトの名無しさん2014/06/27(金) 00:54:10.86ID:CRdQJr4Y
語ってみたかっただけだろ
0255デフォルトの名無しさん2014/06/27(金) 01:25:11.37ID:6uE5vYGa
いよいよ脱アルゴリズムの時代きたか
0256デフォルトの名無しさん2014/06/27(金) 01:28:29.47ID:bk/xChkn
我らがObj-Cはいづこへ…(´・ω・`)
0257デフォルトの名無しさん2014/06/27(金) 06:16:05.51ID:/tBLbKnn
>>256
オブジェクト指向は愚かな考え。
http://peace.2ch.net/test/read.cgi/tech/1393660194/
0258デフォルトの名無しさん2014/06/27(金) 07:58:35.16ID:bmd/FTib
>>250
時代はDI(Dependency Injection)だよ。
疎結合になって保守しやすいし、テストも書きやすくなる。
ていうか、Javaの世界ではとっくにDIが当たり前だから。
いまだにフレームワークでもSingletonなんて使ってるのはObj-Cだけ。
0259デフォルトの名無しさん2014/06/27(金) 08:13:09.44ID:3Ogs4WPv
シングルトンがカスなのは同意するが、スマホアプリ程度でDIなんぞ要らん
0260デフォルトの名無しさん2014/06/27(金) 08:32:48.24ID:jMn+w+Bh
Objective-CでSingleton使ってるやつってどんなのがあったけ?
0261デフォルトの名無しさん2014/06/27(金) 09:51:17.33ID:CmsfI9Sw
DI って、ただのprotocol使ったdelegateじゃね?
0262デフォルトの名無しさん2014/06/27(金) 10:05:50.14ID:BbQZN6SM
Objective-Cは言語仕様改定で機能を+1してくんじゃなくて
オブジェクト指向だったらなにが必要かって
考えたオブジェクト指向フレームワークの中身がCって形だから
書き方が冗長になる以外は「最近の言語の新機能だぁ!」
みたいなのだいたい再現できるよね。
0263デフォルトの名無しさん2014/06/27(金) 10:49:17.65ID:iTSjXKIw
>>260
sharedFoo とか defaultBar とか
0264デフォルトの名無しさん2014/06/27(金) 12:57:01.86ID:cQ+q76Vp
>>263
そんなもん存在せんぞ
0265デフォルトの名無しさん2014/06/27(金) 13:04:18.24ID:5Q+HtdSG
NSUserDefaultsとかUIApplicationとかUIDeviceとかNSFileManagerとか
0266デフォルトの名無しさん2014/06/27(金) 13:23:23.08ID:cQ+q76Vp
>>265
shareFooやdefaultBarで検索してもそんなもん出てこない。
0267デフォルトの名無しさん2014/06/27(金) 13:27:17.30ID:5Q+HtdSG
>>266
お前がそう思うんならそうなんだろうな
お前の中ではな
0268デフォルトの名無しさん2014/06/27(金) 13:49:32.26ID:W1qQ5+Xl
グローバル変数で十分
0269デフォルトの名無しさん2014/06/27(金) 17:00:40.07ID:iTSjXKIw
>>266
本気で言ってそうでヤバいなお前
0270デフォルトの名無しさん2014/06/27(金) 17:23:52.29ID:pR5dE5tV
>>268
どうやってグローバル変数でシングルトンの代わりをするんだよ
0271デフォルトの名無しさん2014/06/27(金) 17:25:27.50ID:CRdQJr4Y
ブヒー
0272デフォルトの名無しさん2014/06/27(金) 20:50:53.32ID:02IBmcrS
>>270
そういうセリフは、シングルトンをグローバル変数の替わり以外で使ってる人だけが言うべき
0273デフォルトの名無しさん2014/06/27(金) 21:04:07.92ID:RdmQ7muW
厶板はFoo Bar Hoge禁止なのを未だ知らんヤツがいるとは。
新参か?
0274デフォルトの名無しさん2014/06/27(金) 21:10:17.31ID:GbdV8FAO
>>265
NSUserDefaultsとNSFileManagerはシングルトンじゃないよ
0275デフォルトの名無しさん2014/06/27(金) 21:11:15.91ID:ASBax8F1
メタ構文変数禁止とかバカ丸出しでしょ・・・
0276デフォルトの名無しさん2014/06/27(金) 22:32:21.50ID:TatRAlv+
>>272
? 268にお前ん中ではなって言えば良かったって話?
0277デフォルトの名無しさん2014/06/27(金) 23:04:31.16ID:B7q6S9HD
Foo Bar Hogeとか使って質問してくるヤツは
決まって何がしたいのか説明不足だからな
他所ならともかく2chじゃ煙たがられる
0278デフォルトの名無しさん2014/06/27(金) 23:32:16.42ID:5Q+HtdSG
hogeを嫌う奴はハゲと相場が決まっている
0279デフォルトの名無しさん2014/06/29(日) 08:40:06.96ID:wFk5OUc5
https://www.youtube.com/watch?v=YLHyeSuBspI
0280デフォルトの名無しさん2014/06/30(月) 00:44:34.70ID:3lwG7vbW
https://www.youtube.com/watch?v=jrjfZ2ltvgE
0281デフォルトの名無しさん2014/06/30(月) 01:06:27.05ID:2Uifxpzh
>>280 Google developer tools and APIs for iOS

ふ〜ん、この為にJava to Object-Cなんて作ってたのか。
この流れだと、Java to Swiftも出てきそうだな。
iOSユーザを取り込みたいんだろうな。
0282デフォルトの名無しさん2014/06/30(月) 01:21:22.38ID:qZLVrmNH
Object-C
0283デフォルトの名無しさん2014/06/30(月) 01:27:17.53ID:2e+iCNCB
このスレ、リンク貼るだけとか無口な奴が多いな
0284デフォルトの名無しさん2014/06/30(月) 01:32:39.92ID:CGk8SAom
みんなロボット。人間いません。
0285デフォルトの名無しさん2014/06/30(月) 02:47:02.02ID:o++cUP1Q
なんでStringにlengthメソッドとかないんだろ
部分文字列の切り取りもやけにめんどくさい
糞すぎる
0286デフォルトの名無しさん2014/07/01(火) 09:14:05.17ID:Spoe+hFi
Swiftって、ヒアドキュメントも使えないのか
なんかモダン言語の特徴を取り入れたとか言ってるわりには、いろいろ糞だよね
0287デフォルトの名無しさん2014/07/01(火) 09:50:58.67ID:oY1WpWsO
ヒアドキュメントが必要になるのはとかコードとリソースを分離できてない証拠
書き捨て用途も多いスクリプト言語と違って、Swiftはアプリケーション構築が第一最大の目的だからそんなもの要らん
0288デフォルトの名無しさん2014/07/01(火) 10:45:28.17ID:FsIt2ttm
>>285 マルチポスト 新Mac板参照
>>286 これだけは仕様追加されるまで待つしかないな。 どうして最初から入れなかったのか不思議でしょうがない。
文字列関係は大幅な仕様追加が有るはず。 早ければゴールデンマスター辺りで第1段
0289デフォルトの名無しさん2014/07/01(火) 12:15:57.46ID:OoZ2DZwm
>>287
真面目なプログラムならその通りだが、
学習時やパイロット、簡易テストなんかの折にヒアドキュメントがあると楽だとは思うね。
0290デフォルトの名無しさん2014/07/01(火) 13:43:27.02ID:FsIt2ttm
>>287 HTMLを処理する時などあると便利で見やすくなる事が有るんだよね。
ちょっとしたThunk youメッセージとか、処理結果表示とか。

サーバサイドのプログラム用途ではかなり重要な機能だよ。
別ファイルにして一番困るのが埋め込み変数が評価されない事

例えば
var a=1

str="aは\(a)だよ" //今はインラインだから埋め込まれる
println("#1 a=\(a) "+str) //#1 a=1 aは1だよ
a=2
println("#2 a=\(a) "+str) //#2 a=2 aは1だよ

//「aは\(a)だよ」  と言うファイルを別に作ってstrに読み込んだとしよう
str="aは\\(a)だよ" //aは\(a)だよ と等価
a=3
println("#3 aは\(a) "+str) //#3 aは\(a)だよ  文字列としてしか評価されない

自分で埋め込み変数で分離して実行時に結合とかすれば似たような事は出来るが美しくない。
0291デフォルトの名無しさん2014/07/01(火) 14:24:10.63ID:oY1WpWsO
テンプレートエンジン使うだろ常識的に考えて
0292デフォルトの名無しさん2014/07/01(火) 14:49:41.78ID:B592/H3e
正規表現も言語レベルでサポートされてねーし、FileのI/O関数すら無ぇー
結局いろいろやろうとしたらCocoaの糞みたいなライブラリを使わなきゃなんねーみたいだな
Obj-C使うのと大して変わんねーじゃねーか
いや、むしろObjCとSwiftを行ったり来たりする手間が増えた分、糞度が増した感じだな
0293デフォルトの名無しさん2014/07/01(火) 15:11:46.08ID:H8OdYCOp
>>285
つutf16count
この名前にしたのは、UTF-16のカウントだよサロゲートペアは考慮しないよ、ってのを明確にするためだと思う。

サロゲートペア考慮した文字列をカウントするメソッドをlengthにすればいいじゃんと思うかもだが、NSStringがすでにlengthプロパティ持ってる。
0294デフォルトの名無しさん2014/07/01(火) 16:54:57.26ID:HKbfE0uo
Objective-Cのランタイムで動いていることを忘れて、
みんなワガママ言いたい放題だな。
0295デフォルトの名無しさん2014/07/01(火) 18:30:17.98ID:xH+GAfzK
AppleはそのランタイムもSwift言語も両方自由に弄れる立場なんだからワガママもクソもないわ
ScalaのJavaに由来する糞な部分を叩くのがワガママだというのとは訳が違う
0296デフォルトの名無しさん2014/07/01(火) 19:06:31.76ID:8cxNwtXU
>>259
Apple がランタイム(Cocoa)を自由にいじれる訳ないだろう
これまでの ObjC デベロッパを切り捨てるはずもない

Microsoft が Win32API/COM を捨て .Net を強く推そうとしても、
いつまでたってもデベロッパが .Net へ移行しないから
Win32API を切り捨てられないのと同じ

Swift の登場を受けて OSX/iOS 開発に初めて手をだした奴等が
ObjCランタイムにとまどうのは理解するけど、
従来からのObjCデベロッパにとって Swift の道は最良に近い選択肢
0297デフォルトの名無しさん2014/07/01(火) 19:07:30.23ID:8cxNwtXU
アンカを間違えた、>>259 ではなくて >>295 に訂正
0298デフォルトの名無しさん2014/07/01(火) 19:18:16.51ID:B592/H3e
Obj-Cのネーミング規則に迎合しちゃったから、SwiftからCocoaの呼び出しははいびつな仕様になっちゃったよね
しかも、型が違うもんだから、相互変換が必要とか
使う側は、今使ってる変数が、SwiftのStringなのか、NSStringなのか、Arrayなのか、NSArrayなのか意識しながら
コーディングしないといけない
このカオスっぷりは、結局、新参者を遠ざけることになるんじゃねーの?
0299デフォルトの名無しさん2014/07/01(火) 19:26:24.15ID:oY1WpWsO
Appleはレガシーをずるずる引きずったりしないよ
合理的な段階は踏むけど、出来る限り早くObjective-Cは捨てられると思うよ
いままでも色んな場面でそうして来た
0300デフォルトの名無しさん2014/07/01(火) 19:36:43.80ID:8cxNwtXU
>>298
いいんじゃねえの
ObjCプログラマなら、文字列変数の型が char * なのか
NSString なのかは、常に意識してるから慣れたものだし
C が Swift に代わっただけで、そのメリットは大きい

どのみちデータ型でつまずくようなレベルだと、
Java/C#/C++ の静的OOPに慣れたデベロッパには
Smalltalk由来のメソッド動的束縛は理解できないから、
消えてくれたほうが世の為
0301デフォルトの名無しさん2014/07/01(火) 19:41:21.00ID:B592/H3e
Swiftを使う事のメリットって、バグだらけのPlaygroundが使えることと、
強力なSwitch文とEnum、それとStructが使えることと、Genericsのサポートぐらいか
あと、Arrayのソートが早い?んだっけ? 試してないけど。絵文字変数とか別にどーでもいいし
その他はあまり文法的なメリットは感じないな。つか大して変わんない。
どっちみちアプリ作るにはCocoaのクラスがいるし。
クロージャにしても、Obj-CならBlocksがあるし、perform〜系の呼び出しや、callbackが素で使えるのもObj-Cの方が使い勝手がいい
Carbon APIの呼び出しもObj-CからTall-freeで呼び出せる
ん〜っ、なんだかなぁ
実際、どーなんだろ、同じアプリをObj-CとSwiftで書くなら、Swiftの方が何倍早いとかデータあるのかね?
Flapybirdのソース見たけど、あれObj-Cで書いても大して記述量変わんねーよね?ほとんどSpritKitの呼び出しだし
0302デフォルトの名無しさん2014/07/01(火) 19:56:30.70ID:9nsBHmdy
Obj-Cに微妙に挫折した身としては、JSとかに近い書き方できるだけでも嬉しいな
0303デフォルトの名無しさん2014/07/01(火) 20:07:43.29ID:B592/H3e
あ、あとタプルを忘れてた
0304デフォルトの名無しさん2014/07/01(火) 20:11:02.02ID:oY1WpWsO
安全性は確実に増すだろ
その分テストも減らせて開発スピードも上がるんじゃね
記述量とかどうでもいい
0305デフォルトの名無しさん2014/07/01(火) 20:32:54.59ID:FsIt2ttm
>>295 言語仕様を見れば、まだ作成途中と言うことが解るだろ。
これだけ基礎がしっかりしてれば後はお化粧の話。
Objective-Cのライブラリを当面そのまま使い、徐々にSwift likeに合わせて行くんだろ。
手始めにNSStringをStringの拡張として使える様にしてるから、Stringでフォーマットも使える。 言語仕様に入れられないのは若干のUnicodeの処理の違いを最終的にどう辻褄を合わせるかがきまらないからだろう。
0306デフォルトの名無しさん2014/07/01(火) 20:36:44.49ID:l9yjQtpJ
何がダメってセミコロンがねーところ
あと、条件式のかっこがなかったりとか微妙に違う感出してるとこ
ObjC残しとくくせに紛らわしいんだよ
0307デフォルトの名無しさん2014/07/01(火) 20:40:25.90ID:l9yjQtpJ
Obj-Cいろいろと不評だけど、OOP部分とレガシーな部分が明らかに違うことが
わかる表記になってて、個人的には、なれればむしろ、レガシーなCと共存関係が
わかりやすくて好きだったんだけどな
文字列の操作がめんどいって声があるなら、そこだけ+で出来るようにちょいへん
してくれたらよかった
0308デフォルトの名無しさん2014/07/01(火) 20:52:13.49ID:YM4fCUiI
セミコロンつけたきゃ勝手につけろよ
0309デフォルトの名無しさん2014/07/01(火) 21:05:05.42ID:B592/H3e
Swiftが後方互換性を残したまま進化してくれるならいいが、Deprecatedの嵐は勘弁して欲しいものだ
それでなくても、年1回のOSのバージョンアップとCocoaのDeprecated攻撃でもうへとへとなんだよ
0310デフォルトの名無しさん2014/07/01(火) 21:24:35.06ID:/YDQ45k+
>>309
いや、おそらくdeprecatedの嵐はいよいよ激しくなるんじゃねーの?
当分はSwift自体の拡張や仕様変更も相当あるだろうし
CocoaもSwiftベースに書き換えられるんだろうから。

もともと建て増し建て増しでどうにもならなくなったObjC2.0じゃ
この先進化のさせようがないってんでSwiftに乗り換えることにしたんだろうし。
0311デフォルトの名無しさん2014/07/01(火) 21:26:59.14ID:B592/H3e
勘弁してくれ
0312デフォルトの名無しさん2014/07/01(火) 21:30:55.29ID:oY1WpWsO
新しいことを学び続ける気力を失った瞬間が、そいつにとってのいわゆるプログラマ○才定年説というやつだろう
0313デフォルトの名無しさん2014/07/01(火) 21:39:04.99ID:B592/H3e
Deprecatedは、新しいことというより、初期設計時の先見性の無さの現れだろ
0314デフォルトの名無しさん2014/07/01(火) 21:56:32.31ID:pwV/PQsP
発表では乗り換えるなんて言ってないのになんでこの人の頭の中では乗り換える事になってんの?
0315デフォルトの名無しさん2014/07/01(火) 22:05:25.96ID:/YDQ45k+
>>314
Appleは乗り換えるとは言ってないけど、将来的には乗り換えるつもりだろうと思っているよ。
二つの言語を同水準でサポートし続ける理由がないし、
ObjCをこの先もずっとサポートしていくつもりならわざわざSwiftを導入して
移行に伴う混乱を誘発する理由もないから。

Appleが何も言っていない以上は違う意見の人を説得できるとは思ってない。
乗り換えるなんてことはありえないと思うなら俺とは前提が違うってことだね。
0316デフォルトの名無しさん2014/07/01(火) 22:17:11.06ID:l9yjQtpJ
かつてのCocoa-Javaが消え去ったように、Objective-Cも消え去るのだろう…。
0317デフォルトの名無しさん2014/07/01(火) 22:18:26.53ID:fEVjLc77
>>316
それ……消えるの……Swiftになるフラグ……
0318デフォルトの名無しさん2014/07/01(火) 22:27:11.00ID:B592/H3e
MacOSもiOSも既存のほとんどのフレームワークもObj-Cで書かれてんだろ?
Obj-Cを切り捨てるってことは今後最低でも10年は無いと思うけどね
C言語の構文やデータ構造がそのままの文法で書けるってだけでも価値がある
Appleがらみのライブラリだけでなく、Unixの膨大なライブラリもあるし
WWDCでも、Obc-Cの既存コードをSwiftで書き換えることはお勧めしないって言ってたし
それやるなら既存コードはそのままにして、新機能だけSwiftで書けって言ってたし
今の所はまだObj-Cが消える可能性より、Swiftが残る可能性の方があやしい
Appleがやっぱやめましたって言う可能性もあるし、ユーザーがついてこなくて自然消滅の可能性だってある
0319デフォルトの名無しさん2014/07/01(火) 22:40:41.30ID:FsIt2ttm
ID:B592/H3e あぼ〜んしたらすっきりした。

Object-Cと言う言語が消える事は無いが、ライブラリなど徐々にSwiftに移行していくだろうな。
当然の流れ。
今後のSwiftは言語の若干の手直し(拡張)とライブラリ群の整備だろうな。
0320デフォルトの名無しさん2014/07/01(火) 22:47:36.43ID:/YDQ45k+
>>318
ああ、俺もあとどれぐらいでObjCが消えるかなんて分からない。
10年より先かもしれないしもっと早いかもしれない。
今後の情勢次第でSwiftが消える可能性があるだろうと言われればそうかもしれないとしか言えない。
少なくとも現時点のAppleは、いずれ乗り換えるつもりでSwiftを発表したんだろうと思うというだけ。

あとWWDCで既存コードの書き換えが推奨されないというのは俺も知ってるけど
似たような話はretain/releaseを手動でやってるコードからGCへの移行でも言われていた。
「今問題なく動いているものをいじるな」というだけの話で、
AppleがObjCとSwiftを今後どうするつもりかという話とは関係ないと思う。
0321デフォルトの名無しさん2014/07/01(火) 22:51:53.67ID:l9yjQtpJ
>>318
>C言語の構文やデータ構造がそのままの文法で書けるってだけでも価値がある
これはほんとそうだよな
以前、Cでπの多倍長計算のコードを書いてたことがあって、それをCocoaアプリに
仕立て上げてみた時も、コアの計算アルゴリズムの部分はほぼファイルコピーで
UI部分だけObjective-Cで書いてアプリが出来上がったとき、Objective-Cの
素晴らしさを実感したことを今でも覚えてる

Cocoaは、最初Objective-Cって何だよっておもってCocoa-Javaから始めたくち
だったけど、Objective-Cが実はCなんだと(正確にはC+OOP)だと気づいたとき
一気に障壁が下がってそれ以降すんなりObjective-Cでコーディングできてた

Modernさという意味ではSwiftに劣るけど、やっぱObjective-Cが好きなのかも

.mファイルの中に、Cの関数とObj-Cのメソッドが並んでるコードは最初気持ち
悪かったけど、ある意味最も自然な形で拡張された素直な言語だなと思う
0322デフォルトの名無しさん2014/07/01(火) 23:08:31.21ID:yfeDN/3+
Swiftなんざ作るぐらいなら、素直にSmalltalk入れさせろよと思うがな。

#( 1 2 3 ) do:
[ :each |
].
Smalltalkなら20年前に出来てたこんな機能が、
Objective-C 2.0 で新機能扱いとかウンザリ。
0323デフォルトの名無しさん2014/07/01(火) 23:09:00.30ID:g+9FQYl7
俺は結構早めにSwiftに移行すると踏んでる。
iOS関連ってOSSが多くて(特にUI)、質も高い。
そして、OSS書いてる人たちが結構な割合で、少なくとも新規プロジェクトはSwiftで書くのではないかと思う。
0324デフォルトの名無しさん2014/07/01(火) 23:14:39.02ID:l9yjQtpJ
といいつつ、Objective-Cもすぐにはなくならなそうで少し安心したし、
おれもSwiftもちょっと嗜んじゃおうかなw
0325デフォルトの名無しさん2014/07/01(火) 23:21:33.88ID:Qf/S0Wzj
10年後も残ってるかどうかとか言うけどそれ全ての言語に言えるんじゃね
0326デフォルトの名無しさん2014/07/01(火) 23:23:50.43ID:B592/H3e
アクセス指定子も無いし、まだフレームワーク作りにはとっかかりにくいわな
Swiftで使う場合は、Obj-Cみたいにヘッダーだけ参照ってわけにいかないし
0327デフォルトの名無しさん2014/07/01(火) 23:24:59.14ID:tLoVbtUq
既存フレワとの互換レイヤ的なAPIやOSSがガンガン出てくるんじゃないの?
0328デフォルトの名無しさん2014/07/01(火) 23:28:23.59ID:l9yjQtpJ
今でもシェア高く実用されてるプログラミング言語で最も歴史のあるのってやっぱCだよね?
やっぱCってすげーって思う。それだけ蓄積されてる資産も大きいし
0329デフォルトの名無しさん2014/07/02(水) 01:50:36.64ID:gjMteLus
それはすごいことに気付きましたね
0330デフォルトの名無しさん2014/07/02(水) 03:22:32.57ID:0X8S8x1q
>>301
あのソース見て一日で書けたのはSwiftじゃなくてSpriteKitのおかげじゃんって思った
0331デフォルトの名無しさん2014/07/02(水) 05:58:15.54ID:wD3UzLWL
Cが残っているからObjCもアップル関係では残っていくのでは。
たぶん、Swiftでのみしか利用できない様々なAPIとか、環境とかがどんどん増えて自然にそっちに多数の人は誘導されてくんじゃないかな。
0332デフォルトの名無しさん2014/07/02(水) 07:18:04.99ID:Q2HfdUEv
>>325
Swiftの場合そもそもプラットフォームが残ってるのかという問題がなあ
iPhoneやMacが健在だとしても、もっとサーバーサイド比率が大きくなって
クライアント側は簡易なスクリプトが僅かに残ってるだけになってそう
■ このスレッドは過去ログ倉庫に格納されています