トップページ⇒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
0446デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/07(土) 21:55:01.67ID:p94OVxAQ0
>>444
>SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから

それメモリに全部読み込んでるでしょ?
極端な例だけど300MBのファイルだとして全部最初にString化するの?
0447デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/07(土) 21:55:42.79ID:p94OVxAQ0
>>445
見てて>>442みたいな考えなら特に言うことはない
0448デフォルトの名無しさん (スプッッ Sdff-GcKO)2017/01/07(土) 22:12:08.42ID:DTtrdLJ+d
>>434
「ファイルを行単位で読んで処理しようとする時とか」の「とか」は、「ファイルを行単位で読んで処理しようとする時」以外の何?

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


そんな「とか」の使い方じゃ、まともな仕様は作製できない。
0449デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/07(土) 22:21:44.29ID:IyWm4kw10
研鑽兼ねて>>438で書いたこと自分でやってみた
http://swiftlang.ng.bluemix.net/#/repl/5870e7500f558d57abf31839
・セル内の改行に対応
・パイプライン的に処理(バッファ境界でUTF8が破断することも無し)
・改行コードはちょっと端折り
0450デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/07(土) 23:25:32.71ID:4HC1Pjzk0
>>448
残念ながらこれは仕様書ではない

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

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


そう言うことを聞きたいわけ???
0451デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/07(土) 23:32:17.40ID:p94OVxAQ0
>>449
超できる子だな

Swiftのシーケンスって読み終わったところからメモリ開放されるのかな?
そうじゃなければ別途chunkに分割しないと全処理時は最終的にメモリに乗るよね
0452デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)2017/01/07(土) 23:54:15.55ID:PPvI4deGp
出来ない子だな、お前は教えて君か
0453デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/07(土) 23:55:36.10ID:IyWm4kw10
>>451
Iteratorのクロージャが強参照してるもの以外は順次開放されるよ
UTF8デコーダと内部バッファ(4バイト?)、字句解析用の変数(end,hold)、
1レコード分(row:[String])がメモリ消費する

Array(parseCsv(...))すると全部抱えてしまうのでforEachで1レコードずつ処理する必要はある
0454デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/08(日) 00:11:05.12ID:JrkgmnK40
あと filePath → AnyIterator<UInt8>
http://swiftlang.ng.bluemix.net/#/repl/587104360f558d57abf31847
0455デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/08(日) 00:46:34.89ID:9hp7bz6e0
>>453
そっかありがとう

>>454
すげーな 超参考になる
ファイル読み込みはchunkでやるけどあとはバイトストリームで処理できるから境界の心配しなくていいのね
こういうシーケンス使った考え方を知るのになんかオススメの本とか資料とかもしあったら教えて
Swiftじゃなくてもいいので
0456デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)2017/01/08(日) 09:45:34.32ID:qkk6ZrX+0
->って何?アロー演算子ですか?^^
0457デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/08(日) 10:12:37.73ID:JrkgmnK40
>>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はジェネリクス対応用(型消去法)
0458デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/08(日) 17:36:54.12ID:9hp7bz6e0
>>457
ありがとう
心のなかでマスター先生と呼ばせてもらうよ

素養が違うからか教えてもらった記事からだとマスター先生の考え方に近づけそうにないんだが
もう少し頭のなかをストリーム化できるように日々修行するわ
0459デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/08(日) 17:40:12.38ID:9hp7bz6e0
>>456
関数の戻り値の型

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

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

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


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

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

で、Swiftでプログラム書いてる途中でこの処理が必要なら
俺ならSwiftで書く方を選ぶと思う
0461デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/09(月) 00:13:07.51ID:vNdwgc8fa
Perl最強


#!/usr/bin/env perl
while (<>) { print; }
0462デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/09(月) 00:18:04.60ID:vNdwgc8fa
shellと組み合わせれば無敵
ちょっとした変換も簡単実装

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

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

NSStream+NSDataとかでも同じことできるんだけど少し余計に手間がかかるから
Cを選ぶ人がいてもいいんじゃないかって話だ
0464デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/09(月) 01:06:52.96ID:vNdwgc8fa
まぁ、データの入力ミスとか、誤ってバイナリデータ読ませちゃうこともあり得るからな
0465デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/09(月) 01:26:40.47ID:eHS8l2Ef0
>>463
>バッファサイズは状況に応じて変更すればいいでしょ?

