Kotlin [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん2016/02/27(土) 01:46:01.68ID:Ag8w7//2
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org

2デフォルトの名無しさん2016/02/27(土) 01:53:02.07ID:M1op650Q
Android開発ばかり注目されているけどサーバーサイドでも使っていきたいね。KotlinかわいいよKotlin。

3デフォルトの名無しさん2016/02/27(土) 02:03:58.29ID:kilaRF3z
ようやくスレ立ったか

C#erにオススメ

4デフォルトの名無しさん2016/02/27(土) 02:09:59.86ID:sN4Pn2/e
>>3
ようやくスレ立ったか

じゃねえよハゲ
望んでたなら自分で立てろやカス

5デフォルトの名無しさん2016/02/27(土) 02:41:02.12ID:hI6CEqxt
拡張子はktなのか

6デフォルトの名無しさん2016/02/27(土) 09:41:53.54ID:nQV2L2HM
どこからダウンロードできますか?
IDEじゃなくてKotlin本体だけが欲しいです

7デフォルトの名無しさん2016/02/27(土) 10:37:17.40ID:kilaRF3z
>>1のリンク先、ちょっとスクロールするとDownload Compilerってのがある

>>4
まだ禿てねえよハゲ

8デフォルトの名無しさん2016/02/27(土) 11:14:47.56ID:hI6CEqxt
IDE使わなくても、gradleにロードさせるのが簡単なんじゃないの?と思ったが
公式見たら kotlinc が用意されてるのな

9デフォルトの名無しさん2016/02/27(土) 11:25:26.53ID:0K1cdFU/
>>3
何故、C#er?

10デフォルトの名無しさん2016/02/27(土) 13:08:04.60ID:nQV2L2HM
これからダウンロードして勉強しようと思ったんですけど
僕はJavaの知識がないんですよ
やっぱりJavaをひと通り学んでからKotlinを使うほうがいいですか?

11デフォルトの名無しさん2016/02/27(土) 17:28:47.93ID:kilaRF3z
>>9
Kotlinちょっとしか触ってないけどC#と類似点多くね?
・プロパティ
・拡張関数=拡張メソッド
・ジェネリクスのin、out、where
・オーバーライド元メソッドにopen/virtualが必要

かつてはアノテーションもC#風だったけど、今はjava風に変わった

12デフォルトの名無しさん2016/02/27(土) 18:39:50.54ID:KsPOIQ1H
内包表記は無いの?

13デフォルトの名無しさん2016/02/27(土) 18:40:22.18ID:ip4T9kfk
>>11
C# に比べて何がいいの?

14デフォルトの名無しさん2016/02/27(土) 18:50:05.98ID:KsPOIQ1H
チラッと調べただけだけど
・パターンマッチ
・名前つきタプル
・Data Class
・null非許容型

C#7.0に欲しいものばかりw

15デフォルトの名無しさん2016/02/27(土) 19:15:03.68ID:D+WCAKrD
Javaを勉強せずにJavaFXアプリ作れますか?

16デフォルトの名無しさん2016/02/27(土) 20:17:24.82ID:DzbbisjT
>>15
むり

17デフォルトの名無しさん2016/02/27(土) 21:07:35.07ID:yBj0ji6/
またJVMか…
泥アプリ制作が流行ってるから仕方ないのかね

18デフォルトの名無しさん2016/02/27(土) 22:22:55.81ID:hI6CEqxt
開発してるJetBrains自身が、JVM上で動く製品を開発してる会社だからな
自分達の製品にもKotlin使ってるみたいだよ

19デフォルトの名無しさん2016/02/27(土) 22:29:02.97ID:hI6CEqxt
公式の1.0リリースの日本語のページがあった
http://blog.jetbrains.com/jp/2016/02/17/578

20デフォルトの名無しさん2016/02/27(土) 23:39:23.79ID:KsPOIQ1H
複数の属性を持てるenumも便利そう。

これもC#7.0に欲しいw

21デフォルトの名無しさん2016/02/28(日) 21:01:32.18ID:qX9WRNgF
scalaと比べてどうなの?
jetbrainsが自社のプロダクトで使ってるといっても、サーバサイドでは話はきかないね。

22デフォルトの名無しさん2016/02/28(日) 21:12:49.92ID:mEuTbruV
https://kotlinlang.org/docs/reference/comparison-to-scala.html
scalaで幸せなら不要だって

spring mvcは普通に動く
たぶんplayもいけるんじゃね

23デフォルトの名無しさん2016/02/28(日) 21:51:31.38ID:qX9WRNgF
なるほど、springやEEが自然に利用できるなら、kotlin製のフレームワークに固執する必要はないか。

24デフォルトの名無しさん2016/02/28(日) 21:55:17.88ID:qX9WRNgF
Karaといframeworkはあるけど、Githubを見たところそこまで活発ではなさそう。cssをtye safeに書けるのは面白そうだけど

25デフォルトの名無しさん2016/03/09(水) 20:13:43.33ID:ZmUAjtzS
Kotlinはフレームワーク次第

26デフォルトの名無しさん2016/03/09(水) 21:54:57.77ID:MLkdPiKR
javaのフレームワークがそのまま使えるのがいいんだろ

27デフォルトの名無しさん2016/03/09(水) 22:12:21.73ID:TWWKX9/D
ビルドツールもそのまま使えるしな

28デフォルトの名無しさん2016/03/11(金) 23:43:17.01ID:RA7SR1be
英語もしゃべれねぇくせにどいつもこいつも新興言語に騙されおって
新興宗教じゃねぇんだから

29デフォルトの名無しさん2016/03/12(土) 00:46:03.37ID:w4nC79sm
Kotlinを使うプロジェクトが増えないとKotlinの技術者が増えない
Kotlinの技術者が増えないとKotlinを使うプロジェクトが増えない

30デフォルトの名無しさん2016/03/12(土) 01:43:46.52ID:A9rdrO/7
intellij使ってる人が興味持ってくれればなあ

31デフォルトの名無しさん2016/03/14(月) 16:38:06.42ID:ONULiEU5
Kotlinって書籍とかがまだ全くないな

32デフォルトの名無しさん2016/03/14(月) 17:49:52.49ID:jDfMkT0o
まぁまだ1.0がリリースされたばかりですし

33デフォルトの名無しさん2016/03/14(月) 18:13:22.66ID:rxc3Byav
2011年から死んでる

34デフォルトの名無しさん2016/03/14(月) 20:49:46.27ID:ste1llL9
今から勉強しようかと思うんだけど、駄目なの?

35デフォルトの名無しさん2016/03/14(月) 22:51:22.51ID:7NRac0Aa
1.0.0がリリースされたばかりだからタイミングいいよ
一応破壊的変更はしないとか言ってたような

36デフォルトの名無しさん2016/03/15(火) 09:16:40.95ID:4EDSiDUj
Androidアプリの開発にkotlin使ってるけどいい感じよ
ラムダが使えるのとDSLがね
拡張メソッドも作れたり

37デフォルトの名無しさん2016/03/16(水) 17:48:01.10ID:SWFG0n+i
勉強するのも使うのも全く自由なんだけど、
こんなマイナー言語で何する気?

目的をはっきりさせようや。
何もできるんだよ?

38デフォルトの名無しさん2016/03/16(水) 17:48:37.27ID:SWFG0n+i
*何ができるんだよ。

39デフォルトの名無しさん2016/03/16(水) 18:36:21.30ID:BFPYGSUK
>>37
Javaより優れた言語でJVMで動くアプリケーションを書ける

40デフォルトの名無しさん2016/03/16(水) 21:09:15.92ID:ol/uA8ay
Ceylon とどっちがいいの?

41デフォルトの名無しさん2016/03/16(水) 21:57:29.33ID:OWx848x5
>>39
すでにScalaという先客がいる

42片山博文MZ ◆T6xkBnTXz7B0 2016/03/16(水) 22:05:50.83ID:l9Y8vSPn
♪ことりん、ことりん。

43デフォルトの名無しさん2016/03/16(水) 22:15:09.55ID:ItRpyeBM
scalaに対しての優位点はコンパイル速度と、javaとの親和性?

文法的にもcontinueとbreakが使えて、自由度の高いreturnとthisがあるか

inlineもscalaとかなり違う?

44デフォルトの名無しさん2016/03/17(木) 12:46:00.12ID:8D5exYrn
scalaは難しすぎるよね

45デフォルトの名無しさん2016/03/17(木) 14:24:01.95ID:y+SO78pF
JavaScriptでいいじゃん

46デフォルトの名無しさん2016/03/17(木) 17:34:00.53ID:Lr213s2+
Kotlinはかわいい。Scalaはキモい。
Kotlinが普及するように、俺も微力ながらブログにKotlinネタ書いていくよ。

47デフォルトの名無しさん2016/03/17(木) 21:05:02.80ID:8D5exYrn
普及するために何が足りないか?

48デフォルトの名無しさん2016/03/17(木) 22:30:53.09ID:6lVX3tiR
世界的な有名サービスがKotlinで記述されたらかなり影響はある

49デフォルトの名無しさん2016/03/18(金) 11:16:52.22ID:PaeRr1p1
enumがメソッド持てるのがリージョンコードを複数の表現で返すenum作るときに便利だったな
あと、whenがif elseの変わりに使えて可読性がいいのが好き

50デフォルトの名無しさん2016/03/18(金) 13:04:13.88ID:7TGL3g0b
enumがメソッド持てるのはJavaも一緒でしょ

51デフォルトの名無しさん2016/03/18(金) 19:30:40.78ID:Ri+xB30N
プログラミング初心者なんですけどKotlin習得するのには2〜3年はかかる?

52デフォルトの名無しさん2016/03/18(金) 20:27:52.77ID:itkpzA44
初心者は情報の多い言語を使うべき
入門書とかが出てからじゃないと無理

53デフォルトの名無しさん2016/03/18(金) 20:46:02.24ID:Ri+xB30N
>>52
ありがとう

無難にJavaScriptやってみます

54デフォルトの名無しさん2016/03/23(水) 18:25:49.69ID:q4NyJu3s
>>53
将来kotlinをやるんだったら
javascriptじゃなくてjavaね。

55デフォルトの名無しさん2016/03/23(水) 19:30:06.44ID:IjQfzLPy
つーかおまえらコトリンの響きで選んでるだろ

56デフォルトの名無しさん2016/03/23(水) 21:00:38.88ID:Sy6dDY9b
名前は凄く重要

57デフォルトの名無しさん2016/03/23(水) 21:40:59.87ID:r6iJqmyn
スカラに比べたら言語のランタイムない(よね?)のがメリットとか

58デフォルトの名無しさん2016/03/24(木) 08:58:18.85ID:9L/DvAgg
>言語のランタイム
?

59デフォルトの名無しさん2016/03/25(金) 19:03:36.81ID:7CoDARGW
Javaとソース互換を壊すという致命的欠陥を自らしておいて、
なおかつ既存言語とのソース互換が何もないのなら使えませんよね。
過去のソースとの互換のためにN88-BASIC互換言語を作りましたとかいうほうがまだ使い道がある。

独自言語で作ったものはソースの墓場になる。
末長く残るソースを作れない。

60デフォルトの名無しさん2016/03/26(土) 12:14:43.51ID:XHWY3LTw
>>59
いま普及してる言語だって、スタートラインは独自言語(っていう表現はどうかと思うが)だったわけでw

61デフォルトの名無しさん2016/03/26(土) 12:42:36.47ID:lc2ldByq
バックエンドでKotlin使いたいんだけど、おすすめのWebフレームワークとかDBフレームワークあったら教えてください。Spring Bootがかなりいい気がするけど特にDBフレームワークが困ってます。

62デフォルトの名無しさん2016/03/26(土) 14:29:17.16ID:ENkp8QGX
>>60
俺を忘れるなよ...
      C++

63デフォルトの名無しさん2016/03/26(土) 16:15:03.51ID:H9bcXfYg
>>60
C++とアップルのObjective-Cは、C言語上位互換。

64デフォルトの名無しさん2016/03/27(日) 00:37:01.30ID:tuBIqIOP
Swiftがクソ過ぎるのは誰もが知ってるんだから触れてやるなよ

65デフォルトの名無しさん2016/03/28(月) 00:51:03.64ID:h3cCXmjq
KotlinとSwiftってそんな違う? 似たようなもんじゃ
JavaやObCと比べりゃ

66デフォルトの名無しさん2016/03/29(火) 00:00:43.96ID:1pY1OkRW
>>59
javaライブラリを呼べるjvm上で動くプログラミング言語なんていっぱいあるやん

67デフォルトの名無しさん2016/04/01(金) 20:35:42.53ID:vSPHDFRv
さびれすぎ

68デフォルトの名無しさん2016/04/02(土) 10:51:29.00ID:3UiLT1dE
>>66
ライブラリを呼んでもしょうがないだろ
普通のJavaのソースをコンパイルしたらエラーになるんじゃ意味ないわ

69デフォルトの名無しさん2016/04/03(日) 00:40:39.84ID:ZV9NMQt1
Android向けKotlinのロードマップ
http://blog.jetbrains.com/jp/2016/03/30/639

70デフォルトの名無しさん2016/04/03(日) 13:51:35.58ID:4I/r7xwS
Googleが公式サポート表明してくれたら最高なんだけどな。

71デフォルトの名無しさん2016/04/04(月) 18:10:35.02ID:F20gyuD1
>>70
正直無理な話だよね。
kotlinのほうがいい理由を必死こいて考えるよりは素直にJavaやっとけよ
マイナーという不利益を納得して使うものだが、君は納得できていない。

72デフォルトの名無しさん2016/04/06(水) 21:23:24.57ID:2V81Qvo2
>>68
??
そりゃ別の言語ですし
jvmで動く言語で互換性がある言語自体珍しくね?
jarから呼び出せればいいと思う

73デフォルトの名無しさん2016/04/08(金) 10:30:14.19ID:swQw/RPS
GoogleはAndroidの第一言語、つまりJavaに置き換わるものとして、Swiftのサポートを検討しているらしい。
泣きそう。

74デフォルトの名無しさん2016/04/08(金) 13:03:55.45ID:UcK710Vt
>>73
Swiftもいい言語だから、そうなったらなったでJavaのままよりはありがたいけどな

75デフォルトの名無しさん2016/04/08(金) 20:59:07.38ID:Im1g3EY5
javaの資産()はどうなるの

76デフォルトの名無しさん2016/04/08(金) 22:32:48.96ID:uKgtJKvS
マジかよSwiftやってみるわ

77デフォルトの名無しさん2016/04/08(金) 23:37:04.56ID:T8jUewN4
クソ言語流行らそうと必死なんだな

78デフォルトの名無しさん2016/04/09(土) 00:49:54.84ID:gQ4mSWZC
>>73のネタはこの記事だと思うが
http://thenextweb.com/dd/2016/04/07/google-facebook-uber-swift/
記事の中ではgoogleがkotlinの採用も検討していると書いてあるぞ

ただしコンパイルが遅いのと
できたばかりの言語なのでコミュニティが小さい事がネックらしい

79デフォルトの名無しさん2016/04/09(土) 19:22:37.10ID:Q/bwh4yI
AndroidのJavaの問題は言語ではなくJavaプラットフォーム(の海賊版)にあるのに言語だけ変えても意味無いだろ

80デフォルトの名無しさん2016/04/10(日) 05:02:23.23ID:OMjoBoPQ
とはいえJavaライブラリのインタフェースに関する権利をOracleが主張してたりとかJava言語による問題も多いだろうし、そこだけ解決できるのでも結構違うのでは。Javaプラットフォームごと捨てるのはさすがに現実的ではないでしょうし。

81デフォルトの名無しさん2016/04/12(火) 14:39:07.24ID:tcJgF5lM
>>80
OracleはJava APIに権利があると主張しているのであってJava VMを使う以上、他の言語に変えても同じ。
OpenJDKなど、Oracle公認のフリーのJava/Java VMもあるわけで、Javaは使い続けるでしょう。
今開発プレビュー版が出ているAndroid Nは、初めてOpenJDKのライブラリを使っているわけで。
Java 8対応、新しいJackコンパイラの登場など大進化を見せている状況でJavaを捨てるとか有り得ない。
Javaから別の言語に変えることを検討中という記事は信用できない。
現時点無視してよいかと。
もっと信頼できるネタが出てから気にしたほうが賢明。

82デフォルトの名無しさん2016/04/12(火) 15:18:33.45ID:9HGJ3JQs
>>81
てことはAndroid N以降はOracleとの訴訟の件は関係ないってことになる?
あと、その考え方だと、kotlinを正式採用の方が現実味あるのかな

83デフォルトの名無しさん2016/04/12(火) 20:56:18.12ID:Rk5bS0ji
KotlinよりScalaの方がありそう

84デフォルトの名無しさん2016/04/12(火) 21:30:53.05ID:zxlf4Ltj
>>82
OpenJDKはOracle公認だから、使い方にもよるかも知れないけどGoogleがOracleに責められずにフリーで使える可能性はある。
ただ、Oracleはライセンス料が欲しいわけだからあの手この手で金を要求しようとすると思う。
Swiftよりはkotlinのほうがまだ可能性はあると思うがGoogleがサポートする必要性が薄いとも思う。

85デフォルトの名無しさん2016/04/12(火) 21:35:28.14ID:ZWvwh7J9
>>83
Androidでscalaは辛いらしい
何が辛いのかよく分からんけど

86デフォルトの名無しさん2016/04/12(火) 21:46:26.86ID:3ZquNVD8
Scalaはビルドツールが糞

87デフォルトの名無しさん2016/04/12(火) 21:51:27.23ID:tRZrs4lg
scalaって標準ライブラリのサイズがでかくなかった?

88デフォルトの名無しさん2016/04/13(水) 09:06:47.77ID:E2Yhqe8e
>>83
そう?Scalaが普及しはじめてから何年も経つけど、GoogleがScalaに興味を示したことってあったっけ?

89デフォルトの名無しさん2016/04/16(土) 21:14:12.15ID:1vFpn8v7
JavaのOO畑で関数型とかよく分からんしってマルチパラダイム言語の第一歩によさそうだなKotlin
名前も可愛いし

90デフォルトの名無しさん2016/04/16(土) 22:47:26.92ID:rMj3oXBU
Kotlinってあんまり関数型要素ないだろ
関数型度はJava8と大して変わらん

91デフォルトの名無しさん2016/05/01(日) 10:54:20.06ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

92デフォルトの名無しさん2016/06/19(日) 22:31:14.76ID:eVkfK1tp
話題なさすぎじゃね

93デフォルトの名無しさん2016/08/06(土) 23:21:47.71ID:DcF8zl9X
javaに触らすいきなりkotlinから
アンドロイド開発に入門するのって無茶ですかね?
そういうコンセプトの入門書とかないかな

94デフォルトの名無しさん2016/08/07(日) 00:17:57.07ID:ImwDssOT
無茶というか無意味な縛りプレイだよ
Java分からないとサンプルコード読めないじゃん

95デフォルトの名無しさん2016/08/08(月) 11:17:38.46ID:tg5qo0Cy
無意味な縛りですかね。javaの構文自体は平易だからandroidとセットでkotlinの構文が学べたほうがいいなのかなと

96デフォルトの名無しさん2016/08/08(月) 22:59:13.69ID:/KkOsDFd
じゃあ聞くなよ

97デフォルトの名無しさん2016/08/09(火) 07:51:56.25ID:qoHYj2J7
じゃあ尚更Javaでいいだろ
KotlinなんかJavaやったあとなら一瞬でマスターできるからどうでもいい

98デフォルトの名無しさん2016/08/10(水) 09:10:55.40ID:rQiddDUo
お前ら
ことりん
という響きが好きなだけちゃうんかと

99デフォルトの名無しさん2016/09/21(水) 00:39:02.10ID:UYN6tSg/
(・8・)

100デフォルトの名無しさん2016/11/10(木) 04:01:41.16ID:5wJA0ZNT
日本人は流行に乗りたがるけどすぐ飽きるね
名前に釣られただけで結局流行りそうにない

101デフォルトの名無しさん2016/11/14(月) 23:59:31.98ID:wCV5pHeX
scalaと比べていいところってある?
ユーザ数はscalaのほうが多いだろうしどっちやろうか迷ってる

102デフォルトの名無しさん2016/11/15(火) 00:56:14.67ID:r0bdrrlQ
カオスじゃない
Javaとの完全な互換性がある(Scalaは事実上一方通行)
Scalaに比べれば遥かにまともな言語だよ
Scalaはとりあえず全部ブチ込んでみただけの実験言語で、本来実用に使うようなもんじゃない

103デフォルトの名無しさん2017/01/09(月) 20:37:51.41ID:4w5Vtztw
Kotlin vs Ceylon

104デフォルトの名無しさん2017/01/11(水) 13:27:31.23ID:ejV+8ohg
Gradle3.xでKotlinがサポートされたのって、普及に影響する?

105デフォルトの名無しさん2017/01/11(水) 17:14:25.25ID:qSPp3nGT
Groovyがそこまで普及してるか?
つまりそういうこと

106デフォルトの名無しさん2017/01/12(木) 21:33:12.76ID:ArceXZLM
>>105
なるほど納得した。ありがとう。

107デフォルトの名無しさん2017/01/17(火) 06:25:55.49ID:/OTVP4TW
EclipseでKotlinしている人っている?

108デフォルトの名無しさん2017/01/18(水) 21:56:09.40ID:nmk83e0+
あるオープンソースのコードを呼んでてIDEで飛べないクラスがあって調べたらKotlinを見つけた
どう使い分けるんだろう

109デフォルトの名無しさん2017/01/20(金) 09:01:11.60ID:fIQqHT5d
>>108
普段はJavaを使っているけど
BigIntegerで数値計算するとか、raw stringでスクリプト生成するときだけ
Kotlinでクラス作成するという用途なら理解できなくもない。

110デフォルトの名無しさん2017/03/02(木) 22:58:10.37ID:aTDCpX5l
JavaScriptが書けるようになったと聞いて

111デフォルトの名無しさん2017/03/02(木) 23:03:06.74ID:6rwxIFtV
それよりコルーチンだよ
名前がいいよね

112デフォルトの名無しさん2017/03/11(土) 08:06:57.61ID:vLyp82+E
>>111
コルーチン...ロシア人かな? Kotlinだけに。

113デフォルトの名無しさん2017/03/27(月) 12:32:22.63ID:zxMW45Gj
go->goroutine
Kotlin->koroutine
ってこと?

114デフォルトの名無しさん2017/04/13(木) 10:00:40.79ID:p+wJDHjt
んーcoroutine、便利さを挙動の理解の混乱が上回ってる..w
かえって複雑になりそう

115デフォルトの名無しさん2017/04/14(金) 10:49:57.90ID:rxkV6/uG
>>114
coroutineって「状態を持つ」ような気がするんだけど、
関数型プログラミングのイミュータブルであるべきという
考え方に逆行しているという理解であってますか?

116デフォルトの名無しさん2017/04/15(土) 00:40:02.53ID:5VFPMUgC
>>115
なんちゃって関数型プログラミングでは状態の局所化に役立つ便利な道具だと思うよ
ステートマシンなどという糞を排除できる

117デフォルトの名無しさん2017/04/16(日) 13:23:05.16ID:FOOthHC9
一つのクラスに複数のアノテーション持てない感じ?

118デフォルトの名無しさん2017/04/18(火) 07:19:21.21ID:q56THeJt
このスレで言うのもなんだが、初心者の質問はTwitterで投げるのがいいよ
普及させたい人が定期的に検索して拾ってくれるから

1191152017/04/22(土) 21:58:39.69ID:8rHjbk1S
>>114
オブジェクトのように「フィールド」に「値」を状態として持つのではなく、
coroutineは「コード上」に「まだ実行されていない処理」を状態として持つから
複雑で分かりにくいんじゃないかなと思いました。

>>116
coroutine自体がステートマシンだと書いてあるものを見たのですが、
ステートマシンが局所化されるモナドのような何か?(わかってない)

120デフォルトの名無しさん2017/04/23(日) 10:19:21.32ID:9Bq1d30L
suspend関数ってコルーチンの中でしか使えないってことは、そこらじゅうlaunchの類だらけになるってこと?笑
まだ滅多に使用例のってるブログとかみかけないね。
生き残れるのか?これw

>>119 https://github.com/pljp/kotlin-coroutines/blob/japanese_translation/kotlin-coroutines-informal.md#状態マシン

121デフォルトの名無しさん2017/04/28(金) 17:34:29.34ID:80AWOTNk
ことりん擬人化まだ?

122デフォルトの名無しさん2017/05/01(月) 23:00:23.52ID:+TVy5Krd
Rubyの、p, pp みたいに、自動的に、コンテナ内を展開して、
中のオブジェクトを、コンソールに表示してくれる、デバッグ用関数はありますか?

p コンテナ・オブジェクト

123デフォルトの名無しさん2017/05/04(木) 00:18:07.49ID:lRx89izX
ない
そんなもんIDEのデバッガで止めて見ればいいだろ

124デフォルトの名無しさん2017/05/04(木) 00:39:59.73ID:7TNYL3q7
それはダサいわ

125デフォルトの名無しさん2017/05/13(土) 22:26:26.42ID:UQoi629m
なんか折りたたみすぎるんだよな〜

126デフォルトの名無しさん2017/05/18(木) 03:33:23.69ID:DKg0Na73
大勝利キタ━━━━(゚∀゚)━━━━ !!!!

127デフォルトの名無しさん2017/05/18(木) 03:35:35.85ID:Wz6O2oVO
きたな

128デフォルトの名無しさん2017/05/18(木) 03:38:32.99ID:l26+mVZr
まじか

129デフォルトの名無しさん2017/05/18(木) 08:19:21.98ID:6xLYhPbf
アプデかなんか来たの?

130デフォルトの名無しさん2017/05/18(木) 08:34:44.83ID:eCnYzL6s
Androidでのファーストクラスサポートだそうですよ

131デフォルトの名無しさん2017/05/18(木) 08:35:35.63ID:zgtLgueR
Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.

だって。

132デフォルトの名無しさん2017/05/18(木) 09:08:10.23ID:PzmNC1sh
ファーストクラスってなんですか?

133デフォルトの名無しさん2017/05/18(木) 09:13:30.93ID:zw0yFHDv
ビジネスクラスより上

134デフォルトの名無しさん2017/05/18(木) 09:37:46.74ID:cqnkW2Fd
例の訴訟絡みでjvm捨てると思ってたんだがなあ

135デフォルトの名無しさん2017/05/18(木) 10:06:03.05ID:L+z+Rh5o
記念アゲ (・8・)

136デフォルトの名無しさん2017/05/18(木) 12:11:08.36ID:zgtLgueR
Android Studioで標準サポートになる、つうことだろ。

137デフォルトの名無しさん2017/05/18(木) 12:12:50.95ID:NEKf9u2/

138デフォルトの名無しさん2017/05/18(木) 12:17:09.11ID:w2PMjkvW
GWにkotlin始めて書きやすいなと思ってた俺大勝利

139デフォルトの名無しさん2017/05/18(木) 12:38:42.71ID:zgtLgueR
>>137
今までのJava資産を活かしながらシームレスに移行できる、というのが大きい。
その意味でc#はありえん。

140デフォルトの名無しさん2017/05/18(木) 12:57:50.54ID:3vvtk3AJ
いまJavaを使ってる人を救うことを考えたらまずはKotlinだろうね

141デフォルトの名無しさん2017/05/18(木) 13:16:17.63ID:XKDAC558
まじかよ
コトリン大好きな俺大勝利じゃん
祝杯や

142デフォルトの名無しさん2017/05/18(木) 13:21:33.03ID:9vmsiCj/
やったぜ

143デフォルトの名無しさん2017/05/18(木) 13:23:06.77ID:yATb/f/P
えっちだぁw

144デフォルトの名無しさん2017/05/18(木) 15:12:54.92ID:d+oDyp66
日本Kotlinユーザグループ代表、長澤 太郎
Kotlinスタートブック -新しいAndroidプログラミング、2016

WEB+DB vol.94 の特集が、Kotlin, Electron

m, 10
a, 5
m, 2

こういう行区切りのデータがある時、文字列・数値の順番で、ソートするにはどうするの?

145デフォルトの名無しさん2017/05/18(木) 15:28:16.59ID:/Shfsuc2
KotlinじゃなくSwiftでも良いのにな
確か、Android向けのクロスビルドができるようになってたろ

146デフォルトの名無しさん2017/05/18(木) 16:57:05.60ID:sDwtWkJp
AppleがGoを公式採用するくらいあり得ないことだな

147デフォルトの名無しさん2017/05/18(木) 17:15:26.94ID:zgtLgueR
>>145
今までのjava資産を考えるとありえん。
appleは悪い意味でおかしい。

148デフォルトの名無しさん2017/05/18(木) 18:29:24.60ID:xYh7ZO1T
競技プログラミングでKotlinを覚えるか…

149デフォルトの名無しさん2017/05/18(木) 23:54:53.47ID:s8Za2vto
>>70
念願かなったね。おめでとう。

150デフォルトの名無しさん2017/05/19(金) 08:25:10.64ID:Yy4p2hUQ
>>144 自己レス
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

151デフォルトの名無しさん2017/05/19(金) 13:20:04.25ID:JnsQ7Gr+
ニュース見て始めて半日くらいの調べもの堪え性のない人が質問です!
それはそうと初心者スレとか質問スレとかあってもいいかもしれないですね!

>>> var list = listOf(10, 20, 30)
>>> list[1] + 5
25
>>> var map = mapOf(1 to 10, 2 to 20, 3 to 30)
>>> map[1] + 5
error: infix call corresponds to a dot-qualified call 'map[1].plus(5)' which is not allowed on a nullable receiver 'map[1]'. Use '?.'-qualified call instead
>>> map[1]?.plus(5)
15
入ってる数字をあとで計算とかに使いたいだけなんですがどこの考え方間違ってるんでしょうか

152デフォルトの名無しさん2017/05/19(金) 20:24:00.83ID:t+9TXaRk
>>70
おめ

153デフォルトの名無しさん2017/05/19(金) 20:34:19.80ID:Ig6oJN7I
>>71
これは恥ずかしいwwww

154デフォルトの名無しさん2017/05/19(金) 22:29:26.32ID:HhPXEO/A
じゃ今後のAndroidのライブラリにはKotlinで書かれてるものの出てくるのかな?

155デフォルトの名無しさん2017/05/20(土) 00:38:31.20ID:ap8WyFQI
それはないだろう

156デフォルトの名無しさん2017/05/20(土) 02:32:08.53ID:WmFfeyqJ
>>151
map[何々]が、nullable だから。
map[1]は存在するけど、map[4]なら存在しない

map[1].plus(5)なら、map[1](レシーバー)がnullableだから、
null.plus(5)の場合にバグるから、?. null許容演算子を使う

157デフォルトの名無しさん2017/05/20(土) 15:30:08.83ID:LOC45URm
Javaの仕様がそのまま引き継がれてるんだな
Listのgetのインデックスが範囲外だとIndexOutOfBoundsException例外で
Mapのgetのキーが存在しない場合は例外じゃなくてnull返すのね

158デフォルトの名無しさん2017/05/20(土) 15:41:06.41ID:8ml7mLK3
getOrNullとかあるよ

159デフォルトの名無しさん2017/05/20(土) 19:38:14.41ID:NqXZxUdZ
Android StudioでのIntelliJ Kotlinプラグインが公式サポートされただけでAndroid System LibにKotlinクラス群が入ったわけじゃないんだよなぁ

>>154
今までと変わらずやる気になれば出るし、やる気にならなければ出ない程度かと
別段メリットがあるようには思えないけど、誰かKotlin Androidライブラリプロジェクトテンプレート作ってくれよ

160デフォルトの名無しさん2017/05/20(土) 20:11:09.01ID:LOC45URm
企業内での使用はGoogle公式かどうかですごい影響あるよ

161デフォルトの名無しさん2017/05/21(日) 10:31:28.30ID:4E+x2A2G
これをきにコトリンを始める人がいっぱいいそうだが
ほとんど人が挫折するんだろうな

162デフォルトの名無しさん2017/05/21(日) 10:35:53.77ID:W3P4J6B5
こんな簡単な言語で挫折する要素とは

163デフォルトの名無しさん2017/05/21(日) 10:40:32.81ID:tBEndF3S
Kotlin言語そのものは難しくないがJavaの言語に加えて
Javaのライブラリまで含めて覚えないといけなそうだから
C#より敷居が高い

164デフォルトの名無しさん2017/05/21(日) 11:08:54.99ID:h5RyjkDf
kotlinにはtypescriptのtsserverみたいに補完機能はないんでしょうか?

165デフォルトの名無しさん2017/05/21(日) 11:33:04.16ID:W3P4J6B5
第一級開発言語に指定したんやからfwは全てkotlinラッパを出すやろ

166デフォルトの名無しさん2017/05/21(日) 12:33:48.18ID:sr6r/1gA
?なvarをif != null したら!!いらないようにしてほしいな〜
valに入れ直すのはスマートじゃないよ

167デフォルトの名無しさん2017/05/21(日) 13:24:08.34ID:tU5Dlyyu
>>156
似たようなとこで詰まってた
Nullableでご安全にする理屈はわかるけど連想配列の利用法としては煩雑だね
覚えとくしかないか
それともこのへん便利な格納構造があるのかな

168デフォルトの名無しさん2017/05/21(日) 18:45:53.63ID:UuW+xgyM
>>> var map = mapOf(1 to 10,2 to 20)
>>> map[3]
null
>>> var list = listOf(10,20)
>>> list[3]
java.lang.ArrayIndexOutOfBoundsException: 5
at java.util.Arrays$ArrayList.get(Arrays.java:3841)
>>157の言う通り、究極的にはこのしょーもない内部仕様のせいである
この仕様を知ってるKotlinがmap作った時点で全要素Nullableにしてくれてるのだね

>>> var value = map[2]
>>> value
20
>>> value + 5
error: infix call corresponds to a dot-qualified call 'value.plus(5)' which is not allowed on a nullable receiver 'value'. Use '?.'-qualified call instead
>>> var value:Int = map[2]
error: type mismatch: inferred type is Int? but Int was expected
このへんも、Null安全のない言語から来た人はふんす!!ってなると思われ

169デフォルトの名無しさん2017/05/21(日) 20:26:44.09ID:9L9dm7b/
>>163
C#文法とC#ライブラリを学習するよりは楽そう

>>165
Java APIをKotlin APIに透過的に見せるからラッパーの用意すら要らんでしょ

170デフォルトの名無しさん2017/05/21(日) 20:46:52.64ID:RH0jdAto
最終的に訴訟のネタにもなってるjavaを切り離す方向まで行かないんですかね。

171デフォルトの名無しさん2017/05/21(日) 21:44:40.19ID:mFn/WD+c
VMの問題なんだからいまさらどうしようもないだろ。

172デフォルトの名無しさん2017/05/21(日) 22:54:56.67ID:1evlh7eH
Ruby, JS などで、メソッドチェーンすると、
nil オブジェクトから、メソッドを呼べないと言う、
No Method Error なんて、しょっちゅう起こるし、

メソッドチェーンはテストも、しにくい

173デフォルトの名無しさん2017/05/22(月) 01:22:13.90ID:yjMvX9x8
素のkotlinでは使えるけどAndroidのkotlinでは使えないのってある?

174デフォルトの名無しさん2017/05/22(月) 01:48:31.03ID:97nOcTMK
Nullableかどうかは書き手が決められるのがステキとか言っておきながら
mapOfだと"暗黙の"Nullableになるように見えるのが初心者的にキモいという主張だろう
誰もNullableの有用性の議論などしてない
読点君には理解できんだろうが

175デフォルトの名無しさん2017/05/22(月) 06:16:11.80ID:jD5FXPee
>>170-171
VMじゃなくAPI(ライブラリ実装)の問題でしょ
Sun(現Oracle)の作った全Java APIを放棄してKotlinで一から作れば訴訟問題からは無関係になれる

まぁ、GoogleもJetbrainsもお互いに「お前がやれ」とか思ってそうだけど
Google: KotlinはJetbrainsのモノなんだから、JetbrainsがKotlin APIを整備するべき
Jetbrains: Java訴訟はGoogleの問題なんだから、GoogleがKotlin APIを整備するべき

176デフォルトの名無しさん2017/05/22(月) 08:14:55.23ID:fxLikn6a
map を実装する場合、普通は、2種類書く

そのキーが無い場合、
null を返すものと、例外をthrow するもの

nullable になるのは、null を返すもの

177デフォルトの名無しさん2017/05/22(月) 08:34:20.91ID:7g15jPZv
>>175
VMの方のAPIだよ。
言語の方のAPIだけの問題なら、OpenJDKだけで解決してしまうだろが。

178デフォルトの名無しさん2017/05/22(月) 09:45:07.45ID:WLj9ZHQ7
>>177
確かそのapiのインターフェース自体に著作権があるというのがoracleの主張だったはず

179デフォルトの名無しさん2017/05/22(月) 09:46:09.30ID:jD5FXPee
OpenJDKにもVM実装は含まれてるんだけどなw
Oracle JVMとOpenJDK JVMで微妙に要件や振る舞い違うって業界の人は頭抱えるけどまぁ誤差か

180デフォルトの名無しさん2017/05/22(月) 09:46:23.44ID:NZ0IuE42
擬人化まだかよ
無能どもめ

181デフォルトの名無しさん2017/05/22(月) 09:52:42.83ID:WLj9ZHQ7
>>175
Androidのapiインターフェースの話をしてるんだからgoogleじゃない?
でもjavaと切り離すなんてできないだろうから、少しずつやってくしかないね。
コレクション系の独自実装とか始まったりして
swiftもobjective-cの文字列型とswiftの文字列型があってapiインターフェース呼び出しの際に暗黙の型変換が行われてた。
そんな感じになるのかな。かなりキモいけど

182デフォルトの名無しさん2017/05/22(月) 18:40:23.05ID:jD5FXPee
「apiインターフェース」の「頭痛が痛い」みたいな表現、嫌いじゃない:D

>>160
その昔、Apple公式だからという点のみで流行ったSwiftという言語があってな・・・
あれも技術を知らない企画屋がそんな感じで企業内採用を提案したんだよな、嫌な事件だったね

183デフォルトの名無しさん2017/05/23(火) 19:42:46.96ID:dGC6uRRV
null非許容って使ってみると地味に結構不便だな…
今までとは根本的に設計方針を変えなきゃならないものがあるなぁ…

184デフォルトの名無しさん2017/05/23(火) 19:49:01.45ID:IihgumLk
var a : String? = null

185デフォルトの名無しさん2017/05/23(火) 20:27:48.65ID:oZAHFLLi
型安全でないnull使うより、その型のnull定数を定義するほうが楽だよ。

186デフォルトの名無しさん2017/05/23(火) 20:49:32.53ID:Hx0L3jS4
val hoge;
{

187デフォルトの名無しさん2017/05/23(火) 21:06:38.96ID:cBJ7DVw+
null参照の概念は10億ドル単位の過ちってそれ一番言われてるしなw
偉人の言葉を信仰心と共に信じるべし

188デフォルトの名無しさん2017/05/23(火) 21:36:52.74ID:gX8pe08F
ぬるぽ

189デフォルトの名無しさん2017/05/24(水) 01:18:07.88ID:9HF6LZlN
>>183
?使うだけなのに何言ってんの?
大昔の案件で引数には必ずnullチェックを入れるというコーディング規約があって、保守性は下がるし規約に従わないやつはいるしで散々だった。

190デフォルトの名無しさん2017/05/24(水) 12:26:54.17ID:t8jtcsol
intellij、if式を折りたたまないようにするオプションはどこですか?

191デフォルトの名無しさん2017/05/24(水) 12:44:50.63ID:t8jtcsol
>>189
たとえばintefaceのnotnullなプロパティを亜種的なクラスでnullableにオーバーライド、できないよねぇ。
個人レベルの開発ならそこらへんの曖昧さはかえって便利な場合もあったんだけどね。
まぁ最初から全部nullableにしちゃえば済む話だが9割の非nullに全部?なり!!を付けるのはキモい。
javaコードをそのまんまkotlinコードに移行は、できなくはないけどキモいコードになる。

192デフォルトの名無しさん2017/05/24(水) 14:28:45.40ID:Fp8uMQ/t
  Λ_Λ  \\
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >_Λ∩
  _/し' //. V`Д´)/
 (_フ彡        / ←>>188

193デフォルトの名無しさん2017/05/24(水) 15:15:47.70ID:9HF6LZlN
>>191
わざわざnullableなプロパティを含むインターフェースを使う意味がわかんない。ちゃんとnullチェックして渡せば良いじゃない。

194デフォルトの名無しさん2017/05/25(木) 00:19:31.03ID:Mhkkcekf
>>193
自分もそんなコードが欲しくなるとは予想しなかったけどな笑
nullであることを利用して動作変える派生クラスをkotlin化しようとして躓いたわ。
結局設計を変えることで対応したけどね。javaで使えてたトリッキーな手は使えなくなった不便さがあるね、便利さの陰に。
まぁ慣れの問題だが。

195デフォルトの名無しさん2017/05/25(木) 04:40:51.77ID:FYZ1kIH6
androidだとonCreateで初期化するような変数はnullableにしなきゃいけないのかと思ってたけど、lateinitってあるのね
個人的にはそこそこ使うから@とかの記号にしてほしかったけど

196デフォルトの名無しさん2017/05/25(木) 06:20:09.08ID:5itOJ4P9
プロパティが、最初からデフォルト値を持っていたら、ダメなのか?

どうしても、nullが必要なのか?

197デフォルトの名無しさん2017/05/25(木) 08:51:21.17ID:iRBHnHtq
nullオブジェクト使わないの?

198デフォルトの名無しさん2017/05/25(木) 09:21:48.18ID:VyhgnQr+
関数の戻り値の型ならnullable欲しいな
戻り値がnullになるとき毎回exceptionをthrowするのかって話

199デフォルトの名無しさん2017/05/25(木) 09:23:32.29ID:E3n3KUhW
え?ww

200デフォルトの名無しさん2017/05/25(木) 09:37:46.25ID:VyhgnQr+
例えば数値を文字列として格納してるデータをファイルとかDBとかから取り出すとき
その値は数値としてしか使わないけどもしかしたらnullな場合もある
getter関数作るのにgetterでは必ず文字列として取得して変換可能か判断してから数値にする処理を毎回するか変換できなかったらcatchするのか

そんな場合なnullableがあれば外からみた関数の使い方はシンプルにできる

201デフォルトの名無しさん2017/05/25(木) 11:19:50.16ID:iRBHnHtq
だからnullオブジェクトを用意して使えって。
型安全でないnullなんか窓から投げ捨てろ。

202デフォルトの名無しさん2017/05/25(木) 11:20:19.76ID:5itOJ4P9
入力欄のオプショナルな項目か

携帯電話を持っていれば、その番号を記入して、みたいな奴か

203デフォルトの名無しさん2017/05/25(木) 11:26:27.67ID:/eJUHzjl
頭が時代についていってないようだなw

204デフォルトの名無しさん2017/05/25(木) 22:55:58.94ID:HKNQp0n4
元々はアドレスだったことを思い出せば功罪がわかる

205デフォルトの名無しさん2017/05/26(金) 05:24:14.29ID:Yn8sEtTn
>>196
同じようなことを考えたことがあったけど、「実行時エラーは悪」という考えにとらわれると、
間違った値(デフォルト値)のままエラー無しに処理が進んでしまうのは実行時エラーよりたちが悪い
ということを忘れがちになる。
>>197
使用頻度を考えるとnullオブジェクトをいちいち定義するよりnullチェックのほうがましな
変数の方が多いと思われる。
また、nullオブジェクトはどんな状況で使われても適切な結果を返すように実装しなければ、
上で述べたデフォルト値の問題を起こすことになるから、ミスのないデフォルトを
設定すること自体が難しい場合もあると思う(使用経験が少ないからわからない)。

206デフォルトの名無しさん2017/05/26(金) 07:38:30.45ID:Mhihnqx0
>>205
今時はなるべく完全コンストラクタを使って最初に一括で初期化し、
後は一切変更できないクラス設計が好まれるんだよ
C#は見境なく大量のgetsetプロパティを持つクラスを定義するバカが多いけど

207デフォルトの名無しさん2017/05/26(金) 09:51:12.09ID:5tQUvAE5
kotlin/nativeに期待

208デフォルトの名無しさん2017/05/26(金) 10:10:41.46ID:5tQUvAE5
nullチェックはもうちょっと痒いところまで手が届くといいね
たとえば if(a == 0 && b?. == "hoge") {...} で2つめはnullならパスしてくれる
みたいに書けたら便利

209デフォルトの名無しさん2017/05/26(金) 10:24:21.56ID:Heb9aC5z
nullを使わなければいいと思うよ

210デフォルトの名無しさん2017/05/26(金) 11:15:12.27ID:+T40nrdw
>>205
コンパイルエラーにできるものを実行時に処理するのは良くない設計だな。
型無しのnullを使うとコンパイルエラーに出来なくなる。
nullオブジェクトでも実行時エラーは処理できるから、必要ならそうすりゃいいし。

211デフォルトの名無しさん2017/05/26(金) 11:16:41.50ID:4K0JCbpq
いぐざくとりいい!

212デフォルトの名無しさん2017/05/26(金) 12:12:06.77ID:5tQUvAE5
>>209 と、いわれても既存APIにはnullableだらけだからなぁ

213デフォルトの名無しさん2017/05/26(金) 12:28:01.13ID:Heb9aC5z
そのAPIの中はそれで良いと思う
今後作るAPIについては別に過去をなぞる必要はないとも思うよ

214デフォルトの名無しさん2017/05/26(金) 12:46:21.42ID:ZNc2U8qB
>>207
これってiosもうごくの?

215デフォルトの名無しさん2017/05/26(金) 22:05:46.36ID:xRlJL6be
Kotlin/NativeをAndroid(NDK)で動かしたい

2162052017/05/27(土) 00:21:30.12ID:q99eAiGg
>>210
およそ
nullがコンパイルエラーになる > 適切に設計されたnullオブジェクト >
nullチェック > 実行時NPE > 不適切なnullオブジェクトでエラー無しに誤った処理が進む

という順位なので>>210とは特にそれほど見解の相違はないと思う。
nullオブジェクトは必ず容易かつ適切に設計できることを暗黙の前提とするかどうかが相違点かな。

217デフォルトの名無しさん2017/05/27(土) 00:39:18.95ID:IRYfzUqY
tensorflowをサポートするらしいけど、どうせならpython自体を扱えるのを目指してくれたらいいのに

218デフォルトの名無しさん2017/05/27(土) 06:06:26.16ID:q99eAiGg
ハマったので備忘録程度に。
Kotlin/JSで@JsNameの使いどころは、公式ドキュメントでは
In some cases (for example, to support overloads),
となっているが、引数ありのトップレベル関数はoverloadしていなくても
@JsNameをつけないとトランスパイル後の名前が変えられる模様。

219デフォルトの名無しさん2017/05/27(土) 07:44:00.03ID:3w92Yrys
>>217
目指すの意味がさっぱり分からんけど、kotlinじゃなくjython使うのじゃダメなの?

220デフォルトの名無しさん2017/05/27(土) 18:48:51.46ID:q99eAiGg
>>219
たぶん>>217はCPythonのライブラリをKotlinから使いたいのであって、
JavaやKotlinで書かれたものをPythonで呼び出したいのではないと思う。
JythonはPython3に対応するめどもなさそうだし....

221デフォルトの名無しさん2017/05/27(土) 20:22:15.32ID:IRYfzUqY
そうそう、kotlinから直接pythonライブラリ使えたらいいなー、と。それだけ。
JetBrainsならやってくれそうなんじゃないかとw
jython、そうなんだよ、開発止まってない?

222デフォルトの名無しさん2017/05/27(土) 20:26:08.40ID:IRYfzUqY
>>215 そしてついにはJVMと決別とか

223デフォルトの名無しさん2017/05/27(土) 20:30:57.73ID:3w92Yrys
> CPythonのライブラリをKotlinから使いたい
JythonでPythonコード(CPythonのライブラリ)をJVM上に読み込んで
KotlinでJVM上に展開されたバイトコードを呼び出せば良いんでないの
という意味だったんだけど、そうじゃないんだろうかねぇ

他の在り様を考えたけど、どれも現実的でない構成になってやっぱり分からん
案1. KotlinコンパイラがPythonコードをコンパイルできるようにする => それJythonじゃん...
案2. JNIのサポート言語(C/C++)にPythonを新たに追加する => Oracleに言えよ...
案3. JVM, CPythonプロセス間をWSGI的なもので繋ぐ => もう何が何やら...

まぁ深く考えないで、素直にKotlinからtensorflowのJava APIを叩くのが一番楽だと思います

2242202017/05/28(日) 07:09:50.42ID:L+V4SXEt
>>223がどの程度Pythonに詳しいかわからないけど、PythonのライブラリはPythonだけでなく
C言語などを混ぜて書かれていることも多いので、
> Pythonコード(CPythonのライブラリ)をJVM上に読み込んで
ということ自体ができないと思う(自分もそこまで詳しくないから確証はない)。
Pythonで書かれているライブラリでもPython3に移行しているので、Python2ベースのJythonには
使えないし。

あと>>223はJVM前提みたいだけど>>221はKotlin/NativeみたいにJVMから離れて
CPythonのインタプリタ上で(あるいはCPythonのAPIを呼び出しながら)Kotlinを実行する
ことを想定しているからかみあわないんだと思う。

> 素直にKotlinからtensorflowのJava APIを叩くのが一番楽だと思います
tensorflowはその通りだけど、>>217はそれ以外のScipyみたいなライブラリのことを
言っているんだと推測。

225デフォルトの名無しさん2017/05/28(日) 08:47:56.63ID:1kfTQYrn
>>221はKotlinコンパイラでPythonコードをコンパイルしたいって言ってるから一旦理解したが
>>224はCPythonコンパイラでKotlinコードをコンパイルしたいって言ってて草生える
別の人間の意見だからそれは良いんだけど、どっちにせよ馬鹿っぽい構成だな

Kotlin/NativeでJVMから離れても、
結局はKotlinランタイム, Pythonランタイムの2つの言語/プロセス間通信が必要で
他言語間通信はC言語を挟めというのがイマドキの現実的なI/F設計だろうに
そのC言語I/FにKotlin, Pythonのラッパーを噛ませるならギリギリ現実的か

Python2が3に移行してるって言うが、Googleが10年以上Python2に固執したせいで
ようやく最近Python2, 3が平行実装になった程度で完全移行は進んでないだろ...
Jythonなんかはその煽りで3への移行をやらず枯れきった性質だと思うぞ

226デフォルトの名無しさん2017/05/28(日) 11:11:04.40ID:E43+dK8Z
>>224 普通に空気読んでくれてありがとねー笑

>>225 現実に今すぐ俺がkotlinでPythonライブラリ使いたいと言ってるわけじゃないんで、見当違いだが詳しい解説ありがとねー

JBはiOSにもネイティブでkotlinを対応させようとしてるくらいだし
方向性としてすべての分野でkotlinを使えるようしようとの野心をもってるらしいし
もとものkotlinは産業用に開発してると謳ってるわけだけど
tensorflowに対応させるなんて発表聞けば、研究分野、この場合機械学習だけども、にも
ターゲットを広げたんかな、と
ならばいっそのことpythonライブラリ全般を使えるような開発をやってくれたら
さらにいろいろ広がるんじゃないか、とそういう期待
PyCharmとか出してるくらいだし
まぁ人的資源とかの関係もあるだろうから優先順位低いだろうけどね

googleだってもしかしてJVMと決別を視野に入れてkotlin/nativeを評価したのかもしらんし?

227デフォルトの名無しさん2017/05/28(日) 11:26:10.28ID:E43+dK8Z
現にFuture plansには入ってるんだよね、Data analysis and Scientific Computingが
どうやって実現する予定なのかはわからんけど

228デフォルトの名無しさん2017/05/28(日) 11:36:02.32ID:E43+dK8Z
それとも何か?この科学技術計算ターゲットってのは
もしかしてイチからkotlinで科学技術計算ライブラリ
もしくはコミュニティまで作ろうってことなのか?
まさかtensorflowに対応で完結じゃあるまい?w

いずれにせよJBが近い将来どんな具体策を出してくるのか、非常に楽しみである

229デフォルトの名無しさん2017/05/28(日) 12:40:24.58ID:ZXIsROaD
JVMもPythonも知らない素人だった
相手した二人共これには苦笑い

230デフォルトの名無しさん2017/05/28(日) 14:33:07.68ID:ew7wH7J4
kotlin見てみたけどこれscalaをオチンポ向けにした言語やな

231デフォルトの名無しさん2017/05/28(日) 15:01:49.36ID:YXueBn2b
オチンポ向け…

232デフォルトの名無しさん2017/05/28(日) 15:13:25.48ID:SqJWukL/
>>230
詳しく

233デフォルトの名無しさん2017/05/28(日) 15:22:28.26ID:asHVM9Q4
全然知らないで書くけど
Javaと同等の事をKotlinで出来るの?

234デフォルトの名無しさん2017/05/28(日) 17:38:26.84ID:9pcvjMzo
できるんでないかな
Javaの呼び出しもシームレスにできるしな

235デフォルトの名無しさん2017/05/28(日) 19:16:55.76ID:QwjzxVOm
Kotlin = Scala + Groovy(Rubyも同じ)

Javaでは、nullを除去できない

Javaには、Primitive があるけど、
Kotlinでは、すべてがオブジェクト

Java ←変換可能→ Kotlin

クロージャのデフォルト引数は、it を使う

第2引数のラムダ式を、引数の外に出せる、糖衣構文あり
関数(引数, { it })
関数(引数){ it }

toString, equals, hashCode の3種の神器を、最初から持っている、データクラスがある

2362352017/05/28(日) 19:22:45.75ID:QwjzxVOm
>Javaには、Primitive があるけど、
>Kotlinでは、すべてがオブジェクト

実行速度を上げるため、primitiveを使う方法もある

237デフォルトの名無しさん2017/05/28(日) 20:49:50.31ID:ZXIsROaD
途中からJavaとの違いからKotlinの特徴になっててイマイチ、、、

とりあえず、Javaとおなじこと出来るでいいんでね

238デフォルトの名無しさん2017/05/28(日) 23:18:36.68ID:IZz0cLMX
初歩的な質問とかしていい?
ByteArray使いたいときって
val a = byteArrayOf(0x80.toByte(), 0xCA.toByte(), ...)
みたいに.toByte()ってつけなきゃいけないん?慣れるまで見づらいな…

239デフォルトの名無しさん2017/05/28(日) 23:55:52.52ID:C6P4TIAg
いろいろ考え方はあるのだと思うけども
なにかコレクションがあって、それ全てに何か処理をして返して欲しいときはmapが使える
>>> val array = arrayOf("aaa","bbb","ccc").map{ it.toUpperCase() }
>>> array
[AAA, BBB, CCC]

240デフォルトの名無しさん2017/05/29(月) 23:11:46.19ID:Vfa09dL5
>>238
Kotlinは通常キャストはされないが、byteはリテラルがないからかリテラルだけは型推論されて、
val bytes = byteArrayOf(0x01, 0x02)
というのは型検査を通る模様。

241デフォルトの名無しさん2017/05/31(水) 22:55:29.26ID:JH+W+dlz
kotlinでjsってどんな感じ?
typescriptの型情報取り込めると知って
ちょっと気になってきた。
type scriptより関数型が強めだから幸せになれそう

242デフォルトの名無しさん2017/06/01(木) 10:14:24.94ID:2LgcCNqk
hasteやGHCjsじゃ駄目なん?

243デフォルトの名無しさん2017/06/01(木) 10:55:02.44ID:AXJF1Amn
SwiftとKotlinでちょっと遅延評価リストを比較した

■Kotlin
オンラインコンパイラ: https://try.kotlinlang.org/

val a = generateSequence(0){it+1}

//A 問題なし
println("A: "+ a.take(10).toList() )

//B 問題なし
println("B: "+ a.take(10).map{it*10}.toList() )

//C 問題なし
println("C: "+ a.filter{3<it}.take(10).toList() )

//D 問題なし
println("D: "+ a.map{it*10}.take(10).toList() )

//E 問題なし
println("E: "+ a.map{it*10}.filter{50<it}.take(5).toList() )

244デフォルトの名無しさん2017/06/01(木) 22:36:13.65ID:FF0Uww0g
ファイルの整形処理で少しカジッてみたけど、ファイルIOはJavaのAPIと古い?関数と新しい?関数が混在してて、Googleの海をさ迷ったよw
kotlinのsequenceを返すreadLinesが欲しかったんだけど、見つけきれなかったので自作した。
既存であるのかな?

245デフォルトの名無しさん2017/06/01(木) 23:40:24.53ID:wljaouQ8
lineSequence()とかuseLines()とか?

246デフォルトの名無しさん2017/06/02(金) 22:36:46.10ID:x3ElWORK
androidアプリってscriptの方で作れますか?
kotlinc -script

247デフォルトの名無しさん2017/06/04(日) 01:46:21.69ID:MOnNXU8r
ヘイ親方質問
ファイルをShift_JISで保存してもUTF-8で保存しても
fun main(args: Array<String>){
println("日本語です")
}
が特段のオプションなしのkotlincでコンパイル可能で
特段のオプションなしkotlinでWindowsコマンドプロンプトに無事表示可能なんだけども
これはいったいどのへんが気を遣ってくれてるんですかね

248デフォルトの名無しさん2017/06/07(水) 14:34:22.11ID:SSzPpmQQ
>>144-150
自己レス。データクラスを使った

data 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 )
}

出力
Person(age=20, name=Alice)
Person(age=20, name=Kate)
Person(age=25, name=Dave)
Person(age=25, name=Tom)

249デフォルトの名無しさん2017/06/16(金) 14:28:27.40ID:xoha/0nR
C#やってる人にとって凄く扱いやすかったりする?
ちなみに母ちゃんのあだ名がコトリン

250デフォルトの名無しさん2017/06/16(金) 14:48:16.06ID:+s2fXv0/
母ちゃんモダンな名前なんやね

251デフォルトの名無しさん2017/06/16(金) 14:58:47.38ID:TF51QW3i
古都りん

252デフォルトの名無しさん2017/06/16(金) 14:59:56.64ID:TF51QW3i
秋の奈良レンタサイクル“古都りん” - 奈良県自転車利用総合案内サイト
nara-cycling.com/rent-a-cycle/

253デフォルトの名無しさん2017/06/16(金) 15:20:11.64ID:dTWIGOSM
>>247
kotlinじゃなくてJavaの仕様でしょ。

254デフォルトの名無しさん2017/06/19(月) 11:01:48.86ID:heYb3DeP
なんでgoogleはkotlinをアンドロイドアプリの公式言語にしたの?
なんでgolangじゃないの?
オラクルとの訴訟もあるのにjavaを切ったほうがいいんじゃないの?

255デフォルトの名無しさん2017/06/19(月) 12:12:39.67ID:xaFoAOZp
java切ってどうなるか考えればわかるだろう

256デフォルトの名無しさん2017/06/19(月) 21:05:24.63ID:snSfABSo
>>254
オラクルとの訴訟での争点は言語じゃなくてAPI
言語を何にしようが無関係

257デフォルトの名無しさん2017/06/21(水) 02:18:15.32ID:CAzvCkNY
>>254
使ってみればわかるけどgolangってメタプログラミングな部分が弱いから
既存のシステムの置き換えに向いてる言語ではないと思う。
新たに1から構築するなら可能性はあるけど。

258デフォルトの名無しさん2017/06/21(水) 02:21:47.43ID:CAzvCkNY
>>256
これ。でも段階的にjavaに頼らないようにしていくのかもね。
コレクション系がandroid用に別実装になるとかあれは面白い。

あとオラクルにjavaから離れるアピールして圧力をかける政治的意図もあると思う

259デフォルトの名無しさん2017/06/21(水) 02:29:38.77ID:sE0qxZss
JetBrainsうまうまってこと?

260デフォルトの名無しさん2017/06/21(水) 02:33:39.09ID:jljDxrF/
Jetbrains買収あるか?

261デフォルトの名無しさん2017/06/21(水) 02:59:48.56ID:CAzvCkNY
むしろ、なんで買収しないんだろな。
つーかjetbrainが謎すぎて。
なんで一社であんなに幅広くide作れるのかが謎

262デフォルトの名無しさん2017/06/21(水) 05:02:56.13ID:wPEHzi2i
なんか怪しい力働いてるよなjetbrainsって

263デフォルトの名無しさん2017/06/21(水) 07:39:22.48ID:MgLtlgFl
理解できないことを怪しいって言うのは悪い癖だぞ

264デフォルトの名無しさん2017/06/21(水) 07:48:18.50ID:aInzLc5f
共通のベースに言語乗せてるだけだし、開発なんかほとんどオフショアだろ

2652017/06/21(水) 08:05:49.79ID:iG5W0fvY
Kotlin nativeも頑張ってるしな。
結構そっちにも期待。

266デフォルトの名無しさん2017/06/21(水) 10:55:07.74ID:GDsri7KT
>>265
同意

267デフォルトの名無しさん2017/06/22(木) 01:10:45.12ID:77+4f1XL
>>265
これが本格的に動き始めたらswiftの存在意義が、、、、、無くなるよね

268デフォルトの名無しさん2017/06/22(木) 07:18:08.18ID:Ti1xVgu4
ラットナーがjetbrainsに転職するってマジ?

269デフォルトの名無しさん2017/06/22(木) 09:16:59.96ID:yA4QDZF/
>>267
swiftのが言語仕様は優れてる

270デフォルトの名無しさん2017/06/22(木) 09:32:44.22ID:6k72kRRJ
Swift on Androidが地味に進んでるからそっちも期待
一定量の完成度が見込めたらKotlinから移行するのも良いかも

271デフォルトの名無しさん2017/06/22(木) 11:33:55.45ID:szHtJQ50
>>270
地味に進んでるって、Xamarin Androidのように、SwiftからJavaのAndroid APIを呼び出す仕組みが用意されつつあるの?
それが出来なきゃKotlinの代わりにはならんよ

272デフォルトの名無しさん2017/06/22(木) 12:05:57.96ID:E8iNX+8Y
kotlin/nativeでndkを使いたい
sdk側とndk側で同じ言語使えたら開発楽だと思う

273デフォルトの名無しさん2017/06/22(木) 12:16:58.77ID:szHtJQ50
>>272
それ何のためにNdk使うの?

274デフォルトの名無しさん2017/06/22(木) 13:02:54.50ID:6k72kRRJ
Kotlin.NativeからObjCが叩けるようになるのが先か
SwiftからJavaが叩けるようになるのが先か
どっちも現実的にはないわな

まぁそれでも言語/フレームワークの開発が絶賛進行中のSwiftの方に夢があるかな

275デフォルトの名無しさん2017/06/22(木) 13:14:48.12ID:3yY7lcXH
>>273
画像加工とかはndkで処理したい

276デフォルトの名無しさん2017/06/22(木) 14:17:05.90ID:szHtJQ50
>>275
その用途だとKotlin nativeじゃ多分意味無い
Nativeコードに変換すればc++で書いたのと同じ性能が出るというわけじゃないからね

277デフォルトの名無しさん2017/06/22(木) 19:32:17.15ID:eBYfVtnR
>>276
llvmのコード吐くんじゃないの?

278デフォルトの名無しさん2017/06/22(木) 19:42:12.44ID:wKDRovrw
いやJVMは十分速いよ?
C++でもJavaと同じように書いたらパフォーマンスは大差ない
C++が速くなるのは低レベルな汚いハックができるからで、それができないならあまり意味がないということだろ

279デフォルトの名無しさん2017/06/22(木) 19:55:38.89ID:mgpLFN+F
>>277
kotlinから変換されたllvmコードは、kotlinの言語仕様を満たすために、
例えばメモリ管理はガベージコレクションが前提となるから
その為の少し大きめなランタイム付いてくるはず
境界チェックのようなc++なら省略できるコードも漏れなく付いてくるはず

280デフォルトの名無しさん2017/06/22(木) 22:21:35.91ID:3yY7lcXH
>>276
c++ほどの速度は出ないのね
結構早くなると思って期待したんだけど

>>278
以前画像にブラー処理掛けたときは結構違った

281デフォルトの名無しさん2017/06/23(金) 09:47:11.55ID:hp7X3mpn
それは言語の違いではなくアルゴリズムの違いではなかろうか
もしくはJavaヒープ/Nativeヒープの性能差分ならByteBufferを使う手もある
そこまで考慮するくらいなら素直にC/C++使った方が幸せだけど

ByteBufferはGC走りづらいから性能良いんだけど普通は使わないよねぇ

282デフォルトの名無しさん2017/06/23(金) 10:01:06.35ID:9PTuVR6v
ByteBuffer(もしくはそれと同様の使い方をするプリミティブ配列)がGCの性能に大きな影響を与えるって一体どんな状況?
バッファは長時間使い回すんだからGCなんかほとんど関係ないだろ
GCの負担になるほど頻繁に生成しまくるとかアホなことしてるとしても、その場合はネイティブヒープの方が割当時のオーバーヘッドの分かえって遅くなりそうだし

283デフォルトの名無しさん2017/06/24(土) 03:52:32.49ID:QlqTymbl
メモリ管理とかよりさ
JVMやDEXの中間コードからJITされたコードの場合、SIMDとかの特殊なCPU命令はまず使ってくれない
つまり十分に最適化されたネイティブコードに勝てる見込みはまずない

最適化されたライブラリの一つであるlibjpeg-turboみたいなのをアプリから使うときに
libjpeg-turboのAPIを一つ一つJNIでラップするのと
libjpeg-turboのAPIをNDKで利用してからアプリ固有のAPIだけJNIでラップするのと
どっちがリソース管理が楽かは言うまでもない

この「NDKで利用して」をKotlin Native でより安全に書けるのなら、価値はありそうだな

284デフォルトの名無しさん2017/06/24(土) 04:16:45.08ID:qquEaJ2M
んなこたない。
JITでSIMDぐらい普通に使われるし、
むしろ事前に最低限サポートするCPUを決めてそれに足を引っ張られる事前コンパイルより、実行しているCPUの拡張命令を最大限使えるJITの方が効率的なコードになる事もある。

285デフォルトの名無しさん2017/06/24(土) 06:57:58.73ID:bDbRpy30
どっちなのさ!

286デフォルトの名無しさん2017/06/24(土) 09:27:02.16ID:32e8D3Wy
JITコンパイラの性能次第

287デフォルトの名無しさん2017/06/24(土) 09:54:27.72ID:LXfJ84Bv
Dalvik, ARTどころかOracle JVMですらSIMDは扱うよ

>>282
俺が使った時は、Androidでnew byte[1024]がOutOfMemoryでByteBuffer.allocate(1024)は通るような状況(実際は1KじゃなくM単位
画像加工を試みたんだけどbyte配列のままで処理しようとしたら分割操作が必要になってクッソ重たいのwww

288デフォルトの名無しさん2017/06/24(土) 10:51:37.84ID:iOfeax4r
ByteBufferのAPI嫌いだな
Javaの過剰設計の伝統ここに極まれりって感じ

289デフォルトの名無しさん2017/06/24(土) 15:08:57.88ID:LXfJ84Bv
NIOが出た当初も評判良くはなかったよねー, ないと困ることは確かにあるんだけど必要とする人は少ないし
それでも当時は仮想マシンを謳うくせにこんな基本機能もないのかよって風聞で過剰どころか不足と言われ
1.4は標準ライブラリを大量に追加しようってリリースだったから仕方ない

290デフォルトの名無しさん2017/06/26(月) 14:38:34.02ID:Wfn5YHgL
ByteBufferはdirectがあるからまぁ必要。

291デフォルトの名無しさん2017/06/27(火) 08:01:46.32ID:7qLYNCF8
間接的にお世話になってることも知らずに文句言ってるアホばっか。

292デフォルトの名無しさん2017/06/27(火) 08:19:48.98ID:p7AYCZKI
エンジン構造も知らずに車に文句付けてるってくらい論点が異なるよ
使う側であれば別に中身を意識しなくていいんだよ

293デフォルトの名無しさん2017/06/27(火) 08:45:00.53ID:+gpX7LUM
>>288とかはエンジンなんて車にいらねーって言ってるんだけどなw

294デフォルトの名無しさん2017/06/27(火) 12:59:12.87ID:thSLzROj
APIに文句言ってるだけじゃね
Javaが使いにくいからとKotlin使ってるお前らにそれを批判する資格はない

295デフォルトの名無しさん2017/06/27(火) 14:24:44.78ID:xkXC4vKS
実際問題java apiからkotlinを切り離すのはわりと簡単だったりするの?
google内で独自apiを作ってたりして

296デフォルトの名無しさん2017/06/27(火) 16:52:29.37ID:rNyRMSOh
余裕やろうな
やる価値があるかは別として

297デフォルトの名無しさん2017/06/27(火) 17:26:00.35ID:JXIPCy9a
技術云々でなく普及のための絡みで難しそうだな

298デフォルトの名無しさん2017/06/27(火) 19:50:52.50ID:GY2ar0Yu
Java APIじゃなくJava Libraryだとするなら、そこを切り離して実用に耐えるにはJava1.4くらいには過剰設計しないと無理じゃね

299デフォルトの名無しさん2017/06/28(水) 03:27:10.10ID:4SuBLGV6
>>296
googleってそういうの不得意な気がする。
なんかいろいろ作りっぱなし感がすごい

300デフォルトの名無しさん2017/06/28(水) 03:57:50.54ID:ULDUfAbu
GoogleとOracleってまだちょっと揉めてるん?

301デフォルトの名無しさん2017/06/28(水) 09:52:23.47ID:1HRXLIL1
>>299
またOracleから技術をパクれは余裕綽々よ

しかし、あれは酷かったよなw
JVMのスポンサー/共同開発に名を連ねたと思ったら
その数年後にAndroid発表してSun JVMじゃなく自前のDalvik VM使うからwwwってSunを切り捨てる暴挙
そりゃ技術をパクられたSun(Oracle)はブチキレるわ

Googleはもうパクらないだろうから、Jetbrainsがパクることを期待しようか

302デフォルトの名無しさん2017/06/28(水) 11:09:49.25ID:fPVyfCmw
>>301
Androidは何もパクってないが
捨てられたApache Harmonyを引き継いだだけやし現時点ではOpenJDKになるってし
元を正せばOSS化を進めてたウンコOracleが突然APIのライセンスだなんだ

303デフォルトの名無しさん2017/06/28(水) 11:10:28.02ID:fPVyfCmw
と喚き散らしたことのほうがどう考えても筋違いや
Oracleはキチガイ集団

304デフォルトの名無しさん2017/06/28(水) 12:55:43.96ID:n0wEK4ez
当時、Sun JVMはクローズドソースでVMの中の人どころか、Java層のAPIも非公開だったろ...
ノウハウパクっておいてApache JVMから引き継いだだけだからってのは盗人猛々しいわw

305デフォルトの名無しさん2017/06/28(水) 13:02:32.04ID:WVoz31+g
>>304
JavaのAPIが非公開だったってそれまでJavaプログラマは何を見て書いてたんだよ。

306デフォルトの名無しさん2017/06/28(水) 13:09:21.41ID:1HRXLIL1
面倒な奴だなぁ
APIとLibraryを区別する気はないのかと思ったら、そこは区別するのかよ

307デフォルトの名無しさん2017/06/28(水) 13:45:27.56ID:fPVyfCmw
>>304
sun javaはsunのものだがjavaはsunのものではない
何をぱくったって?

308デフォルトの名無しさん2017/06/28(水) 16:04:17.62ID:1HRXLIL1
だーかーらー、>>301で言っているだろ
クローズドソースのSun JVMに首突っ込んで、自前のJVM実装のリリースに走ったのを悪行と言っている
当時もJVM自体はGNU, Apache, MSと多様に存在してたし、独自のJVMを作る自体は気にしないけど
仲良くしようぜーって近づいて技術を盗み見るのをパクったと表現しているんだ

自前のJVM作ろうが、JVM上で動く別言語作ろうが一向に構わんが、あの時のGoogleの行為は大笑いだったんだぜ

309デフォルトの名無しさん2017/06/28(水) 17:10:45.64ID:woJsJzbY
結局フェアユースという落ちが付いたろ。判決はどこまで確定したっけ?

310デフォルトの名無しさん2017/06/28(水) 17:18:12.30ID:KUDOoNV3
Googleはライセンス料を回避するためDalvikを作った
Oracleが訴訟起こしたのはGoogleから和解金や継続的なロイヤルティーを得るため
金vs金

GoogleがOracle JVMでなくApache Harmonyをベースに開発したため
OracleはソースコードでなくAPIの著作権という方向からDalvikの権利を押さえに掛かった

今のところ訴訟バトルはGoogle有利に進んでいる模様

311デフォルトの名無しさん2017/06/28(水) 17:24:37.74ID:KUDOoNV3
訂正

特許とAPIの著作権

312デフォルトの名無しさん2017/06/28(水) 19:19:21.21ID:xWBVVuch
しかし何れにせよ、Androidが無かったらJava(及びそのエコシステム)はもっと廃れてたはずだよね

313デフォルトの名無しさん2017/06/28(水) 20:01:24.52ID:gsVJZ8oO
JDKのライブラリ群は30年ぐらい前の発想で作られた頭が痛くなりそうな
APIも多いのでKotlinでJDKと別にモダンなコアライブラリ
作ってくれるならとても嬉しい

314デフォルトの名無しさん2017/06/28(水) 20:13:20.22ID:R8FO3Rrv
>>312
androidが何に寄与したって?w

315デフォルトの名無しさん2017/06/28(水) 20:17:07.79ID:kl/WEkBu
>>312
Javaの市場はほぼ100%エンタープライズとWebが占めててAndroidなんかカスみたいなもんだぞ

316デフォルトの名無しさん2017/06/28(水) 20:20:40.71ID:woJsJzbY
javaはヌルポ排除できない時点でだめだよな。

317デフォルトの名無しさん2017/06/29(木) 00:16:43.10ID:OxDWNayQ
>>316
だからKotlinが生まれたんだっけな

318デフォルトの名無しさん2017/06/29(木) 11:02:50.69ID:7tq2Nu14
Kotlinでヌルポ起きないってギャグにしては古すぎる・・・

319デフォルトの名無しさん2017/06/29(木) 11:39:09.06ID:FObp9uyg
オプショナルを正しく使ってればヌルポなんて起きようがないんだがw

320デフォルトの名無しさん2017/06/29(木) 11:40:38.32ID:pdm0wtJX
ニュアンスとか前提の差で話が噛み合ってない気が

321デフォルトの名無しさん2017/06/29(木) 11:47:39.86ID:JFxFowh1
ぬるぽは既存のライブラリやフレームワークから飛んでくるからKotlinを使ったところで解決にならないんだよなあ
自分で書いた範囲ならJavaでもぬるぽなんて滅多に出さないわ

322デフォルトの名無しさん2017/06/29(木) 12:00:09.83ID:pdm0wtJX
テストあるからJava1.4でもClassCastExceptionは滅多に出さない的な

323デフォルトの名無しさん2017/06/29(木) 12:22:12.95ID:7tq2Nu14
プリベリファイ要求してたMobileのJava1.3は偉大だったんだなって

324デフォルトの名無しさん2017/06/29(木) 12:28:25.79ID:JFxFowh1
>>322
そういう問題じゃない
Javaのライブラリにおいて引数にnullが渡されそれが不正値であるときに発生する例外は何か? →たいていぬるぽ
Javaのライブラリにおいて属性の値がnullでそれが不正値であるときに発生するエラーは何か? →だいたいぬるぽ
明示的なチェックを怠りランタイムエラーに頼るこの糞習慣がある限りぬるぽは決して無くならない

325デフォルトの名無しさん2017/06/29(木) 13:21:35.51ID:FObp9uyg
>>321
んなことは言わなくても全員わかっとる

326デフォルトの名無しさん2017/06/29(木) 14:39:25.51ID:JUVsJKjr
そもそもテストを書けばぬるぽの9割は生まれる前から死ぬ
しかしそれでもテストをしないできないすり抜けるからこそ静的言語コード本体に「テスト機能」をつけたのだよ
人間とは間違うものなのだ

327デフォルトの名無しさん2017/06/29(木) 15:15:09.10ID:Xwk4Fgx6
Javaのライブラリにおいて引数に配列上限値が渡されそれが不正値であるときに発生する例外は何か? →たいていあれいいんでっくすあうとばうんど
Javaのライブラリにおいて配列の要素値がマイナス値でそれが不正値であるときに発生するエラーは何か? →たいていあれいいんでっくすあうとばうんど
配列操作を安全に操作できないKotlinはJavaと同じレベルで糞だな

ヌルポだけがバグの原因だと思ってるアホは置いといて、やっぱテストフレームワークを充実させたJUnitは偉大だわ

328デフォルトの名無しさん2017/06/29(木) 15:20:20.01ID:W0uOcXiB
なんだこいつw

329デフォルトの名無しさん2017/06/29(木) 19:47:56.73ID:zX+YoTjc
>>327
問題の発生頻度が段違いだろ。

型システムを採用しているにもかかわらず、型無しのヌルポを排除できないjavaはとても古臭い。

330デフォルトの名無しさん2017/06/29(木) 20:58:35.28ID:UEgl5Zip
Sunが死んだ
太陽が死んだ

331デフォルトの名無しさん2017/06/29(木) 21:19:35.80ID:cCrWWcTS
日本語で書かれた Kotlin に関するいい感じのチュートリアルってない?

332デフォルトの名無しさん2017/06/29(木) 21:34:38.83ID:pdm0wtJX
書いて覚えろ

333デフォルトの名無しさん2017/06/30(金) 00:28:01.26ID:56/qVjC+
>>331
情熱、自己顕示、小遣い稼ぎ、まあ理由はなんでもいいんだけど自分でちょろっと記事でも書いてみようとするとよくわかる
・Java入門
・Kotlin詳説
・よくわかるIntelliJ
・10日で学ぶAndroidプログラミング
あたりをごっちゃまぜにしたものが必要になる
ぶっちゃけとてもめんどくさい

334デフォルトの名無しさん2017/06/30(金) 01:58:55.10ID:q+HYO1HC
チュートリアルならKotlin Koansやるのが一番じゃない?
Webでも手軽に出来るしIDEAにも専用のプラグインがある

335デフォルトの名無しさん2017/06/30(金) 10:50:35.57ID:TsXJhClE
あれいいんでっくすあうとばうんどは、0除算並みの恥ずかしいミス。
nullpoとは次元が違うわw

336デフォルトの名無しさん2017/06/30(金) 11:53:55.60ID:0zGLF76x
>>334
webのやつってなんか重くないですか?

337デフォルトの名無しさん2017/06/30(金) 13:36:42.47ID:tesV9X+3
そんなんローカルに持ってきてやればよろしいがな
IntelliJ入れてあるならプラグインがある
コマンドラインしかないなら…、まあ、IDEなしは初心者であるからこそ積極的には勧めないんだけども、
コマンドラインしかないならgitで持ってきてテストが通るようにスクリプト本体編集すればいい
えっコマンドラインからテストするやり方がわからない?

3383312017/06/30(金) 13:58:27.40ID:svEzz20W
>>334
本家 (またはそれに近いコミュニティ) にある資料ならここで聞くまでもなく有るのはわかりますがな。
そうじゃなくて「日本語で」あったらうれしいなぁという話で。

339デフォルトの名無しさん2017/06/30(金) 14:35:57.92ID:5/+9iJSz
自分用でなく他の人用という話だったら
Chromeなどでのページ翻訳+原文で頑張る方法を勧める

340デフォルトの名無しさん2017/06/30(金) 14:52:56.61ID:tesV9X+3
>>331
あるかどうかで言えば「まだないです」
Kotlinは基本的にはただのJavaなので、上にもあるけどJavaの基本知識(を教えるだけの余裕)が必要なのでちゃんとした入門制作はハードルが高い
巷の日本語ページがスタートブックすら超えられてないのはそのへんが理由
そしてスタートブックですら初心者全く掬えてない
助走読本はとても頑張ってるけれど、助走ゴールな気がちょっとしなくもない。これはやっぱりJavaが悪いので仕方がない
ttps://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view

341デフォルトの名無しさん2017/06/30(金) 15:08:07.12ID:svEzz20W
>>340
なるほど。
Java の資産を使えるメリットと引き換えに Java の知識が必要ってことね。
というか、 Java をマシに使える言語って感覚なのかな。

私は Scheme (LISP 系言語) を普段使いしてるので同じく LISP 系言語である Clojure を検討してたんだが、
やっぱり Java の知識が必要で、しかし Java について全然知らないので他の系統はどうなんかなと思って
このスレに来た次第。

やっぱりそう簡単にはいかんか……

342デフォルトの名無しさん2017/06/30(金) 15:20:46.15ID:5/+9iJSz
何に困ってるのか分からない
その辺の経験あるなら手動かせば身に付くまで大して掛からないだろう

343デフォルトの名無しさん2017/06/30(金) 15:38:15.91ID:O4IQOzV/
googleのやるべきことはFWを全てkotlinに書き換えることやな

344デフォルトの名無しさん2017/06/30(金) 16:02:16.24ID:2Da2vksV
英語読めない奴がLISPとかすげえな
やってて死にたくならない?

345デフォルトの名無しさん2017/06/30(金) 16:17:39.99ID:O4IQOzV/
>>341
つhaskel

346デフォルトの名無しさん2017/06/30(金) 16:43:11.20ID:svEzz20W
>>344
Scheme は日本語訳あるからそんなにつらくない。
Common Lisp とかみたいに仕様の日本語訳がなくてクソ巨大なのを使いこなすのは大変だと思うけど、
最初からリッチなライブラリがそろっているので実用しやすいという人もいる。

>>342
興味本位なので面倒くさかったらやらないだけ。
ハードルの低い入門があれば見るかもっていう感じ。

347デフォルトの名無しさん2017/06/30(金) 17:11:37.52ID:0PkxBZJ1
>>335
RuntimeExceptionの子クラスの例外は総じて同レベルで恥ずかしいんだが
原則、どれもパラメータチェックしてないから発生する例外だからな
むしろ、ヌルポが一番恥ずかしくて、それが起きないようにオプショナルがあるんだと思ってる

348デフォルトの名無しさん2017/06/30(金) 17:59:28.75ID:2uOE1xo7
Javaがクソなのと、クソの処理をしないプログラマがマヌケなのは別の話。一緒にすんな。

Optionalはその変数がnullでないことをコンパイル時に保証できたっけ?
実行時コストをかけて解決するのは鈍臭い。

349デフォルトの名無しさん2017/06/30(金) 18:12:49.54ID:0PkxBZJ1
そのクソの処理をしないプログラマでも安全にコーディングさせるためにオプショナルがあるんだよ...
オプショナルがあるからヌルポが起きないわけでもないから完全に安全とは言えんがまぁ言及すまい

350デフォルトの名無しさん2017/06/30(金) 21:30:17.46ID:2uOE1xo7
>>349
まともな言語なら(c++でさえ)コンパイル時に済ませられるのを、わざわざ実行時にチェックしなきゃいけないのは鈍臭い、つうこと。

351デフォルトの名無しさん2017/07/01(土) 06:09:20.91ID:v+Q0wrxJ
全く噛み合ってなくてワロタ
どんだけ崇拝してるんだかwww

352デフォルトの名無しさん2017/07/01(土) 12:59:00.78ID:qNm5JQD+
C++でヌルポが起きないってマジ?w

353デフォルトの名無しさん2017/07/01(土) 15:33:59.29ID:v+Q0wrxJ
Rustだとガチでヌルポが起こせないゾ
オプショナルとかいう中途半端なモノを誇ってるKotlinとは格が違う
まぁ他の面倒が多くて全く勧められるものじゃないけど

オプショナル()だけで素晴らしいとか絶賛してる子は他にメリットを見出してどうぞ

354デフォルトの名無しさん2017/07/01(土) 15:53:26.04ID:KyLBHjPn
トレイリングクロージャ無いと死ぬマン

355デフォルトの名無しさん2017/07/01(土) 20:36:50.31ID:M8KylmXN
ここまで、lazy 初期化の話が出ないw

356デフォルトの名無しさん2017/07/01(土) 21:29:59.25ID:SoXb9Q80
ヌル安全つうのはモダンな言語じゃ標準装備なんじゃろ?

357デフォルトの名無しさん2017/07/02(日) 13:51:47.79ID:RlGcb3P/
>>338
Koansとか英語読めなくても(読まなくても)分かるんだが…
メインはKotlinのソースコードで説明読めないなら問題と答えを比べて見るだけで基本的な構文は勉強出来るし
そもそもプログラミング自体の理解が浅いならJavaとかから始めないと例え日本語の解説あっても分からんと思うよ

358デフォルトの名無しさん2017/07/02(日) 23:49:50.72ID:ynDhLM7Z
Java + Groovy = Kotlin

つまり、Javaに関数型を付けた言語だから、
最初に、オブジェクト指向を学ぶ必要があるから、かなり大変

まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
WEB+DB vol.94 の特集が、Kotlin, Electron

Try Kotlin のサイトで、ブラウザからプログラミングできる

359デフォルトの名無しさん2017/07/03(月) 00:00:56.60ID:MkRtof65
ここまで出張して来たか、、、

360デフォルトの名無しさん2017/07/03(月) 00:27:08.93ID://L4zw1o
sageじゃない時点でスルーでいいよ

361デフォルトの名無しさん2017/07/03(月) 00:37:26.98ID:MkRtof65
NGワード:スッキリわかる

362デフォルトの名無しさん2017/07/03(月) 06:33:05.51ID:4ljd5V+p
Kotlin.NativeよりSwiftのが使えるって本当?
Kotlin.Nativexはキーワードばかり散見されて実質何がどこまで完成してるのか分からんのだが
SwiftはWin, *nix, Androidで普通に動くようになってるけど、Kotlinはそこまで至ってないんだよね?

363デフォルトの名無しさん2017/07/03(月) 08:38:14.08ID:mDI6RaMX
swiftって仕様安定したの?

364デフォルトの名無しさん2017/07/03(月) 09:06:19.84ID:8rVktY+j
おおよそ

365デフォルトの名無しさん2017/07/03(月) 09:13:44.93ID:4ljd5V+p
Kotlin/NativeのCとの連携ってJNIを踏襲するんじゃなくて、現在進行形で独自I/F仕様を作ってるっぽいな
一応、Linux, Mac, Winで動くようだけど完成度はSwiftのがまだマシだ

366デフォルトの名無しさん2017/07/03(月) 12:50:39.71ID:v2mMhpE7
いまさらJNIはないだろ。
JVMの方も10か11でJNIに代わるNative対応が予定されているし。

367デフォルトの名無しさん2017/07/03(月) 15:28:28.68ID:BBsEUtpT
なおさら踏襲しとけよと思わなくもないな
Kotlin/NativeのNative I/F
Java9以前, KotlinのJNI
Java10以降のFFI
と仕様が乱立するのか・・・

Kotlinって仕様安定してないのな

368デフォルトの名無しさん2017/07/03(月) 18:16:02.56ID:tIUw+Kxj
JNI踏襲とか無いわ
そうしたいなら普通にJava使っとけば良いと思う

369デフォルトの名無しさん2017/07/04(火) 09:13:03.70ID:ETZVte8W
KotlinがJNIを踏襲していることは知らないのか、知ってて度外視なのか
Kotlin/NativeアゲのためにKotlinを蔑んでちゃどうしようもないな

370デフォルトの名無しさん2017/07/04(火) 15:17:21.36ID:FOvT7Dr6
Kotlin/Javaが使うのは何でもないこと。
もしKotlin/NativeがJNI使うとしたら、それどこのXamarinだよってことだろw

371デフォルトの名無しさん2017/07/04(火) 16:48:31.76ID:E7VHi3Qh
JNIのI/F踏襲して
external fun fgetc(file: CPointer) char;
とかでいいじゃんっつーね
externalの先はわざわざVM/Runtimeかます必要はなくてCに繋げればいい

Kotlin/NativeのNative I/FはC++に対応してないようだし
後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
C++に対応するならまぁアリかと思うけどないんだろうしね

372デフォルトの名無しさん2017/07/04(火) 18:27:25.69ID:kEoD/tXz
>Cに繋げればいい
ならJNI要らないじゃん
JNI踏襲ならJNIEnvの実装必須でしょ

C++対応とか正気かよ
C++同士でさえコンパイラやバージョン違いで
マングリングが異なってリンク不可能だからCリンケージ使うのに

373デフォルトの名無しさん2017/07/04(火) 19:45:38.53ID:E7VHi3Qh
I/Fとランタイムの区別が出来てない
まぁ>>368とかもJavaとKotlinとKotlin/Nativeと区別してないからその程度なんだろうけど

> C++対応とか正気かよ
Rustのアホはbindgenって補完ツールで実現したぞ
他言語では見たことないから当然Kotlinもナイと思ってる, 後発なんだから検討はして欲しいけどねー

374デフォルトの名無しさん2017/07/04(火) 19:58:52.39ID:G1Se2kAk
javaに触らずにkotlinだけでandroid開発できるようになんないかな

375デフォルトの名無しさん2017/07/04(火) 19:59:34.67ID:bn9cQclE
なればいいね

376デフォルトの名無しさん2017/07/04(火) 20:44:06.85ID:kEoD/tXz
>>373
>>365からの一連の流れはKotlin/NativeでのI/Fの話だぞ
区別云々は君が話の前提から混乱しているだけ

>bindgen
見たけどClang 3.9(〜4.0)のマングリングを前提としてるから
ヘッダだけじゃなく実装本体もClangでビルドする必要があるようだが

完全なC++コードがある場合は使えるが、ABIの代わりにはならないだろう

377デフォルトの名無しさん2017/07/04(火) 22:22:00.36ID:A9sYzzwp
>>374
5年後にバージョン3とかになればなんとか…

378デフォルトの名無しさん2017/07/05(水) 11:03:55.64ID:BRC1acOi
スマホアプリの言語ぐらい統一して欲しい
googleとappleで話し合えないのかねぇ
mac以外でもios用のアプリ製作からリリースまで最後まで出来るようにしてほしいよねぇ

379デフォルトの名無しさん2017/07/05(水) 11:08:55.38ID:PFivIsqu
>>378
統一したいならC#

380デフォルトの名無しさん2017/07/05(水) 12:07:39.48ID:Ejf+K2GI
Appleの昔から自分たちのプラットフォームにユーザーを囲いこんで、他のプラットフォームからの鎖国という考え方
Googleは自分たちのサービスを他のプラットフォームでも利用してもらってユーザーを増やし、収益を伸ばしたい考え方
統一でという方向で動く時、どちらがそれを拒んだり我を通した条件を突きつけてくるかは明白

381デフォルトの名無しさん2017/07/05(水) 12:09:06.92ID:NUQ3PgkL
>>378
お互い何のメリットが?
開発者としても何のメリットも感じないが

382デフォルトの名無しさん2017/07/05(水) 12:46:52.77ID:BRC1acOi
開発者として開発環境を統一できるメリットがあるだろうが

383デフォルトの名無しさん2017/07/05(水) 12:51:04.90ID:XfevCCY3
>>382
開発側からすればwebフロントエンド系のように開発者余りまくりで単価デフレになるデメリットしかない

384デフォルトの名無しさん2017/07/05(水) 14:04:19.57ID:KnxHgcda
>>378
ブラウザですら自分の思い通りに開発できないからってwebkitからblinkフォークさせたのに

385デフォルトの名無しさん2017/07/05(水) 16:01:58.60ID:+yhqIzpS
>>382
androidとiPhoneでフレームワークが違うから無理。

386デフォルトの名無しさん2017/07/05(水) 16:10:10.15ID:KD2VFbty
>>378
react native とtypescriptに期待してる。
typescriptならサーバサイドにも耐えそう。言語仕様もパターンマッチング提案中だったり、
結構格好いい言語になってきた

387デフォルトの名無しさん2017/07/05(水) 16:35:02.36ID:dBZFHwYj
>>385
JVM言語で「iOSとAndroidを統一環境で開発できる」と言うのもなんかがっかりではある
君は一体歴史のどこを見てきたのかと

388デフォルトの名無しさん2017/07/05(水) 16:42:58.42ID:ajye3GRU
>>383
金の話はまた次元の違う話かと思われる

389デフォルトの名無しさん2017/07/05(水) 17:00:43.66ID:XfevCCY3
>>388
別次元?なにが?
ある側面だけみてメリットデメリットの話してもなんの意味もないやろ

390デフォルトの名無しさん2017/07/05(水) 18:58:19.44ID:nAxrn5ol
>>378
GoogleはAndroid開発環境を複数OS向けに出している

iOSアプリの公式開発環境がMac用しかないのはAppleが狭量なだけだし、Googleは無関係
話し合いで進展する問題ではない

391デフォルトの名無しさん2017/07/05(水) 18:59:51.81ID:XfevCCY3
これはアスペ

392デフォルトの名無しさん2017/07/05(水) 19:12:52.25ID:nAxrn5ol
仮にAppleがiOSの開発環境をWindows向けに出すとして、iOSエミュレータはついてくんのか?っていう
Androidのような大真面目なエミュレータではなく、iOSはMac上でも「シミュレータ」しか動かん
それがWindows上で動かせるようになるとはあまり思わない

393デフォルトの名無しさん2017/07/05(水) 21:24:57.18ID:+yhqIzpS
技術の問題じゃなくて政治の問題だろ。

394デフォルトの名無しさん2017/07/06(木) 07:36:12.02ID:iYgfgx2U
>>376
JNIEnvが必須とか言い出すからIFじゃなくRuntimeの話を交え始めたと理解したが?

RustがclangでC/C++本体のコンパイルが必要だからNGなら
Kotlin/Nativeがclang等々でC本体のコンパイルを必要とするのもNGになっちまうだろw
他言語を他コンパイラでコンパイルするのは当然で、C++に限ってはその上でKotlin/Nativeが頑張るんだよ

395デフォルトの名無しさん2017/07/06(木) 09:16:31.44ID:Xn+el2UL
どうでもいいけど擬人化ことりんちゃんまだかよ
無能ども

396デフォルトの名無しさん2017/07/06(木) 13:03:11.11ID:A60SyEEL
>>394
>IFじゃなくRuntimeの話
Javaからnativeを使う方のJNIは以下から成り、JNIEnvはJNI仕様の中核
 ・CのABI
 ・シンボル名と引数のルール
    ※ Java_パッケージ_クラス_メソッド(JNIEnv*, thisインスタンス, java側引数)
 ・プリミティブ型の定義
 ・JNIEnv(JNI関数群)のインターフェイス仕様

>clang等々
特定のコンパイラ/バージョン依存なのと, CのABI依存なのはまったく異なる

Kotlin/Nativeのinterop, JavaのJNI, C#のP/Invoke, RustのFFIなどはABIで連携するけど
bindgenはI/FでなくC++コード全体を取り込む外部ツール
Clangの実装に強く依存するからRustの仕様の一部として取り込まれることも無いだろう

誰かがKotlin版bindgenを作ろうとすることに特に反対は無いけどすべきとも思わない
Kotlin/NativeでJNIのI/Fを使う話も労力に見合うものは得られない

397デフォルトの名無しさん2017/07/06(木) 13:14:33.18ID:A60SyEEL
>>394
追記
そもそも根本的な話としてCのABIと呼んでいるもの(↓と同義)が何か分かってる?

https://github.com/JetBrains/kotlin-native/blob/v0.1.0/INTEROP.md
>target is a C library

https://doc.rust-lang.org/book/first-edition/ffi.html
>C ABI

バイナリ内のシンボル名や呼出規約であって別にコード自体がC言語である必要は無い
C++(extern "C"), Rust, Haskellなどネイティブにビルド出来るものは
C ABIでのライブラリを作成する機能を持つものは多い

Cに無い機能(C++例外など)をそのまま透過出来ないというだけで、
C++やRustで作った共有ライブラリをKotlin/Nativeから呼べる

398デフォルトの名無しさん2017/07/06(木) 17:54:27.44ID:j+3WJv+Z
なんでandroidのために新しい言語覚えなきゃいけないねん

399デフォルトの名無しさん2017/07/06(木) 18:08:30.77ID:vSzC4r/y
別にいいんじゃない?android使わなくても。

400デフォルトの名無しさん2017/07/06(木) 19:00:34.42ID:/cQIX5Le
汎用言語が Android では使えないというのは制約だろう。

401デフォルトの名無しさん2017/07/06(木) 20:22:03.24ID:736nPsTD
不満はあってもJavaよりはずっと良い

402デフォルトの名無しさん2017/07/06(木) 23:28:02.58ID:L8j5rxy6
呼出規約には、2種類ある

呼び出した方で、引数のスタック領域の確保・解放をするものと、
呼び出された方で、するもの

403デフォルトの名無しさん2017/07/06(木) 23:43:32.25ID:X1Wsv7xS
さらには引数を後ろからスタックに積むもの、前から積むものもってのもある。

404デフォルトの名無しさん2017/07/08(土) 16:04:44.48ID:bEWoCU65
萌えキャラKotlinたんの誕生まだ?

405デフォルトの名無しさん2017/07/08(土) 17:26:45.29ID:69drE4+r
>>396
なんか長々書いてるけど、結局新規のIF, 文法切っても現仕様はSwift同程度なんだよね
中身がどうあろうがいいけどショボい機能しか載せられないなら、Kotlinの上っ面IFだけはKotlinとKotlin/Nativeで共通化して欲しかったって話だよ

まぁ絶賛開発中の言語仕様だし期待しないで気長に待つわ

406デフォルトの名無しさん2017/07/08(土) 19:34:40.80ID:dvBryjqP
しょっぱいだのショボいだのディスるのは簡単だが
浅い知識と考えでそれを言うのは恥ずかしいことだと少しは自覚しろよ・・・

407デフォルトの名無しさん2017/07/09(日) 10:04:20.42ID:0uIBGQaT
>>398
Kotlinは簡単な言語だからいいでしょ

408デフォルトの名無しさん2017/07/09(日) 12:16:36.95ID:1xYpz64I
構文糖衣が多くてperlみたいな雰囲気を感じないでもない

409デフォルトの名無しさん2017/07/09(日) 12:55:49.42ID:GAM/5uII
await使えるようになるだけで移行したいわ

410デフォルトの名無しさん2017/07/09(日) 14:03:09.85ID:5jNmidbV
xamalin使えばいいじゃん

411デフォルトの名無しさん2017/07/09(日) 22:15:33.42ID:x/k/RP/C
>>408
>構文糖衣が多くてperlみたいな雰囲気を感じないでもない
カッコとかなしでむき出しで書かれる A keyword B みたいな構文はどうにも慣れないね
A.method(B)やfunction(A,B)と同じはずなんだが、空白という文字で区切られていると脳が一瞬括りを拒否する

412デフォルトの名無しさん2017/07/10(月) 13:10:30.69ID:Y8I/wQdo
>>406
最初(>>367の時点)からKotlin層の文法だけを注視してて、C層は気にしてないからなぁ
Kotlin層の共通化が大変な訳でも無し、わざわざ大変な新規IF切ってしょぼい機能になってるのは恥ずかしいよ

413デフォルトの名無しさん2017/07/10(月) 13:34:33.04ID:gqDySAuG
>>412
何何どういうこと?
まだkotlinは遠くから眺めているだけだから気になる?

414デフォルトの名無しさん2017/07/10(月) 23:27:47.39ID:LuuY8Q0f
>>412
C層を気にしてないんじゃなく知らないだけだろ
だから「わざわざ大変な新規IF」なんて的外れなレスをすることになる
JNIライブラリを書いたことすら無さそうだし

良案と思っているものがあれば↓で提案してみたらどうだ?
https://discuss.kotlinlang.org/
鼻であしらわれるのがオチだが

415デフォルトの名無しさん2017/07/11(火) 02:41:16.53ID:HQt0YaW2
言語なんて色々あるんだから自分の好きなの選んだらええんやで
Androidに正式採用されてから一気に書き込み増えたな

416デフォルトの名無しさん2017/07/11(火) 03:44:11.61ID:LaLOr5GK
>>414
別にKotlinがそこまで好きなわけじゃないし、ここでKotlin/Nativeの喜劇を鼻で笑ってた方が楽だし・・・
業務でJNIを書いてたのは15年くらい前の1.3の頃だねぇ、あの頃はJNIはC++が使えなくてラッパー層の実装も面倒だった
いつからか知らんけど、JNIEnvにC++ APIが追加されててC層の実装が楽になってて数年前にビビったわ

・・・と老害なレスしとけば、論点ズラして技術論から離れた場外乱闘になって俺が飽きれるだろ

417デフォルトの名無しさん2017/07/11(火) 11:50:37.31ID:HY0nK+zE
>>413
Kotlin
--
external fun sayHello();
System.loadLibrary("hello")
sayHello() // C API呼び出し

Kotlin/Native
--
import kotlinx.cinterop.*
sayHello() // C API呼び出し
// 別途、defファイル, gradleファイルを用意

Kotlin/Nativeはexternal funを宣言しないでシームレスにC APIを利用させるために、KotlinからIF構成を変えてる
external funの宣言がなくなった分だけKotlin層の記述は楽になったけど
代わりにdef, gradleが必要で、Kotlinと互換性なくて、C++ APIは呼べないという制限がある

そこまで変えるなら、頑張ってC++ API呼べるようにして欲しいなーって冗談半分で言ったら噛み付かれた

418デフォルトの名無しさん2017/07/11(火) 12:19:57.03ID:UunU8BlR
プログラマの勉強しようとおもってますが、これはジャバとなにがちがいますか?
大差ないようであればこれを勉強しようおおもいます

419デフォルトの名無しさん2017/07/11(火) 12:23:20.73ID:qIknPoW2
>>418
Javaとの大きな違いは、Javaを完全に理解してる人向けで初心者向けの情報がほぼゼロという点

420デフォルトの名無しさん2017/07/11(火) 12:38:05.79ID:TEHQIMDt
ObjCというマイナーで黴の生えた言語がiOS開発入門の障害になっていたところに現れたSwiftとは違い、
Javaは開発者ならはっきり言ってできて当然なので今後も初心者向けの情報の充実は望めない

421デフォルトの名無しさん2017/07/11(火) 12:44:27.43ID:nZ299llH
Android入門は今後kotlinベースになるだろ。

422デフォルトの名無しさん2017/07/11(火) 13:43:49.66ID:6GA6X5kA
それ頼む。javaのライブラリに依存すると言ってもandroid似関係するのはごく一部でしょう?
フルセットのjavaを学ぶ必要ないよね

423デフォルトの名無しさん2017/07/11(火) 14:41:08.33ID:poL23Q4e
>>418
Kotlinは話題になってはいるが「Java言語を使いこなしている人がその知識を使うと楽に書ける」ので好評を得ている
Java言語を全く知らないのであればKotlinはむしろ二重三重の習得障壁があるので勧められない
なにするかもぜんぜんわからないし現実世界で聞ける師匠もいないというのならJavaでいいんじゃないかな

JavaなしでのKotlin学習術というのは数年したら出てくるとは思うがそれはKotlin本体の充実も待たねばならんのでしんどい

424デフォルトの名無しさん2017/07/11(火) 15:36:02.36ID:HBLQ2eVf
>>417
随分トーンダウンしたなw

>Kotlin/NativeのNative I/FはC++に対応してないようだし
>後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
 ↓
>頑張ってC++ API呼べるようにして欲しいなーって冗談半分で言った

そもそもKotlin(JNI)との互換性の話にC++は関係無いだろう
JNIでもエクスポートする部分はextern "C"なんだから

425デフォルトの名無しさん2017/07/11(火) 17:16:47.08ID:U4fTHQuQ
おう、そうだなw
それでKotlin/NativeのIFの話はどうした?論点ズレてんよ

426デフォルトの名無しさん2017/07/11(火) 18:38:24.21ID:HBLQ2eVf
>>425
日本語が不自由なのか?
「Kotlin(JNI)との」と書いているんだが

427デフォルトの名無しさん2017/07/11(火) 21:08:20.35ID:k/zCsCNx
僕Javaはちょっとしか使ったことないLisperだけど、Kotlinサクッと学んでAndroid開発してるよ? 難しくないよ?

428デフォルトの名無しさん2017/07/11(火) 21:13:00.00ID:xWYiv0j+
LISPerが書くコードとか他人が読めなそうやな

429デフォルトの名無しさん2017/07/11(火) 23:22:21.14ID:rvrzGERi
>>423
javaのエコシステムが学習障害なのかな。歴史がある分根深そう
gladleとかいうタスクランナー用に専用言語あるんだっけか

430デフォルトの名無しさん2017/07/11(火) 23:23:35.24ID:rvrzGERi
swift、typescriptと触ってoptionalが無い言語は正直触りたくなくなっとる。

431デフォルトの名無しさん2017/07/12(水) 06:26:01.18ID:HQm2gXhD
>>418
Kotlin = Java + Groovy

Javaのオブジェクト指向に、Groovyの関数型を付けたもの。
クロージャを多用する

まずこの本で、Javaとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、
プログラミング GROOVY、2011
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

432デフォルトの名無しさん2017/07/12(水) 06:44:11.99ID:Tu2UL3Q1
KotlinはGroovyはあんまり関係ないだろ
機能的にはC#をリスペクトしていて、文法はScalaを簡略化したもの

433デフォルトの名無しさん2017/07/12(水) 08:03:32.77ID:LUkpq5Wd
>>432
さわっちゃだめよ

434デフォルトの名無しさん2017/07/12(水) 08:14:26.72ID:Tu2UL3Q1
C#の思想でScalaを再設計した感じだな

435デフォルトの名無しさん2017/07/13(木) 00:38:10.55ID:uHqOeG/1
メソッドの最後の引数にクロージャを書いて、
そのクロージャの中のメソッド呼び出しの最後の引数にクロージャを書いて・・・
って感じの記法でDSLを作れるのが ruby から groovy 経由で kotlin に引き継がれた特徴かね?
gradle の build.gradle みたいな奴ね

これを引き継いでる関係で build.gradle を kotlin で書けるのがもう実装されてる
Androidのレイアウトを kotlin のこの DSL 記法で書けたりもするね

436デフォルトの名無しさん2017/07/13(木) 01:28:56.84ID:JW4C8wb9
>>435
その辺はほぼScalaだよ

437デフォルトの名無しさん2017/07/13(木) 10:30:47.12ID:9URTCQsI
最近の言語はどれもよく似てるだろ
Swiftにも似てると思ったし

438デフォルトの名無しさん2017/07/13(木) 10:37:01.80ID:FzpRErWm
>>436
そりゃあscalaは何でもてんこ盛りだから同じことできるだろうけど、
公式がGroovy-styleって言ってるんだよね

Type-Safe Groovy-Style Builders
https://kotlinlang.org/docs/reference/type-safe-builders.html

439デフォルトの名無しさん2017/07/14(金) 05:04:39.07ID:SOKcdYDj
>>437
Swiftより古い言語なんだよなぁ…

440デフォルトの名無しさん2017/07/14(金) 09:50:43.08ID:tqlcOT7v
>>426
> そもそもKotlin(JNI)との互換性の話にC++は関係無い
KotlinとKotlin/NativeでNative I/Fを変えるなら、Kotlin/NativeでC++ APIをシームレスに使いたい、けど実現しないだろうねー
って笑い話をしてるのに、JNIEnvがーとか、JNIやったことないだろーとか関係ないこと言い出した子に言われても・・・
素直に、clangに依存するrustと違って、kotlin/nativeは特定C/C++コンパイラに依存しない選択をしたんだ、で良いだろうに

SwiftがKotlinのOptionalをパクったって、それ一番言われてるから
ここ10年の新興言語はお互いにパクリあってるからもう何が大元か分からなくなってるよね

441デフォルトの名無しさん2017/07/14(金) 11:53:31.95ID:JnCMaGHk
>>440
実現していないことに対し「しょっぱいなぁと思う」「ショボい機能」と罵ることと
「けど実現しないだろうねー って笑い話」というのは
お前の中では同程度の表現なのか?

442デフォルトの名無しさん2017/07/14(金) 11:59:48.94ID:JnCMaGHk
>>440
I/Fの話というだけで、JNI踏襲とC++対応は別々の話で関係無いだろ?
だから>>371に対しての>>372は改行で分けている

>>417といい、そのレスといい何故混ぜて話そうとするんだ?
「JNI踏襲するか、しないならC++対応」という思考のようだが
どちらも愚案だと言ってるだけだぞ

外部ツールとしてC++→Kotlinの変換ツールなら否定しないが

443デフォルトの名無しさん2017/07/14(金) 20:37:24.56ID:F62iti5K
>>441-442
> 「JNI踏襲するか、しないならC++対応」という思考のようだがどちらも愚案
うむ、後者は出来ないし、しないだろうからなw
前者は出来なくないだろうけど、仕様乱立(>>367)してでもCをシームレスに呼び出せるのがクールだと思ったんだろうね

「JNIを踏襲せず、C++に対応せず、Cをシームレスに呼び出せる」という現行仕様を両手あげて歓迎しない限り収まりそうにないね
Kotlin/Nativeの微妙な現行仕様を笑ってたけど、あなたの現行仕様に対する信仰が分かったので取り下げるよ
宗教は理屈じゃないと、ObjCでも散々言われているのを知っているのだ

444デフォルトの名無しさん2017/07/15(土) 08:38:17.95ID:HFaGoOZi
最後まで技術的な話が出来ない奴だったな
>>396-397で説明したのに「C++(ソースレベル)」と「CのABI」が
並べて書けるものでないことも理解されなかったようだし
まぁ取り下げたならそれでいい

445デフォルトの名無しさん2017/07/15(土) 13:44:47.75ID:KAmmMYRz
>>438
そのBuilderだけの話だろ。
ここだけ取り出して、Groovyベースとか言っちゃうのはイカレてる。

446デフォルトの名無しさん2017/07/15(土) 23:24:57.48ID:5uf8kOgL
第2引数のラムダ式を、引数の外に出せる、糖衣構文あり

関数(引数, { it })
関数(引数){ it }

確か、Groovy, Gradle も同じだったか

447デフォルトの名無しさん2017/07/16(日) 00:40:29.56ID:mqalEvhx
クロージャ以外の実引数を省略して
関数 { it } とかも書けるよね

まあたしかscalaも同じことができるんだが
ruby、groovy では特に好んでこの形式を使ってDSLを作ったり
文法の拡張的な感じに使う

kotlin ではこれをさらに効率的に使い倒すために
上記のように使う関数の定義に inline という指定ができる

https://kotlinlang.org/docs/reference/inline-functions.html

引数にクロージャをとるけど、
実際にはクロージャを使わない形にインライン展開される

448デフォルトの名無しさん2017/07/16(日) 06:49:43.02ID:ZSYh3+ww
あとはコンパイル時処理があるといいな

449デフォルトの名無しさん2017/07/18(火) 08:52:46.31ID:Ttzd9ReG
Java8でもlamda構文はコンパイル時にインライン展開されるよ

450デフォルトの名無しさん2017/07/23(日) 20:14:23.56ID:5U3qvpGz
一瞬不相応に盛り上がったけど「将来性は高いが現時点ではJava利用者向けのベターJavaである」ということが周知されて落ち着いたな
よかったよかった

451デフォルトの名無しさん2017/07/24(月) 10:25:57.37ID:d8RjP+27
スッゲー上から目線の総括にワロタwwww

452デフォルトの名無しさん2017/07/25(火) 02:00:55.92ID:UzXdgK41
Android公式の言語になって悔しい奴も居るんだろう

453デフォルトの名無しさん2017/07/25(火) 06:18:37.30ID:5XPEt11J
oracleが噛んでる時点で終わりの始まり。
solarisとかね。

454デフォルトの名無しさん2017/07/25(火) 07:07:22.80ID:BBsjcCUe
WorkStation, MySQL, OpenOffice...う、頭が...

455デフォルトの名無しさん2017/07/26(水) 10:30:04.80ID:VR8TYjgB
IDE使わずに複数のファイルにコードを分割したときにどうやってコンパイルしてから実行する方法を教えてください
これはだめでした
kotlinc a.kt b.kt
kotlin AKt.class BKt.class

■a.kt
fun main(args: Array<String>) {
name()
}

■b.kt
fun name() {
println("Name?")
}

456デフォルトの名無しさん2017/07/26(水) 11:06:32.93ID:M5MsN9/+
kotlin -classpath . AKt
ではどう?

457デフォルトの名無しさん2017/07/26(水) 11:07:19.20ID:M5MsN9/+
あーあとjar作ってもいいし

458デフォルトの名無しさん2017/07/26(水) 11:40:00.85ID:VR8TYjgB
できました!どうもありがとうございます

459デフォルトの名無しさん2017/07/27(木) 08:44:41.76ID:ol3Ji14g
KotlinがAndroid Studio公式サポートになって悔しい、ムキー
ってなるのはGoMobileユーザくらいか?実在するか分からんレベルな実用性だけども

460デフォルトの名無しさん2017/07/27(木) 09:33:07.79ID:Spup3DD1
その件で主に煽られてるのは主にScalaユーザーじゃね
彼ら自身はこれまでScalaの筋の悪さと付き合ってきて、なぜKotlinなのかをある意味一番よく理解してるから
反発する奴は少ない印象だけど

461デフォルトの名無しさん2017/07/27(木) 09:49:55.47ID:ol3Ji14g
Scalaって今は亡きJ2EE Servletに対抗する化石ソリューションでKotlinと全く関係ないんじゃないの
流石にあれは関係ないから反発も何もないと思うぞ、関係を探すなら同じJVM言語ってくらいか?

462デフォルトの名無しさん2017/07/27(木) 22:48:26.51ID:q/d1LfH4
実際にScalaでAndroidアプリ作ってた奴も居るし、Androidが出るまではJVM言語はおろかJavaすらあんまり積極的に使われてなかったしな
もともとKotlinよりはScalaの方が有名だったし、JVM言語としては悔しいだろうよ

463デフォルトの名無しさん2017/07/27(木) 22:52:33.46ID:qe1/bFe6
scalaよりkotlinが優れてるところなんてないやろ

464デフォルトの名無しさん2017/07/27(木) 23:36:19.26ID:ZxLGu3dd
javaなんて覚えられそうにないからkotlin学習しようと思ってるけど
記述量が減るのは優れているとは言えませんかセニョール

465デフォルトの名無しさん2017/07/27(木) 23:57:49.40ID:0y0CpLqK
小さなソースコードが高レベル言語の目的であり、力がその目的をどれだけうまく達成できるかというものなら、
プログラミング言語の力を測るには、それがプログラムをどれだけ小さくできるかを見ればよいということになる。

逆に、言語がプログラムを小さくしないのなら、それはプログラミング言語の役割をちゃんと果たしていないということだ。
切れないナイフとか、読めない印刷とかと同じだ。

ってポールが言ってた

466デフォルトの名無しさん2017/07/28(金) 05:37:58.09ID:H2JBSSoH
>>462
そりゃScalaはサーバサイドJavaにおいて歴史があって、組み込みJavaはAndroidが出る前は落ち目だったからだろ
お前のレスはKotlinユーザは全く別の土俵のScalaにコンプレックスを持ってんだなって感想しか出ないぞ

467デフォルトの名無しさん2017/07/28(金) 13:00:03.02ID:QPanRF+L
listをfor文で回す処理を書いてるんですが、
for(data in some_data?.datas!!) {
}
ってなって、datasの後の!!を消したいんですがどうするべきなんでしょうか

468デフォルトの名無しさん2017/07/28(金) 13:39:12.54ID:k8WFShoV
some_data?.datas?.forEach { data ->
}

こうかな

469デフォルトの名無しさん2017/07/28(金) 13:48:48.64ID:QPanRF+L
>>468
できました!ありがとうございました!

470デフォルトの名無しさん2017/07/28(金) 21:34:18.74ID:8b7/0WjD
>>466
悔しいのうw悔しいのうwww

471デフォルトの名無しさん2017/07/28(金) 21:54:39.65ID:GOfdf3yM
Javaに挫折したPHPの経験しかない初心者なんですけど
kotlinの勉強する場合の王道の本を教えてください

472デフォルトの名無しさん2017/07/28(金) 22:02:07.02ID:PUrhlE/b
>>471
KotlinはJavaをマスターしてる人がちょっと便利なJavaとして齧るもので、基本的にWebで十分
まずはJavaをマスターしてきなさい

473デフォルトの名無しさん2017/07/28(金) 22:17:54.83ID:zVVm7Ell
なんか勘違いしてるみたいだけど、そもそもKotlinはJavaに沢山の機能が足されていてJavaよりずっと複雑で難解な言語だぞ。
敷居の低い言語というイメージがあるのは、Javaができる人にとってストレスなく入れる言語であり、プログラミング自体の初心者がほぼ皆無だから。
Javaを学べばそれは全てKotlinでそのまま活かせるんだから、幻想は捨ててまずJavaやったほうがいい。

474デフォルトの名無しさん2017/07/28(金) 22:23:58.60ID:z1qsdhOb
本などで勉強しようとするから挫折する
言語を身に付けるにはコードを書いて読む以外に道はない

475スッキリ厨2017/07/28(金) 23:13:12.64ID:wSdfWqng
まずこの本で、オブジェクト指向をみっちり学ぶ
1. スッキリわかる Java入門 第2版、2014

2. たのしいRuby 第5版、2016
3. Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

この順番が最短。
2を省くと、関数型プログラミングが分からないので、必要

476デフォルトの名無しさん2017/07/29(土) 00:10:16.43ID:W96Wekxi
AndroidStudioでJavaコードをKotlinに変換する機能を使ってKotlinのコードを生成して内容を見てると分かった気になってくる

477デフォルトの名無しさん2017/07/29(土) 00:50:30.28ID:DIZfrj77
むかーしjavaをちょっとやってたけど
そんなに癖がない言語だよねjava自体は。
必ずクラスを挟まないといけないから無駄に書くコードが多いくらいだよね。そんな認識の人間ならkotlin
触り始められます?

478デフォルトの名無しさん2017/07/29(土) 03:36:29.97ID:W96Wekxi
KotlinはどちらかというとJavaよりもC#に似ている

479デフォルトの名無しさん2017/07/29(土) 07:41:06.02ID:sH/xP+7Q
ScalaはKotlinの発展を悔しがるくらいに類似性があるらしいからScalaをやったことあると尚良し
結局どこに悔しがる要素があるのかサッパリ分からんかったけど

480デフォルトの名無しさん2017/07/29(土) 12:46:08.39ID:DY1QEEX5
javaアンチパターンとkotlinベストプラクティスのセットって、どっかに無いの?

481デフォルトの名無しさん2017/07/29(土) 13:01:26.70ID:JySrTbDn
Kotlin自体に関しては、他の現代的で使いでのあるプログラミング言語と比較して何か特別に学びにくいということはない
じゃあどこに壁があるのかというと
・公式の説明やマニュアルですら「Javaでいうところの○○」「動作詳細は以下のJavaプログラムを参照」のようにJavaの習熟者を対象にしている
・現状唯一の日本語本であるスタートブックすらJavaである程度の規模のプログラムを組んだ経験を前提としている
・そんな人たちが作る公開ライブラリはもちろんJavaの(類似ライブラリの)知識が前提の用法・動作説明である
というようなあたりにある
別にこれが非難すべきものだとは全く考えないのだが(これらを部外者に解説しようとすると何冊分ものJava基礎と応用を自前でゼロから解説する羽目になるため)、
単に想定対象者以外には苦難の道であるよとは伝えておきたい
「英語で書かれたマニュアルしかないから英語読めないと辛いよ」と同じような感じで
「Javaで書かれたマニュアルしかないからJavaできないと辛いよ」というやつだ

482デフォルトの名無しさん2017/07/29(土) 13:13:06.22ID:VZ2r/0rx
解説がJavaだけでなく全体的にC#/ES6(&TypeScript)/Scalaあたりの「C+F系」の経験者を意識してるのも初学者には優しくないポイントだろうな
その辺の経験がある人だとKotlinは非常に素直で分かりやすくて
資料も経験者向けに要点を押さえて作ってあって手早く学べる、とても敷居の低い言語なんだけどね

483デフォルトの名無しさん2017/07/29(土) 13:59:26.36ID:7KFbni30
初学者向きではないってのはネックですな

484デフォルトの名無しさん2017/07/29(土) 16:36:34.64ID:U9LihKmk
>>71
ガイジ晒しage

485デフォルトの名無しさん2017/07/29(土) 17:17:33.51ID:W96Wekxi
Null安全型はいいよね

4864712017/07/29(土) 20:15:51.81ID:DdYvAide
2ちゃんのjavaスレが荒れててあんまり回答貰えなかったからkotlin選んだようなものなんですが
心を入れ替えてjavaから勉強します
先輩方どうもありがとう

487デフォルトの名無しさん2017/07/29(土) 20:26:38.68ID:DIZfrj77
他の言語に精通してたらjavaって何か勉強必要な言語?
interfaceとかわかってればいいんでしょ?

488デフォルトの名無しさん2017/07/29(土) 20:43:20.90ID:W96Wekxi
ライブラリ関係とか周辺知識も必要やな

489デフォルトの名無しさん2017/07/29(土) 21:30:26.28ID:c4yh7S8Z
Kotlinに限らないけど今の言語を使う上ではHaskell界隈由来のflatMapとかも理解しておいた方がいい

別言語のだけど図解部分は支障無いから貼っておく
https://www.slideshare.net/ksc1213/swiftmonad

490デフォルトの名無しさん2017/07/29(土) 22:18:06.96ID:CGKorK5y
むしろ周辺知識の方が覚える事膨大で困る

491デフォルトの名無しさん2017/07/29(土) 22:19:42.45ID:qR/5D+lk
>>489
haskell由来?www

492デフォルトの名無しさん2017/07/29(土) 22:34:22.42ID:DIZfrj77
>>488
ライブラリ系の学習って遅延学習じゃ駄目なの?

493デフォルトの名無しさん2017/07/29(土) 22:37:08.86ID:qR/5D+lk
>>492
いいよ

494デフォルトの名無しさん2017/07/29(土) 23:53:54.93ID:c4yh7S8Z
>>491
何由来だと思ってるの?

495デフォルトの名無しさん2017/07/30(日) 00:04:10.80ID:PpFa/iNU
その手の奴はだいたいLisp由来とか言っとけば当たる

496デフォルトの名無しさん2017/07/30(日) 09:16:23.60ID:AatiOL5G
>>487
主要言語の「Effective 何々」という本を読めば、わかるけど、
すべての言語でほぼ同じ

本では、equals, hashCode, toString の三種の神器を、
最初にオーバーライドしましょうって書いてあるけど、

Kotlin では、データクラスと言って、最初から用意されている

497デフォルトの名無しさん2017/07/30(日) 10:13:47.62ID:1EcJb2Jm
またお前か
ミュータブルなクラスでequalsやhashCodeをオーバーライドするのは多くの場合不適切

4982017/07/30(日) 15:50:13.09ID:P5Qwr2jW
Haskell大人気だな。
ただのflattenとmapで、ほんとにlispの頃からある。

499デフォルトの名無しさん2017/07/30(日) 18:11:16.75ID:X+REAxPs
型システムと共にMonadやFunctorとして整理された経緯を知らないと
そう思うのも無理は無い
Lispやさらに前段の数学も由来として合ってはいるが
関数単体で導入されたわけでなく包括的な概念で導入されている

5002017/07/30(日) 18:24:32.50ID:P5Qwr2jW
包括的な概念で導入された、って、関数型言語なら当たり前の概念を集めて来たって話で、
Haskellで知った、って話をドヤ顔されても、って話なんじゃないの?

501デフォルトの名無しさん2017/07/30(日) 22:02:52.21ID:4pngWMeM
Javaは(意外と)シンブルな言語なんだから、3言語ぐらい精通してる人ならばkotlinなんて難しくないよ。
Javaをマスターしてないとって思う人もいるみたいだけど、Javaの持ってる要素なんて、プログラミングの様々な要素からしたらそんなに多くないから大丈夫だよ

502デフォルトの名無しさん2017/07/30(日) 22:16:46.98ID:W7NHR4pI
>>501
良かった。
typeScriptとswift2とobjcとgo
が使えてる俺はなんの問題もなく使いこなせるって事だね?

503デフォルトの名無しさん2017/07/30(日) 22:18:14.70ID:sGCf83rH
CommonLispやC++に比べれば屁でもない

504デフォルトの名無しさん2017/07/31(月) 08:02:41.90ID:IjzZ4ZfD
>>500
>概念を集めて来たって話
是非ともMonadやFunctorとして整理された経緯を調べてみてくれな

505デフォルトの名無しさん2017/07/31(月) 14:27:59.07ID:luO5NyKL
elixirのパターンマッチに感動したんだけど、バイナリ列にパターンマッチングできるんでバイナリデコーダが簡単にできそうなんですが
kotlinもそういうことできます?

5062017/07/31(月) 18:32:19.26ID:/DHTAviI
>>504
知ってるよ。そもそも物理屋、工学屋は圏論自体から入っとる。

507デフォルトの名無しさん2017/08/01(火) 00:27:55.71ID:PARHYe6N
>>481だけがわりと正確な物言いしてるが「解説の大部分がJavaプログラムに依存してる」ことが学習上の問題
自然言語でほとんど書いてないからJavaの動作を斟酌して理解しないといけないのだ
時間と人手が解決する問題ではあるが、今から学びたい人にはあんまり嬉しくなかろうな

理解に必要なのはJavaの文法そのものではなくJavaの個々の動作と実装のされ方なのでJava使ったことない人はしばらく戻ってこれないぞ
ただ、遠回りだけど近道なので頑張ってくれ

508デフォルトの名無しさん2017/08/01(火) 01:54:59.02ID:sayqMREC
>>502

>>475
の順番に読めば、OK

509デフォルトの名無しさん2017/08/01(火) 02:05:24.99ID:A0OBZNC2
>>475
rubyみたいなオワコン勧めるなボケ

510デフォルトの名無しさん2017/08/01(火) 02:07:40.68ID:A0OBZNC2
kotlinってアンチパターンすぎる。
純粋な実装を隠蔽するんだから。

511デフォルトの名無しさん2017/08/01(火) 03:56:21.19ID:sayqMREC
>>505
Byte Stream に変換して、その中から探せば?

512デフォルトの名無しさん2017/08/01(火) 09:50:52.12ID:5VpZIsuu
kotlinやってみたくなったけど
入門者向けの情報がjava前提の物ばかりなので
javaやり始めました

で、思ったんだけど
javaって言語仕様以外の部分で覚えなきゃならない事多すぎ
kotlin入門者向けのライトなjava入門の情報が欲しい今日この頃

513デフォルトの名無しさん2017/08/01(火) 14:33:06.94ID:bOmdPaNn
何はともあれHello worldよ
色々丸コピでもいいから手持ちのAndroid端末上に画面を出す

そこで登場したよく分からないものを全てググって
その後はやりたいことをベースに調べていけばいい
本読むのはその後でも

514デフォルトの名無しさん2017/08/01(火) 19:23:29.20ID:A6tuVNB3
JavaとKotlinなんて文法以外にさほど違いがないから、覚えることが多いことに変わりない罠

515デフォルトの名無しさん2017/08/01(火) 19:34:51.60ID:HNVJVpAf
覚えるって発想がよくわからない
調べたらいいと思う

5162017/08/01(火) 20:43:30.74ID:ps+Dq31M
>>510
案外bytecodeはjavacより賢いと思う。
kotlin nativeにも期待たし、隠蔽ってのはそこまで深く考えんで良いのでは?

あんまり隠蔽と言い出すと、アセンブラ書くしか無くなる。

517デフォルトの名無しさん2017/08/01(火) 23:16:53.17ID:NbT5I2SP
(´・ω・`)これって、コーリンって読むらしいね

518デフォルトの名無しさん2017/08/01(火) 23:25:56.46ID:WvvXqR8d
じゃあそう読めばいいんじゃない?
伝わらないと思うけど

519デフォルトの名無しさん2017/08/01(火) 23:56:00.53ID:NbT5I2SP
(´・ω・`)いまね、wiki見たらことりんってかいてたー
さっきTwitterみてたらコーリンってよむってウソ情報ながれてたのー
すいません

520デフォルトの名無しさん2017/08/02(水) 00:30:22.22ID:Mrcj6vwl
ここやTwitterのような有象無象発信の情報は一度調べることをオススメする

1次情報や文責のある情報なら話は別だけどね

521デフォルトの名無しさん2017/08/03(木) 02:14:23.09ID:dP8PygxN
コトリチャンって読むんやで

522デフォルトの名無しさん2017/08/04(金) 02:49:08.32ID:C9CuhslM
この言語でiosアプリも開発できるの?
ならSwiftもJavaもいらなくね?

523デフォルトの名無しさん2017/08/05(土) 22:07:19.73ID:q6QkhQr1
初心者向けの定番本教えて

524デフォルトの名無しさん2017/08/05(土) 22:40:45.42ID:su6WsJEB
まだ出てないだろ?

525デフォルトの名無しさん2017/08/05(土) 22:41:57.37ID:Zex8il51
>>475
に書いてある

定番もクソも、Kotlin の本は、ユーザーグループ代表の本だけ

526デフォルトの名無しさん2017/08/05(土) 23:47:57.71ID:1Q3JuekX
電子書籍でも出てるよな

527デフォルトの名無しさん2017/08/06(日) 08:37:01.72ID:exhLY8Mw
kotlin自体はそんなに変な仕様じゃないから
androidとの組み合わせで変わるとこが知りたい。
基本的にはimportはjavaの時と同じなの?
andrid全般の学習をする時にjavaで書かれたコードが単純にkotlinのコードに変換すれば動くってことでいいのかな。

528デフォルトの名無しさん2017/08/06(日) 11:16:41.83ID:8894pkNA
その認識だと先にKotlinを数日みっちり勉強したほうが早く理解できる気がするぞ

529デフォルトの名無しさん2017/08/06(日) 11:37:11.88ID:exhLY8Mw
>>528
どうなんだろね。単純にjavaのコードの部分を変換してみて
なんで動かないのか検証したほうが早い気もする(遅延学習)
androidのチュートリアル自体はjavaで書かれてるものが大半だし。

530デフォルトの名無しさん2017/08/15(火) 15:45:25.89ID:qX6sO+hu
Swift, Clang/LLVMの発明者のラットナー がKotlinの開発に参加するってマジ?

531デフォルトの名無しさん2017/08/15(火) 19:45:47.28ID:wxesOBVY
IntellijにKotlinのREPL付いていて便利だろうと思ったけど
REPLは入力途中でけっこう固まってしまう。
あとprintlinが改行しなかったり、まだ不安定なのかな。

532デフォルトの名無しさん2017/08/15(火) 20:57:50.46ID:wYSD0kSw

533デフォルトの名無しさん2017/08/16(水) 15:09:19.71ID:VrVIPOAA
>>530
GoogleでAI関連の部署に入ったみたいだぞ?

534デフォルトの名無しさん2017/08/17(木) 12:41:21.77ID:Am4yUvQo
>>533
マジかー、まぁ、Googleに入ったならSwiftよりはKotlinよりか
Alloに関わるなら無いこともない?

535デフォルトの名無しさん2017/08/17(木) 13:05:10.32ID:5mQoD0+b
>>530
こマ?

536デフォルトの名無しさん2017/08/17(木) 14:10:07.16ID:P168fr1d
Kotlinに関わるならJetBrainsに行くやろ
あるいはGoogleのなかでも特にBrainsチームに入る意味がない
本人がAIやるって言ってんだからそれ以上でもそれ以下でもない

537デフォルトの名無しさん2017/08/17(木) 17:50:59.53ID:8HfS9wXv
SwiftとKotlin/Nativeはコンセプトや立ち位置が同じだからワンチャンあるで
GoMobileもAndroid Studio C/C++ NDK Pluginも死に体だから、Android + Kotlin/Nativeに期待したいね

538デフォルトの名無しさん2017/08/17(木) 20:15:47.27ID:uHinuZ07
これかな

Apple「Swift」のクリス・ラトナー氏、Teslaを経てGoogle Brain入り
ttp://www.itmedia.co.jp/enterprise/articles/1708/15/news043.html

539デフォルトの名無しさん2017/08/18(金) 06:36:54.32ID:pZRlwMOC
騒ぐことか?
たかがswift()の開発者なんだろ?

540デフォルトの名無しさん2017/08/18(金) 07:47:10.05ID:ijb+FWu4
教祖だからしゃーない

541デフォルトの名無しさん2017/08/18(金) 10:12:07.26ID:vRHq3miw
Swiftの開発者だけど、Kotlin/Nativeで使うLLVMの開発者でもあるんだよなぁ

Googleへの転職も短期らしいしApple(Swift)からJetBrains(Kotlin)にすぐに転職したら
倫理的にAppleからクレームが来るのは当然だしお茶濁しかもね
KotlinにLLVMのノウハウ投入してくれることを期待しようじゃないの

542デフォルトの名無しさん2017/08/18(金) 10:14:49.37ID:ReVsiHRv
>>541
brainだから全く関係ないが

543デフォルトの名無しさん2017/08/18(金) 10:15:50.49ID:FWE4C9Nk
希望的観測

544デフォルトの名無しさん2017/08/18(金) 10:35:41.64ID:+X0+m8dy
googleって20%ルールってまだあるんでしょ?
その20%の中でkotlinに手を出すのは自由なんじゃないの。
ただ、swiftの言語仕様の変遷を見るにkotlinの言語仕様に口出したら
とんでもないことになりそう

545デフォルトの名無しさん2017/08/18(金) 10:42:26.32ID:bO8OoBBY
>>544
会社が大きくなって死んだよ

546デフォルトの名無しさん2017/08/18(金) 11:43:17.65ID:a7R6z0dh
3秒ルールはないのかな

547デフォルトの名無しさん2017/08/19(土) 05:05:31.91ID:pqlrWbIe
C#から来たけど、C#ではヌル安全もコンストラクタとメンバ定義が一体になってるやつも一向に入らないからKotlinの方がいいと思うようになったね
IDEが少しモッサリしてるのとコンパイルが遅いのが難点だけどね
SwiftはGCがないから論外じゃない?

548デフォルトの名無しさん2017/08/19(土) 13:02:36.70ID:i5Fk1Iv8
>>547
GCないから論外ってそれRustに向かって言えるの?

549デフォルトの名無しさん2017/08/19(土) 13:06:40.00ID:s/Tmv27m
今どきガベコレは欲しいな

550デフォルトの名無しさん2017/08/19(土) 13:13:50.07ID:yjxWeDHX
Kotlin/Native PreviewはGCじゃなくARCなんだけど?
そして、GCがベストというわけじゃないし今後はどうするかは知らんとも言ってる

551デフォルトの名無しさん2017/08/19(土) 13:17:42.75ID:pqlrWbIe
>>548
Rustはスゴイよな
使いこなせればあれが理想なんだろうな

552デフォルトの名無しさん2017/08/19(土) 14:47:09.74ID:a8QxREVh
rustはどうなんだろうね。
いずれ学習したい言語ではあるけど、今のところ活躍場所がないからなぁ。

553デフォルトの名無しさん2017/08/19(土) 14:56:51.77ID:t3rqEI6U
Kotlin勉強してるけどベターJavaとしてのScalaは相当辛いなあ。
Scalaは何目指せばいいんだろ

554デフォルトの名無しさん2017/08/19(土) 15:51:07.03ID:+F5+cWTJ
Scalaって当時のサーバサイドJava(J2EE)の代替として出たものでしょ
サーバ上で動かすJavaVMに既存資産(ソフト&人員)の再利用以外の価値を見出せるなら使えるんじゃないの

555デフォルトの名無しさん2017/08/19(土) 17:29:36.37ID:9KU7ntuJ
Java EE が、大げさすぎるから、
2001年、Struts
2004年、Ruby の、Rails
2006年、Groovy の、Grails
2006年、Scala の、Play

今は、Kotlin が出たけど、型を書くのが面倒くさいから、
型を書かない、Ruby, Groovy は残るだろう

556デフォルトの名無しさん2017/08/19(土) 22:54:27.97ID:a8QxREVh
>>555
javaばっか触ってる人は型がない方が素敵って思ってるのかね。
俺はTypescriptでかなり幸せだけど。確かにjsよりタイプ量が増えるけど
それ以上に安心感がパない

557デフォルトの名無しさん2017/08/19(土) 23:01:53.07ID:C7hMtZt2
型がないのと型を書かないですむのを一緒にするなし

558デフォルトの名無しさん2017/08/19(土) 23:02:14.25ID:p9Z5WLWG
型があろうがなかろうがどうせバグはテストで潰すからな
js界隈にはテスト文化がないのか

559デフォルトの名無しさん2017/08/19(土) 23:50:54.57ID:3LWi1RRc
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は70万払ってる) 客:短期延長していい?
5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

560デフォルトの名無しさん2017/08/20(日) 00:15:05.28ID:kaazzj5o
>>555
Railsより長く使われてるTomcat(Servlet)とPHPを忘れてんよ
どっちもRailsに淘汰されるかと思ったらなんだかんだで未だに生き残ってやがるから困る

テスト云々より動的型付け(TypeScript含む)は実行時速度がなぁ
動的型付け+型チェックは苦肉の策で、静的型付け+型推論が今の流行りよな
よってKotlinは素晴らしい

561デフォルトの名無しさん2017/08/20(日) 00:37:21.64ID:C3zH0fui
ひところJIETがネガキャンされてて最近は逆に急にこのありさま

どこに首根っこつかまれたんだ

562デフォルトの名無しさん2017/08/20(日) 19:22:23.16ID:X7HXBqNm
Android Studio 2.3.3で新規プロジェクト作るとKotlin変換後syncするとなんか赤字のIDEエラーが出るわ
AssertionError: Resolver for 'completion/highlighting in org.jetbrains.kotlin.idea.caches.resolve.NotUnderContentRootModuleInfo@1f51170a for files MainActivity.kt
for platform JVM' does not know how to resolve ModuleProductionSourceInfo(module=Module: 'app')
なんか設定間違ってるのだろうか…

563デフォルトの名無しさん2017/08/20(日) 20:28:01.43ID:X7HXBqNm
ぬーん原因らしきものわかった
「Javaをktファイルに変換する(Ctrl+Shift+Alt+k)」は/app/src/main/javaを選択した状態でやったほうがいいらしい
下手に/appとかプロジェクトルート選択した状態で変換すると余計なのまでkt化されてIDEサポート動作に支障が出るようだ
こんなミスする人そんなにいないと思うけど数文字打つたびIDEエラー出まくるという人は気をつけてみてくれ

564デフォルトの名無しさん2017/08/20(日) 21:38:37.79ID:X7HXBqNm
そうでもなかった
IlligalStateExcptionは別枠らしい
Failed to create expression from text: '<ERROR FUNCTION>'
ターミナルから起動すると標準エラー出力にスタックトレースが出ることがわかったのだが追跡めんどいな
前のと違ってこのエラー出ても補完とかは動くからもう無視したいした

565デフォルトの名無しさん2017/08/22(火) 01:05:28.57ID:hpqXPKX7
ちょっと関係ない話だがKotlinの入門書の最初に説明用のサンプルとして出てきた最大公約数を求める関数のアルゴリズムに驚いた
ユークリッドの互除法なんてものがあることを今まで知らなかった
証明見てもまだよくわからん
よくこんなことに気付いたな
紀元前300年の数学者すげー

566デフォルトの名無しさん2017/08/22(火) 01:14:54.99ID:tq0/mRJT
ユークリッドの互除法って有名で
プログラミングの題材としてもよく出てくるけど
紀元前に生まれてたら自力で思いつかないとは思う

567デフォルトの名無しさん2017/08/22(火) 01:47:52.53ID:hpqXPKX7
有名だったのか。確かに再帰処理の題材としては丁度いいねこれ。

568デフォルトの名無しさん2017/08/22(火) 02:31:08.97ID:tq0/mRJT
Kotlinなんて最新言語じゃなくて
何十年も前のBASICやCの頃から
互除法の例題はあったよ

569デフォルトの名無しさん2017/08/22(火) 02:37:43.49ID:i38qdLYb
正直あれは脚注でもなんでもいいから一言解説がついててもいいと思う
どこかで一度でもやったことさえあれば一発で見当がつくが
そうでなきゃ何がなんだかさっぱりわからんはずだ

570デフォルトの名無しさん2017/08/22(火) 02:45:00.72ID:NodutCvj
別にユークリッドの互除法を教えるのが目的じゃないからなあ

571デフォルトの名無しさん2017/08/22(火) 02:49:09.46ID:tq0/mRJT
Nクイーンとかもそうだけど
使い回されてるアルゴリズムを載せるのって
他言語でもう読み書きしたことがある人が
「この言語だとどう書くの?」ってのを
確認するためにあるようなものだからね

572デフォルトの名無しさん2017/08/22(火) 12:09:02.60ID:IWEK7hu0
「※ユークリッドの互除法」と一言書いてあるだけで100人単位で手間が救われたはずではある
もともとページ数ギリギリな書籍だから難しいのかもしれんが

573デフォルトの名無しさん2017/08/22(火) 12:48:19.23ID:AcxdB0/s
ま、しかし、少なくとも計算に関しては数学知ってるか否かでかなりプログラムが変わって物凄く効率化できる可能性あるな。

574デフォルトの名無しさん2017/08/22(火) 12:53:42.85ID:NodutCvj
大体仕事で再起処理とか使わないし

575デフォルトの名無しさん2017/08/22(火) 14:14:28.90ID:IVfvVmbm
ユークリッドの互除法は、中学生レベルだろ。
知らなかったら、最大公約数を求められない

プログラムの本で、素数を求めるのに、√N まで、求めれば良いのに、
それを知らない著者もいる

N = 1,000 なら、32 まで試せば良いのに、1,000 まで試してる著者もいるw

576デフォルトの名無しさん2017/08/22(火) 14:21:03.39ID:IWEK7hu0
>>575
ユークリッドの互除法は4年前から高校の数学Aに記載されるようになった
それ以前では教育課程では学ばない

577デフォルトの名無しさん2017/08/22(火) 16:24:42.17ID:ZXHHpxC4
>>574
使うこともあるよ。使った方が簡単になる場合。

こないだやったのは(Kotlinではないが)XMLの階層構造をRDBの表に入れるとかそこから戻すとかの処理。
XMLって入れ子になってるから再帰で書いた方が楽だ。というか再帰使わないと複雑怪奇なプログラムになるんじゃないか?

578デフォルトの名無しさん2017/08/24(木) 02:30:54.84ID:YbxxOGZ9
互除法は繰り返しでもわりと自然にコーディングできるが、XMLとかの木構造の処理は再帰が自然だよね。

579デフォルトの名無しさん2017/08/31(木) 23:08:32.05ID:67nUNCV4
operator キーワードの意味が良く分からないんですがこれって何のために必要なんでしょうか

580デフォルトの名無しさん2017/08/31(木) 23:18:11.21ID:pWykFKbQ
>>579
operatorが書かれてない場合はそういう名前の普通のメソッド定義だとみなされる
operatorが書かれてる場合はそれに対応する記号の演算子のメソッド定義だとみなされる

581デフォルトの名無しさん2017/09/01(金) 15:48:55.97ID:yBuOlbxF
ギアパワーの組み合わせで性能が見れるアプリを作ってみようかと思うんだが、
どういう機能があったら嬉しいかね
単に57表記が見れるだけじゃ意味ないよねえ

582デフォルトの名無しさん2017/09/01(金) 16:36:37.15ID:xNWoFI1L
それはプログラミング言語の手法の話ではないと思うよ
そのアプリを使うであろう人たちに直接聞いてみてはいかがかな

583デフォルトの名無しさん2017/09/07(木) 03:36:37.46ID:Ua+ABG0j
使う

584デフォルトの名無しさん2017/09/07(木) 03:43:26.98ID:Ua+ABG0j
ミスった

引数がIntのメソッドにByteとかShortとかつっこみたいときの賢い方法ってない?
いちいち.toInt()付けるのアホらしくて
…いっそのこと全部Intにしてしまうか

585デフォルトの名無しさん2017/09/07(木) 07:38:14.55ID:hBpoFfSg
java使えば?

586デフォルトの名無しさん2017/09/07(木) 07:43:21.26ID:dJGmlTPD
val b:Byte = 100
f(b+0)

587デフォルトの名無しさん2017/09/07(木) 18:23:41.25ID:dmOyOqaZ
「引数をとりあえずIntにして当該メソッドを呼ぶ」というメソッドを作ってそっちを使うようにする
具体的にどういうことをしたいときなのか言うと案外別アプローチあるやもしれず

588デフォルトの名無しさん2017/09/07(木) 18:50:45.76ID:dJGmlTPD
拡張プロパティで短縮

val Byte.i:Int get() = toInt()

fun f(b:Int) {
println(b)
}

fun test() {
val b:Byte = 100
f(b.i)
}

589デフォルトの名無しさん2017/09/07(木) 21:28:09.40ID:wVi6dnoF
>>586は何気にbytecodeにコンパイルすると最速処理に最適化されるのではと悩む
val b:Byteはクラス型じゃなくプリミティブ型intに置換されて、+0は無意味な処理として削除される的なね

toIntoをメソッドとしてコールするようなオーバーヘッドは無いに越したことはないよねー

590デフォルトの名無しさん2017/09/07(木) 21:37:35.68ID:10GmZssK
class MainActivity : AppCompatActivity() {
  fun func(value: Int) : String {
  }
}

: の前って空白をいれるべきなんでしょうか
入れないでおくべきなんでしょうか
クラスの継承の時だけ入れるべきなんでしょうか

591デフォルトの名無しさん2017/09/07(木) 21:52:37.07ID:La56k81V
>>590
https://kotlinlang.org/docs/reference/coding-conventions.html#colon

interface Foo<out T : Any> : Bar {
  fun foo(a: Int): T
}

これ以外の書き方は公式規約に則らないスタイルとなる
むろんそれを押し通してもよいが

592デフォルトの名無しさん2017/09/08(金) 10:15:45.38ID:IL9yY2pX
関数定義の時はコロン前の空白無しって感じか

593デフォルトの名無しさん2017/09/09(土) 05:04:55.71ID:/lYAOhx7
>>589
それはオーバーヘッドが出ないように最適化されるのかどうかに掛かっている。

594デフォルトの名無しさん2017/09/09(土) 18:18:44.00ID:8E3FMuHj
>>593
後から思い直したけど、メソッドfがByteクラスというクラス型を受け取る以上
val b:Byte = 100
b+0
までをプリミティブ型に最適化する超絶賢いコンパイル処理がなされても
f(100)
でintからByteへのインスタンス生成が必要だからJVM上の最小限コストにはならぬ
小賢しく汚いコードの割に最大効果が得られるわけでもないから微妙だわ

595デフォルトの名無しさん2017/09/09(土) 21:51:29.93ID:fgzL7F9C
>>594
f(100)と書いたならコンパイル時にインスタンス作ってコンスタントプールに入れられるから実行時の無駄はないのでは?

596デフォルトの名無しさん2017/09/09(土) 23:45:06.02ID:8E3FMuHj
# メソッドfが受け取るのはByteじゃなくIntだったorz

>>595
プリミティブ型byte/int 100はコンスタントプールに乗っかるけど
クラス型Byte/Int 100はコンスタントプールには乗っからないから
メソッドf呼び出し時のint to Intのインスタンス化コストは回避できてなくね?
メソッドfが受ける型をJITやクラスローダーが書き換えないと無理ぽ

どうやったってJava相当まで最適化できないんだから
全部Intにするなり拡張プロパティ使うなり、好きなように実装して良いと思った

597デフォルトの名無しさん2017/09/10(日) 01:33:16.68ID:3lFSiHDa
乗らないか。じゃあダメだな。
まあでもそこまで最適化するようなコンパイラができればできるということでもあるので何とも言えんな。

それとプログラマが最適化を考慮してコード書くってのは、まるで昔のC言語のようで、かなり変な状態だとも思える。
現実問題としては効率を上げるためにはそうせざるを得ないが、本来であればそれはコンパイラがやるべき仕事であり
人間がそういうことから解放されないのはまだ技術力が足りないからだ。

598デフォルトの名無しさん2017/09/10(日) 11:34:35.85ID:tQxxVHdc
100は例なだけでtoInt云々の文脈では定数でなく変数でしょ

KotlinのByte/Intはオブジェクト型が必要なとき以外はプリミティブ型になる
さらにJVMのスタック上でbyteはintサイズで置かれてる
 ※例えば引数の2つのbyte型の加算は「iloadでint変数として読み込み x2」「int加算」「i2bでbyte表現に切り捨て」「istoreでintとして保管」になる

なのでtoIntはバイトコードレベルではメソッドコールどころか変換命令すら無く消滅する
+0や拡張プロパティはバイトコードに残るけど多分Dalvik JITやARTが消すんじゃないかな

599デフォルトの名無しさん2017/09/10(日) 23:39:27.48ID:Aa/cPztt
0〜127 なら、最初から、EXE の静的データ領域に入っているから、

インスタンスも作られないから、何も考えなくてよい

600デフォルトの名無しさん2017/09/11(月) 01:06:11.35ID:TB0SwtSd
やっぱそれなりに最適化されるのでほとんど考えなくて良いということかな

601デフォルトの名無しさん2017/09/11(月) 07:19:36.53ID:RCvV23l8
Javaほどではないが、それなりには最適化されるから考えなくて良いよ

602デフォルトの名無しさん2017/09/11(月) 09:40:07.36ID:vJ3AiMg+
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK)  プログラマーズ

