2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

Kotlin

1 :デフォルトの名無しさん:2016/02/27(土) 01:46:01.68 ID:Ag8w7//2.net
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org

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

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

C#erにオススメ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

これもC#7.0に欲しいw

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

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

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

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

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

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

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

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

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

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

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

31 :デフォルトの名無しさん:2016/03/13(日) 23:49:03.71 ID:Vr1n8FvPJ
英語しゃべれるけどKotlinに興味持ってる

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

inlineもscalaとかなり違う?

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

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

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

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

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

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

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

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

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

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

無難にJavaScriptやってみます

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

92 :デフォルトの名無しさん:2016/05/01(日) 10:54:20.06 ID:tKi6j9CT.net
匿名通信(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的に分散され、特定のサーバーに依存しません


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

だって。

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

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

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

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

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

138 :デフォルトの名無しさん:2017/05/18(木) 12:12:50.95 ID:NEKf9u2/.net
AndroidがKotlinサポートか
Java使わなくていい場面増えるのは歓迎だけど
C#のが良かった

https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/

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

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

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

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

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

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

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

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

m, 10
a, 5
m, 2

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

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

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

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

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

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

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

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

>>> 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
入ってる数字をあとで計算とかに使いたいだけなんですがどこの考え方間違ってるんでしょうか

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

169 :デフォルトの名無しさん:2017/05/21(日) 18:45:53.63 ID:UuW+xgyM.net
>>> 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)
>>158の言う通り、究極的にはこのしょーもない内部仕様のせいである
この仕様を知ってる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安全のない言語から来た人はふんす!!ってなると思われ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

224 :デフォルトの名無しさん:2017/05/27(土) 20:30:57.73 ID:3w92Yrys.net
> 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を叩くのが一番楽だと思います

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

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

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

226 :デフォルトの名無しさん:2017/05/28(日) 08:47:56.63 ID:1kfTQYrn.net
>>222はKotlinコンパイラでPythonコードをコンパイルしたいって言ってるから一旦理解したが
>>225は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への移行をやらず枯れきった性質だと思うぞ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java ←変換可能→ Kotlin

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

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

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

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

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

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

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

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

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

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

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

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

244 :デフォルトの名無しさん:2017/06/01(木) 10:55:02.44 ID:AXJF1Amn.net
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() )

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

特許とAPIの著作権

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

397 :デフォルトの名無しさん:2017/07/06(木) 13:03:11.11 ID:A60SyEEL.net
>>395
>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を使う話も労力に見合うものは得られない

398 :デフォルトの名無しさん:2017/07/06(木) 13:14:33.18 ID:A60SyEEL.net
>>395
追記
そもそも根本的な話として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から呼べる

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

418 :デフォルトの名無しさん:2017/07/11(火) 11:50:37.31 ID:HY0nK+zE.net
>>414
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呼べるようにして欲しいなーって冗談半分で言ったら噛み付かれた

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

441 :デフォルトの名無しさん:2017/07/14(金) 09:50:43.08 ID:tqlcOT7v.net
>>427
> そもそも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年の新興言語はお互いにパクリあってるからもう何が大元か分からなくなってるよね

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

456 :デフォルトの名無しさん:2017/07/26(水) 10:30:04.80 ID:VR8TYjgB.net
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?")
}

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

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

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

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

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

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

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

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

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

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

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

ってポールが言ってた

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

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

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

こうかな

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

533 :デフォルトの名無しさん:2017/08/15(火) 20:57:50.46 ID:wYSD0kSw.net
Kotlin 1.1.4 is out
https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

560 :デフォルトの名無しさん:2017/08/19(土) 23:50:54.57 ID:3LWi1RRc.net
直受けの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万台にならなくて済む

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

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

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

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

563 :デフォルトの名無しさん:2017/08/20(日) 19:22:23.16 ID:X7HXBqNm.net
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')
なんか設定間違ってるのだろうか…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

直受けの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)  プログラマーズ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

そういうの無い?

623 :デフォルトの名無しさん:2017/09/16(土) 11:42:24.85 ID:zsfdrVgC.net
android studioってkotlinのプロジェクトにjavaのコードを貼り付けたらkotlinに変換してくれる神機能があるから
泥開発する時にネットで拾ったjavaのコードをペタペタコピペプログラミングするだけでも勉強になる

javaもkotlinも知識皆無の状態でkotlinで泥アプリ開発に取り組んだら見様見真似で簡単なアプリ作れた
ある程度コピペしてたらjavaのこの書き方はkotlinではこう書きそうっていうのがなんとなく察せてくるからandroid studioの補完を頼りに写経したりする

javaも知らないけど新しく言語の知識学ぶなんて面倒くさいからヤダ!知識皆無だけどすぐ何か作りたい!hello wordとか練習問題みたいなの書いても面白くないからモチベーションわかない!すぐ作りたい物作りたい!って場合は
ネットのサンプルと強力なIDEの支援を頼りにコピペ写経するのが効率よさそう
(外国語ができなくても海外でしばらく生活したら知識的に習わなくてもだんだん喋れるようになる理論)

624 :デフォルトの名無しさん:2017/09/16(土) 12:49:19.86 ID:64cU0LXO.net
>>621
Kotlinで書かれたサンプルコードが少ないってこと?
それについては自動変換で対応するか、Kotlinが広まってサンプルが増えるのを待つしか無いか

625 :デフォルトの名無しさん:2017/09/16(土) 12:50:15.30 ID:64cU0LXO.net
それと思ったのはKotlin・・というよりプログラム初学者は
言語仕様、ライブラリ、プラットフォームの知識がごちゃ混ぜになってるのかも

「Java言語仕様の知識前提」の場合はデメリットだけど、後者2つはそうではないんだよね
ちゃんと切り分けて教える必要があるのかもしれない

626 :デフォルトの名無しさん:2017/09/16(土) 15:17:58.69 ID:iyhV3x2n.net
>>621
一々Javaで考えてからKotlinに読み替えるのではなく最初からKotlinで考えればいいのでは?それは出来ないの?

627 :デフォルトの名無しさん:2017/09/16(土) 15:51:26.67 ID:zchkTGlK.net
前途洋々たる人にJavaを教えたいかというとそうでもない、しかし現状kotlinにはjavaの知識がいくらか必要というジレンマ

628 :デフォルトの名無しさん:2017/09/16(土) 17:15:31.02 ID:k4zUo1jM.net
自動変換はマジで神機能だな

629 :デフォルトの名無しさん:2017/09/17(日) 09:11:08.18 ID:e3nYUfGU.net
kotlin変換はスニペット単位で変換挿入できれば初学者サポートとして文句ないんだけど
まあ高望みしても仕方ないなw

630 :デフォルトの名無しさん:2017/09/17(日) 09:16:06.15 ID:s1Tpc6AU.net
Kotlinを使い始めるのにJavaから始めないといけないのも高望みだから仕方ない
JVMとJava LibraryありきなんだからJavaを知らないで何が始まろうかと理解している

631 :デフォルトの名無しさん:2017/09/17(日) 10:57:51.48 ID:iGeioDqi.net
>>629
騙されたと思ってandroid studioでkotlinを開いてそこにjavaのスニペットをそのまま普通に貼り付けてみ

632 :デフォルトの名無しさん:2017/09/17(日) 12:20:57.80 ID:QcEs4Olk.net
>>629
できるぞ

633 :デフォルトの名無しさん:2017/09/17(日) 20:10:21.20 ID:881Zhju6.net
kotlinというかIntelliJはなにかにつけてUnresolved Referenceで発狂して真っ赤になるのを潰していかんといかん
全部自前のkotlinファイルとパッケージだけで構成すれば絶対に起こらん事象だが、そんなのは稀だ

634 :デフォルトの名無しさん:2017/09/17(日) 20:33:40.63 ID:8Aq7R6E2.net
>>633
あれはライブラリ作者とプラグイン作者が7割くらい悪い
提供されるテンプレートでjavaパッケージのimportの不足(しかもbuild.gradleに依存関係未記述)とか勘弁して欲しい
ていうかこれ作者のとこではどうやって動いてたんだ…

635 :デフォルトの名無しさん:2017/09/17(日) 22:18:35.53 ID:hEJjpySw.net
>>634
TornadoFXでえらい苦労した記憶がある
無論使うのやめた
Androidのほうがまだきちんと動くw