プログラムはどうやって状況を判断するんだ?
日本語の小説流し込んだら簡単に1行がメガバイト単位になるぞ?
0466デフォルトの名無しさん (ワッチョイ 0fba-oQtP)2017/01/09(月) 02:22:19.00ID:9ACblGiY0
まとめられててワロタ
0467デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/09(月) 04:04:22.01ID:JTALZxOQ0
>>465
別スレで質問してた人?
バッファサイズ考えるより前にそのファイルの入手方法を考えなおしたほうがいい気がするが
0468デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/09(月) 11:54:09.06ID:eHS8l2Ef0
>>467
>別スレで質問してた人?

違うよ

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

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

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

こう言う危険性もあるけど、swiftからcの関数を呼び出せばこう言う書き方も出来るよ程度にしておいて欲しい
0469デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/09(月) 11:55:28.60ID:eHS8l2Ef0
>>468
すまんあんかミス

>単に俺(>>467)が>>434に難癖つけてるだけだよ
おれは>>465ですた
0470デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)2017/01/09(月) 12:49:46.11ID:4OeNzyzM0
>>468
入力が固定されてるなら問題ないと思う
0471デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/09(月) 13:58:21.90ID:eHS8l2Ef0
>>470
ファイル入力で常にこちらの思い通りのデータしか来ないことを想定するの?

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

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

そんなことを考えるとswiftの中でcを直接使うことの優位性はあまり無いと思うんだ
0472デフォルトの名無しさん (アウアウカー Sa3f-7kys)2017/01/09(月) 14:53:15.83ID:C7tBzNeYa
オートレイアウト使ってるやつなんているのかな?まじでゴミだと思うんやが
0473デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/09(月) 15:21:45.24ID:abgacrATa
まぁ、ほぼ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
バリバリ使ってるよ
0474デフォルトの名無しさん (スッップ Sdff-GcKO)2017/01/09(月) 15:25:37.56ID:ynBqv2kkd
>>472
中上級の奴が使いたがるんだよね。
で、viewDidLoadで、IBOUTLETのframeいじって「変わらない!Xcodeのバグだっ」て騒ぐんだよね。

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


ライフサイクル解らないグズだから。
0475デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)2017/01/09(月) 15:32:05.60ID:rN+gQaLTp
>>473
乙

なんか長文くんまで現れてやってたけど結局これよな
しかし UnsafeMutablePointer を let 宣言できるのが相変わらずキモい
特別扱いできないものかねぇ
0476デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/09(月) 17:35:13.39ID:JTALZxOQ0
>>468
そっか別人か
そのメガ単位で改行されてないテキストファイルって一般的なの?
平均3バイト/文字としても3MBで100万文字だよ?

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

UnsafePointerを扱うってことは
メモリ周りで問題を引き起こすコードを書く危険性が高まるってことだからそこを天秤にかける必要性はわかる
ただそれ以外の安全チェックとか危険性とか言ってる部分はSwiftなら全部面倒みてくれるわけではないよね
0477デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/09(月) 17:49:07.80ID:JTALZxOQ0
>>465
別人だってことなので一応この質問に答えとくと
プログラムで扱うファイルの1行の最大長が予測可能な範囲にあるならそれに応じてサイズ変更すればいいって意味ね
そうじゃないなら>>463に書いたようにバッファ内に改行があるかどうかをチェックして複数回バッファ読んでから処理する
この辺はC使っても使わなくても同じ

100MBを超えるようなテキストファイルってログファイルくらい処理しかないから発想が貧弱なのかもしれないけどね
0478デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/09(月) 17:51:25.34ID:LuXubKyCp
データ受け渡しのためのテキストファイルに改行コードいれるかどうかは設計者の決めることだからなぁ
0479デフォルトの名無しさん (スッップ Sdff-GcKO)2017/01/09(月) 17:58:25.64ID:ynBqv2kkd
>>477
ログ以外だと、何かのデータファイルをCSVで書き出したケースも考えられる。
過去やったのだと、クイズを出すアプリで、問題をひたすらテキストファイルで持っていた。

