Swift part11 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/06/28(水) 17:58:29.74ID:KUDOoNV30
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift Part4
http://egg.2ch.net/test/read.cgi/mac/1484763495/

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

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

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


前スレ
Swift part10
http://mevius.2ch.net/test/read.cgi/tech/1487552413/

スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/10/06(金) 10:41:46.35ID:2sWAD4+90
使い物にならなかったのと型推論とどういう関係が?
2017/10/06(金) 13:45:29.26ID:5pSVr9SsM
論理的文書構成ができない>>340を部下に持つ中級プロマネかわいそう
2017/10/06(金) 17:03:08.49ID:V7ffa7dDM
というか、型推論使えとか使うなとか、そんな細かいことPMが言うってどんな状況だよ
プロジェクトマネジメントとなんの関係もないだろ
2017/10/06(金) 20:32:58.77ID:wgggGznB0
なんで型推論やめようと思ったのかが気になる
コンパイル重かったのか

へぼグラマーにありがちだが
自分がよくわかんない部分を取り除けばすべてよくなると思ったのか
345デフォルトの名無しさん (スップ Sdda-jJU0)
垢版 |
2017/10/06(金) 20:40:20.94ID:oDN7+iQQd
型推論をやめようと言ったら切れられた
↑やめたい理由もキレられた理由も理解不能だが言っていることはわかる
何故かユーザテストで使い物にならなかった
↑ん?型推論と関係なくね…
Guideline知らないデザインナーはただのお絵かき
↑もはや何の話をしているのかわからん!


ここから推測するにPMにキレられた理由は>>340がアホだからだな
2017/10/06(金) 20:56:02.17ID:wgggGznB0
30人も使って3ヵ月って規模からしたら超タイトだな
完成品にこぎつけてる時点ですげーよ

携帯ってこんなもんなん?
347デフォルトの名無しさん (スップ Sdda-jJU0)
垢版 |
2017/10/06(金) 21:05:57.43ID:oDN7+iQQd
サーバー側含めてだろ
今時三ヶ月なんて普通だろ
2017/10/06(金) 21:14:23.42ID:wgggGznB0
ひぇぇ

枯れた業務系で仕事してるが
知らんあいだに世の中どんなことなってんだ
2017/10/06(金) 22:00:52.00ID:FHIJEXWg0
マネジメント力にかかってる
人数増やすほどなおさらその人数を100%に近い稼働率で動かすのは至難の技
2017/10/06(金) 22:43:50.15ID:nuKuH1wb0
アプリのプログラミングは1人1画面って感じなんかね
サーバーサイドにマンパワー使ったかな
351デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/06(金) 23:05:40.33ID:/80lsBeB0
swift使わなきゃまともなプログラム作れないなんて
所詮アマチュア
swiftのビルドの遅さは一体何?アホ遅いよな?
352デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/06(金) 23:14:40.00ID:nNBQ8Jr7p
COBOLとかまだ現役
5000ステップくらいならコンパイル3秒www
2017/10/06(金) 23:18:22.67ID:nuKuH1wb0
まぁ、高性能のハードを用意しろってことだろ
2017/10/07(土) 08:12:23.79ID:s04ZU/0N0
Swiftは趣味で日曜プログラマが使うにはいいと思う
355デフォルトの名無しさん (ワッチョイ 95b3-2iPL)
垢版 |
2017/10/07(土) 09:55:31.45ID:U1rvDJEV0
>>349
中小は自信過剰なアホジジイがマネジメントしてるケースが多いから困るよ
356デフォルトの名無しさん (ササクッテロリ Sp75-2iPL)
垢版 |
2017/10/07(土) 09:57:26.82ID:QJpqp28Yp
swift6あたりで可読性も兼ねて型推論は無くなるだろう。
型推論など甘え。
2017/10/07(土) 10:08:58.99ID:KI1hLy1h0
クラス変数やメンバ変数は型が明示されてた方が可読性は高いと思うけど、一時的な変数をいちいち型宣言するのは面倒いよ
2017/10/07(土) 15:12:59.61ID:8/GtqdSW0
「人月の神話」まだ読んでないの
2017/10/08(日) 22:52:13.41ID:uIqMxfC90
めったにないけど型がついてないと
呼び出し先のメソッドの戻り値の型がこっそり変わって
それに引きずられて呼び出し出し先のメソッドが変わったんじゃないかとか
心配事が増えることがある
2017/10/08(日) 23:23:26.45ID:ZE2/usTz0
let someName = String(format:"User %02d", userId)
みたいなのは明らかにStringってすぐわかるから書かないようにしてるけど、
ややこしいメソッド呼んで戻り値の型がぱっとわかんなそうなやつは書くようにしてるな。
let analyzedDataMap = analyzer.analyze()
みたいなやつね。
2017/10/08(日) 23:59:22.72ID:93IJP3PA0
そういうケースは
なるべく右辺に型を書くようにしてる
2017/10/09(月) 07:53:43.84ID:UhJ6XiQR0
後でコード読む時に、型を調べようと思ったら関数まで飛んで返り値を調べないといけないからな
文字列みたいに明らかなのはいいけど、オレオレ関数の返り値を代入する場合はなるべく型宣言した方がいいかもね
2017/10/09(月) 09:41:59.82ID:4WiIHmfQ0
メソッドチェーンや引数に関数呼び出しを直に置くのもしないの?
同様に戻り値の型が明示されないまま流れていくけど
2017/10/09(月) 09:47:58.22ID:c41RoAYB0
Swiftの分際で関数型とか調子乗ってるな
2017/10/09(月) 11:12:47.14ID:7FcxW73H0
>>363
そういうのはもうひとつのイディオムみたいなもんだから、わざわざ変数宣言しているものに比べてなんとなく流れだけわかってればいい場合が多いと思うけど。
2017/10/09(月) 12:14:03.34ID:4WiIHmfQ0
>>365
変数宣言って「わざわざ」なんて言う程のことかな
同じ参照を複数回使うために変数に置くとかよくあることだと思うんだけど
こういうの前者は良くて後者のrは型明示すべきなの?

