Kotlin 2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん2017/11/01(水) 00:07:43.82ID:jxmKQQAl
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org

前スレ
Kotlin
http://mevius.5ch.net/test/read.cgi/tech/1456505161/

2デフォルトの名無しさん2017/11/01(水) 00:09:21.20ID:S3J9ewzc
kotkot煮込んだJavaのスープ

3デフォルトの名無しさん2017/11/01(水) 00:10:25.85ID:ktrap7j9
ギャラクシーエンジェルのタイトルみたいだな

4デフォルトの名無しさん2017/11/01(水) 01:57:16.16ID:x/3omok5

5デフォルトの名無しさん2017/11/01(水) 01:58:25.77ID:x/3omok5
Google、KotlinをAndroidアプリ開発言語に選定
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。Realmが予測
http://www.publickey1.jp/blog/17/kotlinandroidrealm.html

6デフォルトの名無しさん2017/11/01(水) 08:47:27.86ID:3pYEq5sC
恐竜がいたら玉乗り仕込みたいね

7デフォルトの名無しさん2017/11/01(水) 13:26:42.48ID:8Fl3u9rT
名前の可愛さでいったら右に出るものがいない

8デフォルトの名無しさん2017/11/01(水) 20:25:18.56ID:55d56wrT
全然流行ってないね・・・

9デフォルトの名無しさん2017/11/01(水) 20:57:53.51ID:3pYEq5sC
独自クラスのオブジェクトを突っ込んだListのソート処理がKotlinだと楽すぎてワロタ
Comparatorとか実装する必要すらない

10デフォルトの名無しさん2017/11/01(水) 21:01:14.24ID:jurBUt2h

11デフォルトの名無しさん2017/11/01(水) 21:17:46.15ID:KQYcmJno
>>8
流行り初めてんだよ。ようやっと日本語の入門書が増え始めたんだから。
まずはAndroidアプリ用で使う人が増えると思う。

12デフォルトの名無しさん2017/11/01(水) 21:20:57.76ID:RmpG/IBv
海外だとアプリはもうKotlinがデフォルトらしい
http://tech.gunosy.io/entry/droidconNYC-2017

13デフォルトの名無しさん2017/11/01(水) 21:22:25.90ID:n8DQDdRQ
>>11
いちいち反応しなくていいよ…

14デフォルトの名無しさん2017/11/01(水) 22:03:41.76ID:3pYEq5sC
Kotlinの仕事にありつけてないお前ら全員失業wwwざまああwwww

15デフォルトの名無しさん2017/11/01(水) 22:07:42.20ID:K1kOfoLS
kotlinインアクション買った人いる?良さそう?

16デフォルトの名無しさん2017/11/01(水) 23:18:03.22ID:65SAREI7
ちょっとカジってみたけど、JavaとかC#とかScalaとかF#とかをごった煮にした感じだね
イマイチ新鮮味が無いけど、JVMでAndroidやらSpringやらで使えるっていうのが重要なのかな

17デフォルトの名無しさん2017/11/01(水) 23:50:48.17ID:n8DQDdRQ
下手に新機軸で目新しかったらScalaの轍を踏んでしまうだけだからな
Javaと併用するベターJavaの範囲を逸脱しなかったことでここまでの地位を短期間で得たのだ
ほどほどって何事も大事ね

18デフォルトの名無しさん2017/11/02(木) 02:41:34.42ID:LsnbbfZc
>>9
class Person(val age: Int, val name: String) { }

val mlist: MutableList<Person> = mutableListOf( );

mlist.add(Person(25, "Tom"));
mlist.add(Person(25, "Dave"));
mlist.add(Person(20, "Kate"));
mlist.add(Person(20, "Alice"));

val sortedList = mlist.sortedWith(compareBy({ it.age }, { it.name }))

sortedList.forEach {
println("${it.age} : ${it.name}")
}

出力
20 : Alice
20 : Kate
25 : Dave
25 : Tom