でも、移動体端末で、でかいファイルを処理するのって、基本的なarchitectureを考え直した方が良い気がする。
0480デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/09(月) 18:09:09.39ID:JTALZxOQ0
>基本的なarchitectureを考え直した方が良い気がする。
100%同意
iOSならテキストデータのインポート・エクスポート時が一番のユースケースだろうね
0481デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/09(月) 18:49:37.59ID:LuXubKyCp
htmlもxmlもJSONも改行コードは必須じゃないからなぁ
0482デフォルトの名無しさん (ワッチョイ 5b3c-GcKO)2017/01/09(月) 19:35:52.53ID:Mfdzy40n0
>>480
まあ、
>>477
さんの言う通りログなら仕方ないんだけれどもね。

ただ、そんなデカイログを端末で見るというarchitectureが・・・以下自粛。
0483デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)2017/01/09(月) 19:38:32.72ID:uxZFBykMp
Autolayoutが使えないのは論理的思考の出来ない馬鹿
あんなもん設定した通りの優先順位付けで表示されるだけだろ
0484デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)2017/01/09(月) 23:59:11.54ID:qvjxruLM0
ログなんて、圧縮するだろ

JSのファイルでも、Minify とかで圧縮する
0485デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/10(火) 00:08:49.29ID:qN25f4rba
それがどーした?
0486デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/10(火) 09:52:08.69ID:0L0fi+PIp
CとSwiftでraw文字列の読み込みの実装難易度が違う
って話だったのに、データ構造だのAuto Layoutだのを議論しててワロタ
0487デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/10(火) 10:27:31.44ID:hQEZjrPha
初心者かな
話が飛ぶのは2chではよくあることだから
0488デフォルトの名無しさん (スプッッ Sdff-oQtP)2017/01/10(火) 10:40:39.28ID:L0gptR0Sd
で?
0489デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/10(火) 10:53:58.04ID:FDJAHjJcp
ん?
0490デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/10(火) 10:56:22.37ID:0L0fi+PIp
>>487
お前バイク板住民かよぉ
(今もあそこがアレな板なのかは知らん)
0491デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/10(火) 11:17:06.45ID:FDJAHjJcp
最初は文字列の読み込みうんぬんというより、インラインでC言語を記述したいって話じゃなかったっけ?
で、そのあと、具体例として、ファイル読み込みの話になって、C言語で書いても可変サイズの行だと面倒じゃね? という話になって、そっからデータ構造の話に発展して、どさくさ紛れに、Auto Layoutの話を入れてくるKYが現れて、ってのがここまで流れだと思ったが...
まぁ、別に同じスレッドで違う話題を同時に扱うなって決まりはないしな
0492デフォルトの名無しさん (ワッチョイ df2b-vyGv)2017/01/10(火) 11:44:11.95ID:nWa+BtAl0
プログラム技術@2ch掲示板
> ネタ、板とは関係の無い話題はご遠慮ください。

決まりはあるんだけどな
Inline C in Swiftはネタ(当人はマジの様子)だけど、それ以降はSwiftに絡めたネタも少なく・・・
データ構造やAutoLayoutを話すのはいいが、ネタとしてSwiftを絡める努力をしよう(他人事
0493デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/10(火) 11:56:12.46ID:1oVGbtNGa
プログラム技術板で、データ構造やAPI絡みの話を交えるなっつうのは頑固すぎるわ
AutoLayoutに至っては4レスあっただけなのに
Swiftと全く無関係ってわけでもないやろ
0494デフォルトの名無しさん (スププ Sdff-+flj)2017/01/10(火) 12:28:56.18ID:VHs9RTlPd
Swiftでファイルダンプするだけならこれで良くね?

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

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

FileHandleにreadLineが定義されていないのが謎
0495デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/10(火) 12:35:10.25ID:0L0fi+PIp
イマドキのAPI設計的にはFileHandlerと切り離したReaderがあるんじゃね
SwiftのCoreAPIにReaderがないのは3rd party libにぶん投げしてる気がする
0496デフォルトの名無しさん (ワッチョイ dfc9-f1yY)2017/01/10(火) 14:03:45.11ID:8RubTyxI0
Foundationが貧弱なのが悪い
0497デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)2017/01/10(火) 14:08:24.18ID:s989ZmsY0
>>481
昔の2ちゃんのhtml思い出した
0498デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/10(火) 15:07:36.80ID:tt6nQotl0
型推論ネタ, 以下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)}
0499デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/10(火) 17:22:06.72ID:PjuH0Yrh0
Bでも型指定すればいいのかもしれんがどうやって指定すればいいのか分からない
こういうの普通に動くようになって欲しいね
他言語だと問題なく動くケースのような気がする