636 :デフォルトの名無しさん:2017/09/18(月) 21:46:47.81 ID:KEjrNeQk.net
昔のEclipse環境下開発みたいなトラブル起こしてんなw
libs/*.jar と .classpath をコミットしてなくて、ライブラリ実装者とライブラリ利用者で環境が合致しないとかよくあった

build.gradleで依存管理してないなら、libs/*.jar と .idea/ で管理してるんじゃないのかね
ビルドできねーよってIssue発行して、build.gradleで依存管理するように直してもらおうぜ(Kotlinと全く関係ない話題

637 :デフォルトの名無しさん:2017/09/19(火) 01:56:04.30 ID:q5GM4Sdx.net
TornadoFXは面白そうだなと思って手を付けた瞬間
・TornadoFXのDSL記法では思った通りに動作しないがJavaFXでは動く
・JavaFXではうまく動かないがswt直呼びでは動く
・JavaのGUIアプリケーションではあまり得意ではない
の3者が混然一体となってGUI初心者に襲いかかってきた荒野の印象しかない
GUIやるのさぼってきたツケもあるしkotlin関係ないけどな

638 :デフォルトの名無しさん:2017/09/19(火) 02:57:40.00 ID:33S+M35U.net
FXには手を出すなって死んだばっちゃが言ってた

639 :デフォルトの名無しさん:2017/09/19(火) 03:13:01.72 ID:NsD/KMp/.net
HTTPプロトコル受けるようにして、GUIはHTMLとjavascriptでブラウザ任せでやる方がいいんでね?

640 :デフォルトの名無しさん:2017/09/19(火) 11:33:34.11 ID:yNuGs4H1.net
とるねーどFXのDSL記法は初心者の「こうかな?これなら動くかな?」という学習の試行錯誤を念入りに潰してバグに変えるプロ
設定記述手法以外のDSLなんてまあたいていそんなもんだが
どうしてもPCでGUI欲しくてなにもわからない最初ならJavaFXにするのがよいよ

641 :デフォルトの名無しさん:2017/09/19(火) 23:03:32.67 ID:yNuGs4H1.net
>>631
IntelliJではできんことのほうが多いね
完動するJavaのクラスのファイルとかそういうでっかいのか意味のあるわかりやすい小さいやつとかじゃないとまず無理
それでも便利だろうという指摘はもっともだが

642 :デフォルトの名無しさん:2017/09/20(水) 00:55:44.49 ID:yi4mI7ko.net
tornadoFXで丸1日悩んでいたことがJavaFXでは1時間でできたなんていう笑い話が…
別にこれに限った話じゃないけど、今から何か始めたいって人は「kotlin対応新鋭フレームワーク!」みたいな宣伝には騙されずにJava製のでいいからメジャーなやつを選ぼうね
たいていkotlinでの書き方みたいなのが公開されてるからそれで充分さ

643 :デフォルトの名無しさん:2017/09/20(水) 12:49:45.18 ID:UnWC6mNR.net
画面はWebView(JavaScript連携)でいいよ

644 :デフォルトの名無しさん:2017/09/21(木) 00:08:50.00 ID:fijEecfV.net
そこそこの長さの文字列をわかりよく文字列のリストにする方法ってないですか
"ABCDE".toList()だとCharのリストになってmapとか繋げて変換がいります
"ABCDE".split("")だとなんか7つのリストになります
文字境界の正規表現を指定すればいいような気もしますが探せませんでした

645 :デフォルトの名無しさん:2017/09/21(木) 03:27:44.93 ID:AcIIQNEl.net
>>644
"ABCDE".split("(?=.)") ではどうか?

646 :デフォルトの名無しさん:2017/09/21(木) 11:28:55.55 ID:fijEecfV.net
>>> "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)


647 :デフォルトの名無しさん:2017/09/21(木) 13:35:52.21 ID:mLLoqbOf.net
>>646
"ABCDE".map { it.toString() }
これおすすめ

648 :デフォルトの名無しさん:2017/09/21(木) 21:11:04.25 ID:fijEecfV.net
だからそれだと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とかあのへんのメソッドは空気を読んでて困る(えらい)。じゃあこれにします

649 :デフォルトの名無しさん:2017/09/23(土) 03:05:43.18 ID:LuIx8rlF.net
Kotlinは配列というかリストになんか入れるとエラーで二度と引き出せなくなるのが嫌
何か不都合があって引き出せないのなら最初から弾いてくれ

650 :デフォルトの名無しさん:2017/09/23(土) 06:21:39.07 ID:iHkIwIdJ.net
意味がわからん

651 :デフォルトの名無しさん:2017/09/23(土) 09:46:44.92 ID:X9FmtUo8.net
つmutableListOf

652 :デフォルトの名無しさん:2017/09/23(土) 09:47:52.09 ID:X9FmtUo8.net
いや意味がわからんな

653 :デフォルトの名無しさん:2017/09/23(土) 10:14:30.20 ID:Fr4ObNsJ.net
あのへんは型とか継承とかの理解きちんとしてないとちょっと複雑なの入れたときものっそいエラーになるよ
適当に書いて適当に使ってると動くと見せかけていざというとき詰まる箇所ベスト3に入ると思う

654 :デフォルトの名無しさん:2017/09/23(土) 10:59:53.99 ID:BNc4tUhk.net
具体例があると話も広がりそうだけどイメージがわかない

655 :デフォルトの名無しさん:2017/09/23(土) 13:45:04.86 ID:HgJ0Nznd.net
コレクションって色々種類があって、
問題によって適切なクラスを選ぶべきとか言っていたくせに
mutableListはmutableListしか種類ないし、それで別に問題がないってどういうことだよ
フィールドもprivateにしてsetter, getterからアクセスしろとか言っていたくせに
プロパティアクセスは実質フィールドをpublicにしているのと変わりないじゃねえか
その他、継承は良いことだからたくさん使って活用していこうとか言っていたくせに
openをつけないと継承できなくして、実質継承は推奨しないみたいになってるのなんなん
嘘ばっかり言いやがって

656 :デフォルトの名無しさん:2017/09/23(土) 14:17:09.35 ID:8bsZ0VcP.net
>>653
「のっそい」って何処の方言?沢山って意味?

657 :デフォルトの名無しさん:2017/09/23(土) 14:32:54.88 ID:Ok7b72Pt.net
>>655
いろいろ勘違いしててどこから突っ込めばいいのやら

658 :デフォルトの名無しさん:2017/09/23(土) 15:29:22.72 ID:vuIl3Vgh.net
プロパティアクセスは、publicなフィールドへのアクセスと違って、
setを制限してgetだけにできるし、
setするときの値チェックなんかもできるし、
privateフィールドをsetter/getterでアクセスする利点はそのままに、
使うときの表記をシンプルにしてくれる

659 :デフォルトの名無しさん:2017/09/23(土) 15:29:38.76 ID:vuIl3Vgh.net
継承するよりコンポジションしてアクセスを転送する方がいいっていうのは
もうオブジェクト指向では定説

660 :デフォルトの名無しさん:2017/09/23(土) 15:37:14.57 ID:vuIl3Vgh.net
ミュータブルなコレクションに厳密な静的型チェックを適用としようとするのはいろいろ限界がある
Javaでは厳密な静的型チェックを放棄して使いやすさを優先してる

661 :デフォルトの名無しさん:2017/09/23(土) 15:40:52.48 ID:JwqPmi7Z.net
今更だけど、StringをStringリスト(配列)にするってクッソ馬鹿っぽいな
Stringをnewするのも重いし、確保したメモリをGCで回収するのも重くなる

「StringをCharにしてからStringにするという手間」とか言うならChar配列で扱えというね
String配列扱うくらいに性能を考えないなら、当初の通りに#toList #map使っててもおkだろ

662 :デフォルトの名無しさん:2017/09/23(土) 16:00:34.34 ID:BNc4tUhk.net
>>655
>mutableListはmutableListしか種類ない
意味がわからない
大枠でList, Set, MapなどがあってLinkedHashMapとSortedMapは順序制御が違うし
ArrayListとLinkedListは追加削除のパターンによって計算量オーダーが異なる

>setter, getterからアクセスしろとか言っていたくせに
構文が理由ではない
>フィールドをpublicにしているのと変わりない
構文が変わりないだけ

663 :デフォルトの名無しさん:2017/09/23(土) 16:22:03.12 ID:vuIl3Vgh.net
>>661
Stringがイミュータブルなら、
Stringの一部分を取り出して新しいStringを作るのはとても軽い処理でできる
その新しStringを作る仕組みで配列を作れば、それも軽い

664 :デフォルトの名無しさん:2017/09/23(土) 16:43:59.09 ID:JwqPmi7Z.net
COW信者乙

さておき、入れ物のStringインスタンスをnewするのはやめたいよな
中身をコピーするかどうか以前にJVM上のインスタンスの確保が重たいんだよ
そして、GCで回収して回る対象個数が増えて重たくなるのは中身のコピー有無は関係ないんだよ

665 :デフォルトの名無しさん:2017/09/23(土) 17:42:00.77 ID:8bsZ0VcP.net
かといって日頃パフォーマンスに影響するような膨大な処理をさせてないので気にならない

666 :デフォルトの名無しさん:2017/09/23(土) 20:38:20.82 ID:3qopZopL.net
Kotlinの気に入らないところ
http://anopara.net/2017/09/16/kotlin%E3%81%AE%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D/

667 :デフォルトの名無しさん:2017/09/23(土) 21:43:26.21 ID:Kp7vI9MI.net
気に入らないところが、JavaやScalaを使い込んだ人視点で、このスレレベルからみるとむしろズレてるね

668 :デフォルトの名無しさん:2017/09/23(土) 22:33:09.90 ID:lJM5VEju.net
>>663
そういったイミュータブルな文字列を表現するデータ構造として 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 実装は知らない(汗

669 :デフォルトの名無しさん:2017/09/23(土) 22:39:08.56 ID:XK13+/v0.net
>>642
tornadoFXのマニュアル今読んでいるところだけど、tornadoFXだめなのか...
>>643
前やってみたけど、Javascriptとつなぎ合わせるところが、ちょっと面倒だった。
型安全でもないし...

670 :デフォルトの名無しさん:2017/09/24(日) 02:01:15.02 ID:GOJB25/b.net
>>667
文法が気に入らないって言ってるだけでJavaやScalaを使い込んでるようにも見えんがな
JVMの仕様上、JavaやScalaの方が最適化されてるからKotlinが気に入らないって話かと思って読んだらもっと浅い話だった

Kotlinの文法が良いってこのスレは賞賛してるから論点はこのスレと合致してる
ただ、Kotlinの文法がダメって記事と、Kotlinの文法がイイってスレとで感想が真逆なだけだ

671 :デフォルトの名無しさん:2017/09/24(日) 02:17:41.07 ID:vbDFNvhm.net
>>656
ものすごい→ものっそい

672 :デフォルトの名無しさん:2017/09/24(日) 09:32:49.28 ID:UrGEC0gh.net
tornadoFXはDSLのダメなとこ出てるねえってだけだから、それ気にならないならいいんじゃないかな
足りない情報は君が発信するんだ

673 :デフォルトの名無しさん:2017/09/24(日) 10:29:34.48 ID:tu0D//Rh.net
Kotlin は、Groovy, Scala, Ruby の影響を受けている

Ruby を関数型にした、Elixir を意識している。
関数型では、デフォルトが、immutable

674 :デフォルトの名無しさん:2017/09/24(日) 14:15:58.51 ID:q8xwt5Nv.net
ねえねえおにいちゃん
ミュータブルリストの先頭から要素を削除して詰める(戻り値不問)って行為をいちばんうまくできる書き方ってなあに

675 :デフォルトの名無しさん:2017/09/24(日) 14:31:53.81 ID:c233uqnI.net
>>674
removeAt() じゃないの?

676 :デフォルトの名無しさん:2017/09/24(日) 14:32:52.09 ID:c233uqnI.net
コマンドラインでこんな風にできたが

>>> val a = mutableListOf(1, 2, 3)
>>> a
[1, 2, 3]
>>> a.removeAt(0)
1
>>> a
[2, 3]

677 :デフォルトの名無しさん:2017/09/25(月) 02:59:33.77 ID:JjTJVibn.net
kotolinってc#で言うpartial classみたいなことできないのかな?
実装を分けたい

678 :デフォルトの名無しさん:2017/09/26(火) 20:47:43.28 ID:fZxiOEU0.net
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って表示するようにしたいんですが

679 :デフォルトの名無しさん:2017/09/26(火) 20:59:27.36 ID:zAWxdVvk.net
bodyは () -> T じゃん?つまり body() がTじゃん?
返り値いらないならUnit型でも

680 :デフォルトの名無しさん:2017/09/26(火) 21:19:23.18 ID:rflTuAqa.net
println()って何か返すんだっけ?

681 :デフォルトの名無しさん:2017/09/26(火) 21:25:08.76 ID:aozsvlNo.net
コピペ参考でジェネリクス書いちゃう気持ちはわかる
ネットとかにある高階関数なんかのサンプルはたいていなんか小難しいパターンやってるからな
ちょこちょこ検索してみたけどシンプルなのはなかなかないようだ
というわけで顧客が必要だったもの:

fun main(args : Array<String>){
test(){
println("test!")
}
}

fun test(body: () -> Unit){
println("START")
try{
return body()
}
finally{
println("END")
}
}

超わかりやすい

682 :デフォルトの名無しさん:2017/09/26(火) 22:18:45.79 ID:8E9hjYW6.net
>>681
それ return 書かなくても同じだよね?

683 :デフォルトの名無しさん:2017/09/27(水) 00:00:41.38 ID:u5lJ+g1P.net
簡素化のためにUnitを返す型をクロージャーにしてるけど任意の型を戻せるようにしたいんじゃないの
>>681は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする

684 :デフォルトの名無しさん:2017/09/27(水) 02:23:01.67 ID:T8WeFZTh.net
>>678
return body ではなく return body() では?

685 :デフォルトの名無しさん:2017/09/28(木) 00:26:24.46 ID:iSh/X78V.net
前から思ってたんだけど、Kotlinって
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?

686 :デフォルトの名無しさん:2017/09/28(木) 00:37:08.13 ID:ZguEyfSR.net
そういうのはRubyでやれや!って煽られて終わりな気も致しますよ

687 :デフォルトの名無しさん:2017/09/28(木) 00:42:19.80 ID:iSh/X78V.net
くっ…

688 :デフォルトの名無しさん:2017/09/28(木) 01:13:09.11 ID:TXb2X2Zy.net
えーそれ言語関係なくない?
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ

689 :デフォルトの名無しさん:2017/09/28(木) 18:33:31.64 ID:Qp0jWVYU.net
むしろJavaだとboolean isHogeEmpty()ってメソッドを作るケースだから
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの

690 :デフォルトの名無しさん:2017/09/28(木) 20:41:39.85 ID:DhynOxwg.net
そうなのか?

うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。

691 :デフォルトの名無しさん:2017/09/28(木) 21:04:34.88 ID:wU4E+DpF.net
>>685
変数での分離で良い

一見で意味付けが分かり辛いものは変数名で説明していい
局所的なものであれば無意味にメソッド化する必要も無い
その条件式が2度出てきたときに再考する

692 :デフォルトの名無しさん:2017/09/29(金) 08:30:52.93 ID:Zb0/fBQl.net
あー、rubyは変数いきなり定義だし命名規則もsnake_caseで緩いし変数もメソッドも呼び出し方同じにできるし
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか

693 :デフォルトの名無しさん:2017/09/29(金) 09:00:05.56 ID:RLeXl8wr.net
一般的には説明変数を追加するのに比べると
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ

694 :デフォルトの名無しさん:2017/10/01(日) 12:07:39.75 ID:l76lJP+R.net
言語に関係ない話だと思うんだけどごめん
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら

695 :デフォルトの名無しさん:2017/10/01(日) 12:35:40.87 ID:z+KkZaZ7.net
データベース…

696 :デフォルトの名無しさん:2017/10/01(日) 13:26:09.11 ID:l76lJP+R.net
でもデータベースはメソッド生えないにゃん…
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする

697 :デフォルトの名無しさん:2017/10/01(日) 13:29:23.37 ID:sf4M11/u.net
つまり、どういうこと?

698 :デフォルトの名無しさん:2017/10/01(日) 13:45:30.71 ID:kJ8csjIE.net
>>696
アイテムごとに個別のメソッドが必要だと考えるのは抽象化が不足してるから
食べ物アイテム100個作っても食べ物クラス1個で済む場合もあるでしょ

699 :デフォルトの名無しさん:2017/10/01(日) 15:01:31.15 ID:OWvF7Xmk.net
むしろそれぞれクラス化するのはアクションの方で
アイテムなんて1クラスで十分じゃね

700 :デフォルトの名無しさん:2017/10/01(日) 15:03:06.78 ID:7TAdAwOu.net
ゲ制でやれ

701 :デフォルトの名無しさん:2017/10/01(日) 15:06:13.80 ID:4trAwtIa.net
>>696
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

それの何がいけないの?

702 :デフォルトの名無しさん:2017/10/01(日) 15:11:03.14 ID:wO0rh9jl.net
色々用途や効果がある個々のアイテムインスタンスが対応するメソッドを持ってて自分に関することは全て知っていて
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…

703 :デフォルトの名無しさん:2017/10/01(日) 15:24:19.98 ID:z+KkZaZ7.net
よくわかんないけどデータベース(SQL)から(id,)name,price,weight,actionの(データ)クラスに入れてMapに突っ込むのは普通じゃね
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる

704 :デフォルトの名無しさん:2017/10/01(日) 15:27:41.13 ID:z+KkZaZ7.net

完全にサーバー<=>クライアント型のゲームを想定してました忘れてください

705 :デフォルトの名無しさん:2017/10/01(日) 15:35:03.09 ID:YDbLDpC/.net
よっぽどドラクエ2みたいなツクールサンプル的な単一用途アイテムでもない限り
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>700
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難

706 :デフォルトの名無しさん:2017/10/01(日) 16:36:39.58 ID:IPLbJXkb.net
薬草を使った時の処理
薬草を燃やした時の処理
薬草を売った時の処理


薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話

707 :デフォルトの名無しさん:2017/10/01(日) 17:36:02.79 ID:KiopyZMH.net
じゃあ毒消し草にも同じ処理コピペすんの?

708 :デフォルトの名無しさん:2017/10/01(日) 23:16:31.50 ID:aVSvWtqd.net
アルゴリズムと計算量を知らないのか

千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる

2分探索なら、データ数が千個でも、探索回数は、1/100 になる

2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる

データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない

709 :デフォルトの名無しさん:2017/10/01(日) 23:32:16.54 ID:kJ8csjIE.net
>>708
Mapのlookupなんですけど

710 :デフォルトの名無しさん:2017/10/01(日) 23:40:51.98 ID:3vO8zSI2.net
プログラミング向いてなさそう

711 :デフォルトの名無しさん:2017/10/01(日) 23:54:27.15 ID:f01mTcSu.net
二分探索と二分探索木の探索って違わない……?

712 :デフォルトの名無しさん:2017/10/02(月) 00:18:14.35 ID:YWGKtTIQ.net
>>711
文章を最後まで読んでる偉い子

713 :デフォルトの名無しさん:2017/10/02(月) 01:24:21.58 ID:wSRtZd0X.net
ゲームでマスタ類はID(=index)でアクセスするので計算量はO(1)
そして>>694の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる

714 :デフォルトの名無しさん:2017/10/02(月) 04:26:00.56 ID:/O3TaAQA.net
長文で探索語るなら、ZDDの説明ぐらいしなされ

715 :デフォルトの名無しさん:2017/10/02(月) 08:35:15.29 ID:fVjCl62I.net
一覧で管理したくなる量のデータ(とそれに紐づいた処理)のクラスをいちいち手作業で作るのが面倒大変だけどこれでいいのかなって話なんじゃないの
前が見えなくなる人は迷惑だな

716 :デフォルトの名無しさん:2017/10/02(月) 10:28:12.40 ID:o9ncCo8n.net
JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね

オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ

その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?

717 :707:2017/10/02(月) 23:30:03.61 ID:eOIGvVq/.net
DB だと、B-tree, B+ tree
計算量は、O(log n)

全(線形)探索なら、O(n)

計算量は、>>708
に書いた通り

n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回

データを2分探索木で構築していないのなら、DB には勝てない

718 :デフォルトの名無しさん:2017/10/02(月) 23:38:58.59 ID:o0D0xmrR.net
O(1)でやってんだからDBに勝ってるだろ

719 :デフォルトの名無しさん:2017/10/03(火) 00:27:03.06 ID:G2lKIaaK.net
100個のインスタンスを、生成しただけだろ?

Map(key : value) になっていないだろ?
Map なら、O(1) だけど

720 :デフォルトの名無しさん:2017/10/03(火) 01:18:34.37 ID:aqsVlxub.net
>>717
二分探索木じゃなくても二分探索はできるだろ
>>711の親切なツッコミをスルーして無駄レスすんなよ

721 :デフォルトの名無しさん:2017/10/03(火) 10:03:00.11 ID:/m6PSf5w.net
>>715も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど

722 :デフォルトの名無しさん:2017/10/04(水) 02:14:07.85 ID:KVI0o5Io.net
Kotlinの話しろよ

723 :デフォルトの名無しさん:2017/10/04(水) 08:09:18.36 ID:kznoEkrV.net
JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。

724 :デフォルトの名無しさん:2017/10/04(水) 08:38:43.69 ID:JPTWWYYO.net
なんて出てるの?

725 :デフォルトの名無しさん:2017/10/04(水) 08:42:20.58 ID:0hGgeKFz.net
Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ

726 :デフォルトの名無しさん:2017/10/04(水) 09:07:35.93 ID:V3GzLm78.net
multidexって何が辛いの?

727 :デフォルトの名無しさん:2017/10/04(水) 09:54:28.03 ID:cxJCJ2DC.net
\コットリ〜ン/

728 :722:2017/10/04(水) 19:34:08.08 ID:kznoEkrV.net
>>724
インタプリタにて↓
>>> 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

729 :デフォルトの名無しさん:2017/10/04(水) 19:35:36.92 ID:sxpDUYrW.net
kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用

730 :デフォルトの名無しさん:2017/10/04(水) 20:44:57.35 ID:+JSlwxf3.net
String, char[] が異なる型なのかも

文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?

731 :デフォルトの名無しさん:2017/10/04(水) 21:19:13.27 ID:1osd033a.net
kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?

732 :デフォルトの名無しさん:2017/10/04(水) 21:23:31.36 ID:ekjB4cHk.net
最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄

というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ

733 :デフォルトの名無しさん:2017/10/04(水) 22:29:29.12 ID:vuQl5P59.net
長澤太郎以外は販売できないことになっている

734 :デフォルトの名無しさん:2017/10/05(木) 01:07:21.32 ID:ioWgBjMx.net
>>731
まだあまり流行ってなくて出版社が乗り気じゃないのでは?

735 :デフォルトの名無しさん:2017/10/05(木) 04:39:51.99 ID:i/YPJQu8.net
今月2冊出るよ

736 :デフォルトの名無しさん:2017/10/05(木) 09:20:35.38 ID:qdkn4E5e.net
おおそうか

737 :デフォルトの名無しさん:2017/10/05(木) 21:38:31.29 ID:c5+kzESi.net
サーバーサイドKotlin明日発売やないか

738 :デフォルトの名無しさん:2017/10/05(木) 23:00:14.40 ID:RWFlOlgJ.net
流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える

このおっさん1人で、プログラミングの約半分の分野を、網羅しているw

739 :デフォルトの名無しさん:2017/10/05(木) 23:19:11.04 ID:c5+kzESi.net
そいつが出す本自体は糞だけどな

740 :デフォルトの名無しさん:2017/10/05(木) 23:21:16.13 ID:XUc7C4CE.net
別に流行り廃りでプログラムするわけじゃないしな

741 :デフォルトの名無しさん:2017/10/06(金) 01:37:01.01 ID:x0C9073k.net
これか。10月6日発売。

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/aQkmPNJ

742 :デフォルトの名無しさん:2017/10/06(金) 04:09:03.86 ID:tqIbkLAn.net
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6

743 :デフォルトの名無しさん:2017/10/06(金) 05:25:11.21 ID:dm5GZqP5.net
http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?

744 :デフォルトの名無しさん:2017/10/06(金) 05:39:21.03 ID:tqIbkLAn.net
Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?

745 :デフォルトの名無しさん:2017/10/06(金) 09:08:25.48 ID:NqBQU0ep.net
それは答を教えてくれるわけじゃないからなあ

>>743
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ

746 :デフォルトの名無しさん:2017/10/06(金) 10:14:22.41 ID:dm5GZqP5.net
>>745
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね

747 :デフォルトの名無しさん:2017/10/06(金) 11:25:26.06 ID:oni6PLk4.net
val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()

748 :デフォルトの名無しさん:2017/10/06(金) 17:16:40.52 ID:X4PDhaWR.net
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)
...

749 :デフォルトの名無しさん:2017/10/06(金) 19:04:09.88 ID:X4PDhaWR.net
>>748
動いた。最後のほうの独立した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タブ表示
書かなくても動いてる人はどっかで設定してるんだろうな

750 :デフォルトの名無しさん:2017/10/06(金) 21:33:44.02 ID:tqIbkLAn.net
プログラミング GROOVY、2011

Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012

751 :デフォルトの名無しさん:2017/10/06(金) 22:27:21.32 ID:tSMXLmVc.net
>>749
同じ苦労したことある。ドキュメントに書いてよ…。

752 :デフォルトの名無しさん:2017/10/07(土) 05:51:08.18 ID:dZntJrcK.net
>>747
aaaに押し込みなさい

753 :デフォルトの名無しさん:2017/10/07(土) 14:33:30.45 ID:tYMANlqN.net
SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー

754 :デフォルトの名無しさん:2017/10/07(土) 14:36:59.78 ID:lxJ0Yf9D.net
kotlinはJavaわかんなくても他言語やってたらイケル?

755 :デフォルトの名無しさん:2017/10/07(土) 14:53:56.94 ID:tYMANlqN.net
>>754
言語仕様の理解においてはJavaの経験は不要

ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね

756 :デフォルトの名無しさん:2017/10/07(土) 14:59:26.09 ID:lxJ0Yf9D.net
>>755
ありがとうございます
kotlinがandroidの開発言語としてサポートされることになったので試してみたいなーと思ってたんでアプリ作ってみます

757 :デフォルトの名無しさん:2017/10/07(土) 18:31:13.36 ID:b4KK/o19.net
javaは1日でマスターできるので実質java未経験でも問題ないよ

758 :デフォルトの名無しさん:2017/10/07(土) 19:18:53.56 ID:rBYfi2xH.net
変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです

759 :デフォルトの名無しさん:2017/10/07(土) 19:29:23.45 ID:+RQU5E5j.net
ことぅりんだからなお前ら
ことりんとかいってたら数す

760 :デフォルトの名無しさん:2017/10/07(土) 19:33:19.97 ID:+RQU5E5j.net
それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...

761 :デフォルトの名無しさん:2017/10/07(土) 19:41:49.21 ID:XbHkmFTG.net
ことりんかわいい

762 :デフォルトの名無しさん:2017/10/07(土) 22:16:30.42 ID:f9dDdlSq.net
ことりん(*´ェ`*)ポッ

763 :デフォルトの名無しさん:2017/10/07(土) 22:18:46.44 ID:iveAgMmn.net
人間だったら絶対美少女

764 :デフォルトの名無しさん:2017/10/07(土) 22:55:16.08 ID:LDd+/z40.net
ちょまどが漫画書いてくれないかなあ

765 :デフォルトの名無しさん:2017/10/07(土) 23:13:31.53 ID:X09Q1vcV.net
ちょまど(笑)

766 :デフォルトの名無しさん:2017/10/07(土) 23:16:52.81 ID:+RQU5E5j.net
お前ら...
https://www.hi-jax.com/namiaki/wp-content/uploads/2016/05/81C582BB-243A-4636-B3E4-DFD58ED4D17C.jpg

767 :デフォルトの名無しさん:2017/10/07(土) 23:38:16.22 ID:f9dDdlSq.net
>>758
君の言いたいことがよくわからない。

768 :デフォルトの名無しさん:2017/10/07(土) 23:51:42.16 ID:2fKU1//d.net
何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな

769 :デフォルトの名無しさん:2017/10/08(日) 01:04:04.02 ID:bhcsmcAx.net
あざとい名前つけやがって

770 :デフォルトの名無しさん:2017/10/08(日) 01:14:02.14 ID:93IJP3PA.net
>>758
KFunctionのcall

val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)

771 :デフォルトの名無しさん:2017/10/08(日) 01:22:31.02 ID:93IJP3PA.net
>>768
Objective-Cだと結構普通に使うんよ

772 :デフォルトの名無しさん:2017/10/08(日) 01:57:15.44 ID:32PQUixn.net
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"]

773 :デフォルトの名無しさん:2017/10/08(日) 02:41:05.63 ID:c+/m9riq.net
あ、ようやっと何言ってるかわかったw

774 :デフォルトの名無しさん:2017/10/08(日) 21:54:57.44 ID:32PQUixn.net
IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?

775 :デフォルトの名無しさん:2017/10/09(月) 19:59:00.68 ID:3clxx/P9.net
リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい

776 :デフォルトの名無しさん:2017/10/09(月) 20:53:05.90 ID:sCOU7I7y.net
>>741
その本さっき紀伊国屋で買った

777 :デフォルトの名無しさん:2017/10/09(月) 21:17:44.65 ID:bvkIQjV4.net
その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ

778 :デフォルトの名無しさん:2017/10/09(月) 21:55:29.10 ID:4WiIHmfQ.net
>>775
既存の関数一つで、ということなら知らないけど
関数追加して良いのなら
http://rextester.com/JSYB15250

779 :デフォルトの名無しさん:2017/10/09(月) 22:00:53.70 ID:4WiIHmfQ.net
Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う

アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler

780 :デフォルトの名無しさん:2017/10/09(月) 22:34:41.54 ID:c41RoAYB.net
言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?

781 :デフォルトの名無しさん:2017/10/09(月) 23:58:04.80 ID:tFlwnlNI.net
>>780
同じことやるのでもJavaより記述が楽そうな感じがするからだ。
更にこれまでのJavaの資産を使えるのが良い。

782 :デフォルトの名無しさん:2017/10/10(火) 00:00:43.01 ID:jM5sd94/.net
どんどん高級度が増して行ってそのうち人間はなぜソフトウェアがCPU上で動いているのかその仕組みを知る人がいなくなるのですね
そしてAIと対峙しなければならなくなったとき誰も対応できなくなる
そういう未来が待っているのでしょう

783 :デフォルトの名無しさん:2017/10/10(火) 04:02:27.77 ID:Q5yhaeDv.net
>>777
ま、今後に期待だな。

一応 Google が Android 用として採用したんだから入門書は他にも出てくると思う。
ネットの情報も増え続けるだろう。

784 :デフォルトの名無しさん:2017/10/10(火) 10:24:21.67 ID:8V61cfLq.net
いままでひらがなだけのぶんしょうだったのがかんじがつかえるようになったというかんじだ
そりゃ最終的な音としては漢字があっても無くても変わらないかもしれないが、漢字を理解していれば読みやすく書きやすい
長文を書きやすくもなるだろうし、そこから生まれるものもあろう
個人的にはスクリプト言語のような立ち位置だと思っている

785 :デフォルトの名無しさん:2017/10/10(火) 21:49:29.43 ID:VPwnJAPN.net
今月末に出るKotlin in actionの方は上級者向けのような気がする

786 :デフォルトの名無しさん:2017/10/10(火) 22:21:41.00 ID:FWHsF53j.net
>>785
なんだ、日本語訳でるのか。頑張って洋書の方読んでるけど、理論だてて書いてあるのでわかりやすい。ところどころJavaとの比較があり、Javaの知識がないとちょっと苦しいとこあるかも。あとTry Kotlinでサンプルもあるよね。

787 :デフォルトの名無しさん:2017/10/10(火) 23:01:05.11 ID:Z3ZusD4X.net
in action は上級じゃないよ
プログラミング初心者向けじゃないけど
最初の1冊に選んでいい本

788 :デフォルトの名無しさん:2017/10/10(火) 23:25:19.52 ID:VPwnJAPN.net
日本語の技術書とかネットの情報でも日本語のものだと実務に使えるレベルに達しなくなってきてるよね
日本はIT後進国になってしまったんだと常々感じる

789 :デフォルトの名無しさん:2017/10/10(火) 23:37:43.52 ID:ZTVh7Eud.net
>>788
テクノロジーの移り変わりが早すぎて、一次リソースを参考にした方が効率的だし、わざわざ日本語に訳す必要もないから

790 :デフォルトの名無しさん:2017/10/10(火) 23:38:33.00 ID:sNdI8sqC.net
>>788
先進国だった時なんてあったか?

791 :デフォルトの名無しさん:2017/10/10(火) 23:42:30.50 ID:gasOXxRr.net
一昔前はtronとかあったやん
今の日本はなにもない

792 :デフォルトの名無しさん:2017/10/11(水) 00:08:24.55 ID:YuycjJaM.net
最速だからいいということばかりでもない
周回遅れでも構わない情報のほうが世の中には多い
Kotlinスタートブックは1年以上前の刊行だけど使えないゴミだと言う人はまともな人にはおるまい

793 :デフォルトの名無しさん:2017/10/11(水) 00:09:08.60 ID:T++UmApy.net
ハードはともかく
ソフトは先進国だった事はない

794 :デフォルトの名無しさん:2017/10/11(水) 00:18:15.85 ID:EN0HNRmd.net
これからなればいい

795 :デフォルトの名無しさん:2017/10/11(水) 00:23:02.14 ID:JdWo4X1f.net
Androidの技術書見ても現在主流の
RxJava, databinding, MVVM, flux, redux辺りの解説をしている本が全然ない
Androidだからまだネットで日本語の情報多いけど、
iOSになると本当に英語の情報しかなくなってくる
本当に駄目な国になってきている
ニュージーランド辺りに脱出した方がいいんじゃないかと思ってくるレベル
あっちはプログラマーの年収1000万らしいし

796 :デフォルトの名無しさん:2017/10/11(水) 00:30:16.27 ID:LhuJ4eZA.net
>>795
英語の情報があればいいやろ

797 :デフォルトの名無しさん:2017/10/11(水) 00:31:11.36 ID:JfiRQ2Rl.net
むしろ英語を使うようになったからでは
日本語の書籍は高いし遅いし

798 :デフォルトの名無しさん:2017/10/11(水) 00:31:53.22 ID:V+6zovsu.net
>>795
お前と違って、英語の情報だけで充分なエンジニアが増えているという見方もできる

799 :デフォルトの名無しさん:2017/10/11(水) 00:33:36.19 ID:EN0HNRmd.net
そしてみんなが苦もなく英語が読めるようになった頃、完璧な自動翻訳が完成する。

800 :デフォルトの名無しさん:2017/10/11(水) 01:16:39.94 ID:OvZKAieI.net
>>797
msのxamarin本なんか、原本はePubなら無料だが、日本語訳したとたんに6000円になるぜ!

801 :デフォルトの名無しさん:2017/10/11(水) 01:19:17.66 ID:YuycjJaM.net
>>800
安心しろ
日本の技術書を英訳してもだいたい1冊40ドルくらいにはなる
固定化されて訂正できない翻訳には人件費がかかるのだ

802 :デフォルトの名無しさん:2017/10/11(水) 14:21:15.86 ID:WJBR6sLF.net
英語、ちゃんと理解できるようにならんと、これからはだめなんだろうなぁ
なんとなくでしか読めんし、結局分からん事は日本語で探して解決するから、英語だけで完結できん
一年かけて英語習得するか!

803 :デフォルトの名無しさん:2017/10/11(水) 14:48:59.07 ID:YuycjJaM.net
高卒くらいの英語力は保持してるつもりなのにネットの記事がぜんぜん読めんという場合
・スラングがめっちゃ入ってる
・ネット文法が入ってて正規寄りではないので読み取れない
・専門用語が専門的すぎる
のだいたいどれかで、プログラミングの記事は最後の比率が大きい
これは英語本体をどんだけ勉強しても専門用語の日本での意味や技術的意味がわかるわけではないので役に立たない
パブリックメソッドを行政手法と訳してたら絶対わからんわけでな

804 :デフォルトの名無しさん:2017/10/11(水) 16:03:19.52 ID:hhJP1zLS.net
プログラマで英語弱い人はTry Kotlinのサンプルをちょこちょこ試してみたほうがより効率的かもね

805 ::2017/10/11(水) 18:19:59.78 ID:Q0CgrKbU.net
>>803
逆にしばらくエンジニアやってりゃ、技術文書は読めるようになったりするけどな。
仕事でやるなら翻訳自体、翻訳メモリ使って翻訳することの方が多いし。
翻訳メモリで完全新規な文書の翻訳はたまに手伝う。

806 :デフォルトの名無しさん:2017/10/11(水) 18:21:22.65 ID:AVBsiIwy.net
>>802
おお。そうだ。このスレはこれから英語で書こう。

807 :デフォルトの名無しさん:2017/10/11(水) 18:22:16.37 ID:AVBsiIwy.net
i have a pen

808 :デフォルトの名無しさん:2017/10/11(水) 20:28:51.56 ID:qqbN54VH.net
>>807
文頭は大文字にしなきゃ

809 :デフォルトの名無しさん:2017/10/11(水) 20:39:22.12 ID:M3+oH0ZC.net
Iは文頭でなくても大文字にしなきゃ

810 :デフォルトの名無しさん:2017/10/11(水) 20:56:44.06 ID:PtNlY4pv.net
have じゃなくて am でしょ

811 :デフォルトの名無しさん:2017/10/11(水) 21:23:33.96 ID:JdWo4X1f.net
I am a pen

812 :デフォルトの名無しさん:2017/10/11(水) 23:47:37.98 ID:9t+rVGQp.net
me too

813 :デフォルトの名無しさん:2017/10/12(木) 07:16:44.81 ID:OX/pZMRS.net
人間はいねぇのかここは...

814 :デフォルトの名無しさん:2017/10/12(木) 08:54:42.09 ID:Pi/VQsL7.net
高卒レベル英語力(英検2級)と辞書があれば、読めるだろうに。

815 :デフォルトの名無しさん:2017/10/12(木) 09:09:03.89 ID:tSTw7rai.net
は?英語なんて知らなくても全部グーグル先生に突っ込めば読める

816 :デフォルトの名無しさん:2017/10/12(木) 09:18:29.99 ID:AXWM+xbo.net
I am fool.
You are fool.
We are fool.

817 :デフォルトの名無しさん:2017/10/12(木) 09:46:23.80 ID:o8TlX9Z0.net
>>816
you fool
you are a fool
you are dead foolish

article required

818 :デフォルトの名無しさん:2017/10/12(木) 10:15:06.41 ID:7rfu7aua.net
You is a big fool man.
Hahahaha.

819 :デフォルトの名無しさん:2017/10/12(木) 11:44:05.54 ID:6DbuDLdk.net
me too

820 :デフォルトの名無しさん:2017/10/12(木) 12:17:18.61 ID:jZh2ph1X.net
lol

821 :デフォルトの名無しさん:2017/10/12(木) 12:40:17.85 ID:LPj/TZWs.net
It is useless. I can not communicate at all in English.

822 :デフォルトの名無しさん:2017/10/12(木) 13:56:58.96 ID:3A6lsKEo.net
Kotlin is so cute;-)

823 :デフォルトの名無しさん:2017/10/12(木) 16:54:50.54 ID:irZYU/94.net
pls, say fool just another...

824 :デフォルトの名無しさん:2017/10/12(木) 17:44:23.32 ID:cYyBZWxu.net
all your base are belong to us

825 :デフォルトの名無しさん:2017/10/12(木) 18:33:55.37 ID:o8TlX9Z0.net
>>824
All your bases belong to our country.

中卒レベル

826 :デフォルトの名無しさん:2017/10/12(木) 18:38:55.59 ID:W4Y9jhaF.net
>>825
https://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us

827 :デフォルトの名無しさん:2017/10/12(木) 20:17:00.25 ID:o8TlX9Z0.net
知らんかったわ
「ワレワレハ…」的なノリね

828 :デフォルトの名無しさん:2017/10/12(木) 21:43:09.54 ID:5ILt7KpA.net
Engrish

829 :デフォルトの名無しさん:2017/10/12(木) 22:43:44.31 ID:OX/pZMRS.net
>>816
Hey, don't include me in foolish people!

830 :デフォルトの名無しさん:2017/10/12(木) 23:58:19.05 ID:IILQSMTY.net
*/

