2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

Swift part9

1 :デフォルトの名無しさん(ワッチョイ 8b3c-/6Y/):2016/10/18(火) 11:34:44.16 ID:oLo879ze0.net
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/

[SDK]iPhoneアプリ開発初心者質問箱47[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1470902093/

Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part8
http://echo.2ch.net/test/read.cgi/tech/1463149806/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

2 :終了 (ワッチョイ 67c9-3ZZL):2016/10/18(火) 16:31:42.47 ID:q3gbqcrC0.net
糞スレストッパー

3 :デフォルトの名無しさん (ワッチョイ 57c9-x3Zw):2016/10/18(火) 16:36:48.89 ID:5S2LdbWL0.net
下痢にはストッパ

4 :デフォルトの名無しさん (スップ Sdcf-Oa01):2016/10/18(火) 19:24:46.57 ID:nd0z2LLHd.net
>>1
おつんちん

5 :デフォルトの名無しさん (ワッチョイ 213c-A7+C):2016/10/21(金) 11:44:19.03 ID:09Dpangg0.net
XCTestで滅多に使わない表記だからといって

open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, handler: XCTest.XCKeyValueObservingExpectationHandler? = nil) -> XCTestExpectation
↑の、handlerを略した書き方すると

open func keyValueObservingExpectation(for objectToObserve: Any, keyPath: String, expectedValue: Any?) -> XCTestExpectation
と区別つかねぇとかエラー吐かないでくださいよ

6 :デフォルトの名無しさん (ワッチョイ 17e6-DrBp):2016/10/23(日) 09:48:39.00 ID:M03zTDWo0.net
Javaの商用アプリケーションサーバでトップシェアのIBM
Linuxが商用利用で成功したのも2003年頃にIBMがLinux注力したから

AppleとIBMが協力関係になってSwift推し
Swiftの未来はどうなるんだろうな

7 :デフォルトの名無しさん (スプッッ Sd39-YT5Q):2016/10/23(日) 11:09:52.31 ID:l/iDXb3dd.net
大成功待った無し

8 :デフォルトの名無しさん (ワッチョイ fd62-A7+C):2016/10/23(日) 14:59:20.34 ID:254NT19n0.net
政治的にゴリ押されて出来上がった言語ってSwift以外だと例えば何があるっけ?

9 :デフォルトの名無しさん (ワッチョイ e0c9-A7+C):2016/10/23(日) 15:11:37.30 ID:imvMl3ez0.net
流行った言語は全部ゴリ押しみたいなもんだろ

10 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/23(日) 15:51:47.79 ID:kiR0Dkrqp.net
type scriptやdartとか

objcもApple OSでは、これを使わないと何も出来ない的な意味でゴッリゴリ
とか言うと発狂する子が沢山来そう

11 :デフォルトの名無しさん (スッップ Sdb8-YT5Q):2016/10/23(日) 16:07:03.29 ID:3d+f6jv2d.net
>>10
Objective-CはAppleが採用するずっとずっと前からあったけど…。

12 :デフォルトの名無しさん (JP 0He5-GPOt):2016/10/23(日) 16:07:53.11 ID:CGzeXgZhH.net
NeXTより前からあるね

13 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/23(日) 16:26:10.41 ID:kiR0Dkrqp.net
発狂早かったな
2.0だの言わないといけないのかな

今のモダンObjCと最初期PbjCは別モノだろう
Swift betaとSwift3くらいに言語仕様も実装手法も違う

14 :デフォルトの名無しさん (JP 0He5-GPOt):2016/10/23(日) 16:39:25.15 ID:CGzeXgZhH.net
後出しの割にはイケてない

15 :デフォルトの名無しさん (ワッチョイ e0c9-A7+C):2016/10/23(日) 16:56:22.96 ID:imvMl3ez0.net
GCとか迷走もあったしなぁ

16 :デフォルトの名無しさん (スッップ Sdb8-YT5Q):2016/10/23(日) 16:59:07.26 ID:PL/5Is43d.net
最初に発狂とか必死とか言い出したやつが発狂じみて必死になってくる法則

17 :デフォルトの名無しさん (ワッチョイ 4066-vevC):2016/10/23(日) 17:34:51.29 ID:pqyteWXL0.net
C++じゃなくてObjective-Cの方が普及してたらだいぶ違ったろうになぁ

18 :デフォルトの名無しさん (ワッチョイ fa13-GPOt):2016/10/24(月) 10:43:06.10 ID:9xygNeDa0.net
なぜC++の方が普及したのですか?

19 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/24(月) 11:24:05.58 ID:zqG7Aoccp.net
取り合えず、メッセージ式文法が好まれなかった
他言語も追従しないし、当のアポーもメンバ変数に対してはメッセージ式を殺しにかかってるし

じゃあ、Swiftが流行るのかというと別だけど

20 :デフォルトの名無しさん (ワッチョイ fa13-GPOt):2016/10/24(月) 11:43:48.71 ID:9xygNeDa0.net
メッセージ式ってメソッド名が動的文字列のものも書けたっけ

21 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/24(月) 12:08:54.10 ID:zqG7Aoccp.net
ObjCスレへどうぞ

22 :デフォルトの名無しさん (スプッッ Sdc8-YT5Q):2016/10/24(月) 12:27:56.48 ID:UH3y4ryLd.net
カッコが連続するとただただ見辛い

23 :デフォルトの名無しさん (スフッ Sdb8-vevC):2016/10/24(月) 13:01:34.11 ID:IFhOb1KRd.net
>>18
悪貨は良貨を駆逐する

24 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/24(月) 13:20:21.03 ID:fQljBZVUp.net
SwiftがObjective-Cに駆逐されようとしている
Swiftは良貨だった、、、?

25 :デフォルトの名無しさん (JP 0Hc8-AIfR):2016/10/24(月) 16:46:18.16 ID:YkwUZi7rH.net
ジョブズって、プログラムわからないだろ?
なんで、Swift良い言語って言ってるの?

26 :デフォルトの名無しさん (ワッチョイ 213c-vtRd):2016/10/24(月) 17:06:50.03 ID:i06wcCBv0.net
霊界通信が実装されたと聞いて

27 :デフォルトの名無しさん (ワッチョイ 9dc9-GPOt):2016/10/24(月) 19:47:10.53 ID:yvoyC+Qj0.net
ack無しの無手順ぷろとこー

28 :デフォルトの名無しさん (スッップ Sdb8-YT5Q):2016/10/24(月) 21:42:17.30 ID:PZcG170Zd.net
>>25
ジョブズはたぶんSwiftを知らない

29 :デフォルトの名無しさん (ワッチョイ fd62-A7+C):2016/10/25(火) 07:23:49.15 ID:TTNTJAzx0.net
>>24
SwiftとObjC逆じゃね?

30 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/25(火) 09:21:08.38 ID:ZmUS+kLtp.net
>>25はSwiftとObjCを間違えてね?
ジョブズ存命時の言語だよな、ObjCって

31 :デフォルトの名無しさん (ワッチョイ e0c9-A7+C):2016/10/25(火) 10:12:28.38 ID:HyB8mBs70.net
ジョブズの霊がラットナーに憑依して作ったのがSwift

32 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/25(火) 10:39:33.81 ID:ZmUS+kLtp.net
ジョブズが心霊療法?にはまってた頃に作り始められた言語だし可能性はあるか
生きてる時は幽体離脱で、死後は霊になってSwiftを推すとは流石ジョブズ
しかし、信者が乗らず悪貨のObjCが当然優勢ときたもんだ、くやしいのうwww

ところで、誰かSwift Package Managerって誰か使ってる?
3 stable releaseでもまだ開発中っぽかったが 、どれくらい不便か知りたい

33 :デフォルトの名無しさん (ササクッテロ Sp89-vevC):2016/10/25(火) 18:39:13.09 ID:v9gzKB+7p.net
>>31
ラトナーはジョブズから作られた天然のAIだよ

34 :デフォルトの名無しさん (ワッチョイ 213c-A7+C):2016/10/26(水) 00:56:29.52 ID:5b/0SgTG0.net
関数ラベルとかに予約語を使うのを禁止すべきかどうかについてどう思う?
他の言語との一貫性を考えると禁止した方がいいと思うんだけど
うちの会社ではコーディング規約で禁止してるけど
若手エンジニアが結構反発してるんだよね

35 :デフォルトの名無しさん (ワッチョイ fd62-YT5Q):2016/10/26(水) 02:40:12.32 ID:NtHQYyX30.net
関数ラベルとの相性が絶望的にクソなシンタックスをまずどうにかしろ
話はそれからだ

36 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/26(水) 05:29:30.35 ID:BNroq1d2p.net
わざわざ可能なように頑張って作った(直した)んだから素直に使えば?
3だかで予約後と被るキーワードも''で括らないで良いみたいな修正入った気がする

キーワードの順不同廃止みたいに廃止プロポーサルは出てないよな

37 :デフォルトの名無しさん (スッップ Sdb8-YT5Q):2016/10/26(水) 08:57:46.67 ID:LVTypZImd.net
>>34
「関数ラベルとか」の「とか」は、「関数ラベル」以外の何?

38 :デフォルトの名無しさん (ワッチョイ 213c-vtRd):2016/10/26(水) 09:02:55.24 ID:EtQ2cepM0.net
反発理由が知りたいな
禁止でええやろって思うから

39 :デフォルトの名無しさん (ササクッテロ Sp89-YT5Q):2016/10/26(水) 09:19:43.05 ID:BNroq1d2p.net
問題出ないし、分かりやすければ予約語と被って問題なくね?
予約語と被って困ってたのは元はコンパイラの実装上の面倒だろう
その古い文化に慣れて、新しい文化に馴染めないのも分からいでもないが、そりゃ老がいだ

あ、他言語との歩調合わせはどうでもいい
Javaの文法でObjC書いたり 、ObjCの文法でJava書くクソッタレ信者は死ねと思ってる
他に禁止したい理由はある?

40 :デフォルトの名無しさん (ワッチョイ 213c-vtRd):2016/10/26(水) 09:42:23.99 ID:EtQ2cepM0.net
多言語間の移植ちょいちょいやるから識別子にキーワードめいたものは使ってない
例えばJavaで変数名や引数名にref, params, inも使わない
一方禁止して困る理由は特に無いってだけ

禁止するにせよ、しないにせよ重大な理由は無いだろう
多少の面倒のトレードオフでどっちか選ぶだけ

他のプロジェクト入る場合はそれに合わせるから
わざわざ反発する程の何かがあるん?という疑問