19デフォルトの名無しさん2017/11/02(木) 02:56:32.36ID:pq+UNRec
>>17
逆に言うと中途半端で
わざわざ覚えるのに
新しく使えるものが少ない

でもまあScalaだと
そこそこ難しくなってしまうから
Kotlinの方が流行るだろうね

20デフォルトの名無しさん2017/11/02(木) 08:50:34.61ID:Cum5cn5z
ボイラープレート自体が消えるということに喝采した人が多い
「それくらいIDEが自動で大量に書いてくれる」ではなく「そもそも無い」が好まれるのだ
視覚情報大事

21デフォルトの名無しさん2017/11/02(木) 12:58:30.02ID:U1n8VN2V
>>6
ヘッチャラ!

22デフォルトの名無しさん2017/11/02(木) 19:30:44.53ID:SsjTYyhv
android専用みたいになってるけど、
javaでやれることは、
全部kotlinでもできるの?

23デフォルトの名無しさん2017/11/02(木) 19:53:40.80ID:Cum5cn5z
誰だそんなAndroid専用とか変なこと言ってるの…
ただほんのちょっと、現時点でのJavaの新規用途や一般人用途がAndroidアプリ作成しかないだけじゃないか…

ということで「ふつうの」Javaが使えるとこはだいたいKotlinが使えるよ
企業に勤めてるような人でもない限り Javaプログラミング=Androidアプリプログラミング なのでそんな認識になってるだけだ
組み込みとかあのへんの大変そうなとこはたぶんまだ無理だけど、そういうとこに使えるかどうか気になるような人はKotlinが動作しうるかどうかは見てわかるだろう

24デフォルトの名無しさん2017/11/02(木) 20:45:39.00ID:n5fZR6Gb
ていうか Java にできて Kotlin にできない事ってあるのか?
そんなもん無いようにしか見えないんだが。

25デフォルトの名無しさん2017/11/02(木) 20:48:41.34ID:SsjTYyhv
>>23
ありがとうございます。
Javaの勉強中断して、
kotlinから始めてみます。

26デフォルトの名無しさん2017/11/02(木) 20:50:04.74ID:osyIV8kF
バグの量産はJavaにしか出来ない

27デフォルトの名無しさん2017/11/02(木) 21:13:31.03ID:ScvYxhm1
>>24
奴隷の大量使い捨て

28デフォルトの名無しさん2017/11/02(木) 21:17:36.20ID:Cum5cn5z
>>24
吐き出すのはただのclassファイルなんで、滅多なことではないと思うんだけど、断言できるほど知識もないのでドリームを残しておいた
きっと凄い人が無償で調べてカッコよく回答してくれるはずだ

29デフォルトの名無しさん2017/11/03(金) 00:42:19.00ID:mQ2prqq7
これまでのまとめ

Java にできて Kotlin にできないこと

1. バグの量産
2. 奴隷の大量使い捨て

30デフォルトの名無しさん2017/11/03(金) 00:43:31.08ID:nVcCm6Uk
kお前らが作ったら何使ってもバグの量産だろwww

31デフォルトの名無しさん2017/11/03(金) 00:46:00.51ID:+ZuXY7od
存在がバグみたいなお前に言われたくねーよwww

32デフォルトの名無しさん2017/11/03(金) 06:07:02.26ID:fxD35jMc
恐竜になれる

33デフォルトの名無しさん2017/11/03(金) 09:03:14.88ID:L9p6V4NW
読みで画像検索すると語感や方向性がよく分かる

画像検索 じゃば
https://www.google.co.jp/search?tbm=isch&q=%e3%81%98%e3%82%83%e3%81%b0

画像検索 ことりん
https://www.google.co.jp/search?tbm=isch&q=%e3%81%93%e3%81%a8%e3%82%8a%e3%82%93

34デフォルトの名無しさん2017/11/03(金) 09:26:39.80ID:1r95yYp8
>>33
これはひどいw