831 :デフォルトの名無しさん:2017/10/13(金) 00:42:44.70 ID:JcXjubca.net
こぉっとぅりんっ

832 :デフォルトの名無しさん:2017/10/13(金) 00:43:15.89 ID:JcXjubca.net
こぉとぅりん

833 :デフォルトの名無しさん:2017/10/13(金) 00:49:55.72 ID:neFZx4WS.net
>>829
I am your friend.

834 :デフォルトの名無しさん:2017/10/13(金) 19:18:19.17 ID:/02if2W5.net
いますぐJavaをやめてKotlinに移行すべき10の理由↓

835 :デフォルトの名無しさん:2017/10/13(金) 19:28:52.37 ID:WJkFRsiD.net
1. I love kotlin.

836 :デフォルトの名無しさん:2017/10/13(金) 19:30:46.10 ID:WJkFRsiD.net
2. We love kotlin.

837 :デフォルトの名無しさん:2017/10/13(金) 20:13:20.58 ID:Gc4qJwYJ.net
3. We are Kotlin.

838 :デフォルトの名無しさん:2017/10/13(金) 21:17:09.35 ID:snGniETu.net
このスレもう要らないな

839 :デフォルトの名無しさん:2017/10/14(土) 00:02:55.04 ID:UTsnHwgS.net
>>838
Are you pen?