603デフォルトの名無しさん2017/09/14(木) 14:48:20.23ID:ZrYTexa1
Kotlinを使えば使うほど、Kotolinってええ言語やなと思う
サーバーサイドでも使われているようだし、この言語はやる価値があるね

604デフォルトの名無しさん2017/09/14(木) 14:51:31.85ID:ZrYTexa1
Kotolinのデメリットって何かある?
全然見当たらないんだけど

605デフォルトの名無しさん2017/09/14(木) 15:24:33.82ID:fvkkQJHv
>>604
マクロがない

606デフォルトの名無しさん2017/09/14(木) 15:35:41.46ID:EfU1+ylv
>>604
動的ではない

どちらも適材適所、釘にはトンカチレベルの話だが、デメリットとして挙げるなら

607デフォルトの名無しさん2017/09/14(木) 17:42:44.76ID:wsl9UgI1
>>606
ランタイム(kotlin.jar)が実行に必要

608デフォルトの名無しさん2017/09/14(木) 17:43:11.05ID:wsl9UgI1
安価間違えた、スマン

609デフォルトの名無しさん2017/09/14(木) 17:48:14.60ID:fvkkQJHv
動的言語のメリットってないだろ
型推論あるし

610デフォルトの名無しさん2017/09/15(金) 10:44:48.01ID:VHxNrIHu
>>604
javaの知識が前提