35デフォルトの名無しさん2017/11/03(金) 12:10:24.60ID:MxTlS5aq
flag |= x
flag &= ~x
これを
flag = flag or x
flag = flag and x.inv()
こう書かなきゃならない冗長さ

開発者曰く、可読性の問題なら関数にすればいいじゃんと

36デフォルトの名無しさん2017/11/03(金) 12:25:36.60ID:OuG6RHrP
超一般論としては論理演算子付き自己代入はそれによって陰に実行されるものがあんまり自明ではないので使わないほうがよい
あんまり自分の分析能力を信用してはイカンよ

37デフォルトの名無しさん2017/11/03(金) 13:13:37.26ID:wGONik3H
Kotlin in action読んだ
良いよ

38デフォルトの名無しさん2017/11/03(金) 13:24:04.81ID:mQ2prqq7
Kotlinインアクションはいいことはいいのだが索引が貧弱で、
例えばソートしようと思って索引見ても sort が載っていない。
じゃあ List のメソッドだろうということで List を探しても載っていない。
ということでリファレンスとして使えない。内容同じままでいいから索引を大幅拡充したの出して欲しい。

39デフォルトの名無しさん2017/11/03(金) 13:40:24.99ID:lM06sbH0
結構難しい言語だね

40デフォルトの名無しさん2017/11/03(金) 13:42:14.46ID:wGONik3H
エルビス演算子ってエルビス・プレスリーからきてたんだな

41デフォルトの名無しさん2017/11/03(金) 14:13:34.27ID:OuG6RHrP
エルビス・プレスリー知らない人も多そうだし、常識として知っててもなにがどうエルビスなのかわからん人もいそうだ
袖のじゃらじゃらした飾りだと思ってる人もいるけど違うからね ? は髪型だからね
https://image.slidesharecdn.com/fun-with-kotlin-160625143733/95/fun-with-kotlin-37-638.jpg

42デフォルトの名無しさん2017/11/03(金) 16:47:24.64ID:9CXEo34m
>>39
Scalaより簡単

43デフォルトの名無しさん2017/11/04(土) 00:16:44.84ID:onhYINWl
Kotlin in actionのおかげでやっとflatmapの意味が分かった

44デフォルトの名無しさん2017/11/04(土) 03:50:10.34ID:3cC+jj+w
ifとか式にできるくせに、代入文は式にできねぇの??しょっぺぇ。
while ((bytesRead = stream.read(bytes)) != -1)
とかできねぇの?しょっぺぇ

45デフォルトの名無しさん2017/11/04(土) 04:33:53.14ID:3cC+jj+w
あれ、ひょっとして、kotlinてまだシリアライズできねぇの??
しょっぺぇ・・・
普通にデータの保存にJavaのバイナリフォーマットのシリアライズ使ってたんだけどな・・・
あぼぼぼぼぼ。

46デフォルトの名無しさん2017/11/04(土) 05:51:43.84ID:UAaAlIwj
なんかかわいそう

47デフォルトの名無しさん2017/11/04(土) 07:35:45.71ID:NNCD/Zi9
生暖かい目で見守ってあげよう

48デフォルトの名無しさん2017/11/04(土) 08:18:58.07ID:hKqH3C3y
whileはみんなそこで詰まるNE!

Kotlinは条件部分で副次作用が起こることをよしとしないのだ
数少ない「単体部分で見ればJavaより記述量多い」部分なので、
我慢して明示的に変数定義に切り分けるか、素直に組み込みのBufferedReaderとか使ってくれ
よっぽどオリジナルでない限りwhileでなんかしてたやつは「whileの外ごとまとめて」3行くらいで書ける

49デフォルトの名無しさん2017/11/04(土) 10:23:22.90ID:jcPkxcYi
昔、ポインタ演算できないからJavaはしょぼい、というような主張してる奴が
たまに居たのを思い出した

50デフォルトの名無しさん2017/11/04(土) 11:18:50.17ID:onhYINWl
Kotlinの仕事ができてないお前ら失業確定www無職ざまあwwwwww

