WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
関連スレ
プログラミング言語Swift Part4
http://potato.2ch.net/test/read.cgi/mac/1484763495/
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1484217623/
Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part9
http://echo.2ch.net/test/read.cgi/tech/1476758084/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
Swift part10 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b3c-eq+O)
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0197デフォルトの名無しさん (スップ Sddf-8YZg)
2017/03/16(木) 13:04:00.85ID:fylU8k5ad >>196
内容が不確かな事を書かれても、不確かなのだから、何を書きたいのか解らないよ。
内容が不確かな事を書かれても、不確かなのだから、何を書きたいのか解らないよ。
198デフォルトの名無しさん (ササクッテロロ Sp97-aZn0)
2017/03/16(木) 14:04:38.09ID:B/XDf7Uvp じゃあ、日本語でおk で
199デフォルトの名無しさん (ワッチョイ 133c-QFag)
2017/03/16(木) 19:08:04.75ID:AMKOKIXm0200デフォルトの名無しさん (スププ Sddf-CJUg)
2017/03/17(金) 09:04:36.10ID:CVisIQCrd201デフォルトの名無しさん (ワッチョイ 133c-jYbd)
2017/03/17(金) 17:40:08.81ID:OpOSLOXG0 >>191のとかは不相応の程度を強める際の「なんて」と可換なニュアンスだろう
例 ハゲとか無理
例 ハゲとか無理
202デフォルトの名無しさん (スップ Sddf-KrGq)
2017/03/18(土) 01:27:16.65ID:6ina02vGd 日本語とかでおk
203デフォルトの名無しさん (ワッチョイ 53ba-nPNM)
2017/03/18(土) 02:26:45.14ID:6b/Lj0PJ0 必ずしも日本語じゃなくてOKってことね
よかった
よかった
204デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/18(土) 10:00:01.78ID:T7L2R5qRd とかに無理やり絡めると
省略あるいは不明確を示すとかはワイルドカードなんだと思う
とりあえず早い事perl like構文で使える正規表現をサポートしてほしい
Swiftのガッカリポイントの一つがまだ純正で正規表現が使えないというところだったから
省略あるいは不明確を示すとかはワイルドカードなんだと思う
とりあえず早い事perl like構文で使える正規表現をサポートしてほしい
Swiftのガッカリポイントの一つがまだ純正で正規表現が使えないというところだったから
205デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 10:52:24.54ID:h03j8lZL0 >>204
String#range(of:options:range:locale:)
options のところに .regularExpression を使えば、searchString で正規表現を利用した文字列(例えば “2ch+*" とか)が使えます。
String#range(of:options:range:locale:)
options のところに .regularExpression を使えば、searchString で正規表現を利用した文字列(例えば “2ch+*" とか)が使えます。
206デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 10:55:36.95ID:h03j8lZL0 typealias String.CompareOptions = NSString.CompareOptions
に注意ね。
に注意ね。
207デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/18(土) 11:50:49.28ID:T7L2R5qRd >>205
うん、しってるんだけどさぁ、これってNSStringにブリッジしてそっちのregex使ってるんじゃなかったっけ?
内部的にutf16になっちゃうので使いにくかった気がする
Swift2の頃の記憶だからSwift3では違うのかな?
Swiftではregex使わないようにしてたので、久しぶりに使ってみるかな?
それと、perlみたいにregexの結果をイテレートしてとか
そういう使い方したい
うん、しってるんだけどさぁ、これってNSStringにブリッジしてそっちのregex使ってるんじゃなかったっけ?
内部的にutf16になっちゃうので使いにくかった気がする
Swift2の頃の記憶だからSwift3では違うのかな?
Swiftではregex使わないようにしてたので、久しぶりに使ってみるかな?
それと、perlみたいにregexの結果をイテレートしてとか
そういう使い方したい
208デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 12:05:47.32ID:h03j8lZL0 import Foundation
let str: NSString = NSString(string: "Charlie Brown")
let a:NSRange = str.rangeOfString("Brown")
print(a.location)
print(a.length)
print(NSNotFound)
var ar: NSArray
do {
let reg: NSRegularExpression = try NSRegularExpression(pattern: "Brown",
options: NSRegularExpressionOptions.UseUnicodeWordBoundaries)
let str0 = str as String
let match: NSTextCheckingResult? = reg.firstMatchInString(str0,
options: NSMatchingOptions.ReportCompletion,
range: NSMakeRange(0, str.length))
print(match)
print(match!.range)
} catch {}
ちょいと前に保管したsnipet
let str: NSString = NSString(string: "Charlie Brown")
let a:NSRange = str.rangeOfString("Brown")
print(a.location)
print(a.length)
print(NSNotFound)
var ar: NSArray
do {
let reg: NSRegularExpression = try NSRegularExpression(pattern: "Brown",
options: NSRegularExpressionOptions.UseUnicodeWordBoundaries)
let str0 = str as String
let match: NSTextCheckingResult? = reg.firstMatchInString(str0,
options: NSMatchingOptions.ReportCompletion,
range: NSMakeRange(0, str.length))
print(match)
print(match!.range)
} catch {}
ちょいと前に保管したsnipet
209デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/18(土) 12:32:40.53ID:vKa31hq6d210デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
2017/03/18(土) 12:51:59.51ID:15tZ92u+p 少し前のDev MLで正規表現を言語仕様に組み込む話題があったような
あって困るものじゃないから入って欲しいね
あって困るものじゃないから入って欲しいね
211デフォルトの名無しさん (ワッチョイ bfc9-QFag)
2017/03/18(土) 12:54:59.80ID:XXqg+DqY0 議論はあったけど4には入らんと思う
> Addressing Regexps in Swift proper is out of scope for Swift 4, because
> there's simply no time to design and add the necessary language features.
> Addressing Regexps in Swift proper is out of scope for Swift 4, because
> there's simply no time to design and add the necessary language features.
212デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
2017/03/18(土) 14:54:04.70ID:CoM5VADKa Obj-Cもそうだけど、Swiftで正規表現使おうとするたびに、使い方をググってるわ
Perlだとすぐに書けるんだけどな
Perlだとすぐに書けるんだけどな
213デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
2017/03/18(土) 15:26:50.32ID:eyWXYpAT0 Swift 4が最終ステージに(白目)
https://www.infoq.com/jp/news/2017/03/swift-4-release-process
https://www.infoq.com/jp/news/2017/03/swift-4-release-process
214デフォルトの名無しさん (ワッチョイ bfc9-QFag)
2017/03/18(土) 15:51:30.64ID:XXqg+DqY0 日本語版InfoQはいつもネタが一ヶ月遅い
215デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 16:03:29.07ID:h03j8lZL0216デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
2017/03/18(土) 16:33:29.93ID:L7+Dd5xH0 >>215
"A" for Application
"A" for Application
217デフォルトの名無しさん (ワッチョイ 133c-jYbd)
2017/03/18(土) 17:10:49.00ID:61cBFpsD0 APIの派生
ソースレベル互換→バイナリレベル互換
ソースレベル互換→バイナリレベル互換
218デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
2017/03/18(土) 18:08:39.34ID:L7+Dd5xH0 なかなかAPIとABIとシステムコールとライブラリとフレームワークという言葉ををきちんと分かった上で使い分けるのが難しいんだよね
うちの若手とか
>>213の文脈だと
以前からあるライブラリとかと再コンパイルしなくてもリンク出来る
ってのがABIレベルでの互換性だろうね
うちの若手とか
>>213の文脈だと
以前からあるライブラリとかと再コンパイルしなくてもリンク出来る
ってのがABIレベルでの互換性だろうね
219デフォルトの名無しさん (ワッチョイ 133c-jYbd)
2017/03/18(土) 18:39:09.49ID:61cBFpsD0 システムコールは置いといていいでしょ
普通の開発者は直接的には使わないんだし
普通の開発者は直接的には使わないんだし
220デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
2017/03/18(土) 19:27:50.95ID:15tZ92u+p これと言ってることが微妙に違うのはInfoQの情報が古いのか、こっちの更新が遅れているのか
https://github.com/apple/swift-evolution/blob/master/README.md
はよABI安定させてlibSwift.soをiOS, macOSのシステムライブラリに保存してくれよなぁ
Swift 3でABI安定させるって理想だった頃はその構想だったのかもしれんが、ABI安定時期が不透明な今はもう諦めてるのかもしれん
https://github.com/apple/swift-evolution/blob/master/README.md
はよABI安定させてlibSwift.soをiOS, macOSのシステムライブラリに保存してくれよなぁ
Swift 3でABI安定させるって理想だった頃はその構想だったのかもしれんが、ABI安定時期が不透明な今はもう諦めてるのかもしれん
221デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
2017/03/18(土) 20:06:24.89ID:L7+Dd5xH0 >>219
いやさ、printf()で済むところをwrite()とか、put()とか使いたがる人が居たりするんだよ
ライブラリ関数とシステムコールの違いが分かってないのよねん
説教したくなるのをグッとこらえて、システムコール使うと遅くなるしメンテナンスが大変になるんだよと言ってもなかなか納得してくれない
いやさ、printf()で済むところをwrite()とか、put()とか使いたがる人が居たりするんだよ
ライブラリ関数とシステムコールの違いが分かってないのよねん
説教したくなるのをグッとこらえて、システムコール使うと遅くなるしメンテナンスが大変になるんだよと言ってもなかなか納得してくれない
222デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
2017/03/18(土) 20:38:16.85ID:GFFJDG7E0 Objective-Cでおk
以上。
おつでした。
以上。
おつでした。
223デフォルトの名無しさん (ワッチョイ 133c-jYbd)
2017/03/18(土) 20:39:58.56ID:61cBFpsD0 >>221
printf()もシステムコール使ってるよ
write() put()はシステムコールでなくラッパー関数でライブラリの一部
遅いのはシステムコールやチェック処理の回数差でバッファリングに起因する
printf()もシステムコール使ってるよ
write() put()はシステムコールでなくラッパー関数でライブラリの一部
遅いのはシステムコールやチェック処理の回数差でバッファリングに起因する
224デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 22:12:10.15ID:h03j8lZL0 >>221
システムコールって遅いの?逆なんじゃない?
つまり、ライブラリ関数より早い。
だって、ライブラリ関数はシステムコールのラッパー関数なんでしょ?
俺、arc4random_uniformとか、atofとか使いまくってるんですけど。
システムコールって遅いの?逆なんじゃない?
つまり、ライブラリ関数より早い。
だって、ライブラリ関数はシステムコールのラッパー関数なんでしょ?
俺、arc4random_uniformとか、atofとか使いまくってるんですけど。
225デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/18(土) 22:21:36.55ID:h03j8lZL0 >>223
write()ってのは、何を指しているのでしょう?
ライブラリの一部というのだから、
FoundationライブラリString#write(to:)の事でしょうか?
なら、printfよりも遅いですよね。
put()はなんの事でしょうか?
write()ってのは、何を指しているのでしょう?
ライブラリの一部というのだから、
FoundationライブラリString#write(to:)の事でしょうか?
なら、printfよりも遅いですよね。
put()はなんの事でしょうか?
226デフォルトの名無しさん (ワッチョイ 133c-tpgq)
2017/03/18(土) 23:27:27.95ID:61cBFpsD0227デフォルトの名無しさん (ワッチョイ 133c-tpgq)
2017/03/18(土) 23:30:26.08ID:61cBFpsD0 長々書いたけど swiftdoc.org やAppleの開発ドキュメントを
見てたら多分支障無いから気にしなくていい
見てたら多分支障無いから気にしなくていい
228デフォルトの名無しさん (ワッチョイ 035b-8e1h)
2017/03/19(日) 00:02:51.00ID:X9SioAAy0 >>226
なるホドォ
なるホドォ
229デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
2017/03/19(日) 00:11:01.40ID:WMiUvz/ea まさかこのスレにシステムコールのオーバーヘッドを気にするようなスピード狂がいたとは
230デフォルトの名無しさん (ワッチョイ cf7b-vzQh)
2017/03/19(日) 02:31:51.49ID:MM3vmS8Q0 1,000バイトの読み書きをするのに、1バイトずつ、
syscall * 1,000回すると遅いから、
ライブラリ内でバッファを確保(バッファリング)して、
1,000バイト貯まったタイミングで、syscallを1回だけ呼ぶと、速い
syscall * 1,000回すると遅いから、
ライブラリ内でバッファを確保(バッファリング)して、
1,000バイト貯まったタイミングで、syscallを1回だけ呼ぶと、速い
231デフォルトの名無しさん (ワッチョイ a33a-MtDv)
2017/03/19(日) 08:50:33.86ID:BHsM6TZ60 Dispatchの良いドキュメントってありますか?英語でもいいです。mpiのparallel forと同じようなことがしたいんですが、よくわからないので勉強したいので
232デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/19(日) 09:06:36.45ID:X9SioAAy0 >>231
Apple Gudes and Sample Codeで探せば!
Concurrency Programming Guide
とかヒットするけど。
Dispatch Queues, Dispatch SourceのSectionを参照。
Apple Gudes and Sample Codeで探せば!
Concurrency Programming Guide
とかヒットするけど。
Dispatch Queues, Dispatch SourceのSectionを参照。
233デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
2017/03/19(日) 09:46:45.92ID:QbTcqaOM0 システムコールのオーバーヘッドを気にするような人がSwiftのようなモダンな高級言語を
使うとは胸熱だな
速度をちゃんとコントロールしたいならObjective-Cじゃないと無理だろ...
使うとは胸熱だな
速度をちゃんとコントロールしたいならObjective-Cじゃないと無理だろ...
234デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
2017/03/19(日) 09:55:06.98ID:yi8Y0/pHp ObjCもlibobjc.soとかのランタイムを食わせないと動かないからダメだろ
Swiftよりはランタイム総容量は小さいけどObjCにもランタイム/ラッパー関数は必要なんだぜ?
システムコール呼び出すC関数呼ぶだけならSwiftでもできるから同じ土俵
Swiftよりはランタイム総容量は小さいけどObjCにもランタイム/ラッパー関数は必要なんだぜ?
システムコール呼び出すC関数呼ぶだけならSwiftでもできるから同じ土俵
235デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/19(日) 10:08:01.66ID:X9SioAAy0 system callの呼び出し履歴を表示する、dtrussってコマンド見つけた。
trussのdetails版らしいけど、trussってなんの略だ?
trussのdetails版らしいけど、trussってなんの略だ?
236デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/19(日) 10:10:39.12ID:X9SioAAy0 trussはmanのsection 1にあるはずなんだけど、documentが、ない。
なぜだ?
なぜだ?
237デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/19(日) 10:12:54.40ID:X9SioAAy0 truss = trace user signal and system callかな?
238デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
2017/03/19(日) 10:35:19.35ID:QbTcqaOM0239デフォルトの名無しさん (ワッチョイ 532b-v7qi)
2017/03/19(日) 16:43:04.63ID:BRUWii050 文法はwithout Cだけど、機能はwith CのSwiftすごい!!
Modern Objective-Cとかいう微妙に時代遅れなモダン言語(笑)とは違うな
Modern Objective-Cとかいう微妙に時代遅れなモダン言語(笑)とは違うな
240デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
2017/03/19(日) 17:04:16.85ID:QbTcqaOM0 Swift:「文法はwithout Cだけど、機能はwith CのSwiftすごい!!」
C:「それじゃあ結局のところSwiftは文法的な見た目をモダン()にしただけの言語ってことになっちまうじゃねぇか...」
Objective-C:「」
C:「それじゃあ結局のところSwiftは文法的な見た目をモダン()にしただけの言語ってことになっちまうじゃねぇか...」
Objective-C:「」
241デフォルトの名無しさん (JP 0H37-oEzJ)
2017/03/19(日) 17:13:15.07ID:zGHcaEctH juliaも忘れんとって
242デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
2017/03/20(月) 10:21:19.90ID:QillsqV80 つまりインラインでC言語が書けるObjective-Cが最強ってことだな。
SwiftもC言語埋め込めるようにすれば最強になれるで。
SwiftもC言語埋め込めるようにすれば最強になれるで。
243デフォルトの名無しさん (ワッチョイ bfd4-pP+o)
2017/03/20(月) 11:09:21.86ID:KXLYvEOG0 じゃあ、swiftにObjective-Cを埋め込めれば、真の最強じゃね?
244デフォルトの名無しさん (ワッチョイ 53ba-nPNM)
2017/03/20(月) 11:21:56.39ID:XcCZvFx20 至高の言語Swiftにひざまづけ愚民ども
245デフォルトの名無しさん (スップ Sddf-gIrG)
2017/03/20(月) 11:38:00.54ID:9CFcUwN1d without Cにする必要性について
246デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
2017/03/20(月) 11:42:15.65ID:0inF6e9Oa ソースが汚くなるから
王室に乞食を招き入れるわけにはいかんだろ
王室に乞食を招き入れるわけにはいかんだろ
247デフォルトの名無しさん (ワッチョイ 532b-v7qi)
2017/03/20(月) 11:42:37.51ID:IesYv4al0248デフォルトの名無しさん (スップ Sddf-gIrG)
2017/03/20(月) 11:42:54.31ID:9CFcUwN1d249デフォルトの名無しさん (スッップ Sddf-8YZg)
2017/03/20(月) 13:24:38.46ID:es7jdWbid 俺はObjective-Cで、かつ、省略しない方が好き。
Swiftは、なんか、いろいろ中途半端。
あと、省略可能なのは良いけれど、省略した時にどうなるかを、考えなさすぎ。
省略時の動作は、最終的にコンパイラの実装依存になる。
よってコンパイラが変われば、全く期待した動作にならない場合だってあるんだよ。
Swiftは、なんか、いろいろ中途半端。
あと、省略可能なのは良いけれど、省略した時にどうなるかを、考えなさすぎ。
省略時の動作は、最終的にコンパイラの実装依存になる。
よってコンパイラが変われば、全く期待した動作にならない場合だってあるんだよ。
250デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
2017/03/20(月) 13:32:26.07ID:LSRu7fHya Swiftに、省略時の曖昧な動作なんてあったっけ?
251デフォルトの名無しさん (エムゾネ FFdf-CJUg)
2017/03/20(月) 13:39:46.35ID:MLqjE/IfF >>242
Swiftでも直接Cの関数呼べるけどなんか問題ある?
このスレでも少し前にdup2()呼ぶサンプル書いてる人いたよ
個人的には
"C":{}とかで囲んで明示する必要がいるくらいには敷居を上げておいて欲しかった
今だと普通に呼べすぎて、swiftの関数なのかCの関数なのか見分けがつかない
Swiftでも直接Cの関数呼べるけどなんか問題ある?
このスレでも少し前にdup2()呼ぶサンプル書いてる人いたよ
個人的には
"C":{}とかで囲んで明示する必要がいるくらいには敷居を上げておいて欲しかった
今だと普通に呼べすぎて、swiftの関数なのかCの関数なのか見分けがつかない
252デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/20(月) 14:21:57.88ID:EvEkzDYt0253デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
2017/03/20(月) 14:48:23.91ID:G0HPo1ICp 見分けがつかないからなんだってんだよ
254デフォルトの名無しさん (ワッチョイ 23ce-gIrG)
2017/03/20(月) 15:03:51.36ID:OmtBFJ4n0 Swiftってザ・意識高い系って感じの言語だな
C言語の関数呼べるようにする必要ないくらいじゃないと言語とは言えんし
C言語の関数呼べるようにする必要ないくらいじゃないと言語とは言えんし
255デフォルトの名無しさん (ワッチョイ 133c-jYbd)
2017/03/20(月) 16:30:53.49ID:E6+3UOyx0 Bridging Headerもmodulemapも言語の機能じゃ無いよ
256デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
2017/03/20(月) 17:05:35.61ID:OmtBFJ4n0 without Cを謳っておいてCの関数を呼び出す
仕組みを用意してるのって滑稽だねってだけだよ
仕組みを用意してるのって滑稽だねってだけだよ
257デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
2017/03/20(月) 17:06:20.49ID:fEdZO0mtp258デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
2017/03/20(月) 17:13:00.01ID:G0HPo1ICp without C を謳うのは建前
でもcが使えちゃうのは本音
日本人ならわかるだろ?
でもcが使えちゃうのは本音
日本人ならわかるだろ?
259デフォルトの名無しさん (ワッチョイ ef78-CJUg)
2017/03/20(月) 17:31:37.32ID:qt6rA4Ca0 >>254
Javaだけど呼んだ?
Javaだけど呼んだ?
260デフォルトの名無しさん (スップ Sddf-gIrG)
2017/03/20(月) 17:36:09.37ID:5DkpfNMbd gccがgasコードを吐くように、swiftもObjCコードを吐けばいいんじゃね?w
261デフォルトの名無しさん (ワッチョイ 035b-QFag)
2017/03/20(月) 17:43:37.75ID:EvEkzDYt0262デフォルトの名無しさん (ワッチョイ 532b-v7qi)
2017/03/21(火) 07:36:52.81ID:9HZnXlk90 gccがgasコードを吐くように、clang/swiftcがLLVM IRコードを吐く件
>>251
Swiftコード中に書くC, ObjC関数は、.swiftヘッダファイルに同名で再定義されたswift関数だから見分けつかない
Swiftフレームワークライブラリの中に入ってる.swiftヘッダ見るとC,ObjC,Swiftの全ての関数が同列に並んでてこんなことしてるのかよwwwって笑う
>>251
Swiftコード中に書くC, ObjC関数は、.swiftヘッダファイルに同名で再定義されたswift関数だから見分けつかない
Swiftフレームワークライブラリの中に入ってる.swiftヘッダ見るとC,ObjC,Swiftの全ての関数が同列に並んでてこんなことしてるのかよwwwって笑う
263デフォルトの名無しさん (ワッチョイ 3f74-CJUg)
2017/03/21(火) 07:41:09.49ID:JY9T0YVB0 JavaのJNIだとCを呼び出すための敷居が高すぎるんだよな
でもswiftだと敷居が低すぎる
なんてワガママな俺
でもswiftだと敷居が低すぎる
なんてワガママな俺
264デフォルトの名無しさん (スップ Sddf-gIrG)
2017/03/21(火) 07:54:24.70ID:nRmSmnIrd C言語の関数呼び出さないとやりたいこと出来ないわけ?
265デフォルトの名無しさん (ワッチョイ 532b-v7qi)
2017/03/21(火) 08:21:33.84ID:9HZnXlk90 やりたいことを出来ないんじゃなくて、>>238のように出来ることを煽りたいんだと思う
それが煽りになってるのか分からんけど
最初は(システムコールを扱う時に)SwiftだとObjCほど性能でないwwwって煽ろうと思ったら同レベルで引くに引けなくなった感じがする
単純にSwiftランタイムのばかでかさに依る性能劣化を煽ってればその通りなのにね
ランタイムのロードとか関数マップテーブルからのAPI検索とか、システムコールだと差分ないけど一般利用時に性能悪いのは必然だもの
それが煽りになってるのか分からんけど
最初は(システムコールを扱う時に)SwiftだとObjCほど性能でないwwwって煽ろうと思ったら同レベルで引くに引けなくなった感じがする
単純にSwiftランタイムのばかでかさに依る性能劣化を煽ってればその通りなのにね
ランタイムのロードとか関数マップテーブルからのAPI検索とか、システムコールだと差分ないけど一般利用時に性能悪いのは必然だもの
266デフォルトの名無しさん (エムゾネ FFdf-gIrG)
2017/03/21(火) 09:14:33.95ID:XLp7uPXRF Swiftでないとダメな5つの理由
とか誰か書いてよ
とか誰か書いてよ
267デフォルトの名無しさん (スップ Sddf-nPNM)
2017/03/21(火) 09:21:56.02ID:hTMAmD++d 1.学習コスト
2.生産性
3.スタイリッシュ性
4.流行
5.信仰心
2.生産性
3.スタイリッシュ性
4.流行
5.信仰心
268デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/21(火) 10:36:30.52ID:H55j2XV7d >>264
さあ?
あなたの作るプログラムで必要であれば必要だし
必要でないなら必要ない
うちの場合OpenCV使うのにC++ブリッジ使ってる
あと、無限ループで延々九九と答え吐き出すコンソールアプリ作っておいて
Ctrl+Cを押されたら「知るかボケ!忙しいんじゃ」と吐き出して、そのまま無限ループを続けるプログラムを作りたかったら
俺はSwiftだけで書く方法を知らないのでCの関数(と言うよりはPOSIX API)を呼び出す
どうして全部Swiftでできるようにしないのか?と言う問いに対しては
Javaプロジェクトが一つの答えだと思う
OSのAPI層までを言語と標準ライブラリに取り込もうとする意欲的な試みは
20年以上かけてある程度成功したが、柔軟性を失わせる副作用と言語の肥大化をもたらした
そしてJavaからCを呼び出す仕組みであるJNIは未だに必要とされている
全部をプログラミング言語に取り込むのではなく既存の仕組みとうまく連携するのがバランスの良いとの判断なんじゃないかな?
さあ?
あなたの作るプログラムで必要であれば必要だし
必要でないなら必要ない
うちの場合OpenCV使うのにC++ブリッジ使ってる
あと、無限ループで延々九九と答え吐き出すコンソールアプリ作っておいて
Ctrl+Cを押されたら「知るかボケ!忙しいんじゃ」と吐き出して、そのまま無限ループを続けるプログラムを作りたかったら
俺はSwiftだけで書く方法を知らないのでCの関数(と言うよりはPOSIX API)を呼び出す
どうして全部Swiftでできるようにしないのか?と言う問いに対しては
Javaプロジェクトが一つの答えだと思う
OSのAPI層までを言語と標準ライブラリに取り込もうとする意欲的な試みは
20年以上かけてある程度成功したが、柔軟性を失わせる副作用と言語の肥大化をもたらした
そしてJavaからCを呼び出す仕組みであるJNIは未だに必要とされている
全部をプログラミング言語に取り込むのではなく既存の仕組みとうまく連携するのがバランスの良いとの判断なんじゃないかな?
269デフォルトの名無しさん (スップ Sddf-nPNM)
2017/03/21(火) 10:46:19.71ID:MDnLMEwZd swiftは初めからjavaのようなマルチプラットフォームを目指しているわけでもあるまい
270デフォルトの名無しさん (スプッッ Sddf-pP+o)
2017/03/21(火) 11:08:08.11ID:CAHXK6Wdd Floatを引数にとる関数で、その引数の場所で(1+n)とかやると、
Binary operator '+' cannot be applied to two 'Int' operands
ってエラーが出て嵌った。
http://stackoverflow.com/questions/40557214/swift-operator-throwing-error-on-two-ints
エラーメッセージが不親切過ぎる。
Binary operator '+' cannot be applied to two 'Int' operands
ってエラーが出て嵌った。
http://stackoverflow.com/questions/40557214/swift-operator-throwing-error-on-two-ints
エラーメッセージが不親切過ぎる。
271デフォルトの名無しさん (スプッッ Sddf-pP+o)
2017/03/21(火) 11:11:47.89ID:CAHXK6Wdd 上のリンクでは
Binary operator '*' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
ってエラーメッセージの方が良いと書いてるけど
Binary operator '* -> CGFloat' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
だと、まだ分かりやすかったと思う。
Binary operator '*' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
ってエラーメッセージの方が良いと書いてるけど
Binary operator '* -> CGFloat' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
だと、まだ分かりやすかったと思う。
272デフォルトの名無しさん (ブーイモ MM77-nFTW)
2017/03/21(火) 11:20:38.39ID:g+RWoDDLM >>246
王とはCのことか
王とはCのことか
273デフォルトの名無しさん (スッップ Sddf-8YZg)
2017/03/21(火) 12:12:24.85ID:PXKTLJIMd >>266
「Swiftでないとダメな5つの理由とか」の「とか」は、「Swiftでないとダメな5つの理由」以外の何?
「Swiftでないとダメな5つの理由とか」の「とか」は、「Swiftでないとダメな5つの理由」以外の何?
274デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
2017/03/21(火) 12:13:48.48ID:1Za/GAk+p Objective-Cこそ王族の言語(信仰心
>>266
ダメな理由なら3つほど
1. 小さなランタイム(笑)
2. 頻繁に破壊される言語仕様
3. 不完全なエコシステム(ビルドツール)
これらはメリット/デメリットが双方あるものじゃなくデメリットしかないから煽ってもおk
この辺はswiftユーザはもう諦観して苦笑しながら使ってるデメリットだけども
>>266
ダメな理由なら3つほど
1. 小さなランタイム(笑)
2. 頻繁に破壊される言語仕様
3. 不完全なエコシステム(ビルドツール)
これらはメリット/デメリットが双方あるものじゃなくデメリットしかないから煽ってもおk
この辺はswiftユーザはもう諦観して苦笑しながら使ってるデメリットだけども
275デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
2017/03/21(火) 12:16:06.38ID:1Za/GAk+p >>273
「swiftがダメな3つの理由」とか
「swiftがダメな3つの理由」とか
276デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/21(火) 12:19:09.63ID:H55j2XV7d277デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/21(火) 12:37:34.87ID:H55j2XV7d >>269
うん、
マルチプラットホーム対応を言語レベルでは行わない選択をした=実行環境ネイティヴ(多くの場合はCで提供されている)とのインターフェースが必要
だと思ってる
without CなのにCが必要wwwって煽ってる人は
言語仕様とネイティヴインターフェースを混同しているおバカな自分をアピールしたいんしゃないかな?
うん、
マルチプラットホーム対応を言語レベルでは行わない選択をした=実行環境ネイティヴ(多くの場合はCで提供されている)とのインターフェースが必要
だと思ってる
without CなのにCが必要wwwって煽ってる人は
言語仕様とネイティヴインターフェースを混同しているおバカな自分をアピールしたいんしゃないかな?
278デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
2017/03/21(火) 12:39:40.14ID:huV0U58I0279デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
2017/03/21(火) 12:41:05.23ID:huV0U58I0280デフォルトの名無しさん (スップ Sddf-nPNM)
2017/03/21(火) 12:45:05.87ID:MDnLMEwZd >>278
動く、使える=swiftがswiftプラットフォームとしてマルチを目指しているではない
動く、使える=swiftがswiftプラットフォームとしてマルチを目指しているではない
281デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
2017/03/21(火) 12:52:34.12ID:1Za/GAk+p282デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
2017/03/21(火) 12:59:01.94ID:I3nNj3Lbp オプショナル型ちょ〜便利
型類推もちょ〜便利
文末にセミコロン不要なんてサイコー
letとvarの使い分けがありがたすぎ
switch文が強力すぎて鼻血でたー
enum構文がおいしすぎてよだれ出るぅ
Playgroundが便利すぎぃ
他にもまだまだたくさんよりどりみどりぃ
型類推もちょ〜便利
文末にセミコロン不要なんてサイコー
letとvarの使い分けがありがたすぎ
switch文が強力すぎて鼻血でたー
enum構文がおいしすぎてよだれ出るぅ
Playgroundが便利すぎぃ
他にもまだまだたくさんよりどりみどりぃ
283デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
2017/03/21(火) 13:52:46.38ID:huV0U58I0284デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/21(火) 14:19:23.23ID:H55j2XV7d >>278
あ、ごめん、スレチかと思って説明しなかったんだけど、
Javaはバイナリレベルでのマルチプラットホームを旗印にしてたんだ
"Write Once Run Anywhere"をスローガンにして
つまり一度コンパイルして作成したアプリとかは、macでも、winでも、unixでも、携帯でも、再コンパイルすら必要なく同じ動作するよ!って
そのためにAPIやABIなど今までOSの役割だったところをJavaという仕組みの中に取り込んでいった
もちろん、そんなにうまくいくはずもなく"Write Once Debug Everywhere"と揶揄されることになった
それに対して伝統的なUnix系の考え方は、再コンパイルして動けばオッケー
動作が違う?OSとかの環境が違うんだから当然だよね、ソースでifdefしよう!
って感じのマルチプラットホーム
これですら、PosixやSUSとかの活動によるAPIや実行環境レベルでの統一化や
gnu automakeなどによる実行環境とビルド環境の調査とそれに対応したビルド
などでかろうじて維持されているレベル
C言語とかで書いたプログラムがmacでも、winでも、Linuxでも動くというのは
言語がマルチプラットホーム対応しているわけではなく、後者の意味でいろんなプラットホームで動くようにプログラムやビルドシステムを書いているから
Swiftも今の所後者に属してると思うよ
あ、ごめん、スレチかと思って説明しなかったんだけど、
Javaはバイナリレベルでのマルチプラットホームを旗印にしてたんだ
"Write Once Run Anywhere"をスローガンにして
つまり一度コンパイルして作成したアプリとかは、macでも、winでも、unixでも、携帯でも、再コンパイルすら必要なく同じ動作するよ!って
そのためにAPIやABIなど今までOSの役割だったところをJavaという仕組みの中に取り込んでいった
もちろん、そんなにうまくいくはずもなく"Write Once Debug Everywhere"と揶揄されることになった
それに対して伝統的なUnix系の考え方は、再コンパイルして動けばオッケー
動作が違う?OSとかの環境が違うんだから当然だよね、ソースでifdefしよう!
って感じのマルチプラットホーム
これですら、PosixやSUSとかの活動によるAPIや実行環境レベルでの統一化や
gnu automakeなどによる実行環境とビルド環境の調査とそれに対応したビルド
などでかろうじて維持されているレベル
C言語とかで書いたプログラムがmacでも、winでも、Linuxでも動くというのは
言語がマルチプラットホーム対応しているわけではなく、後者の意味でいろんなプラットホームで動くようにプログラムやビルドシステムを書いているから
Swiftも今の所後者に属してると思うよ
285デフォルトの名無しさん (ワッチョイ 032b-v7qi)
2017/03/21(火) 14:49:45.32ID:LQyko2ZP0 >>283
お前それプリミティブ型のintとfloatでも同じ事言えんの?
基本的な数値型をプリミティブ型として一般的に提供しないSwift
プリミティブ型ではなく構造体型で全数値型を提供する意義は分かるが性能劣化してるんだよなぁ
お前それプリミティブ型のintとfloatでも同じ事言えんの?
基本的な数値型をプリミティブ型として一般的に提供しないSwift
プリミティブ型ではなく構造体型で全数値型を提供する意義は分かるが性能劣化してるんだよなぁ
286デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
2017/03/21(火) 14:49:46.32ID:huV0U58I0287デフォルトの名無しさん (ブーイモ MMdf-S3kY)
2017/03/21(火) 15:22:22.74ID:vtLrbY1LM なんでここCのシンタックスを外したことをwithout Cって言ってるのに
without CつったらCの機能が呼べないようにならないとおかしいだろ?
とかとんちんかんなこと言う奴しかいないのん?
ラトナーが草葉の陰から泣いてるぞ
without CつったらCの機能が呼べないようにならないとおかしいだろ?
とかとんちんかんなこと言う奴しかいないのん?
ラトナーが草葉の陰から泣いてるぞ
288デフォルトの名無しさん (ササクッテロラ Sp97-v7qi)
2017/03/21(火) 15:40:06.05ID:DXgiF4dPp 日本語でおk
289デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
2017/03/21(火) 15:50:06.39ID:huV0U58I0 >>285
Swiftの高速演算に対する思想。高速演算必要ならClangで書いてね。Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。例:RxSwift/RxCocoa/Runtime
高速演算したけりゃ、その部分をClangで書いてSwiftから呼べば良い。
Swiftの高速演算に対する思想。高速演算必要ならClangで書いてね。Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。例:RxSwift/RxCocoa/Runtime
高速演算したけりゃ、その部分をClangで書いてSwiftから呼べば良い。
290デフォルトの名無しさん (ワッチョイ bff3-QFag)
2017/03/21(火) 16:06:44.92ID:p7k0dZ7/0 >>285
@_transparent付きで中でビルトインの変換呼んでるだけだからCやC++と比べても性能劣化なんて皆無だと思う
実際にIR見ても別に無駄にジャンプしたりしてない
素でsitofpとかしてるだけ
ナローイング変換はprecondition入るけどそれも最適化されるし
@_transparent付きで中でビルトインの変換呼んでるだけだからCやC++と比べても性能劣化なんて皆無だと思う
実際にIR見ても別に無駄にジャンプしたりしてない
素でsitofpとかしてるだけ
ナローイング変換はprecondition入るけどそれも最適化されるし
291デフォルトの名無しさん (スップ Sddf-nPNM)
2017/03/21(火) 16:27:53.04ID:MDnLMEwZd Clangっていうとコンパイラしか思い浮かばないんだが
292デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
2017/03/21(火) 17:51:22.44ID:pxhdVPhBp > Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。
Swift Package Managerがクソな完成度でSwift Framework LibraryにC言語のソースはembed inできないんだけど...
まぁそもそもアレはFramework Libraryを生成するコマンドとしても成り立ってないから論外なのかもしれんが
Swift公式として真っ当な技法を提供してなくて、バッドノウハウとしてRxSwiftやRxCocoaがやってることをやれってことなんだろうな(ウボァ
Swift Package Managerがクソな完成度でSwift Framework LibraryにC言語のソースはembed inできないんだけど...
まぁそもそもアレはFramework Libraryを生成するコマンドとしても成り立ってないから論外なのかもしれんが
Swift公式として真っ当な技法を提供してなくて、バッドノウハウとしてRxSwiftやRxCocoaがやってることをやれってことなんだろうな(ウボァ
293デフォルトの名無しさん (スッップ Sddf-8YZg)
2017/03/21(火) 18:48:58.62ID:PXKTLJIMd >>284
「一度コンパイルして作成したアプリとか」の「とか」は、「一度コンパイルして作成したアプリ」以外の何?
> macでも、winでも、unixでも、携帯でも
macはハードウェア
win、unixは、オペレーティングシステム
携帯は動詞
「C言語とか」の「とか」は、「C言語」以外の何?
「一度コンパイルして作成したアプリとか」の「とか」は、「一度コンパイルして作成したアプリ」以外の何?
> macでも、winでも、unixでも、携帯でも
macはハードウェア
win、unixは、オペレーティングシステム
携帯は動詞
「C言語とか」の「とか」は、「C言語」以外の何?
294デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
2017/03/21(火) 19:25:34.11ID:I3nNj3Lbp 一度コンパイルして作成したアプリとか
一度コンパイルして作成したアプレットとか
一度コンパイルして作成したサーブレットとか
C言語とか
C++とか
Pascalとか
一度コンパイルして作成したアプレットとか
一度コンパイルして作成したサーブレットとか
C言語とか
C++とか
Pascalとか
295デフォルトの名無しさん (ワッチョイ 133c-QFag)
2017/03/21(火) 19:42:18.10ID:jxZBoDQT0296デフォルトの名無しさん (スッップ Sddf-CJUg)
2017/03/21(火) 19:59:01.53ID:H55j2XV7d >>293
この場合のとかの用法は明確に定義しないことを明示するための、、、、、、
とかではなくて、
説明しよう!(富山敬風)
ターゲットが特定のキーワードに高確率で定型のレスをつけることを利用して
ターゲットのレスを意図的に引き出そうとする
ドメイン特化キーワード、いわゆる釣りワードである
(↑これが言いたかっただけなのだ)
釣りとわかって付き合ってくれてありがとう
この場合のとかの用法は明確に定義しないことを明示するための、、、、、、
とかではなくて、
説明しよう!(富山敬風)
ターゲットが特定のキーワードに高確率で定型のレスをつけることを利用して
ターゲットのレスを意図的に引き出そうとする
ドメイン特化キーワード、いわゆる釣りワードである
(↑これが言いたかっただけなのだ)
釣りとわかって付き合ってくれてありがとう
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★3 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★2 [冬月記者★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★2 [蚤の市★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ ★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★5 [Hitzeschleier★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 千晴とセックスしたことあるけど質問ある?
- 竹中平蔵「日米が長年守り続けてき台湾有事に関する曖昧戦略の知恵を一瞬にして無にさせた岡田の責任は非常に重い」 [271912485]
- 女の悲鳴聞くと嬉しい気持ちになる
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 【画像】海外の寿司パーティー、レベチwwwwwwwwww [834922174]
- 【高市悲報】トケドロ高橋「あれまw日本は食料品だけ上がっていてインフレとは言えない😤円安上等!」 [359965264]