611デフォルトの名無しさん2017/09/15(金) 11:20:35.63ID:t0O3AeYk
>>604
言語自体のデメリットではないかもしれないが、
IDEの選択肢がない・開発補助ツールなどが未発達。

612デフォルトの名無しさん2017/09/15(金) 18:58:50.23ID:Tu1mqslW
>>610
コレはでかい。正直この知識を簡単に獲得する方法あるの?
kotlinからjavaの世界に入る方法を知りたい。

613デフォルトの名無しさん2017/09/15(金) 21:05:06.50ID:iYxiAtrq
そういやJavaの知識なしの人向けの入門書はまだないのかな?
なくても流行ればその内出そうだが。

614デフォルトの名無しさん2017/09/15(金) 21:11:43.49ID:pJQDrUz2
groovyよりは期待できるの?

615デフォルトの名無しさん2017/09/16(土) 07:58:31.08ID:AcW1bn43
Javaって一番メジャー言語だから
情報が溢れてると思うんだが……
マイナー言語の苦しさに比べたらはるかに楽

616デフォルトの名無しさん2017/09/16(土) 08:06:32.31ID:wHRqrpim
Javaを既に知っている者ならそうだろうな
Javaを知らずにKotlinやると、KotlinとJavaを並行して学習することになるから面倒だって話だ

