トップページ⇒tech
1002コメント383KB

Swift part9 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8b3c-/6Y/)2016/10/18(火) 11:34:44.16ID:oLo879ze0
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
0032デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)2016/10/25(火) 10:39:33.81ID:ZmUS+kLtp
ジョブズが心霊療法?にはまってた頃に作り始められた言語だし可能性はあるか
生きてる時は幽体離脱で、死後は霊になってSwiftを推すとは流石ジョブズ
しかし、信者が乗らず悪貨のObjCが当然優勢ときたもんだ、くやしいのうwww

ところで、誰かSwift Package Managerって誰か使ってる?
3 stable releaseでもまだ開発中っぽかったが 、どれくらい不便か知りたい
0033デフォルトの名無しさん (ササクッテロ Sp89-vevC)2016/10/25(火) 18:39:13.09ID:v9gzKB+7p
>>31
ラトナーはジョブズから作られた天然のAIだよ
0034デフォルトの名無しさん (ワッチョイ 213c-A7+C)2016/10/26(水) 00:56:29.52ID:5b/0SgTG0
関数ラベルとかに予約語を使うのを禁止すべきかどうかについてどう思う?
他の言語との一貫性を考えると禁止した方がいいと思うんだけど
うちの会社ではコーディング規約で禁止してるけど
若手エンジニアが結構反発してるんだよね
0035デフォルトの名無しさん (ワッチョイ fd62-YT5Q)2016/10/26(水) 02:40:12.32ID:NtHQYyX30
関数ラベルとの相性が絶望的にクソなシンタックスをまずどうにかしろ
話はそれからだ
0036デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)2016/10/26(水) 05:29:30.35ID:BNroq1d2p
わざわざ可能なように頑張って作った(直した)んだから素直に使えば?
3だかで予約後と被るキーワードも''で括らないで良いみたいな修正入った気がする

キーワードの順不同廃止みたいに廃止プロポーサルは出てないよな
0037デフォルトの名無しさん (スッップ Sdb8-YT5Q)2016/10/26(水) 08:57:46.67ID:LVTypZImd
>>34
「関数ラベルとか」の「とか」は、「関数ラベル」以外の何?
0038デフォルトの名無しさん (ワッチョイ 213c-vtRd)2016/10/26(水) 09:02:55.24ID:EtQ2cepM0
反発理由が知りたいな
禁止でええやろって思うから
0039デフォルトの名無しさん (ササクッテロ Sp89-YT5Q)2016/10/26(水) 09:19:43.05ID:BNroq1d2p
問題出ないし、分かりやすければ予約語と被って問題なくね?
予約語と被って困ってたのは元はコンパイラの実装上の面倒だろう
その古い文化に慣れて、新しい文化に馴染めないのも分からいでもないが、そりゃ老がいだ

あ、他言語との歩調合わせはどうでもいい
Javaの文法でObjC書いたり 、ObjCの文法でJava書くクソッタレ信者は死ねと思ってる
他に禁止したい理由はある?
0040デフォルトの名無しさん (ワッチョイ 213c-vtRd)2016/10/26(水) 09:42:23.99ID:EtQ2cepM0
多言語間の移植ちょいちょいやるから識別子にキーワードめいたものは使ってない
例えばJavaで変数名や引数名にref, params, inも使わない
一方禁止して困る理由は特に無いってだけ

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