f(t.load(), kNameIndex)

let r = t.load()
f(r, r.index("name"))
2017/10/09(月) 12:23:32.41ID:CFyXNixj0
まぁ、関数の引数は補完機能を使えば型も参照できるからそこまで拘る必要ないかなと思うけどな
引数には分かりやすいラベル使って欲しいとは思うけど
2017/10/09(月) 17:30:23.07ID:7FcxW73H0
>>366
文脈によるんじゃないの。メソッドで何回も使われる重要な変数が型ついてなかったら読みづらいし、局所的に2回ぐらいしか使われない変数だったらどうでもいいと思う。
型推論なんか無価値だと主張しているつもりはないので。
C++のmapのiteratorとかちゃんと型を書きたくないしさ。
2017/10/09(月) 22:47:50.52ID:KdSq7WwE0
可読性の向上のために型推論があるのに、コンパイラが推論可能だからといって、人間が推論することが難しい書き方はするべきではない
2017/10/09(月) 22:50:13.97ID:c41RoAYB0
ほんそれ
そもそも型推論なんていらん
むしろ考慮することが増えて面倒
371デフォルトの名無しさん (ワッチョイ 76a5-jJU0)
垢版 |
2017/10/09(月) 23:44:00.27ID:ZTYTzUU70
型推論とかいう作ったやつの自己満機能
2017/10/10(火) 00:19:08.18ID:9k+Hkwgm0
型推論いいじゃん
コーディング量が減るし

let age: Int = calculateAge(fromBirthday: birthday)
let age = calculateAge(fromBirthday: birthday)

let name: String = nameField.text.stringByTrimmingCharactersInSet(.whitespaceCharacterSet())
let name = nameField.text.stringByTrimmingCharactersInSet(.whitespaceCharacterSet())

紛らわしい変数名とか使わなければ型は自明なケースも多い
2017/10/10(火) 00:21:14.49ID:jM5sd94/0
ところでSwiftとかKotlinとか似たような言語がポコポコつくって何がしたいん
2017/10/10(火) 00:32:06.42ID:GlWhehwV0
微妙にちょっとずつ違うから
最終的にいいとこどりして
C#がさらに最強になる
2017/10/10(火) 09:50:24.55ID:vhDO2SQEM
>>372
ageをひっそり月対応にしといてやんよ
2017/10/10(火) 17:19:55.70ID:GZ/dICxTM
まぁ型推論が有効なのってideとの連携前提なとこあるよね。
結局この型どうやんねんって時にフォーカス合わせれば型がわかるから使えてるところはある
377デフォルトの名無しさん (アウアウウー Sa39-bcWR)
垢版 |
2017/10/10(火) 18:47:00.23ID:eiklXckra
いろんなソース読んでるとBaseViewみたいなの用意してストーリーボード上でそれをNavigationControllerより前に置いてるんだけどどういう風にどういう意味でなんの利点があってやってるんですか?
2017/10/10(火) 20:20:45.88ID:9k+Hkwgm0
そのBaseViewがソースでどういう使われ方してるのかみてみないとなんともいえんな
2017/10/10(火) 21:16:36.06ID:okVS1LPg0
>>377
なかなかナゾな書き方だなw