617デフォルトの名無しさん2017/09/16(土) 09:13:19.33ID:dqmaxFWN
kotlinはJavaのスクリプト言語みたいな立ち位置だからな(コンパイル要るけど)
Java入門が巷に溢れているがゆえにKotlin+Javaの書籍は出しにくいかもしれん
それにしたとしても時間が解決していくではあろう

618デフォルトの名無しさん2017/09/16(土) 09:53:29.49ID:64cU0LXO
Kotlinで開発してたとして、具体的にどういうときにJavaの知識が必要になるんだろう?
JVMに関してなら「言語+実行環境」だから他の言語と変わりないし
Javadocのシグネチャくらいで困ることは無さそうだし

多分、解説書く側も「何が分からないのか分からない」状態になってるんじゃないかな

619デフォルトの名無しさん2017/09/16(土) 10:25:55.20ID:7CqADWEJ
>>607
JSもJVMもランタイムがいると思うけど、このランタイムってApache2.0ライセンスなのかな?
だとしたら、同梱した場合、表示が必要になるんだっけ?

620デフォルトの名無しさん2017/09/16(土) 10:55:31.44ID:9wmYZqGr
>>618
こういうことをJVM上でやりたいなぁって思った時に、Javaでの実装手法を調べてKotlinで読み換えるわけだろ?
その時にまずJavaの全般的な知識(文法, ライブラリ)を浅く広く手に入れる所から始まる
次に、JavaからKotlinに読み換えるために文法/ライブラリの在り様を深く理解してから適切なKotlinコードに書き下す
JavaとKotlinの生半可な知識だけでJavaコードを参考にKotlinコード書くと、汚いKotlinコードになるよね