(->> (iterate inc 1)
(map #(* 2 %))
(take 5)
(reverse)
(map println))
0500デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/10(火) 17:34:25.49ID:0L0fi+PIp
関数型()にかぶれた可読性のないコードだと思った(コナミカン

関数型言語なら文化に合ってるんだろうけどSwiftで書くコードじゃねぇ
もっと読みやすい書き方あるだろとコンパイラ以前に、人間様がコードレビュー時に発狂したい
0501デフォルトの名無しさん (スッップ Sdff-+flj)2017/01/10(火) 17:46:11.19ID:IYumFm2zd
>>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)
}
0502デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/10(火) 17:51:57.47ID:aMk4PEuoa
先にprefixすればいいんやで

sequence(first:0){$0+1}
.prefix(20)
.map{$0*2}
.reversed()
.forEach{print($0)}
0503デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/10(火) 18:00:07.10ID:tt6nQotl0
>>502
処理順を入れ替えられる例を出してすまん
map→filter→prefixのような場合は対応出来ない
0504デフォルトの名無しさん (ワッチョイ dfc9-f1yY)2017/01/10(火) 18:59:28.94ID:8RubTyxI0
これが読みにくいとかさすがに化石すぎだろ
0505デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/10(火) 20:03:26.36ID:FDJAHjJcp
結局 reversed()が癌なんやな
makeIterator()かませばいけるけどな

sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.makeIterator()
.reversed()
.forEach{print($0)}
0506デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/10(火) 20:46:07.85ID:PjuH0Yrh0
>>501
これいいね
エンコーディングの融通はきかないけど
Extensionにして気軽に使える
0507デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/10(火) 21:15:41.77ID:PjuH0Yrh0
どうでもいいけど改行コード云々はファイルフォーマットの話でデータ構造とは関係ないと思う
0508デフォルトの名無しさん (ワッチョイ 5f93-+flj)2017/01/10(火) 22:31:43.58ID:Vzu2YddV0
>>507
ファイルフォーマットはデータ構造だとおもうが?
0509デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/11(水) 00:03:32.25ID:wniphiOc0
広義ではそうなのかもだけど
一般的にはデータ構造って言うともう少し論理的なもの(例えばArrayとかDictionaryとか)で
そのデータがシリアライズされたファイルフォーマット(ファイルの構造)とは別の話じゃない?

「じゃ、ここのデータ構造はJSONでお願い」って言われたら違和感あるよね
0510デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/11(水) 00:16:18.42ID:5OhI584zp
変数名に$が付くとPerlを思い出す化石マン
Rustみたく変数名に名前付けたい

