調べれば調べるほど、Obj-Cの動的さとC親和性の高さがセキュリティ上邪魔なので無理矢理静的型付けして動的さのないC言語ともブリッジかまさないと呼び出せない言語に乗り換えようとしているんじゃないのかなんて穿った見方をしてしまうんですが(´・_・`)
調べれば調べるほど、Obj-Cの動的さとC親和性の高さがセキュリティ上邪魔なので無理矢理静的型付けして動的さのないC言語ともブリッジかまさないと呼び出せない言語に乗り換えようとしているんじゃないのかなんて穿った見方をしてしまうんですが(´・_・`)
数日間iOS8/Xcode6/Swiftな環境で色々試してみて、Swiftを使っていて思ったよりがっかりした点が多かったのでちょっとまとめてみようと思います。 動的な処理がSwiftだけでは一切できない [NSObject performSelector:]の類と、NSInvocationがSwiftからは一切呼び出せません。使おうとすると怒られます。objc/runtime.hは試していませんが、同様に直接Swift経由では呼び出せず間にObjective-Cをかます必要があるのではないかと思われます。 @optionalなprotocolが限定的にしか使用できない 具体的には@objc属性を付けないと使えません。しかしながらこのような後方互換性のためだけに存在する属性をいつまでもAppleがサポートするかは疑問が残るというのと、もう一つ以下の様な問題があります。 @objc属性のついた
そもそもAppleはObjective-Cを駆逐する気などない いまのところは Swiftは独立したランタイムを持たない Swiftは初めからObjective-Cのランタイムで動作すると発表されている Objective-Cのランタイムは、CとC++で書かれている つまりSwiftはObjective-Cを通してCとC++に依存している よってSwiftは(iOS/OSXのパラダイムシフトが起こらない限り)これらの言語を駆逐することはできない AppleはランタイムをSwiftで書き直す準備をしている? そんな感じがしないでもない ベストプラクティスは変わらない そもそもObjective-Cの利点の一つに、C/C++を自由に統合できるというのがあった SwiftもまたCの関数を自由に呼び出せるので、速度的に問題のある箇所や、ライブラリといった資産を活用する場合はC(もしくはObject
さきほどWWDCにて新言語 Swiftが発表されました。 The Swift Programming Language (iBooks Store) で言語ガイドが公開されていたのでザッと目を通してみました。 Objecitve-Cと比較してSwiftがイケてそうなところをパッと気になったところだけ書いていってみます。 変数/定数の型推論がある Objective-Cのように明示的に型を書かなくても型を推論してくれます。 推論で問題ないケースも多いと思うのでタイプ数がかなり減らせそうですね。 ( 変数を宣言する際はvar、定数を宣言する際はletで宣言します。 ) // 型推論 var name = "Shinji Ikari" // 変数の型は推論によりString型になる var age = 14 // 変数の型は推論によりInteger型になる let height = 141.5
shi3zです。 昨夜はWWDCのKeynoteで眠れない人もいたみたいだけど、新しいiPhoneも新しいMacBookも出なくてちょっと肩すかしだったかな? とはいえ、MacOS 10.10の発表はAppleとしてはかなり大きな発表だったし、それ以上に全く新しいプログラミング言語環境Swiftはドギモを抜く、と呼ぶのに相応しい内容だったんじゃないかと思う。 個人的にはWebGLがついに公式サポートされたことは非常に大きい。 これでついにgl.enchant.jsが残念な子じゃなくなる! まあ詳しい内容はエンガジェかなんかで 特に目を引くのはSwiftで、長年続いたObjective-Cにさようなら、こんにちはSwift、という話なんだけど、これは驚天動地の発表なんじゃないかと思う。 というのは、今回、WWDC(世界開発者会議)に来ているのは当然、全てがObjective-Cの開発者たちな
Objective-Cを愛してください Objective-CはCの拡張です。 Cでできることはすべてできるし、Cでできないこと( 恐らく計算機では不可能なこと )はすべてできません。 Objective-CはJavaよりも年上です。 「Objective-CってJavaに似てるね」と言われると、Objective-Cを愛するものとしては少し悲しい気分になります。 歴史的にはJavaがObjective-Cの影響を受けています。 メッセージングに使うブラケット[]はObjective-Cのチャームポイントです。 Objective-CがSmalltalkの子であると証明するための、とってもチャーミングな形質です。間違っても「キモい」なんて言わないであげてください。 関数とメソッドを見た目で区別できるという利点もあります。 メソッド名が長いのはメソッド自身がドキュメントの役割を果たしているか
TLで見かけたこのスライド,いいところをついていてちょっとObjective-Cをやったことのある人が,もっと興味を持つきっかけを作るにはすごく良いスライドだと思った. Objective-C が好きになる Tips & Hack from Taketo Sano けど,内容を見た感じ初学者を対象としているわりに,ここで取り上げられているTipsやHackの負の側面に対するフォローが無い. 一応「やるかやらないかはあなた次第」とあるが,なぜというところが抜けているので初学者には判断できないと思う. 特に紹介されている例はあまり行儀の良い方針では無いように感じたので,これを初学者がそっくりそのまま真似をするのはあまりよろしくない. 反響も結構あるようで気になったので,勝手にこのTipsやHackの負の側面(行儀の良くない面)について補足をしておく. カテゴリメソッドの命名について このスライ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く