なので、絶賛Javaを再勉強中・・・Java1.5の頃の知識で止まってるからイマドキのJavaが分からない
java.langとかNIO2とかを使ったコードをKotlinでいきなり書こうとしたら何か違う感が酷くてやめちまったよ

621デフォルトの名無しさん2017/09/16(土) 11:21:42.95ID:QlT8cqjN
他の言語を知ってれば要はリファレンスとjava特有の注意事項があればいいと思うの。
文字列組み立てにはStringBuilder使えみたいなの。

そういうの無い?

622デフォルトの名無しさん2017/09/16(土) 11:42:24.85ID:zsfdrVgC
android studioってkotlinのプロジェクトにjavaのコードを貼り付けたらkotlinに変換してくれる神機能があるから
泥開発する時にネットで拾ったjavaのコードをペタペタコピペプログラミングするだけでも勉強になる

javaもkotlinも知識皆無の状態でkotlinで泥アプリ開発に取り組んだら見様見真似で簡単なアプリ作れた
ある程度コピペしてたらjavaのこの書き方はkotlinではこう書きそうっていうのがなんとなく察せてくるからandroid studioの補完を頼りに写経したりする

javaも知らないけど新しく言語の知識学ぶなんて面倒くさいからヤダ!知識皆無だけどすぐ何か作りたい!hello wordとか練習問題みたいなの書いても面白くないからモチベーションわかない!すぐ作りたい物作りたい!って場合は
ネットのサンプルと強力なIDEの支援を頼りにコピペ写経するのが効率よさそう
(外国語ができなくても海外でしばらく生活したら知識的に習わなくてもだんだん喋れるようになる理論)