BaseViewController -> NavigationController
NavigationController -> ViewController.view.subviews[0](=BaseView)
StoryboardにはViewを単独では配置することはできない、また、単にViewControllerではなくNavigationControllerってるとこからは前者か?と推測

前者のは利点はわからんなあ、逆にあんまりNavigationControllerが必要でなくViewController -> ViewController -> ViewController ... な遷移でも書けるがNavigationController中で遷移させた方が利点があることはあるのはある
後者は(なんか別に配置して)目一杯でなくなった場合にとかだろうと推測
2017/10/10(火) 21:36:28.71ID:mEVSBT7T0
>>372
375でも書かれてるけど、ageって必ず年ってわけじゃないからageに関しての例は適切じゃないと思った。
FloatなのかIntなのか事前に知っておきたい場合ってのも結構多いし。
2017/10/10(火) 22:02:25.69ID:odAtKqMJd
>>376
そう
何に推論されてるのか推論するのが面倒なときがある
結局単にIDE依存度を高める機能
2017/10/10(火) 22:02:55.52ID:9k+Hkwgm0
年齢の型が浮動小数点数なわけないだろ常識的に考えて
2017/10/10(火) 22:59:28.27ID:jM5sd94/0
誕生日からの経過月数や日数、ひいては時間や秒まで浮動小数点の年齢として表現することにする実装もありうる
常識的っていう曖昧な前提はプログラミングではいらない
384デフォルトの名無しさん (ワッチョイ 91e9-bcWR)
垢版 |
2017/10/10(火) 23:06:02.00ID:M6M4qQyh0
>>379
御察しの通り前者です
どういう風に使っているかと言われると、表示に関係者した共通処理?プログレスの表示などのをまとめてるっぽいんだけど画面数が多くなるとまとめたほうがいいのかな
2017/10/10(火) 23:28:14.76ID:9k+Hkwgm0
>>383
年齢に整数型以外を使うときは、typealiasするなり型を明示して、変数名もageにはしないわ常識的に
2017/10/10(火) 23:40:37.74ID:R4fGxZLA0
>>384
BaseViewControllerでググったらあった、複数。こんなん流行ってたのか
https://qiita.com/yimajo/items/8ef1850e1362bd3bf3d8
基本否定姿勢だけどちゃんとメリットも書いてある/理解してる(?)とても良い人の意見なんじゃね?w

俺にはそれでもメリットは何も感じないけどww
2017/10/11(水) 00:14:13.41ID:sKdl4TO60
>>380
事前に知って起きたい場合じゃなくて、事前に決めて起きたい場合じゃないの?
型推論があれば受け側の変数の型を宣言しておけば、同じ名前のメソッドを使い分けられるんじゃない?
2017/10/11(水) 06:53:33.72ID:5yuJhWQ70
>>385
つまり最初から型書いとけばこんな下らん議論はいらないということだ
IDEもあるのに型を書くくらいがめんどいやつはプログラマやめちまえばいいと思う
389デフォルトの名無しさん (ワッチョイ 95b3-Hg+h)
垢版 |
2017/10/11(水) 06:57:49.22ID:PHAOwVfO0
アプリ全体のviewControllerで行う処理とか後から追加するのが面倒だから、実装なしでもbaseViewController継承しておくのがプロ
390デフォルトの名無しさん (ワッチョイ 95b3-Hg+h)
垢版 |
2017/10/11(水) 06:58:56.69ID:PHAOwVfO0
アプリ全体のviewControllerで行う処理とか後から追加するのが面倒だから、実装なしでもbaseViewController継承しておくのがプロ
391デフォルトの名無しさん (ササクッテロラ Sp75-Hg+h)
垢版 |
2017/10/11(水) 07:31:38.26ID:3JYMgXlbp
Swiftのビルドの遅さと言ったらもう
2017/10/11(水) 08:57:59.33ID:xjGA/sOAd
大丈夫
モダンな言語を触ること自体が喜びの意識高めの方々にはまったく苦にならないから
2017/10/11(水) 10:29:22.28ID:wXVN7J6z0
型型抜かすんじやねぇ
2017/10/11(水) 11:10:15.04ID:nDtE4t5M0
>>387
書く側としたら事前に決めておきたい、だけど、読む側としたら事前に知っておきたいという感覚になるのかな、と。