840 :デフォルトの名無しさん:2017/10/14(土) 00:07:29.38 ID:F+wwiVHB.net
碌に移行する理由がないんじゃJavaの天下は続くな。

841 :デフォルトの名無しさん:2017/10/14(土) 00:24:30.10 ID:lMgWewwv.net
理由ならある
呼び名がかわいい

842 :デフォルトの名無しさん:2017/10/14(土) 05:04:47.87 ID:rkGKts9o.net
これから流行るんじゃねえか? まずは Android 用アプリ作成に使うのが流行ると思うぞ。

843 :デフォルトの名無しさん:2017/10/14(土) 06:05:23.13 ID:Ls8C6+0E.net
AndroidStudio3.0のベータ版だと、アプリとテストの雛形のデフォルトがKotlinになってるから
特にこだわりがない人は Kotlin 使うようになるだろね

844 :デフォルトの名無しさん:2017/10/14(土) 08:54:09.10 ID:UTsnHwgS.net
Null安全だけでも以降するのに十分な理由になると思うが

845 :デフォルトの名無しさん:2017/10/14(土) 09:23:07.84 ID:mCAw9QQf.net
>>839
No, it is an apple.

and Swift

846 :デフォルトの名無しさん:2017/10/14(土) 09:34:03.59 ID:22PxWoNo.net
ぬる安全で動かなきゃletとかwithとかalsoとか見せればイチコロだと思うにゃん
さほど変態的でない記述でJavaコードが更に短くなるというだけで訴求力はあるはず

