プログラミング言語Swift Part4 [無断転載禁止]©2ch.net
Swiftの開発者が、わずか6ヶ月でTeslaを去る
ttp://jp.techcrunch.com/2017/06/21/20170621swift-creator-departs-tesla-after-just-six-months/
> 「結局、Teslaは私にはあまり合っていなかったことがわかりました」と彼は言っている。
> Lattnerはまだ次の仕事のことは決めていないようだ。
戻ってきてもええんやで〜 Swiftの迷走ぶりを見てれば分かるが仕事のやり方が好き勝手やって中途半端だから解雇されたんだろ >>45
配列を使った計算で
SwiftとC言語では、1000倍違うらしい
開発者Jukka Suomelaが言ってる 高級言語だからそういうもんじゃないの?
C配列使いたかったらファイル分けてCで書くとか、めんどくさいけどSwift内でポインタ使うとかすれば… >>47
早く処理したい部分を、C言語で書いてBridging-Header作って取り込むとか、
modulemapファイルを作ってimportするとかすれば良い。 >>50
相当ストレス溜まってるね。
職場で上手く行ってない見たいね。 おぷちまいずの有無でこんなに差があるってどうしたことやねんとは思うな
「こんなに」ってれべるじゃねーって感じw そのページコメント欄の
Learn OpenGL ESってひとの書き込みが
わかりやすいかと。
言うほど差は無くないか? その人のはオプティマイズ有りきでしか言ってね?オプティマイズの有無がというのではないだろう え?標準のオプティマイズ無しでパフォーマンス語って何の意味があるの? って、>>53の最もいいねwって付いているのに及び付けてるのに言いに行けば?
何言ってんの?頭大丈夫?と思われるだけだと思うがw ド素人かな
-Ononeはデバッグ用であって速さなんか誰も求めてないぞ?
遅くなってもいいから色んなデバッグ用に有用な情報を埋め込むモードだぞ?
頭大丈夫? >>59
-O 自体はオプションであってなければコンパイルできないわけじゃないぞ?玄人さん
ちなみにちゃんとしたデバッグオプションは別にあるけどな
どうも、オプティマイズの意味がわかってなさそうにしか見えないな。デバッグ用って言い切ってしまうあたり、すげえな自称ど素人じゃない人はw
(ちなみに一般的にオプティマイズするとほげほげな場合もまあ稀にあるとかないとかw)
てか、なにをオプティマイズありきに必死なの?オ
プティマイズ有無でこんな差があるのは珍しすぎる、いったいなんなんだ?という技術的w興味は普通わくだろうと思うんだがな、自称ど素人じゃない人なら尚更
ただ、それだけだよ? 良くある最適化のトラブルとしては、基本的なインライン展開なんかでさえ期待通りに動かなくなるケースはあるから、デバッグというか、問題の切り分けに最適化なし。で走らせてみる必要がある。ってのは別に間違ってないと思うんだけど。
Swiftがどういうステップで機械語を作ってるか知らないけど、配列操作の話題については、ループの最適化とか、並列処理への展開とか、するしないで激烈に性能差が出るのも、まあ、そんなものだと思うし。
どの辺が問題なのかよくわかんない。 何も分かってなさそうなやつが技術的興味とか笑かすわ release設定ではデフォルトでオプティマイズ有りだしドキュメントにもオプティマイズしろって書いてあるし
逆にオプティマイズしたらデバッガがトレースできなくなるからdevelopビルドはデフォではオプティマイズされてない。
だからSwiftでreleaseするにはオプティマイズ有りきが前提でしょ あれは全然人間が読めるコードじゃん、、、
むしろ、嗜みとして読めるようになっとけよ >>66
すげーな
例えばllvmコードでFizzBuzz問題を書くとどんな感じになるの? swiftでFizzBuzz問題のコード書いてemit-llvm-irとかでダンプしれ
その環境もないなら知らんわ >>68
>emit-llvm-ir
ir = intermidiate representationなのね
Web Assembliesにllvmのコードが使われるって聞きました。
なんの事かよく知らんですけど、ブラウザで3Dゲームできるんだってねぇ。 >>68
「llvm fizzbuzz」でググったら出てきたわ おう、良かったな。これでお前もLLVMコード読めるようになったじゃん。
すげーな >>72
情報処理試験、Java選択してラッキーで合格した。
危なかった。 >>49
だからさ、Cに頼るならObj-Cでよくね? Obj-C、ワンポイント・レッスン
メソッド定義
(戻値)Keyword1:(型)arg1 Keyword2:(型)arg2 Keyword3:(型)arg3
メソッド呼出
[レシーバー Keyword1:arg1 Keyword2:arg2] Obj-Cワンポイント
クラスの定義
@interface MyClass: NSObject {
NSString* message;
}
-(void)setMessage:(NSString*) str;
-(NSString*)message;
-(void)printMessage;
@end
クラスの実装
@implementation MyClass
-(void)setMessage:(NSString*) str {
message = str;
}
-(NSString*)message {
return message;
}
-(void)printMessage {
NSLog(@“%@“, message);
}
@end Obj-Cワンポイント
インスタンス変数
@interface MyClass: NSObject {
NSString* message; // インスタンス変数
}
// インスタンス変数のプロパティ化
@property NSString* message;
@end
プロパティの実装
@implementation MyClass
@synthesize message;
@end これは老害ですわ
なんでこんな古いObjCの記述をするんだよw
Modern Objective-Cを学び直すか、ObjCを捨ててSwiftを学ぶべきだな >>82
じゃぁ、Modern Objective-Cを教えて! Adopting Modern Objective-C
こんなん、見つけた。 #import <FrameWork/lib.h>
@interface MyClass : SuperClass
@property NSString *message;
- (void)printMessage;
@end
#import “MyClass.h”
@implementation MyClass
- (void)printMessage
{
NSLog(@“%@“, _message);
}
@end >>87
@synthesize message;
って不要なのか?
それから、_messageってインスタンス変数が宣言されてない様だが、
@propertyで暗黙的に宣言されるって事か? スレチを続けてる奴は老害というより単なるガイジだな >>87
>@property NSString *message;
@property (copy)NSString *message;
って書きかえろ!とwarningが出た。
これがModern Objective-Cなのか? mutable/immutableをクラス分けでしか表現できない残念モダンなObjC 新概念!が出るたびに言語仕様に直接組み込んでは
後で仕様グダグダになる【モダン】より
なんでも「クラスの仕様です」で済ますObj-Cの方が
実はスマートなんじゃないかとずっと Fast Enumだの@synthesisだのドット記法だの@リテラルだのBlocksだのinstancetypeだの...
ObjCほど後から後から醜いツギハギだらけの言語も無いと思うがね 最初からCとオブジェクト機能を糊で貼り合わせたつぎはぎですしおすし ObjectiveCを基準にすれば、他のだいたいのものは良いものだ。 >>97
その都度、新概念!素晴らしい!って絶賛続けた信者はスゴイ
Swiftも新言語!素晴らしい!って受け入れてくれればこうはならなかったろうに >>98
おれはむしろそれが強みだと思ってるけどな
Cのソースがそのまま使えるなんて他言語ではないだろ NSObjectの上にCのソース貼るだけでもうクラスとして取り回しできるしな それをわかってくれるかぁ ゜*。(*´Д`)。*° C++のfriend相当とか、Objective-Cのprotected相当のアクセス指定が欲しいな… 今のswiftで書いたアプリってMavericksではもう動かせんの? >>107
Deployment Targetを10.6にしてやれば良いんじゃない?
そすれば、Mavericksどころかその前までOKかも。 mozc for iOS使おうと思ったら、日本語の変換候補が出てこない…(泣)
どうしたらいいんだよ… appstoreって2つのアカウント作って別名で登録してもいいの? >>110
Apple IDを2つ作るって事?
Developer用Apple IDと、non-Developer用Apple ID2つ作ってる人は多いのでは? >>111
2つのサークル別々に開発して作者名をかえたいの 可変個の引数から別の可変個引数に、可変個扱いのまま渡す方法ってありますか?
func f(_ args: Any...) {
sub(args) //これだと引数1個扱い
}
func sub(_ args: Any...) {
} 補足
Array版を作るしかない?
func f(_ args: Any...) {
sub(args)
}
func sub(_ args: Any...) {
sub(args)
}
func sub(_ args: [Any]) {
} withVaListを使えばできるのかもしれないけど
Array版作ったほうが良さそう
https://stackoverflow.com/a/29401619 >>115
ありがとうございます。
Cのva_list用で、可変個を可変個で、ってものではなさそうですね。 UIApplication.shared.isNetworkActivityIndicatorVisibleはiPhone Xでは表示されないんかな? 表示されないっぽい
代替表示用してくれても良さそうなものを… Macの市販アプリってGUIの表示がアプリ毎に違ってるけど
あれってMacの標準GUIの見た目だけカスタマイズしてるの?
それともGUIの仕組み自体を自前でプログラムで作ってるの? swiftでかいてるならだいたいカスタマイズ
unityとかなら全部てづくりかも OpenGLとかMetal使ってるなら手作りするかそれ用のGUIライブラリ使うやろ 詳解Swiftっていまいち詳解じゃないよね
載ってないこと多すぎ 言語仕様という点で日本語書籍でこれより詳解なのある? Apple公式の奴を翻訳してくれたらそれで十分なんだけどな
あれ結構分かりやいいし >>126
ないな
日本語では一番・詳解Swift
って書名なら正しい お、今回はKindle版も同時発売か
でも固定レイアウトなのね 買い替えじゃなくてアップデートされるなら電子版買いたいな >>127 それがあれば一番だね
今回はiBooksStoreにも出てるよー
なぜかKindle版よりちょっと高いけど 本読むくらい熱心なら、変更内容に加えて
経緯から議論まで追える最強のリストを読んでいった方が良い
https://apple.github.io/swift-evolution/
英語直が無理ならChromeのページ翻訳使えば良いし Swift4 変更点
で、検索したら満足できる記事がヒット iPhoneアプリの開発者離れが起きている。
アプリ提出の審査が理不尽で不公平になってしまって、iPhoneアプリの開発者離れが起きている。
アンドロイドにはKotlinが出てきて開発者が増えている。
Guideline 4.2 - Design - Minimum Functionality
アップルのGuideline 4.2の連発で簡単なアプリはもう提出しても審査には通らない。まだアンドロイドの方が通る。
簡単でなく多機能なアプリでも4.2を連発してくる。もはや作為的やっているとしか言いようがない。
開発者は開発情報のみなもとだった。それを閉め出してからiosの勢いがなくなった。
今からiphoneアプリやってもまず4.2で通らない。審査で落とされる。簡単な機能だけのアプリはまずリジェクトされる。
ちなみに複雑なアプリでも同じようなことが起きている。Rssリーダーのようなアプリでも機能が簡単すぎるといわれリジェクトされている。
アップルは信用できない。これは確か。ころころ方針を変える。昨日まで審査に通ったアプリが、今日から通らなくなるというのが普通にある。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) Appleの審査がウザいのは同意だが、少なくともSwiftって言語自体はよくできてると思うんだがな Swiftの変更も含め、開発者に負担かけすぎなんだよな 68k-> PowerPC-> Intel->ARM
toolbox-> carbon-> cocoa-> ?
pascal-> C-> objective-C -> swift 市場の影響やら色々あってやはりクロスプラットフォームが検討される
そこそこのアプリならCordova(TypeScript)、ゲームならUnity(C#)
Xamarin(C#)、Multi-OS Engine(Java / Kotlin)、Kotlin/Nativeとかもあって
Swiftは立ち位置が辛くなりつつある GoogleがSwiftの開発者引き抜いてAndroidアプリもSwiftで開発出来るようにする
って噂があったけど、あれどうなったんだろうな
少し期待してるんだが