51デフォルトの名無しさん2017/11/04(土) 11:58:10.64ID:hKqH3C3y
>>49
Java使ってれば違和感なく移行できますと言われつつ、実際はプチパラダイムシフトの受け入れが必要なのはちょっと不誠実かなとは思う
我々は「うっひょー○○言語や××言語のアレみたいだね!」とか喜ぶわけなんだが
Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い

52デフォルトの名無しさん2017/11/04(土) 12:33:29.77ID:jcPkxcYi
>>51
アピールしてるのは「相互運用性が高いから移行できます」であって、「違和感なく移行できます」では無いよ
そういうのを書いてる第三者の記事はありそうだけど

公式的にはむしろ関数型に力入れてるのを売りにしてる

53デフォルトの名無しさん2017/11/04(土) 19:11:42.37ID:mE4V8fBV
>>51
> Javaしかやらないような人から見たら「Javaとは全く違うだけの気持ち悪い何かがくっついてる」としか思えない可能性は高い

そうやって全く関数型やらモダン言語らしいとこ使わない違和感あるKotlinコードが出来そう

54デフォルトの名無しさん2017/11/04(土) 19:14:15.39ID:YWCXhaIP
プロパティと型推論しか使わないのもあり?
それならできそう。

55デフォルトの名無しさん2017/11/04(土) 22:23:46.53ID:g0AJbdlv
>>38
Kotlin in action買おうか迷っているけど、公式サイトの解説と比べてもっと深いことが書いてあったりする?
ちなみにKotlinスタートブック は読了済み。

56デフォルトの名無しさん2017/11/04(土) 22:34:52.81ID:U6RGh2Ax
>>54
javaとの対比だとプロパティとnull安全だな。最も有用
それ以外はコーディング的な進化だから追々覚えればよい

57デフォルトの名無しさん2017/11/05(日) 00:26:43.77ID:x5/Ij6xv
俺のお気に入りのF#はなんだかんだでnull残ってるから、その点はkotlin羨ましい

58デフォルトの名無しさん2017/11/05(日) 00:58:12.21ID:YBVMpJn0
残念ながらjava互換だからnullは無くならないのだよ

59デフォルトの名無しさん2017/11/05(日) 02:57:49.62ID:WRVCeBNz
ガードしない場合、ぬるぽが起こる割合はJavaとほぼ同じ
言語の仕組み上安楽にガードしやすいってだけの話だからね
しない・できない・忘れてたという場合はぬるぽぬるぽぬるぽだ
コードはまさに意図した通りではなく書いた通りに動く
そこでは思想など無意味だ

60デフォルトの名無しさん2017/11/05(日) 11:18:58.60ID:vfJyTH9D
Android Studioでのコード補完のパラメータ表示にInputStream!とか末尾に「!」が
ついてるんですが、これは何なんでしょうか?

61デフォルトの名無しさん2017/11/05(日) 11:55:04.18ID:WRVCeBNz
IntelliJ の T! は「T か T? のどちらか」を示す
つまりNullableかどうかすらわかんねえという記号

62デフォルトの名無しさん2017/11/05(日) 12:09:14.89ID:vfJyTH9D
>>60
ありがとうございます。Java絡みのは当たり前ですが、ほぼそうなってますね。
理解しました。

63デフォルトの名無しさん2017/11/05(日) 12:47:54.37ID:pFqd1r18
忘れてたって言ったって全部に?付けないとJavaと同じにならないわけで
?付けなけりゃコンパイル通らないしNULL安全意識せざるを得ない

64デフォルトの名無しさん2017/11/05(日) 14:29:21.23ID:kyKiHR5g
!! は、Nullable を、NotNull に強制変換する、危険な演算子だから、
requireNotNull 関数を使え

例えば、Java から、null が代入される場合、
String → IllegalStateException。ヌルポよりまし
String? → Nullable なのでOK