847 :デフォルトの名無しさん:2017/10/14(土) 09:37:33.59 ID:A2JBGmbK.net
スクリプト動作モードは遅すぎて使い物にならないな

848 :デフォルトの名無しさん:2017/10/14(土) 14:20:16.21 ID:mpqXFZeP.net
>>844
Going.

849 :デフォルトの名無しさん:2017/10/14(土) 14:26:02.66 ID:ocOTfHdi.net
withは要らんわ
大してメリットが無く紛らわしいだけだからとC#が意図的にVBから削ったゴミを
なぜ今更復活させてしまったのか

850 :デフォルトの名無しさん:2017/10/14(土) 14:28:24.42 ID:UTsnHwgS.net
let, with, alsoの使い分けがよくわからん

851 :デフォルトの名無しさん:2017/10/14(土) 14:55:18.93 ID:xdbq9lHZ.net
letは「これnot nullのif文代わりに使えるじゃん!」って置き換えるもその後にelse節が必要になって泣く泣く書き換える羽目になるトラップとして使う

852 :デフォルトの名無しさん:2017/10/14(土) 16:45:54.36 ID:UTsnHwgS.net
valで変数を書き始められるのが楽
Javaに戻ると型名書かないといけなくて脳に負担がかかる

853 :デフォルトの名無しさん:2017/10/14(土) 16:59:08.57 ID:F+wwiVHB.net
Javaがどんどん軟派化仕様を取り入れてるときに、軟派言語出されても競合するなぁ。

854 :デフォルトの名無しさん:2017/10/14(土) 17:32:07.97 ID:UTsnHwgS.net
Javaの件でOracleがGoogleを訴えたりしてなかったっけ?
あれが関係しているような気がするんだが

855 :デフォルトの名無しさん:2017/10/14(土) 17:46:40.03 ID:F+wwiVHB.net
MSは訴えられてWindowsからMS製Javaを排除したが、
AndroidからGoogle製Javaを排除したらただのLinuxじゃん。

856 :デフォルトの名無しさん:2017/10/14(土) 17:52:02.81 ID:iaPiK/ZP.net
Googleが訴えられたのはJVMとAPIだから言語を変えたところで何の意味もないよ

857 :デフォルトの名無しさん:2017/10/14(土) 18:08:25.27 ID:+XwGR1nT.net
言語がモダンになってIDEが必須になってどんどん人間がバカになっていくぅ

858 :デフォルトの名無しさん:2017/10/14(土) 19:31:44.98 ID:zWnjpaDB.net
>>851
?: run {} が使える

859 :デフォルトの名無しさん:2017/10/14(土) 21:25:44.86 ID:Ls8C6+0E.net
>>849
withは言語機能として組み込まれてるわけじゃなくて、
他のrunとかapplyでも使ってるレシーバ付き関数リテラルの一番簡単な使い方
このレシーバ付き関数リテラルがあれば、withみたいな関数は簡単に定義できるんで、
withがダメっていうならレシーバ付き関数リテラルもダメってことになる
でもKotlinは意図的にレシーバ付き関数リテラルを用意して活用する気満々なんだよ

