Togetter/min.tを安心してお使い頂くためのガイドラインを公開しました。
編集可能

kmizuさんの「Objective-Cで不満に思うこと」に対する反応

多分他にもいっぱいあったのだと思うけど、全然拾い切れなくて、自分のTLを中心に入れましたが、入れたいもの(もしくははずしたいもの)があったらどんどん勝手に編集してください
23
Kota Mizushima (on a diet) @kmizu

Objective-Cで不満に思うこと - ((プログラミング | 形式) 言語) について書く日記 (id:kmizushima) http://t.co/iKgwA1iS

2012-09-14 13:31:58
akisute/Masashi Ono @akisutesama

http://t.co/FfK1WE0R えー、ここに上がってる内容全てひっくるめて最高だと思ってるんだけれど。nilで例外が上がらないとか必須だろ?

2012-09-14 13:40:51
akisute/Masashi Ono @akisutesama

モデルを作るたびにプロパティ20個全部nullチェックするコードを毎回書いてるエライ人ならともかくね。それでも書かなくていいほうがいいに決まってるわけで。とりあえずnilにしとけば安全ってのは何者にも代えがたい。

2012-09-14 13:41:54
akisute/Masashi Ono @akisutesama

あ、サーバだとゴミです。データが良くわからん状態に落ちるのは。ここでいうのはUIを操る言語での話。

2012-09-14 13:42:15
akisute/Masashi Ono @akisutesama

経験則上ARCを有効にしたObjective-Cはド素人が書いてもクラッシュしなくなるが、AndroidさんのJavaは未だにいつコードを見てもNullPointerExceptionを吐いたりstaticでメモリリークするコードを平気で横してくれやがりますが?

2012-09-14 13:43:19
akisute/Masashi Ono @akisutesama

残念だがユーザから見てクラッシュさえしなければ[]がキモいとかマジどうでもいい問題で、クラッシュしたら俺らは飯が食えなくなる、[]がキモくても飯は食える、ただそれだけ

2012-09-14 13:44:06
殺意駆動開発 @toru_inoue

@akisutesama 最高。nilがあるから安心してメッセージングできる。

2012-09-14 13:45:32
Makoto Kinoshita @mkino

その通り。ここに書かれているのは、すべてObjective-Cが最高だという理由。“@akisutesama: http://t.co/lXYm8mQt えー、ここに上がってる内容全てひっくるめて最高だと思ってるんだけれど。nilで例外が上がらないとか必須だろ?”

2012-09-14 13:45:57
殺意駆動開発 @toru_inoue

みて無いんだけどnilの評判は想像つく

2012-09-14 13:46:06
akisute/Masashi Ono @akisutesama

@flag_boy まさか。ユーザ要求次第じゃ通信や複雑なアニメーション付きUIのために、そのド素人じゃ手も足も出ないようなコードを書かなくちゃいけないのに、いちいちnullなんて足かせつけて戦えないよ。

2012-09-14 13:47:19
akisute/Masashi Ono @akisutesama

まさか木下先生に捕まるとはおもってなかったわーい

2012-09-14 13:47:46
Makoto Kinoshita @mkino

一言でいえば、自前でメモリ管理のできないプログラミング言語とプログラマはすっこんでろ。

2012-09-14 13:48:44
akisute/Masashi Ono @akisutesama