623デフォルトの名無しさん2017/09/16(土) 12:49:19.86ID:64cU0LXO
>>620
Kotlinで書かれたサンプルコードが少ないってこと?
それについては自動変換で対応するか、Kotlinが広まってサンプルが増えるのを待つしか無いか

624デフォルトの名無しさん2017/09/16(土) 12:50:15.30ID:64cU0LXO
それと思ったのはKotlin・・というよりプログラム初学者は
言語仕様、ライブラリ、プラットフォームの知識がごちゃ混ぜになってるのかも

「Java言語仕様の知識前提」の場合はデメリットだけど、後者2つはそうではないんだよね
ちゃんと切り分けて教える必要があるのかもしれない

625デフォルトの名無しさん2017/09/16(土) 15:17:58.69ID:iyhV3x2n
>>620
一々Javaで考えてからKotlinに読み替えるのではなく最初からKotlinで考えればいいのでは?それは出来ないの?

626デフォルトの名無しさん2017/09/16(土) 15:51:26.67ID:zchkTGlK
前途洋々たる人にJavaを教えたいかというとそうでもない、しかし現状kotlinにはjavaの知識がいくらか必要というジレンマ

627デフォルトの名無しさん2017/09/16(土) 17:15:31.02ID:k4zUo1jM
自動変換はマジで神機能だな

628デフォルトの名無しさん2017/09/17(日) 09:11:08.18ID:e3nYUfGU
kotlin変換はスニペット単位で変換挿入できれば初学者サポートとして文句ないんだけど
まあ高望みしても仕方ないなw

629デフォルトの名無しさん2017/09/17(日) 09:16:06.15ID:s1Tpc6AU
Kotlinを使い始めるのにJavaから始めないといけないのも高望みだから仕方ない
JVMとJava LibraryありきなんだからJavaを知らないで何が始まろうかと理解している

630デフォルトの名無しさん2017/09/17(日) 10:57:51.48ID:iGeioDqi
>>628
騙されたと思ってandroid studioでkotlinを開いてそこにjavaのスニペットをそのまま普通に貼り付けてみ

631デフォルトの名無しさん2017/09/17(日) 12:20:57.80ID:QcEs4Olk
>>628
できるぞ

632デフォルトの名無しさん2017/09/17(日) 20:10:21.20ID:881Zhju6
kotlinというかIntelliJはなにかにつけてUnresolved Referenceで発狂して真っ赤になるのを潰していかんといかん
全部自前のkotlinファイルとパッケージだけで構成すれば絶対に起こらん事象だが、そんなのは稀だ

633デフォルトの名無しさん2017/09/17(日) 20:33:40.63ID:8Aq7R6E2
>>632
あれはライブラリ作者とプラグイン作者が7割くらい悪い
提供されるテンプレートでjavaパッケージのimportの不足(しかもbuild.gradleに依存関係未記述)とか勘弁して欲しい
ていうかこれ作者のとこではどうやって動いてたんだ…

634デフォルトの名無しさん2017/09/17(日) 22:18:35.53ID:hEJjpySw
>>633
TornadoFXでえらい苦労した記憶がある
無論使うのやめた
Androidのほうがまだきちんと動くw