860 :デフォルトの名無しさん:2017/10/15(日) 01:36:56.98 ID:ZgJv24or.net
with ってこれなのな。
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()

https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e

861 :デフォルトの名無しさん:2017/10/15(日) 01:57:24.53 ID:1JZd3G1s.net
withってほとんどの場合副作用使うからなあ
現代的なプログラミングにはそぐわないよ

862 :デフォルトの名無しさん:2017/10/15(日) 02:28:15.35 ID:fk/JYaTL.net
Kotlinのwithは値を返すから副作用を利用するかどうかは使う人次第だ

863 :デフォルトの名無しさん:2017/10/15(日) 03:09:10.81 ID:ps8be+yY.net
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)
}
}

864 :デフォルトの名無しさん:2017/10/15(日) 03:38:27.73 ID:rZYksuR6.net
Iterable.groupBy()があるよ
やってることは結局その例とかわらないけど

865 :デフォルトの名無しさん:2017/10/15(日) 04:01:40.27 ID:fk/JYaTL.net
こんな感じか
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]

866 :デフォルトの名無しさん:2017/10/15(日) 17:12:21.76 ID:sVOncOOl.net
>>865
itのままでいいなら二番目のパラメータ省略できるよ。

867 :デフォルトの名無しさん:2017/10/15(日) 18:32:02.26 ID:fk/JYaTL.net
>>866
なるほど、ならばこんな感じに
val result = group.groupBy {it.run{when{isHoge()->0; isHage()->1; else->2}}}

868 :デフォルトの名無しさん:2017/10/15(日) 19:18:47.56 ID:WbabBMh3.net
さっき本屋行ったらこんなの売ってた。工学社の I/O BOOKS のやつだ。
https://i.imgur.com/UHC2KT1.jpg
ぱらぱらめくって見た感じでは全体が簡単にまとめられているようではあった。
小さいサイズの本の方がいい人向けかな。
まあしかし買うなら立ち読みして確認してからにするとよい。

869 :デフォルトの名無しさん:2017/10/15(日) 19:22:52.08 ID:g+9Qt1e8.net
電子書籍で出してくれ

870 :デフォルトの名無しさん:2017/10/15(日) 23:30:21.51 ID:9R+c2v2L.net
本屋で写真取ると捕まるぞ。

871 :デフォルトの名無しさん:2017/10/15(日) 23:38:59.63 ID:YqfACteL.net
長澤太郎以外でも出せるんだな

872 :デフォルトの名無しさん:2017/10/16(月) 01:10:50.17 ID:K3bUm04o.net
>>870
ああ。中身撮影してると思われたら捕まるだろうな。w
しかし少し離れた所から表紙しか撮影してないから誤解されることはないと思うがな。

873 :デフォルトの名無しさん:2017/10/16(月) 02:03:12.91 ID:8vIi4A+y.net
>>872
店舗内での書影撮影に関してはわりと明確なルールがあるよ

・ 書店が入っている商業施設が無断撮影禁止なら無断撮影者は退去対象である

明瞭だ
著作権とかどうでもいい
出禁だ出禁

874 :デフォルトの名無しさん:2017/10/16(月) 02:12:21.73 ID:1RgvFhx3.net
>>873
店内で本をスマホにかざすとアクションが起こるみたいなアプリがまずぶつかる障壁だな
本屋主導の電書アプリでついてる機能でプレスリリースまで出したけど立ち消えになったりもする
kotlinでシチュ限定スマホアプリ作ってる人もいるだろうけどスマホ使用制限エリアとの兼ね合いには注意だ

875 :デフォルトの名無しさん:2017/10/16(月) 19:28:21.38 ID:hogQmxQx.net
これを皮切りに
kotlinの本が続々出て今年から来年にかけて
爆発的に売れる予感。

876 :デフォルトの名無しさん:2017/10/16(月) 21:34:34.38 ID:8lVe0990.net
とりあえずはインアクションがあればいいな
やっとまともな本が出る

877 :デフォルトの名無しさん:2017/10/16(月) 21:37:31.83 ID:7CHwAcHs.net
まともに移行する理由がひとつも挙げれなかったから爆発しない。F#ぐらいの立ち位置だな。

878 :デフォルトの名無しさん:2017/10/16(月) 21:38:36.04 ID:nm/6hD9y.net
Null安全はでかいだろ
プログラミング初心者か

879 :デフォルトの名無しさん:2017/10/16(月) 21:53:29.09 ID:7CHwAcHs.net
なるほど。Null安全か。よしJavaに追加しよう。

880 :デフォルトの名無しさん:2017/10/16(月) 21:53:40.26 ID:TAj2pYDL.net
>>878
そうだよ
http://mevius.5ch.net/test/read.cgi/tech/1492843013/978

881 :デフォルトの名無しさん:2017/10/16(月) 22:04:58.29 ID:nm/6hD9y.net
プログラミング初心者がF#とか言ってんのか

882 :デフォルトの名無しさん:2017/10/16(月) 22:12:56.85 ID:7CHwAcHs.net
この人は人の話を聞かず妄想で話を進める人だな。

頭に蛆でも沸いてるのか?

883 :デフォルトの名無しさん:2017/10/16(月) 22:49:58.86 ID:snZUUJVe.net
今爆発が始まったばかりなんだよ。

884 :デフォルトの名無しさん:2017/10/17(火) 03:13:52.64 ID:hVetZd8l.net
Javaで困ってねーからな。Javaで困ってる案件をKotlinなら解決できるわけもなく。

中にはNull例外で困ってる初心者もいるようだが。

885 :デフォルトの名無しさん:2017/10/17(火) 04:17:41.05 ID:NmuLnA8X.net
Java自体Android開発以外であんまり使わないからKotlin Nativeに期待してる
仕事だとWebはPHP、PCはexe形式のWin用の案件ばっかりなんだよね

886 :デフォルトの名無しさん:2017/10/17(火) 08:01:28.76 ID:7/LKBs88.net
未だに手続き型の泥臭いコードが主流の日本じゃ流行らないでしょ
日本はCOBOLとstatic Javaが正義

887 :デフォルトの名無しさん:2017/10/17(火) 08:17:08.08 ID:gQ4z+/LN.net
どうして自分で使ってもいない言語のスレにやってきて書き込むのかまったく意味不明

888 :デフォルトの名無しさん:2017/10/17(火) 09:12:43.23 ID:dhvYHJws.net
Kotlinできないやつは仕事がなくなる

889 :デフォルトの名無しさん:2017/10/17(火) 09:31:20.86 ID:4QIDkuyk.net
「Javaで作ってます(実際にはKotlinですが)」というパターンが増えると思う
Javaのボイラープレートコードを
・IDEが自動生成してソースに直書きする
・Kotlinがコンパイル時に追加書きする
という程度の違いしかないわけだし
見る必要のないものは見えないほうが能率的にも好ましい

890 :デフォルトの名無しさん:2017/10/17(火) 10:54:09.69 ID:hVetZd8l.net
>>888
Java以上に難解な言語だからな。

891 :デフォルトの名無しさん:2017/10/17(火) 11:27:44.11 ID:onQ9Ahkh.net
>>890
Kotlinからプログラミングに入った人が、数年経ってからJavaに手を出したとして、Javaの方が簡単だと思うかな

892 :デフォルトの名無しさん:2017/10/17(火) 12:21:38.68 ID:H+HUM8Ad.net
まだ学習中ではあるが、Java より Kotlin の方が簡単なのではないかという感じがしている。
少なくとも同じことやろうとしたら Java では記述が面倒になるものがある。

893 :デフォルトの名無しさん:2017/10/17(火) 12:48:53.61 ID:dhvYHJws.net
型名から書き始めるのがだるく感じるようになってしまった

894 :デフォルトの名無しさん:2017/10/17(火) 13:37:15.76 ID:gQ4z+/LN.net
>>892
簡単だよ、「教科書」の範囲を脱するとJavaの知識は絶対に必要だからちょっとアレだけど
所要時間の7割くらいはKotlinでざくざく書ける
残り3割は
・ 事例をKotlinでググったがJavaのしか出てこなかったので諦めてJavaを読んでいる
・ IntelliJでJavaコードを変換してもらったらジェネリクスやコンパニオンオブジェクトやアノテーションだらけになりしかも動かないので泣きながら修正している
・ IntelliJに変換してもらおうとしたらどうやらスニペットらしく何度ペーストしてもうんともすんとも言わないので吐きながら手作業でひとつひとつ置き換えている
のだいたいどれかだ

895 :デフォルトの名無しさん:2017/10/17(火) 18:57:01.82 ID:hVetZd8l.net
ビット演算子とかすでに普及したC系の書法あるのになんで変えるんだろう?

896 :デフォルトの名無しさん:2017/10/17(火) 19:18:36.93 ID:30A/rDEh.net
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
http://news.mynavi.jp/news/2017/10/17/044/

897 :デフォルトの名無しさん:2017/10/17(火) 19:47:17.34 ID:hVetZd8l.net
イライラするな、そのグラフ。クリックしても全然拡大できねー。

898 :デフォルトの名無しさん:2017/10/17(火) 20:36:40.86 ID:H+HUM8Ad.net
>>897
スマホやタブレットなら拡大するを押した後はピンチできると思うよ。

899 :デフォルトの名無しさん:2017/10/17(火) 20:39:30.41 ID:dhvYHJws.net
お前ら時代についていけなくてプログラミングの仕事ができなくなるぞ
Kotlin以外にもRxとかdatabindingとかMVVM, flux, MVIとか
新しい技術がどんどんでてきてんのにどうすんだ

900 :デフォルトの名無しさん:2017/10/17(火) 20:50:31.20 ID:H+HUM8Ad.net
え?全部覚えればいいだけでは?

901 :デフォルトの名無しさん:2017/10/17(火) 20:55:29.61 ID:y2IFefmv.net
調べ方さえ知っときゃいいのよ
基本はアルゴリズム

902 :デフォルトの名無しさん:2017/10/17(火) 20:58:55.12 ID:O+BDW8Aj.net
>>899
え?新しい?
どれのこと言ってんの?

903 :デフォルトの名無しさん:2017/10/17(火) 20:59:12.42 ID:GiRVoeFb.net
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
ttp://news.mynavi.jp/news/2017/10/17/044/

904 :デフォルトの名無しさん:2017/10/17(火) 21:27:02.26 ID:kRPJAKch.net
アセンブラに回帰するから大丈夫

905 :デフォルトの名無しさん:2017/10/17(火) 23:21:34.71 ID:A1W0Ufl3.net
>>900
無理だよ
お前が天才なら話は別だが

906 :デフォルトの名無しさん:2017/10/17(火) 23:26:52.13 ID:hVetZd8l.net
Kotlinは最新鋭の言語だからな。ついていくにはかなりの勉強が必要。
オブジェクト思考なにそれじゃとても無理。

907 :デフォルトの名無しさん:2017/10/17(火) 23:38:47.28 ID:psnU0zFe.net
Kotlinが分からないお前ら全員失業www無職ざまあwwwwww