他のプロジェクト入る場合はそれに合わせるから
わざわざ反発する程の何かがあるん?という疑問
0041デフォルトの名無しさん (ササクッテロ Sp89-bS7b)2016/10/26(水) 16:25:11.94ID:NhxkI5gep
// ハゲのためにワックス買ってくる関数があるとする
// 少し前のSwift
func buyWax(const: Int, forHage hage: String) {
}
buyWax(const:3_000, forHage:
0042デフォルトの名無しさん (スプッッ Sdc8-CGyA)2016/10/26(水) 16:26:08.97ID:4gTCvaIpd
>>40
なら、他言語の予約語を、変数名とかに使うのも禁止してるの?
使用禁止語リストを保守するのも、理由付けするのも大変そうだけどね
0043デフォルトの名無しさん (ササクッテロ Sp89-bS7b)2016/10/26(水) 16:28:33.43ID:NhxkI5gep
コードが途中で切れたので再送

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

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

問題も面倒もない出来ることをせず、無駄に冗長なラベル名や分かりづらいラベル名は老害
まぁ若造が鬼の首を取った気分で反発してるんだろうから
この程度のコーディングルールは事なかれ主義で黙って従うのが社会人なんだよ!って黙らせればいい
0044デフォルトの名無しさん (ワッチョイ 213c-vtRd)2016/10/26(水) 17:31:30.47ID:EtQ2cepM0
>>42
うちは別に禁止してないぞ
移植時の面倒事回避の1つとして控えた方がいいと教えてるだけ

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

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

現場でキャパ少ない奴は上で下でも地雷だわ
ブログやら掲示板では猛獣のごときスタイル論争でも好きにやればいいが
0045デフォルトの名無しさん (スフッ Sdb8-vevC)2016/10/26(水) 18:33:44.20ID:n1sZka3Md
>>44
おれ、記憶力悪い方なんでコンパイラに怒られるまで予約語かどうかなんてわかんないや

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

コミット時にNGワードチェッカー走らせて拒絶するようにしておいてね
0046デフォルトの名無しさん (ワッチョイ 172b-bS7b)2016/10/26(水) 19:39:20.63ID:dE6dARfA0
少数言語で移植性()を保つキャパより、多数言語を言語毎の文化/文法に合わせて書けるキャパを持ちたい
JavaもObjCもSwiftもKotlinもC/C++もJavaScriptもPythonもGoもRustも みんなちがって、みんないい
0047デフォルトの名無しさん (ワッチョイ 638f-Jz20)2016/10/27(木) 00:11:07.98ID:e6l93V+P0
>>46
でもちょっとでも優れた機能があると、それを自分がメーンで使っている言語に取り込みたくなる。そしてコモディ化が始まる。
0048デフォルトの名無しさん (ワッチョイ e3c9-3xFl)2016/10/27(木) 01:59:35.26ID:X0THyINs0
>スタイル論争
にしても
2ちゃんの書き込みにしても
ひまなひとがやること
能力があるひとは忙しいから
そんなことにかまってる無駄な時間は使わない
0049デフォルトの名無しさん (ササクッテロ Sp7f-ceYG)2016/10/27(木) 07:41:18.42ID:CQANQwZhp
>>47
ねーよwww
そんなことをするのは、他言語をちょっとかじって多数言語が扱えると思っちゃってるニワカか
メイン言語を至上と信じそれ在りきでその言語を如何によく使うかを考えてる信者だ
0050デフォルトの名無しさん (ワッチョイ 6362-ijxz)2016/10/27(木) 07:52:38.72ID:g7DaVEt90
ラベルに予約語が使えるようになった!とかObjCだとそれ普通だしって内容なんだが...
0051デフォルトの名無しさん (ワッチョイ 6362-ijxz)2016/10/27(木) 07:54:31.29ID:g7DaVEt90
つーかObjCはセレクタ名の一部だからラベルじゃないか
0052デフォルトの名無しさん (ワッチョイ 133c-xElR)2016/10/27(木) 08:55:38.81ID:4jy4piHn0
>>45
>チェッカー走らせて拒絶するように
反射レスせずちゃんと読もうな
0053デフォルトの名無しさん (スフッ Sdff-O9pn)2016/10/27(木) 10:34:44.50ID:JkrFOFZTd
>>52
あ、すまん
意味のないこと「教えて」偉そぶるんじゃない、ボケ

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


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

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


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


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

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

それ以前に言語が変わればプログラムの構造自体が変わるんだから
予約語の被りを避けたところでほとんど意味がない
0054デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)2016/10/27(木) 11:59:03.60ID:CQANQwZhp
暗黙の了解ってのもあるが>>34は根拠がバッドノウハウなんだよなぁ

ObjC, SwiftのIF共有のために、ObjCは 前置詞+名詞 のラベルが風習として良いから
Swiftも 前置詞(予約語) だけのラベルは適切でないってならそりゃそうだと同意するんだが
0055デフォルトの名無しさん (スプッッ Sdff-O9pn)2016/10/27(木) 18:00:16.74ID:8ioUQXgpd
ところで久しぶりに触って見たら
IBM Swift Sandboxが少し使いやすくなっていた

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