635デフォルトの名無しさん2017/09/18(月) 21:46:47.81ID:KEjrNeQk
昔のEclipse環境下開発みたいなトラブル起こしてんなw
libs/*.jar と .classpath をコミットしてなくて、ライブラリ実装者とライブラリ利用者で環境が合致しないとかよくあった

build.gradleで依存管理してないなら、libs/*.jar と .idea/ で管理してるんじゃないのかね
ビルドできねーよってIssue発行して、build.gradleで依存管理するように直してもらおうぜ(Kotlinと全く関係ない話題

636デフォルトの名無しさん2017/09/19(火) 01:56:04.30ID:q5GM4Sdx
TornadoFXは面白そうだなと思って手を付けた瞬間
・TornadoFXのDSL記法では思った通りに動作しないがJavaFXでは動く
・JavaFXではうまく動かないがswt直呼びでは動く
・JavaのGUIアプリケーションではあまり得意ではない
の3者が混然一体となってGUI初心者に襲いかかってきた荒野の印象しかない
GUIやるのさぼってきたツケもあるしkotlin関係ないけどな

637デフォルトの名無しさん2017/09/19(火) 02:57:40.00ID:33S+M35U
FXには手を出すなって死んだばっちゃが言ってた

638デフォルトの名無しさん2017/09/19(火) 03:13:01.72ID:NsD/KMp/
HTTPプロトコル受けるようにして、GUIはHTMLとjavascriptでブラウザ任せでやる方がいいんでね?

639デフォルトの名無しさん2017/09/19(火) 11:33:34.11ID:yNuGs4H1
とるねーどFXのDSL記法は初心者の「こうかな?これなら動くかな?」という学習の試行錯誤を念入りに潰してバグに変えるプロ
設定記述手法以外のDSLなんてまあたいていそんなもんだが
どうしてもPCでGUI欲しくてなにもわからない最初ならJavaFXにするのがよいよ

640デフォルトの名無しさん2017/09/19(火) 23:03:32.67ID:yNuGs4H1
>>630
IntelliJではできんことのほうが多いね
完動するJavaのクラスのファイルとかそういうでっかいのか意味のあるわかりやすい小さいやつとかじゃないとまず無理
それでも便利だろうという指摘はもっともだが

641デフォルトの名無しさん2017/09/20(水) 00:55:44.49ID:yi4mI7ko
tornadoFXで丸1日悩んでいたことがJavaFXでは1時間でできたなんていう笑い話が…
別にこれに限った話じゃないけど、今から何か始めたいって人は「kotlin対応新鋭フレームワーク!」みたいな宣伝には騙されずにJava製のでいいからメジャーなやつを選ぼうね
たいていkotlinでの書き方みたいなのが公開されてるからそれで充分さ

642デフォルトの名無しさん2017/09/20(水) 12:49:45.18ID:UnWC6mNR
画面はWebView(JavaScript連携)でいいよ

643デフォルトの名無しさん2017/09/21(木) 00:08:50.00ID:fijEecfV
そこそこの長さの文字列をわかりよく文字列のリストにする方法ってないですか
"ABCDE".toList()だとCharのリストになってmapとか繋げて変換がいります
"ABCDE".split("")だとなんか7つのリストになります
文字境界の正規表現を指定すればいいような気もしますが探せませんでした

644デフォルトの名無しさん2017/09/21(木) 03:27:44.93ID:AcIIQNEl
>>643
"ABCDE".split("(?=.)") ではどうか?

645デフォルトの名無しさん2017/09/21(木) 11:28:55.55ID:fijEecfV
>>> "ABCDE".split("")
[, A, B, C, D, E, ]
>>> "ABCDE".split("").size
7
>>> "ABCDE".split(Regex("(?=.)"))
[A, B, C, D, E]
おお、ありがとうです
しかしありそうでないのねStringで分けるやつ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

646デフォルトの名無しさん2017/09/21(木) 13:35:52.21ID:mLLoqbOf
>>645
"ABCDE".map { it.toString() }
これおすすめ

647デフォルトの名無しさん2017/09/21(木) 21:11:04.25ID:fijEecfV
だからそれだとStringをCharにしてからStringにするという手間がかかっ

for(int var6 = 0; var6 < var5.length(); ++var6) {
char item$iv$iv = var5.charAt(var6);
String var13 = String.valueOf(item$iv$iv);
destination$iv$iv.add(var13);
}

…ってなかった。最近の言語のコレクションのmapとかあのへんのメソッドは空気を読んでて困る(えらい)。じゃあこれにします

648デフォルトの名無しさん2017/09/23(土) 03:05:43.18ID:LuIx8rlF
Kotlinは配列というかリストになんか入れるとエラーで二度と引き出せなくなるのが嫌
何か不都合があって引き出せないのなら最初から弾いてくれ

649デフォルトの名無しさん2017/09/23(土) 06:21:39.07ID:iHkIwIdJ
意味がわからん

650デフォルトの名無しさん2017/09/23(土) 09:46:44.92ID:X9FmtUo8
つmutableListOf

651デフォルトの名無しさん2017/09/23(土) 09:47:52.09ID:X9FmtUo8
いや意味がわからんな

652デフォルトの名無しさん2017/09/23(土) 10:14:30.20ID:Fr4ObNsJ
あのへんは型とか継承とかの理解きちんとしてないとちょっと複雑なの入れたときものっそいエラーになるよ
適当に書いて適当に使ってると動くと見せかけていざというとき詰まる箇所ベスト3に入ると思う

653デフォルトの名無しさん2017/09/23(土) 10:59:53.99ID:BNc4tUhk
具体例があると話も広がりそうだけどイメージがわかない

654デフォルトの名無しさん2017/09/23(土) 13:45:04.86ID:HgJ0Nznd
コレクションって色々種類があって、
問題によって適切なクラスを選ぶべきとか言っていたくせに
mutableListはmutableListしか種類ないし、それで別に問題がないってどういうことだよ
フィールドもprivateにしてsetter, getterからアクセスしろとか言っていたくせに
プロパティアクセスは実質フィールドをpublicにしているのと変わりないじゃねえか
その他、継承は良いことだからたくさん使って活用していこうとか言っていたくせに
openをつけないと継承できなくして、実質継承は推奨しないみたいになってるのなんなん
嘘ばっかり言いやがって

655デフォルトの名無しさん2017/09/23(土) 14:17:09.35ID:8bsZ0VcP
>>652
「のっそい」って何処の方言?沢山って意味?

656デフォルトの名無しさん2017/09/23(土) 14:32:54.88ID:Ok7b72Pt
>>654
いろいろ勘違いしててどこから突っ込めばいいのやら

657デフォルトの名無しさん2017/09/23(土) 15:29:22.72ID:vuIl3Vgh
プロパティアクセスは、publicなフィールドへのアクセスと違って、
setを制限してgetだけにできるし、
setするときの値チェックなんかもできるし、
privateフィールドをsetter/getterでアクセスする利点はそのままに、
使うときの表記をシンプルにしてくれる

658デフォルトの名無しさん2017/09/23(土) 15:29:38.76ID:vuIl3Vgh
継承するよりコンポジションしてアクセスを転送する方がいいっていうのは
もうオブジェクト指向では定説

659デフォルトの名無しさん2017/09/23(土) 15:37:14.57ID:vuIl3Vgh
ミュータブルなコレクションに厳密な静的型チェックを適用としようとするのはいろいろ限界がある
Javaでは厳密な静的型チェックを放棄して使いやすさを優先してる

660デフォルトの名無しさん2017/09/23(土) 15:40:52.48ID:JwqPmi7Z
今更だけど、StringをStringリスト(配列)にするってクッソ馬鹿っぽいな
Stringをnewするのも重いし、確保したメモリをGCで回収するのも重くなる

「StringをCharにしてからStringにするという手間」とか言うならChar配列で扱えというね
String配列扱うくらいに性能を考えないなら、当初の通りに#toList #map使っててもおkだろ

661デフォルトの名無しさん2017/09/23(土) 16:00:34.34ID:BNc4tUhk
>>654
>mutableListはmutableListしか種類ない
意味がわからない
大枠でList, Set, MapなどがあってLinkedHashMapとSortedMapは順序制御が違うし
ArrayListとLinkedListは追加削除のパターンによって計算量オーダーが異なる

>setter, getterからアクセスしろとか言っていたくせに
構文が理由ではない
>フィールドをpublicにしているのと変わりない
構文が変わりないだけ

662デフォルトの名無しさん2017/09/23(土) 16:22:03.12ID:vuIl3Vgh
>>660
Stringがイミュータブルなら、
Stringの一部分を取り出して新しいStringを作るのはとても軽い処理でできる
その新しStringを作る仕組みで配列を作れば、それも軽い

663デフォルトの名無しさん2017/09/23(土) 16:43:59.09ID:JwqPmi7Z
COW信者乙

さておき、入れ物のStringインスタンスをnewするのはやめたいよな
中身をコピーするかどうか以前にJVM上のインスタンスの確保が重たいんだよ
そして、GCで回収して回る対象個数が増えて重たくなるのは中身のコピー有無は関係ないんだよ

664デフォルトの名無しさん2017/09/23(土) 17:42:00.77ID:8bsZ0VcP
かといって日頃パフォーマンスに影響するような膨大な処理をさせてないので気にならない

665デフォルトの名無しさん2017/09/23(土) 20:38:20.82ID:3qopZopL

666デフォルトの名無しさん2017/09/23(土) 21:43:26.21ID:Kp7vI9MI
気に入らないところが、JavaやScalaを使い込んだ人視点で、このスレレベルからみるとむしろズレてるね

667デフォルトの名無しさん2017/09/23(土) 22:33:09.90ID:lJM5VEju
>>662
そういったイミュータブルな文字列を表現するデータ構造として Rope がある
・Rope (data structure) - Wikipedia
 https://en.wikipedia.org/wiki/Rope_(data_structure)
・ロープ: 理論と実践 - IBM developerWorks / Java technology
 https://www.ibm.com/developerworks/jp/java/library/j-ropes/
・最終報告 - Ropeを用いたRuby処理系の高速化に関する報告
 http://www.spinute.org/ruby/gsoc2016/japanese.html

特に「Stringの一部分を取り出して新しいStringを作る」という
substring 操作に関しては、上記の Wikipedia のページからリンクされている
原論文(英語)の中で疑似コードを使って丁寧に解説されている

で、肝心の Kotlin 実装は知らない(汗

668デフォルトの名無しさん2017/09/23(土) 22:39:08.56ID:XK13+/v0
>>641
tornadoFXのマニュアル今読んでいるところだけど、tornadoFXだめなのか...
>>642
前やってみたけど、Javascriptとつなぎ合わせるところが、ちょっと面倒だった。
型安全でもないし...

669デフォルトの名無しさん2017/09/24(日) 02:01:15.02ID:GOJB25/b
>>666
文法が気に入らないって言ってるだけでJavaやScalaを使い込んでるようにも見えんがな
JVMの仕様上、JavaやScalaの方が最適化されてるからKotlinが気に入らないって話かと思って読んだらもっと浅い話だった

Kotlinの文法が良いってこのスレは賞賛してるから論点はこのスレと合致してる
ただ、Kotlinの文法がダメって記事と、Kotlinの文法がイイってスレとで感想が真逆なだけだ

670デフォルトの名無しさん2017/09/24(日) 02:17:41.07ID:vbDFNvhm
>>655
ものすごい→ものっそい

671デフォルトの名無しさん2017/09/24(日) 09:32:49.28ID:UrGEC0gh
tornadoFXはDSLのダメなとこ出てるねえってだけだから、それ気にならないならいいんじゃないかな
足りない情報は君が発信するんだ

672デフォルトの名無しさん2017/09/24(日) 10:29:34.48ID:tu0D//Rh
Kotlin は、Groovy, Scala, Ruby の影響を受けている

Ruby を関数型にした、Elixir を意識している。
関数型では、デフォルトが、immutable

673デフォルトの名無しさん2017/09/24(日) 14:15:58.51ID:q8xwt5Nv
ねえねえおにいちゃん
ミュータブルリストの先頭から要素を削除して詰める(戻り値不問)って行為をいちばんうまくできる書き方ってなあに

674デフォルトの名無しさん2017/09/24(日) 14:31:53.81ID:c233uqnI
>>673
removeAt() じゃないの?

675デフォルトの名無しさん2017/09/24(日) 14:32:52.09ID:c233uqnI
コマンドラインでこんな風にできたが

>>> val a = mutableListOf(1, 2, 3)
>>> a
[1, 2, 3]
>>> a.removeAt(0)
1
>>> a
[2, 3]

676デフォルトの名無しさん2017/09/25(月) 02:59:33.77ID:JjTJVibn
kotolinってc#で言うpartial classみたいなことできないのかな?
実装を分けたい

677デフォルトの名無しさん2017/09/26(火) 20:47:43.28ID:fZxiOEU0
fun main(args : Array<String>){
test(){
println("test!")
}
}

fun <T> test(body: () -> T ) : T {
println("START")
try{
return body
}
finally{
println("END")
}
}
これで
(returnの行): error: type mismatch: inferred type is () -> T but T was expected
ってエラー出るのなんでですか
まだどっかに<T>って書かないとダメですか
STARTって表示してtest!って表示してENDって表示するようにしたいんですが

678デフォルトの名無しさん2017/09/26(火) 20:59:27.36ID:zAWxdVvk
bodyは () -> T じゃん?つまり body() がTじゃん?
返り値いらないならUnit型でも

679デフォルトの名無しさん2017/09/26(火) 21:19:23.18ID:rflTuAqa
println()って何か返すんだっけ?

680デフォルトの名無しさん2017/09/26(火) 21:25:08.76ID:aozsvlNo
コピペ参考でジェネリクス書いちゃう気持ちはわかる
ネットとかにある高階関数なんかのサンプルはたいていなんか小難しいパターンやってるからな
ちょこちょこ検索してみたけどシンプルなのはなかなかないようだ
というわけで顧客が必要だったもの:

fun main(args : Array<String>){
test(){
println("test!")
}
}

fun test(body: () -> Unit){
println("START")
try{
return body()
}
finally{
println("END")
}
}

超わかりやすい

681デフォルトの名無しさん2017/09/26(火) 22:18:45.79ID:8E9hjYW6
>>680
それ return 書かなくても同じだよね?

682デフォルトの名無しさん2017/09/27(水) 00:00:41.38ID:u5lJ+g1P
簡素化のためにUnitを返す型をクロージャーにしてるけど任意の型を戻せるようにしたいんじゃないの
>>680は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする

683デフォルトの名無しさん2017/09/27(水) 02:23:01.67ID:T8WeFZTh
>>677
return body ではなく return body() では?

684デフォルトの名無しさん2017/09/28(木) 00:26:24.46ID:iSh/X78V
前から思ってたんだけど、Kotlinって
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?

685デフォルトの名無しさん2017/09/28(木) 00:37:08.13ID:ZguEyfSR
そういうのはRubyでやれや!って煽られて終わりな気も致しますよ

686デフォルトの名無しさん2017/09/28(木) 00:42:19.80ID:iSh/X78V
くっ…

687デフォルトの名無しさん2017/09/28(木) 01:13:09.11ID:TXb2X2Zy
えーそれ言語関係なくない?
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ

688デフォルトの名無しさん2017/09/28(木) 18:33:31.64ID:Qp0jWVYU
むしろJavaだとboolean isHogeEmpty()ってメソッドを作るケースだから
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの

689デフォルトの名無しさん2017/09/28(木) 20:41:39.85ID:DhynOxwg
そうなのか?

うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。

690デフォルトの名無しさん2017/09/28(木) 21:04:34.88ID:wU4E+DpF
>>684
変数での分離で良い

一見で意味付けが分かり辛いものは変数名で説明していい
局所的なものであれば無意味にメソッド化する必要も無い
その条件式が2度出てきたときに再考する

691デフォルトの名無しさん2017/09/29(金) 08:30:52.93ID:Zb0/fBQl
あー、rubyは変数いきなり定義だし命名規則もsnake_caseで緩いし変数もメソッドも呼び出し方同じにできるし
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか

692デフォルトの名無しさん2017/09/29(金) 09:00:05.56ID:RLeXl8wr
一般的には説明変数を追加するのに比べると
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ

693デフォルトの名無しさん2017/10/01(日) 12:07:39.75ID:l76lJP+R
言語に関係ない話だと思うんだけどごめん
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら

694デフォルトの名無しさん2017/10/01(日) 12:35:40.87ID:z+KkZaZ7
データベース…

695デフォルトの名無しさん2017/10/01(日) 13:26:09.11ID:l76lJP+R
でもデータベースはメソッド生えないにゃん…
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする

696デフォルトの名無しさん2017/10/01(日) 13:29:23.37ID:sf4M11/u
つまり、どういうこと?

697デフォルトの名無しさん2017/10/01(日) 13:45:30.71ID:kJ8csjIE
>>695
アイテムごとに個別のメソッドが必要だと考えるのは抽象化が不足してるから
食べ物アイテム100個作っても食べ物クラス1個で済む場合もあるでしょ

698デフォルトの名無しさん2017/10/01(日) 15:01:31.15ID:OWvF7Xmk
むしろそれぞれクラス化するのはアクションの方で
アイテムなんて1クラスで十分じゃね

699デフォルトの名無しさん2017/10/01(日) 15:03:06.78ID:7TAdAwOu
ゲ制でやれ

700デフォルトの名無しさん2017/10/01(日) 15:06:13.80ID:4trAwtIa
>>695
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

それの何がいけないの?

701デフォルトの名無しさん2017/10/01(日) 15:11:03.14ID:wO0rh9jl
色々用途や効果がある個々のアイテムインスタンスが対応するメソッドを持ってて自分に関することは全て知っていて
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…

702デフォルトの名無しさん2017/10/01(日) 15:24:19.98ID:z+KkZaZ7
よくわかんないけどデータベース(SQL)から(id,)name,price,weight,actionの(データ)クラスに入れてMapに突っ込むのは普通じゃね
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる

703デフォルトの名無しさん2017/10/01(日) 15:27:41.13ID:z+KkZaZ7

完全にサーバー<=>クライアント型のゲームを想定してました忘れてください

704デフォルトの名無しさん2017/10/01(日) 15:35:03.09ID:YDbLDpC/
よっぽどドラクエ2みたいなツクールサンプル的な単一用途アイテムでもない限り
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>699
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難

705デフォルトの名無しさん2017/10/01(日) 16:36:39.58ID:IPLbJXkb
薬草を使った時の処理
薬草を燃やした時の処理
薬草を売った時の処理


薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話

706デフォルトの名無しさん2017/10/01(日) 17:36:02.79ID:KiopyZMH
じゃあ毒消し草にも同じ処理コピペすんの?

707デフォルトの名無しさん2017/10/01(日) 23:16:31.50ID:aVSvWtqd
アルゴリズムと計算量を知らないのか

千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる

2分探索なら、データ数が千個でも、探索回数は、1/100 になる

2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる

データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない

708デフォルトの名無しさん2017/10/01(日) 23:32:16.54ID:kJ8csjIE
>>707
Mapのlookupなんですけど

709デフォルトの名無しさん2017/10/01(日) 23:40:51.98ID:3vO8zSI2
プログラミング向いてなさそう

710デフォルトの名無しさん2017/10/01(日) 23:54:27.15ID:f01mTcSu
二分探索と二分探索木の探索って違わない……?

711デフォルトの名無しさん2017/10/02(月) 00:18:14.35ID:YWGKtTIQ
>>710
文章を最後まで読んでる偉い子

712デフォルトの名無しさん2017/10/02(月) 01:24:21.58ID:wSRtZd0X
ゲームでマスタ類はID(=index)でアクセスするので計算量はO(1)
そして>>693の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる

713デフォルトの名無しさん2017/10/02(月) 04:26:00.56ID:/O3TaAQA
長文で探索語るなら、ZDDの説明ぐらいしなされ

714デフォルトの名無しさん2017/10/02(月) 08:35:15.29ID:fVjCl62I
一覧で管理したくなる量のデータ(とそれに紐づいた処理)のクラスをいちいち手作業で作るのが面倒大変だけどこれでいいのかなって話なんじゃないの
前が見えなくなる人は迷惑だな

715デフォルトの名無しさん2017/10/02(月) 10:28:12.40ID:o9ncCo8n
JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね

オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ

その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?

7167072017/10/02(月) 23:30:03.61ID:eOIGvVq/
DB だと、B-tree, B+ tree
計算量は、O(log n)

全(線形)探索なら、O(n)

計算量は、>>707
に書いた通り

n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回

データを2分探索木で構築していないのなら、DB には勝てない

717デフォルトの名無しさん2017/10/02(月) 23:38:58.59ID:o0D0xmrR
O(1)でやってんだからDBに勝ってるだろ

718デフォルトの名無しさん2017/10/03(火) 00:27:03.06ID:G2lKIaaK
100個のインスタンスを、生成しただけだろ?

Map(key : value) になっていないだろ?
Map なら、O(1) だけど

719デフォルトの名無しさん2017/10/03(火) 01:18:34.37ID:aqsVlxub
>>716
二分探索木じゃなくても二分探索はできるだろ
>>710の親切なツッコミをスルーして無駄レスすんなよ

720デフォルトの名無しさん2017/10/03(火) 10:03:00.11ID:/m6PSf5w
>>714も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど

721デフォルトの名無しさん2017/10/04(水) 02:14:07.85ID:KVI0o5Io
Kotlinの話しろよ

722デフォルトの名無しさん2017/10/04(水) 08:09:18.36ID:kznoEkrV
JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。

723デフォルトの名無しさん2017/10/04(水) 08:38:43.69ID:JPTWWYYO
なんて出てるの?

724デフォルトの名無しさん2017/10/04(水) 08:42:20.58ID:0hGgeKFz
Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ

725デフォルトの名無しさん2017/10/04(水) 09:07:35.93ID:V3GzLm78
multidexって何が辛いの?

726デフォルトの名無しさん2017/10/04(水) 09:54:28.03ID:cxJCJ2DC
\コットリ〜ン/

7277222017/10/04(水) 19:34:08.08ID:kznoEkrV
>>723
インタプリタにて↓
>>> println("hogehoge")
println("hogehoge")WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to co
nstructor java.lang.String(char[],boolean)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.
text.StringFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
ive access operations
WARNING: All illegal access operations will be denied in a future release
hogehoge

二度目以降は正常↓
>>> println("hogehoge")
println("hogehoge")hogehoge

728デフォルトの名無しさん2017/10/04(水) 19:35:36.92ID:sxpDUYrW
kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用

729デフォルトの名無しさん2017/10/04(水) 20:44:57.35ID:+JSlwxf3
String, char[] が異なる型なのかも

文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?

730デフォルトの名無しさん2017/10/04(水) 21:19:13.27ID:1osd033a
kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?

731デフォルトの名無しさん2017/10/04(水) 21:23:31.36ID:ekjB4cHk
最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄

というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ

732デフォルトの名無しさん2017/10/04(水) 22:29:29.12ID:vuQl5P59
長澤太郎以外は販売できないことになっている

733デフォルトの名無しさん2017/10/05(木) 01:07:21.32ID:ioWgBjMx
>>730
まだあまり流行ってなくて出版社が乗り気じゃないのでは?

734デフォルトの名無しさん2017/10/05(木) 04:39:51.99ID:i/YPJQu8
今月2冊出るよ

735デフォルトの名無しさん2017/10/05(木) 09:20:35.38ID:qdkn4E5e
おおそうか

736デフォルトの名無しさん2017/10/05(木) 21:38:31.29ID:c5+kzESi
サーバーサイドKotlin明日発売やないか

737デフォルトの名無しさん2017/10/05(木) 23:00:14.40ID:RWFlOlgJ
流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える

このおっさん1人で、プログラミングの約半分の分野を、網羅しているw

738デフォルトの名無しさん2017/10/05(木) 23:19:11.04ID:c5+kzESi
そいつが出す本自体は糞だけどな

739デフォルトの名無しさん2017/10/05(木) 23:21:16.13ID:XUc7C4CE
別に流行り廃りでプログラムするわけじゃないしな

740デフォルトの名無しさん2017/10/06(金) 01:37:01.01ID:x0C9073k
これか。10月6日発売。

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/aQkmPNJ

741デフォルトの名無しさん2017/10/06(金) 04:09:03.86ID:tqIbkLAn
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6

742デフォルトの名無しさん2017/10/06(金) 05:25:11.21ID:dm5GZqP5
http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?

743デフォルトの名無しさん2017/10/06(金) 05:39:21.03ID:tqIbkLAn
Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?

744デフォルトの名無しさん2017/10/06(金) 09:08:25.48ID:NqBQU0ep
それは答を教えてくれるわけじゃないからなあ

>>742
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ

745デフォルトの名無しさん2017/10/06(金) 10:14:22.41ID:dm5GZqP5
>>744
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね

746デフォルトの名無しさん2017/10/06(金) 11:25:26.06ID:oni6PLk4
val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()

747デフォルトの名無しさん2017/10/06(金) 17:16:40.52ID:X4PDhaWR
Spek使ってる人いる?
http://spekframework.org/docs/latest/#_gradle
これの通りにbuild.gradleに書いてる気がするんだがNoMEthodErrorで動かん
10 06, 2017 5:09:49 午後 org.junit.platform.launcher.core.DefaultLauncher handleThrowable
警告: TestEngine with ID 'spek' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.support.descriptor.ClassSource.from(Ljava/lang/Class;)Lorg/junit/platform/engine/support/descriptor/ClassSource;
at org.jetbrains.spek.engine.SpekTestEngine.resolveSpec(SpekTestEngine.kt:114)
...

748デフォルトの名無しさん2017/10/06(金) 19:04:09.88ID:X4PDhaWR
>>747
動いた。最後のほうの独立したdependenciesに追加
dependencies {
testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.1'
}
junit-platform-runnerのバージョンは
https://mvnrepository.com/artifact/org.junit.platform/junit-platform-runner
にアクセスして最新ぽいバージョンのページ押してGradleタブ表示
書かなくても動いてる人はどっかで設定してるんだろうな

749デフォルトの名無しさん2017/10/06(金) 21:33:44.02ID:tqIbkLAn
プログラミング GROOVY、2011

Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012

750デフォルトの名無しさん2017/10/06(金) 22:27:21.32ID:tSMXLmVc
>>748
同じ苦労したことある。ドキュメントに書いてよ…。

751デフォルトの名無しさん2017/10/07(土) 05:51:08.18ID:dZntJrcK
>>746
aaaに押し込みなさい

752デフォルトの名無しさん2017/10/07(土) 14:33:30.45ID:tYMANlqN
SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー

753デフォルトの名無しさん2017/10/07(土) 14:36:59.78ID:lxJ0Yf9D
kotlinはJavaわかんなくても他言語やってたらイケル?

754デフォルトの名無しさん2017/10/07(土) 14:53:56.94ID:tYMANlqN
>>753
言語仕様の理解においてはJavaの経験は不要

ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね

755デフォルトの名無しさん2017/10/07(土) 14:59:26.09ID:lxJ0Yf9D
>>754
ありがとうございます
kotlinがandroidの開発言語としてサポートされることになったので試してみたいなーと思ってたんでアプリ作ってみます

756デフォルトの名無しさん2017/10/07(土) 18:31:13.36ID:b4KK/o19
javaは1日でマスターできるので実質java未経験でも問題ないよ

757デフォルトの名無しさん2017/10/07(土) 19:18:53.56ID:rBYfi2xH
変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです

758デフォルトの名無しさん2017/10/07(土) 19:29:23.45ID:+RQU5E5j
ことぅりんだからなお前ら
ことりんとかいってたら数す

759デフォルトの名無しさん2017/10/07(土) 19:33:19.97ID:+RQU5E5j
それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...

760デフォルトの名無しさん2017/10/07(土) 19:41:49.21ID:XbHkmFTG
ことりんかわいい

761デフォルトの名無しさん2017/10/07(土) 22:16:30.42ID:f9dDdlSq
ことりん(*´ェ`*)ポッ

762デフォルトの名無しさん2017/10/07(土) 22:18:46.44ID:iveAgMmn
人間だったら絶対美少女

763デフォルトの名無しさん2017/10/07(土) 22:55:16.08ID:LDd+/z40
ちょまどが漫画書いてくれないかなあ

764デフォルトの名無しさん2017/10/07(土) 23:13:31.53ID:X09Q1vcV
ちょまど(笑)

765デフォルトの名無しさん2017/10/07(土) 23:16:52.81ID:+RQU5E5j

766デフォルトの名無しさん2017/10/07(土) 23:38:16.22ID:f9dDdlSq
>>757
君の言いたいことがよくわからない。

767デフォルトの名無しさん2017/10/07(土) 23:51:42.16ID:2fKU1//d
何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな

768デフォルトの名無しさん2017/10/08(日) 01:04:04.02ID:bhcsmcAx
あざとい名前つけやがって

769デフォルトの名無しさん2017/10/08(日) 01:14:02.14ID:93IJP3PA
>>757
KFunctionのcall

val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)

770デフォルトの名無しさん2017/10/08(日) 01:22:31.02ID:93IJP3PA
>>767
Objective-Cだと結構普通に使うんよ

771デフォルトの名無しさん2017/10/08(日) 01:57:15.44ID:32PQUixn
Rubyでもメソッドのオブジェクト化を稀に使う

irb> "a=b=c".split("=")
=> ["a", "b", "c"]
irb> "a=b=c".method("split").call("=")
=> ["a", "b", "c"]
irb> "a=b=c".send("split", "=")
=> ["a", "b", "c"]

772デフォルトの名無しさん2017/10/08(日) 02:41:05.63ID:c+/m9riq
あ、ようやっと何言ってるかわかったw

773デフォルトの名無しさん2017/10/08(日) 21:54:57.44ID:32PQUixn
IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?

774デフォルトの名無しさん2017/10/09(月) 19:59:00.68ID:3clxx/P9
リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい

775デフォルトの名無しさん2017/10/09(月) 20:53:05.90ID:sCOU7I7y
>>740
その本さっき紀伊国屋で買った

776デフォルトの名無しさん2017/10/09(月) 21:17:44.65ID:bvkIQjV4
その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ

777デフォルトの名無しさん2017/10/09(月) 21:55:29.10ID:4WiIHmfQ
>>774
既存の関数一つで、ということなら知らないけど
関数追加して良いのなら
http://rextester.com/JSYB15250

778デフォルトの名無しさん2017/10/09(月) 22:00:53.70ID:4WiIHmfQ
Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う

アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler

779デフォルトの名無しさん2017/10/09(月) 22:34:41.54ID:c41RoAYB
言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?

780デフォルトの名無しさん2017/10/09(月) 23:58:04.80ID:tFlwnlNI
>>779
同じことやるのでもJavaより記述が楽そうな感じがするからだ。
更にこれまでのJavaの資産を使えるのが良い。

781デフォルトの名無しさん2017/10/10(火) 00:00:43.01ID:jM5sd94/
どんどん高級度が増して行ってそのうち人間はなぜソフトウェアがCPU上で動いているのかその仕組みを知る人がいなくなるのですね
そしてAIと対峙しなければならなくなったとき誰も対応できなくなる
そういう未来が待っているのでしょう

782デフォルトの名無しさん2017/10/10(火) 04:02:27.77ID:Q5yhaeDv
>>776
ま、今後に期待だな。

一応 Google が Android 用として採用したんだから入門書は他にも出てくると思う。
ネットの情報も増え続けるだろう。

783デフォルトの名無しさん2017/10/10(火) 10:24:21.67ID:8V61cfLq
いままでひらがなだけのぶんしょうだったのがかんじがつかえるようになったというかんじだ
そりゃ最終的な音としては漢字があっても無くても変わらないかもしれないが、漢字を理解していれば読みやすく書きやすい
長文を書きやすくもなるだろうし、そこから生まれるものもあろう
個人的にはスクリプト言語のような立ち位置だと思っている

784デフォルトの名無しさん2017/10/10(火) 21:49:29.43ID:VPwnJAPN
今月末に出るKotlin in actionの方は上級者向けのような気がする

785デフォルトの名無しさん2017/10/10(火) 22:21:41.00ID:FWHsF53j
>>784
なんだ、日本語訳でるのか。頑張って洋書の方読んでるけど、理論だてて書いてあるのでわかりやすい。ところどころJavaとの比較があり、Javaの知識がないとちょっと苦しいとこあるかも。あとTry Kotlinでサンプルもあるよね。

786デフォルトの名無しさん2017/10/10(火) 23:01:05.11ID:Z3ZusD4X
in action は上級じゃないよ
プログラミング初心者向けじゃないけど
最初の1冊に選んでいい本

787デフォルトの名無しさん2017/10/10(火) 23:25:19.52ID:VPwnJAPN
日本語の技術書とかネットの情報でも日本語のものだと実務に使えるレベルに達しなくなってきてるよね
日本はIT後進国になってしまったんだと常々感じる

788デフォルトの名無しさん2017/10/10(火) 23:37:43.52ID:ZTVh7Eud
>>787
テクノロジーの移り変わりが早すぎて、一次リソースを参考にした方が効率的だし、わざわざ日本語に訳す必要もないから

789デフォルトの名無しさん2017/10/10(火) 23:38:33.00ID:sNdI8sqC
>>787
先進国だった時なんてあったか?

790デフォルトの名無しさん2017/10/10(火) 23:42:30.50ID:gasOXxRr
一昔前はtronとかあったやん
今の日本はなにもない

791デフォルトの名無しさん2017/10/11(水) 00:08:24.55ID:YuycjJaM
最速だからいいということばかりでもない
周回遅れでも構わない情報のほうが世の中には多い
Kotlinスタートブックは1年以上前の刊行だけど使えないゴミだと言う人はまともな人にはおるまい

792デフォルトの名無しさん2017/10/11(水) 00:09:08.60ID:T++UmApy
ハードはともかく
ソフトは先進国だった事はない

793デフォルトの名無しさん2017/10/11(水) 00:18:15.85ID:EN0HNRmd
これからなればいい

794デフォルトの名無しさん2017/10/11(水) 00:23:02.14ID:JdWo4X1f
Androidの技術書見ても現在主流の
RxJava, databinding, MVVM, flux, redux辺りの解説をしている本が全然ない
Androidだからまだネットで日本語の情報多いけど、
iOSになると本当に英語の情報しかなくなってくる
本当に駄目な国になってきている
ニュージーランド辺りに脱出した方がいいんじゃないかと思ってくるレベル
あっちはプログラマーの年収1000万らしいし

795デフォルトの名無しさん2017/10/11(水) 00:30:16.27ID:LhuJ4eZA
>>794
英語の情報があればいいやろ

796デフォルトの名無しさん2017/10/11(水) 00:31:11.36ID:JfiRQ2Rl
むしろ英語を使うようになったからでは
日本語の書籍は高いし遅いし

797デフォルトの名無しさん2017/10/11(水) 00:31:53.22ID:V+6zovsu
>>794
お前と違って、英語の情報だけで充分なエンジニアが増えているという見方もできる

798デフォルトの名無しさん2017/10/11(水) 00:33:36.19ID:EN0HNRmd
そしてみんなが苦もなく英語が読めるようになった頃、完璧な自動翻訳が完成する。

799デフォルトの名無しさん2017/10/11(水) 01:16:39.94ID:OvZKAieI
>>796
msのxamarin本なんか、原本はePubなら無料だが、日本語訳したとたんに6000円になるぜ!

800デフォルトの名無しさん2017/10/11(水) 01:19:17.66ID:YuycjJaM
>>799
安心しろ
日本の技術書を英訳してもだいたい1冊40ドルくらいにはなる
固定化されて訂正できない翻訳には人件費がかかるのだ

801デフォルトの名無しさん2017/10/11(水) 14:21:15.86ID:WJBR6sLF
英語、ちゃんと理解できるようにならんと、これからはだめなんだろうなぁ
なんとなくでしか読めんし、結局分からん事は日本語で探して解決するから、英語だけで完結できん
一年かけて英語習得するか!

802デフォルトの名無しさん2017/10/11(水) 14:48:59.07ID:YuycjJaM
高卒くらいの英語力は保持してるつもりなのにネットの記事がぜんぜん読めんという場合
・スラングがめっちゃ入ってる
・ネット文法が入ってて正規寄りではないので読み取れない
・専門用語が専門的すぎる
のだいたいどれかで、プログラミングの記事は最後の比率が大きい
これは英語本体をどんだけ勉強しても専門用語の日本での意味や技術的意味がわかるわけではないので役に立たない
パブリックメソッドを行政手法と訳してたら絶対わからんわけでな

803デフォルトの名無しさん2017/10/11(水) 16:03:19.52ID:hhJP1zLS
プログラマで英語弱い人はTry Kotlinのサンプルをちょこちょこ試してみたほうがより効率的かもね

8042017/10/11(水) 18:19:59.78ID:Q0CgrKbU
>>802
逆にしばらくエンジニアやってりゃ、技術文書は読めるようになったりするけどな。
仕事でやるなら翻訳自体、翻訳メモリ使って翻訳することの方が多いし。
翻訳メモリで完全新規な文書の翻訳はたまに手伝う。

805デフォルトの名無しさん2017/10/11(水) 18:21:22.65ID:AVBsiIwy
>>801
おお。そうだ。このスレはこれから英語で書こう。

806デフォルトの名無しさん2017/10/11(水) 18:22:16.37ID:AVBsiIwy
i have a pen

807デフォルトの名無しさん2017/10/11(水) 20:28:51.56ID:qqbN54VH
>>806
文頭は大文字にしなきゃ

808デフォルトの名無しさん2017/10/11(水) 20:39:22.12ID:M3+oH0ZC
Iは文頭でなくても大文字にしなきゃ

809デフォルトの名無しさん2017/10/11(水) 20:56:44.06ID:PtNlY4pv
have じゃなくて am でしょ

810デフォルトの名無しさん2017/10/11(水) 21:23:33.96ID:JdWo4X1f
I am a pen

811デフォルトの名無しさん2017/10/11(水) 23:47:37.98ID:9t+rVGQp
me too

812デフォルトの名無しさん2017/10/12(木) 07:16:44.81ID:OX/pZMRS
人間はいねぇのかここは...

813デフォルトの名無しさん2017/10/12(木) 08:54:42.09ID:Pi/VQsL7
高卒レベル英語力(英検2級)と辞書があれば、読めるだろうに。

814デフォルトの名無しさん2017/10/12(木) 09:09:03.89ID:tSTw7rai
は?英語なんて知らなくても全部グーグル先生に突っ込めば読める

815デフォルトの名無しさん2017/10/12(木) 09:18:29.99ID:AXWM+xbo
I am fool.
You are fool.
We are fool.

816デフォルトの名無しさん2017/10/12(木) 09:46:23.80ID:o8TlX9Z0
>>815
you fool
you are a fool
you are dead foolish

article required

817デフォルトの名無しさん2017/10/12(木) 10:15:06.41ID:7rfu7aua
You is a big fool man.
Hahahaha.

818デフォルトの名無しさん2017/10/12(木) 11:44:05.54ID:6DbuDLdk
me too

819デフォルトの名無しさん2017/10/12(木) 12:17:18.61ID:jZh2ph1X
lol

820デフォルトの名無しさん2017/10/12(木) 12:40:17.85ID:LPj/TZWs
It is useless. I can not communicate at all in English.

821デフォルトの名無しさん2017/10/12(木) 13:56:58.96ID:3A6lsKEo
Kotlin is so cute;-)

822デフォルトの名無しさん2017/10/12(木) 16:54:50.54ID:irZYU/94
pls, say fool just another...

823デフォルトの名無しさん2017/10/12(木) 17:44:23.32ID:cYyBZWxu
all your base are belong to us

824デフォルトの名無しさん2017/10/12(木) 18:33:55.37ID:o8TlX9Z0
>>823
All your bases belong to our country.

中卒レベル

825デフォルトの名無しさん2017/10/12(木) 18:38:55.59ID:W4Y9jhaF

826デフォルトの名無しさん2017/10/12(木) 20:17:00.25ID:o8TlX9Z0
知らんかったわ
「ワレワレハ…」的なノリね

827デフォルトの名無しさん2017/10/12(木) 21:43:09.54ID:5ILt7KpA
Engrish

828デフォルトの名無しさん2017/10/12(木) 22:43:44.31ID:OX/pZMRS
>>815
Hey, don't include me in foolish people!

829デフォルトの名無しさん2017/10/12(木) 23:58:19.05ID:IILQSMTY
*/

830デフォルトの名無しさん2017/10/13(金) 00:42:44.70ID:JcXjubca
こぉっとぅりんっ

831デフォルトの名無しさん2017/10/13(金) 00:43:15.89ID:JcXjubca
こぉとぅりん

832デフォルトの名無しさん2017/10/13(金) 00:49:55.72ID:neFZx4WS
>>828
I am your friend.

833デフォルトの名無しさん2017/10/13(金) 19:18:19.17ID:/02if2W5
いますぐJavaをやめてKotlinに移行すべき10の理由↓

834デフォルトの名無しさん2017/10/13(金) 19:28:52.37ID:WJkFRsiD
1. I love kotlin.

835デフォルトの名無しさん2017/10/13(金) 19:30:46.10ID:WJkFRsiD
2. We love kotlin.

836デフォルトの名無しさん2017/10/13(金) 20:13:20.58ID:Gc4qJwYJ
3. We are Kotlin.

837デフォルトの名無しさん2017/10/13(金) 21:17:09.35ID:snGniETu
このスレもう要らないな

838デフォルトの名無しさん2017/10/14(土) 00:02:55.04ID:UTsnHwgS
>>837
Are you pen?

839デフォルトの名無しさん2017/10/14(土) 00:07:29.38ID:F+wwiVHB
碌に移行する理由がないんじゃJavaの天下は続くな。

840デフォルトの名無しさん2017/10/14(土) 00:24:30.10ID:lMgWewwv
理由ならある
呼び名がかわいい

841デフォルトの名無しさん2017/10/14(土) 05:04:47.87ID:rkGKts9o
これから流行るんじゃねえか? まずは Android 用アプリ作成に使うのが流行ると思うぞ。

842デフォルトの名無しさん2017/10/14(土) 06:05:23.13ID:Ls8C6+0E
AndroidStudio3.0のベータ版だと、アプリとテストの雛形のデフォルトがKotlinになってるから
特にこだわりがない人は Kotlin 使うようになるだろね

843デフォルトの名無しさん2017/10/14(土) 08:54:09.10ID:UTsnHwgS
Null安全だけでも以降するのに十分な理由になると思うが

844デフォルトの名無しさん2017/10/14(土) 09:23:07.84ID:mCAw9QQf
>>838
No, it is an apple.

and Swift

845デフォルトの名無しさん2017/10/14(土) 09:34:03.59ID:22PxWoNo
ぬる安全で動かなきゃletとかwithとかalsoとか見せればイチコロだと思うにゃん
さほど変態的でない記述でJavaコードが更に短くなるというだけで訴求力はあるはず

846デフォルトの名無しさん2017/10/14(土) 09:37:33.59ID:A2JBGmbK
スクリプト動作モードは遅すぎて使い物にならないな

847デフォルトの名無しさん2017/10/14(土) 14:20:16.21ID:mpqXFZeP
>>843
Going.

848デフォルトの名無しさん2017/10/14(土) 14:26:02.66ID:ocOTfHdi
withは要らんわ
大してメリットが無く紛らわしいだけだからとC#が意図的にVBから削ったゴミを
なぜ今更復活させてしまったのか

849デフォルトの名無しさん2017/10/14(土) 14:28:24.42ID:UTsnHwgS
let, with, alsoの使い分けがよくわからん

850デフォルトの名無しさん2017/10/14(土) 14:55:18.93ID:xdbq9lHZ
letは「これnot nullのif文代わりに使えるじゃん!」って置き換えるもその後にelse節が必要になって泣く泣く書き換える羽目になるトラップとして使う

851デフォルトの名無しさん2017/10/14(土) 16:45:54.36ID:UTsnHwgS
valで変数を書き始められるのが楽
Javaに戻ると型名書かないといけなくて脳に負担がかかる

852デフォルトの名無しさん2017/10/14(土) 16:59:08.57ID:F+wwiVHB
Javaがどんどん軟派化仕様を取り入れてるときに、軟派言語出されても競合するなぁ。

853デフォルトの名無しさん2017/10/14(土) 17:32:07.97ID:UTsnHwgS
Javaの件でOracleがGoogleを訴えたりしてなかったっけ?
あれが関係しているような気がするんだが

854デフォルトの名無しさん2017/10/14(土) 17:46:40.03ID:F+wwiVHB
MSは訴えられてWindowsからMS製Javaを排除したが、
AndroidからGoogle製Javaを排除したらただのLinuxじゃん。

855デフォルトの名無しさん2017/10/14(土) 17:52:02.81ID:iaPiK/ZP
Googleが訴えられたのはJVMとAPIだから言語を変えたところで何の意味もないよ

856デフォルトの名無しさん2017/10/14(土) 18:08:25.27ID:+XwGR1nT
言語がモダンになってIDEが必須になってどんどん人間がバカになっていくぅ

857デフォルトの名無しさん2017/10/14(土) 19:31:44.98ID:zWnjpaDB
>>850
?: run {} が使える

858デフォルトの名無しさん2017/10/14(土) 21:25:44.86ID:Ls8C6+0E
>>848
withは言語機能として組み込まれてるわけじゃなくて、
他のrunとかapplyでも使ってるレシーバ付き関数リテラルの一番簡単な使い方
このレシーバ付き関数リテラルがあれば、withみたいな関数は簡単に定義できるんで、
withがダメっていうならレシーバ付き関数リテラルもダメってことになる
でもKotlinは意図的にレシーバ付き関数リテラルを用意して活用する気満々なんだよ

859デフォルトの名無しさん2017/10/15(日) 01:36:56.98ID:ZgJv24or
with ってこれなのな。
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()

https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e

860デフォルトの名無しさん2017/10/15(日) 01:57:24.53ID:1JZd3G1s
withってほとんどの場合副作用使うからなあ
現代的なプログラミングにはそぐわないよ

861デフォルトの名無しさん2017/10/15(日) 02:28:15.35ID:fk/JYaTL
Kotlinのwithは値を返すから副作用を利用するかどうかは使う人次第だ

862デフォルトの名無しさん2017/10/15(日) 03:09:10.81ID:ps8be+yY
1つのList/Setを条件で分けて3つのグループにするのに何かいいやり方ありますか?
val group1 = ArrayList<HogeEnum>()
val group2 = ArrayList<HogeEnum>()
val group3 = ArrayList<HogeEnum>()
group.forEach {
when {
it.isHoge() -> group1.add(it)
it.isHage() -> group2.add(it)
else -> group3.add(it)
}
}

863デフォルトの名無しさん2017/10/15(日) 03:38:27.73ID:rZYksuR6
Iterable.groupBy()があるよ
やってることは結局その例とかわらないけど

864デフォルトの名無しさん2017/10/15(日) 04:01:40.27ID:fk/JYaTL
こんな感じか
val result = group.groupBy ({ if (it.isHoge()) 0 else if (it.isHage()) 1 else 2 }, {it})
val group1 = result[0]
val group2 = result[1]
val group3 = result[2]

865デフォルトの名無しさん2017/10/15(日) 17:12:21.76ID:sVOncOOl
>>864
itのままでいいなら二番目のパラメータ省略できるよ。

866デフォルトの名無しさん2017/10/15(日) 18:32:02.26ID:fk/JYaTL
>>865
なるほど、ならばこんな感じに
val result = group.groupBy {it.run{when{isHoge()->0; isHage()->1; else->2}}}

867デフォルトの名無しさん2017/10/15(日) 19:18:47.56ID:WbabBMh3
さっき本屋行ったらこんなの売ってた。工学社の I/O BOOKS のやつだ。
https://i.imgur.com/UHC2KT1.jpg
ぱらぱらめくって見た感じでは全体が簡単にまとめられているようではあった。
小さいサイズの本の方がいい人向けかな。
まあしかし買うなら立ち読みして確認してからにするとよい。

868デフォルトの名無しさん2017/10/15(日) 19:22:52.08ID:g+9Qt1e8
電子書籍で出してくれ