>>ワッチョイ df3c-FtWv
もういいから、自分が否定されないように前提条件、論点をズラし続けるから
風が吹いたら桶屋が儲かるみたいなスレチになるんだよ
またSwiftに関係ない議論を吹っ掛けてんだろ
0511デフォルトの名無しさん (ワッチョイ df3c-FtWv)2017/01/11(水) 00:32:18.40ID:wniphiOc0
>>510
議論するつもりはないから
いい大人ならオブラートに包んでるって気づけよな
0512デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)2017/01/11(水) 00:45:33.03ID:6QBqeohxp
SierのSE的には
データ設計で決めるのがデータ構造
ファイル設計で決めるのがファイルフォーマットだろ
プログラムはよくわからんから実装方法は各プログラマに任せるみたいな
0513デフォルトの名無しさん (ワッチョイ 1b17-+flj)2017/01/11(水) 04:58:51.90ID:jTTy0tPr0
ラトナーApple辞めるってよ
0514デフォルトの名無しさん (ワッチョイ 5fe5-+flj)2017/01/11(水) 07:20:50.12ID:V2u2R+4Y0
Lattnerまじかよ
0515デフォルトの名無しさん (スップ Sdff-oQtP)2017/01/11(水) 08:02:31.25ID:jHuXm8fPd
swift終了のお知らせ
0516デフォルトの名無しさん (オイコラミネオ MMff-2HrH)2017/01/11(水) 09:04:44.13ID:7pf6bg3nM
そしてオラクルが手に入れる
0517デフォルトの名無しさん (エムゾネ FFff-9Pqs)2017/01/11(水) 09:09:16.22ID:0/vimycYF
>>513
Swiftがこの有り様だからな
つーかもともと言語としてのセンスがやはりなかった
Objective-Cから変える技術的逼迫性もなかった
まあオープンソースだし日曜プログラマは引き続きモダンな言語を楽しめばいいと思う
0518デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/11(水) 09:10:55.73ID:TTvERX8La
はい、解散、解散
お前ら元気でな
0519デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)2017/01/11(水) 09:13:22.53ID:853Dbb3u0
メーリングリストには残る予定とのこと
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170109/030063.html
0520デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/11(水) 09:36:15.32ID:5OhI584zp
ネタかとお前らマジだった
3でABI安定させてiOS組み込みランタイムにできてりゃまだこうはならなかったろうに
0521デフォルトの名無しさん (ササクッテロロ Sp3f-OZpM)2017/01/11(水) 10:22:04.51ID:6QBqeohxp
Appleがテスラ買収したら面白いのに
0522デフォルトの名無しさん (ワッチョイ 5f32-l80d)2017/01/11(水) 12:28:02.16ID:3A3Blea/0
自動運転がホットな分野ってことが分かる出来事だな……
CarPlayとテスラの自動運転がガッツリ融合みたいな感じになったりするのかね
0523デフォルトの名無しさん (ワッチョイ dfc9-f1yY)2017/01/11(水) 12:39:27.51ID:RGh2RgBv0
ラトナーがテスラでSwift製のTensorFlow級機械学習ライブラリのプロジェクト立ち上げるフラグ?
0524デフォルトの名無しさん (ワッチョイ 2b91-P21V)2017/01/11(水) 12:46:25.80ID:hbAKDMBg0
それでSwift Package Managerから使える3rd party libraryが増えるなら歓迎したいな
コアライブラリ(Foundation)が貧弱でも、外部ライブラリが充実してるならreadlineみたいな問題も起きぬ
go, rust, nodejsなんかは外部ライブラリもパッケージマネージャーも枯れてるのに
Swiftは未だにパッケージマネージャーが実用品質まで実装されていないのはホントくそだぜ
0525デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)2017/01/11(水) 13:25:01.52ID:El817HeFp
今後もバリバリコード書くのか?テスラの自動運転ソフトの副社長ってもう管理職じゃないの
いずれにしてもSwiftにはさじを投げた?
0526デフォルトの名無しさん (オイコラミネオ MMff-+flj)2017/01/11(水) 17:08:20.22ID:h4pP9InkM
ああ、LattnerがいないSwiftの進化なんて…

オープンコミュニティといえ、元締めは彼だろ
0527デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/11(水) 17:33:41.40ID:NWO+SBAfa
かつてのボーランドからマイクロソフトへチーフアーキテクトが引き抜かれて、衰退していったDelphiと同じ運命を辿るのか
0528デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)2017/01/11(水) 17:53:48.76ID:5OhI584zp
次はAppleが
企業がリーディングする必要がないほどに成長した
Swiftはコミュニティベースの開発に移行する
とか言って切り離すフェーズだなw

その時は流石にIBMは泣いていいと思う
0529デフォルトの名無しさん (ワッチョイ 6f13-q3aP)2017/01/11(水) 19:07:19.36ID:AM+tjFEn0
gasgas
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512
0530デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)2017/01/11(水) 19:48:30.44ID:ql+say3+0
>>528
オープンソース化はこの伏線だったのかな
というかすでにコミュニティベースの開発に移行してるんじゃなかったっけ?
0531デフォルトの名無しさん (スッップ Sdff-+flj)2017/01/11(水) 20:20:46.67ID:vol/OZGBd
これはSwiftが進化するフラグなのか
Swiftが廃れるフラグなのか



