Swift part4 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/11/13(木) 15:39:01.67ID:TmOo0Hy+関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/
新言語Swiftを語るスレ
http://anago.2ch.net/test/read.cgi/mac/1401736249/
プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/
前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
Swift part3
http://peace.2ch.net/test/read.cgi/tech/1406083608/
0129デフォルトの名無しさん
2014/12/08(月) 06:31:29.25ID:+NczQqkXgenericsがなんだか分からないというなら話は別ですが
0130デフォルトの名無しさん
2014/12/08(月) 18:23:54.85ID:Gr4Uo9Geでやり直し
0131デフォルトの名無しさん
2014/12/08(月) 19:18:23.82ID:KcBGEiTfそれがどの程度利便性(難易度)があるか程度の話だ
0132デフォルトの名無しさん
2014/12/08(月) 20:05:54.70ID:QfTiJ47a利点は明らかでもない
0133デフォルトの名無しさん
2014/12/08(月) 21:59:49.82ID:/ZamXyKM「なにが飛んで来てもオブジェクトが自分が扱えるか扱えないか判断できるだろ?」と
id(万能)型の方がスタート地点だからな…
型がカッチリ決まってないとムダだしバグるだろう!って
ガチガチに決めた側から「やっぱりいろいろできた方が…」って
緩和してってgenerics足してる動きとは真逆ではあるな。
0134デフォルトの名無しさん
2014/12/08(月) 22:08:30.05ID:xXdh6k410135デフォルトの名無しさん
2014/12/08(月) 22:59:18.90ID:2999qdD/0136デフォルトの名無しさん
2014/12/08(月) 23:05:29.10ID:4fpsMANTメタプログラミングとか関数言語的な使い方とかできるの?
0137デフォルトの名無しさん
2014/12/08(月) 23:11:00.22ID:zidzlGpB0138デフォルトの名無しさん
2014/12/08(月) 23:15:51.35ID:NGUYkyOWそれだったらPythonだけでなくRubyよりも優れてるのでは?
0139デフォルトの名無しさん
2014/12/08(月) 23:22:28.11ID:zidzlGpBあと Ruby は詳細知らないけど、Python とかにはない変な機能あるんじゃなかったか。
0140デフォルトの名無しさん
2014/12/08(月) 23:31:55.49ID:NGUYkyOWいまチマチマAppleのSwift本読んでるけど、
1日1ページペースだからなかなか進まない。
0141デフォルトの名無しさん
2014/12/08(月) 23:38:02.28ID:7V/jJNR6Swiftでメタプログラミングは現状ほぼ何もできない
0142デフォルトの名無しさん
2014/12/09(火) 00:17:40.01ID:g6rvcf4Bコレクションが対応してればってことで
Compareは定義しなきゃならないんじゃないの?だったら、まだ>>128は満たされていないよなあ
0143デフォルトの名無しさん
2014/12/09(火) 00:31:03.75ID:/P8WTPb7そこを明確に定義しないと水掛け論にしかならない
0144デフォルトの名無しさん
2014/12/09(火) 07:22:25.29ID:Tld0uzMurubyどころかpythonの概要も知らないんじゃないか
全く参考にできない情報だなw
0145デフォルトの名無しさん
2014/12/09(火) 07:49:13.50ID:uFa5K23O0146デフォルトの名無しさん
2014/12/09(火) 08:02:16.20ID:EVFj7308駄目だこりゃ。
0147デフォルトの名無しさん
2014/12/09(火) 20:41:04.92ID:HTXDh20F話題になるわけないじゃないの…
なに?「スマブラの話なんてゲーセンで聞いたことないな!」的な
主張したい年齢なの?
0148デフォルトの名無しさん
2014/12/09(火) 21:18:17.07ID:FcK3QkPHいまどきクロスプラットフォームじゃない言語なんて流行らないでしょ。
Swiftは最初から、Windows/Unix/Linuxの共通GUIアプリケーション開発言語として開発されるべきだった。
そもそも最大会派のWin32APIに対応していない時点でだめ。POSIX準拠でもないし
iPhoneアプリバブル時代ならいざ知らず、iPhoneもMacも落ち目なのに盛り上がるわけない。
少なくともAndroidとWindowsに対応するくらいのテコ入れはやらないと。
0149デフォルトの名無しさん
2014/12/09(火) 22:15:05.01ID:pfdL5XCR0150デフォルトの名無しさん
2014/12/09(火) 22:49:17.07ID:7jn1Y2FEまず、Swift は(基本的には)静的型付けであるのに対して
Ruby や Python といったスクリプト言語は静的型付けだから、
単純に総合力の優劣は語れない
で個別の事柄について、関数型プログラミングに関してだけど、
ML や Haskell では常識で Swift の特徴の一つだけど
Ruby や Python には存在しないものには、たとえば
(予約されていない)任意の記号をカスタム演算子として定義できる仕組みがある
以下の記事では、関数型言語の F# にあるパイプライン演算子を Swift で実装している
・F#'s Pipe-Forward Operator in Swift | Undefined Value
http://undefinedvalue.com/2014/07/13/fs-pipe-forward-operator-swift
(他にも "swift pipe operator" でググると類似の文書を見つけられる)
0151デフォルトの名無しさん
2014/12/09(火) 23:11:29.72ID:aIM7Q5Dpお前がそう思うんならそうなんだろう、お前ん中ではな
0152デフォルトの名無しさん
2014/12/09(火) 23:16:18.98ID:g6rvcf4B0153デフォルトの名無しさん
2014/12/09(火) 23:33:05.23ID:7jn1Y2FESwift や Ruby を含む多くの言語では常識であるけど Python では異なるものとして、
関数型言語に由来した(無名関数やラムダ式とも呼ばれる)クロージャがある
たとえば "The Swift Programming Language" の "Closure" の章にある map メソッドを使った
サンプルコードは、Ruby でも同じスタイルの良く似たコードで書き直せる:
http://ideone.com/TsGD6B
これは Ruby だけでなく、JavaScript でも同じ
Swift や Ruby と比べて構文が簡潔な JavaScript ではいくらか冗長にはなるけれど、
何の苦もなく Swift と同じスタイルで書き直せる:
http://ideone.com/74oNVU
同様に、「あるテーブルから特定の行だけを抽出し、加工して、集計する処理」は、
Swift だと table.filter { .... }.map { .... }.reduce { .... } とメソッドを連結(チェイン)させた式で書ける
これは Ruby なら table.select { .... }.map { .... }.inject { .... } と書き直せる
ここで、クロージャ内の ..... の部分には、上記のサンプルのように「任意の文(statements)が書ける」
もしかすると、いやこんなの高階関数のプログラミングを知っている人なら当たり前だろ、と感じるかもしれない
ところが Python だけはクロージャの本体に(任意の文ではなく)「式(expression)しか書けない」:
http://ideone.com/tDaDkL # --> Syntax Error になってしまう
だから、他の言語のクロージャに相当するコードを(名前のある)関数としてわざわざ宣言しなければならない:
http://ideone.com/R7twCQ
結果として、Python は手続き型プログラミングであれば簡潔で可読性に優れたコードが書けるスクリプト言語だけれど、
関数型プログラミングには適さず、こうした関数型プログラミングは推奨されていないらしい(これを "酸っぱい葡萄" と言ふ)
http://peace.2ch.net/test/read.cgi/tech/1345123070/70-71
これが Swift や Ruby 等と比較すると、関数型プログラミングで Python が劣る典型的な一例になる
0154デフォルトの名無しさん
2014/12/09(火) 23:45:54.71ID:zysv2pGaID:7jn1Y2FEには出来そうにないので
0155デフォルトの名無しさん
2014/12/09(火) 23:54:39.05ID:7jn1Y2FE# 三行でカキコしてみたけど、いかが? >>154
0156デフォルトの名無しさん
2014/12/09(火) 23:56:41.99ID:aIM7Q5Dp0157デフォルトの名無しさん
2014/12/10(水) 00:05:56.63ID:qsQTvCjW未だに用語の定義がオレオレなの治ってないんだな
0158デフォルトの名無しさん
2014/12/10(水) 00:07:29.11ID:veDvxwgeクロージャの定義は「ラムダ式と局所環境とを組合せた概念」です
詳しくは、以下のスレへのカキコを参照:
・クロージャって何がいいの?
http://peace.2ch.net/test/read.cgi/tech/1415419907/4
もしも >>156 がクロージャ定義うんぬんの議論をご希望でしたら、
ここではスレ違いになるので、レスは上記のスレへカキコしてもらえると
嬉しいです
0159デフォルトの名無しさん
2014/12/10(水) 00:14:01.50ID:/S4VnuPJ0160デフォルトの名無しさん
2014/12/10(水) 00:33:13.12ID:U+9OJfKHどうでもいいならOC使ってりゃいい
0161デフォルトの名無しさん
2014/12/10(水) 00:37:33.56ID:AwBDqpLrソースのないオレオレ定義持ち出されても何が言いたいのかわからないよ
そもそも無名関数もラムダ式もクロージャの実装に使える一機能でしかないよ
レイヤの違うものを一緒くたにするのはアホだよ
0162デフォルトの名無しさん
2014/12/10(水) 00:46:20.46ID:veDvxwge>>158 と同じく(ここは Swift スレなんで、脱線はほどほどに....)
0163デフォルトの名無しさん
2014/12/10(水) 01:07:08.96ID:/S4VnuPJイミフ
逆にどっちでもだからどうでもいいんだがなw
比較なんてしなくてもわかることだし
0164デフォルトの名無しさん
2014/12/10(水) 06:26:57.19ID:v7+icJpFすごくどうでもいいことを長文でまとめてたのか
乙
0165153
2014/12/10(水) 20:03:23.66ID:veDvxwge>>158 のクロージャ専用スレへ移動したので、
Swift とは関連しない事柄を議論したいなら移動してください:
http://peace.2ch.net/test/read.cgi/tech/1415419907/189
クロージャの定義についても、要望があれば移動先で説明します
0166デフォルトの名無しさん
2014/12/10(水) 22:23:42.68ID:oiHzo9dC0167デフォルトの名無しさん
2014/12/10(水) 22:54:15.36ID:ALqE/ik/でもなんとかけなしたい必死さは良く伝わってくるw
0168デフォルトの名無しさん
2014/12/10(水) 23:07:21.62ID:8efWXp1v求められてない持論をグダグダと書くから、長文乙と言われてしまうんだね
0169デフォルトの名無しさん
2014/12/10(水) 23:09:03.00ID:/S4VnuPJ0170デフォルトの名無しさん
2014/12/10(水) 23:09:40.85ID:/S4VnuPJ0171デフォルトの名無しさん
2014/12/10(水) 23:18:10.08ID:AsyJgmPp投げかけられた当人が「俺定義だと他も言ってるぞ!」
って群衆に紛れて逃げにかかるとかウジ虫すぎるw
0172デフォルトの名無しさん
2014/12/11(木) 01:18:36.74ID:0HnadvmSAny型あるし実行時のキャストが安全だから他の言語と比べてそれほどメリットないような気もする
あと現時点でCovariance(共変性)/Contravariance(反変性)に関するオプションないからなおさら
0173デフォルトの名無しさん
2014/12/12(金) 20:57:46.40ID:pmyPNk4j0174デフォルトの名無しさん
2014/12/12(金) 22:24:03.47ID:lFMg0ULZ0175名無しさん@そうだ選挙に行こう
2014/12/13(土) 17:22:04.35ID:SXVWlrUj0176名無しさん@そうだ選挙に行こう
2014/12/13(土) 18:12:20.03ID:J8lu0hcz0177名無しさん@そうだ選挙に行こう
2014/12/13(土) 20:39:14.09ID:7f7W0z+y文字をでかくしたり無駄にスペースとって水増ししてる感じ。
まぁなんでもいいけど、Kindle版出しちくり〜(切実)
0178名無しさん@そうだ選挙に行こう
2014/12/13(土) 21:51:33.88ID:p2BRR8fR0179名無しさん@そうだ選挙に行こう
2014/12/13(土) 23:26:44.92ID:popr0mkAの後、萩原本の初感をレスし、少しづつ内容をレスする
0180名無しさん@そうだ選挙に行こう
2014/12/13(土) 23:34:58.12ID:SXVWlrUjはよ買って見るべき良書か糞本なのか報告しろよw
0181名無しさん@そうだ選挙に行こう
2014/12/13(土) 23:44:36.17ID:LCbMrzGqきみは何を読んでも理解できないんだから良書もなんもねぇだろ
0182名無しさん@そうだ選挙に行こう
2014/12/14(日) 16:41:30.18ID:y1nNKOY0class Hoge {
class Moge<T> {
}
}
error: generic type 'Moge' nested in type 'Hoge' is not allowed
0183デフォルトの名無しさん
2014/12/15(月) 11:16:10.23ID:XDHbkgcjcocoaとfoundationどっち使ってますか?
その理由は?
0184デフォルトの名無しさん
2014/12/15(月) 11:22:43.24ID:I+Quq6+E難しいって聞いたことあるんだが
0185デフォルトの名無しさん
2014/12/15(月) 11:27:11.54ID:kI1wpvx9以下同文
0186デフォルトの名無しさん
2014/12/15(月) 12:07:38.01ID:MK74UTTEObjective-C経験者向けになってることは間違いない。
つまりド素人の俺からすると何が書いてあるかさっぱりわからない。
0187デフォルトの名無しさん
2014/12/15(月) 13:17:04.28ID:4rSnIgMyなら、Swiftなんて要らないね。
0188デフォルトの名無しさん
2014/12/15(月) 17:56:28.05ID:StDTOT4w0189デフォルトの名無しさん
2014/12/15(月) 18:00:28.13ID:M+h2+7Q6Objectiv-Cの文法の説明が出てくるん?
0190デフォルトの名無しさん
2014/12/15(月) 18:18:37.75ID:I+Quq6+EObjectiv-C無しでいける本多いよ
ただCocoaに慣れてないとちんぷんかんぷんになる人は多いと思う
0191デフォルトの名無しさん
2014/12/15(月) 20:13:38.29ID:Idp+DkuMその辺の住み分けを解説した情報が欲しい
0192デフォルトの名無しさん
2014/12/15(月) 20:18:19.67ID:M+h2+7Q6ありがとう、
Swiftの入門書にObjective-Cの文法説明が必須だったら
さすがに言語としてあまりにも中途半端だろうと思ったんだけど
それはないんだね。
Cocoaに慣れてないとちんぷんかんぷんっていうのは著者が無意識に
Objective-CでCocoaプログラミングの経験者を読者に想定しちゃってるのかなあ、
これからプログラミング始めようっていう人にそれじゃあだめだよね。
0193デフォルトの名無しさん
2014/12/15(月) 20:36:16.13ID:k/yC0dVD最初にObj-C経験者向けと書いてるよ
0194デフォルトの名無しさん
2014/12/15(月) 21:02:10.56ID:7YVa0JuN0195デフォルトの名無しさん
2014/12/15(月) 22:53:48.86ID:XGL9V6Or冒頭のObjective-Cで採用されてるオブジェクト指向の考え方の部分は
Apple公式の「Objective-Cプログラミング言語」の説明よりも
わかりやすくて好きなんだが、Swift本はそういう「Swiftの理屈」的なところ
ちゃんと解説されてるのかな?
0196デフォルトの名無しさん
2014/12/15(月) 23:48:18.66ID:M+h2+7Q6私が言ってるのは荻原本じゃなくて「Swiftでプログラミング入門を謳ってる本」のことです。
たとえば木下さんの『たのしいSwiftプログラミング』とか。
0197デフォルトの名無しさん
2014/12/15(月) 23:57:15.95ID:M+h2+7Q6Cocoaに慣れてないとちんぷんかんぷんになるような本ではないとは思いますが。
0198デフォルトの名無しさん
2014/12/16(火) 08:06:18.01ID:oqKi7sFg完全に期待はずれだなぁ。
Obj-Cがあまりにもキチガイ言語で、そうでない人でも作れるようにしたよ
って期待してたのに、実際にはObj-Cのおまけ機能程度の存在。これ、こ
のままだと2年持たずに消えるね。
全然ラッピング出来てねぇんじゃ、Obj-Cでいいじゃんww
0199デフォルトの名無しさん
2014/12/16(火) 11:22:34.46ID:RxgIWV1/一応幾らかはobj-cより使える仕様もあるから完全下位じゃない
(ランタイム環境は完全に下位だと思う)
アップルのマーケティングのやる気次第で主流になるかも?
0200デフォルトの名無しさん
2014/12/16(火) 11:30:46.22ID:g5oBtbcBおぶCはつまらなかったよ
0201デフォルトの名無しさん
2014/12/16(火) 13:10:20.75ID:G90Zyprr荻原はポインタやクラスなどの説明は省いてる他の言語経験者がSwiftの概要を理解するのによい基礎本の位置付け。
それぞれ別の立ち位置だから見る人によって選べるようにはなっとるよ
0202デフォルトの名無しさん
2014/12/16(火) 13:13:24.33ID:KmaY529Rちらっと触っただけでの判断というのがまるわかりだな
0203デフォルトの名無しさん
2014/12/16(火) 13:31:53.57ID:sx8DbzLlそこで(安定して)書ける程度のコード量なら頭で保管した方が早い
落ちすぎなんだよ、Xcodeが!
0204デフォルトの名無しさん
2014/12/16(火) 15:27:53.57ID:NwwHscOUうげ
0205デフォルトの名無しさん
2014/12/16(火) 15:33:13.09ID:iR81LbEoさっさと和訳すればいいのにアポージャパン
現時点でのSwift本なんて、jQueryやHTML5がない時代のJavaScript本みたいなもんだろ
クソの役にも立たない
これからAppleがSwift時代に即したフレームワークを作ったり
サードパーティのライブラリがたくさん生まれ淘汰され洗練されていきながら
Swiftって言語が育ち、Swift流のベストプラクティスや思想、哲学が固まっていくんだから
ライブラリもフレームワークもデファクトも何もない現状で公式ドキュメント以上のことが書けるなら神だわ
0206デフォルトの名無しさん
2014/12/16(火) 15:55:40.51ID:+2TP7KSL0207デフォルトの名無しさん
2014/12/16(火) 19:30:35.79ID:sTSjpXZq@objcで変にobj-cを救おうとして泥沼になるなw
ライブラリIFはCocoaお作法(objcライク)で作ってくれていいよ
と言うか、そうしないと中途半端に共倒れになるよ
0208デフォルトの名無しさん
2014/12/16(火) 21:23:56.20ID:yGm0MrM90209デフォルトの名無しさん
2014/12/16(火) 23:30:41.89ID:aKjnzSjYサードパーティでは純Swiftのフレームワークができつつある(Alamofireとか
来年、再来年ぐらいには純Swiftの公式フレームワークが整備されると信じたい
0210デフォルトの名無しさん
2014/12/16(火) 23:35:55.37ID:7Cuo3rms言語仕様変更に耐えられるなら釣り掘りだ
0211デフォルトの名無しさん
2014/12/17(水) 08:37:00.88ID:kWU5hzlWそこまで持たないと思うよ。
まずもってその前に言語自体が消える。
javascriptだって一度は絶滅しかけた。ただあれは、Googleがそういった作業
をして再認識されたからこそなのであって、swiftは初めから認識すらされて
いない。
Obj-Cでいいじゃんであり続ける以上、この言語に未来はないよ。
0212デフォルトの名無しさん
2014/12/17(水) 10:38:41.24ID:1mdrgZMgFlash vs JavaScript は全く別レイヤーで戦ったが、 Obj-c vs Swift は明確な優劣ねーよ
好きな方を使ってソコソコにどちらも使われ続けるだろ
0213デフォルトの名無しさん
2014/12/17(水) 10:47:09.59ID:FnHhJnFz「SwiftではじめるiPhoneアプリ開発の教科書」ってやつ
0214デフォルトの名無しさん
2014/12/17(水) 10:49:23.61ID:G9GGh6s60215デフォルトの名無しさん
2014/12/17(水) 11:54:36.86ID:QqjfWS2iおもむろにobj-cコンパイラ排除とかありそうだけどなwww(笑えん
0216デフォルトの名無しさん
2014/12/17(水) 12:12:52.27ID:KTETDkq6そのAppleがSwiftを採用して推し始めた以上結果的に習得しなければいけない状況に陥るのも時間の問題。
これがMicrosoftやGoogleだったら妥協案採用で共存するかもしれないが、お前等Appleがどういう会社か理解してるのか?
0217デフォルトの名無しさん
2014/12/17(水) 12:26:23.63ID:G9GGh6s6Carbonだってってさんざん言われているのに何を今から心配しているんだか
0218デフォルトの名無しさん
2014/12/17(水) 14:11:37.27ID:Zh9Ie/Db森巧尚はダメだよ。
上っ面なぞるだけ、なんの意味もない
お勉強した「つもり」になるだけ
つもりは積もらない
詳解Objective-C→詳解Swift
これが最短ルート
0219デフォルトの名無しさん
2014/12/17(水) 15:30:01.03ID:KTETDkq6何も知らない奴が詳解Objective-C読んでも1000%理解できない、>>213は基礎ではなく入門の話しをしているんだろ。
0220デフォルトの名無しさん
2014/12/17(水) 19:15:21.91ID:FnHhJnFz0221デフォルトの名無しさん
2014/12/17(水) 19:55:42.27ID:Zh9Ie/Dbそんなことはないだろ
詳解Objective-C確かに難しいかも知れないけどちゃんと理解しようと思って読めばド素人でもわかるでしょ
モリタクで入門という名の開発「ゴッコ」するのは時間の無駄だよ
0222デフォルトの名無しさん
2014/12/18(木) 00:11:49.09ID:KkHF01Yt普通は詳解Objective-C読んでも理解できないとか言ってみたりで
「まぬけは見つかったな」状態なのを自覚しなよ。
0223デフォルトの名無しさん
2014/12/18(木) 00:24:38.39ID:T1wuRqs9http://www.publickey1.jp/blog/14/androidgo_14.html
0224デフォルトの名無しさん
2014/12/18(木) 06:47:04.53ID:ayt0Q5a8現実としては別の書き方するObjCだもんなぁ
OjbCを理解できなかったヤツはすがろうとして
裏切られた気分になるのも仕方ない
OjbCを理解してたヤツは(多分)言語に縛られるような
考えの持ち主では無いだろうから
最初はつい熱くなっちゃったけど
今では冷静にメリットデメリットを見極めようとしてるとか
そんな状況でしか無いと思うんだよね
萩原本は俺も買ったけど
これObjCを完全には知らなくてもC言語を知ってる上で
ある程度ObjCを触ってれば読めなく無いと思う
現状でSwiftを使うならどのみちCocoa使わないといけないわけで
SwiftとObjCの連携は必須項目だと思うから
当面役立つ1冊だと思うわぁ
0225デフォルトの名無しさん
2014/12/18(木) 06:53:01.94ID:ayt0Q5a8NSStringとStringは簡潔に値型と参照型との違いって書かれてるな
String型には1節割り当てられてる感じ
NSIntegerとInt32/64は書かれて無い希ガス
というかNSIntegerと対比するならInt型だろう…
0226デフォルトの名無しさん
2014/12/18(木) 09:01:02.81ID:om4TuogZGoogleの言語はAppleやMSが採用しないし
MSの言語は以下略
なんとかならんものか
0227デフォルトの名無しさん
2014/12/18(木) 09:03:49.28ID:BHAw02yL別に、C/C++やC#は、MSの言語ではないし、Googleの言語
といっても、JavaScriptベースだのJavaを拡張したものに過ぎない。
Appleのそれも、Cを拡張したものに過ぎないのであって、拡張部分
での独自性まで批判するのはオカシナ話。むしろ、全くの新言語等
と称して、対して今までと変わらないものを、糞みたいなドキュメント
とサンプルで出してるほうが批判されるべきこと。
0228デフォルトの名無しさん
2014/12/18(木) 10:33:19.54ID:PrDWPKTqswiftはコミュニティベースになんねえかなぁ
ならねえだろうなぁ
■ このスレッドは過去ログ倉庫に格納されています