908 :デフォルトの名無しさん:2017/10/18(水) 00:26:22.06 ID:AVtT/z6f.net
>>899
あなた「が」その技術を作って売っているのでないのなら、アタラシイギジュツというのは業務としては無視してよい
それの半数は1年で話題にならなくなり、2年でその半数が消える
3年経っても話題になり生き残っているのなら、そこで初めて検討すればいい(たとえばKotlinのように)

まあそれの多くは技術というよりは概念だからわりと生き残ってる部類だが
家のプログラミングで追いかけてりゃ十分じゃないかな

909 :デフォルトの名無しさん:2017/10/18(水) 09:11:29.05 ID:rBz0muCO.net
Kotlinの定数ってどう書くのが正しいんですか
全部大文字にしてアンダースコアで繋げる、
じゃないですよね

910 :デフォルトの名無しさん:2017/10/18(水) 09:38:16.58 ID:96L4BFY0.net
>>909
companion object{
const val hoge
}
Javaライブラリから定数だと思ってもらう必要がないならcompanion object{}はいらないはず
hogeの名前部分は好きに書け
仰る通り全部大文字アンダースコア区切りが普通ね

911 :デフォルトの名無しさん:2017/10/18(水) 12:26:44.80 ID:iXMhk9b6.net
>>905
そうか。じゃあ問題ないな。

912 :デフォルトの名無しさん:2017/10/18(水) 15:49:53.65 ID:ZPgodlCt.net
>>905
idiot savant なら話は別だが
の誤記だよね

913 :デフォルトの名無しさん:2017/10/18(水) 20:53:45.43 ID:9Hfah7Rk.net
ねえコトリン^^

914 :デフォルトの名無しさん:2017/10/19(木) 13:53:40.95 ID:kzg66C9N.net
こっち向いて