あと、ライブラリを部分的に知ってるような場合に、どこで自分の知ってる型が出てくるかわかるだけでも全然読みやすさが違うとかはあるよ。
名前の付け方がよければそんなことないかもしれないが、そうでない場合、全部一個一個チェックしていかなきゃいけないわけだから。
2017/10/11(水) 11:51:10.61ID:wXVN7J6z0
ソースを追ってて型が明示されてないと分からなくなることってそんなあるか?
いちいち型が明示されててごちゃごちゃしてるよりすっきりしてる方が好みだけどなぁ
どうしても知りたければIDEの構文補完ですぐわかるし
コンストラクタとかは呼び出しそのものが型宣言みたいなもんやし冗長やろ

let query: NSMetadataQuery = NSMetadataQuery()
let query = NSMetadataQuery()

let fileManager: FileManager = FileManager.default
let fileManager = FileManager.default

as演算子を使う時も型は自明
let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let appDelegate = UIApplication.shared.delegate as! AppDelegate
2017/10/11(水) 13:24:55.20ID:nDtE4t5M0
>>395
こういう見て明らかなのは良いと思うよ
2017/10/11(水) 13:37:02.94ID:7Q5j4kqZM
見て明らか(哲学)
2017/10/11(水) 13:51:10.92ID:wXVN7J6z0
逐一型宣言してたら、後でクラス名とか変えたくなった時に影響範囲も増えるからな
2017/10/11(水) 21:53:46.50ID:iHsyneUfM
>>398
それこそideがやるべきだろ。
400デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/12(木) 00:23:01.42ID:a0zf13g60
おまえらみたいな意識高い系のおかげでかいしゃは消える
なぜならユーザーメリットなく
401デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/12(木) 12:03:55.01ID:VXMT0qDgp
常に意識高く(=コスト高く)
皆が意識高いわけじゃないし

もうIDEが プログラム推論 で全部書けよ
2017/10/12(木) 12:07:58.00ID:1BqA9hpy0
そのうちAIがプログラムを書くようになる日もくるだろう
俺たちの仕事は要件定義だけ
そのうち、要件定義すらAIがやりはじめるだろう
もう俺達の仕事はなくなるね
2017/10/12(木) 16:00:26.14ID:YopnhZe80
そのうち=50年後とかか?
2017/10/12(木) 22:11:20.91ID:RMeyvXX8d
IDEがないと書けたもんじゃないモダンな言語
実に感慨深い
2017/10/12(木) 22:59:47.41ID:VJJSsqbY0
IDEが無くても書けるモダンな言語って一杯あるもんな
406デフォルトの名無しさん (スプッッ Sd33-YqbF)
垢版 |
2017/10/12(木) 23:00:07.52ID:1gJjE3UDd
効率悪いやろ
407デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/13(金) 08:36:59.82ID:R6m8UyoBp
とにかくビルド遅い、Mac全体遅くなる
swift死んで欲しい
2017/10/13(金) 09:01:30.41ID:I4FuvleI0
Swiftを使わないという選択肢もあるんやで
409デフォルトの名無しさん (スップ Sd73-YqbF)
垢版 |
2017/10/13(金) 09:08:03.03ID:XIdp19imd
ない
2017/10/13(金) 12:52:09.23ID:1ukxQn240
昔はObjective-Cという言語があってだな。
2017/10/14(土) 07:56:37.27ID:+XwGR1nT0
>>408
ない