Platform Type
型を省略(String!) → デリファレンス時に、ヌルポ

Java からの戻り値がすべて、Nullable になるのは困るので、
その折衷案がPlatform Type

65642017/11/05(日) 14:35:11.49ID:kyKiHR5g
Java からの戻り値をすべて、Nullable にするのは面倒なので、
そのまま使ったのが、Platform Type

デリファレンス時に、ヌルポとなるため危険!

66デフォルトの名無しさん2017/11/05(日) 14:40:57.73ID:YBVMpJn0
めんどくせえな

67デフォルトの名無しさん2017/11/05(日) 15:03:32.80ID:cR0WBKoF
Javaのほうのコードに@NonNullアノテーションつけとけば、KotlinからT!じゃなくてTとして扱える

68デフォルトの名無しさん2017/11/05(日) 15:52:17.12ID:WRVCeBNz
現代的な気遣いのされてるJavaライブラリはKotlinからでも便利に扱える
シガラミがあって旧来のままのライブラリはそりゃ利用者側が手間かけるしかない

69デフォルトの名無しさん2017/11/05(日) 16:52:07.10ID:J++DNvfV
ラッパークラス作るぐらいしか方法なさそうだな

70デフォルトの名無しさん2017/11/05(日) 18:48:00.64ID:WL5EiVt2
ラッパークラスもありだし、OSSなライブラリだったらアノテーション付与してPR送るのも有用だな

71デフォルトの名無しさん2017/11/05(日) 19:23:52.87ID:giKdejUB
Kotlinから使いやすくなりました! みたいに言えるのはひょっとしたら売りになるかもしれんね

72デフォルトの名無しさん2017/11/05(日) 19:25:37.10ID:zDQnBwdh
ことりちゃん、マジ使いやすいぜグフフ

73デフォルトの名無しさん2017/11/05(日) 19:26:26.36ID:YBVMpJn0
ことりんの擬人化はよ

74デフォルトの名無しさん2017/11/05(日) 20:25:14.58ID:UMg3GOyt

75デフォルトの名無しさん2017/11/05(日) 22:47:01.75ID:z1YM2S+z
(・8・)

76デフォルトの名無しさん2017/11/06(月) 10:56:08.46ID:OqkByGQj
やはり擬人化が必要だな
萌えキャラで

77デフォルトの名無しさん2017/11/06(月) 11:49:59.43ID:kblaZiQ3
何のために必要なの?

78デフォルトの名無しさん2017/11/06(月) 13:01:01.21ID:V0vtn4gd
それは君には中々理解できない理由による。

例えば以前Appleが傾いた時にジョブズが復帰してiMacを作ってAppleは救われたが、iMacはハードウェアとしてそんなに素晴らしかっただろうか?
たいして素晴らしくはないのだ。ブラウン管ディスプレイに本体入れて一体化しただけだ。しかし売れた。なぜか?
デザインがよかったからだ。コンピュータとしてはどうでもいい見た目が売れ行きに多大に影響した。
技術者から見ればどうでもよさそうなものでも甘く見てはいけないということだ。

79デフォルトの名無しさん2017/11/06(月) 13:32:09.21ID:wZC/0idP
>>77
技術的な話をスレでされても理解できなくて不愉快だから「とにかくほかの話」をさせたがっている
知らない言語のスレなんて見なきゃいいのにね

80デフォルトの名無しさん2017/11/06(月) 15:15:58.89ID:DlVzck/L
goが人気になった要因もgopher君が半分くらいあるからな。ことりんはいいな

81デフォルトの名無しさん2017/11/06(月) 15:18:23.96ID:8DS1P3Ga
ほんとおまえらはばかだなあ
日本の電子IT系なんてオタクの巣窟なんだから萌えキャラことりんで流行言語間違いなしやで

82デフォルトの名無しさん2017/11/06(月) 16:21:48.60ID:kblaZiQ3
うわぁ、、、

83デフォルトの名無しさん2017/11/06(月) 16:34:20.33ID:9YhppvEm
ことりんとペアプログラミングしたい