遅延評価だな
0532デフォルトの名無しさん (アウアウウー Sa3f-yz8t)2017/01/11(水) 20:53:57.18ID:jVlnEIwOa
うまいこと言ったつもりなの?
0533デフォルトの名無しさん (ワッチョイ 5fc9-tEgc)2017/01/11(水) 22:21:38.06ID:H1aLMscd0
Swiftがオープンソース化した本当の理由は退職への布石だったか。
業務中に開発した物は権利も含めて置いてけって言われるからな。
0534デフォルトの名無しさん (ワッチョイ ab8f-S2pU)2017/01/11(水) 22:22:31.15ID:6a0oW3vG0
ラトナーグーグル行かないかな。
そしてandroidで、swift使えるようにしてほしい
0535デフォルトの名無しさん (スッップ Sdd2-GRi3)2017/01/12(木) 02:42:00.89ID:aguNSWiGd
Swift愛が強いやついるよな
何がそんなにいいのかわからんけど
0536デフォルトの名無しさん (ワッチョイ bbba-f8hU)2017/01/12(木) 04:11:52.57ID:NO1D7SqU0
仕様が固まったらswift勉強しようと思ってたのに
勉強する前に終わりが来てしまった…

もう駄目なん?
0537デフォルトの名無しさん (ワッチョイ be5b-GRi3)2017/01/12(木) 04:53:25.74ID:HEZQC1GR0
結局AppleがSwiftゴリ推してたからSwiftやるかってなってただけで、別に言語自体に魅力があるかっつうと微妙な言語だからなぁ
0538デフォルトの名無しさん (ワッチョイ d315-+/No)2017/01/12(木) 10:11:11.64ID:hrKw0WqE0
ゴリ推し君、久しぶりだな
お前の天下だぞ、やったなw

>>534
それはもう実現されたろ
誰もありがたがらないから取り上げられないだけで
0539デフォルトの名無しさん (ワッチョイ 9232-ZP+f)2017/01/12(木) 11:03:11.47ID:HIZRXgmf0
>>534
JavaにAOT入ってくるし余りSwiftの優位性がないんじゃないかなぁ
GoogleとしてはGolangの方を推すだろうし
0540デフォルトの名無しさん (スップ Sdf2-vkEW)2017/01/12(木) 12:16:49.20ID:fxxdnJ+zd
>>539
優位性はoracleに訴訟起こされないことなので
googleだからとgolang推すとは限らない
0541デフォルトの名無しさん (スプッッ Sdf2-MRNU)2017/01/12(木) 12:20:15.98ID:ZbEfheT4d
正直、普通にpythonの方が良かったな
0542デフォルトの名無しさん (ササクッテロレ Sp37-rG+u)2017/01/12(木) 13:18:05.94ID:bePo0qAjp
>>539
AOTはとっくに入ってるけど、それでも頭打ちになって、
AOT+JITハイブリッドに進んでいる
0543デフォルトの名無しさん (JP 0Hf2-dHfL)2017/01/12(木) 15:07:06.54ID:UlDpgnikH
どうなると思う?
0544デフォルトの名無しさん (ワッチョイ f38f-JEwG)2017/01/12(木) 19:27:11.74ID:MO5zZFfW0
>>539
golangはエコシステムが素敵なだけで
better c感があるからなぁ。
正直ジェネリクスが入るまではあんまりアンドロイド向けにはならない気も。だってjavaみたいな抽象化ブログラミング苦手っしょ
0545デフォルトの名無しさん (ワッチョイ d315-+/No)2017/01/12(木) 19:51:13.69ID:hrKw0WqE0
Javaみたいな抽象化プログラミング(OOP至上主義プログラミング)がクソって風潮で
GoやRust(あと一応Swiftも)の言語仕様が切られてるんだけどな
ジェネリクスはどうでもいいわ、あれば使うけど、なくても死ぬわけでもなし
■ このスレッドは過去ログ倉庫に格納されています