スマホでSwiftやってたら隣の人に変な目で見られたけど
0056デフォルトの名無しさん (ワッチョイ 133c-0DI1)2016/10/27(木) 20:31:53.66ID:Ps2jyA+B0
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)
0057デフォルトの名無しさん (ワッチョイ e3c9-3xFl)2016/10/27(木) 20:58:34.09ID:X0THyINs0
文法なんてタダの飾りですし
0058デフォルトの名無しさん (ワッチョイ 133c-ijxz)2016/10/27(木) 23:11:21.08ID:x9Z62p+J0
>>53
>それ以前に言語が変わればプログラムの構造自体が変わるんだから
>予約語の被りを避けたところでほとんど意味がない

いや、それは違う。
プログラム構造を変えずに移植することは可能だし、
業務プログラミングでは当然だよ。
実際、COBOLプログラムをJavaで書き直すときは
COBOLの構造でみんな書いてるよ。
チューリング完全ならロジックレベルでは互換性があるんだから、
プログラム構造を変えずに移植することは可能なはず。
0059デフォルトの名無しさん (ワッチョイ 133c-WNS8)2016/10/27(木) 23:48:40.67ID:4jy4piHn0
>>53
ご高説ありがたいが
職場のバックグラウンドが違うのでね
0060デフォルトの名無しさん (ワッチョイ 6362-Jz20)2016/10/28(金) 00:39:44.63ID:adI6CPkE0
>>57
飾りといってみたり可読性が高いと称賛してみたり
Swifterのスタンスはめちゃくちゃやな
0061デフォルトの名無しさん (スップ Sdff-Jz20)2016/10/28(金) 01:22:03.46ID:8E81+S0Cd
>>20
そのためのセレクタだよ
0062デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)2016/10/28(金) 10:50:21.84ID:Z2zfTStfp
>>56
swift3ではforHageはforにするんじゃないの?
従来ルールから逆らうけども、何度もhage hage言うのはバカっぽいから