@hkato193 それはあるー。今Unity(C#)というNullのある言語でコード書いてますがクラッシュする原因の6割以上はやっぱりNullReferenceException、そのうち本当にNullじゃ困るのは1割もありません。

2012-09-14 13:48:44
Makoto Kinoshita @mkino

二言めを言えば、アプリケーションプログラミングにおいては、言語の選択はフレームワークに従う。複数言語の使用を切り替えられないやつはすっこんでろ。

2012-09-14 13:49:44
殺意駆動開発 @toru_inoue

読んだ。綻びと言うよりは、Appleがいろいろ善かれと思って手を加えているシュガーな部分についての問題。詳しくはあとで書く。

2012-09-14 13:50:36
Makoto Kinoshita @mkino

三言めを言えば、アプリ開発の優劣を比較するときに、プログラミング言語の比較は意味をなさない。意味をなすのは、フレームワークの比較のみ。

2012-09-14 13:51:09
akisute/Masashi Ono @akisutesama

@flag_boy まさか。iOSっつー足かせない環境でやってる連中と足枷ありで戦うのはぐさくっすよ。

2012-09-14 13:51:47
スミヒロは酒飲み🍶 @sumihiro

だからこそObjective-Cで満足。>Objective-Cで不満に思うこと - ((プログラミング | 形式) 言語) について書く日記 http://t.co/f6nrM2G0

2012-09-14 13:52:04
殺意駆動開発 @toru_inoue

シンタックスシュガーとコード短縮記法の違い

2012-09-14 13:59:09
akisute/Masashi Ono @akisutesama

元Java使いがJavaに噛み付いたらなんか盛り上がってしまったすんません><

2012-09-14 14:00:38
がくぞ @gakuzzzz

非常に興味深い。 null reference でも問題ない5割のケースってどういうケースなんだろう? 画面表示で空出力になるとかなら理解できる気がする

2012-09-14 14:15:11
殺意駆動開発 @toru_inoue

苦労する環境の方が儲かるとかAndroiderに言うなよ!!! 殺されるぞ!!!!

2012-09-14 14:15:23
Yasushi Abe @yasushia

https://t.co/6W8xnuIM https://t.co/2lEgZ0hH マジですか。最初にnilの話聞いたときアリエナイと思ったんですが。メリットよりデメリットが大きすぎる。個人的には日本(人)製のアプリは信頼性低い印象だったけど裏付けられてしまった気分

2012-09-14 14:17:44
sawat1203 @sawat1203

http://t.co/XMVF9tSI 始めたばっかりのころは結構似たような感想を持ってたけど、すぐ慣れた。今では自分でも糞長いメソッド名つけてる。

2012-09-14 14:18:13
sawat1203 @sawat1203

@sawat1203 nilにメソッド呼び出しで例外を出すべきかもどっちでもいい。ただし、今のObjective-CやiOS SDKの各種Frameworkは「例外が出ない」に合わせて最適化してあるので、iOSアプリを開発するにおいてはとても便利。

2012-09-14 14:21:54
残りを読む(53)

コメント

平松 祥史 @jgoamakf 2012年9月14日
「データが変になるくらいなら落ちた方がいい」はSE過ぎる感覚。iPhoneアプリ使っていればそうは感じないはず。
1
電波猫 @dempacat 2012年9月14日
nilにメッセージ投げて落ちないって、失敗しても気づかない(気づけない)ままプログラムが動き続けるってこと? これを便利とか言ってる奴がいんの?
0
Tsuyoshi CHO @tsuyoshi_cho 2012年9月14日
やっぱNoneとnilは違うと思うので、できればAll Noneで初期化できるような動作をフレームワークしてくれるのがいいんじゃなかろうか、とは思った。あと落ちないこととエラーを検知はまた違うしな...
0
ラナ・クアール @rana_kualu 2012年9月15日
一番の不満は日本語資料が少なすぎること。 PHPマニュアルレベルとまでは言わないから、JavaのAPIリファレンス程度のものくらいどっかに置いといてくれ。.
0
ラナ・クアール @rana_kualu 2012年9月15日
と、一人だけレベルの違う話をする。 ぬるぽが出るのは困るけど、出ないでそのまま行っちゃうなんてもっと怖い。
0
pepshiso @pepshiso 2012年9月15日
Objective-C 詳しくないけど nil で例外が飛ぶデバッグモード的なものがあると便利だと思った。もうあるのかな
0
近藤 和宏 @kondoujp 2012年9月15日
jgoamakf ユーザーから見ても、「名前だけ更新したら住所が消えた」とか許せないと思いますが。 iPhone 使ってる人は中に入っている情報が勝手に破壊されるのが当たり前という生活をしているものなのですか?
0
あしやひろ @kk6 2012年9月15日
Objective-Cよく知らないけど、たとえばPSとかで大人気だったゲームがiPhoneとAndroidに移植されたとして、iPhone版はデータがおかしくなることがあるけど基本落ちない、Android版はぬるぽでクラッシュしまくり、だとすればどっちが速攻アンインストール候補かは言うまでもないような。
0
平松 祥史 @jgoamakf 2012年9月15日
kondoujp iOSの連絡先のような「概ね正しく動作するが時々データが変になる」というアプリケーションがあるとします。この場合、アプリを終了 → もう一度起動 → 住所を再入力という操作ができればよいと思います。
0
平松 祥史 @jgoamakf 2012年9月15日
kondoujp まとめの中で言及されていたような「サーバからデータを取ってくる」タイプのアプリケーションなら、持っているデータを破棄してサーバから再取得するボタンでもよいと思います。
0
平松 祥史 @jgoamakf 2012年9月15日
jgoamakf 「iOSの連絡先のような」ではなく「iOSの連絡先を読み書きする」でした。
0
近藤 和宏 @kondoujp 2012年9月15日
jgoamakf 破損したデータを (ローカル/サーバーへ) 書き込んで、大量の情報のうち一部が破損しても適切に終了できるのでしょうか。 「データが変になる」というのは、変になったことが検知できずにいつの間にか破壊されるのが一番恐ろしいことですよ。
0
KAWAKAMI Kyoko/kamk @touya_127 2012年9月15日
「時々データが変になる」を「再起動したら直る」とか「正常なデータはあるけど壊れて表示される」という意味だと思っていたら平行線だと思ふ
0
平松 祥史 @jgoamakf 2012年9月15日
kondoujp その辺はアプリケーションによると思います。「変になったことが検知できずにいつの間にか破壊されるのが一番恐ろしい」とのことですが、データを保護できるからといってアプリが落ちまくるのを容認するかというと、しないですね。特に有料のアプリケーションの場合は(誘惑に耐え切れず、星1つを付けてしまったこともあります)。
0
近藤 和宏 @kondoujp 2012年9月15日
jgoamakf データを保護できる代わりに落ちまくるのは結構なことだと思いますよ。開発中なら。 データ破損もクラッシュも、アプリやベンダーへの信頼を損なうだけの話です。
0
佐倉純 @junsakura 2012年9月16日
[c724726] 「iPhone版はデータがおかしくなることがあるけど基本落ちない、Android版はぬるぽでクラッシュしまくり」組み込み屋の自分からしたら、どっちもアウトですw
2
Kota Mizushima (on a diet) @kmizu 2012年9月16日
[c724729] [c724752] 私の元エントリに対する反応でしょうか。だとしたら、別レイヤの問題をごっちゃにしてるのでは?既にあるObjective-Cの仕様を前提にして、どうやって良いプログラムを書くかどうかと、ある言語の特定の機能について優劣や愚痴を語るのは全く別の話です。私のエントリは後者についてしか語っていません。
0
Kota Mizushima (on a diet) @kmizu 2012年9月16日
ついでにいうと、言語仕様やライブラリ使用の優劣というのは、常につけられるわけではないと思いますが、これまでのプログラミング言語の進化をみる限り、(その言語の利用シチュエーションを考えて)明らかに「悪い」仕様はあるでしょう。
0
あしやひろ @kk6 2012年9月16日
どっちもアウトっていうのはプログラマ視点だとそりゃその通りですけど、プログラマじゃなかった頃の自分だとデータがおかしくなるゲームより動かないゲームのほうが糞だったなーということでユーザー視点だと動かないほうがよりクソいってことが言いたかっただけです。
0
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー) @nobkz 2014年1月16日
メッセージ送信の構文、僕は好きだし、読みやすいと思いますね。 SmalltalkとLispばっかりやってたせいか、メソッドのドット記法の方が実は気持ちわるいです。慣れとか主観なんじゃないですかね?
1
南山まさかず @minamiyama1994 2014年1月16日
エラー検出のありがたい機会を勝手にスルーされてさらにそれを「よっしゃとりあえず動いてる」とありがたがってるとんでもないのがいると聞いて
0
南山まさかず @minamiyama1994 2014年1月16日
ととりあえず煽り文句を言ってみたのだけれど(ObjC殆ど知らない)、実際問題ObjCのnilをHaskellのMaybeみたいに解釈してたらどうなんだろうって気がする Maybeが安全に使えるのはやはりモナドとか静的型付けとかあってのことだと思うので、動的型付け言語で同じようにできるものなんだろうかというのは実際どうなんでしょ?
0