>>410
今でもある
2017/10/14(土) 08:12:52.64ID:iVQdjzuU0
Unity厨はSwift使ってないやろ
413デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/17(火) 00:46:21.35ID:/DLwU+2k0
swiftの進化は止まらないキリ!(常に仕様変更)
414.(北海道) (ワッチョイ 0b15-B6a6)
垢版 |
2017/10/17(火) 12:15:49.74ID:mFTopqwd0
死亡確認
http://swiftrithm.com/swift-the-basics/
2017/10/17(火) 12:40:13.24ID:CwI71i8R0
しかし、案件がほとんどswiftだらけになってきたな
2017/10/17(火) 12:50:05.74ID:ibTYUewl0
Swiftの方が素人受けはいいからな
2017/10/17(火) 20:52:23.67ID:GbMA1Nomp
Swiftならアプリ自体は大した更新がなくてもメンテ費の上乗せが出来るな
418デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/18(水) 14:36:05.54ID:ILFv9GYLp
順位 プログラミング言語 インデックス値 推移
1 Java 12.431% ↓
2 C 8.374% ↓
3 C++ 5.007% ↓
4 C# 3.858% ↓
5 Python 3.803% ↑
6 JavaScript 3.010% ↑
7 PHP 2.790% ↑
8 Visual Basic .NET 2.735% ↑
9 Assembly language 2.374% ↑
10 Ruby 2.324% ↑
11 Delphi/Object Pascal 2.180% ↑
12 Perl 1.963% ↓
13 MATLAB 1.880% ↑
14 Scratch 1.819% ↑
15 R 1.684% ↓
16 Swift 1.668% ↓
17 Objective-C 1.513% ↓
18 Visual Basic 1.420% ↓
19 PL/SQL 1.408% ↓
20 Go 1.357% ↓
2017/10/18(水) 14:56:23.42ID:T9D0pP1v0
何年前の順位だよ
2017/10/18(水) 15:12:28.66ID:ZA5pKZ/Z0
今月のTIOBEでしょ
2017/10/18(水) 15:47:16.32ID:T9D0pP1v0
ならそう書いとけ
2017/10/18(水) 17:55:25.38ID:9v+DEMoH0
逆ギレww
っていう風なのかもだがマジっぽさの方が上回る。うまいんだかなんなんだかww
2017/10/18(水) 18:49:21.90ID:or5PxEHud
>>418
このアセンブラって具体的にはどういう分野で使われてるのかね
2017/10/18(水) 19:17:25.73ID:9v+DEMoH0
そういうガチでとかいうのではないだろう。ググるくらいな人ばかりなんだから
学習とかデバッグでとか極めて一部をハンドアセンブルとかとか諸々じゃね
2017/10/18(水) 19:54:35.46ID:KP1R950Ya
組み込みで使われてるでしょ。
2017/10/18(水) 19:59:44.82ID:T9D0pP1v0
汗ブラでくいこみとかエロいな
2017/10/18(水) 21:02:13.26ID:GswCLlj60
>>423
チップとかファームウェアとかの組み込み系
カード会社や航空会社で使われてるTPFでもまだアセンブラ使われてる

TIOBEは用途も業界も関係ないから
長期的なトレンドの参考にはなるけど
相対的な順位を見てもほとんど意味ない
2017/10/18(水) 21:16:53.75ID:or5PxEHud
>>427
なるほど
確かにチップとかのなかのマイクロコードはアセンブラってのはしっくりくる
429デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/18(水) 22:15:26.69ID:Zyh+egfX0
今月の順位だよ
430デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/18(水) 22:20:56.91ID:Zyh+egfX0
もうswiftは死ぬな
型推論を許さないswift、speedに乗り換えるかな
431デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/18(水) 22:26:48.14ID:ILFv9GYLp
全部varで全部nil許容で全く問題ない
どうせアプリなんか使い捨て
reactive?オナニーでしょ?学習コスト考えたら
objcで速攻リリース、かつ何度もも作り直したほうがマシ
432デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/18(水) 22:31:27.83ID:Zyh+egfX0
ユーザメリットで考えたら、型推論?リアクティブ?氏ねば?
って感じだろうなw
型推論なんかしてないでテストコード自動生成しろとw
433デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/18(水) 22:48:57.23ID:Zyh+egfX0
swift+リアクティブってロシアの嘘ニュースみたいな感じで、誰も幸せになってない気がする
2017/10/18(水) 22:52:28.31ID:lZCtahGC0
型推論を目の敵にしてる奴なんなんだ
絶対いるし

それとnil許容だけはだめだ絶対だめだ
435デフォルトの名無しさん (スプッッ Sd33-YqbF)
垢版 |
2017/10/18(水) 23:10:20.06ID:jJg7gfnwd
学習コストがーなんて言い出したらもう技術者として終わり
436デフォルトの名無しさん (ササクッテロラ Sp45-gv9Q)
垢版 |
2017/10/18(水) 23:37:08.13ID:ILFv9GYLp
おれはできるだけ楽したいからobcでサクサク儲けるよ
437デフォルトの名無しさん (ワッチョイ 99b3-gv9Q)
垢版 |
2017/10/18(水) 23:41:58.39ID:Zyh+egfX0
Swiftはまだ歴史が足りない気はする。
最近、お客さんから「Xamarinで」とか指定されるし。
2017/10/19(木) 00:58:26.26ID:Pt6qsiBs0
SWift のUIKitとかFoundationとかのAPIの日本語マニュアルとかどこにあるん?

英語のアップル公式のしか無いんか?
2017/10/19(木) 01:19:03.70ID:3LvAlDL/0
>>438
ttps://developer.apple.com/jp/documentation/
2017/10/19(木) 01:25:19.54ID:Pt6qsiBs0
>>439
そこにある、日本語化されたのって
Objective-Cしか無いように見えるんですが

これのSwift版がどこかなぁ....という相談でして....
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。