>>60
objcerは何しに来てるの?アンチスレの存在知らない?
0063デフォルトの名無しさん (オッペケ Sr7f-P+QJ)2016/10/28(金) 11:16:08.58ID:v43qydeMr
>>8
java, php
0064デフォルトの名無しさん (スップ Sdff-Jz20)2016/10/28(金) 11:25:55.99ID:UKDThdJFd
           |
            |  彡⌒ミ
           \ (´・ω・`)また髪の話してる
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
0065デフォルトの名無しさん (スプッッ Sdff-O9pn)2016/10/28(金) 12:43:27.25ID:IYKxBeNKd
>>58
>チューリング完全ならロジックレベルでは互換性があるんだから、
>プログラム構造を変えずに移植することは可能なはず。

なんだ、設計屋か、


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

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

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

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


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

必要ならコーディングルルールに「〇〇への移植性を考慮すること」って最初から入れとかなきゃ
予約語だけの問題じゃない
0066デフォルトの名無しさん (ブーイモ MMff-yDtl)2016/10/28(金) 19:17:32.49ID:noGENyqJM
移植性を考えるなら名前付き引数の使えない言語になる可能性もあるからそもそもラベルを使うべきじゃないな。全部_にした方がいいw
0067デフォルトの名無しさん (ササクッテロ Sp7f-Jz20)2016/10/28(金) 19:51:22.41ID:gCFwn2zqp
>>66
名案だと思ったw > 全部_
0068デフォルトの名無しさん (ワッチョイ 6362-ijxz)2016/10/29(土) 09:05:38.96ID:U/oHXeL/0
なるほどここはSwiftの話題全般について語るスレじゃなくて
Swiftのポジティブな話題限定のスレだったのか
0069デフォルトの名無しさん (ワッチョイ d7ba-Jz20)2016/10/29(土) 09:08:25.76ID:wiQwEsKb0
いーやネガキャンスレ
0070デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)2016/10/29(土) 09:22:50.57ID:HRK0HvHWp
自虐スレだよ
swifterは...とか言っちゃう外様はお帰り
0071デフォルトの名無しさん (ワッチョイ e34e-ijxz)2016/10/29(土) 09:25:53.53ID:7g9yHYdX0
Swiftersって言いかた、ドリフターズみたいで素敵
0072デフォルトの名無しさん (ワッチョイ 6362-ijxz)2016/10/29(土) 09:51:11.83ID:U/oHXeL/0
反応の早さにワロリン
Swiftersにすると確かに響きがいいな
0073デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)2016/10/29(土) 11:31:24.15ID:HRK0HvHWp
お前もswiftersに入ってアポーの体を張ったギャグで笑おうぜ
クッソ笑えること確実、betaから笑い続けてても未だ笑える
今回のABI安定化見送りとかバカジャネーノと思うし

だからObjCのが優れてるし!ってネガキャンしなくても良いんだよ
0074デフォルトの名無しさん (ワッチョイ 039a-9fiG)2016/10/30(日) 00:08:47.81ID:/VdtApTb0
extensionは可読性をあげるのに大いに役に立つが、ビルド時間を伸ばす大きな要因となるトレードオフだと知った。
日本語のコミュニティだとあまり議論されてない。
0075デフォルトの名無しさん (ワッチョイ 6fc9-ceYG)2016/10/30(日) 07:53:17.05ID:j7jj+A2N0
煽りとかじゃなく、海外ならどこで議論されてる?
Swiftだけなのか、ObjCも同じく起こるのか、既存/自前のクラスのどちらでも発生しうるのか、仔細を知りたい

単純にお前の感覚なら、まぁそれはそれでいいけど
0076デフォルトの名無しさん (ワッチョイ 0f93-O9pn)2016/10/30(日) 09:58:33.41ID:ZJuXfoFw0
XCodeって予測コンパイル出来るんじゃなったっけ?
使い方知らないんだけど

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

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


「コンピュータ周辺機器の中で最も遅いのは人間の頭である。」って誰の言葉だっけ
0077デフォルトの名無しさん (ワッチョイ 039a-ijxz)2016/10/31(月) 01:46:30.11ID:m1eOJOQ80
>>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は使ったりする。
0078デフォルトの名無しさん (ワッチョイ 039a-ijxz)2016/10/31(月) 01:47:57.67ID:m1eOJOQ80
>>75
あと、それ書き込むくらいなら「swift extension build time」でググれば速攻でてくるから。。エンジニアの基本でしょ。。w
0079デフォルトの名無しさん (ワッチョイ 039a-ijxz)2016/10/31(月) 01:53:06.54ID:m1eOJOQ80
>>76
そうしたいところなんだが・・・・・
Swiftyな書き方ばかりしてると異常にビルド時間伸びたりしちゃうもんなんだよね・・。
趣味の小さいプロジェクトならいいけど、
本格的なiOSプロジェクトって基本的にかなりの大きさになるもんだから、
最新で最強に特盛りなMacbook Proつかってもクリーンビルド10分とかかかって生産性クソ下がるもんだよ。ほんと、仕事にならないっていうレベルで。
結果、iMacかMac Proを会社に買ってもらうしかなくなったりするんだけど、その交渉がまた楽ではないんだよな。。

だから、まじで突き詰めてくとSwiftyに自由に書いてるだけじゃなく、ビルド時間も考慮した書き方もしていく必要があるよ。
0080デフォルトの名無しさん (ワッチョイ 6362-Jz20)2016/10/31(月) 02:23:37.24ID:y/KHbdbU0
だめだこいつどうにかしないと…
0081デフォルトの名無しさん (ワッチョイ e3c9-3xFl)2016/10/31(月) 04:34:12.26ID:jkUzecbb0
>>79
コメント無駄なので書きませんとか
hoge = fuga; .... // こことか
hage = shine; ... // こことか
abe = mao; ..... // こことか
そろえる時間とか無駄だよな
0082デフォルトの名無しさん (ササクッテロリ Sp7f-Jz20)2016/10/31(月) 08:31:13.97ID:Yjtyu49Gp
業務でswift採用を検討とかバカなのか
そんなのswift1.xの時からずっと言われてたろ
0083デフォルトの名無しさん (ワッチョイ 133c-ijxz)2016/10/31(月) 09:32:16.39ID:NdNVw3ey0
>>79
フレームワークである程度分割すればいいんじゃねーの?
0084デフォルトの名無しさん (スプッッ Sdff-O9pn)2016/10/31(月) 09:59:50.69ID:paNpTD9Xd
>>79
状況はわかるし、気持ちもわかる
でもやってる事はどちらかと言うと悪手のように思うよ

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

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



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

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

大変だけどトータルで見ると頑張って高速のマシンを買ってもらう価値あり
レンタルもありだよ
「武器は良いものを下さい」と言って上司を口説いてる「竹槍と根性だけでは勝てません」て
その代わり上司がそのまた上司に説明できるように生産性何パーセントアップとか数字の入った資料は用意している
0085デフォルトの名無しさん (アウアウカー Sa7f-Jz20)2016/10/31(月) 10:12:37.14ID:MowifMDBa
ビルド10分が生産性のボトルネックになってるってw
0086デフォルトの名無しさん (スップ Sdff-Jz20)2016/10/31(月) 12:03:52.55ID:sVVQsMs5d
>>81
「そろえる時間とか」の「とか」は、「そろえる時間」以外の何?
0087デフォルトの名無しさん (ワッチョイ 133c-xElR)2016/10/31(月) 14:17:53.86ID:VXqz7JcR0
http://echo.2ch.net/test/read.cgi/tech/1463149806/557-559n
0088デフォルトの名無しさん (ワッチョイ 638f-Jz20)2016/10/31(月) 23:28:17.38ID:zObjWshz0
プログラマーはフレームワークのバグを疑い、コンパイラを疑い、
ハードを疑い、最後の最後に結局自分が悪かったと気づく。

結局大概の問題は自分起因だと気づくんだよ。
もっと自分を疑え。
0089デフォルトの名無しさん (ワッチョイ 6362-Jz20)2016/10/31(月) 23:58:57.20ID:y/KHbdbU0
おつおつ
0090デフォルトの名無しさん (スプッッ Sdff-O9pn)2016/11/01(火) 08:37:49.54ID:SqrJLIAed
>>88
七度探して人を疑え
プログラマに限らないようで
0091デフォルトの名無しさん (ワッチョイ 039a-ijxz)2016/11/02(水) 02:53:43.12ID:0L1TooRo0
>>84
azs..

今回のAppleの発表で5KのiMac4万安くなったというのもあり、
交渉する勇気がでました
0092デフォルトの名無しさん (ワッチョイ 039a-ijxz)2016/11/02(水) 02:59:20.17ID:0L1TooRo0
差分ビルド効いてても、コンパイル単位の切り分けってビルド時間短縮につながる?
0093デフォルトの名無しさん (ワッチョイ fb3c-nx48)2016/11/02(水) 12:52:27.64ID:vzQ+b2bv0
試して報告してくれ。
0094デフォルトの名無しさん (ササクッテロリ Sp7f-BXGM)2016/11/02(水) 14:38:43.54ID:rHHkFyogp
メリット:
ObjCに比べてコード量が減って作業効率が上がります

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

商用ソフトウェアでSwift採用を交渉して通ったらびっくりするよ
それ以前に、Swift採用を交渉してきたらプロマネが(悪い意味で)びっくりするかもしれんけど
0095デフォルトの名無しさん (ワッチョイ 3f13-3xFl)2016/11/02(水) 16:40:29.18ID:db1quxwb0
>>94
製品の良し悪しは言語で決まる訳じゃないのに
0096デフォルトの名無しさん (スプッッ Sdff-O9pn)2016/11/02(水) 18:00:18.26ID:RCRK3FtZd
>>91
おう、前向きやん、頑張れ!

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

手間暇かかるし、心も挫けそうになるけど、
やらないと何年たっても買ってもらえないからな
0097デフォルトの名無しさん (ササクッテロル Sp7f-O9pn)2016/11/02(水) 18:29:15.23ID:UuGtpbllp
>>94
>ObjCに比べて動作性能が悪く実行時にもったりとした動作になります
他は同意出来るけどこれはどうなの?
WWDCではSwiftの方がすげー早いよって紹介してたんだろ?
0098デフォルトの名無しさん (スプッッ Sdff-Jz20)2016/11/02(水) 19:37:29.88ID:V5jMGm9Nd
そりゃスイフトのほうが早いだろう
0099デフォルトの名無しさん (ワッチョイ b38c-BXGM)2016/11/02(水) 21:24:36.15ID:RaymUkXW0
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のおもちゃとしては楽しい
0100デフォルトの名無しさん (ワッチョイ d7ba-Jz20)2016/11/02(水) 21:26:12.54ID:xZyO7jMI0
林檎製アプリもswiftに置き換えてるのに
0101デフォルトの名無しさん (ワッチョイ d742-0DI1)2016/11/02(水) 22:17:16.59ID:aJUXU1mT0
性能下がってきたなんて話は今のところ聞かないが
0102デフォルトの名無しさん (ワッチョイ 133c-O9pn)2016/11/02(水) 23:38:41.44ID:ihp4ITm60
まだコア部分はObj-Cだからでしょ
0103デフォルトの名無しさん (ワッチョイ fd8c-AEdt)2016/11/03(木) 00:05:58.26ID:YyMYD2K/0
なぜ3で削除されたC-style forからの性能劣化を具体例に出したのになかったことにするのか
前スレだか前々スレだかで実測して数値も出した情報だぞw
0104デフォルトの名無しさん (ワッチョイ 7162-DGmA)2016/11/03(木) 00:14:56.13ID:BOny4tTs0
Swiftは煽り抜きでダメだなもう
ガバナンスも利いてないしめちゃくちゃ
文法も思想もとっちらかったクソ言語に成り果ててる
0105デフォルトの名無しさん (ワッチョイ bc42-8n5s)2016/11/03(木) 06:48:25.75ID:GxO0spX30
>>103
ちゃんとstride使ってるか?
0106デフォルトの名無しさん (ワッチョイ 5e93-m5qj)2016/11/03(木) 06:52:50.32ID:1srrFQD30
>>99
つまりは酸っぱい葡萄が大好きな狐さん?
0107デフォルトの名無しさん (スプッッ Sd78-m5qj)2016/11/03(木) 07:24:57.35ID:UUNhEaPVd
>>99
また聞きかじりでdisりたいだけのしょぼい奴が来たか

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

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

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



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

それはコードの書き方が下手
どうせどっかの聞きかじりだろ?自分で試してなくてww
悔しかったらそのfor each文とやらを書き込んでみろ
みんなで実行速度測って笑ってやるから
0108デフォルトの名無しさん (ササクッテロリ Spbd-DGmA)2016/11/03(木) 08:21:24.01ID:w1NhWsHTp
煽りたいだけの愉快犯っぽい

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

前スレ漁るか、C-style for削除のProporsalのサンプルの通りだから自分でどうぞ
0109デフォルトの名無しさん (ワッチョイ 718f-DGmA)2016/11/03(木) 09:37:42.70ID:zeI07SjJ0
obj-c静的言語を装った動的言語だから。
メソッド呼び出しに当然オーバーヘッドがあるからswiftが早いのは当然。

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

あれ、swift擁護しようとしたらobj-cが良さげになってきた
0110デフォルトの名無しさん (スプッッ Sd78-m5qj)2016/11/03(木) 12:43:32.38ID:UUNhEaPVd
>>108
>煽りたいだけの愉快犯っぽい

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

例えばさ

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

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

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

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

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

まさかfor文一つ人目にさらす事が出来ない臆病者なのか?
自分でやってみてないから動作時間の測定方法知らないとかそういうわけじゃないんだろ?
0111デフォルトの名無しさん (スプッッ Sd78-m5qj)2016/11/03(木) 12:44:46.62ID:UUNhEaPVd
>>109
心配すんなって
swiftからでもcは使えるから
0112デフォルトの名無しさん (ワッチョイ 7162-dKGq)2016/11/03(木) 13:12:33.29ID:BOny4tTs0
それはSwiftのwithout Cに反するので本末転倒
却下
0113デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/03(木) 13:27:08.44ID:CPk3BZK9d
必要なかったのに政治的にぶっ込もうとしてグダグタになってる典型例だな
前向きだったやつらも愛想尽き始める
0114デフォルトの名無しさん (ワッチョイ 714e-dKGq)2016/11/03(木) 13:46:18.73ID:0SaHyNen0
without C の真意はポインタの隠蔽?
0115デフォルトの名無しさん (ワッチョイ d0c9-dKGq)2016/11/03(木) 14:03:19.84ID:Uhidgpr40
>>108
前にこのスレで出てたfor文のベンチマークもどきならベンチマークとして計測の仕方がまずくてベンチマークになってなかった
面倒くさいから黙ってたけど
0116デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/03(木) 14:11:38.60ID:CPk3BZK9d
>>114
どうなんだろうね
表面的な見た目も無駄にwithout Cにしようとしてるきらいがあるけど
0117デフォルトの名無しさん (ササクッテロリ Spbd-AEdt)2016/11/03(木) 14:32:53.86ID:w1NhWsHTp
>>115
Swift Sandboxでのサンプルがダメってんなら提供はむずいのう
ELF読み込み時間を考慮してないとか、単独試験になってないとか、評価回数が少なすぎとか、そりゃツッコミどころはあろうよ

ポインタ文法も薄目に見たら表面上だから・・・
宣言(予約語)、制御文、演算子をC/C++から違うものにしたいんだろうなぁと思う
0118デフォルトの名無しさん (スプッッ Sd78-m5qj)2016/11/03(木) 14:50:34.97ID:UUNhEaPVd
>>115
そうだよなぁ

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

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

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

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


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

別に言語や開発環境が変わってもやる事は変わんないなぁ
0119デフォルトの名無しさん (スプッッ Sd78-m5qj)2016/11/03(木) 14:58:28.17ID:UUNhEaPVd
>>117
え?、、、、、、

コード読んでないけど、それ、forの速度比較にならないよ
0120デフォルトの名無しさん (ワッチョイ 7162-dKGq)2016/11/03(木) 15:34:45.56ID:BOny4tTs0
>>116
「無駄に」には禿同
0121デフォルトの名無しさん (ワッチョイ ef53-nJsM)2016/11/03(木) 21:07:23.94ID:GA4nbDQd0
>>114
ビット、バイトレベルの操作はCに任せて、もっと大きな束(Class、Struct)を操作することに専念するという意図だと思ってる
低レイヤーの処理をSwiftで置き換えようという動きはほとんど見られないからな
URLSessionも内部ではCURL使ってるし
0122デフォルトの名無しさん (ワッチョイ ef53-nJsM)2016/11/03(木) 21:11:27.54ID:GA4nbDQd0
SwiftはObjCより役割が明確になった
低レイヤーもゴリゴリかけるObj志向より
低レイヤーはCで良いです。Obj志向持ち出さないといけないくらい大規模開発になったらSwiftから操作します
本当に開発車が求めてたのはこっちだと判断したのだろう
0123デフォルトの名無しさん (ワッチョイ 718f-DGmA)2016/11/03(木) 22:36:47.60ID:zeI07SjJ0
>>122
いやいやcとの連携を考えたら圧倒的にobjcでしょ。swiftからcの構造体とか関数を扱うのってそんなに楽だったっけ?
0124デフォルトの名無しさん (ワッチョイ 7162-dKGq)2016/11/03(木) 22:52:01.17ID:BOny4tTs0
だからwithout Cを掲げといて困ったらCとか何なの...
Swiftは右往左往しすぎ
0125デフォルトの名無しさん (ワッチョイ fd10-7tG6)2016/11/04(金) 00:57:42.08ID:qpsq4Ku/0
C++で書かれたライブラリを使うときはObj-C経由になって面倒だよね、自分でラッパー書かないといけないし
まじめに設計すればいいのだろうけど、設計コストが割けない場合は面倒臭いからObj-C++のラッパークラスにビュー操作とかたくさん入れるみたいなぐちゃぐちゃのコードができそう
0126デフォルトの名無しさん (ワッチョイ d0c9-X2H6)2016/11/04(金) 01:55:19.84ID:Y6RBUWTc0
Objc++ってc++14の機能とか使える?
0127デフォルトの名無しさん (ワッチョイ 5e93-m5qj)2016/11/04(金) 06:49:07.92ID:IQwZZLFC0
>>123
うん、ヘッダファイルをインクルード(import)するだけで
Swiftプログラムの中で普通にcの関数や構造体が使える

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

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


c++はワンクッション必要だけどそれも3日で気にならなくなるレベル
0128デフォルトの名無しさん (ワッチョイ 7162-dKGq)2016/11/04(金) 08:38:39.73ID:f4ftpOMT0
もはやObjectivc-Cでいいじゃねぇかっていう...
0129デフォルトの名無しさん (スップ Sd78-DGmA)2016/11/04(金) 08:42:12.75ID:2pY38tv9d
だめでふ!
0130デフォルトの名無しさん (スッップ Sd28-DGmA)2016/11/04(金) 09:19:39.69ID:YHeqrh8yd
>>128
それな
でも政治的に無理
0131デフォルトの名無しさん (ワッチョイ 5e93-m5qj)2016/11/04(金) 09:35:38.12ID:IQwZZLFC0
>>128
俺がObjective-C使えないから却下
■ このスレッドは過去ログ倉庫に格納されています