915 :デフォルトの名無しさん:2017/10/19(木) 14:09:52.81 ID:ZSJg0roA.net
     ☆      ∬   ∬
     |\      r;ェ、c3 シュンシュン
     ∴∴∴   _(_'フ__
     (´・ω・`) |l三三三||¬| 
    ( _ つ  .|l三旦三||  | 
    (_(__ノ  「目   「:_] 

916 :デフォルトの名無しさん:2017/10/19(木) 22:05:31.14 ID:zAbDVwTY.net
>>914
ロシアが攻めて来たのよ

917 :デフォルトの名無しさん:2017/10/19(木) 23:19:09.40 ID:v9LYhYCi.net
ロ、ロ、ロ、ロシアン

918 :デフォルトの名無しさん:2017/10/20(金) 09:23:09.66 ID:cIqzCW7A.net
Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
ttp://www.publickey1.jp/blog/17/kotlinandroidrealm.html

919 :デフォルトの名無しさん:2017/10/20(金) 10:33:28.19 ID:ogaeHTAB.net
それはKotlinのスキル有無の問題ではなくて、
Kotlin程度、まともにJavaできる人なら適当に一日触ったら十分使いこなせるようになるんだから
それができないレベルの人には仕事はないという当たり前の話だと思う

920 :デフォルトの名無しさん:2017/10/20(金) 11:04:30.15 ID:q2wuGssb.net
kotlinはjavaの唯一最大の参入障壁「やりたいことに対して無意味にも思える記述が多すぎる」を解消した
あとはちょっと変わった記述の適用広範囲Javaライブラリみたいなもんだからな、そりゃ使われるわ

実はKotlinよりもプログラミング言語的に素晴らしいScalaさんという一つ上くらいの先輩がいるのだが
Scalaさんは初動に集まった人がアカデミックだった上に記号魔術で遊び過ぎて印象悪くして失敗してしまったのだ(初動大事)

921 :デフォルトの名無しさん:2017/10/20(金) 12:09:50.84 ID:+lt7TopC.net
Javaオンリーな人が付け焼き刃でKotlin使うようになってほぼJavaなKotlinコードが量産されるんだろうな

922 :デフォルトの名無しさん:2017/10/20(金) 12:36:09.65 ID:q2wuGssb.net
>>921
たとえば??

923 :デフォルトの名無しさん:2017/10/20(金) 12:45:02.92 ID:p6j5lSQw.net
何を今更
ジェットブレインが開発した時点でそういう言語だろ

924 :デフォルトの名無しさん:2017/10/20(金) 12:53:16.47 ID:4LtGa96p.net
ジェットブレインってなんだろう…

925 :デフォルトの名無しさん:2017/10/20(金) 12:53:54.91 ID:PCOS2CdI.net
>>921
え?例えばどんな?
クラスはみんなopenとか?

926 :デフォルトの名無しさん:2017/10/20(金) 12:55:55.90 ID:q2wuGssb.net
>>924
正直なところ、該当プログラミング言語を使ってないような人が言語のスレに書き込む理由がさっぱりわからん
自分の知らないことばかり話してるスレだぞ…

927 :デフォルトの名無しさん:2017/10/20(金) 12:56:22.84 ID:cIqzCW7A.net
ジェット脳

928 :デフォルトの名無しさん:2017/10/21(土) 08:55:05.79 ID:SwYl7d2P.net
バグだらけのWebアプリケーションをKotlinで実装してみました
https://qiita.com/tamura__246/items/ce2932809b9e4ec0297e

929 :デフォルトの名無しさん:2017/10/21(土) 08:56:18.39 ID:uavAERV8.net
言語を変えたらバグがなくなりす。Javaのときも言ってた気がします。

930 :デフォルトの名無しさん:2017/10/21(土) 10:49:40.33 ID:uVD587X2.net
>>929
バグの一部はなくなった。もちろん全部はなくならない。

931 :デフォルトの名無しさん:2017/10/21(土) 14:07:32.75 ID:DUYo3YXD.net
見てないけど、kotlinにしたら、世の中のプログラムのバグがなくなるのか
kotlin最強だな

932 :デフォルトの名無しさん:2017/10/21(土) 15:57:07.83 ID:pTq+5yjM.net
プログラム言語の進化の歴史の基本パターンだしな

933 :デフォルトの名無しさん:2017/10/21(土) 22:52:03.68 ID:l0C30vmt.net
>>931
だから全部はなくならないってw

934 :デフォルトの名無しさん:2017/10/21(土) 23:05:33.46 ID:uavAERV8.net
ヌルポがなくなるらしい。でもちゃんとテストしたらヌルポのバグって全部修正できるよね。
つまりkotlinにすればテストしなくていいということ。

結果さらにバグあり納品が増えてデスマーチ。いつかみた風景。
ポインタがなくなれば〜、GCがあれば〜

オープンソースにすれば〜ってのもあったね。最近多いのがAIにすれば〜

935 :デフォルトの名無しさん:2017/10/22(日) 03:25:09.30 ID:e1gng41K.net
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い

936 :デフォルトの名無しさん:2017/10/22(日) 03:25:51.40 ID:GA495a0M.net
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い

937 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 09:06:20.22 ID:AhvojsY+.net
世の中のプログラムのバグがなくなるとかテストしなくていいとか
脳内の飛躍が半端ないなw

938 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 09:51:20.46 ID:ThKraGOL.net
>>934
それはヌルポをテストしなくていいを、ヌルポ以外のテストもしなくていいにすり替えたから。
つまり>>934の脳内にバグがある状態。

939 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 10:39:38.28 ID:Aud0wCrn.net
>>929
りす?
       n_n
      / ・ \
      /ヽ__・
  /Ξミヽ/ (゚Д゚)
 ( ―、| (ノ  |つ
  \_人人__)_)
      ∪ ∪

940 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 10:43:40.96 ID:Aud0wCrn.net
>>937
その辺は何れ何とかなるんじゃないかな。AIが発達して人間が何かする必要は特に無くなる。
もちろんAIはプログラミングなんかしない。自身が既にプログラムだしね。単に人間が望むであろう動きを自分がすればいいだけ。

941 :デフォルトの名無しさん:2017/10/23(月) 01:55:41.23 ID:abHVYf4D.net
Pythonじゃダメなの?

942 :デフォルトの名無しさん:2017/10/23(月) 01:58:47.60 ID:u5IDZl2p.net
だめなの

943 :デフォルトの名無しさん:2017/10/23(月) 09:12:33.70 ID:dbUGXOGc.net
そういやPythonやったことないな。いつもLinuxいじってて目の前に既に使える環境があったんだがなぜか覚える気にならずPerlばかり使っていた。
いい加減学習するか。

944 :デフォルトの名無しさん:2017/10/23(月) 09:16:27.95 ID:q13VoyIh.net
ぱいそんなんて勉強が必要なものでもないがな

945 :デフォルトの名無しさん:2017/10/23(月) 09:49:53.15 ID:dbUGXOGc.net
いや、ほら、何も知らないからさ。
ファイル名の拡張子が .py ってことぐらいしか知らない。

946 :デフォルトの名無しさん:2017/10/23(月) 10:00:47.84 ID:QKnEuIrp.net
常用するLinuxBoxがあるのならPython/Rubyは良い選択肢
自分のために楽しくやりたいならRubyを、皆と一緒に便利にやりたいならPythonを選ぶといい
どっちか覚えたら片方はすぐなんで初期用途で選んでいいよ

947 :デフォルトの名無しさん:2017/10/23(月) 19:00:30.13 ID:puhk/g9t.net
未だにkotlinだとヌルポがなくなるとか言ってるやつがいるのか

948 :デフォルトの名無しさん:2017/10/23(月) 19:15:07.45 ID:YIhcz2Te.net
ひねくれた複雑な事やらなければだいたいはなくせないか?

949 :デフォルトの名無しさん:2017/10/23(月) 19:39:06.53 ID:o6L3q82d.net
Kotlin使ってもぬるぽ連発してんのか

950 :デフォルトの名無しさん:2017/10/23(月) 22:51:45.52 ID:QKnEuIrp.net
>>948
ああ、こいつに構わなくていいよ
いつも同じことしか書かないんだ
説得しようとしても無駄

951 :デフォルトの名無しさん:2017/10/23(月) 23:04:44.08 ID:zzY32qse.net
器用なことやるな

952 :デフォルトの名無しさん:2017/10/24(火) 02:21:21.48 ID:IbgCT9FR.net
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

で良かったけ?なんか、情報が閑散としてて判らん

953 :デフォルトの名無しさん:2017/10/24(火) 03:06:11.96 ID:PSxxe1n/.net
全角で言語名書く奴の意見は参考にしない事にしている

954 :デフォルトの名無しさん:2017/10/24(火) 08:04:25.98 ID:s8DNo2te.net
全角と半角が混じって気持ち悪いことこの上ない
プログラマーとは思えない美的感覚

955 :デフォルトの名無しさん:2017/10/24(火) 08:20:05.29 ID:kOLVT7kL.net
Javasript
Javaspit
という新しい言語が生まれたようだな

956 :デフォルトの名無しさん:2017/10/24(火) 08:54:24.56 ID:EMAIs2aC.net
>>953-955
なんでそうやって構うの

957 :デフォルトの名無しさん:2017/10/24(火) 08:54:33.53 ID:rijisBQi.net
spit = つばを吐く
ということだから、
Javaspit = Javaにつばを吐く
つまり熱狂的なKotlin信者ということ

958 :デフォルトの名無しさん:2017/10/24(火) 09:09:32.53 ID:Y1f+CDs0.net
Window10

新しいOS

959 :デフォルトの名無しさん:2017/10/24(火) 09:51:43.85 ID:99TFwYv/.net
キッズプログラマー

960 :デフォルトの名無しさん:2017/10/24(火) 10:24:42.63 ID:rImCj7mr.net
SRIPT

Shanghai Research Institute of Petrochemical Technology

961 :デフォルトの名無しさん:2017/10/24(火) 10:28:35.28 ID:YiJuDl3B.net
>>956
プログラミングできなくても参加できるからね
自分たちは何もできないって人前で叫んでいるようなものだ
正直お帰り頂きたいのだが

962 :デフォルトの名無しさん:2017/10/24(火) 12:32:17.01 ID:ILn03nC/.net
>>949
どこにヌルポ連発すると書いたのか。アスペかおまえは。
>>950
おまえみたいなゴミカスエンジニアは何言っても否定するんだろうな

963 :デフォルトの名無しさん:2017/10/28(土) 13:15:37.00 ID:cK0+9veY.net
ぬるぽ

964 :デフォルトの名無しさん:2017/10/28(土) 14:38:12.64 ID:cK0+9veY.net
何気なくAmazon見てたらこんなの見つけた。無料。

Kotlin Programming Tutorial https://www.amazon.co.jp/dp/B074FXTTKL/ref=cm_sw_r_an_am_at_ws_jp?ie=UTF8

965 :デフォルトの名無しさん:2017/10/28(土) 14:39:54.99 ID:0x9+D/xv.net
EclipseのエディタがJavaと同じぐらいKotlinサポートしてくれてるなら乗り換えてもいい

966 :デフォルトの名無しさん:2017/10/28(土) 14:44:54.44 ID:Ng05dLeH.net
KotlinはIntelliJ開発元のJetBrainsが作ってるからEclipseプラグインに期待するのは間違い
もしサードパーティによってIntelliJより使いやすいEclipseプラグインが出てきて開発者がそっちに流れそうになったりしたら
JetBrainsは法的手段を使ってでも全力で潰しに来るはず

967 :デフォルトの名無しさん:2017/10/28(土) 14:58:11.85 ID:ZGNKF2eF.net
極めて単純に「Eclipseは20年以上Javaをサポートしアプデし続けてきたので最強である」というだけなので
今のJava+EclipseをKotlinで再現するにはあとやっぱり20年くらい必要だと思われる
あれは年季の問題であって、NetBeans+Javaとか(困ったことに)IntelliJ+Javaも同じようなものだ

IDEサポートの分厚さという点ではKotlinはどの組み合わせにも及んでいない
とりあえずバックスペースで消していくだけでKotlinプラグインがクラッシュすることがあるのを直さんといかんレベル

968 :デフォルトの名無しさん:2017/10/28(土) 15:54:42.82 ID:LaChF7dA.net
MSがVSCodeのプラグイン作ったら1年でJava超えるだろうけどね

969 :デフォルトの名無しさん:2017/10/28(土) 15:57:39.28 ID:0x9+D/xv.net
なんてこったい

Oracleはjava9でvar採用して
innullablejre.jarを別途提供すべき

970 :デフォルトの名無しさん:2017/10/29(日) 03:51:42.38 ID:0yKrkLYC.net
すばらしい使い捨て言語だ。

971 :デフォルトの名無しさん:2017/10/29(日) 09:51:25.77 ID:nF8jP4ar.net
>バックスペースで消していくだけでKotlinプラグインがクラッシュする
あれは繊細過ぎると思う
どっかでチェック開始間隔の設定がありそうだけどな

972 :デフォルトの名無しさん:2017/10/29(日) 09:56:52.64 ID:0yKrkLYC.net
kotlinでプラグインを書かないからヌルポになるんだよ。

973 :デフォルトの名無しさん:2017/10/29(日) 19:11:11.42 ID:6hfILvPI.net
さっき新宿の紀伊國屋書店行ったらKotlinイン・アクションもう置いてあったよ。
ということは多分大きい本屋ならもう売ってると思う。

974 :デフォルトの名無しさん:2017/10/29(日) 21:42:48.27 ID:Gu+Q8xiz.net
感想は?買いなん

975 :デフォルトの名無しさん:2017/10/29(日) 22:04:20.61 ID:oFRxn/Jf.net
>>974
まだパラパラめくって見ただけなので何とも言えないが、詳しく一通り書いてあるように見える。

976 :デフォルトの名無しさん:2017/10/30(月) 00:56:22.26 ID:/vdlmG2A.net
初めてのまともな日本語の本でしょ
あのクソみたいなエバンジェリスト本(笑)をやっと駆逐できるな

977 :デフォルトの名無しさん:2017/10/30(月) 02:59:15.21 ID:nQXUW6Dj.net
エバンジェリスト本?
ああ、まあ、 Technology evangelist か?

978 :デフォルトの名無しさん:2017/10/30(月) 08:46:43.80 ID:stDQ/FyB.net
長澤太郎もかかわっている

979 :デフォルトの名無しさん:2017/10/30(月) 21:53:49.20 ID:pVIch9qW.net
今日から始めます。
今インストール中。
よろしくお願いします。

980 :デフォルトの名無しさん:2017/10/30(月) 22:37:30.38 ID:OufZdVP7.net
ここは!
あなたの!
日記帳!

Javaを読めないとしんどいから、もしまだ知らないなら並行作業でちょっとずつやるといいよ
今からやっておくとだいたいKotlinわかったころに何かやりたくなっても「あっこれ進研ゼミでやったやつだ!」となって捗ること請け合い

981 :デフォルトの名無しさん:2017/10/30(月) 23:00:21.71 ID:pVIch9qW.net
>>980
応援ありがとうございます。
Javaは少しだけやりました。
一応C#は使えるので、
kotlinやりながらJavaも覚えたいと思います。

982 :デフォルトの名無しさん:2017/10/31(火) 20:53:53.80 ID:mFIgmMeH.net
data?.let {
  ...
}
でdataがNULLじゃないときだけ処理を実行できることは分かりました。
これにdataがNULLのときの処理も追加したい場合はどう書いたらいいんでしょうか
data?.let {
  ...
}?: {
}
みたいに書けないです。

983 :デフォルトの名無しさん:2017/10/31(火) 21:01:44.57 ID:mFIgmMeH.net
ファイル入力の処理などの以下の処理が
while((line = br.readLine()) != null)
Kotlinだと、Assignments are not expressions, and only expressions are allowed in this context
のエラーになるんですが、Kotlinだとどう書いたらいいんでしょうか

984 :デフォルトの名無しさん:2017/10/31(火) 21:38:42.83 ID:kBfCDZdZ.net
>>982
let{ ... } が null を飛ばしてラムダ式を実行することができるのはあくまで副次作用に過ぎない
条件分岐させたいのなら素直に when か if で書くべき

>>983
File(path).forEachLine { line -> println(line) }

985 :デフォルトの名無しさん:2017/10/31(火) 21:39:06.81 ID:cTxMPZq4.net
>>982
普通に if 使って書けば良いのでは?

986 :デフォルトの名無しさん:2017/10/31(火) 21:55:55.33 ID:7/FAMo7N.net
>>982
?: run {}

987 :デフォルトの名無しさん:2017/10/31(火) 22:06:34.40 ID:mFIgmMeH.net
data?.let {
  ...
}?: {
  ...
}.invoke()
というのを見つけたんですが、?: run {}の方がいいんでしょうか

988 :デフォルトの名無しさん:2017/10/31(火) 22:10:44.21 ID:BGaLFLkz.net
癖のある言語ですね・・・

989 :デフォルトの名無しさん:2017/10/31(火) 22:16:51.16 ID:kBfCDZdZ.net
>>987
だから条件分岐は条件分岐として書いてくれ
letはもともと

val hoge = Hoge()
hoge.mes1()
hoge.mes2()

と書く代わりに

Hoge().let{ it.mes1(); it.mes2() }

と書くことができるという構造だ
条件分岐の代わりに使っていいものじゃない
ネット上で観測される彼らは「間違っている」
参考にしてはならない

990 :デフォルトの名無しさん:2017/10/31(火) 22:20:26.16 ID:mFIgmMeH.net
えー。letってNULLチェック代わりに使うものじゃなかったの

991 :デフォルトの名無しさん:2017/10/31(火) 22:28:56.76 ID:kBfCDZdZ.net
nullチェックは ?. の部分だ
letの中身が長くなればなるほど、それはletで書くべきではないということになる
今ここでこれ使うと1行で書けて変数に入れられるぜえ、とかだとapplyとか使うの考えるがまあその程度

letをnull回避として紹介してた人が今どんだけそれを日常的に使ってるかは個人的に興味があるよ
最初の紹介で使っただけなんじゃないかと思うんだよねえ

>>991超したので新スレおねがいします

992 :デフォルトの名無しさん:2017/10/31(火) 22:29:35.46 ID:6MYbZ/26.net
Wikipediaとか参考文献にしてそう

993 :デフォルトの名無しさん:2017/10/31(火) 22:47:55.01 ID:wyGoJvua.net
そもそものもともととして.?じゃ本当にnullが来たとき対処できないじゃないか
checkNotNull(value){ "valueがnullです" }
とかしないと不安にならないの

994 :デフォルトの名無しさん:2017/10/31(火) 23:34:28.34 ID:E21Np2eC.net
それならKotlin使うのやめろよ

995 :デフォルトの名無しさん:2017/10/31(火) 23:39:23.74 ID:u3Drl61J.net
>>993
何言ってんの

996 :デフォルトの名無しさん:2017/10/31(火) 23:49:38.22 ID:BBLfUUwS.net
>>990
https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e

997 :デフォルトの名無しさん:2017/11/01(水) 00:08:55.25 ID:jxmKQQAl.net
次スレ

http://mevius.5ch.net/test/read.cgi/tech/1509462463/

2ch.net でないとうまく開かない専ブラの人は以下のURL

http://mevius.2ch.net/test/read.cgi/tech/1509462463/

998 :デフォルトの名無しさん:2017/11/01(水) 00:46:22.34 ID:1EENXbRG.net
x.?let {} ?: run {} は letのとこのブロックがnull返すと x がnullじゃなくても run のブロック実行しちまうだろ
x.?also {} ?: run {} にしとけよ

999 :デフォルトの名無しさん:2017/11/01(水) 00:52:45.72 ID:pp6VRjc6.net
>>993
?. を書いてメソッドチェーンを繋げなければならない状況自体、なにかおかしいからな
とっとと非nullを確定させるのが妥当
しかもわざわざスコープ内で覚えててくれるんだから、利用しない手はない

1000 :デフォルトの名無しさん:2017/11/01(水) 02:02:04.51 ID:x/3omok5.net
999

1001 :デフォルトの名無しさん:2017/11/01(水) 02:02:35.06 ID:x/3omok5.net
1000

1002 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1002
243 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★