84デフォルトの名無しさん2017/11/06(月) 19:29:33.22ID:otMLf3Eu
「ことりん」のライバルが「ざまりん」で草

85デフォルトの名無しさん2017/11/06(月) 20:50:33.70ID:iuxlkbQ9
インアクションとなんとか太郎本どっち買おう
後者は本屋で見たんだけど

86デフォルトの名無しさん2017/11/06(月) 21:11:27.46ID:RNAOm4Mq
目指すとこがちゃうからな
現在どのくらい習熟してるかにもよるかと

87デフォルトの名無しさん2017/11/07(火) 06:11:35.45ID:uepCx6fG
「たのしいRuby 第5版、2016」高橋 征義
「みんなのPython 第4版、2017」柴田 淳
「Kotlinスタートブック、2016」長澤 太郎

この辺は、日本では、避けては通れない人達

88デフォルトの名無しさん2017/11/07(火) 06:23:46.73ID:W6HmiFf1
逆に避けなくてはいけない人達はだれ?

89デフォルトの名無しさん2017/11/07(火) 07:22:52.64ID:atDIxfPJ
掌田津耶乃

90デフォルトの名無しさん2017/11/07(火) 08:53:40.81ID:kYRdbaxp
掌田津耶乃

91デフォルトの名無しさん2017/11/07(火) 12:19:01.95ID:yzrwY/tJ
そうなの?どういう点がまずいの?

92デフォルトの名無しさん2017/11/07(火) 12:37:41.70ID:08KjVeec
内容が薄い

93デフォルトの名無しさん2017/11/07(火) 12:40:11.22ID:yzrwY/tJ
なるほど。
濃いめなのは?

94デフォルトの名無しさん2017/11/07(火) 12:53:17.32ID:atDIxfPJ
>>91
公式のチュートリアルをパクって
チョコっと変えて解説してるだけ

95デフォルトの名無しさん2017/11/07(火) 14:06:00.83ID:uepCx6fG
掌田津耶乃は、ほとんどの言語・フレームワーク・開発環境の、本を書いてる

売れ筋では、必ず顔を出す。
売れる分野に、掌田あり!

96デフォルトの名無しさん2017/11/07(火) 17:10:16.14ID:qyKBmVxs
公式見て自習しろや、が通じるならセミナーとか講演会とか必要ないわけでな(いや、これに関しては別に必要ないとは思ってるが)
世の中の需要はあんまりロジカルではないのだ

97デフォルトの名無しさん2017/11/07(火) 21:38:52.62ID:tWasbjrL
>>85
太郎しか読んでないでActionは買ったばかりだけど、
Javaは一通りで来てKotlinをとりあえずやってみたいなら太郎、
Kotlinにどっぷり漬かることが確定しているならAction?かな
いずれにしてもJavaの理解はないとかなり不利。

>>95
器用貧乏というやつですね、わかります。

98デフォルトの名無しさん2017/11/07(火) 22:51:30.64ID:6NdbJPOz
昔の河西か

99デフォルトの名無しさん2017/11/07(火) 23:03:28.24ID:kYRdbaxp
入門書ばっかり書いて金儲けするのが目的なんだろう

100デフォルトの名無しさん2017/11/07(火) 23:20:19.14ID:hhPr1fc6
やってみるとわかるのだが(やらなくてもいいが)、中上級者向けの本というのは全然儲からないのだ
書くの時間かかるし分厚くなって値段高くなるし売れなくなるしチェック内容増えるし時代遅れが混じるし下手すると共書だし
出来によっては「あのすごい便利な本を書いた人」という称号はいくらかの称賛になり、ひょっとしたら生活豊かルートをも開拓するかもしれないが、分は悪い
初心者向けの本をひとりで年に2冊くらい書いてたほうが、志低いと揶揄されながらもきちんと生活できるのさ

■ このスレッドは過去ログ倉庫に格納されています