869デフォルトの名無しさん2017/10/15(日) 23:30:21.51ID:9R+c2v2L
本屋で写真取ると捕まるぞ。

870デフォルトの名無しさん2017/10/15(日) 23:38:59.63ID:YqfACteL
長澤太郎以外でも出せるんだな

871デフォルトの名無しさん2017/10/16(月) 01:10:50.17ID:K3bUm04o
>>869
ああ。中身撮影してると思われたら捕まるだろうな。w
しかし少し離れた所から表紙しか撮影してないから誤解されることはないと思うがな。

872デフォルトの名無しさん2017/10/16(月) 02:03:12.91ID:8vIi4A+y
>>871
店舗内での書影撮影に関してはわりと明確なルールがあるよ

・ 書店が入っている商業施設が無断撮影禁止なら無断撮影者は退去対象である

明瞭だ
著作権とかどうでもいい
出禁だ出禁

873デフォルトの名無しさん2017/10/16(月) 02:12:21.73ID:1RgvFhx3
>>872
店内で本をスマホにかざすとアクションが起こるみたいなアプリがまずぶつかる障壁だな
本屋主導の電書アプリでついてる機能でプレスリリースまで出したけど立ち消えになったりもする
kotlinでシチュ限定スマホアプリ作ってる人もいるだろうけどスマホ使用制限エリアとの兼ね合いには注意だ

874デフォルトの名無しさん2017/10/16(月) 19:28:21.38ID:hogQmxQx
これを皮切りに
kotlinの本が続々出て今年から来年にかけて
爆発的に売れる予感。

875デフォルトの名無しさん2017/10/16(月) 21:34:34.38ID:8lVe0990
とりあえずはインアクションがあればいいな
やっとまともな本が出る

876デフォルトの名無しさん2017/10/16(月) 21:37:31.83ID:7CHwAcHs
まともに移行する理由がひとつも挙げれなかったから爆発しない。F#ぐらいの立ち位置だな。

877デフォルトの名無しさん2017/10/16(月) 21:38:36.04ID:nm/6hD9y
Null安全はでかいだろ
プログラミング初心者か

878デフォルトの名無しさん2017/10/16(月) 21:53:29.09ID:7CHwAcHs
なるほど。Null安全か。よしJavaに追加しよう。

879デフォルトの名無しさん2017/10/16(月) 21:53:40.26ID:TAj2pYDL

880デフォルトの名無しさん2017/10/16(月) 22:04:58.29ID:nm/6hD9y
プログラミング初心者がF#とか言ってんのか

881デフォルトの名無しさん2017/10/16(月) 22:12:56.85ID:7CHwAcHs
この人は人の話を聞かず妄想で話を進める人だな。

頭に蛆でも沸いてるのか?

882デフォルトの名無しさん2017/10/16(月) 22:49:58.86ID:snZUUJVe
今爆発が始まったばかりなんだよ。

883デフォルトの名無しさん2017/10/17(火) 03:13:52.64ID:hVetZd8l
Javaで困ってねーからな。Javaで困ってる案件をKotlinなら解決できるわけもなく。

中にはNull例外で困ってる初心者もいるようだが。

884デフォルトの名無しさん2017/10/17(火) 04:17:41.05ID:NmuLnA8X
Java自体Android開発以外であんまり使わないからKotlin Nativeに期待してる
仕事だとWebはPHP、PCはexe形式のWin用の案件ばっかりなんだよね

885デフォルトの名無しさん2017/10/17(火) 08:01:28.76ID:7/LKBs88
未だに手続き型の泥臭いコードが主流の日本じゃ流行らないでしょ
日本はCOBOLとstatic Javaが正義

886デフォルトの名無しさん2017/10/17(火) 08:17:08.08ID:gQ4z+/LN
どうして自分で使ってもいない言語のスレにやってきて書き込むのかまったく意味不明

887デフォルトの名無しさん2017/10/17(火) 09:12:43.23ID:dhvYHJws
Kotlinできないやつは仕事がなくなる

888デフォルトの名無しさん2017/10/17(火) 09:31:20.86ID:4QIDkuyk
「Javaで作ってます(実際にはKotlinですが)」というパターンが増えると思う
Javaのボイラープレートコードを
・IDEが自動生成してソースに直書きする
・Kotlinがコンパイル時に追加書きする
という程度の違いしかないわけだし
見る必要のないものは見えないほうが能率的にも好ましい

889デフォルトの名無しさん2017/10/17(火) 10:54:09.69ID:hVetZd8l
>>887
Java以上に難解な言語だからな。

890デフォルトの名無しさん2017/10/17(火) 11:27:44.11ID:onQ9Ahkh
>>889
Kotlinからプログラミングに入った人が、数年経ってからJavaに手を出したとして、Javaの方が簡単だと思うかな

891デフォルトの名無しさん2017/10/17(火) 12:21:38.68ID:H+HUM8Ad
まだ学習中ではあるが、Java より Kotlin の方が簡単なのではないかという感じがしている。
少なくとも同じことやろうとしたら Java では記述が面倒になるものがある。

892デフォルトの名無しさん2017/10/17(火) 12:48:53.61ID:dhvYHJws
型名から書き始めるのがだるく感じるようになってしまった

893デフォルトの名無しさん2017/10/17(火) 13:37:15.76ID:gQ4z+/LN
>>891
簡単だよ、「教科書」の範囲を脱するとJavaの知識は絶対に必要だからちょっとアレだけど
所要時間の7割くらいはKotlinでざくざく書ける
残り3割は
・ 事例をKotlinでググったがJavaのしか出てこなかったので諦めてJavaを読んでいる
・ IntelliJでJavaコードを変換してもらったらジェネリクスやコンパニオンオブジェクトやアノテーションだらけになりしかも動かないので泣きながら修正している
・ IntelliJに変換してもらおうとしたらどうやらスニペットらしく何度ペーストしてもうんともすんとも言わないので吐きながら手作業でひとつひとつ置き換えている
のだいたいどれかだ

894デフォルトの名無しさん2017/10/17(火) 18:57:01.82ID:hVetZd8l
ビット演算子とかすでに普及したC系の書法あるのになんで変えるんだろう?

895デフォルトの名無しさん2017/10/17(火) 19:18:36.93ID:30A/rDEh
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
http://news.mynavi.jp/news/2017/10/17/044/

896デフォルトの名無しさん2017/10/17(火) 19:47:17.34ID:hVetZd8l
イライラするな、そのグラフ。クリックしても全然拡大できねー。

897デフォルトの名無しさん2017/10/17(火) 20:36:40.86ID:H+HUM8Ad
>>896
スマホやタブレットなら拡大するを押した後はピンチできると思うよ。

898デフォルトの名無しさん2017/10/17(火) 20:39:30.41ID:dhvYHJws
お前ら時代についていけなくてプログラミングの仕事ができなくなるぞ
Kotlin以外にもRxとかdatabindingとかMVVM, flux, MVIとか
新しい技術がどんどんでてきてんのにどうすんだ

899デフォルトの名無しさん2017/10/17(火) 20:50:31.20ID:H+HUM8Ad
え?全部覚えればいいだけでは?

900デフォルトの名無しさん2017/10/17(火) 20:55:29.61ID:y2IFefmv
調べ方さえ知っときゃいいのよ
基本はアルゴリズム

901デフォルトの名無しさん2017/10/17(火) 20:58:55.12ID:O+BDW8Aj
>>898
え?新しい?
どれのこと言ってんの?

902デフォルトの名無しさん2017/10/17(火) 20:59:12.42ID:GiRVoeFb
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
ttp://news.mynavi.jp/news/2017/10/17/044/

903デフォルトの名無しさん2017/10/17(火) 21:27:02.26ID:kRPJAKch
アセンブラに回帰するから大丈夫

904デフォルトの名無しさん2017/10/17(火) 23:21:34.71ID:A1W0Ufl3
>>899
無理だよ
お前が天才なら話は別だが

905デフォルトの名無しさん2017/10/17(火) 23:26:52.13ID:hVetZd8l
Kotlinは最新鋭の言語だからな。ついていくにはかなりの勉強が必要。
オブジェクト思考なにそれじゃとても無理。

906デフォルトの名無しさん2017/10/17(火) 23:38:47.28ID:psnU0zFe
Kotlinが分からないお前ら全員失業www無職ざまあwwwwww

907デフォルトの名無しさん2017/10/18(水) 00:26:22.06ID:AVtT/z6f
>>898
あなた「が」その技術を作って売っているのでないのなら、アタラシイギジュツというのは業務としては無視してよい
それの半数は1年で話題にならなくなり、2年でその半数が消える
3年経っても話題になり生き残っているのなら、そこで初めて検討すればいい(たとえばKotlinのように)

まあそれの多くは技術というよりは概念だからわりと生き残ってる部類だが
家のプログラミングで追いかけてりゃ十分じゃないかな

908デフォルトの名無しさん2017/10/18(水) 09:11:29.05ID:rBz0muCO
Kotlinの定数ってどう書くのが正しいんですか
全部大文字にしてアンダースコアで繋げる、
じゃないですよね

909デフォルトの名無しさん2017/10/18(水) 09:38:16.58ID:96L4BFY0
>>908
companion object{
const val hoge
}
Javaライブラリから定数だと思ってもらう必要がないならcompanion object{}はいらないはず
hogeの名前部分は好きに書け
仰る通り全部大文字アンダースコア区切りが普通ね

910デフォルトの名無しさん2017/10/18(水) 12:26:44.80ID:iXMhk9b6
>>904
そうか。じゃあ問題ないな。

911デフォルトの名無しさん2017/10/18(水) 15:49:53.65ID:ZPgodlCt
>>904
idiot savant なら話は別だが
の誤記だよね

912デフォルトの名無しさん2017/10/18(水) 20:53:45.43ID:9Hfah7Rk
ねえコトリン^^

913デフォルトの名無しさん2017/10/19(木) 13:53:40.95ID:kzg66C9N
こっち向いて

914デフォルトの名無しさん2017/10/19(木) 14:09:52.81ID:ZSJg0roA
     ☆      ∬   ∬
     |\      r;ェ、c3 シュンシュン
     ∴∴∴   _(_'フ__
     (´・ω・`) |l三三三||¬| 
    ( _ つ  .|l三旦三||  | 
    (_(__ノ  「目   「:_] 

915デフォルトの名無しさん2017/10/19(木) 22:05:31.14ID:zAbDVwTY
>>913
ロシアが攻めて来たのよ

916デフォルトの名無しさん2017/10/19(木) 23:19:09.40ID:v9LYhYCi
ロ、ロ、ロ、ロシアン

917デフォルトの名無しさん2017/10/20(金) 09:23:09.66ID:cIqzCW7A
Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
ttp://www.publickey1.jp/blog/17/kotlinandroidrealm.html

918デフォルトの名無しさん2017/10/20(金) 10:33:28.19ID:ogaeHTAB
それはKotlinのスキル有無の問題ではなくて、
Kotlin程度、まともにJavaできる人なら適当に一日触ったら十分使いこなせるようになるんだから
それができないレベルの人には仕事はないという当たり前の話だと思う

919デフォルトの名無しさん2017/10/20(金) 11:04:30.15ID:q2wuGssb
kotlinはjavaの唯一最大の参入障壁「やりたいことに対して無意味にも思える記述が多すぎる」を解消した
あとはちょっと変わった記述の適用広範囲Javaライブラリみたいなもんだからな、そりゃ使われるわ

実はKotlinよりもプログラミング言語的に素晴らしいScalaさんという一つ上くらいの先輩がいるのだが
Scalaさんは初動に集まった人がアカデミックだった上に記号魔術で遊び過ぎて印象悪くして失敗してしまったのだ(初動大事)

920デフォルトの名無しさん2017/10/20(金) 12:09:50.84ID:+lt7TopC
Javaオンリーな人が付け焼き刃でKotlin使うようになってほぼJavaなKotlinコードが量産されるんだろうな

921デフォルトの名無しさん2017/10/20(金) 12:36:09.65ID:q2wuGssb
>>920
たとえば??

922デフォルトの名無しさん2017/10/20(金) 12:45:02.92ID:p6j5lSQw
何を今更
ジェットブレインが開発した時点でそういう言語だろ

923デフォルトの名無しさん2017/10/20(金) 12:53:16.47ID:4LtGa96p
ジェットブレインってなんだろう…

924デフォルトの名無しさん2017/10/20(金) 12:53:54.91ID:PCOS2CdI
>>920
え?例えばどんな?
クラスはみんなopenとか?

925デフォルトの名無しさん2017/10/20(金) 12:55:55.90ID:q2wuGssb
>>923
正直なところ、該当プログラミング言語を使ってないような人が言語のスレに書き込む理由がさっぱりわからん
自分の知らないことばかり話してるスレだぞ…

926デフォルトの名無しさん2017/10/20(金) 12:56:22.84ID:cIqzCW7A
ジェット脳

927デフォルトの名無しさん2017/10/21(土) 08:55:05.79ID:SwYl7d2P
バグだらけのWebアプリケーションをKotlinで実装してみました
https://qiita.com/tamura__246/items/ce2932809b9e4ec0297e

928デフォルトの名無しさん2017/10/21(土) 08:56:18.39ID:uavAERV8
言語を変えたらバグがなくなりす。Javaのときも言ってた気がします。

929デフォルトの名無しさん2017/10/21(土) 10:49:40.33ID:uVD587X2
>>928
バグの一部はなくなった。もちろん全部はなくならない。

930デフォルトの名無しさん2017/10/21(土) 14:07:32.75ID:DUYo3YXD
見てないけど、kotlinにしたら、世の中のプログラムのバグがなくなるのか
kotlin最強だな

931デフォルトの名無しさん2017/10/21(土) 15:57:07.83ID:pTq+5yjM
プログラム言語の進化の歴史の基本パターンだしな

932デフォルトの名無しさん2017/10/21(土) 22:52:03.68ID:l0C30vmt
>>930
だから全部はなくならないってw

933デフォルトの名無しさん2017/10/21(土) 23:05:33.46ID:uavAERV8
ヌルポがなくなるらしい。でもちゃんとテストしたらヌルポのバグって全部修正できるよね。
つまりkotlinにすればテストしなくていいということ。

結果さらにバグあり納品が増えてデスマーチ。いつかみた風景。
ポインタがなくなれば〜、GCがあれば〜

オープンソースにすれば〜ってのもあったね。最近多いのがAIにすれば〜

934デフォルトの名無しさん2017/10/22(日) 03:25:09.30ID:e1gng41K
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い

935デフォルトの名無しさん2017/10/22(日) 03:25:51.40ID:GA495a0M
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い

936名無しさん@そうだ選挙に行こう! Go to vote!2017/10/22(日) 09:06:20.22ID:AhvojsY+
世の中のプログラムのバグがなくなるとかテストしなくていいとか
脳内の飛躍が半端ないなw

937名無しさん@そうだ選挙に行こう! Go to vote!2017/10/22(日) 09:51:20.46ID:ThKraGOL
>>933
それはヌルポをテストしなくていいを、ヌルポ以外のテストもしなくていいにすり替えたから。
つまり>>933の脳内にバグがある状態。

938名無しさん@そうだ選挙に行こう! Go to vote!2017/10/22(日) 10:39:38.28ID:Aud0wCrn
>>928
りす?
       n_n
      / ・ \
      /ヽ__・
  /Ξミヽ/ (゚Д゚)
 ( ―、| (ノ  |つ
  \_人人__)_)
      ∪ ∪

939名無しさん@そうだ選挙に行こう! Go to vote!2017/10/22(日) 10:43:40.96ID:Aud0wCrn
>>936
その辺は何れ何とかなるんじゃないかな。AIが発達して人間が何かする必要は特に無くなる。
もちろんAIはプログラミングなんかしない。自身が既にプログラムだしね。単に人間が望むであろう動きを自分がすればいいだけ。

940デフォルトの名無しさん2017/10/23(月) 01:55:41.23ID:abHVYf4D
Pythonじゃダメなの?

941デフォルトの名無しさん2017/10/23(月) 01:58:47.60ID:u5IDZl2p
だめなの

942デフォルトの名無しさん2017/10/23(月) 09:12:33.70ID:dbUGXOGc
そういやPythonやったことないな。いつもLinuxいじってて目の前に既に使える環境があったんだがなぜか覚える気にならずPerlばかり使っていた。
いい加減学習するか。

943デフォルトの名無しさん2017/10/23(月) 09:16:27.95ID:q13VoyIh
ぱいそんなんて勉強が必要なものでもないがな

944デフォルトの名無しさん2017/10/23(月) 09:49:53.15ID:dbUGXOGc
いや、ほら、何も知らないからさ。
ファイル名の拡張子が .py ってことぐらいしか知らない。

945デフォルトの名無しさん2017/10/23(月) 10:00:47.84ID:QKnEuIrp
常用するLinuxBoxがあるのならPython/Rubyは良い選択肢
自分のために楽しくやりたいならRubyを、皆と一緒に便利にやりたいならPythonを選ぶといい
どっちか覚えたら片方はすぐなんで初期用途で選んでいいよ

946デフォルトの名無しさん2017/10/23(月) 19:00:30.13ID:puhk/g9t
未だにkotlinだとヌルポがなくなるとか言ってるやつがいるのか

947デフォルトの名無しさん2017/10/23(月) 19:15:07.45ID:YIhcz2Te
ひねくれた複雑な事やらなければだいたいはなくせないか?

948デフォルトの名無しさん2017/10/23(月) 19:39:06.53ID:o6L3q82d
Kotlin使ってもぬるぽ連発してんのか

949デフォルトの名無しさん2017/10/23(月) 22:51:45.52ID:QKnEuIrp
>>947
ああ、こいつに構わなくていいよ
いつも同じことしか書かないんだ
説得しようとしても無駄

950デフォルトの名無しさん2017/10/23(月) 23:04:44.08ID:zzY32qse
器用なことやるな

951デフォルトの名無しさん2017/10/24(火) 02:21:21.48ID:IbgCT9FR
kotlinが急進的に普及みたいな記事を
良くみるが、俺は到底そうとは思えない。
理由はKotlinの謳い文句の
KotlinからJava変換、KotlinからJavascript変換が
まだまだ使いずらいってことだ。
AndroidスタジオはPCによってはBuildが遅過ぎ
まったく開発にならない。Webプログラムのパイオニアみたいな
キャッチセースで最近注目を引いてるけど、まだまだ
美味しい時期ではないように思うえる。
今日とかWindow10/32ビットでコマンドラインから
JavaとJavasriptにコンパイルしようとしたけど
Javaspitに関しては資料が少なすぎて手も足も出ない。

コマンドプロンプトから

kotlinc-js -output hello -sourceFiles hello.kt -libraryFiles kotlin-jslib.jar

で良かったけ?なんか、情報が閑散としてて判らん

952デフォルトの名無しさん2017/10/24(火) 03:06:11.96ID:PSxxe1n/
全角で言語名書く奴の意見は参考にしない事にしている

953デフォルトの名無しさん2017/10/24(火) 08:04:25.98ID:s8DNo2te
全角と半角が混じって気持ち悪いことこの上ない
プログラマーとは思えない美的感覚

954デフォルトの名無しさん2017/10/24(火) 08:20:05.29ID:kOLVT7kL
Javasript
Javaspit
という新しい言語が生まれたようだな

955デフォルトの名無しさん2017/10/24(火) 08:54:24.56ID:EMAIs2aC
>>952-954
なんでそうやって構うの

956デフォルトの名無しさん2017/10/24(火) 08:54:33.53ID:rijisBQi
spit = つばを吐く
ということだから、
Javaspit = Javaにつばを吐く
つまり熱狂的なKotlin信者ということ

957デフォルトの名無しさん2017/10/24(火) 09:09:32.53ID:Y1f+CDs0
Window10

新しいOS

958デフォルトの名無しさん2017/10/24(火) 09:51:43.85ID:99TFwYv/
キッズプログラマー

959デフォルトの名無しさん2017/10/24(火) 10:24:42.63ID:rImCj7mr
SRIPT

Shanghai Research Institute of Petrochemical Technology

960デフォルトの名無しさん2017/10/24(火) 10:28:35.28ID:YiJuDl3B
>>955
プログラミングできなくても参加できるからね
自分たちは何もできないって人前で叫んでいるようなものだ
正直お帰り頂きたいのだが

961デフォルトの名無しさん2017/10/24(火) 12:32:17.01ID:ILn03nC/
>>948
どこにヌルポ連発すると書いたのか。アスペかおまえは。
>>949
おまえみたいなゴミカスエンジニアは何言っても否定するんだろうな

962デフォルトの名無しさん2017/10/28(土) 13:15:37.00ID:cK0+9veY
ぬるぽ

963デフォルトの名無しさん2017/10/28(土) 14:38:12.64ID:cK0+9veY
何気なくAmazon見てたらこんなの見つけた。無料。

Kotlin Programming Tutorial https://www.amazon.co.jp/dp/B074FXTTKL/ref=cm_sw_r_an_am_at_ws_jp?ie=UTF8

964デフォルトの名無しさん2017/10/28(土) 14:39:54.99ID:0x9+D/xv
EclipseのエディタがJavaと同じぐらいKotlinサポートしてくれてるなら乗り換えてもいい

965デフォルトの名無しさん2017/10/28(土) 14:44:54.44ID:Ng05dLeH
KotlinはIntelliJ開発元のJetBrainsが作ってるからEclipseプラグインに期待するのは間違い
もしサードパーティによってIntelliJより使いやすいEclipseプラグインが出てきて開発者がそっちに流れそうになったりしたら
JetBrainsは法的手段を使ってでも全力で潰しに来るはず

966デフォルトの名無しさん2017/10/28(土) 14:58:11.85ID:ZGNKF2eF
極めて単純に「Eclipseは20年以上Javaをサポートしアプデし続けてきたので最強である」というだけなので
今のJava+EclipseをKotlinで再現するにはあとやっぱり20年くらい必要だと思われる
あれは年季の問題であって、NetBeans+Javaとか(困ったことに)IntelliJ+Javaも同じようなものだ

IDEサポートの分厚さという点ではKotlinはどの組み合わせにも及んでいない
とりあえずバックスペースで消していくだけでKotlinプラグインがクラッシュすることがあるのを直さんといかんレベル

967デフォルトの名無しさん2017/10/28(土) 15:54:42.82ID:LaChF7dA
MSがVSCodeのプラグイン作ったら1年でJava超えるだろうけどね

968デフォルトの名無しさん2017/10/28(土) 15:57:39.28ID:0x9+D/xv
なんてこったい

Oracleはjava9でvar採用して
innullablejre.jarを別途提供すべき

969デフォルトの名無しさん2017/10/29(日) 03:51:42.38ID:0yKrkLYC
すばらしい使い捨て言語だ。

970デフォルトの名無しさん2017/10/29(日) 09:51:25.77ID:nF8jP4ar
>バックスペースで消していくだけでKotlinプラグインがクラッシュする
あれは繊細過ぎると思う
どっかでチェック開始間隔の設定がありそうだけどな

971デフォルトの名無しさん2017/10/29(日) 09:56:52.64ID:0yKrkLYC
kotlinでプラグインを書かないからヌルポになるんだよ。

972デフォルトの名無しさん2017/10/29(日) 19:11:11.42ID:6hfILvPI
さっき新宿の紀伊國屋書店行ったらKotlinイン・アクションもう置いてあったよ。
ということは多分大きい本屋ならもう売ってると思う。

973デフォルトの名無しさん2017/10/29(日) 21:42:48.27ID:Gu+Q8xiz
感想は?買いなん

974デフォルトの名無しさん2017/10/29(日) 22:04:20.61ID:oFRxn/Jf
>>973
まだパラパラめくって見ただけなので何とも言えないが、詳しく一通り書いてあるように見える。

975デフォルトの名無しさん2017/10/30(月) 00:56:22.26ID:/vdlmG2A
初めてのまともな日本語の本でしょ
あのクソみたいなエバンジェリスト本(笑)をやっと駆逐できるな

976デフォルトの名無しさん2017/10/30(月) 02:59:15.21ID:nQXUW6Dj
エバンジェリスト本?
ああ、まあ、 Technology evangelist か?

977デフォルトの名無しさん2017/10/30(月) 08:46:43.80ID:stDQ/FyB
長澤太郎もかかわっている

978デフォルトの名無しさん2017/10/30(月) 21:53:49.20ID:pVIch9qW
今日から始めます。
今インストール中。
よろしくお願いします。

979デフォルトの名無しさん2017/10/30(月) 22:37:30.38ID:OufZdVP7
ここは!
あなたの!
日記帳!

Javaを読めないとしんどいから、もしまだ知らないなら並行作業でちょっとずつやるといいよ
今からやっておくとだいたいKotlinわかったころに何かやりたくなっても「あっこれ進研ゼミでやったやつだ!」となって捗ること請け合い

980デフォルトの名無しさん2017/10/30(月) 23:00:21.71ID:pVIch9qW
>>979
応援ありがとうございます。
Javaは少しだけやりました。
一応C#は使えるので、
kotlinやりながらJavaも覚えたいと思います。

981デフォルトの名無しさん2017/10/31(火) 20:53:53.80ID:mFIgmMeH
data?.let {
  ...
}
でdataがNULLじゃないときだけ処理を実行できることは分かりました。
これにdataがNULLのときの処理も追加したい場合はどう書いたらいいんでしょうか
data?.let {
  ...
}?: {
}
みたいに書けないです。

982デフォルトの名無しさん2017/10/31(火) 21:01:44.57ID:mFIgmMeH
ファイル入力の処理などの以下の処理が
while((line = br.readLine()) != null)
Kotlinだと、Assignments are not expressions, and only expressions are allowed in this context
のエラーになるんですが、Kotlinだとどう書いたらいいんでしょうか

983デフォルトの名無しさん2017/10/31(火) 21:38:42.83ID:kBfCDZdZ
>>981
let{ ... } が null を飛ばしてラムダ式を実行することができるのはあくまで副次作用に過ぎない
条件分岐させたいのなら素直に when か if で書くべき

>>982
File(path).forEachLine { line -> println(line) }

984デフォルトの名無しさん2017/10/31(火) 21:39:06.81ID:cTxMPZq4
>>981
普通に if 使って書けば良いのでは?

985デフォルトの名無しさん2017/10/31(火) 21:55:55.33ID:7/FAMo7N
>>981
?: run {}

986デフォルトの名無しさん2017/10/31(火) 22:06:34.40ID:mFIgmMeH
data?.let {
  ...
}?: {
  ...
}.invoke()
というのを見つけたんですが、?: run {}の方がいいんでしょうか

987デフォルトの名無しさん2017/10/31(火) 22:10:44.21ID:BGaLFLkz
癖のある言語ですね・・・

988デフォルトの名無しさん2017/10/31(火) 22:16:51.16ID:kBfCDZdZ
>>986
だから条件分岐は条件分岐として書いてくれ
letはもともと

val hoge = Hoge()
hoge.mes1()
hoge.mes2()

と書く代わりに

Hoge().let{ it.mes1(); it.mes2() }

と書くことができるという構造だ
条件分岐の代わりに使っていいものじゃない
ネット上で観測される彼らは「間違っている」
参考にしてはならない

989デフォルトの名無しさん2017/10/31(火) 22:20:26.16ID:mFIgmMeH
えー。letってNULLチェック代わりに使うものじゃなかったの

990デフォルトの名無しさん2017/10/31(火) 22:28:56.76ID:kBfCDZdZ
nullチェックは ?. の部分だ
letの中身が長くなればなるほど、それはletで書くべきではないということになる
今ここでこれ使うと1行で書けて変数に入れられるぜえ、とかだとapplyとか使うの考えるがまあその程度

letをnull回避として紹介してた人が今どんだけそれを日常的に使ってるかは個人的に興味があるよ
最初の紹介で使っただけなんじゃないかと思うんだよねえ

>>990超したので新スレおねがいします

991デフォルトの名無しさん2017/10/31(火) 22:29:35.46ID:6MYbZ/26
Wikipediaとか参考文献にしてそう

992デフォルトの名無しさん2017/10/31(火) 22:47:55.01ID:wyGoJvua
そもそものもともととして.?じゃ本当にnullが来たとき対処できないじゃないか
checkNotNull(value){ "valueがnullです" }
とかしないと不安にならないの

993デフォルトの名無しさん2017/10/31(火) 23:34:28.34ID:E21Np2eC
それならKotlin使うのやめろよ

994デフォルトの名無しさん2017/10/31(火) 23:39:23.74ID:u3Drl61J
>>992
何言ってんの

995デフォルトの名無しさん2017/10/31(火) 23:49:38.22ID:BBLfUUwS

996デフォルトの名無しさん2017/11/01(水) 00:08:55.25ID:jxmKQQAl
次スレ

http://mevius.5ch.net/test/read.cgi/tech/1509462463/

2ch.net でないとうまく開かない専ブラの人は以下のURL

http://mevius.2ch.net/test/read.cgi/tech/1509462463/

997デフォルトの名無しさん2017/11/01(水) 00:46:22.34ID:1EENXbRG
x.?let {} ?: run {} は letのとこのブロックがnull返すと x がnullじゃなくても run のブロック実行しちまうだろ
x.?also {} ?: run {} にしとけよ

998デフォルトの名無しさん2017/11/01(水) 00:52:45.72ID:pp6VRjc6
>>992
?. を書いてメソッドチェーンを繋げなければならない状況自体、なにかおかしいからな
とっとと非nullを確定させるのが妥当
しかもわざわざスコープ内で覚えててくれるんだから、利用しない手はない

999デフォルトの名無しさん2017/11/01(水) 02:02:04.51ID:x/3omok5
999

1000デフォルトの名無しさん2017/11/01(水) 02:02:35.06ID:x/3omok5
1000

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 613日 0時間 16分 34秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。