41 :デフォルトの名無しさん (ササクッテロ Sp89-bS7b):2016/10/26(水) 16:25:11.94 ID:NhxkI5gep.net
// ハゲのためにワックス買ってくる関数があるとする
// 少し前のSwift
func buyWax(const: Int, forHage hage: String) {
}
buyWax(const:3_000, forHage:

42 :デフォルトの名無しさん (スプッッ Sdc8-CGyA):2016/10/26(水) 16:26:08.97 ID:4gTCvaIpd.net
>>40
なら、他言語の予約語を、変数名とかに使うのも禁止してるの?
使用禁止語リストを保守するのも、理由付けするのも大変そうだけどね

43 :デフォルトの名無しさん (ササクッテロ Sp89-bS7b):2016/10/26(水) 16:28:33.43 ID:NhxkI5gep.net
コードが途中で切れたので再送

ハゲのためにワックス買ってくる関数のサンプルコード
ttp://swiftlang.ng.bluemix.net/#/repl/58105ac610d66e1185d3d203

リファレンス
ttps://swift.org/documentation/api-design-guidelines/#argument-labels

問題も面倒もない出来ることをせず、無駄に冗長なラベル名や分かりづらいラベル名は老害
まぁ若造が鬼の首を取った気分で反発してるんだろうから
この程度のコーディングルールは事なかれ主義で黙って従うのが社会人なんだよ!って黙らせればいい

44 :デフォルトの名無しさん (ワッチョイ 213c-vtRd):2016/10/26(水) 17:31:30.47 ID:EtQ2cepM0.net
>>42
うちは別に禁止してないぞ
移植時の面倒事回避の1つとして控えた方がいいと教えてるだけ

使う言語は限られていてそれらを知ってるのが前提だから
リストなんてものもない(面倒だし)

影響が大きくない部分は下が守ってなくても許容するし自分が入る場合は従っておく

現場でキャパ少ない奴は上で下でも地雷だわ
ブログやら掲示板では猛獣のごときスタイル論争でも好きにやればいいが

45 :デフォルトの名無しさん (スフッ Sdb8-vevC):2016/10/26(水) 18:33:44.20 ID:n1sZka3Md.net
>>44
おれ、記憶力悪い方なんでコンパイラに怒られるまで予約語かどうかなんてわかんないや

なので、作業中の言語は対応できるけど
他の言語の予約語までは対応できない

コミット時にNGワードチェッカー走らせて拒絶するようにしておいてね

46 :デフォルトの名無しさん (ワッチョイ 172b-bS7b):2016/10/26(水) 19:39:20.63 ID:dE6dARfA0.net
少数言語で移植性()を保つキャパより、多数言語を言語毎の文化/文法に合わせて書けるキャパを持ちたい
JavaもObjCもSwiftもKotlinもC/C++もJavaScriptもPythonもGoもRustも みんなちがって、みんないい

47 :デフォルトの名無しさん (ワッチョイ 638f-Jz20):2016/10/27(木) 00:11:07.98 ID:e6l93V+P0.net
>>46
でもちょっとでも優れた機能があると、それを自分がメーンで使っている言語に取り込みたくなる。そしてコモディ化が始まる。

48 :デフォルトの名無しさん (ワッチョイ e3c9-3xFl):2016/10/27(木) 01:59:35.26 ID:X0THyINs0.net
>スタイル論争
にしても
2ちゃんの書き込みにしても
ひまなひとがやること
能力があるひとは忙しいから
そんなことにかまってる無駄な時間は使わない

49 :デフォルトの名無しさん (ササクッテロ Sp7f-ceYG):2016/10/27(木) 07:41:18.42 ID:CQANQwZhp.net
>>47
ねーよwww
そんなことをするのは、他言語をちょっとかじって多数言語が扱えると思っちゃってるニワカか
メイン言語を至上と信じそれ在りきでその言語を如何によく使うかを考えてる信者だ

50 :デフォルトの名無しさん (ワッチョイ 6362-ijxz):2016/10/27(木) 07:52:38.72 ID:g7DaVEt90.net
ラベルに予約語が使えるようになった!とかObjCだとそれ普通だしって内容なんだが...

51 :デフォルトの名無しさん (ワッチョイ 6362-ijxz):2016/10/27(木) 07:54:31.29 ID:g7DaVEt90.net
つーかObjCはセレクタ名の一部だからラベルじゃないか

52 :デフォルトの名無しさん (ワッチョイ 133c-xElR):2016/10/27(木) 08:55:38.81 ID:4jy4piHn0.net
>>45
>チェッカー走らせて拒絶するように
反射レスせずちゃんと読もうな

53 :デフォルトの名無しさん (スフッ Sdff-O9pn):2016/10/27(木) 10:34:44.50 ID:JkrFOFZTd.net
>>52
あ、すまん
意味のないこと「教えて」偉そぶるんじゃない、ボケ

って、事を柔らかく言いたかっただけ


ルール化すべきことはきちんとルールを作って強制すべき
可能なら自動化もする

強制しないならそれは教える価値のないものだし
わざわざ教育すべきではない
単なる雑談、それも老人の昔話レベルだよ


バックグラウンドが違えばみんなの「普通」は違うんだから、思い込みで中途半端な「教育」されると
チーム運営上混乱を招くぞ


carとかautoとかいちいち「あれ?あの言語で予約語だったっけ?」とか考えさせるな、思考が中断されてプログラマの時間が勿体無い

他の言語に移植する時困ったらsed一発で修正できることだろ

それ以前に言語が変わればプログラムの構造自体が変わるんだから
予約語の被りを避けたところでほとんど意味がない

54 :デフォルトの名無しさん (ササクッテロ Sp7f-Jz20):2016/10/27(木) 11:59:03.60 ID:CQANQwZhp.net
暗黙の了解ってのもあるが>>34は根拠がバッドノウハウなんだよなぁ

ObjC, SwiftのIF共有のために、ObjCは 前置詞+名詞 のラベルが風習として良いから
Swiftも 前置詞(予約語) だけのラベルは適切でないってならそりゃそうだと同意するんだが

55 :デフォルトの名無しさん (スプッッ Sdff-O9pn):2016/10/27(木) 18:00:16.74 ID:8ioUQXgpd.net
ところで久しぶりに触って見たら
IBM Swift Sandboxが少し使いやすくなっていた

電車の中とかで暇つぶしにちょうどいい

スマホでSwiftやってたら隣の人に変な目で見られたけど

56 :デフォルトの名無しさん (ワッチョイ 133c-0DI1):2016/10/27(木) 20:31:53.66 ID:Ps2jyA+B0.net
Cocoa の世界だとこうなる

// Obj-C
- (void) buyWaxWithCost:(int)cost
           forHage:(NSString *) hage;

// Swift2.X
func buyWax(cost: Int, forHage hage: String)

// Swift3.X (for に省略されるのは、String が Hage の場合のみ)
func buyWax(_ cost: Int, forHage hage: String)

57 :デフォルトの名無しさん (ワッチョイ e3c9-3xFl):2016/10/27(木) 20:58:34.09 ID:X0THyINs0.net
文法なんてタダの飾りですし

58 :デフォルトの名無しさん (ワッチョイ 133c-ijxz):2016/10/27(木) 23:11:21.08 ID:x9Z62p+J0.net
>>53
>それ以前に言語が変わればプログラムの構造自体が変わるんだから
>予約語の被りを避けたところでほとんど意味がない

いや、それは違う。
プログラム構造を変えずに移植することは可能だし、
業務プログラミングでは当然だよ。
実際、COBOLプログラムをJavaで書き直すときは
COBOLの構造でみんな書いてるよ。
チューリング完全ならロジックレベルでは互換性があるんだから、
プログラム構造を変えずに移植することは可能なはず。

59 :デフォルトの名無しさん (ワッチョイ 133c-WNS8):2016/10/27(木) 23:48:40.67 ID:4jy4piHn0.net
>>53
ご高説ありがたいが
職場のバックグラウンドが違うのでね

60 :デフォルトの名無しさん (ワッチョイ 6362-Jz20):2016/10/28(金) 00:39:44.63 ID:adI6CPkE0.net
>>57
飾りといってみたり可読性が高いと称賛してみたり
Swifterのスタンスはめちゃくちゃやな

61 :デフォルトの名無しさん (スップ Sdff-Jz20):2016/10/28(金) 01:22:03.46 ID:8E81+S0Cd.net
>>20
そのためのセレクタだよ

62 :デフォルトの名無しさん (ササクッテロ Sp7f-Jz20):2016/10/28(金) 10:50:21.84 ID:Z2zfTStfp.net
>>56
swift3ではforHageはforにするんじゃないの?
従来ルールから逆らうけども、何度もhage hage言うのはバカっぽいから

>>60
objcerは何しに来てるの?アンチスレの存在知らない?

63 :デフォルトの名無しさん (オッペケ Sr7f-P+QJ):2016/10/28(金) 11:16:08.58 ID:v43qydeMr.net
>>8
java, php

64 :デフォルトの名無しさん (スップ Sdff-Jz20):2016/10/28(金) 11:25:55.99 ID:UKDThdJFd.net
           |
            |  彡⌒ミ
           \ (´・ω・`)また髪の話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \

65 :デフォルトの名無しさん (スプッッ Sdff-O9pn):2016/10/28(金) 12:43:27.25 ID:IYKxBeNKd.net
>>58
>チューリング完全ならロジックレベルでは互換性があるんだから、
>プログラム構造を変えずに移植することは可能なはず。

なんだ、設計屋か、


たとえばcでメモリ上にファイルから読み込んだバイナリデータをmcpy()で展開しておいて
構造体の配列としてアクセスできるようにキャスティングして
データ解析いっちょあがり
とか
これをJavaで実装し直すとバイト単位で解析しなきゃならないし

オーバーロードとか型ジェネリックを多用したプログラムを
どちらにも対応していない言語にそのまま移植したらswitch文だらけでエライコッチャになるとか

macOS上で組んだプログラムをwinに持って行こうとしたらノーティフィケーションの仕組みが無くて、メッセージングを自作しなきゃならなくなったとか

そう言うのを「プログラム構造を変えずに移植できる」と言うのであれば
確かにできるよ


で、こう言う労力に比べて他の言語の予約語を避けると言うコーディングルルールはあまりにも意味がなさすぎると思わない?

必要ならコーディングルルールに「〇〇への移植性を考慮すること」って最初から入れとかなきゃ
予約語だけの問題じゃない

66 :デフォルトの名無しさん (ブーイモ MMff-yDtl):2016/10/28(金) 19:17:32.49 ID:noGENyqJM.net
移植性を考えるなら名前付き引数の使えない言語になる可能性もあるからそもそもラベルを使うべきじゃないな。全部_にした方がいいw

67 :デフォルトの名無しさん (ササクッテロ Sp7f-Jz20):2016/10/28(金) 19:51:22.41 ID:gCFwn2zqp.net
>>66
名案だと思ったw > 全部_

68 :デフォルトの名無しさん (ワッチョイ 6362-ijxz):2016/10/29(土) 09:05:38.96 ID:U/oHXeL/0.net
なるほどここはSwiftの話題全般について語るスレじゃなくて
Swiftのポジティブな話題限定のスレだったのか

69 :デフォルトの名無しさん (ワッチョイ d7ba-Jz20):2016/10/29(土) 09:08:25.76 ID:wiQwEsKb0.net
いーやネガキャンスレ

70 :デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20):2016/10/29(土) 09:22:50.57 ID:HRK0HvHWp.net
自虐スレだよ
swifterは...とか言っちゃう外様はお帰り

71 :デフォルトの名無しさん (ワッチョイ e34e-ijxz):2016/10/29(土) 09:25:53.53 ID:7g9yHYdX0.net
Swiftersって言いかた、ドリフターズみたいで素敵

72 :デフォルトの名無しさん (ワッチョイ 6362-ijxz):2016/10/29(土) 09:51:11.83 ID:U/oHXeL/0.net
反応の早さにワロリン
Swiftersにすると確かに響きがいいな

73 :デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20):2016/10/29(土) 11:31:24.15 ID:HRK0HvHWp.net
お前もswiftersに入ってアポーの体を張ったギャグで笑おうぜ
クッソ笑えること確実、betaから笑い続けてても未だ笑える
今回のABI安定化見送りとかバカジャネーノと思うし

だからObjCのが優れてるし!ってネガキャンしなくても良いんだよ

74 :デフォルトの名無しさん (ワッチョイ 039a-9fiG):2016/10/30(日) 00:08:47.81 ID:/VdtApTb0.net
extensionは可読性をあげるのに大いに役に立つが、ビルド時間を伸ばす大きな要因となるトレードオフだと知った。
日本語のコミュニティだとあまり議論されてない。

75 :デフォルトの名無しさん (ワッチョイ 6fc9-ceYG):2016/10/30(日) 07:53:17.05 ID:j7jj+A2N0.net
煽りとかじゃなく、海外ならどこで議論されてる?
Swiftだけなのか、ObjCも同じく起こるのか、既存/自前のクラスのどちらでも発生しうるのか、仔細を知りたい

単純にお前の感覚なら、まぁそれはそれでいいけど

76 :デフォルトの名無しさん (ワッチョイ 0f93-O9pn):2016/10/30(日) 09:58:33.41 ID:ZJuXfoFw0.net
XCodeって予測コンパイル出来るんじゃなったっけ?
使い方知らないんだけど

いずれにしろコンパイルに時間がかかると言うのは
コンパイラ屋とかハードウェア屋が頑張る所であって

プログラミング言語としては生産性・保守性(含可読性)にこだわって欲しいな


「コンピュータ周辺機器の中で最も遅いのは人間の頭である。」って誰の言葉だっけ

77 :デフォルトの名無しさん (ワッチョイ 039a-ijxz):2016/10/31(月) 01:46:30.11 ID:m1eOJOQ80.net
>>75

Swiftだけだよ
議論されてるのは例えばここのコメント欄とか。
https://www.natashatherobot.com/using-swift-extensions/

あと、このスライドの23枚目では、extensionを減らすことがビルド時間短縮において大半を占めてることがわかる。
http://www.slideshare.net/AvitoTech/objectivec-swift-avito

extensionのによる可読性を諦めてビルド時間を優先してなるべくextensionを使わないようにするのは周りの優秀なiOSエンジニアはちらほらやってるやつがいる。
本格的なiOSプロジェクトではソースコードが肥大化し、ビルド時間を短縮することはかなり重要になってくるからな。

もちろん無駄なextensionを減らすだけであって、String+◯◯のような必要なextensionは使ったりする。

78 :デフォルトの名無しさん (ワッチョイ 039a-ijxz):2016/10/31(月) 01:47:57.67 ID:m1eOJOQ80.net
>>75
あと、それ書き込むくらいなら「swift extension build time」でググれば速攻でてくるから。。エンジニアの基本でしょ。。w

79 :デフォルトの名無しさん (ワッチョイ 039a-ijxz):2016/10/31(月) 01:53:06.54 ID:m1eOJOQ80.net
>>76
そうしたいところなんだが・・・・・
Swiftyな書き方ばかりしてると異常にビルド時間伸びたりしちゃうもんなんだよね・・。
趣味の小さいプロジェクトならいいけど、
本格的なiOSプロジェクトって基本的にかなりの大きさになるもんだから、
最新で最強に特盛りなMacbook Proつかってもクリーンビルド10分とかかかって生産性クソ下がるもんだよ。ほんと、仕事にならないっていうレベルで。
結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。

だから、まじで突き詰めてくとSwiftyに自由に書いてるだけじゃなく、ビルド時間も考慮した書き方もしていく必要があるよ。

80 :デフォルトの名無しさん (ワッチョイ 6362-Jz20):2016/10/31(月) 02:23:37.24 ID:y/KHbdbU0.net
だめだこいつどうにかしないと…

81 :デフォルトの名無しさん (ワッチョイ e3c9-3xFl):2016/10/31(月) 04:34:12.26 ID:jkUzecbb0.net
>>79
コメント無駄なので書きませんとか
hoge = fuga; .... // こことか
hage = shine; ... // こことか
abe = mao; ..... // こことか
そろえる時間とか無駄だよな

82 :デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20):2016/10/31(月) 08:31:13.97 ID:Yjtyu49Gp.net
業務でswift採用を検討とかバカなのか
そんなのswift1.xの時からずっと言われてたろ

83 :デフォルトの名無しさん (ワッチョイ 133c-ijxz):2016/10/31(月) 09:32:16.39 ID:NdNVw3ey0.net
>>79
フレームワークである程度分割すればいいんじゃねーの?

84 :デフォルトの名無しさん (スプッッ Sdff-O9pn):2016/10/31(月) 09:59:50.69 ID:paNpTD9Xd.net
>>79
状況はわかるし、気持ちもわかる
でもやってる事はどちらかと言うと悪手のように思うよ

フルビルドに10分とか、ちょっと大きいプロジェクトだとcでも普通だよ。
でもフルビルドなんて1日に一回もやらないでしょ?
やる必要のあるときにはお昼とかお茶にしちゃう

もし、煩雑にフルビルドが必要ならコンパイル単位の切り分けが不適切
プロジェクトリーダーと相談して分割しなおそう



>結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。

これは大変だけど効果的で本質的
高い給料払ってるプログラマがコンパイル時間短縮のために、
あえて苦労して品質の低いコードを書いてるとかもったいなすぎる
その結果出来上がるのがメンテナンス性の悪いソースだし

大変だけどトータルで見ると頑張って高速のマシンを買ってもらう価値あり
レンタルもありだよ
「武器は良いものを下さい」と言って上司を口説いてる「竹槍と根性だけでは勝てません」て
その代わり上司がそのまた上司に説明できるように生産性何パーセントアップとか数字の入った資料は用意している

85 :デフォルトの名無しさん (アウアウカー Sa7f-Jz20):2016/10/31(月) 10:12:37.14 ID:MowifMDBa.net
ビルド10分が生産性のボトルネックになってるってw

86 :デフォルトの名無しさん (スップ Sdff-Jz20):2016/10/31(月) 12:03:52.55 ID:sVVQsMs5d.net
>>81
「そろえる時間とか」の「とか」は、「そろえる時間」以外の何?

87 :デフォルトの名無しさん (ワッチョイ 133c-xElR):2016/10/31(月) 14:17:53.86 ID:VXqz7JcR0.net
http://echo.2ch.net/test/read.cgi/tech/1463149806/557-559n

88 :デフォルトの名無しさん (ワッチョイ 638f-Jz20):2016/10/31(月) 23:28:17.38 ID:zObjWshz0.net
プログラマーはフレームワークのバグを疑い、コンパイラを疑い、
ハードを疑い、最後の最後に結局自分が悪かったと気づく。

結局大概の問題は自分起因だと気づくんだよ。
もっと自分を疑え。

89 :デフォルトの名無しさん (ワッチョイ 6362-Jz20):2016/10/31(月) 23:58:57.20 ID:y/KHbdbU0.net
おつおつ

90 :デフォルトの名無しさん (スプッッ Sdff-O9pn):2016/11/01(火) 08:37:49.54 ID:SqrJLIAed.net
>>88
七度探して人を疑え
プログラマに限らないようで

91 :デフォルトの名無しさん (ワッチョイ 039a-ijxz):2016/11/02(水) 02:53:43.12 ID:0L1TooRo0.net
>>84
azs..

今回のAppleの発表で5KのiMac4万安くなったというのもあり、
交渉する勇気がでました

92 :デフォルトの名無しさん (ワッチョイ 039a-ijxz):2016/11/02(水) 02:59:20.17 ID:0L1TooRo0.net
差分ビルド効いてても、コンパイル単位の切り分けってビルド時間短縮につながる?

93 :デフォルトの名無しさん (ワッチョイ fb3c-nx48):2016/11/02(水) 12:52:27.64 ID:vzQ+b2bv0.net
試して報告してくれ。

94 :デフォルトの名無しさん (ササクッテロリ Sp7f-BXGM):2016/11/02(水) 14:38:43.54 ID:rHHkFyogp.net
メリット:
ObjCに比べてコード量が減って作業効率が上がります

デメリット(これは言わない):
ObjCに比べてビルド時間が伸びて作業効率が下がります
ObjCに比べてバイナリ容量(IPAサイズ)が増えてDL時間が長くなります
ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
ObjCに比べてXcodeバージョン更新に伴うコードメンテ量が多く保守工数が増えます

商用ソフトウェアでSwift採用を交渉して通ったらびっくりするよ
それ以前に、Swift採用を交渉してきたらプロマネが(悪い意味で)びっくりするかもしれんけど

95 :デフォルトの名無しさん (ワッチョイ 3f13-3xFl):2016/11/02(水) 16:40:29.18 ID:db1quxwb0.net
>>94
製品の良し悪しは言語で決まる訳じゃないのに

96 :デフォルトの名無しさん (スプッッ Sdff-O9pn):2016/11/02(水) 18:00:18.26 ID:RCRK3FtZd.net
>>91
おう、前向きやん、頑張れ!

一つアドバイスするなら、
すぐに買ってもらえなくてもがっかりしないこと
来年買ってもらえたら超絶ラッキーくらいに思っとけ

手間暇かかるし、心も挫けそうになるけど、
やらないと何年たっても買ってもらえないからな

97 :デフォルトの名無しさん (ササクッテロル Sp7f-O9pn):2016/11/02(水) 18:29:15.23 ID:UuGtpbllp.net
>>94
>ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
他は同意出来るけどこれはどうなの?
WWDCではSwiftの方がすげー早いよって紹介してたんだろ?

98 :デフォルトの名無しさん (スプッッ Sdff-Jz20):2016/11/02(水) 19:37:29.88 ID:V5jMGm9Nd.net
そりゃスイフトのほうが早いだろう

99 :デフォルトの名無しさん (ワッチョイ b38c-BXGM):2016/11/02(水) 21:24:36.15 ID:RaymUkXW0.net
swift betaで限定条件下ならばobjcよりswiftのが早かった
これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな

ただ、それからランタイムのバグだの、言語仕様のモダン化だの、もりもり改変して劣化の一途よ
NSHogeとHogeの透過変換とか、for eachでイテレータ利用とか、同じことするのにオブジェクト生成や関数コールが増えるよ
for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ

ObjCのクソ文法を崇める気はさらさらないけど、Swiftの多大なデメリットを直視しないのもどうかと思う
ユーザデメリットの容量/性能を気にしない商用開発がもしあるならSwiftでも良いんだけどねー、趣味PGのおもちゃとしては楽しい

100 :デフォルトの名無しさん (ワッチョイ d7ba-Jz20):2016/11/02(水) 21:26:12.54 ID:xZyO7jMI0.net
林檎製アプリもswiftに置き換えてるのに

101 :デフォルトの名無しさん (ワッチョイ d742-0DI1):2016/11/02(水) 22:17:16.59 ID:aJUXU1mT0.net
性能下がってきたなんて話は今のところ聞かないが

102 :デフォルトの名無しさん (ワッチョイ 133c-O9pn):2016/11/02(水) 23:38:41.44 ID:ihp4ITm60.net
まだコア部分はObj-Cだからでしょ

103 :デフォルトの名無しさん (ワッチョイ fd8c-AEdt):2016/11/03(木) 00:05:58.26 ID:YyMYD2K/0.net
なぜ3で削除されたC-style forからの性能劣化を具体例に出したのになかったことにするのか
前スレだか前々スレだかで実測して数値も出した情報だぞw

104 :デフォルトの名無しさん (ワッチョイ 7162-DGmA):2016/11/03(木) 00:14:56.13 ID:BOny4tTs0.net
Swiftは煽り抜きでダメだなもう
ガバナンスも利いてないしめちゃくちゃ
文法も思想もとっちらかったクソ言語に成り果ててる

105 :デフォルトの名無しさん (ワッチョイ bc42-8n5s):2016/11/03(木) 06:48:25.75 ID:GxO0spX30.net
>>103
ちゃんとstride使ってるか?

106 :デフォルトの名無しさん (ワッチョイ 5e93-m5qj):2016/11/03(木) 06:52:50.32 ID:1srrFQD30.net
>>99
つまりは酸っぱい葡萄が大好きな狐さん?

107 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/03(木) 07:24:57.35 ID:UUNhEaPVd.net
>>99
また聞きかじりでdisりたいだけのしょぼい奴が来たか

>swift betaで限定条件下ならばobjcよりswiftのが早かった
>これは、基底クラスのSwift ObjectクラスがObjC NSObjectクラスよりオブジェクトを構成する要素が少ないからかな

基底クラスの要素数が実行速度に影響するなんてどこの言語の話だよ

そもそもswiftは「クラスより構造体」で、標準ライブラリもほとんど構造体に置き換えられてるぜ



>for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ

それはコードの書き方が下手
どうせどっかの聞きかじりだろ?自分で試してなくてww
悔しかったらそのfor each文とやらを書き込んでみろ
みんなで実行速度測って笑ってやるから

108 :デフォルトの名無しさん (ササクッテロリ Spbd-DGmA):2016/11/03(木) 08:21:24.01 ID:w1NhWsHTp.net
煽りたいだけの愉快犯っぽい

betaが早かった理由はクラスじゃなく構造体だからって論でおk?
基底オブジェクトが違うからって本質から外れてないから構わんけど

前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ

109 :デフォルトの名無しさん (ワッチョイ 718f-DGmA):2016/11/03(木) 09:37:42.70 ID:zeI07SjJ0.net
obj-c静的言語を装った動的言語だから。
メソッド呼び出しに当然オーバーヘッドがあるからswiftが早いのは当然。

でも高速さが必要なところはcで書くという柔軟さを内包してた。

あれ、swift擁護しようとしたらobj-cが良さげになってきた

110 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/03(木) 12:43:32.38 ID:UUNhEaPVd.net
>>108
>煽りたいだけの愉快犯っぽい

そうだよ、俺は聞きかじりの知識で何かをdisって
自分が偉い気分になってるやつをいじめるのが好きなんだ

例えばさ

>betaが早かった理由はクラスじゃなく構造体だからって論でおk?
>基底オブジェクトが違うからって本質から外れてないから構わんけど

こっちはいいけど、そっちこそいいのか?
>>99での主張である
ベータは速かったかもしれないが本実装では遅くなる
の論拠を自分で否定してることになるんだぞ?

クラスから構造体への置き換えが進んだSwift3ではさらに速くなっちゃうぞ?
本当にそれでいいの???

>前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ

ほらね逃げた
世の中にforのサンプルなんていくつあると思ってるんだ?
それにforはデータ構造と一緒に考えなきゃ意味がないだろ?
まさか空ループ回してるんじゃないだろ?
あなたが、実際に動かしてみたコードで検証しなきゃ意味ないんだよ。ここにコピペしてみろよ
何も1000倍かかったって事実を否定したいってわけじゃないんだぜ
その事実を確認してみたいだけだ

まさかfor文一つ人目にさらす事が出来ない臆病者なのか?
自分でやってみてないから動作時間の測定方法知らないとかそういうわけじゃないんだろ?

111 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/03(木) 12:44:46.62 ID:UUNhEaPVd.net
>>109
心配すんなって
swiftからでもcは使えるから

112 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/03(木) 13:12:33.29 ID:BOny4tTs0.net
それはSwiftのwithout Cに反するので本末転倒
却下

113 :デフォルトの名無しさん (スッップ Sd28-DGmA):2016/11/03(木) 13:27:08.44 ID:CPk3BZK9d.net
必要なかったのに政治的にぶっ込もうとしてグダグタになってる典型例だな
前向きだったやつらも愛想尽き始める

114 :デフォルトの名無しさん (ワッチョイ 714e-dKGq):2016/11/03(木) 13:46:18.73 ID:0SaHyNen0.net
without C の真意はポインタの隠蔽?

115 :デフォルトの名無しさん (ワッチョイ d0c9-dKGq):2016/11/03(木) 14:03:19.84 ID:Uhidgpr40.net
>>108
前にこのスレで出てたfor文のベンチマークもどきならベンチマークとして計測の仕方がまずくてベンチマークになってなかった
面倒くさいから黙ってたけど

116 :デフォルトの名無しさん (スッップ Sd28-DGmA):2016/11/03(木) 14:11:38.60 ID:CPk3BZK9d.net
>>114
どうなんだろうね
表面的な見た目も無駄にwithout Cにしようとしてるきらいがあるけど

117 :デフォルトの名無しさん (ササクッテロリ Spbd-AEdt):2016/11/03(木) 14:32:53.86 ID:w1NhWsHTp.net
>>115
Swift Sandboxでのサンプルがダメってんなら提供はむずいのう
ELF読み込み時間を考慮してないとか、単独試験になってないとか、評価回数が少なすぎとか、そりゃツッコミどころはあろうよ

ポインタ文法も薄目に見たら表面上だから・・・
宣言(予約語)、制御文、演算子をC/C++から違うものにしたいんだろうなぁと思う

118 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/03(木) 14:50:34.97 ID:UUNhEaPVd.net
>>115
そうだよなぁ

おれ>>110で人の事叩いてみせてるけど
自分自身for文単体の実行速度計測なんてできる気がしない

下手なサンプルコード書くとコンパイラに定数展開されて実行時間ゼロにされちゃうし
最適化避けにio入れたら何測ってるか意味不明だし

最適化オプションを切るという手もあるけど、それじゃ最適化してリリースする実プログラムにとっては意味のない数字にしかならないし

計測方法もタイムスタンプ取るだけだとosやコンパイラに誤魔化されちゃう可能性あるし
プロファイラはやっぱり細かいところを見ようとするとサンプリング負荷の方が大きくなっちゃうし


俺自身は言語としての処理速度にはあんまり興味を持てないや
取り敢えず動くプログラム作ってみて、後はプロファイラ見ながら動かしてみて
不自然に遅いところがあったら手直し
それでイライラしない速度になったらOK

別に言語や開発環境が変わってもやる事は変わんないなぁ

119 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/03(木) 14:58:28.17 ID:UUNhEaPVd.net
>>117
え?、、、、、、

コード読んでないけど、それ、forの速度比較にならないよ

120 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/03(木) 15:34:45.56 ID:BOny4tTs0.net
>>116
「無駄に」には禿同

121 :デフォルトの名無しさん (ワッチョイ ef53-nJsM):2016/11/03(木) 21:07:23.94 ID:GA4nbDQd0.net
>>114
ビット、バイトレベルの操作はCに任せて、もっと大きな束(Class、Struct)を操作することに専念するという意図だと思ってる
低レイヤーの処理をSwiftで置き換えようという動きはほとんど見られないからな
URLSessionも内部ではCURL使ってるし

122 :デフォルトの名無しさん (ワッチョイ ef53-nJsM):2016/11/03(木) 21:11:27.54 ID:GA4nbDQd0.net
SwiftはObjCより役割が明確になった
低レイヤーもゴリゴリかけるObj志向より
低レイヤーはCで良いです。Obj志向持ち出さないといけないくらい大規模開発になったらSwiftから操作します
本当に開発車が求めてたのはこっちだと判断したのだろう

123 :デフォルトの名無しさん (ワッチョイ 718f-DGmA):2016/11/03(木) 22:36:47.60 ID:zeI07SjJ0.net
>>122
いやいやcとの連携を考えたら圧倒的にobjcでしょ。swiftからcの構造体とか関数を扱うのってそんなに楽だったっけ?

124 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/03(木) 22:52:01.17 ID:BOny4tTs0.net
だからwithout Cを掲げといて困ったらCとか何なの...
Swiftは右往左往しすぎ

125 :デフォルトの名無しさん (ワッチョイ fd10-7tG6):2016/11/04(金) 00:57:42.08 ID:qpsq4Ku/0.net
C++で書かれたライブラリを使うときはObj-C経由になって面倒だよね、自分でラッパー書かないといけないし
まじめに設計すればいいのだろうけど、設計コストが割けない場合は面倒臭いからObj-C++のラッパークラスにビュー操作とかたくさん入れるみたいなぐちゃぐちゃのコードができそう

126 :デフォルトの名無しさん (ワッチョイ d0c9-X2H6):2016/11/04(金) 01:55:19.84 ID:Y6RBUWTc0.net
Objc++ってc++14の機能とか使える?

127 :デフォルトの名無しさん (ワッチョイ 5e93-m5qj):2016/11/04(金) 06:49:07.92 ID:IQwZZLFC0.net
>>123
うん、ヘッダファイルをインクルード(import)するだけで
Swiftプログラムの中で普通にcの関数や構造体が使える

最初構えちゃったけど、実際やってみると拍子抜けするくらい簡単にcのプログラム呼び出せちゃう

JavaのJNIに比べると格段に楽


c++はワンクッション必要だけどそれも3日で気にならなくなるレベル

128 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/04(金) 08:38:39.73 ID:f4ftpOMT0.net
もはやObjectivc-Cでいいじゃねぇかっていう...

129 :デフォルトの名無しさん (スップ Sd78-DGmA):2016/11/04(金) 08:42:12.75 ID:2pY38tv9d.net
だめでふ!

130 :デフォルトの名無しさん (スッップ Sd28-DGmA):2016/11/04(金) 09:19:39.69 ID:YHeqrh8yd.net
>>128
それな
でも政治的に無理

131 :デフォルトの名無しさん (ワッチョイ 5e93-m5qj):2016/11/04(金) 09:35:38.12 ID:IQwZZLFC0.net
>>128
俺がObjective-C使えないから却下

132 :デフォルトの名無しさん (スプッッ Sd78-DGmA):2016/11/04(金) 09:48:35.53 ID:tOE/Rf6pd.net
>>131
雑魚おつ!

133 :デフォルトの名無しさん (ササクッテロリ Spbd-DGmA):2016/11/04(金) 14:21:14.46 ID:jHHFhRr8p.net
swiftpp誰かメンテしろよ、、、

134 :デフォルトの名無しさん (ワッチョイ 3b3c-A9qr):2016/11/04(金) 15:05:36.52 ID:57dKQ7qw0.net
>>126
objc++ がというよりも、clang が使えるものは全部使える。inline smalltalk の書ける c/c++ でしかないのだから。
Xcode の c/c++ 部分のオプションとか一通り見てみるといいよ。

135 :デフォルトの名無しさん (ワッチョイ 653c-DGmA):2016/11/04(金) 15:41:44.53 ID:AA4S5DKA0.net
>>134
「オプションとか」の「とか」は、「オプション」以外の何?

136 :デフォルトの名無しさん (ワッチョイ ef53-nJsM):2016/11/04(金) 22:14:16.59 ID:wN0RTOka0.net
>>128
ObjCの命名規約をSwiftに擦り合せるだけで平和になれるかも?

まあそんなこと冗談でも言いたくないんだけどな
主にPOP、generics、が便利すぎてとてもObjCでいいじゃねえかとか言えない

137 :デフォルトの名無しさん (ワッチョイ ef53-nJsM):2016/11/04(金) 22:18:57.13 ID:wN0RTOka0.net
Swiftに足りないのはobjc_setAssociatedObjectくらいだなあ
あれ相当が純Swiftにも欲しい

138 :デフォルトの名無しさん (ワッチョイ 653c-dKGq):2016/11/04(金) 23:22:05.97 ID:fKNeNx+T0.net
純Swiftってなら、kvoとかも欲しいわ
removeObserverを連続で読んでもクラッシュしないようにして欲しい

139 :デフォルトの名無しさん (ワッチョイ fdad-AEdt):2016/11/04(金) 23:22:36.85 ID:E6UScSsN0.net
任意のKVOとかJS等々のテケトーな動的言語じゃないのに使いたくない><
気分的な問題もさておき、APIのI/Oで型が保証されないってのは言語仕様で安全(笑)と言えなくなるのではないかと
なお、GenericsはObjCにも随分前にバックポートされたダルルォ

140 :デフォルトの名無しさん (ワッチョイ ef53-nJsM):2016/11/05(土) 05:37:01.21 ID:Z0XZZi850.net
ObjC の lightweight generics と Swiftのgenericsを一緒にしたらあかん
前者はただの型安全、後者は強力なコード省略機能だから

141 :デフォルトの名無しさん (ワッチョイ 653c-8n5s):2016/11/05(土) 11:25:04.49 ID:J7M9MHD00.net
Swift の generics は generics としては出来損ないだからな

142 :デフォルトの名無しさん (スププ Sd28-m5qj):2016/11/05(土) 11:49:58.86 ID:udcWDT/td.net
>>139
ま、IOが型に限らず安全じゃないのは根源的な問題だから
受け取ったデータをどうやって安全な型に変換して
持ってこれるようにするのかが
言語仕様屋さんとライブラリー設計屋さんの腕の見せ所

143 :デフォルトの名無しさん (ササクッテロリ Spbd-DGmA):2016/11/05(土) 14:31:34.27 ID:uB6+UJGhp.net
つまり根源的(笑)には動的型付け言語最強ってことだ

rustくらい凶悪で安全な型推論と型変換があればなぁ
それをオブシーに毛が生えた程度のスイフトに求めるのは酷だけども

144 :デフォルトの名無しさん (ワッチョイ 653c-8n5s):2016/11/05(土) 15:50:28.36 ID:4esgQXgk0.net
Rustをパクろうという恥も外見もないプロポーザルが多数あったけど、
ベースがオブシーのSwiftに取り込めないだろうな

145 :デフォルトの名無しさん (スププ Sd28-m5qj):2016/11/05(土) 15:52:39.39 ID:udcWDT/td.net
>>143
煽りにしてももう少し捻ろうよ

各言語は設計者の決めた土俵で最強を目指している
そしてその土俵は言語ごとに驚くほど違う

違う土俵を比べてなんか意味があるのか?

146 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/05(土) 20:38:23.05 ID:UUL9l/XE0.net
Swiftは一体何を目指してるのかさっぱりわからんな
疲れるわいい加減

147 :デフォルトの名無しさん (ワッチョイ bc42-8n5s):2016/11/05(土) 22:37:03.08 ID:Egd9oR020.net
そりゃJavaの後釜だろう

148 :デフォルトの名無しさん (スップ Sd78-DGmA):2016/11/05(土) 22:41:52.42 ID:BUcUWGbDd.net
えっ?

149 :デフォルトの名無しさん (ササクッテロリ Spbd-DGmA):2016/11/05(土) 22:52:10.19 ID:uB6+UJGhp.net
言語仕様屋さんは土俵を作ってるんだろ?
しかしgoのdeferとかパクってて今さら恥も外見もない

狙ってるのはnodejsとobjcの後釜だったろ(過去形
Javaの後釜はkotlinに任せた

150 :デフォルトの名無しさん (ワッチョイ bc42-8n5s):2016/11/06(日) 00:12:40.09 ID:ezrbx1w50.net
Kotlinはガチガチ感が足りない

151 :デフォルトの名無しさん (ワッチョイ d0c9-dKGq):2016/11/06(日) 01:05:29.16 ID:vkxhzVrT0.net
アイデアパクるのが恥なら恥のない言語なんて無い

152 :デフォルトの名無しさん (ワッチョイ 718f-DGmA):2016/11/06(日) 10:14:23.57 ID:4L6+G/1b0.net
むしろいい仕様は全然パクりまくっていいと思う

153 :デフォルトの名無しさん (ワッチョイ bc42-8n5s):2016/11/06(日) 17:14:18.09 ID:WBLFwz5S0.net
おかげで最近は似たり寄ったりのが乱立することに

154 :デフォルトの名無しさん (ワッチョイ d0c9-X2H6):2016/11/06(日) 20:15:09.34 ID:v3i1/z/a0.net
>>153
そんなに似てるのあるかね?

155 :デフォルトの名無しさん (ササクッテロリ Spbd-DGmA):2016/11/06(日) 21:12:20.71 ID:OgnHco5Ep.net
PerlとPythonとRubyとか

多少似たり寄ったりでも、それぞれ特化した特徴持ってるるけどな
Swiftの特徴はモダンな文法

156 :デフォルトの名無しさん (ワッチョイ 1c7b-LXwf):2016/11/06(日) 22:29:55.94 ID:/loPCIEU0.net
最近って
もう20年位経ってなかったっけ

157 :デフォルトの名無しさん (ワッチョイ 1c7b-LXwf):2016/11/06(日) 22:33:39.44 ID:/loPCIEU0.net
ああすまん別人のレスだった

158 :デフォルトの名無しさん (ワッチョイ 91c9-GVdM):2016/11/07(月) 04:20:28.13 ID:EaPQMBZD0.net
perlとrubyは似てるけど
それらとpythonは似ても似つかない

159 :デフォルトの名無しさん (ワッチョイ 7162-dKGq):2016/11/07(月) 22:48:12.47 ID:pS9bGIHw0.net
モダン()って何ですか?

160 :デフォルトの名無しさん (ワッチョイ e6d4-6WlR):2016/11/07(月) 23:29:17.01 ID:7sl1kZEM0.net
19世紀末から20世紀頭にかけた近代的な文化や思想のことだよ。

161 :デフォルトの名無しさん (ワッチョイ d0c9-dKGq):2016/11/07(月) 23:44:55.11 ID:HJ3poSG10.net
ポストモダン言語

162 :デフォルトの名無しさん (ワッチョイ 653c-8n5s):2016/11/08(火) 00:12:18.18 ID:1VnvhNy/0.net
ジョブズは死んだんじゃなくて19世紀にワープしたんだよな
そこで手に入れた言語がSwift
これで38世紀に起きる世界の破滅を救う必要がある

163 :デフォルトの名無しさん (スプッッ Sd2d-DGmA):2016/11/08(火) 07:59:40.41 ID:rLbbfQNtd.net
ふーん

164 :デフォルトの名無しさん (スプッッ Sd78-m5qj):2016/11/08(火) 09:57:02.25 ID:X5dOVA43d.net
swiftのrubyっぽい書き方は好き
ジェネリクスもc++の複雑怪奇さよりはまだ理解しやすいと思う
あとはperl並みの柔軟な正規表現処理をパクってくれれば、俺的にはかなり満足

言語では無いがXCodeで未だにswiftのリファクタリングアシスト出来ないってどういう事?
もっと本気出せ!Apple

165 :デフォルトの名無しさん (ワッチョイ 718f-DGmA):2016/11/08(火) 10:38:31.86 ID:afLUgDEA0.net
まぁobjcよりはDSLが書きやすい言語ではあるね。rxSwiftとか触った感想

166 :デフォルトの名無しさん (ワッチョイ 5e93-m5qj):2016/11/09(水) 23:28:51.38 ID:LFfTZCZj0.net
>>99
古い話を蒸し返して悪い

>for eachで+2づつイテレートしたらC-style forより1,000倍遅かったのにはびっくりしたわ、+1づつなら同程度速度だったけどさ


ソース見てないから想像しかできないけど

for文だけで1000倍遅いと言うのはやっぱり変

速度計測が正しいと仮定して
+1で同速だから+2で1000倍違うのであればコンパイラの最適化問題の可能性が高いと思う

+2にするためにfor eachの中だけでifとか3項演算子とかの条件判断してんじゃ無いかな?

定数や単純な計算に展開できるようなfor文だったら
最適化が崩れるだけで1000倍くらいは軽く違ってくる

もちろん最適化しやすいかどうかは言語仕様の重要なポイントだけど
+2のc style forと比較すべきは

対象データ配列.lazy.filter.foreach
とか
for in stride
とかじゃないかな?

167 :デフォルトの名無しさん (ワッチョイ 93c9-U0zX):2016/11/10(木) 00:35:29.26 ID:il4z8U8D0.net
jump 1984

168 :デフォルトの名無しさん (ワッチョイ 033c-teht):2016/11/10(木) 01:04:16.66 ID:CuQR47GV0.net
wow! swift is very cool language!!

169 :デフォルトの名無しさん (ワッチョイ 033c-teht):2016/11/10(木) 09:31:14.04 ID:R/sSrOg00.net
言語仕様の変化がswift(迅速)

170 :デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp):2016/11/10(木) 13:40:21.88 ID:rv8wSLjJp.net
>>166
自分でコード書いて、ほら+2でも早いじゃんって証明しよう

171 :デフォルトの名無しさん (ワッチョイ 033c-teht):2016/11/10(木) 15:15:22.92 ID:R/sSrOg00.net
swift 2.2
http://swiftlang.ng.bluemix.net/#/repl/58240e6cdee52b574593575a
c-style   : 98ms : 25000000
range    : 1287ms : 25000000
c-style(emp): 114ms : 0
range(emp) : 1328ms : 0

swift 3
http://swiftlang.ng.bluemix.net/#/repl/58240f8bdee52b574593575d
range   : 1906ms : 25000000
range(emp) : 1922ms : 0

こんな感じ?
ちゃんと計測になってるか分からないけど

172 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/10(木) 18:17:20.39 ID:ftL23tGyd.net
>>171
さんきゅ、これで検証できる

手元のmacMiniでmacOS用コンソールアプリとして実行して見た
手打ちコピペなのでカウント表示は省略

リリースモード(-O)
c-style : 12ms
range : 8ms
c-style(emp):12ms
range(emp): 8ms

デバッグモード(-Onone)
c-style : 122ms
range : 1506ms
c-style(emp):122ms
range(emp): 1485ms

実行時間は実行の度に10%程度揺らぐが、全体的に増減する
(バックグラウンドプロセスの影響?)

同じく時間計測が正しくできてるかどうかは自信なし
あくまでも話のネタとして

173 :デフォルトの名無しさん (ワッチョイ 27c9-dJcJ):2016/11/10(木) 20:10:35.31 ID:axPg+CzB0.net
どうでもいいけど range といわれると for i in 0..<n { } を想像する

174 :デフォルトの名無しさん (ワッチョイ 0f93-9MLS):2016/11/11(金) 06:58:10.97 ID:VxmMYonc0.net
(最近2chをStackOverflowと間違えてる人達がいるんじゃないかと思うんだ)

175 :デフォルトの名無しさん (ワッチョイ 6b17-9MLS):2016/11/11(金) 12:14:57.51 ID:hH3mlRl+0.net
専門板はコード載せたり質問したり普通だと思うがな

176 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/11(金) 12:24:16.45 ID:IRS0wJtrd.net
>>172
やっぱり納得できん!
コンパイラかOSにごまかされてるかもしれない

カウント値を2倍10倍にして見た、、、
計測値も相応に増えてる→OK!

うちの手元環境では今回のコードを最適化しててもループも回ってるようだし計測も出来ているようだ


でもNSDateって汎用時計で計測用じゃないから最適化バリアとか張ってなさそう
いつか嘘を付かれるかも


どうやって実行時間測るのが安全なんだろう?
XCTestのmeasurePerformanceBlockあたりかな?

177 :デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp):2016/11/11(金) 14:13:36.15 ID:Vk/i9jiNp.net
timeコマンドでも使えば?
libSwift.soの読み込み分も加算されると思うけども
ObjCとSwiftを比較しないならまぁ条件は一緒だろ

178 :デフォルトの名無しさん (ワッチョイ 0f93-9MLS):2016/11/12(土) 09:36:12.28 ID:s1ZCIfoi0.net
乙おつ

c-style forを使いたい為にswift2.xに留まる程の速度差は無いてことだな
むしろ新しい書き方の方が速いこともある

ループ内でカウンタをいじらないなら
単純にfor in strideに置き換えて構わない

179 :デフォルトの名無しさん (ワッチョイ 3b53-yNdZ):2016/11/12(土) 11:08:55.66 ID:lF8fQe3F0.net
あのさ、マジで応用アプリケーションのレイヤーでforが遅いとかifが遅いとか鈍臭い話するの止めてくれるか?
話のタネとしてもどう反応して良いかわからん。お前馬鹿か?って反応して良いならいくらでも言えば良いがそうじゃないんだろ?
SwiftでOS書くつもりか?
forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや
基本ソフト書くレイヤーの特権階級だけが意識してれば良い事なんだよそれは
なんのためにその人たちがチューニングして生産性あげてるのか全くわからなくなる

180 :デフォルトの名無しさん (ワッチョイ 3b53-yNdZ):2016/11/12(土) 11:13:02.84 ID:lF8fQe3F0.net
×生産性あげてる
○抽象度を上げて生産性を上げてる
微妙に自分の言いたい事が足りなかったので補足

181 :デフォルトの名無しさん (ササクッテロリ Sp2f-PwKp):2016/11/12(土) 11:31:47.24 ID:txrMIHhIp.net
>>179
フフってなった
そういう反応すればいいんじゃないかな

画面のカクツキとかは、アニメーションが足りてないせいかな
Apple(iOS)は昔からアニメーション等々で性能悪を誤魔化す手法を模索してきたんだから
Swiftでも多少のデメリットも誤魔化す手法をAppleから提示して欲しい

182 :デフォルトの名無しさん (ワッチョイ 6b17-9MLS):2016/11/12(土) 12:19:42.46 ID:9t6wr9zS0.net
ここはアプリ開発スレじゃなくてプログラミング言語のスレだから下位レイヤーの話をあれこれ話し合ってもいいと思うけどな

183 :デフォルトの名無しさん (ワッチョイ 3b53-yNdZ):2016/11/12(土) 19:17:05.99 ID:lF8fQe3F0.net
応用アプリケーションのレイヤーで意識するべき事もわかってないくせに「先輩、cスタイルのfor文って実は遅いんですよ!」とか言っちゃって危険人物扱いされる人間が出ないように釘刺したかったんや
上で奇妙な事言ってる奴がいるがスルーするぞ

若い奴は上の頭でっかちの話は気にしないでとにかく手を動かせ
んでInstrumentsで発見した知見を蓄えろ。意外とあのオブジェクトのあのメソッドは遅いとか出てくるはずや
上で出ているfor文が問題になるケースは万に一つにもありえんと断言できる惑わされず手を動かせ
メソッド名とかこういうのの揚げ足取りが強くて手が動かせないとかは絶対に不毛だからないようにしろ

184 :デフォルトの名無しさん (ササクッテロラ Sp2f-PwKp):2016/11/12(土) 20:36:12.38 ID:89uv6TPmp.net
数行の検証コードも書けないのに、日本語は長文だなw
長いから3行でおk

185 :デフォルトの名無しさん (ワッチョイ a766-9MLS):2016/11/12(土) 21:13:25.65 ID:VlXDpHXF0.net
>Apple(iOS)は昔からアニメーション等々で性能悪を誤魔化す手法を模索してきた
とか言っちゃってる人はこちらの世界には向いてないから
あのボタン押しても無反応で、一秒ぐらい待って「???」ともう一回ボタン押すと
キャッシュされた動作でいきなり2つ画面が進んじゃったりする
日本企業のクソアプリを作ったあげく、
なぜ会社の業績が傾いてるのかわからない重役共々路頭に迷ってればいいよ。

186 :デフォルトの名無しさん (ワッチョイ 27c9-WFrU):2016/11/13(日) 00:18:33.65 ID:CUrdK5Xi0.net
>>182
まぁそうだが、ただswiftって言語としてまだまだ新しすぎるんだよね。
そりゃバージョン上がればいろいろ変わるさと正直思う。

187 :デフォルトの名無しさん (ワッチョイ 0f93-9MLS):2016/11/13(日) 03:15:10.73 ID:gdSsF4/Y0.net
>>179
そんなあなたに詰めswift
コードで語るスレらしいからお気に召すと思う

188 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/13(日) 16:47:18.61 ID:d2AUcSb3d.net
>>179
>forやifで悩むよりさっさとアプリ書き上げて画面突っかかるところをInstrumentsで解析してピンポイントにチューニングしてろや

>>183
>応用アプリケーションのレイヤーで意識するべき事もわかってないくせに「先輩、cスタイルのfor文って実は遅いんですよ!」とか言っちゃって危険人物扱いされる人間が出ないように釘刺したかったんや


この話題ってもともとそう言う話だったと思うよ?

for each は1000倍遅い、とか言う人に対して
for文単体の速度なんて測れないし、気にする意味がない
って、話が出て
その流れでコードを書いて公開する人とか、それを条件変えるだけで簡単に結果がひっくり返るよとか言うのを公開する人が出てきた

少なくとも実測値を出してるような人たちは
1000倍遅いといった人をおちょくるために、、、、
いや、for文の速度を気にするなんて馬鹿らしい事を示すためにあえて書いてるように見えるよ

189 :デフォルトの名無しさん (ワッチョイ 238c-q8zF):2016/11/13(日) 16:58:23.64 ID:wcHwfNTy0.net
コード、性能についての議論じゃなく兎角煽れればいいって荒らしはいい加減うざいわ

190 :デフォルトの名無しさん (ワッチョイ 93f8-9MLS):2016/11/13(日) 17:13:24.59 ID:ZZzhDTzs0.net
アプリケーションプログラマーが細かい速さのこととか気にすべきでないと言うのは俺も同意見

でも、アプリケーションプログラマーであっても(あるからこそ)、OSやコンパイラは全力でユーザー(含:プログラマー)を騙しに来るというのは覚えておいて欲しいと思ってる。


「USBメモリへの書き込み速度測って見ました」
「どれどれ?物理最大速度の100倍以上出てるじゃないか!
おかしいと思わない?OSのIOキャッシュ勉強してからやり直そう」

「このデバッグプリント不要だから外しといてね」
「でも、外すとクラッシュするんです」
「よし、集中レビューしよう。そう言うのは放置しちゃダメ」
「えと、無効な変数参照してました」

「動作を見るためにウェイト入れたんですがそれでも速すぎて現象がわかりません」
「、、、ああ、空ループじゃん。コンパイラに無視されるからウェイトにならないよ」


みたいな、冗談のような本当の話

191 :デフォルトの名無しさん (ワッチョイ dfec-dJcJ):2016/11/13(日) 18:13:35.45 ID:ckhnbYpT0.net
わざわざクソ文法つくるからこういうしょーもない話が出てくんだろ...
ObjCでおk

192 :デフォルトの名無しさん (ワッチョイ a766-9MLS):2016/11/13(日) 18:31:36.30 ID:0Fxu7QuG0.net
アッハイ

193 :デフォルトの名無しさん (ワッチョイ 27c9-9MLS):2016/11/13(日) 19:41:56.06 ID:6V/fQ0Vt0.net
オッパイ

194 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/14(月) 12:29:58.52 ID:RnkpU3Lyd.net
>>189
禿同

ま、しばらくは速度ネタで荒らそうとする奴は出んだろう
出たところで笑い飛ばせば済む話

195 :デフォルトの名無しさん (ワッチョイ 033c-teht):2016/11/14(月) 18:24:15.65 ID:JW47M78W0.net
好みの話だけどfor文はもっと
トレーリングクロージャめいた構文でも良かったと思う
http://swiftlang.ng.bluemix.net/#/repl/5829827ba56869580c9719a5

196 :デフォルトの名無しさん (ブーイモ MM6f-yNdZ):2016/11/14(月) 20:00:07.79 ID:9JJaNF23M.net
今猛烈にnil安全pushしてる勢力がいるけど、あいつら多分元々nilの扱いが安全だったObjCみたいな環境がある事知らんよな
Javaにnil安全が導入されるのとObjCにnil安全が導入されるのではまるでインパクトが違う
そこが理解できてないのに長ったらしい文章でnil安全の優位性訴えて空振りしてるのが笑える

197 :デフォルトの名無しさん (ワッチョイ 238c-q8zF):2016/11/14(月) 20:14:57.91 ID:7uicpZxO0.net
どこのSwift利用層だよ
あれかObjCのMember/Class Propertyのnil非安全化に対してSwiftのPropertyはnil安全だから、昔のObjCの意志を継いだ的な感じか

>>195
シンプルだな
便利そうだからMLだかで提案してみてくれよ

198 :デフォルトの名無しさん (ワッチョイ 27c9-dJcJ):2016/11/14(月) 20:34:20.36 ID:rIoU2mi10.net
ObjC信者がいうnilが安全ってnilにメッセージ送っても無視されるからとかそういうくだらんことじゃないのか?
他になんかnilを上手く扱える仕組みあったっけ

199 :デフォルトの名無しさん (ワッチョイ 138f-PwKp):2016/11/15(火) 04:22:43.03 ID:HGK9Tpoq0.net
objcはnull安全じゃないだろ。
存在しないメッセージ式にnullを返してるだけ。
それって問題の先送りでしかないから、
javaのヌルポより悪だと思う。

200 :デフォルトの名無しさん (ワッチョイ 138f-PwKp):2016/11/15(火) 04:29:11.24 ID:HGK9Tpoq0.net
null安全のメリットは文字通り
値が入ってることが保証されてることだと思う。
コンパイラがnullが入ってる可能性を指摘してくれるのはマジで便利。
jsもtypescriptでできるから手放せないな。
信者といえばそうだけど、
使わないことのメリットがあるなら教えて欲しい。ないでしょ?

201 :デフォルトの名無しさん (ワッチョイ 0f93-9MLS):2016/11/15(火) 07:35:58.33 ID:yuOO+PuR0.net
>>196
じゃ、お前さんはObjCの上で
cのヌルポインタとか無効なポインタを踏んでろ

202 :デフォルトの名無しさん (ワッチョイ 3b53-yNdZ):2016/11/15(火) 09:06:06.85 ID:NUkfEkc00.net
nullpoをnil安全導入の根拠とされると
ふぇぇとなる世界の住人がいる事もわかってないと
ただunwrap codeが増えて面倒だと思ってる層を説得できないだろうな

203 :デフォルトの名無しさん (ワッチョイ 27c9-dJcJ):2016/11/15(火) 10:38:09.96 ID:U3Mmtdzs0.net
その「ふぇぇ」の中身を具体的に教えてほしい

204 :デフォルトの名無しさん (ササクッテロリ Sp2f-wOPQ):2016/11/15(火) 10:43:21.89 ID:aNrG6800p.net
ふぇぇとかじゃないの?

>>194を筆頭に煽りたいだけの荒しだから、nil論争は無意味
なんの技術根拠もなく煽ってるだけだろ

205 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/15(火) 12:32:15.34 ID:HncvCIt2d.net
>>196
また聞きかじり煽りか

そんな他言語に対する優位性なんて視点でnil安全を語ってる所なんて見た事ないぞ、
どこの話だ?

チュートリアル系のサイトで
オプショナル型の取り扱いがめんどくさいといってるswift初心者に
これはコンパイラの優しさだから頑張って使いこなそうね
的な話なら時々見るけど

206 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/15(火) 12:33:08.60 ID:HncvCIt2d.net
>>199
ガッ!

207 :デフォルトの名無しさん (スッップ Sd1f-PwKp):2016/11/15(火) 16:56:54.36 ID:JG3cBSAhd.net
>>206
ぬるぽ

208 :デフォルトの名無しさん (ワッチョイ 238c-F9Kl):2016/11/15(火) 19:22:16.20 ID:eNNQwyG50.net
>>205
どこのサイト?聞きかじりの根拠ない煽りか?

209 :デフォルトの名無しさん (ワッチョイ 0f93-amCg):2016/11/15(火) 19:51:29.05 ID:yuOO+PuR0.net
>>208
もちろん聞きかじりだよ。
例えばこんな所の
http://stackoverflow.com/questions/24034483/what-is-an-unwrapped-value-in-swift

210 :デフォルトの名無しさん (ワッチョイ 238c-F9Kl):2016/11/16(水) 08:08:29.44 ID:f3JQk4xB0.net
最近はstackoverflowをチュートリアルに使う子がいるのか...
QAサイトをチュートリアルに使うのはきっついなぁ、まだQiitaの方がマシだろうに

211 :デフォルトの名無しさん (スププ Sd1f-9MLS):2016/11/16(水) 08:39:46.43 ID:KIDCbNFDd.net
まあどこのサイトも玉石混淆だけど、
swiftのチュートリアルに関しては
StackOverflowが当たり率が高い気がする

212 :デフォルトの名無しさん (ワッチョイ 62ec-Th+s):2016/11/17(木) 08:12:31.29 ID:ZZmJDmDd0.net
>>210
Qiitaはステマ臭がハンパないから読む気しない

213 :デフォルトの名無しさん (スププ Sdb8-N7ik):2016/11/17(木) 08:52:06.18 ID:UnJh5aZNd.net
>>195
rubyみたいでかわいいね

ところでIBM SwiftSandboxに書いたコードを
引用する方法を教えてもらえたら嬉しい

214 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/17(木) 08:58:37.73 ID:GXbz24lT0.net
下の save code → save したらURLが出てくる
nameとかは空欄でもいい

215 :デフォルトの名無しさん (スププ Sdb8-N7ik):2016/11/17(木) 11:14:32.54 ID:UnJh5aZNd.net
>>214
さんきゅ

216 :デフォルトの名無しさん (ササクッテロラ Spa9-RUi6):2016/11/19(土) 11:39:54.42 ID:K0z8adqwp.net
StackOverFlowがチュートリアルとか意識たけーな

swift.orgのブログを暇潰しに読んでみたら
Whole-Module Optimizationとか今実装進めてるのか
まだまだ最適化の余地は残ってそう

217 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/19(土) 19:51:18.37 ID:kCSsFgN3d.net
>>216
それは意識が高いとか低いとかの問題じゃなくて
日本語の情報量が圧倒的に少ないから自然に英語サイトにたどり着くだけでは?

218 :デフォルトの名無しさん (ワッチョイ 6353-mj3c):2016/11/19(土) 21:02:27.53 ID:kBqtqEES0.net
Swiftの良さを語る時にNull安全を持ち出すのやめてほしい
ObjC移行組にとってはNull安全のメリデメはトントンくらいにならない
そこじゃなくて、そのnull安全を実現しているenumやノマドとかが素晴らしく有用なのであって
null安全をアピールしてる人間はObjCerから見ると補助輪付き自転車を渡してきてこれ安全だから絶対に乗れよと言ってくる頭おかしいおじさんにしか見えない
Swift移行がこじれるだけだから黙っといて欲しい

219 :デフォルトの名無しさん (ワッチョイ 6353-mj3c):2016/11/19(土) 21:24:55.41 ID:kBqtqEES0.net
間に一文追加

ObjCerから見ると
>苦労して自転車が乗れるようになった人間に対して
補助輪付き自転車を渡してきて〜

Null安全の有用さを否定してるわけじゃないんだがObjCでiOS開発に慣れた人間が困るポイントでもないんだよそこは。実際お前らNull安全なくて詰んだことあるか?
もっと美味しいところがあるのになぜNull安全を推す?理解に苦しむ

220 :デフォルトの名無しさん (ワッチョイ 5138-svKO):2016/11/19(土) 21:38:25.43 ID:eI+Z2SFt0.net
ttps://developer.apple.com/swift/resources/
The Swift Programming Language (Swift 3)
=> チュートリアルとして分かる

Qiitaの有象無象の記事
=> 特定の項目に対してはいろはから説明してるものもあるのでまだ分かる

stackoverflowのQA
=> 特定の問題の原因/解法を調べるには良いが、チュートリアルには使えない

取り敢えず、stackoverflowを挙げとけばいいってのはヤツは意識高い系
最近のSwiftは知らんけど、betaの頃はstackoverflowよりqiitaの方が良かったな
Apple信者と意識高い系がアホほどSwift記事挙げてたからスッゲー充実してた

>>218
ageるのやめて、nil safeとNull安全の用語ミス直して出直せw
ちょいちょいワッチョイ変えたりして煽ってるけどズレてて笑いを誘う

221 :デフォルトの名無しさん (ワッチョイ 6353-mj3c):2016/11/19(土) 21:48:50.94 ID:kBqtqEES0.net
型推論で遅え遅え言ってるやつも設計をなんか間違ってるだけだから黙っとけと思う
Swiftの3大移行が進まない理由は「バカが型推論が遅いと吹聴する」「謎のNull安全推し」「破壊的変更というパワーワードにビビって触らない」だな

222 :デフォルトの名無しさん (ワッチョイ f693-1ibN):2016/11/20(日) 00:23:49.87 ID:kc7cu4Co0.net
>>219
それ、昔は大変だったのに今時の若いもんは、、、的にしか聞こえない

マニュアル車の免許取るのは大変だったのに、
オートマ車なんてもんが出てきやがって

友達と外で会う約束をするときには場所と時間をきっちり決めて
さらに待ち合わせに失敗した場合のために第二次集合ポイントまで決めていたもんなのに
携帯電話なんてもんが出てきたせいで、待ち合わせの仕方が変わってしまって迷惑じゃ無いか

223 :デフォルトの名無しさん (ワッチョイ f693-1ibN):2016/11/20(日) 00:42:06.86 ID:kc7cu4Co0.net
>>221
すまんがswift3移行は進んでいないのか?
ウチは全プロジェクト移行済みだから実感がない

随分前からXCodeが警告出してくれてるようになってたから全然問題なかった
と、言いたいところだが、実際は自動移行がへぼくて苦労したところもあった
でも、パターンがわかればあとは機械的に置き換えるだけで済んだから無問題

ま、他所が移行してなくてもウチには関係ないか


困るのは初心者向けの手頃な教科書が無いところ

224 :デフォルトの名無しさん (ワッチョイ 4066-N7ik):2016/11/20(日) 04:07:43.09 ID:FtYcGfnw0.net
>>223
>ウチは全プロジェクト移行済みだから実感がない
ご愁傷様です(-人-)

225 :デフォルトの名無しさん (ワッチョイ 9cba-RUi6):2016/11/20(日) 10:38:12.68 ID:2y7SIl1/0.net
>>224
うぷぷぷぷ

226 :デフォルトの名無しさん (ササクッテロラ Spa9-RUi6):2016/11/20(日) 11:01:10.26 ID:GIAqLfHRp.net
すまん、Swift3移行してない雑魚おる?

podなんかで外のライブラリが移行してないと面倒だけどなぁ
ObjCライブラリを選定して使ってれば関係ないか

227 :デフォルトの名無しさん (ワッチョイ e0c9-Th+s):2016/11/20(日) 11:36:07.75 ID:hZLIxGFv0.net
>>218
>ノマド

228 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/20(日) 19:17:35.30 ID:cjIN9+jzd.net
ノマドってなあに?

229 :デフォルトの名無しさん (ササクッテロラ Spa9-RUi6):2016/11/20(日) 19:21:10.60 ID:GIAqLfHRp.net
毛の壁に聞け

230 :デフォルトの名無しさん (ワッチョイ bdc9-/WwX):2016/11/20(日) 20:31:18.15 ID:HG1JDYXN0.net
ノマドワーカー
死語

231 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/20(日) 23:01:46.43 ID:j5d8SBLe0.net
まぁnとmはキーが近いしな

232 :デフォルトの名無しさん (ワッチョイ 56e5-1ibN):2016/11/21(月) 00:10:47.09 ID:0fuIyKtv0.net
詳解Swiftの第三版でるってな

233 :デフォルトの名無しさん (ワッチョイ e0c9-hkLf):2016/11/21(月) 01:01:50.73 ID:OT/+RMzH0.net
サーバサイドはibm頑張ってんのかね?

234 :デフォルトの名無しさん (ワッチョイ 62ec-Th+s):2016/11/21(月) 08:16:30.33 ID:t97dgSt20.net
>>218
>>219
>>221
Swiftマンセー!!!!
お前ら世界一すばらしい言語Swift使わないとかねえから

235 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/21(月) 09:15:18.98 ID:dBt3Nlsvd.net
便乗質問
モナドって何ですか?

Swift始めて1年の初心者ですが、教科書や公式ドキュメントで一度もモナドという言葉を見かけなかったもので
このスレで時々出てくるんですがさっぱり分かりません

ググってもSwiftと関係なさそうな難しい話ばかり

236 :デフォルトの名無しさん (ササクッテロラ Spa9-svKO):2016/11/21(月) 12:23:22.81 ID:0HSHfyI4p.net
ここ一年でモナド(?)がこのスレに出たのは>>218だけなんだよなぁ
時々ってどこで見たのやらw

237 :デフォルトの名無しさん (JP 0H85-/WwX):2016/11/21(月) 12:49:54.02 ID:goLgdzFNH.net
関係ないか?
http://d.hatena.ne.jp/m-hiyama/20060419/1145432492
https://ubiteku.oinker.me/2016/01/20/関数型つまみ食い-モナドが難しいと思われている/
http://qiita.com/mandel59/items/8f9111143aea94e7b363
https://ja.wikipedia.org/wiki/モナド_(プログラミング)

238 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/21(月) 13:04:46.91 ID:u6SvyuER0.net
モナドはモナカみたいなものです

239 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/21(月) 13:53:49.89 ID:u6SvyuER0.net
前々スレには一応あるな
http://echo.2ch.net/test/read.cgi/tech/1458491528/

>>235
これとか読んでみては
http://qiita.com/koher/items/c6f446bad54442a28bf4

240 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/21(月) 19:20:39.79 ID:dBt3Nlsvd.net
>>237
>>239
さんきゅ、でもやっぱり難しいです
読みながら居眠りしちゃった、まじ

イメージとしてはmapとかreduceとかコレクション全体に対する操作がモナド?

それとも普通にSwift使ってる分には気にする必要ない?


ちなみに新参者なので過去スレ読んでます
どこにモナドが出てきたかまでは覚えてない

241 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/21(月) 20:00:00.80 ID:u6SvyuER0.net
>>240
とりあえずflatMapが分かっていればいいんじゃない
入れ物がモナド、目的は分離/隔離

モナド則は使う側であればあまり気にしなくていい
圏論はガチ勢の領域

242 :デフォルトの名無しさん (ワッチョイ 4066-N7ik):2016/11/22(火) 02:21:40.07 ID:Hr9qjU/90.net
モナド化できるできないって言語仕様の"外"の話な気がするんだけど
昔からある種の理論原理主義者たちは「そういうことができる」じゃなくて
「そういうことしか許さない」プログラミング言語ができたら最強だよね!をやっては
パラダイムシフトごとに小爆発を繰り返しながら沈んでいってる気がする。

243 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/22(火) 06:16:26.13 ID:hXJLaKmWd.net
>>241
ありがと
詳しく知ったからといって、swiftプログラミングが楽になるようなものでもなさそうなので
気にしない事にします

少し前に出てたnil安全とか言うのも、教科書に出てこなかった言葉なんですが
何となくオプショナルバインディングの事かなと思って、ふーんとか思ってます

244 :デフォルトの名無しさん (ワッチョイ c13c-XpIe):2016/11/22(火) 19:01:43.67 ID:wbWt9J7e0.net
強いて言えばオプショナルじゃない方の話
nilを入れられない参照型を作れること

245 :デフォルトの名無しさん (スププ Sdb8-1ibN):2016/11/22(火) 21:58:58.03 ID:hXJLaKmWd.net
>>244
わかった!ウチにはわからんという事が

もう少しスキルアップするまでは気にしない事にします

246 :デフォルトの名無しさん (ワッチョイ cf93-fk+P):2016/11/27(日) 23:09:56.46 ID:2n34pXhS0.net
詳解Swift3

247 :デフォルトの名無しさん (ワッチョイ ffec-MM3T):2016/11/30(水) 23:56:22.22 ID:48Nf+yqm0.net
>>246
>詳解Swift3
https://www.amazon.co.jp/dp/4797390530/
Now Printig wwwwwwwwwwwwwww

248 :デフォルトの名無しさん (ワッチョイ 50c9-E9Xg):2016/12/02(金) 00:29:52.11 ID:6eHu8gFg0.net
早くLinuxで普通にサーバサイドで使えるようにならないかな

249 :デフォルトの名無しさん (ササクッテロロ Sp8d-25R2):2016/12/02(金) 17:41:07.77 ID:KSpIywEmp.net
>>247
第2版のキンドル版を買った人には無償で配るべきだろ。

250 :デフォルトの名無しさん (ワッチョイ 6b1a-/mAi):2016/12/02(金) 19:57:46.14 ID:glZ3suWJ0.net
こんなクソ言語がサーバーサイドで使われるわけねえだろw

251 :デフォルトの名無しさん (ワッチョイ 50c9-E9Xg):2016/12/03(土) 01:32:23.12 ID:xePRMTW90.net
>>250
ibmに言ってやれ

252 :デフォルトの名無しさん (ワッチョイ 4101-yaSi):2016/12/03(土) 17:40:32.03 ID:LP4g2t+V0.net
こういうくさいまとめ記事でSwiftが熱いと勘違いしちゃうやつがいるのかな

http://bipblog.com/archives/5311083.html

253 :デフォルトの名無しさん (ワッチョイ 50c9-Cf2b):2016/12/03(土) 18:00:15.33 ID:jLjlCp4b0.net
そんな記事で思い立って勉強始めてそのまま実際に出来るようになるやつなんておらんからどうでもええやろ
勉強を始めるきっかけに至る遠因のうちの一つ、ぐらいにはなるかもしらんが

254 :デフォルトの名無しさん (スフッ Sda8-wK09):2016/12/07(水) 12:08:20.07 ID:nQKCcTcRd.net
>>249
紙版買った人にも安価なアップグレードパスが欲しい

255 :デフォルトの名無しさん (アウアウウー Sa19-M/0O):2016/12/07(水) 15:43:37.17 ID:+GcuVx5ha.net
プロトコル内のメソッドにオプショナルつけるとエラーなるんやがどうすれば良い?

256 :デフォルトの名無しさん (ワッチョイ 753c-Cf2b):2016/12/07(水) 16:42:09.20 ID:3hVk66ux0.net
>>255
プログラマならコードで語れよ

257 :デフォルトの名無しさん (アウアウウー Sa19-M/0O):2016/12/07(水) 17:05:47.74 ID:+GcuVx5ha.net
自己解決しました
@Objcがいるんやな

258 :デフォルトの名無しさん (ワッチョイ 3e93-wK09):2016/12/07(水) 21:49:12.92 ID:kEgAfPTA0.net
>>257
う〜ん?
コード見てないからわかんないけどなんか違う気がする

259 :デフォルトの名無しさん (ササクッテロリ Sp8d-v8zE):2016/12/07(水) 22:18:03.37 ID:04THRhb6p.net
まだその制約あったんだな
1.0とかの頃にノウハウとして使ってたわ
しかしまぁ今からやるならバッドノウハウよな

260 :デフォルトの名無しさん (アウアウウー Sa19-YOWX):2016/12/07(水) 23:22:18.33 ID:frww6tdla.net
protocol testProtocol {
func method1()
optional func method2() ←エラー 'optional' can only be applied to members of an @objc protocol
}




@objc protocol testProtocol {
func method1()
@objc optional func method2()
}
これでうまく動いたんだけどやり方まずいですか?

261 :デフォルトの名無しさん (ワッチョイ 9b3c-drn7):2016/12/08(木) 07:39:50.56 ID:Xgf0Zqhi0.net
>>260
こういう意見もある
http://blog.stablekernel.com/optional-protocol-methods-in-pure-swift

コード
http://swiftlang.ng.bluemix.net/#/repl/58488e3134efab1c6b31be5d

262 :デフォルトの名無しさん (スフッ Sd2f-YmwQ):2016/12/08(木) 10:12:52.67 ID:Y2Zm3Xi7d.net
>>260
使う側のコードが分からないからなんとも言えないけど

基本的に@Objc装飾子はObjective-Cプログラムに引き渡すコード・データに付けるものだから
仮に単純にswiftのプログラムであるとするなら@Objcが出てくる事に違和感がある

必要な時は必要なんだけどさ

263 :デフォルトの名無しさん (アウアウウー Sa47-IVaD):2016/12/08(木) 10:37:41.68 ID:gKAxGgXua.net
>>262
装飾しつけないやり方ってどうやるんですか?

264 :デフォルトの名無しさん (ワッチョイ 9b3c-Ts63):2016/12/08(木) 10:51:52.94 ID:6PCHYR3j0.net
>>263
>>261見ろよ…

265 :デフォルトの名無しさん (アウアウウー Sa47-IVaD):2016/12/08(木) 11:11:12.83 ID:gKAxGgXua.net
ありがとうございました!

266 :デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ):2016/12/08(木) 11:27:40.79 ID:hXTPpY/nM.net
NS接頭語が残ってるクラスって理由あるの?
今後全て消える?

267 :デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ):2016/12/08(木) 12:05:08.44 ID:hXTPpY/nM.net
SE 0086読んだら解決しました^_^

268 :デフォルトの名無しさん (ササクッテロリ Sp27-JVDy):2016/12/08(木) 16:08:42.85 ID:bAdCGSgKp.net
>>261
「手法」じゃなく冒頭の「意見」の部分読んだら
> Swift code should take another approach
って言ってるぞw

269 :デフォルトの名無しさん (ワッチョイ 1b1d-YmwQ):2016/12/10(土) 16:30:41.11 ID:3iED4EzH0.net
https://developer.apple.com/reference/coredata/nsfetchedresultscontroller

まだ、Swiftの記述になってないね( ´Д`)y━・~~

270 :デフォルトの名無しさん (ワッチョイ 8b23-WerT):2016/12/10(土) 16:35:07.62 ID:oFE2vaPJ0.net
そのまま消えてくれても全然困らないけど

271 :デフォルトの名無しさん (JP 0H47-XlRU):2016/12/10(土) 16:48:21.29 ID:qQjpy7DvH.net
名前長すぎ

272 :デフォルトの名無しさん (ササクッテロラ Sp27-JVDy):2016/12/10(土) 17:16:53.32 ID:zoVCCI8Qp.net
SDKs
iOS 3.0+
macOS 10.12+
tvOS 3.0+
watchOS 2.0+

なぜiOS3の化石を移植したし
別名の同程度機能を持ったクラス作れば良かったのにな

273 :デフォルトの名無しさん (スッップ Sd2f-WerT):2016/12/10(土) 17:19:24.01 ID:8DqJYhuzd.net
いつでもSwift辞められるようにだよ

274 :デフォルトの名無しさん (ワッチョイ 37c9-Ts63):2016/12/10(土) 20:02:36.75 ID:djg+OUUZ0.net
CoreDataとかいう糞の固まりさっさと捨ててほしい

275 :デフォルトの名無しさん (ワッチョイ cb17-YmwQ):2016/12/10(土) 21:08:11.89 ID:jnTTSzju0.net
NextStepからは逃れられないのだはは

276 :デフォルトの名無しさん (ワッチョイ 8b8f-6LJV):2016/12/11(日) 06:35:20.34 ID:BAivgHXg0.net
coredataな代わりに何を使うのさ

277 :デフォルトの名無しさん (ワッチョイ d33c-q+wp):2016/12/11(日) 06:44:58.52 ID:CPi1f3h00.net
Realmとか?

278 :デフォルトの名無しさん (アウアウエー Sa7f-ZMVm):2016/12/12(月) 14:22:12.85 ID:AazRvE9ra.net
Swift 3.1 Release Process
https://swift.org/blog/swift-3-1-release-process/

279 :デフォルトの名無しさん (ササクッテロリ Sp27-JVDy):2016/12/12(月) 20:55:22.91 ID:Xm48GD4Op.net
Sever APIs Project
https://swift.org/server-apis/

280 :デフォルトの名無しさん (ワッチョイ 8b23-WerT):2016/12/13(火) 07:44:48.32 ID:aGvNEn/F0.net
>>278
仕様変わりすぎでどうせ廃れるのにいつまで更新するの?

281 :デフォルトの名無しさん (スフッ Sd2f-YmwQ):2016/12/13(火) 08:28:32.83 ID:CT9GP8dCd.net
変わり続けることが力の根源なのさ
by すとらうすとらっぷ

282 :デフォルトの名無しさん (スッップ Sd2f-WerT):2016/12/13(火) 09:26:53.84 ID:73HQpuIOd.net
はやくも詳解Swiftの内容と整合とれなくなりそうだな

283 :デフォルトの名無しさん (ワッチョイ 37c9-Ts63):2016/12/13(火) 11:56:20.21 ID:KXUQsQXn0.net
It is a strong goal that the vast majority of sources that built with the Swift 3.0 compiler continue to build with the Swift 3.1 compiler.

284 :デフォルトの名無しさん (エムゾネ FF2f-XlRU):2016/12/13(火) 12:17:59.60 ID:hu4l98UtF.net
相模ゴム

285 :デフォルトの名無しさん (ワントンキン MMef-YmwQ):2016/12/14(水) 22:24:17.22 ID:HfWj6KVmM.net
全ての絵文字を配列に入れたいのですが、どのような方法があるのでしょうか。また、mac本体にfinderなどで取り出せるemojiのファイルなどあるのでしょうか?

286 :デフォルトの名無しさん (ワッチョイ 4fe5-Bhnc):2016/12/14(水) 23:22:54.02 ID:yky6KY2t0.net
わからんが、unicodeで保存するんじゃね
http://unicode.org/emoji/charts-beta/full-emoji-list.html

287 :デフォルトの名無しさん (ササクッテロラ Sp29-nol0):2016/12/15(木) 08:29:23.14 ID:CehXfGlIp.net
普通にStringでいいんじゃねーの
今時、サポートしてるだろ

288 :デフォルトの名無しさん (オイコラミネオ MM34-jFiT):2016/12/15(木) 12:47:12.71 ID:K7xig0SVM.net
質問はどこにしまうかじゃねえだろ

289 :デフォルトの名無しさん (ワッチョイ 413c-i+Qt):2016/12/15(木) 20:39:21.84 ID:aXGD97Aa0.net
>>285
https://www.codecaptain.io/blog/ios-development/get-all-available-emoji-using-the-objective-c-runtime/15

objcだけど、これでなんとかなったりしない?
うまくいったら教えてよ

290 :デフォルトの名無しさん (ブーイモ MMb8-Nqhn):2016/12/15(木) 22:22:11.29 ID:lLtgDovqM.net
絵文字先頭のcharcodeを配列の先頭に入れて++してくだけじゃないのか

291 :デフォルトの名無しさん (ワッチョイ 413c-i+Qt):2016/12/16(金) 00:22:16.63 ID:mSiPAeok0.net
>>290
それだとOS毎に使える範囲調べて調整しないといけないから、結果的にめんどくさいじゃん
と他人事ながら思うんだけど

292 :デフォルトの名無しさん (ブーイモ MMb8-Nqhn):2016/12/16(金) 12:54:32.41 ID:I9PtonJVM.net
>>291
絵文字を扱える統一コードはunicodeしかないのだからosに依存せず一意でしょ。

293 :デフォルトの名無しさん (ワッチョイ 413c-i+Qt):2016/12/16(金) 13:40:25.16 ID:+Tc7Ug9p0.net
>>292
そういうことじゃない
バージョン毎に使える絵文字(や肌の色など)が増えてるのさ

294 :デフォルトの名無しさん (ブーイモ MMb8-Nqhn):2016/12/16(金) 13:59:22.75 ID:I9PtonJVM.net
>>293
それフォント依存。

295 :デフォルトの名無しさん (アウアウウー Sa05-9Iap):2016/12/16(金) 14:34:23.30 ID:MTMicKBAa.net
実機に無線インストールって出来なかったっけ?

296 :デフォルトの名無しさん (ササクッテロラ Sp29-nol0):2016/12/16(金) 14:40:32.73 ID:vMl/sGICp.net
なんでunicode限定で考える
swiftはマルチOS、任意文字コードで動かされる可能性のある言語だろ?(白目

297 :デフォルトの名無しさん (スプッッ Sdc8-I7lW):2016/12/16(金) 15:15:48.07 ID:bXGI3+Qzd.net
>>296
こマ?

298 :デフォルトの名無しさん (ワッチョイ 413c-i+Qt):2016/12/16(金) 15:50:44.50 ID:+Tc7Ug9p0.net
>>294
iOSの場合、実質バージョン依存とどう違うん?移植なんてする奴なんてごく一部じゃねーか

299 :デフォルトの名無しさん (オイコラミネオ MM34-jFiT):2016/12/16(金) 16:04:57.00 ID:bO3N4lsnM.net
>>297
おいおい

300 :デフォルトの名無しさん (アウアウウー Sa05-9Iap):2016/12/16(金) 22:24:42.15 ID:MTMicKBAa.net
アクションシートの表示がシミュレータだと動きますが実機だとアボートします。原因がわかりません

301 :デフォルトの名無しさん (ワッチョイ 413c-0G5/):2016/12/16(金) 23:41:13.06 ID:G52QpNky0.net
まず服を脱ぎます
次にログを見ます

302 :デフォルトの名無しさん (アウアウウー Sa05-9Iap):2016/12/17(土) 06:22:29.26 ID:4fBoIIO7a.net
>>301
ログがわかりません!

303 :デフォルトの名無しさん (ササクッテロリ Sp29-nol0):2016/12/17(土) 10:44:05.49 ID:TkPf6t45p.net
ビックリするほどユートピアはいつ言えば良いですか><

ここに迷い混んだiOS関連質問者は初心者スレ行け、>>1からも飛べる
swiftに関係ない質問すると遊ばれちゃうよ

304 :デフォルトの名無しさん (ブーイモ MM8d-Nqhn):2016/12/17(土) 15:55:42.03 ID:vQpe99jEM.net
>>298
勝手に条件絞られたら知るかとしか答えられないよ。
>>296
標準規格で絵文字を扱えるのはunicodeしかないからだよ。

305 :デフォルトの名無しさん (ササクッテロリ Sp29-fQwo):2016/12/17(土) 18:28:20.34 ID:TkPf6t45p.net
標準規格で勝手に条件で絞られても...知らんなw

>>290ってそんなに簡単じゃねーだろ、と思いつつ考えないようにしてたけど++すんのやっぱりメンドイ
UInt8からUnicodeScalar作って、そこからCharacter作って、一般用途には更にStringにすんのかな
ttp://swiftlang.ng.bluemix.net/#/repl/58550325b5619f13e0a93d13

Swiftは相変わらずオブジェクトの多段生成が鬱陶しいのう
extensionで省略できるから勝手にしろってスタンスなのかもだけど、Framework APIの在り様が好きになれない

306 :デフォルトの名無しさん (ワッチョイ 413c-0G5/):2016/12/18(日) 00:11:09.02 ID:UYhf7FJp0.net
https://swiftlang.ng.bluemix.net/#/repl/585555027abf1b13a51af55e

307 :デフォルトの名無しさん (ワッチョイ 56e5-jFiT):2016/12/18(日) 10:19:10.98 ID:9XJnJRxF0.net
すげぇぇええ

308 :デフォルトの名無しさん (スフッ Sdb8-f0Z7):2016/12/20(火) 19:27:56.22 ID:vNqc8Ywld.net
>>306
国旗も入れてください

309 :デフォルトの名無しさん (シャチーク 0C54-uX3G):2016/12/21(水) 11:36:55.50 ID:GYB+hQbmC.net
Unicode 9.0.0 の絵文字の一覧があるけど、見方がわからん

http://www.unicode.org/versions/components-9.0.0.html
http://www.unicode.org/Public/9.0.0/ucd/EmojiSources.txt

310 :デフォルトの名無しさん (ワッチョイ 413c-0G5/):2016/12/21(水) 11:59:56.06 ID:xZVHhTrr0.net
>>308
国旗だけ
https://swiftlang.ng.bluemix.net/#/repl/5859eea46d21191312f171cc

国コード一覧
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

311 :デフォルトの名無しさん (スフッ Sdb8-X9Fs):2016/12/21(水) 18:40:04.69 ID:TE+vjmu6d.net
>>310
これはすごい
2文字国コードを全パターン生成してユニコード化するとは

ucs4が21ビットに制限された時は絶望したが
UTF32割と上手く作られてるなぁ

312 :デフォルトの名無しさん (ワッチョイ e03c-i+Qt):2016/12/21(水) 18:44:49.36 ID:jZ5HwhFO0.net
>>310
Risってどういう意味?

313 :デフォルトの名無しさん (ワッチョイ 413c-0G5/):2016/12/21(水) 21:29:06.87 ID:xZVHhTrr0.net
>>312
Regional Indicator Symbol (U+1F1E6から始まる地域コード用のアルファベット)の頭字語

314 :デフォルトの名無しさん (ワッチョイ 7910-Azor):2016/12/21(水) 21:55:35.03 ID:pOOrMtXX0.net
>>311
UTF32じゃなくてUnicodeの合字システムが上手く作られてる、じゃないの?
RIS2文字が合字として国旗1文字(?)として表示されるようになってるはずだけど

315 :デフォルトの名無しさん (アウアウウー Sa05-9Iap):2016/12/21(水) 21:56:20.04 ID:5lzFM20Ca.net
中級者向け技術書教えてください

316 :デフォルトの名無しさん (ワッチョイ e03c-i+Qt):2016/12/21(水) 22:57:01.50 ID:jZ5HwhFO0.net
>>313
d

317 :デフォルトの名無しさん (ワッチョイ 413c-AUQK):2016/12/21(水) 23:02:50.14 ID:6utLXA1y0.net
ViewとViewControllerは違うと、何度言えば解るんだ?

318 :デフォルトの名無しさん (ワッチョイ bfb5-g5tI):2016/12/21(水) 23:38:24.23 ID:TqJ5vR9v0.net
すげーどうでもいい所だけど、関数の命名規則がおもろいな
swift.orgのガイドラインをガン無視で笑う

319 :デフォルトの名無しさん (ワッチョイ e0c9-6+SE):2016/12/21(水) 23:49:08.43 ID:RCM7Zvqs0.net
国旗絵文字はぜんぜん上手くないぞ
ちょっと前に文字コードスレで話題になってたけど

[SE]スウェーデン国旗
[ES]スペイン国旗
[SE][SE]でスウェーデン国旗*2のつもりが
スウェーデン国旗が絵文字フォントに入ってなかったら
[S][ES][S]でスペイン国旗に実際に化けたりする

同じUnicodeのサロゲートペアは、上位と下位でコードブロック分けられてるから必ず[上位][下位]の組み合わせでペアの区切りを判別できるようになってたのに、
後発のRegional Indicator Symbolはそれをしなかった
責任者出てこいって感じ

320 :デフォルトの名無しさん (ワントンキン MM3f-q7cB):2016/12/22(木) 09:57:05.57 ID:i/pZa1E8M.net
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

321 :デフォルトの名無しさん (ワッチョイ bf32-hWIT):2016/12/22(木) 10:50:51.81 ID:qTtm125Z0.net
>>319
それは駄目だろ……1ビット上位下位を区別する情報入れられれば……

322 :デフォルトの名無しさん (ワッチョイ 6b7b-TSM7):2016/12/22(木) 12:17:57.82 ID:/ytrOsGa0.net
合成文字自体がもうな。
何考えて入れたんだこんなの

323 :デフォルトの名無しさん (ワッチョイ 1f93-W3gD):2016/12/23(金) 11:40:23.82 ID:dCUGoqXg0.net
UCS/ユニコードが固定幅文字コードを諦めた事を考えれば
Swiftのstringは良く出来てるよな

背景を知らないとクソ使いにくいだけなんだが

324 :デフォルトの名無しさん (ササクッテロリ Spcf-4tq9):2016/12/23(金) 16:01:01.15 ID:mdacHMN9p.net
イマドキ、文字を固定長で扱う新興言語なんてあるの?
2010年代で使われ始めた言語は総じてそんなものだろ

325 :デフォルトの名無しさん (ワッチョイ 1f93-W3gD):2016/12/24(土) 04:53:12.35 ID:Kb337a0Z0.net
>>324
とりあえずおまいが文字列で困った経験が無いことは分かった

浅学ながら2010年以降にリリースされた言語をSwift以外に知らないが

326 :デフォルトの名無しさん (ワッチョイ bf42-GMQd):2016/12/24(土) 09:31:27.94 ID:qYWxKasf0.net
>>323
もともとそのつもりだったのに諦めたのはutf-16だけだろ。

327 :デフォルトの名無しさん (ワッチョイ 572b-1x4y):2016/12/24(土) 11:13:10.13 ID:8cn52jEt0.net
文字コードは7bit, 8bit, 16bitと固定長を続けてきて、ようやく固定長を諦めた印象
プログラミング言語の文字(列)は早々に固定長諦めて可変長に

328 :デフォルトの名無しさん (ワッチョイ e342-i2qZ):2016/12/25(日) 13:01:46.70 ID:LALK6bkG0.net
>>322
26文字しか把握できないヤンキーの発想だから

329 :デフォルトの名無しさん (スフッ Sd9f-W3gD):2016/12/25(日) 16:22:48.74 ID:dXQe++nzd.net
でもまあ、言語標準(含:標準ライブラリー)で、
ユニコードの国旗を1文字として
取り扱ってくれるようなプログラミング言語はまだ少ないと思うな
内部を隠蔽して複数のビューを通じて取り出せるのも嫌いじゃない
文字列が危険物であると言う主張が伝わってくる

あとは正規表現ライブラリの使いやすいのが提供されれば嬉しい

個人的な好みだけで言うとRubyの文字列の方が好きなんだけど

330 :デフォルトの名無しさん (ワッチョイ bf42-GMQd):2016/12/25(日) 21:35:08.96 ID:LfSOKVhB0.net
>>327
32もあるからね

331 :デフォルトの名無しさん (スッップ Sddf-rd9B):2016/12/26(月) 08:33:15.74 ID:ZBFCqPGMd.net
>>302
一旦服を着た方が良いよ

332 :デフォルトの名無しさん (スププ Sd9f-W3gD):2016/12/26(月) 08:38:33.30 ID:+y9otMfad.net
>>330
せめて32bitフルに使ってくれればいいものを
21bitしか使わないなんて中途半端なことをしてくれるから

筋の悪いUTF16なんか早々に捨てちゃえば良かったのに

333 :デフォルトの名無しさん (ササクッテロラ Spbf-vGip):2016/12/26(月) 14:42:52.42 ID:mhrTCx4Up.net
数年後、、、そこには32bitで足りなくなって64bitにしたUTFの姿が

334 :デフォルトの名無しさん (アウアウウー Sa0f-dZB4):2016/12/26(月) 15:08:39.98 ID:3l7Xk6fYa.net
Swiftの醍醐味教えてください!!!

335 :デフォルトの名無しさん (ワッチョイ 8fc9-aM8P):2016/12/26(月) 15:22:17.28 ID:TRnwbnfO0.net
>>333
宇宙人とシームレスに文書交換ですね

336 :デフォルトの名無しさん (ワッチョイ 8fc9-aM8P):2016/12/26(月) 16:20:07.97 ID:TRnwbnfO0.net
朗報
http://japan.cnet.com/news/service/35094249/?tag=as.latest

337 :デフォルトの名無しさん (ワッチョイ ef1d-W3gD):2016/12/27(火) 09:45:54.40 ID:emRcq3HU0.net
今日詳解Swift 第3版届かなかった(´;ω;`)

338 :デフォルトの名無しさん (スップ Sd9f-auU4):2016/12/27(火) 10:43:59.74 ID:tr0nUT2nd.net
ざまあ

339 :デフォルトの名無しさん (ササクッテロリ Sp4f-vGip):2016/12/27(火) 11:51:09.22 ID:sIydEYNyp.net
konozamaかな

>>334
毎年言語仕様を楽しませる感じに変更する所
いつも楽しく遊ばせて貰ってマス

340 :デフォルトの名無しさん (ワッチョイ 0fbc-Jkes):2016/12/27(火) 12:56:35.72 ID:IWLnDm1d0.net
日曜プログラマ専用言語だからなSwiftは

341 :デフォルトの名無しさん (ササクッテロリ Sp4f-vGip):2016/12/28(水) 07:01:13.93 ID:j4SHG8/Ap.net
こんな言語、業務でやろうものなら提案/採用したヤツをブン殴るレベルだよw

それをアポーが開発、保守してるのはウケる
いつコミュニティベースにして手を引くのか
4か5か、遠くもない未来だと思うんだけどなぁ

342 :デフォルトの名無しさん (ワッチョイ 1f93-W3gD):2016/12/28(水) 08:06:02.31 ID:Obj5weA10.net
>>341
すまんうちはiOSアプリの新規プロジェクトはSwiftが第一選択肢だ

343 :デフォルトの名無しさん (ワッチョイ 37c9-hFe5):2016/12/28(水) 08:28:26.01 ID:bvnjBJpz0.net
>>341
それは文法的にスジが悪いってこと?
それともまだ安定してないってこと?
前者ならObjCのほうが悪そうだし。
後者ならまだ新しいせいだし(mozillaのrustなんて1.0になるまで酷かった)。
それもほかに何かある?

344 :デフォルトの名無しさん (ワッチョイ 6b7b-TSM7):2016/12/28(水) 08:38:48.68 ID:yWrP/m5t0.net
Appleのフレームワーク自体いつまでたっても安定してないんだから言語が多少変わろうが誤差みたいなもんさ

345 :デフォルトの名無しさん (ワッチョイ 0fbc-Jkes):2016/12/28(水) 09:43:05.22 ID:61DJDhP40.net
>>342
まじか、やべぇな...

346 :デフォルトの名無しさん (ワッチョイ 6f10-YQ1g):2016/12/28(水) 10:33:18.69 ID:08RViD+L0.net
メインサービスのアプリとかで、アップデートをし続けることを考えていて、保守コストがどのみち継続的に出ていくのがわかっていればSwift
逆に請負のアプリなんかで次回の発注次第で大規模なアップデートするかしないか決まる、みたいなのだったらObjective-Cがいいんじゃないの?
要は言語仕様が変更されるかもしれないコストと実装そのもののコストの差を比較してどっちが低くなるかだと思うから
お客さんにとっては言語の仕様が変わったので今回は軽微なアップデートですが工数が余計にかかりますというのは納得ができないだろうしね。

347 :デフォルトの名無しさん (スップ Sdff-6FRj):2016/12/28(水) 10:38:56.02 ID:bODOsbQ2d.net
>>346
「メインサービスのアプリとか」の「とか」は、「メインサービスのアプリ」以外の何?

348 :デフォルトの名無しさん (ワッチョイ 8fc9-aM8P):2016/12/28(水) 12:29:13.03 ID:kFL7wfb20.net
>>346
次の保守が何年後か知らんけど
古いバージョンのswiftとか
だれも読めなくなってるよな

349 :デフォルトの名無しさん (アウアウウー Sa0f-RXuE):2016/12/28(水) 13:07:21.93 ID:a+zBu4aja.net
Objective-Cからじゃなくてもおーけーでつか?

350 :デフォルトの名無しさん (ワッチョイ 0fbc-Jkes):2016/12/28(水) 13:36:15.97 ID:61DJDhP40.net
C言語やったことあるならそれでもいいんじゃね?
Objective-CはC言語知ってれば普通の人ならちょこっとのコストで習得できっから

351 :デフォルトの名無しさん (ワッチョイ ab66-DLF2):2016/12/28(水) 23:06:32.13 ID:zgsLwAdc0.net
CやってC++の必要性がわからなくてJavaでああこういうこと…
から、Objective-C来ると「最初からこれにしろ!」ってなる。

352 :デフォルトの名無しさん (ワッチョイ 865b-4xst):2016/12/29(木) 00:28:34.96 ID:lKSLRFPi0.net
Objective-Cは歴史は長いけどほんと温故知新な言語だと思うわ

353 :デフォルトの名無しさん (ワッチョイ 6a93-qQw5):2016/12/29(木) 00:40:51.81 ID:lVIy8RIr0.net
>>351
c++は別の世界
踏み込みすぎると暗黒面に引きずり込まれます
Swiftの方が安全

354 :デフォルトの名無しさん (ワッチョイ 4ac9-vKOO):2016/12/29(木) 00:40:53.89 ID:OGBMppob0.net
>>352
え?どこが?

355 :デフォルトの名無しさん (ワッチョイ e366-Fh/7):2016/12/29(木) 01:53:14.80 ID:lK2W9S2T0.net
ガベージコレクションよりリテインカウントの方がやっぱよかった。とか?

個人的にはたぶんsmalltalkからの流れなんだろうけど
恐ろしく「オブジェクトに命令を与えて何かさせる」で統一されていて
「できねぇのはそのオブジェクトの責任」で外への影響波及を最小限にしてる思想が面白かった。
(結合が疎の部分でクラス分けされていて、密な部分はC)

356 :デフォルトの名無しさん (ワッチョイ 865b-4xst):2016/12/29(木) 03:40:31.76 ID:lKSLRFPi0.net
Objective-Cはシンプルなんだよね思想自体が

357 :デフォルトの名無しさん (ブーイモ MMaa-Vq3R):2016/12/29(木) 06:20:44.64 ID:13IxHxtAM.net
メッセージ投げても聴こえない振りするオブジェクトとか
返事するけど何もしないオブジェクトとか

358 :デフォルトの名無しさん (ワッチョイ de42-5AW6):2016/12/29(木) 07:52:07.62 ID:bUdbWaJH0.net
>>355
リテインカウントってただの関数名だぞ。
リファレンスカウントのことだとすると、swiftはリファレンスカウント方式のガベージコレクタなのでどちらか選択できる概念のものじゃない。

359 :デフォルトの名無しさん (ササクッテロリ Spa3-fehe):2016/12/29(木) 08:11:03.90 ID:7bfuEKFUp.net
そういう言葉尻を挙げた煽りはいいから
swiftスレでobjcの良さを語り始める>>355も痛いけど、>>358も痛いわ

360 :デフォルトの名無しさん (スプッッ Sd4a-4xst):2016/12/29(木) 08:26:39.29 ID:uZ56/Y+Td.net
自分の基準だけは正しいという前提

361 :デフォルトの名無しさん (ワッチョイ de42-5AW6):2016/12/29(木) 09:22:43.84 ID:bUdbWaJH0.net
>>359
根本的に理解が間違ってることを指摘したのにどこが言葉尻なん?
何を指摘したのか理解してないだろ?

362 :デフォルトの名無しさん (スップ Sdaa-tTSs):2016/12/29(木) 09:37:09.17 ID:NsphQCuqd.net
>>359
〉そういう言葉尻を挙げた煽り

言葉尻?
自分の無知や間違いを認めない方が問題。
とても大切な事。
動きを正しく理解していないから、そういう発言になるんだよ。
理解力が低いから、わからないんだろうな。

363 :デフォルトの名無しさん (ワッチョイ 3b42-bIh6):2016/12/29(木) 10:27:38.30 ID:KtJtlY/K0.net
>>350
できん
ソースは俺

364 :デフォルトの名無しさん (ワッチョイ 0ece-O/vA):2016/12/29(木) 10:55:47.24 ID:ZKfLUl1q0.net
>>336
ぶっちゃけ、朗報じゃないな。
エィっと、即刻https 接続必須にすべきだったと思うよ。

365 :デフォルトの名無しさん (ワッチョイ d33c-CBwx):2016/12/29(木) 17:09:44.23 ID:Ql74sNGH0.net
>>350
だがSwiftにどっぷり使っててたまに触るとど忘れしてるんだよな

366 :デフォルトの名無しさん:2016/12/29(木) 20:31:48.17 ID:P9vMwfrX.net
XXX-Bridging-Header.hにでインポートしたヘッダファイルに書かれてる
コンパイラディレクティブ@class XXXXがswift側から見えないようで
Use of undeclared type ‘XXXX’
ってエラーがでるんですが解決方法とかありますか?

367 :デフォルトの名無しさん (JP 0H4f-Vq3R):2016/12/30(金) 16:15:57.73 ID:Q3tvxZdgH.net
>>365
老化

368 :デフォルトの名無しさん (ササクッテロラ Spa3-LbII):2016/12/30(金) 18:28:31.72 ID:+0G7T/E5p.net
Xcodeの問題かと思ったけど、シンプルな状態にしてもだめぽ

$ cat bridge.h
@class Hello;

$ cat main.swift
let hello = Hello()

$ swift -frontend -c -import-objc-header bridge.h main.swift
main.swift:1:13: error: use of unresolved identifier 'Hello'

@class使わないで、素直に@interfaceで宣言したヘッダを食わせるしかないんじゃないかね
swift-evolutionにも上がってない気がするから、どうしても欲しいなら挙げてみてはどうだろう

369 :デフォルトの名無しさん (ワッチョイ f31d-qQw5):2016/12/31(土) 01:24:26.16 ID:JiRCGpmr0.net
Swiftの文字列の範囲ってどうなってるの?

"いろは"..."こまち" ~= "かおり"がtrueを返すのが良くわからない

370 :デフォルトの名無しさん (ワッチョイ d33c-Sa8B):2016/12/31(土) 09:25:48.68 ID:mE/kuofD0.net
>>369
"いろは" <= "かおり" && "かおり" <= "こまち"

371 :デフォルトの名無しさん (ワッチョイ f31d-qQw5):2016/12/31(土) 11:55:44.89 ID:JiRCGpmr0.net
そういうことか
ありがとうございます

372 :デフォルトの名無しさん (ワッチョイ c678-qQw5):2017/01/01(日) 16:12:05.39 ID:LRDjbo8a0.net
>>369
どうしてそう言う文字列判定をやりたくなったのかをkwsk

373 :デフォルトの名無しさん (ワッチョイ f31d-qQw5):2017/01/01(日) 16:49:50.79 ID:pJ4YqSE70.net
詳解Swift読んでたら出てきただけだよ

374 :デフォルトの名無しさん (アウアウカー Sa6b-nn1e):2017/01/03(火) 20:58:51.42 ID:i262efYCa.net
1年くらい独学でやってきたけど、最近いきづまってきたなぁ。独学というのが無理があるのか、、、
勉強会でもあれば参加したい。

375 :デフォルトの名無しさん (ワッチョイ 865b-O/vA):2017/01/03(火) 21:21:58.86 ID:mYtDE+670.net
そもそもSwift自体に無理があるから気にしなくていいと思う

376 :デフォルトの名無しさん (ワッチョイ 4a3c-cI3V):2017/01/04(水) 02:15:14.63 ID:YVtV1wPR0.net
1年も独学ってどんだけ深掘りしてるのよ

377 :デフォルトの名無しさん (ワッチョイ 865b-O/vA):2017/01/04(水) 09:22:00.67 ID:ws9aPhGs0.net
Swiftは仕様がコロコロかわるから学習もダラダラしちゃうんだろう

378 :デフォルトの名無しさん (スッップ Sdaa-4xst):2017/01/04(水) 09:55:37.90 ID:AKqv+vIqd.net
Swiftはモダン()さを追求してんのか知らんが、「無駄に」without Cなんだよな
ラットナーのセンスがクソ過ぎ

379 :デフォルトの名無しさん (ワッチョイ 4ac9-CBwx):2017/01/04(水) 11:42:36.33 ID:UeSeDktg0.net
リセットできる機会に無批判にC追従するほうがよっぽど無駄だろ
そんなんだから老害って陰口言われるんだぞオッサン

380 :デフォルトの名無しさん (スッップ Sdaa-4xst):2017/01/04(水) 12:14:42.85 ID:JWIK2up0d.net
短絡的に老害とかいう意識高い系もどうかと思うわ

381 :デフォルトの名無しさん (アウアウカー Sa6b-nn1e):2017/01/04(水) 12:23:42.84 ID:BZb3HoVpa.net
1年独学したと書き込んだものですが、もともとフォートランを少しかじったことある程度なんで、
プログラミングを1からやりたいという気持ちでした。
なかなかサンプルの内容も?となることがまだ多くて、独学の限界かもって思ってました。

382 :デフォルトの名無しさん (ワッチョイ 865b-O/vA):2017/01/04(水) 12:47:37.75 ID:ws9aPhGs0.net
>>378
>「無駄に」without C
無駄にねぇw
まあわからんでもない
べつにwithout Cはいいんだけど、Cの便利だったシンタックスも
意地でも変えなきゃいけない感は確かにあるかもな

383 :デフォルトの名無しさん (ワッチョイ 865b-O/vA):2017/01/04(水) 13:01:22.83 ID:ws9aPhGs0.net
>>381
発展途上なSwiftがまともに勉強する言語だというのは少し可哀想な気もするけど
一つ一つ覚えていけば難しくはないと思うけどな
行き詰まってるポイントでも書いてみればここにいるSwift愛者が答えてくれると思う

384 :デフォルトの名無しさん (ササクッテロリ Spa3-fehe):2017/01/04(水) 14:16:51.43 ID:YWPaOegwp.net
一年前のswiftってどんなだったかなぁとQiita眺めてたら
Eitherが3で公式採用される?って夢見ててワロタ
そう言えばそんなものもあったなぁ

385 :デフォルトの名無しさん (ワッチョイ 4a3c-cI3V):2017/01/04(水) 18:23:56.54 ID:YVtV1wPR0.net
>>381
最初にプログラミングの独学の仕方を独学することを勧める
Swiftに限って言えば今のところ英語のリソースにあたらないと厳しいと思う

386 :デフォルトの名無しさん (ワッチョイ de42-lvqa):2017/01/04(水) 18:41:03.84 ID:SBIBjCGJ0.net
>>385
E言語の独学方法を教えてくれ。

387 :デフォルトの名無しさん (ワッチョイ 1eba-vAWO):2017/01/04(水) 18:42:19.06 ID:oADIImOs0.net
他人のコードを読む
以上

388 :デフォルトの名無しさん (ワッチョイ d33c-Sa8B):2017/01/04(水) 22:55:09.63 ID:MF1GJy5o0.net
>>381
読む→調べる(what)→調べる(why)
https://github.com/apple/swift/tree/master/stdlib/public/core

行き詰まったら聞く

389 :デフォルトの名無しさん (ワッチョイ 4a3c-cI3V):2017/01/04(水) 23:50:11.58 ID:YVtV1wPR0.net
>>386
まず目的の質を高めるのが大事
具体的に解決したい問題が念頭にあるかどうかで学習効率が大きく変わってくる

何のためにプログラミング言語を学ぶのか?
プログラミング言語を学ぶことで解決したい問題は何なのか?

例えば以下の3つなら3番目が断然学習効率が高い(エロ最強)
- 関数型プログラミングの考え方を知るためにHaskellを学ぶ
- iOSアプリを作れるようになるためにSwiftを学ぶ
- エロ動画のコレクションを自動生成できるようになるためにJavaScriptを学ぶ

390 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/05(木) 00:05:47.40 ID:JJBRc58h0.net
(続き)
1. 目的の質を高める

2. 信頼できる優れたリソースを選ぶ
   - チュートリアル、本、動画、オンラインコース、その他
   - スタンダードライブラリ、サードパーティライブラリ、その他ソースコード

3. 短期間に集中して学ぶ
   - 本なら1冊2週間以内が理想、どんなに長くても1ヶ月

4. 読むだけ見るだけじゃなく必ず手を動かす
   - 写経するだけでもやらないより格段にいいが自分で考えてコードを書く問題があると身につきやすい

5. ノートを取る
   - 本を読み返さなくてもある程度復習できるように
   - 自分の場合はアウトライナーを使ってる(マインドマップとかでもいいと思う)

6. 学びながら作る
   - 自分が欲しいと思う簡単なツールを学びながら作る
   - 例えば「セール中アプリを通知するツール」等
   - 言語を学ぶためにはCUIツールのほうが効率がいい
   - テキスト処理・ファイル処理・Webスクレイピング等

7. メモる(ノートとは別)
- HOWTO/Tips:〜したい場合にはどうすればいいのか?
- WHY:なぜXXじゃなくYYするのか?
- ERROR:発生したエラー内容とその原因、再発防止策
- VOCABULARY:用語、概念
- REFERENCE:公式ドキュメント、Style Guide、リファレンス

以上が自分のやり方だけど目的や人によってやり方は変わるはず

391 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/05(木) 00:11:19.38 ID:JJBRc58h0.net
長文スマソ

良いコードを書くためにはたくさん読んでたくさん書いてたくさん書き直すのが大事だけど
新しいプログラミング言語を身につけるためには自分が使う道具を作ってみること(上の6番)が最重要な気がする

392 :デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs):2017/01/05(木) 00:12:03.17 ID:t0+k7rBa0.net
Swiftとか不向きすぎだろ

393 :デフォルトの名無しさん (ワッチョイ 5b3c-IbiL):2017/01/05(木) 01:08:30.19 ID:RQyVxWdy0.net
SwiftのプロはSwiftで自家発電してるからな
そりゃ上達するわけだよ

394 :デフォルトの名無しさん (スッップ Sdff-9Pqs):2017/01/05(木) 01:11:24.33 ID:YFuTJ90Hd.net
Swiftが始めて学ぶ言語なのは絶対おすすめしない
変な癖がついて他言語学ぶときの障害になる

395 :デフォルトの名無しさん (ワッチョイ 1b66-SevC):2017/01/05(木) 06:39:39.52 ID:R8ehuYNe0.net
変な癖というか、なんでこれAppleがプッシュしちゃったのかわからんけど
後々に次世代になるポテンシャルはあるのかもしれんが
まだ海の物とも山の物ともつかない発展途上の言語で
なにより古参が困ってるのは

"別にこれでプログラミングが楽になるわけでもなんでもない、
理念なき新しい文法の新言語いつものように一個追加されただけ"
だってとこなんだよなぁ… 特に使う意味がない…

396 :デフォルトの名無しさん (JP 0H3f-q3aP):2017/01/05(木) 06:59:23.35 ID:42rV0dhtH.net
>>394
わかりますω

397 :デフォルトの名無しさん (JP 0H3f-q3aP):2017/01/05(木) 07:00:36.19 ID:42rV0dhtH.net
>>395
健保と住基とマイナみたいな

398 :デフォルトの名無しさん (ワッチョイ ab8f-S2pU):2017/01/05(木) 10:22:06.94 ID:xO3cTqiR0.net
初めて使う言語にoptional型があると
面倒くさいとしか思わないかな?
null地獄

399 :デフォルトの名無しさん (ワッチョイ db1d-+flj):2017/01/05(木) 10:37:51.41 ID:J4n9XDOy0.net
どうしてCGPointの位置がCocoaだと長方形の左下で、Cocoa Touchだと長方形の左上なんだろうね

400 :デフォルトの名無しさん (ワッチョイ 1b7b-spyU):2017/01/05(木) 12:13:39.84 ID:rS/TqFdr0.net
>>398
全てのオブジェクトの変数がoptionalであるJavaで入門する奴が多いんだからそこは大した問題じゃなくね

401 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/05(木) 12:35:52.19 ID:PwoXhQQ80.net
>>399
数学意識して左下にしていたのを実用重視で改めたのでは

402 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/05(木) 15:08:20.98 ID:zjhRqjNop.net
nullが許されない言語仕様ってrust推しかよ

初めて使う言語がObjCだった人も多いしswiftでも別にな
ObjCメッセージ文法が至上なのはいいけど、汎用性がねぇw
Swift Optional型なんざそれに比べれば誤差よのう

403 :デフォルトの名無しさん (アウアウウー Sa3f-IW1l):2017/01/05(木) 15:50:12.04 ID:WkTIUcDja.net
ヌルが入る入らないを意識してプログラムするか?

404 :デフォルトの名無しさん (ブーイモ MMff-S2pU):2017/01/05(木) 17:18:55.89 ID:oFOZ2y/SM.net
いっそのことrustを採用してくんないかな、iphoneのためだけに新言語とかめんどい

405 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/05(木) 17:32:58.79 ID:sWdRcuvD0.net
それいっちゃRustはFirefox書き直しのためだけの新言語なんだが…

406 :デフォルトの名無しさん (スップ Sdff-oQtP):2017/01/05(木) 18:22:18.82 ID:YNtiq33Od.net
>>404
ほんとこれ

407 :デフォルトの名無しさん (ブーイモ MM3f-twlg):2017/01/05(木) 20:45:21.20 ID:P+GiqLXdM.net
>>403

408 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/05(木) 20:47:15.64 ID:zjhRqjNop.net
rustはiOSで使えるクロスコンパイラが公式提供されてるんだから使えば?と思うけど
それはそれとして、 swiftがヤならobjcでいいじゃん、、、
どっちもイヤならアポー端末を諦めろというね

409 :デフォルトの名無しさん (ワッチョイ 0f42-HvS5):2017/01/05(木) 21:15:32.68 ID:P4uSEloo0.net
Swiftオープンにするっていってたやん!

410 :デフォルトの名無しさん (ワッチョイ 0fba-oQtP):2017/01/05(木) 21:58:08.24 ID:jBQh1CN00.net
オープンにしただろいい加減にしろ

411 :デフォルトの名無しさん (ワッチョイ 6f5b-yz8t):2017/01/06(金) 00:00:22.89 ID:bcUwFgd80.net
iPhone(Apple)専用言語という意味ではObj-CもSwiftも一緒だけど
初めて学ぶ言語ならObj-Cの方がCの勉強にもなるからSwiftより断然まし
SwiftはObj-C以上に排他的変態的シンタックスだから初学者には
やっぱり個人的にはお勧めできないわ

412 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/06(金) 00:22:09.68 ID:Y1Cw0qRA0.net
排他的変態的シンタックスってどの辺のこと言ってるの?
そんな特殊だと感じることはないんだが

Objective-Cに比べると格段にタイプ量が減って見た目もスッキリするから
個人的にはそれだけでも大きなメリット

413 :デフォルトの名無しさん (ワッチョイ 1b66-SevC):2017/01/06(金) 00:28:39.65 ID:BpurgW/q0.net
>タイプ量が減って
職業プログラマ特有のこの価値観がもうゲロ出るぐらい嫌い

414 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/06(金) 00:33:12.22 ID:PzH0fr810.net
Swiftが排他的変態的とか他の言語知らなさすぎるだけだろ
プログラマとして勉強不足なのバレバレだぞ

415 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/06(金) 00:33:15.56 ID:Y1Cw0qRA0.net
はあそうか
タイプはXcodeが補完してくれるから実質的にはそこまでの違いはないかもしれないんだが
文字を読む量が違うんだよ でそれはバグの量に直結するかんね

416 :デフォルトの名無しさん (ワッチョイ 1b66-SevC):2017/01/06(金) 00:50:24.79 ID:BpurgW/q0.net
>文字を読む量が違うんだよ でそれはバグの量に直結するかんね
はぁ。
あなたは一生work1にwork2から変数A1を代入してこれでバグが少ない!とほざいててください。それでいいよ

417 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/06(金) 01:05:43.98 ID:/fM3tdtK0.net
タイプ量の少なさは職業プログラマ云々より
関数型言語界隈からの価値観というか流れでは

418 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/06(金) 01:57:40.55 ID:Y1Cw0qRA0.net
>>416
読む量が減ればバグが減るって言ってるのに増やしてどうすんねんw

419 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/06(金) 01:58:56.36 ID:Y1Cw0qRA0.net
workなんて言葉久しぶりに聞いたけど
今でも普通に使われてる言葉なの?

420 :デフォルトの名無しさん (ワッチョイ dfc9-6vgr):2017/01/06(金) 02:18:34.24 ID:EL7IyQQ80.net
>>404
同意

421 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/06(金) 07:52:01.44 ID:Q/mvZ92R0.net
>>389
>>390
お前良い奴だな
なかなかいい学習ノウハウだ

おれRuby勉強した時は良質なxx写真がアップされているスレを解析して
スレ内のURLから写真を片っ端からダウンロードするプログラムを書いたな

そう言えば大学院の先輩に英語の速読できるようになりたいと聞いた時の回答は「Hな本読むといいです」だった

つまりエロ最強!

422 :デフォルトの名無しさん (スプッッ Sdff-B9xl):2017/01/06(金) 12:21:21.27 ID:RUdDycfgd.net
>>415
そう、冗長だと見通しが悪すぎる。
半分はライブラリ設計のせいで、残りはc言語のせいの気もするけど。

423 :デフォルトの名無しさん (ワッチョイ bb10-51vH):2017/01/06(金) 19:38:50.74 ID:Gq0Nc1/d0.net
Obj-CのNSArrayとかNSDictionaryのシンタックスシュガーなかったころはマジで横長になりすぎて読みづらかったけどね。
同等のJavaのコードに比べて、単に配列から値を取り出してるだけの行も複雑な命令を実行してる行も同等に横いっぱいになるから飛ばし読みがしづらくてしっかり読む必要があった。
わけのわからない変数名や関数名をつけて短くていいよねみたいな話ではないよ。BASICとかの時代じゃないんだからさぁ。

424 :デフォルトの名無しさん (ワッチョイ 2b0c-tEgc):2017/01/07(土) 00:28:19.84 ID:DNozFqRa0.net
ポインタ周りをもうちょっとC寄りにしてくれたらなぁ。

別ファイルで objc コード書くと見通し悪いから、Swift に局所的に objc コード埋め込めたりすると面白いかな、
C#のunsafeとか __asm {} みたいに。欲を言えば言語指定クロージャみたいな感じ

425 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/07(土) 08:53:14.57 ID:4HC1Pjzk0.net
>>424
それじゃwithout cにならないべ

426 :デフォルトの名無しさん (ワッチョイ 6f5b-yz8t):2017/01/07(土) 08:55:58.44 ID:72YrLFZp0.net
だからwithout Cにする意味がないんだって

427 :デフォルトの名無しさん (ササクッテロリ Sp3f-L2iV):2017/01/07(土) 08:57:56.42 ID:182Vw6zJp.net
それこそ可読性が悪いソースになりそう

428 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/07(土) 09:19:02.71 ID:OQtShFizp.net
HTMLの中にプログラム書けると可読性よくね? > PHPスゲー

なお、現在は、、、

429 :デフォルトの名無しさん (ワッチョイ 6f5b-yz8t):2017/01/07(土) 09:31:45.95 ID:72YrLFZp0.net
「無駄に」without CなSwiftならではの悩みだな

430 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/07(土) 09:37:34.24 ID:iBRfuxUXa.net
可読性を犠牲にしてまでもSwiftのソース中にCのソース埋め込めたらなぁ
って思う時って例えば具体的にどういうケースなんだろ
ただ単にC言語に慣れててすぐ書けるからってことじゃないよね?

431 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/07(土) 12:02:53.35 ID:OQtShFizp.net
>>424はSwift中にCが書けると可読性良くなると思ってるから質問に答える人がいない

一応、UnsafeMutablePointerを操作するよりはCの生ポインタ操作出来る文法が楽ってのはあるけど
Swiftでポインタ操作が必要なら自前ラッパーAPIで隠蔽して上位レイヤーでは気にしなくて済むようにするよ

432 :デフォルトの名無しさん (ワッチョイ 6f5b-yz8t):2017/01/07(土) 12:17:38.95 ID:72YrLFZp0.net
細かい操作を実装できるCの柔軟性は強いよね
Obj-Cなら何も考えずそのまま実装できたことをSwiftでやろうとした時
どうするかって話だね
without Cを高らかに謳っているのだから仕方ないね
頑張ろう

433 :デフォルトの名無しさん (オッペケ Sr3f-6vgr):2017/01/07(土) 17:26:53.31 ID:UVIgJaZNr.net
>>430
システムコール使うときとか?

434 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 17:53:33.27 ID:p94OVxAQ0.net
別スレで話に上がってたけど
ファイルを行単位で読んで処理しようとする時とか
CのAPI使ったほうがスッキリ書けたりするケースがあるんだよね
http://stackoverflow.com/a/24669956/1000690

435 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/07(土) 18:02:35.45 ID:hf6ybaU+a.net
>>434
でも、それ別ファイルにCで記述して、Swiftから呼ぶようにした方がメンテナンス性あるんじゃね?

436 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/07(土) 18:34:39.92 ID:OQtShFizp.net
CR, LF, CRLFを認識出来てないそのコードは危なかろうて
回答上位にある汎用クラス作って云々が良いとも思わないけども

そういうフォローをちゃんとした単純関数で実装したらCでもSwiftでも大して変わらんよな
、、、Swiftなら全データをStringに突っ込んで、改行文字でsplitとか乱暴するのも一興か

437 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 18:52:21.07 ID:p94OVxAQ0.net
>>435
どうだろうね?
別ファイルにしてAPIのインターフェース考えて実装してメンテナンスしていく手間をかけるだけのメリットがあるのかどうかによるよね

>>436
メモリのフットポイントを気にしないならSwiftでもそう変わらないだろうけど
気にするならNSDataとかで処理しないといけないからSwiftのほうが面倒だと思うよ

438 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/07(土) 19:10:10.76 ID:IyWm4kw10.net
この手のはアドホックなことせずに
バイトストリーム、キャラクタストリーム, レキサー/パーサーに分けて繋げた方が後が楽だと思う

439 :デフォルトの名無しさん (ワッチョイ 2bf8-+flj):2017/01/07(土) 20:04:55.49 ID:Gk0CJ/2J0.net
>>434
CのAPIの方が簡単と言うのはプログラマが担保しなきゃいけない安全確認とかを全部すっ飛ばして書けるからであって

必要な安全性を確保しながらコード書くならSwiftの方が簡単だよ

440 :デフォルトの名無しさん (ワッチョイ 6fa2-+flj):2017/01/07(土) 20:37:16.77 ID:w3Yo/XU60.net
withoutCマンセーと言われましても
SIMD使う時とかはしょうがないよね?

そういうケースが稀なのは認める。

441 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/07(土) 20:48:06.16 ID:eRueAzeT0.net
without CはSwift単体の文法の話であって、別にCとの適材適所・協調/協働を否定する標語では全くないのにわざと混同してる奴がいるな?

442 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/07(土) 20:52:00.96 ID:UTTve38fa.net
>>437
別ファイルにするにしても、同一ソース内に埋め込むにしても、データ受け渡しのためのインタフェースは考えないといけないだろ

443 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 21:18:40.07 ID:p94OVxAQ0.net
>>439
そういうケースもあるだろうけど例として上げたケースは
用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い

>>442
コード見たの?

import Darwin
let bufsize = 4096
// let stdin = fdopen(STDIN_FILENO, "r") it is now predefined in Darwin
var buf = UnsafePointer<Int8>.alloc(bufsize)
while fgets(buf, Int32(bufsize-1), stdin) {
print(String.fromCString(CString(buf)))
}
buf.destroy()

444 :デフォルトの名無しさん (スププ Sdff-+flj):2017/01/07(土) 21:48:31.26 ID:A7PZcJW4d.net
>>443
>用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い

そこに「用意されているSwiftのAPIを使う」と言う選択肢がないのがおかしくないかい?

SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
CのAPIでゴチャゴチャ作るよりはるかに簡単で安全だよ?


例えばあなたが>>443の下部で引用しているCの関数を使った例では
バッファサイズとして4096を取っているから
一行が4095文字以上の入力を受けると正しく動作しなくなっちゃうよ
この制限をC言語で解決するのは結構面倒くさいよ

445 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/07(土) 21:49:05.59 ID:UTTve38fa.net
>>443
コード見たよ
で?

446 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 21:55:01.67 ID:p94OVxAQ0.net
>>444
>SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから

それメモリに全部読み込んでるでしょ?
極端な例だけど300MBのファイルだとして全部最初にString化するの?

447 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 21:55:42.79 ID:p94OVxAQ0.net
>>445
見てて>>442みたいな考えなら特に言うことはない

448 :デフォルトの名無しさん (スプッッ Sdff-GcKO):2017/01/07(土) 22:12:08.42 ID:DTtrdLJ+d.net
>>434
「ファイルを行単位で読んで処理しようとする時とか」の「とか」は、「ファイルを行単位で読んで処理しようとする時」以外の何?

>>439
「プログラマが担保しなきゃいけない安全確認とか」の「とか」は、「プログラマが担保しなきゃいけない安全確認」以外の何?


そんな「とか」の使い方じゃ、まともな仕様は作製できない。

449 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/07(土) 22:21:44.29 ID:IyWm4kw10.net
研鑽兼ねて>>438で書いたこと自分でやってみた
http://swiftlang.ng.bluemix.net/#/repl/5870e7500f558d57abf31839
・セル内の改行に対応
・パイプライン的に処理(バッファ境界でUTF8が破断することも無し)
・改行コードはちょっと端折り

450 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/07(土) 23:25:32.71 ID:4HC1Pjzk0.net
>>448
残念ながらこれは仕様書ではない

安全確認以外の何かを明確にするにはまず安全とは何かを定義しなければならないが
それを定義にするのは本来の議論の範囲外であり、
議論の本質の理解の妨げになるためあえて定義を行わなかった

そこで、明確に定義されていないことを明確に示すために「とか」を用いている


そう言うことを聞きたいわけ???

451 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/07(土) 23:32:17.40 ID:p94OVxAQ0.net
>>449
超できる子だな

Swiftのシーケンスって読み終わったところからメモリ開放されるのかな?
そうじゃなければ別途chunkに分割しないと全処理時は最終的にメモリに乗るよね

452 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/07(土) 23:54:15.55 ID:PPvI4deGp.net
出来ない子だな、お前は教えて君か

453 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/07(土) 23:55:36.10 ID:IyWm4kw10.net
>>451
Iteratorのクロージャが強参照してるもの以外は順次開放されるよ
UTF8デコーダと内部バッファ(4バイト?)、字句解析用の変数(end,hold)、
1レコード分(row:[String])がメモリ消費する

Array(parseCsv(...))すると全部抱えてしまうのでforEachで1レコードずつ処理する必要はある

454 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/08(日) 00:11:05.12 ID:JrkgmnK40.net
あと filePath → AnyIterator<UInt8>
http://swiftlang.ng.bluemix.net/#/repl/587104360f558d57abf31847

455 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/08(日) 00:46:34.89 ID:9hp7bz6e0.net
>>453
そっかありがとう

>>454
すげーな 超参考になる
ファイル読み込みはchunkでやるけどあとはバイトストリームで処理できるから境界の心配しなくていいのね
こういうシーケンス使った考え方を知るのになんかオススメの本とか資料とかもしあったら教えて
Swiftじゃなくてもいいので

456 :デフォルトの名無しさん (ワッチョイ 6f5b-yz8t):2017/01/08(日) 09:45:34.32 ID:qkk6ZrX+0.net
->って何?アロー演算子ですか?^^

457 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/08(日) 10:12:37.73 ID:JrkgmnK40.net
>>455
今ググって見つけたページではあるけど、こういうから知識を拾っておくと良いかも
http://hexadrive.jp/hexablog/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/12405/
http://ufcpp.net/study/csharp/da_about.html
http://postd.cc/pipes-and-filters/
の前半あたり
http://www.aerith.net/design/Decorator-j.html

切り分け方は先人に学ぶ感じで
http://kmaebashi.com/programmer/devlang/yacclex.html
https://msdn.microsoft.com/ja-jp/library/cc351995.aspx

用語バラバラだから似てるもので並べると
Swift3のSequence(2のSequenceType) ≒ AnyIteratorを返す関数
≒ JavaのIterable ≒ Pythonのジェネレータ ≒ C#のイテレータブロック/IEnumerable

Swift3のIteratorProtocol(2のGeneratorType) ≒ AnyIterator
≒ JavaのIterator ≒ Pythonのイテレータ ≒ C#のIEnumerator

※AnySquence, AnyIteratorはジェネリクス対応用(型消去法)

458 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/08(日) 17:36:54.12 ID:9hp7bz6e0.net
>>457
ありがとう
心のなかでマスター先生と呼ばせてもらうよ

素養が違うからか教えてもらった記事からだとマスター先生の考え方に近づけそうにないんだが
もう少し頭のなかをストリーム化できるように日々修行するわ

459 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/08(日) 17:40:12.38 ID:9hp7bz6e0.net
>>456
関数の戻り値の型

func greet(person: String) -> String {…}
↑Stringを返す関数

460 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/09(月) 00:00:23.02 ID:eHS8l2Ef0.net
>>446
300MByteなら躊躇せずオンメモリで処理するかな?
1GByteならちょっと悩んでストリーム処理にするけどそれは実際に1GByteのファイルを喰らってから考える
遅くなるだけで処理としては破綻してないし

enumerateLinesでイテレート処理してれば
ストリーム処理にする場合でも行単位で文字列を取り出せるイテレータを定義するだけで
後段はそのまま使えるから移行は比較的楽

逆に
Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
4095文字以上の行に対応させるには
バッファの確保やマルチバイト文字の整合性とか色々考えるのが面倒


要するにCで書いてもSwiftで書いても簡単に書けるのは入門書のサンプルプログラムレベルのもので
細かいチェックを入れるとどちらもそこそこ書き込みが必要

その上で
1行が4095文字を超えると破綻するCの関数がいいと思うか
巨大ファイルを渡されると処理速度が遅くなる可能性のあるSwiftの標準関数を使うか
と言うだけの話だと思うよ

で、Swiftでプログラム書いてる途中でこの処理が必要なら
俺ならSwiftで書く方を選ぶと思う

461 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/09(月) 00:13:07.51 ID:vNdwgc8fa.net
Perl最強


#!/usr/bin/env perl
while (<>) { print; }

462 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/09(月) 00:18:04.60 ID:vNdwgc8fa.net
shellと組み合わせれば無敵
ちょっとした変換も簡単実装

cat lower.txt | perl -e 'while(<>) { print uc; }' > upper.txt

463 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/09(月) 00:57:25.52 ID:JTALZxOQ0.net
>>460
1GB使ったらiPhone6以下なら毎回クラッシュだよ
メモリの使用量を抑えつつ巨大なテキストファイルを読み込む時にどう処理するかって時の例だから
そこをすっ飛ばしたら意味ないがな

>Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
バッファサイズは状況に応じて変更すればいいでしょ?
それに本当に必要なら読み込んだバッファの最後の文字が改行じゃなければ次を読み込んで足してから処理すればいい
個人的にはそういう処理が必要になるようなケースには出会ったことがないけど

NSStream+NSDataとかでも同じことできるんだけど少し余計に手間がかかるから
Cを選ぶ人がいてもいいんじゃないかって話だ

464 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/09(月) 01:06:52.96 ID:vNdwgc8fa.net
まぁ、データの入力ミスとか、誤ってバイナリデータ読ませちゃうこともあり得るからな

465 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/09(月) 01:26:40.47 ID:eHS8l2Ef0.net
>>463
>バッファサイズは状況に応じて変更すればいいでしょ?

プログラムはどうやって状況を判断するんだ?
日本語の小説流し込んだら簡単に1行がメガバイト単位になるぞ?

466 :デフォルトの名無しさん (ワッチョイ 0fba-oQtP):2017/01/09(月) 02:22:19.00 ID:9ACblGiY0.net
まとめられててワロタ

467 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/09(月) 04:04:22.01 ID:JTALZxOQ0.net
>>465
別スレで質問してた人?
バッファサイズ考えるより前にそのファイルの入手方法を考えなおしたほうがいい気がするが

468 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/09(月) 11:54:09.06 ID:eHS8l2Ef0.net
>>467
>別スレで質問してた人?

違うよ

単に俺(>>467)が>>434に難癖つけてるだけだよ

Cで書いた方が簡単な事もあるの例に
文字列I/Oって言う危険物を持ってきた上で
安全チェックもしてないコードを引用して、ほらCで書いた方が簡潔でしょ?
と言う論調がおかしいと思ったんで噛み付いてる

確かにCで書いた方がいい事もいっぱいある
だけど少なくともI/Oとか文字列処理とかC言語の中でも1番の危険物を持ってきて
危険だと言うことを知らせずにCで書いた方が簡単な例に上げるのはどうかと思うよ

こう言う危険性もあるけど、swiftからcの関数を呼び出せばこう言う書き方も出来るよ程度にしておいて欲しい

469 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/09(月) 11:55:28.60 ID:eHS8l2Ef0.net
>>468
すまんあんかミス

>単に俺(>>467)が>>434に難癖つけてるだけだよ
おれは>>465ですた

470 :デフォルトの名無しさん (ワッチョイ 7bcf-q3aP):2017/01/09(月) 12:49:46.11 ID:4OeNzyzM0.net
>>468
入力が固定されてるなら問題ないと思う

471 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/09(月) 13:58:21.90 ID:eHS8l2Ef0.net
>>470
ファイル入力で常にこちらの思い通りのデータしか来ないことを想定するの?

入門書のチュートリアルならそれでもいいけどさ

入力データをこちらで決める事ができるなら
JsonとかXMLとかRealmとかのこなれたライブラリが存在するファイル形式を採用する方がいいと思うよ

そんなことを考えるとswiftの中でcを直接使うことの優位性はあまり無いと思うんだ

472 :デフォルトの名無しさん (アウアウカー Sa3f-7kys):2017/01/09(月) 14:53:15.83 ID:C7tBzNeYa.net
オートレイアウト使ってるやつなんているのかな?まじでゴミだと思うんやが

473 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/09(月) 15:21:45.24 ID:abgacrATa.net
まぁ、ほぼC言語使えるんだけどね
書き方の慣れの問題だけで

let lineSize = 1024
if let file = fopen(filePath, "r") {
 let data = UnsafeMutablePointer<Int8>.allocate(capacity: lineSize)
 defer {
 data.deallocate(capacity: lineSize)
 }
 while((fgets(data, Int32(lineSize), file)) != nil) {
  if let str = String(utf8String: data) {
   print(str)
  }
 }
}

>>472
バリバリ使ってるよ

474 :デフォルトの名無しさん (スッップ Sdff-GcKO):2017/01/09(月) 15:25:37.56 ID:ynBqv2kkd.net
>>472
中上級の奴が使いたがるんだよね。
で、viewDidLoadで、IBOUTLETのframeいじって「変わらない!Xcodeのバグだっ」て騒ぐんだよね。

お前が世の中のバグだから。


ライフサイクル解らないグズだから。

475 :デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc):2017/01/09(月) 15:32:05.60 ID:rN+gQaLTp.net
>>473


なんか長文くんまで現れてやってたけど結局これよな
しかし UnsafeMutablePointer を let 宣言できるのが相変わらずキモい
特別扱いできないものかねぇ

476 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/09(月) 17:35:13.39 ID:JTALZxOQ0.net
>>468
そっか別人か
そのメガ単位で改行されてないテキストファイルって一般的なの?
平均3バイト/文字としても3MBで100万文字だよ?

fgetsやfscanfと同じ機能を持つAPIは今のところSwiftにはなくて
同じようなことをしようとするとどうしても結構な量のコードを書く必要があるから
CのAPIを使いたい場合の例として>>434を上げた

UnsafePointerを扱うってことは
メモリ周りで問題を引き起こすコードを書く危険性が高まるってことだからそこを天秤にかける必要性はわかる
ただそれ以外の安全チェックとか危険性とか言ってる部分はSwiftなら全部面倒みてくれるわけではないよね

477 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/09(月) 17:49:07.80 ID:JTALZxOQ0.net
>>465
別人だってことなので一応この質問に答えとくと
プログラムで扱うファイルの1行の最大長が予測可能な範囲にあるならそれに応じてサイズ変更すればいいって意味ね
そうじゃないなら>>463に書いたようにバッファ内に改行があるかどうかをチェックして複数回バッファ読んでから処理する
この辺はC使っても使わなくても同じ

100MBを超えるようなテキストファイルってログファイルくらい処理しかないから発想が貧弱なのかもしれないけどね

478 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/09(月) 17:51:25.34 ID:LuXubKyCp.net
データ受け渡しのためのテキストファイルに改行コードいれるかどうかは設計者の決めることだからなぁ

479 :デフォルトの名無しさん (スッップ Sdff-GcKO):2017/01/09(月) 17:58:25.64 ID:ynBqv2kkd.net
>>477
ログ以外だと、何かのデータファイルをCSVで書き出したケースも考えられる。
過去やったのだと、クイズを出すアプリで、問題をひたすらテキストファイルで持っていた。

でも、移動体端末で、でかいファイルを処理するのって、基本的なarchitectureを考え直した方が良い気がする。

480 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/09(月) 18:09:09.39 ID:JTALZxOQ0.net
>基本的なarchitectureを考え直した方が良い気がする。
100%同意
iOSならテキストデータのインポート・エクスポート時が一番のユースケースだろうね

481 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/09(月) 18:49:37.59 ID:LuXubKyCp.net
htmlもxmlもJSONも改行コードは必須じゃないからなぁ

482 :デフォルトの名無しさん (ワッチョイ 5b3c-GcKO):2017/01/09(月) 19:35:52.53 ID:Mfdzy40n0.net
>>480
まあ、
>>477
さんの言う通りログなら仕方ないんだけれどもね。

ただ、そんなデカイログを端末で見るというarchitectureが・・・以下自粛。

483 :デフォルトの名無しさん (ササクッテロロ Sp3f-+flj):2017/01/09(月) 19:38:32.72 ID:uxZFBykMp.net
Autolayoutが使えないのは論理的思考の出来ない馬鹿
あんなもん設定した通りの優先順位付けで表示されるだけだろ

484 :デフォルトの名無しさん (ワッチョイ 0f7b-MPfw):2017/01/09(月) 23:59:11.54 ID:qvjxruLM0.net
ログなんて、圧縮するだろ

JSのファイルでも、Minify とかで圧縮する

485 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/10(火) 00:08:49.29 ID:qN25f4rba.net
それがどーした?

486 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/10(火) 09:52:08.69 ID:0L0fi+PIp.net
CとSwiftでraw文字列の読み込みの実装難易度が違う
って話だったのに、データ構造だのAuto Layoutだのを議論しててワロタ

487 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/10(火) 10:27:31.44 ID:hQEZjrPha.net
初心者かな
話が飛ぶのは2chではよくあることだから

488 :デフォルトの名無しさん (スプッッ Sdff-oQtP):2017/01/10(火) 10:40:39.28 ID:L0gptR0Sd.net
で?

489 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/10(火) 10:53:58.04 ID:FDJAHjJcp.net
ん?

490 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/10(火) 10:56:22.37 ID:0L0fi+PIp.net
>>487
お前バイク板住民かよぉ
(今もあそこがアレな板なのかは知らん)

491 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/10(火) 11:17:06.45 ID:FDJAHjJcp.net
最初は文字列の読み込みうんぬんというより、インラインでC言語を記述したいって話じゃなかったっけ?
で、そのあと、具体例として、ファイル読み込みの話になって、C言語で書いても可変サイズの行だと面倒じゃね? という話になって、そっからデータ構造の話に発展して、どさくさ紛れに、Auto Layoutの話を入れてくるKYが現れて、ってのがここまで流れだと思ったが...
まぁ、別に同じスレッドで違う話題を同時に扱うなって決まりはないしな

492 :デフォルトの名無しさん (ワッチョイ df2b-vyGv):2017/01/10(火) 11:44:11.95 ID:nWa+BtAl0.net
プログラム技術@2ch掲示板
> ネタ、板とは関係の無い話題はご遠慮ください。

決まりはあるんだけどな
Inline C in Swiftはネタ(当人はマジの様子)だけど、それ以降はSwiftに絡めたネタも少なく・・・
データ構造やAutoLayoutを話すのはいいが、ネタとしてSwiftを絡める努力をしよう(他人事

493 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/10(火) 11:56:12.46 ID:1oVGbtNGa.net
プログラム技術板で、データ構造やAPI絡みの話を交えるなっつうのは頑固すぎるわ
AutoLayoutに至っては4レスあっただけなのに
Swiftと全く無関係ってわけでもないやろ

494 :デフォルトの名無しさん (スププ Sdff-+flj):2017/01/10(火) 12:28:56.18 ID:VHs9RTlPd.net
Swiftでファイルダンプするだけならこれで良くね?

while let l = readLine() {
print( l )
}

ただしファイルを標準入力にリダイレクトしておく

FileHandleにreadLineが定義されていないのが謎

495 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/10(火) 12:35:10.25 ID:0L0fi+PIp.net
イマドキのAPI設計的にはFileHandlerと切り離したReaderがあるんじゃね
SwiftのCoreAPIにReaderがないのは3rd party libにぶん投げしてる気がする

496 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/10(火) 14:03:45.11 ID:8RubTyxI0.net
Foundationが貧弱なのが悪い

497 :デフォルトの名無しさん (ワッチョイ 7bcf-q3aP):2017/01/10(火) 14:08:24.18 ID:s989ZmsY0.net
>>481
昔の2ちゃんのhtml思い出した

498 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/10(火) 15:07:36.80 ID:tt6nQotl0.net
型推論ネタ, 以下Aは動くがBはmapに呪いが掛かってしぬ

// A
let s = sequence(first:0){$0+1}
.lazy
.map{$0*2}
s.prefix(10)
.reversed()
.forEach{print($0)}

// B
sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.reversed()
.forEach{print($0)}

499 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/10(火) 17:22:06.72 ID:PjuH0Yrh0.net
Bでも型指定すればいいのかもしれんがどうやって指定すればいいのか分からない
こういうの普通に動くようになって欲しいね
他言語だと問題なく動くケースのような気がする

(->> (iterate inc 1)
(map #(* 2 %))
(take 5)
(reverse)
(map println))

500 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/10(火) 17:34:25.49 ID:0L0fi+PIp.net
関数型()にかぶれた可読性のないコードだと思った(コナミカン

関数型言語なら文化に合ってるんだろうけどSwiftで書くコードじゃねぇ
もっと読みやすい書き方あるだろとコンパイラ以前に、人間様がコードレビュー時に発狂したい

501 :デフォルトの名無しさん (スッップ Sdff-+flj):2017/01/10(火) 17:46:11.19 ID:IYumFm2zd.net
>>494
よし、これならcを使った方が簡単に書ける例として文句無かろう

import Foundation

guard let fh = FileHandle(forReadingAtPath: "xxx"),
dup2(fh.fileDescriptor, 0) != -1 else {
fatalError("file/dup error")
}

while let line = readLine() {
print(line)
}

502 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/10(火) 17:51:57.47 ID:aMk4PEuoa.net
先にprefixすればいいんやで

sequence(first:0){$0+1}
.prefix(20)
.map{$0*2}
.reversed()
.forEach{print($0)}

503 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/10(火) 18:00:07.10 ID:tt6nQotl0.net
>>502
処理順を入れ替えられる例を出してすまん
map→filter→prefixのような場合は対応出来ない

504 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/10(火) 18:59:28.94 ID:8RubTyxI0.net
これが読みにくいとかさすがに化石すぎだろ

505 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/10(火) 20:03:26.36 ID:FDJAHjJcp.net
結局 reversed()が癌なんやな
makeIterator()かませばいけるけどな

sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.makeIterator()
.reversed()
.forEach{print($0)}

506 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/10(火) 20:46:07.85 ID:PjuH0Yrh0.net
>>501
これいいね
エンコーディングの融通はきかないけど
Extensionにして気軽に使える

507 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/10(火) 21:15:41.77 ID:PjuH0Yrh0.net
どうでもいいけど改行コード云々はファイルフォーマットの話でデータ構造とは関係ないと思う

508 :デフォルトの名無しさん (ワッチョイ 5f93-+flj):2017/01/10(火) 22:31:43.58 ID:Vzu2YddV0.net
>>507
ファイルフォーマットはデータ構造だとおもうが?

509 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/11(水) 00:03:32.25 ID:wniphiOc0.net
広義ではそうなのかもだけど
一般的にはデータ構造って言うともう少し論理的なもの(例えばArrayとかDictionaryとか)で
そのデータがシリアライズされたファイルフォーマット(ファイルの構造)とは別の話じゃない?

「じゃ、ここのデータ構造はJSONでお願い」って言われたら違和感あるよね

510 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/11(水) 00:16:18.42 ID:5OhI584zp.net
変数名に$が付くとPerlを思い出す化石マン
Rustみたく変数名に名前付けたい

>>ワッチョイ df3c-FtWv
もういいから、自分が否定されないように前提条件、論点をズラし続けるから
風が吹いたら桶屋が儲かるみたいなスレチになるんだよ
またSwiftに関係ない議論を吹っ掛けてんだろ

511 :デフォルトの名無しさん (ワッチョイ df3c-FtWv):2017/01/11(水) 00:32:18.40 ID:wniphiOc0.net
>>510
議論するつもりはないから
いい大人ならオブラートに包んでるって気づけよな

512 :デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t):2017/01/11(水) 00:45:33.03 ID:6QBqeohxp.net
SierのSE的には
データ設計で決めるのがデータ構造
ファイル設計で決めるのがファイルフォーマットだろ
プログラムはよくわからんから実装方法は各プログラマに任せるみたいな

513 :デフォルトの名無しさん (ワッチョイ 1b17-+flj):2017/01/11(水) 04:58:51.90 ID:jTTy0tPr0.net
ラトナーApple辞めるってよ

514 :デフォルトの名無しさん (ワッチョイ 5fe5-+flj):2017/01/11(水) 07:20:50.12 ID:V2u2R+4Y0.net
Lattnerまじかよ

515 :デフォルトの名無しさん (スップ Sdff-oQtP):2017/01/11(水) 08:02:31.25 ID:jHuXm8fPd.net
swift終了のお知らせ

516 :デフォルトの名無しさん (オイコラミネオ MMff-2HrH):2017/01/11(水) 09:04:44.13 ID:7pf6bg3nM.net
そしてオラクルが手に入れる

517 :デフォルトの名無しさん (エムゾネ FFff-9Pqs):2017/01/11(水) 09:09:16.22 ID:0/vimycYF.net
>>513
Swiftがこの有り様だからな
つーかもともと言語としてのセンスがやはりなかった
Objective-Cから変える技術的逼迫性もなかった
まあオープンソースだし日曜プログラマは引き続きモダンな言語を楽しめばいいと思う

518 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/11(水) 09:10:55.73 ID:TTvERX8La.net
はい、解散、解散
お前ら元気でな

519 :デフォルトの名無しさん (ワッチョイ 5b3c-HvS5):2017/01/11(水) 09:13:22.53 ID:853Dbb3u0.net
メーリングリストには残る予定とのこと
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170109/030063.html

520 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/11(水) 09:36:15.32 ID:5OhI584zp.net
ネタかとお前らマジだった
3でABI安定させてiOS組み込みランタイムにできてりゃまだこうはならなかったろうに

521 :デフォルトの名無しさん (ササクッテロロ Sp3f-OZpM):2017/01/11(水) 10:22:04.51 ID:6QBqeohxp.net
Appleがテスラ買収したら面白いのに

522 :デフォルトの名無しさん (ワッチョイ 5f32-l80d):2017/01/11(水) 12:28:02.16 ID:3A3Blea/0.net
自動運転がホットな分野ってことが分かる出来事だな……
CarPlayとテスラの自動運転がガッツリ融合みたいな感じになったりするのかね

523 :デフォルトの名無しさん (ワッチョイ dfc9-f1yY):2017/01/11(水) 12:39:27.51 ID:RGh2RgBv0.net
ラトナーがテスラでSwift製のTensorFlow級機械学習ライブラリのプロジェクト立ち上げるフラグ?

524 :デフォルトの名無しさん (ワッチョイ 2b91-P21V):2017/01/11(水) 12:46:25.80 ID:hbAKDMBg0.net
それでSwift Package Managerから使える3rd party libraryが増えるなら歓迎したいな
コアライブラリ(Foundation)が貧弱でも、外部ライブラリが充実してるならreadlineみたいな問題も起きぬ
go, rust, nodejsなんかは外部ライブラリもパッケージマネージャーも枯れてるのに
Swiftは未だにパッケージマネージャーが実用品質まで実装されていないのはホントくそだぜ

525 :デフォルトの名無しさん (ササクッテロロ Sp3f-+flj):2017/01/11(水) 13:25:01.52 ID:El817HeFp.net
今後もバリバリコード書くのか?テスラの自動運転ソフトの副社長ってもう管理職じゃないの
いずれにしてもSwiftにはさじを投げた?

526 :デフォルトの名無しさん (オイコラミネオ MMff-+flj):2017/01/11(水) 17:08:20.22 ID:h4pP9InkM.net
ああ、LattnerがいないSwiftの進化なんて…

オープンコミュニティといえ、元締めは彼だろ

527 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/11(水) 17:33:41.40 ID:NWO+SBAfa.net
かつてのボーランドからマイクロソフトへチーフアーキテクトが引き抜かれて、衰退していったDelphiと同じ運命を辿るのか

528 :デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc):2017/01/11(水) 17:53:48.76 ID:5OhI584zp.net
次はAppleが
企業がリーディングする必要がないほどに成長した
Swiftはコミュニティベースの開発に移行する
とか言って切り離すフェーズだなw

その時は流石にIBMは泣いていいと思う

529 :デフォルトの名無しさん (ワッチョイ 6f13-q3aP):2017/01/11(水) 19:07:19.36 ID:AM+tjFEn0.net
gasgas
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512

530 :デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs):2017/01/11(水) 19:48:30.44 ID:ql+say3+0.net
>>528
オープンソース化はこの伏線だったのかな
というかすでにコミュニティベースの開発に移行してるんじゃなかったっけ?

531 :デフォルトの名無しさん (スッップ Sdff-+flj):2017/01/11(水) 20:20:46.67 ID:vol/OZGBd.net
これはSwiftが進化するフラグなのか
Swiftが廃れるフラグなのか



遅延評価だな

532 :デフォルトの名無しさん (アウアウウー Sa3f-yz8t):2017/01/11(水) 20:53:57.18 ID:jVlnEIwOa.net
うまいこと言ったつもりなの?

533 :デフォルトの名無しさん (ワッチョイ 5fc9-tEgc):2017/01/11(水) 22:21:38.06 ID:H1aLMscd0.net
Swiftがオープンソース化した本当の理由は退職への布石だったか。
業務中に開発した物は権利も含めて置いてけって言われるからな。

534 :デフォルトの名無しさん (ワッチョイ ab8f-S2pU):2017/01/11(水) 22:22:31.15 ID:6a0oW3vG0.net
ラトナーグーグル行かないかな。
そしてandroidで、swift使えるようにしてほしい

535 :デフォルトの名無しさん (スッップ Sdd2-GRi3):2017/01/12(木) 02:42:00.89 ID:aguNSWiGd.net
Swift愛が強いやついるよな
何がそんなにいいのかわからんけど

536 :デフォルトの名無しさん (ワッチョイ bbba-f8hU):2017/01/12(木) 04:11:52.57 ID:NO1D7SqU0.net
仕様が固まったらswift勉強しようと思ってたのに
勉強する前に終わりが来てしまった…

もう駄目なん?

537 :デフォルトの名無しさん (ワッチョイ be5b-GRi3):2017/01/12(木) 04:53:25.74 ID:HEZQC1GR0.net
結局AppleがSwiftゴリ推してたからSwiftやるかってなってただけで、別に言語自体に魅力があるかっつうと微妙な言語だからなぁ

538 :デフォルトの名無しさん (ワッチョイ d315-+/No):2017/01/12(木) 10:11:11.64 ID:hrKw0WqE0.net
ゴリ推し君、久しぶりだな
お前の天下だぞ、やったなw

>>534
それはもう実現されたろ
誰もありがたがらないから取り上げられないだけで

539 :デフォルトの名無しさん (ワッチョイ 9232-ZP+f):2017/01/12(木) 11:03:11.47 ID:HIZRXgmf0.net
>>534
JavaにAOT入ってくるし余りSwiftの優位性がないんじゃないかなぁ
GoogleとしてはGolangの方を推すだろうし

540 :デフォルトの名無しさん (スップ Sdf2-vkEW):2017/01/12(木) 12:16:49.20 ID:fxxdnJ+zd.net
>>539
優位性はoracleに訴訟起こされないことなので
googleだからとgolang推すとは限らない

541 :デフォルトの名無しさん (スプッッ Sdf2-MRNU):2017/01/12(木) 12:20:15.98 ID:ZbEfheT4d.net
正直、普通にpythonの方が良かったな

542 :デフォルトの名無しさん (ササクッテロレ Sp37-rG+u):2017/01/12(木) 13:18:05.94 ID:bePo0qAjp.net
>>539
AOTはとっくに入ってるけど、それでも頭打ちになって、
AOT+JITハイブリッドに進んでいる

543 :デフォルトの名無しさん (JP 0Hf2-dHfL):2017/01/12(木) 15:07:06.54 ID:UlDpgnikH.net
どうなると思う?

544 :デフォルトの名無しさん (ワッチョイ f38f-JEwG):2017/01/12(木) 19:27:11.74 ID:MO5zZFfW0.net
>>539
golangはエコシステムが素敵なだけで
better c感があるからなぁ。
正直ジェネリクスが入るまではあんまりアンドロイド向けにはならない気も。だってjavaみたいな抽象化ブログラミング苦手っしょ

545 :デフォルトの名無しさん (ワッチョイ d315-+/No):2017/01/12(木) 19:51:13.69 ID:hrKw0WqE0.net
Javaみたいな抽象化プログラミング(OOP至上主義プログラミング)がクソって風潮で
GoやRust(あと一応Swiftも)の言語仕様が切られてるんだけどな
ジェネリクスはどうでもいいわ、あれば使うけど、なくても死ぬわけでもなし

546 :デフォルトの名無しさん (スップ Sdf2-vkEW):2017/01/12(木) 20:03:43.81 ID:fxxdnJ+zd.net
OPP最高

547 :デフォルトの名無しさん (ワッチョイ f38f-JEwG):2017/01/12(木) 20:04:28.76 ID:MO5zZFfW0.net
>>545
抽象化プログラミングの否定ではなく
関数型プログラミングへの注力ってだけでしょ。抽象化は必要な技術であることには変わらない。

RxSwiftとか触ってると抽象化が得意な言語上で作られたFrameworkの便利さには感動する。

んで、golangはそういうのが苦手で、
どうしてるかと言うと、コードジェネレータを作ったりしてるw

正直そういう部分がアンバランスな感じなので、はよジェネリクスくれってなってる。

548 :デフォルトの名無しさん (ササクッテロラ Sp37-gjPF):2017/01/12(木) 20:21:07.84 ID:EuCQnJSXp.net
zero cost abstractionを心がけたからじゃね?
C++テンプレート含めて動作性能求めてコードジェネレータは当然の結果
JavaやSwiftはそのコストなんて気にしてないけども

549 :デフォルトの名無しさん (JP 0Hf2-dHfL):2017/01/13(金) 10:56:53.83 ID:A7lO7PxRH.net
Swift無くなるの?

550 :デフォルトの名無しさん (スッップ Sdd2-GRi3):2017/01/13(金) 10:59:55.55 ID:knpjVG01d.net
Appleの中にSwiftに本気の人がいなくなったってだけでしょ

551 :デフォルトの名無しさん (スプッッ Sdd2-vkEW):2017/01/13(金) 11:01:08.52 ID:zzZzBy0Od.net
腐ったリンゴから解放されて世界に羽ばたくよ

552 :デフォルトの名無しさん (オイコラミネオ MMce-kkJw):2017/01/13(金) 16:06:30.15 ID:qq8NhLIPM.net
詳解Swift第3版読み終わったらけど、delegateの説明が一切なかった。
delegateとprotocolの違いって何?

553 :デフォルトの名無しさん (ワッチョイ 573c-dHfL):2017/01/13(金) 17:55:00.38 ID:le1wMpNu0.net
大まかに言えばコールバック用のprotocolを実装したインスタンスをdelegateと呼んでるだけ
技法や用語の類なので言語仕様と直接の関係は無いよ

554 :デフォルトの名無しさん (ワッチョイ 92e5-kkJw):2017/01/13(金) 18:32:25.12 ID:cenlIzEl0.net
>>553
ありがとう😊

555 :デフォルトの名無しさん (ワッチョイ d35b-lDPz):2017/01/13(金) 19:41:22.91 ID:6sCHka4P0.net
>>552
delegateの話は無しなのかぁ。
まあ、UIKit、AppKitの話だからなぁ。

556 :デフォルトの名無しさん (ワッチョイ be5b-GRi3):2017/01/14(土) 02:00:38.21 ID:zbDc0ypE0.net
AppleがSwiftを切っても使い続けたいと思うならまともな言語といえるのだろう

557 :デフォルトの名無しさん (ブーイモ MM8b-0NVw):2017/01/17(火) 12:02:14.54 ID:cEkG7JbvM.net
テスラのファームウェアがSwift製になるのか
ますます日本人のトヨタ離れが加速するな

558 :デフォルトの名無しさん (JP 0Hf2-dHfL):2017/01/17(火) 15:24:26.60 ID:BOj3HsKUH.net
で、Swift無くなるの?

559 :デフォルトの名無しさん (ササクッテロラ Sp37-gjPF):2017/01/17(火) 16:31:46.31 ID:eAAsiKtXp.net
swiftってファームウェアが書けるほど低レイヤーで動けるのかいな
LinuxないしmacOS, iOS上のソフトウェアに留まりそう
まぁそれでもテスラ上の開発がswiftになるならこれほど胸熱なニュースはswift史上にないな(そうなるとは思ってない

560 :デフォルトの名無しさん (ワッチョイ 0353-0NVw):2017/01/17(火) 17:18:09.57 ID:KCosYzOz0.net
いや、CとSwiftの併用でいくと思う
というかビットバイトレベルの操作はCが一等書きやすいのは今後も変わらん
Swift登場後はポストCはどの言語かという議論はナンセンスだと思うわ

561 :デフォルトの名無しさん (ワッチョイ 0353-0NVw):2017/01/17(火) 17:47:17.45 ID:KCosYzOz0.net
実のところSwiftに熱くなれるのはiOSシェア50%強の日本だけ
日本にいると気づきにくいが他の国ではそもそもSwiftを走らせる機会に乏しいのだ
サーバーサイドでもGo、node.jsやJavaを差し置いてSwiftを採用するメリットは現状乏しい
ラトナーは日本人のオタクばっかりが飛びついてバカッターであることないこと吹き回ってる現状を前に
未来への展望が見えなくなってしまったのかもしれない

もしかしたらSwiftが流行るかどうかは日本人次第と言えるかもしれない
Swiftはラトナーから日本人への置き土産だったのだ

562 :デフォルトの名無しさん (ワッチョイ 0353-0NVw):2017/01/17(火) 17:53:53.67 ID:KCosYzOz0.net
バカッターで本質的でも建設的でもないことで熱くなっている日本人を前にして
ラトナー「やべえ一番面倒なお客さんに好かれちまった・・・この言語もうだめだわ」
となったに違いない。俺ラトナーの気持ちよくわかるわ

563 :デフォルトの名無しさん (ワッチョイ d3c9-pk1x):2017/01/17(火) 18:00:12.82 ID:1PLMnPDO0.net
>>561
飽きるのも速いからな

564 :デフォルトの名無しさん (ワッチョイ f34e-TjL7):2017/01/17(火) 18:01:11.31 ID:1+zZwnvK0.net
>>562
一瞬、「置き土産」をポジティブに捉えてるのかと思ったよ

565 :デフォルトの名無しさん (ワッチョイ 0353-0NVw):2017/01/17(火) 18:22:17.10 ID:KCosYzOz0.net
>>564
いやまあ適当におもしろおかしく書いただけなんで俺の意思は上のレスのどこにもないよ

566 :デフォルトの名無しさん (スッップ Sdd2-0Plu):2017/01/17(火) 18:57:54.94 ID:N7dBiTg5d.net
>>560
ビット、バイトの操作はアセンブリ言語の方が楽。

567 :デフォルトの名無しさん (ワッチョイ 0353-0NVw):2017/01/17(火) 19:02:14.58 ID:KCosYzOz0.net
>>566
楽が何を指してるのかわからんがアセンブリでARMからx86まで対応したコード書く気ですか

568 :デフォルトの名無しさん (ブーイモ MM8b-0NVw):2017/01/17(火) 19:16:55.24 ID:cEkG7JbvM.net
IBMは動揺しただろうか
軽く社運賭けてそうだったもんな

569 :デフォルトの名無しさん (ワッチョイ 72c9-lDPz):2017/01/17(火) 19:45:51.46 ID:94EBDj3G0.net
そもそも発表後はラトナーそんなにコード書いてない
メーリスでも発言が頻繁だったわけでもない
Swiftはとうにラトナーの手を離れて歩きだしてる

570 :デフォルトの名無しさん (ワッチョイ f38f-JEwG):2017/01/17(火) 20:39:45.87 ID:L9ZJiwd40.net
rustの真似してARCやめようとしてるのもテスラで動かすための布石だったりして

571 :デフォルトの名無しさん (ワッチョイ 12cf-kkJw):2017/01/17(火) 21:00:56.60 ID:cY3pxmYi0.net
ていうか、単にcocoa系APIは専用の呼び出しサポートして終わり、で良かった気がするんだけどねぇ。
それなら、よそのAPI取り込み選択肢があったのにねぇ。

572 :デフォルトの名無しさん (スプッッ Sdf2-k0Ff):2017/01/17(火) 21:29:33.05 ID:diZtCuN9d.net
流れぶったぎってすまないが、演算子で???とか!!ってあったっけ?サーチエンジンで検索できないんだよね

573 :デフォルトの名無しさん (ワッチョイ 72c9-lDPz):2017/01/17(火) 22:46:01.20 ID:94EBDj3G0.net
無いっしょ

574 :デフォルトの名無しさん (スプッッ Sdf2-k0Ff):2017/01/18(水) 11:32:43.43 ID:QZC6aztod.net
どっかで見た気がしてた、ありがとう

575 :デフォルトの名無しさん (ワッチョイ 573c-dHfL):2017/01/18(水) 14:04:31.66 ID:mYaS/Vd70.net
演算子では無いけど書けるかどうかなら一応可能
実用コードで見掛けることは無いだろうけど

let a = Optional(Optional(Optional(0)))
let aa = a???.hashValue

let b = Optional(Optional(0))
let bb = b!!

576 :デフォルトの名無しさん (ササクッテロリ Sp37-gjPF):2017/01/18(水) 18:04:04.22 ID:I9cdn/V3p.net
rustの真似事は無理じゃないかなぁ
rustスレに遊びに来た荒し、数時間で挫折したぞ
borrow checkerはARCより死ぬほど扱いが難しい
その割りにARCと実動作に大差ないからメリットが少ないって冷静に判断されそう

577 :デフォルトの名無しさん (ワッチョイ d35b-lDPz):2017/01/18(水) 21:45:54.00 ID:LJhKuLVS0.net
>>572
Swift Standard Library -> Swift Standard Library Operators

578 :デフォルトの名無しさん (ワッチョイ f642-dHfL):2017/01/18(水) 21:46:51.93 ID:fhQVy3CG0.net
>>576
それは言語として威張れるところか?w

579 :デフォルトの名無しさん (ワッチョイ f34e-TjL7):2017/01/18(水) 21:53:24.02 ID:B+OX1k7v0.net
borrowチラっと見たけどややこしいな
ownershipで考えるからややこしいんだろ
reference countのARCのがシンプル

580 :デフォルトの名無しさん (ササクッテロリ Sp37-gjPF):2017/01/18(水) 22:18:00.91 ID:I9cdn/V3p.net
>>578
一応、「nilsafeだから安全(笑)」とswiftを馬鹿に出来るくらい不正ポインタアクセスに対して安全だから、、、
その代償のコーディング難易度がくっそ高いから日曜プログラマがちょっと遊びでには向かない
まぁ、業務にもその難易度のせいで上流行程へ採用提案しづらいんだけど

要は、日曜プログラマに愛されて、アポー信者の上流行程を騙しやすいswift最強ってこった

581 :デフォルトの名無しさん (ワッチョイ 72c9-lDPz):2017/01/18(水) 22:56:42.20 ID:g+H+g1Pr0.net
RustでもOption使うだろ

582 :デフォルトの名無しさん (ワッチョイ c33c-3qL8):2017/01/19(木) 07:59:17.73 ID:FKxmZ7fp0.net
Swiftのメモリ管理 ≒ C++のshared_ptr/weak_ptr
Rustのメモリ管理 ≒ C++のauto_ptr(暗黙move, unique_ptrの先代)

Rustのborrowingはauto_ptr::getとほぼ同じ
ただし解放されたものを参照しないようlifetimeの手厚いサポートがある

ARCの方がコーディングは楽だろうけど
Rust方式は渡したものを保持して遅延使用するのか
関数から戻った時点で使い終わってるのかを
言語レベルで扱えたりするから一長一短ではある

まぁSwiftにもクロージャに関しては@escapingがあるけど

583 :デフォルトの名無しさん (ワッチョイ ffc9-mu6I):2017/01/19(木) 20:32:11.50 ID:VasCiZ4n0.net
Swift/ObjCのARCはshared_ptr/weak_ptrと同じ
ただ、SwiftはKotlinのoptional, Rustのif letを言語仕様でパクってあってコーディングが楽

この部分だけObjCにバックポートしたら便利なんじゃね?とふと思った
__nullable, __nonnullとか微妙なキーワードによるバックポートは正直使いづらい

584 :デフォルトの名無しさん (アウアウオー Sadf-WaXM):2017/01/19(木) 22:19:36.62 ID:w+bE5wHza.net
そうですね

585 :デフォルトの名無しさん (オイコラミネオ MMff-Taza):2017/01/20(金) 15:40:14.18 ID:ZOjl9uXaM.net
型推論をプログラミング知識が乏しい人に説明するなら、どんな隠喩がいいと思う?

586 :デフォルトの名無しさん (アウアウオー Sadf-WaXM):2017/01/20(金) 16:00:12.37 ID:is3Fha3pa.net
アヒルみたいな顔してお尻フリフリ歩いてグワッ、グワッて鳴く鳥がいたら、もうそれアヒルってことでいいよね
って感じでいいんじゃね

587 :デフォルトの名無しさん (JP 0H87-Taza):2017/01/20(金) 16:35:51.58 ID:6bMM3T6GH.net
うわっ!これガチョウだ!!

588 :デフォルトの名無しさん (アウアウオー Sadf-WaXM):2017/01/20(金) 17:08:41.66 ID:is3Fha3pa.net
などと、コンパイルエラーが出たら明示的に宣言してね
ということで

589 :デフォルトの名無しさん (スップ Sd1f-ddg/):2017/01/20(金) 18:43:31.96 ID:2Wi9HN+wd.net
>>585
男か女か解らない人がいるんだけれど、喉仏が出ているから、男って事で。


みたいな?

590 :デフォルトの名無しさん (ササクッテロリ Sp87-/mpU):2017/01/20(金) 19:05:32.26 ID:4nNA4c16p.net
「おまじない」が古くから由緒ある陰語

実際問題、プログラミング知識が乏しいと
型推論と型宣言と動的型を区別できないから説明省いて良いと思う

591 :デフォルトの名無しさん (ワッチョイ 738f-ILNu):2017/01/20(金) 22:51:19.05 ID:/kNqqxub0.net
いやいやそれくらいコンパイラ側が自動で型を推測してよってツッコミを入れていたところが解決した

592 :デフォルトの名無しさん (アウアウオー Sadf-WaXM):2017/01/20(金) 23:13:59.78 ID:sVl+H8Xfa.net
それは良かった

593 :デフォルトの名無しさん (アウアウオー Sadf-WaXM):2017/01/20(金) 23:59:07.88 ID:sVl+H8Xfa.net
a = b = c = 0
って感じで同じ型の変数に値を一気に代入できないのは不便だよね

594 :デフォルトの名無しさん (ササクッテロリ Sp87-/mpU):2017/01/21(土) 01:50:38.98 ID:d82h9KNNp.net
そうですね

595 :デフォルトの名無しさん (ワッチョイ 6f5b-JNK/):2017/01/21(土) 01:51:05.02 ID:W/zpHkC+0.net
だってSwiftだもの

596 :デフォルトの名無しさん (ササクッテロロ Sp87-UhX6):2017/01/21(土) 02:08:12.56 ID:wL4zqwoRp.net
みつを来てんね

174 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★