◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Kotlin 5 YouTube動画>2本 ->画像>7枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1544268581/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2018/12/08(土) 20:29:41.41ID:oXOQORcd
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
http://2chb.net/r/tech/1531818027/

2デフォルトの名無しさん2018/12/08(土) 20:32:31.24ID:oXOQORcd
公式サイト
https://kotlinlang.org/
公式ブログ
https://blog.jetbrains.com/kotlin
コードを貼れる所
http://rextester.com/l/kotlin_online_compiler
オンラインコンパイラ
https://ideone.com/

Google、KotlinをAndroidアプリ開発言語に選定
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Library support for Kotlin coroutines
https://github.com/Kotlin/kotlinx.coroutines

3デフォルトの名無しさん2018/12/09(日) 14:57:10.33ID:rgDJoSoN
O2

4デフォルトの名無しさん2018/12/11(火) 17:55:58.71ID:ZdF1Nxsw
c#でasnc/awaitを学んだから、そのノリでhogeAsync : Defered<Int>とか量産してたがこれclassic wayで駄目なんだ。
コルーチンムズいぞ。

5デフォルトの名無しさん2018/12/11(火) 18:12:47.19ID:ZdF1Nxsw
今までクラス設計するとき、
class Hoge {
 fun action1(): Deferred<Int> {
  return GlobalScope.async() {}
 }
 fun cation2(): Deferred<String> {}
}
GlobalScopeなのはいずれどうにかしようととりあえず脇に置いといて、こう設計してたがダメっぽいな?
誰か詳しい人いないの?

6デフォルトの名無しさん2018/12/11(火) 20:17:24.17ID:6hR55q3c
class Hoge {
suspend fun action1(): Int = coroutineScope {
delay(2000)
return@coroutineScope 1
}

suspend fun cation2(): String = coroutineScope {
delay(3000)
return@coroutineScope "hoge"
}
}

7デフォルトの名無しさん2018/12/11(火) 21:33:56.96ID:m02gDU95
C#のasync = suspend って思っとけば大体おk

8デフォルトの名無しさん2018/12/11(火) 21:59:01.90ID:ZdF1Nxsw
async = suspendみたいのはだいたい分かるんだけど、>>6みたく、suspend関数を大量に用意するのがkotlinスタイルらしいんだけど、
じゃ、クラス設計するとき、誰がコルーチンビルダーでコルーチン作るの?って悩んでて。
例えば、「ライブラリ」として分割するケースを考えてみるとして、まず、REST APIを内部でたたいて結果を返すライブラリを作るとき、
class WebService {
 suspend fun action1()
 suspend fun action2()
}
みたく、全部suspend関数として外部にpublicなAPIとして公開するの??

9デフォルトの名無しさん2018/12/11(火) 22:05:51.76ID:ZdF1Nxsw
で、例えば、更に上のライブラリを内部で使って、キャッシュ機能だとかを提供するライブラリを作るとき、
(androidアプリの開発で見るRepositoryパターン)みたいなライブラリを作るときも
class Repository {
 suspend fun action1() { webServcie.action1()など}
 suspend fun action2()
}
で、やっぱsuspend関数を公開して、このライブラリを使ってつくるアプリで、
launch() {
repo.action1()
}
でここでコルーチンビルダーを使う??みたいな感じ?

10デフォルトの名無しさん2018/12/11(火) 22:13:49.36ID:ZdF1Nxsw
ちなみに>>6のcoroutineScope関数調べると、これ新しいスコープ作って呼び出し元からキャンセルできなくなるらしいから、キャンセルできるように
するには
class Hoge {
suspend fun action1(): Int {
delay(2000)
return 1
}

suspend fun cation2(): String {
delay(3000)
return "hoge"
}
}
でいいってことだよね?

11デフォルトの名無しさん2018/12/11(火) 23:19:00.56ID:ZdF1Nxsw


見てたら、例でcoroutineScope使ってたな。
英語何言ってるか全然わからねぇけどw
Structured Concurrency云々。
>>6は相当なプロフェッショナルと見た。

12デフォルトの名無しさん2018/12/12(水) 12:16:15.38ID:ehb+zc+O
つkotlinx

13デフォルトの名無しさん2018/12/12(水) 13:12:24.30ID:XfY7kHOC
Crystalのスレどこ?

14デフォルトの名無しさん2018/12/12(水) 21:24:09.19ID:jSpBUsB/
非suspendも可能な場合に、suspend版と非suspend版を内部的に両方生成するオプションが欲しい
Kotlin/JS使ってるとJavaScriptのasyncより書きやすい(await相当がデフォだから)けど
それでももう一手欲しいところ

15デフォルトの名無しさん2018/12/18(火) 21:12:59.14ID:h6+jV75s
kotlinてJavaがなくてもwindowsとMacで動くの?

16デフォルトの名無しさん2018/12/18(火) 21:34:52.63ID:yrNJ9cJf
いけるいける

17デフォルトの名無しさん2018/12/18(火) 22:25:09.54ID:92SsvGE7
Kotlin Native なら、な。

18デフォルトの名無しさん2018/12/19(水) 09:00:14.59ID:PF0aHy1W
Kotlin/NativeならKotlinコンパイラもLLVMだけが必要でJavaいらないの?

19デフォルトの名無しさん2018/12/19(水) 09:45:25.24ID:ab3sNZA3
そうだよ
かわりに愛情と寛容と忍耐と妥協が必要

20デフォルトの名無しさん2018/12/19(水) 09:49:46.24ID:WO8V2g+e
>>18
ああ。要らなかったよ。やってみな。

21デフォルトの名無しさん2018/12/19(水) 21:31:55.75ID:/PJ/xgrD
いやコンパイラ自体には必要でしょ
初期実装は全部Javaで、今でもかなり残ってる
自社製品のIntelliJがJVM前提だし統合もあるからNativeでのセルフホスティングは目指してないと思うよ

22デフォルトの名無しさん2018/12/20(木) 00:01:10.39ID:hst6D+g/
やっとマジレスが出てくれて若干安心した

23デフォルトの名無しさん2018/12/20(木) 02:22:55.67ID:6pIAvd2J
やがてコンパイラ自体も Kotlin native でコンパイルできるようになって完全に Java 不要になると思う。

24デフォルトの名無しさん2018/12/20(木) 17:35:04.19ID:FuA72n5Z
やっと林檎ユーザーに
泥は処理遅くて草
とか言われなくて済むんだね!

25デフォルトの名無しさん2018/12/20(木) 19:18:48.12ID:Jom6rq0W
コンパイラをKotlin native でコンパイルできるようになるのは比較的早くできるだろうけど
IntellijみたいなGUIの総合開発環境をマルチプラットフォームで動かすのをJavaなしでやるのは大変だろう。

26デフォルトの名無しさん2018/12/21(金) 09:15:12.67ID:mfb3XB1u
GUIの部分が大変かもな

27デフォルトの名無しさん2018/12/21(金) 12:11:36.66ID:gjfGeuPx
やるメリットもないだろうからやらんだろうな

28デフォルトの名無しさん2018/12/21(金) 13:38:51.46ID:I/9gCApZ
ただでさえVSCodeに追われてヤバいのに余計なことしてる余裕ないだろ

29デフォルトの名無しさん2018/12/21(金) 13:49:31.79ID:QUmSfmQB
なんだかんだでJVMは長生きすると信じてる

30デフォルトの名無しさん2018/12/21(金) 15:27:32.04ID:Tphe8pyQ
長生きじゃなく、ただの延命処置だろ

31デフォルトの名無しさん2018/12/21(金) 15:30:24.56ID:mfb3XB1u
あ、そーだ。GUIはJavaScriptで書いてブラウザで実行させれば良い。
そのJavaScriptはKotlinのソースからコンパイルして作ったやつにすれば完璧。

32デフォルトの名無しさん2018/12/21(金) 22:14:57.05ID:8Iu4hnmd

33デフォルトの名無しさん2018/12/21(金) 22:59:54.90ID:/MQTzm2r
項目多いな

34デフォルトの名無しさん2018/12/22(土) 02:37:32.92ID:JnEveBkB
いつの間にかこんな入門書が出ていた。但し Kindle 版のみだ(unlimited の人は 0 円で読める)。

速習 Kotlin
http://amzn.asia/d/0ZiG6rB

35デフォルトの名無しさん2018/12/25(火) 06:47:43.66ID:1ThGctmt
メリーコトリン

36デフォルトの名無しさん2018/12/25(火) 11:17:10.24ID:yeWprDEr
つまんね

37デフォルトの名無しさん2018/12/25(火) 19:25:24.16ID:KSMuafeJ
爆笑

38デフォルトの名無しさん2018/12/26(水) 22:47:51.52ID:5ub5SAQR
>>37
無理に>>36にて対抗しなくていいからww

39デフォルトの名無しさん2018/12/27(木) 08:12:45.83ID:DJ5Bt1eh
kotlinのコルーチンビルダーに渡す中断関数がレシーバー付きなのを止めてほしい。
public fun CoroutineScope.launch(
 context: CoroutineContext = EmptyCoroutineContext,
 start: CoroutineStart = CoroutineStart.DEFAULT,
 block: suspend CoroutineScope.() -> Unit
blockパラメータにレシーバつけるんじゃねぇよ。というもの、なんでコルーチンビルダーに渡すルートの中断関数だけCorotineScopeにアクセスできるんだよ。
ルート以外の中断関数からはアセクスできないのに。この非対称性というか特別扱いやめて。

40デフォルトの名無しさん2018/12/27(木) 08:17:42.92ID:DJ5Bt1eh
例えば、自分で定義した中断関数
suspend fun hoge() {
}
内ではCoroutineScopeにアクセスできない。CoroutineScopeではなくCoroutineContextにはcoroutineContext関数経由でアセクスできるが。
こういう一貫性のなさはやめてほしい。なんか意味があるのかもしれんが。

41デフォルトの名無しさん2018/12/27(木) 10:06:52.89ID:g57/YEyR
ここじゃなくて公式に言ってこいよ

42デフォルトの名無しさん2018/12/27(木) 23:27:31.48ID:r4GKgwJE
>>32のアンケートに自由記載の欄があるから、そこで言うことは可能。

43デフォルトの名無しさん2018/12/27(木) 23:47:52.20ID:hAo/rJSd
>>39 >>40
CoroutineScopeはキャンセルの伝搬と構造化のためにあって意図的にそうなってる
private funや全体制御クラスなどを除いては基本的に他所に渡しては駄目

渡された側がキャンセルすると子だけでなく親戚関係のものまで巻き込んでしまう

スコープ直下のブロックは保護者のような役割になるので
渡さずに↓のようにしてスコープをネスト構造にするべき
suspend fun hoge() = couroutineScope {
}

44デフォルトの名無しさん2019/01/02(水) 20:28:59.08ID:MMKJrJD0
あけましておめでとうございます
ことりんもよろしくお願いします

45デフォルトの名無しさん2019/01/02(水) 22:49:08.10ID:sDzpRBwn
え?

46デフォルトの名無しさん2019/01/03(木) 09:15:47.36ID:h/ELqUHS
山田さーん、>>44に座布団1枚持ってきて。

47デフォルトの名無しさん2019/01/03(木) 10:25:22.96ID:GKSM08/3
座り小便した奴を持って来ました

48デフォルトの名無しさん2019/01/07(月) 18:42:28.96ID:4PQEcpA5
supervisorScopeって上司っぽさがあるな

49デフォルトの名無しさん2019/01/12(土) 11:30:26.17ID:ygc4MJ1X
お前の勤務成績は丸見えだから

50デフォルトの名無しさん2019/01/12(土) 12:51:17.46ID:IzmxBuIw
そもそもcoroutinrScopeを他に渡して何をするつもりなんだろう
用途が思いつかない

51デフォルトの名無しさん2019/01/14(月) 19:40:36.89ID:OowwBnZ2
「基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応」
よく書いてあるようにサンプルが動かないんすけど、
あまりにも初心者過ぎてどこを直せばいいのかわからないっす。
Chapter 4のCalculatorで、正しいコードがわかる方いませんか?

val button = findViewById<Button>(R.id.calculate)
button.setOnClickListener {
var isValid = true

val priceEditText = findViewById<EditText>(R.id.price)
val priceText = priceEditText.text.toString()

if (priceText.isEmpty()) {
priceEditText.error = getString(R.string.price_error)
isValid = false
}

val discountEditText = findViewById<EditText>(R.id.discount)
val discountText = discountEditText.text.toString()

if (discountText.isEmpty()) {
discountEditText.error = getString(R.string.discount_error)
isValid = false
}

52デフォルトの名無しさん2019/01/14(月) 19:40:58.45ID:OowwBnZ2
>>51の続き

if (isValid) {
val price = priceText.toInt()
val discount = discountText.toInt()

val intent = Intent(this, ResultActivity::class.java)
intent.putExtra("price", price)
intent.putExtra("discount", discount)
startActivity(intent)
}
}

53デフォルトの名無しさん2019/01/14(月) 19:42:40.59ID:OowwBnZ2
>>51 遷移先のコードもエラーになります。

val extras = intent.extras ?: return

val price = extras.getInt("price", 0)
val discount = extras.getInt("discount", 0)

val expression = findViewById<TextView>(R.id.expression_label)
expression.text = getString(R.string.expression, price, discount)

val discountedPrice = price * (100 - discount) / 100

val discounted = findViewById<TextView>(R.id.result_label)
discounted.text = getString(R.string.result, discountedPrice)

54デフォルトの名無しさん2019/01/14(月) 19:51:40.91ID:mSU16be8
まず大事なこととして
・正確に伝える
・切り分けをしていく

コンパイルエラーなのか実行時エラーなのか想定と違う動作なのか
エラーであればどのような内容か
想定と違うのであれば想定と実際の両方を具体的に

実行可能な場合はログ出力を追加するなどして問題の箇所を絞り込む

技術者は答えより答えの出し方を知る方が大切

55デフォルトの名無しさん2019/01/14(月) 19:54:33.86ID:OowwBnZ2
>>54
コンパイルエラーです

56デフォルトの名無しさん2019/01/14(月) 20:14:29.56ID:pDL52XEr
AndroidStudio使っててどこがコンパイルエラーかわからないとかあんの?

57デフォルトの名無しさん2019/01/14(月) 21:06:42.85ID:eurbvKP4
まあぶっちゃけると「エラーが出て動かない」以上のことがさっぱりわからんことはあるにはある
IDEが表示するエラーが理解できるくらいならそもそも入門書など読まんw

58デフォルトの名無しさん2019/01/14(月) 21:23:28.22ID:fiLCWGOz
>>55
なぜエラーメッセージを読まないのか。せめて貼り付けろ

59デフォルトの名無しさん2019/01/15(火) 00:32:52.94ID:pIHkTAGg
Rなんとかは定義したの?

60デフォルトの名無しさん2019/01/15(火) 01:25:57.81ID:tO821mqa
>>51に当てはまるかは知らないけど
初心者って初心者向けの本を買うくせにちゃんと読まずに進めるんだよな
手順をすっ飛ばしてるパターンがほとんど

61デフォルトの名無しさん2019/01/15(火) 01:38:02.87ID:VjJwW0bc
>>59
あー文字定義してないのはいかにもありそうだな

62デフォルトの名無しさん2019/01/15(火) 11:17:38.84ID:uh3dx1w7
>>59
Rって、解説書でも唐突に出てくるんすけど、何を定義すればいいの?

63デフォルトの名無しさん2019/01/15(火) 13:47:19.17ID:1CaYwh4e
まずエラーメッセージを貼れ

64デフォルトの名無しさん2019/01/15(火) 14:15:39.24ID:pzxobvn7
>>62
そんな解説書は燃やせ

Rクラスはxmlファイルの記述からAndroidStudioが(語弊あり)勝手に作成するリソース管理クラスだ
xmlファイル(に転記するリソース名管理欄)での手動記述がミスってると生成失敗してRクラスなんぞ知らん系のエラーになる
というかとっとと何も考えずに>>63するか餃子のラー油の小袋が半端にしか開かずに必ず指につく呪いにでもかかってしまえ

65デフォルトの名無しさん2019/01/15(火) 15:05:34.53ID:uh3dx1w7
>>64 dくす
エラーメッセージはたくさんありすぎて貼れないから貼ってない
とりあえず自宅に戻ってからまた再現させる


てゆーか、この程度のコードでバグる奴がなんで解説書を出版社から出せるんだよ
まともな解説書ってないのかよ
尼見るともう一冊のほうもサンプルが動かんと書かれていて読む本がない

66デフォルトの名無しさん2019/01/15(火) 16:58:26.54ID:1CaYwh4e
サンプルコードがビルドできたからって何なんだ
そんなの目的にしても意味ない。必要な知識が吸収できればいいわけで。
サンプルコードをそのままビルドするアプローチじゃなく、
一旦空のプロジェクトを新規作成してそこに追加して動作確認するアプローチの方が
勉強になると思うけどなあ

67デフォルトの名無しさん2019/01/15(火) 17:03:39.16ID:1CaYwh4e
新規作成しただけの状態なら確実にビルドが通るわけで
どこまでサンプルコードに近づいたら
エラーが出るのか問題も切り分けやすい
こういうのはもうAndroid関係ないし向いてないからしね

68デフォルトの名無しさん2019/01/15(火) 17:21:56.05ID:3lh9jTue
Androidアプリは「初心者の人に書籍通じて独学で覚えさせるのめんどくさいプログラミング技術ランキング」のベスト3常連だからな
なにせファイル1個やコマンド1発で収まらない

69デフォルトの名無しさん2019/01/15(火) 18:24:55.36ID:yTRP/eqO
エラーの見方も分からないレベルでいきなりAndroid本は飛ばしすぎだな

70デフォルトの名無しさん2019/01/15(火) 23:41:09.53ID:620Eb35B
途中コメントアウトしてなんとか動いた
スマン、今日は時間切れ

最後、isEmpty()なんて使えないよ、と言われてたような・・・

続きはまた明日

71デフォルトの名無しさん2019/01/16(水) 11:02:30.64ID:aTgtPKRZ
>>65
ほんとこれ
入門者の立場に立って書いてないからそうなるんだよ

72デフォルトの名無しさん2019/01/16(水) 11:03:16.52ID:aTgtPKRZ
>>64 だった
ごめん

73デフォルトの名無しさん2019/01/16(水) 11:34:03.94ID:vTKVQdGX
馬鹿には無理

74デフォルトの名無しさん2019/01/16(水) 13:16:59.84ID:NBiSBr9E
入門者は10年ROMってろ

75デフォルトの名無しさん2019/01/16(水) 15:02:59.73ID:c12bWRnm
>>54:エラーであればどのような内容か
>>55:コンパイルエラーです

>>58 >>63:エラーメッセージ読め、貼れ
>>65:たくさんありすぎて貼れない

プログラミング言語より先に日本語と英語の勉強した方がいい

76デフォルトの名無しさん2019/01/16(水) 15:05:34.92ID:ECRqnYoc
       _,,-'' ̄ ̄`-.、         /        \
       /        \      ,/           \
      ,/           \    /   ―  ―     ヽ
     /   ―  ―     ヽ   lヽ  - 、 ! , _     |
    lヽ  - 、 ! , _     |   |r――-、_⊥ ,――'-、 |,-,
    |r――-、_⊥ ,――'-、 |,-,  |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|
    |::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|  ト、__,,/:  |: `、__,,/ ,|ソ/
     ト、__,,/:  |: `、__,,/ ,|ソ/  .|    、_ j| _,、     ,|-'
     .|    、_ j| _,、     ,|-'   |   /lll||||||||||l`、   ,|
     |   /lll||||||||||l`、   ,|     `i ,|||' ̄= ̄`|||、 / ト、
     `i ,|||' ̄= ̄`|||、 / ト、   「|ヽ|ll||||||||||||||||| /i |::::\
     「|ヽ|ll||||||||||||||||| /i |::::\ ::::::\`!!||||||||||||!!'   |::::::::\
    /:::::\`!!||||||||||||!!'   |::::::::::::::::::::::`ー-、.._ i     |::::::::::::::\
   /::::::::::::::`ー-、.._ i     |::::::::::/:::::::::::::::::::::::::::::`ー-、. |::::::::::
  /:::::::::::::::::::::::::::::::::::`ー-、. |::::::::::

                ロムッテロ兄弟
   ハントシー・ロムッテロ       ハンツキー・ロムッテロ
    1952〜  アメリカ          1955〜 アメリカ

77デフォルトの名無しさん2019/01/16(水) 19:02:46.27ID:czS9PHe8
こりゃまた懐しいものを

78デフォルトの名無しさん2019/01/16(水) 22:02:17.64ID:l4CxponB
できたー!

エラーログは結局見なかった。
モマエらの煽りも十分ヒントなので自力でできた。

要はIDEの使い方がよくわかってなかったってことらしい。
アプリの開発は初体験だったので、IDEがこんなにモッサリしていて
ゆっくり打たないと反応しない、ということがわからなかった。

最初、赤字がエラーを起こしている場所すらもわからなかった。
本の通り入力されているのにエラーになるとか💩すぎる。

79デフォルトの名無しさん2019/01/16(水) 22:54:20.38ID:5qHX4ghP
お前が見栄張ってログ貼らないからだよ

80デフォルトの名無しさん2019/01/16(水) 23:11:21.71ID:s3+L+6VD
なんでエラー見ないんだよ…
見ましょ

81デフォルトの名無しさん2019/01/17(木) 00:03:32.50ID:gD7DqiQf
Android Studioは割と複雑なIDEだから馴れるまで大変かも、微バグも結構放置されてる
でもどんなときも根性があれば全て解決する

82デフォルトの名無しさん2019/01/17(木) 01:00:34.53ID:/w6CmWBz
Googleが開発環境作るのヘタクソなのはいつものこと
ベースのIntelliJ自体は優秀な子だから嫌いにならないで

83デフォルトの名無しさん2019/01/17(木) 01:08:32.19ID:F/bGJF7O
入門書のコードもちょっと辛い感じだが
kotlinスレで聞いてきたりレスの感じからすると記載を読み飛ばしてるだけな気がするな…

84デフォルトの名無しさん2019/01/17(木) 01:34:50.82ID:D8uuaLO+
エラーメッセージを読まないような奴が本の解説を読んでるはずがない

85642019/01/17(木) 02:05:52.76ID:X/RlN8Mj
>>78
>できたー
できてない

>モマエらの煽り
いまは心底馬鹿にしている

結局原因は理解せず対処法を学ぶ気もなくて今後似たようなことがあって詰まっても本を罵るだけなのだろう
お前はなにか変わった?

86デフォルトの名無しさん2019/01/17(木) 07:00:04.64ID:FUK6mZ5G
>>できたー
>できてない

ワロタ
相手の態度が気に入らないのはわかるが。

87デフォルトの名無しさん2019/01/17(木) 08:54:40.63ID:T+GiVQOD
例えサンプルが間違っていても自分で間違いを見つけ修正するくらいの気概がないと、動きが速くカオスなAndroid開発環境に立ち向かうことはできないだろう

88デフォルトの名無しさん2019/01/17(木) 11:08:41.33ID:wwbjNcTV
そうはいうてもインストールが正しくやれたか、ライブラリは合っているかを確認したいんだから動くコードじゃないとアカンやろ

89デフォルトの名無しさん2019/01/17(木) 12:07:23.58ID:JNIrfwpM
エラーを見るのは基本中の基本だとこれだけ言われながら頑なにエラーを見ない理由が分からないw

それはそうと、Android StudioがもっさりするレベルのPCで開発するの辛そう

90デフォルトの名無しさん2019/01/17(木) 12:21:24.77ID:K+CX1G8n
君の所ではシャキシャキ動くの?
いいね。

91デフォルトの名無しさん2019/01/17(木) 12:29:42.70ID:JNIrfwpM
真面目なアドバイスだけど、アプリ開発というかプログラミングをするならそれなりのPCを用意した方がいいよ。
本格的に開発するなら各種ツールを同時に起動しながらやることになるから、IDE単体でもっさりするレベルのマシンだとかなり辛いと思う。

92デフォルトの名無しさん2019/01/17(木) 12:40:50.40ID:K+CX1G8n
ゲーミングPCみたいに開発用PC売ればいいのにな

93デフォルトの名無しさん2019/01/17(木) 13:35:52.11ID:h1O5LGNC
iMac Proやろ

94デフォルトの名無しさん2019/01/17(木) 14:23:55.46ID:JNIrfwpM
ゲーミングPCからグラボを省けばプログラミングに良いマシンになるだろう
要はCPUとメモリとSSDだし

95デフォルトの名無しさん2019/01/17(木) 15:50:04.22ID:UNKQSAY8
ビジネス用PCでよくね

96デフォルトの名無しさん2019/01/17(木) 16:11:06.65ID:8rj4oJ0j

97デフォルトの名無しさん2019/01/17(木) 16:50:50.76ID:JNIrfwpM
>>95
お前のIDうんこじゃん

98デフォルトの名無しさん2019/01/17(木) 16:58:20.51ID:K+CX1G8n
>>94
そんな感じのスペックのやつを自作するしかないのかな?

>>95
丁度いいのある?

99デフォルトの名無しさん2019/01/17(木) 18:38:16.95ID:BQPkrRK7
AVD使うならグラボはあった方がいい
ローエンドで十分だけど

100デフォルトの名無しさん2019/01/17(木) 21:05:29.75ID:9dtdj8/p
IDEまでは分かるけどスレタイから離れすぎw

101デフォルトの名無しさん2019/01/18(金) 10:55:00.39ID:biJOt7cE
初心者用の本ってマジでろくなのないな
自分が読んだ本だと言語の仕様解説して、次の章でいきなりじゃんけんアプリ作りましょうだもんな
文字出すだけとかもちょっと地道なサンプルこなしてからにしてくれよ

102デフォルトの名無しさん2019/01/18(金) 13:23:27.72ID:Gw7rawdB
そういう本を書いて売れるのなら書くけど

103デフォルトの名無しさん2019/01/18(金) 13:36:11.74ID:EPNqXegi
初心者はプログラミングすんな

104デフォルトの名無しさん2019/01/18(金) 15:38:04.17ID:dETdnGdx
>>101
君が書け。紙の本にする必要はない。AmazonでKindle用の電子書籍で出すなら多分すぐ出せる。

105デフォルトの名無しさん2019/01/18(金) 15:39:03.82ID:dETdnGdx
>>103
それでは誰も使わなくなって終わるではないかw

106デフォルトの名無しさん2019/01/18(金) 16:34:36.03ID:QNzHnga9
本を読んでからアプリを作るんじゃなくて、アプリを作ってから本を読むんだ

107デフォルトの名無しさん2019/01/18(金) 17:57:35.76ID:EPNqXegi
本を読んで勉強するという姿勢が気に入らない
お前の目的は言語学者になることか
アプリが作りたいならまず作れ
それで行き詰まったら初めて必要な知識を調べる

108デフォルトの名無しさん2019/01/18(金) 18:10:19.30ID:DtJxFJYk
http://www.atmarkit.co.jp/ait/articles/1712/08/news010_2.html

この通り作ってもエラーが出るのだが
なんなん

109デフォルトの名無しさん2019/01/18(金) 19:01:23.89ID:Jv0pMDsL
>>108
だからエラーを貼れよ

110デフォルトの名無しさん2019/01/18(金) 19:10:06.53ID:Jv0pMDsL
あとAndroid Studio のことはこっちのスレ来い

Android Studio Part3
http://2chb.net/r/tech/1547473943/

111デフォルトの名無しさん2019/01/18(金) 19:18:36.09ID:9pECFNv0
>>108
飲み会ドタキャンされて暇だからエラーの内容を貼ったら教えてあげるかもしれない
とりあえず一年以上前の記事みたいだからバージョン違いの何かな気がするけど

112デフォルトの名無しさん2019/01/18(金) 20:40:32.07ID:EPNqXegi
Android Studio3.0とか原始時代のツールだろ

113デフォルトの名無しさん2019/01/20(日) 17:15:03.83ID:km2ubjIi
1ヶ月以上たってまだ100レス程度ってkotlinで開発してる人はんと少ないんだな

114デフォルトの名無しさん2019/01/20(日) 17:53:32.56ID:7J7VHbME
>>113
お前が書き込むんだよ

115デフォルトの名無しさん2019/01/20(日) 19:22:48.93ID:6E5SSl+w
仕方ないなあ。じゃあこのスレ向きの話題でもふるか。

flatter for xamarinだってよ
https://adtmag.com/articles/2019/01/08/flutter-for-xamarin.aspx?m=1

116デフォルトの名無しさん2019/01/21(月) 08:55:03.29ID:cyd5L15X
>>115
カオスだな。

117デフォルトの名無しさん2019/01/21(月) 13:17:33.75ID:jDpmEG8W
flutter for xamsrin for kotlin nativeが待たれる

118デフォルトの名無しさん2019/01/22(火) 02:09:57.73ID:gn5FLTFP
なにこれ。flutter sdkをc#に変換するのか。すげぇな。つか、xamarinの名前冠するなよ。負のイメージしかねぇ。

119デフォルトの名無しさん2019/01/22(火) 02:22:18.20ID:Ygwng9tV
ザマリンてなんか医薬品みたいだよね
「風邪にはザマリン!! お近くの薬局でお求めください!」みたいな

120デフォルトの名無しさん2019/01/22(火) 05:45:08.82ID:+WHDBYOc
ていうかふらったーの1番のネックはDart言語なのに、それを多言語に変換されてもって感じだな
方向が逆だ

121デフォルトの名無しさん2019/01/22(火) 08:19:51.51ID:gn5FLTFP
え?だから他言語のC#に変換してDartとおさらばできるってことだろ。

122デフォルトの名無しさん2019/01/22(火) 09:06:02.79ID:8X9EpfV1
Xamarin程の糞はない

123デフォルトの名無しさん2019/01/22(火) 12:58:57.64ID:oFmOrikq
ざまりんは座間市のマスコットキャラクターです

124デフォルトの名無しさん2019/01/22(火) 19:17:28.51ID:HZ2hjuw/
ざまりん!ことりん!天気予報〜♪

125デフォルトの名無しさん2019/01/22(火) 23:00:57.36ID:vhFDea91
僕の名前はXamarin! 僕の名前はKotlin! 二人合わせて...?

126デフォルトの名無しさん2019/01/23(水) 04:35:21.49ID:VDPZgNNi
聳え立つ糞

127デフォルトの名無しさん2019/01/23(水) 11:21:53.63ID:KXFSPWv5
C#erだがXamarinはノーカンで

128デフォルトの名無しさん2019/01/23(水) 12:30:44.99ID:6pYQH9bm
kotlin界隈にもちょまどみたいなアイドル欲しいなぁ

129デフォルトの名無しさん2019/01/23(水) 12:46:10.71ID:s7nkbb3U
きも

130デフォルトの名無しさん2019/01/23(水) 16:31:27.63ID:rdYi3jIq
おまえがVtuberになってアイドルになればいいじゃないか

131デフォルトの名無しさん2019/01/23(水) 17:25:35.59ID:zR45o/Hn
koilin入門書には、作者が分かっていないのかjavaの文法が混じって分かりにくい
ごちゃ混ぜで混乱必至

結局kotlinlang.orgしか信用ならん

132デフォルトの名無しさん2019/01/23(水) 20:24:53.45ID:Uzogy9i5
Kotlin class destroyerって使ったことある人居る?

133デフォルトの名無しさん2019/01/23(水) 21:45:50.98ID:Pa8D4EMx
>>132
検索してフイタwww 日本語の読めるやつには居ないだろうなwwwww

134デフォルトの名無しさん2019/01/24(木) 02:16:31.75ID:HZcP4zux
Котлин

135デフォルトの名無しさん2019/01/24(木) 06:26:15.14ID:SamtYSKx
>>131
例えば?

136デフォルトの名無しさん2019/01/24(木) 07:53:39.37ID:nbtsb27b
これから本を出す人は、SwiftとKotlinを同時に学べるような本を書いてほしいな

137デフォルトの名無しさん2019/01/24(木) 09:17:38.10ID:fuJ4iKDY
>>136
なんで?

138デフォルトの名無しさん2019/01/24(木) 09:40:30.41ID:iE4PKA0k
SwiftとKotlinは書き方が似すぎてて紛らわしいから、
どちらかの書き方が染み付くまでは同時にやらないほうがいいと思う

139デフォルトの名無しさん2019/01/25(金) 00:52:03.47ID:oyKZWLKP
Go->Node(TypeScript)->Rust->Scala->Kotlin
去年の年末から色んな言語に入門してHelloCRUDしまくってたけど
やっと本命見つけたわ。これは流行るで。ほんま。

140デフォルトの名無しさん2019/01/25(金) 06:46:14.56ID:SWXByf/r
>>139
フレームワークはSpring? Ktor?

141デフォルトの名無しさん2019/01/25(金) 07:20:23.97ID:PIdTSIvJ
Sparkも良くできてるから選択肢に加えてあげて
日本だと空気だけど海外の事例だとめっちゃ使われてる

142デフォルトの名無しさん2019/01/25(金) 09:23:10.32ID:cY+a6SZr
Sparkは名前変えろ
Apache Sparkと紛らわしいから絶対に流行らん

143デフォルトの名無しさん2019/01/25(金) 09:40:00.17ID:84FUhWJo
ことりん☆

144デフォルトの名無しさん2019/01/25(金) 13:25:04.49ID:ra6+4Hwa
>>138
紛らわしいけど、両方同時に学べる人に書籍が必要とは思えない。

145デフォルトの名無しさん2019/01/25(金) 15:30:25.59ID:PIdTSIvJ
>>142
これ。まじでこれ。
ググラビリティ低すぎて辛い。

146デフォルトの名無しさん2019/01/25(金) 15:52:10.81ID:aoOWMbCl
ググラビリティwww

147デフォルトの名無しさん2019/01/25(金) 16:10:17.86ID:cY+a6SZr
ITにいて Apache Spark 知らないとかアホ丸出しだから作者が Spark なんて名前を付けている時点で不安になるのが当然で、普通は避ける
それなのに Spark 使ってる奴はそいつも Apache Spark を知らない可能性が高く、同様にアホ丸出し

148デフォルトの名無しさん2019/01/25(金) 16:59:39.24ID:2xvx7HDE
>>147
作者が知らないも何もApache Sparkの方が後発だし、その頃にはSpark Frameworkは今さら改名できないくらい広く使われてたぞ

149デフォルトの名無しさん2019/01/25(金) 18:04:32.01ID:fUiZiF+t
>>147はアホを丸出しにしてみたかったのかも知れない。

150デフォルトの名無しさん2019/01/25(金) 19:52:16.96ID:h/3l4eZA
君とSpark

151デフォルトの名無しさん2019/01/25(金) 20:15:44.23ID:PIdTSIvJ
>>147
これは恥ずかしい

152デフォルトの名無しさん2019/01/25(金) 21:28:25.32ID:NpmoGBI+
android studioで、それぞれ以下の行を追加

actibity_main.xml
android:id="@+id/back"

MainActivity.kt
import android.graphics.Color
import android.widget.LinearLayout
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
background.setBackgroundColor(Color.parseColor("#FF0000"))


で、画面が赤くなると思うんだけど、アプリが起動直後に停止してしまう。
background.setBackgroundColor(Color.parseColor("#FF0000"))
の行をコメントにすると普通に起動する

本当はラジオボタンで選んでバックグラウンドを変える処理だけど、抜き出してやってみてもうまくいかない

153デフォルトの名無しさん2019/01/25(金) 21:40:17.98ID:9WShTN4K
流行るわけないとか言ってるあたり、マジで最近出てきたフレームワークだと思ってたんだろうな
Javaのマイクロフレームワークとしてはほぼデファクトなのに

154デフォルトの名無しさん2019/01/25(金) 21:41:18.91ID:9WShTN4K
>>152
エラーメッセージに答えが書いてあると思うよ

155デフォルトの名無しさん2019/01/25(金) 21:58:54.35ID:NpmoGBI+
>154
コンパイルは普通に通り、ワーニングも出ない
ただ、アプリは起動直後に停止してしまう。

デバッグ用のスマホが悪いかと、別の機種つないでみても同じく起動直後に停止して

MyApplicationが停止しました

と表示される

156デフォルトの名無しさん2019/01/25(金) 22:30:34.06ID:T4sCfJsj
なんでAndroidスレで聞かないわけ?
エラーメッセージ読めないのと一緒なの?

157デフォルトの名無しさん2019/01/25(金) 22:30:36.78ID:pxW0IIRd
所謂おまじないはともかくとして
入門書や入門サイトが最初に教えるべきは println と throw RuntimeException() だと思う
最初に転び方だわ

158デフォルトの名無しさん2019/01/25(金) 22:48:55.25ID:NpmoGBI+
ありがとございます
すこしスレチみたいなので、こっちでもう少し調べてみます。

159デフォルトの名無しさん2019/01/25(金) 23:56:18.60ID:k0QCMDX+
>>158
ちょっと暇だから相手してやるよ
ほんとに LinearLayout 使ってる?最近の環境で新規アプリ作ったら ConstraintLayout だと思うんだけど

たぶんここが
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
こうだ
val background = findViewById<ConstraintLayout>(R.id.back)

160デフォルトの名無しさん2019/01/25(金) 23:57:28.33ID:k0QCMDX+
ちょっと面白いと思ったのは、ConstraintLayout に対して
val background = findViewById<LinearLayout>(R.id.back) as LinearLayout
background.setBackgroundColor(Color.parseColor("#FF0000"))
これだと val background = 〜の行で ClassCastException で落ちるのに、

background.setBackgroundColor をコメントアウトすると落ちずに普通に動いちゃうのね
これは background が使われないなら background へキャストして代入する処理自体を kotlin が無効化しちゃうのかな

161デフォルトの名無しさん2019/01/27(日) 18:18:09.78ID:jDwbvKDS
いろいろな意見を参考にやってみました

原因
コンパイルエラーは出なかったけどIDが変なところをさしていて、カラー情報を書き込んだ瞬間に落ちていました。

対処1
actibity_main.xmに
android:id="@+id/back"を消して

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>

を追加

対処2
MainActivity.ktの
<LinearLayout>の代わりに
<android.support.constraint.ConstraintLayout>

2通りの方法でうまくいきました

import android.support.constraint.ConstraintLayout
をimportすると、
>159の<ConstraintLayout>だけでOKでした

ありがとうございました

162デフォルトの名無しさん2019/01/27(日) 19:32:56.92ID:dhHHmXdZ
>>161
>>154のエラーメッセージ >>157のRuntimeException >>160のClassCastException
これらはどれも実行時エラーのことで、それを表示する方法や読み解き方をググるなりした方が良いと思うよ
今後のためにね

163デフォルトの名無しさん2019/01/27(日) 21:32:10.99ID:jv36ci7O
>>140
Ktorやで

164デフォルトの名無しさん2019/01/28(月) 00:27:33.91ID:A5w6Cdea
圭太

165デフォルトの名無しさん2019/01/28(月) 09:34:18.83ID:j8L/fU4R
Ktorええよな、今作ってるAPIサーバーで使ってる。
Webアプリにはあんまり向かなそうだけど

166デフォルトの名無しさん2019/01/28(月) 10:43:40.13ID:c8FVptT0
幸太

167デフォルトの名無しさん2019/01/28(月) 10:51:26.03ID:qhu0cqfw
古都鈴

168デフォルトの名無しさん2019/01/28(月) 18:09:48.33ID:YkAtt80R
昔、古都ひかるってAV女優が好きだったの思い出した

169デフォルトの名無しさん2019/01/28(月) 18:25:17.41ID:ncjyAVYK
ググったけどお前微妙な趣味してるな

170デフォルトの名無しさん2019/01/28(月) 18:43:54.94ID:qhu0cqfw
>>168
ワイも好きでした

171デフォルトの名無しさん2019/01/28(月) 18:44:53.31ID:SEDlCRnu
>>165
Webアプリしようと思ってKtor勉強中なのだが、向いてないのか...

172デフォルトの名無しさん2019/01/28(月) 18:45:00.57ID:MtItNdsU
今から考えればそうだが
昔はあんなのでもレベル高かった気がする
あの頃のやつだと河井さくらとかいう人が文字通り面白かったし水野栞も良かった

今は顔面偏差値すごい底上げされてて嬉しい

173デフォルトの名無しさん2019/01/28(月) 18:54:36.48ID:qhu0cqfw
今でも通用すると思うで

174デフォルトの名無しさん2019/01/28(月) 19:24:55.14ID:j8L/fU4R
>>171
Ktorでももちろん作れるけど、ログイン前提のWebアプリを作るなら自分で作らなくちゃいけない部品が多い。
大人しくSpring使っておけばそこらへんは全部用意されてる。

175デフォルトの名無しさん2019/01/28(月) 19:28:08.60ID:ncjyAVYK
>>171
Ktorはいわゆるマイクロフレームワークに分類されるフレームワークだから、ガチガチのWebアプリを作るのはめんどいよ
まあ認証やらセッション管理やらDBやらのことだから最初に一度作ってしまえば後は別に面倒なことはないけど

176デフォルトの名無しさん2019/01/29(火) 08:13:36.09ID:Yq72SlCs
>>165
いいよね。SpringBootと棲み分けできそうやし。

ところでどんな構成(アーキテクチャ)で使ってる?
ワイはもうKtorならRepository無いほうがええような気がしてきてるんやが。

177デフォルトの名無しさん2019/01/29(火) 08:36:23.24ID:Yq72SlCs
https://ideone.com/Xghedx

ExposedではUserTable2に便利メソッドが生えるのでRepository分けても委譲とentity変換ばっかりになりそうだったから
それならModelクラスと同じ場所に置いて、DB変更時にミスりにくい方がいいかと思った。
こんな構成で作ってみてるんだけど、どう思う?

178デフォルトの名無しさん2019/01/29(火) 12:07:29.18ID:Ghu5z8kR
>>177
その割り切った作りはいいと思う。特にチームが大きく無いならメリットの方が多いんじゃないかな。

俺はAPIサーバーと連動するプログラムも同時開発してて、共有できるものは共有してさせるためにクリーンアーキテクチャにしてるからrepositoryも含めてクラスはやたら多くなってるけども。

179デフォルトの名無しさん2019/01/29(火) 23:38:56.61ID:rUlqj1XI
>177
Ktorみていて、データベース接続部分がないような気がしていたけど、やっぱりExposedを使うのか.

180デフォルトの名無しさん2019/01/30(水) 08:07:46.80ID:5baYxL1g
>>178
そしたらちょっと作りきってみるわ。ありがと。

>>179
Kotlin製で統一しようと思ったらそうなるね。

181デフォルトの名無しさん2019/01/30(水) 17:18:23.70ID:JsLx868V
>>179
ExposedでもMyBatisでもなんでもお好きなものをお使い下さいってスタンスだな
めんどいから標準で何か入れてくれるような仕組みがあれば楽なんだけども

182デフォルトの名無しさん2019/02/01(金) 00:51:36.05ID:HFNNmxMu
>>145
ググラビティすき

183デフォルトの名無しさん2019/02/01(金) 06:19:43.90ID:oyUXC//m
ぐぐらびりてぃって日本だけかと思ってたら海外でも普通に使われてるのな
google(検索する)って動詞とセットで辞書に載っててわろたわw

184デフォルトの名無しさん2019/02/01(金) 12:52:22.08ID:5o/o/nGk
動詞か。とすると過去形が googled か。

185デフォルトの名無しさん2019/02/01(金) 13:06:37.22ID:ad6+KOec
むしろ日本よりも英語圏での方がよく使われてる気がする
海外のフォーラムとかで普通に見る

186デフォルトの名無しさん2019/02/01(金) 18:28:47.94ID:Oa2LgpWH
んじゃヤフーでググれもあながち間違いじゃない?
ソニーのファミコン的な

187デフォルトの名無しさん2019/02/01(金) 21:35:19.79ID:5o/o/nGk
Infoseek と Exite もよろしく

188デフォルトの名無しさん2019/02/02(土) 07:20:45.10ID:vIqKCsXY
ビンガビリティ
強そう

189デフォルトの名無しさん2019/02/02(土) 12:34:49.40ID:ecMf0cvm
Anko使ってる?

190デフォルトの名無しさん2019/02/02(土) 20:52:18.84ID:rNm5OL0i
Unko?

191デフォルトの名無しさん2019/02/02(土) 21:18:44.79ID:60g8Sasz
大体レイアウトとロジックが混在してるのは良くないねってことで
レイアウトはxnlファイルに分離するようにしたんだと思うんだけど
何でAnkoってまたレイアウトとロジックを混在させるようなことしてんの
時代に逆行してるだけでは

192デフォルトの名無しさん2019/02/02(土) 21:38:35.91ID:mZCa7M9L
>>191
アーキテクチャ上重要なのはビューとロジックの分離
一方で、レイアウトとロジックの分離というのはビューに閉じた話であり、
マークアップエンジニア(笑)とフロントエンドエンジニア(笑)の分業をしやすくするだけのものでしかない
フロントエンドエンジニアが十分有能でマークアップエンジニア(笑)の仕事も自分でこなせるなら分ける必要は全く無い

193デフォルトの名無しさん2019/02/02(土) 21:43:01.16ID:hUtwc62g
流行りのキーワード並べてドヤ顔

194デフォルトの名無しさん2019/02/03(日) 07:45:41.73ID:gLy6KBGU
レイアウトの中にロジックがダラダラ書かれたら見通し悪くてUnkoだけどそこは経験とコード規約とレビューで制御できる
適正なメソッド分割は主に人間の仕事であってライブラリーの責務ではない
XMLの欠点とDSLの利点はGitHubのWikiで説明されてる
設計開発にイチイチXML使うのは微妙じゃね?DSLとかいいよな!ってのは時流でもある
だから少なくとも時代に逆行しているだけということはない

195デフォルトの名無しさん2019/02/03(日) 10:09:31.17ID:nQr97LtT
いーや、Ankoは糞

196デフォルトの名無しさん2019/02/03(日) 12:29:21.29ID:Wt38prvY
anko味のunko

197デフォルトの名無しさん2019/02/03(日) 12:36:56.63ID:FHrrfvzD
unko味のankoとanko味のunko

198デフォルトの名無しさん2019/02/03(日) 15:59:31.11ID:sWvJHh2u
あんこ餅食いたくなってきたからスーパー行ってくる

199デフォルトの名無しさん2019/02/03(日) 18:35:49.59ID:FHrrfvzD
Anko程の糞はない

200デフォルトの名無しさん2019/02/03(日) 21:27:31.59ID:WjHZzJrh
気になってるんやがkotlin nativeが完成したらgoは駆逐できるんやろか。
それともシングルバイナリやら並列化でgoのメリット残るんやろか。

201デフォルトの名無しさん2019/02/03(日) 21:58:54.28ID:OYz8YI9S
>>200
現実的に考えると、全く話題にもならずにひっそり消える可能性が一番高いよ
kotlin nativeが

202デフォルトの名無しさん2019/02/03(日) 22:10:09.65ID:WjHZzJrh
マジかあ。Scala状態は残念やのー。
俺にキラーアプリ作れるような力があればなぁ。。

203デフォルトの名無しさん2019/02/03(日) 22:19:22.36ID:WjHZzJrh
githubでkotlin-native使ってるプロジェクト探してみたけど、確かにあんまり盛り上がってる感じではないね。
今作ってるクソアプリが一段落ついたら何か作ってみよう。

204デフォルトの名無しさん2019/02/03(日) 22:43:39.24ID:0oNu2+nX
アプリよりFWだよな

205デフォルトの名無しさん2019/02/03(日) 22:49:54.08ID:OYz8YI9S
「オーケーグーグル、エロくて楽しいアプリ作って」でエロくて楽しいkotlin nativeアプリのソースが生成されるAIを作れば流行る

206デフォルトの名無しさん2019/02/03(日) 23:03:35.29ID:hpvKsGCb
Kotlin/Native自体は現在進行中のSubstrate VMが出来上がるとやや辛い立ち位置になる

でもKotlin全体としては間接的にエコシステムが大きく強化されるし
Kotlin/Nativeから「Kotlin with Substrate VM」への移行は
性質的に割と容易なものになる期待もあるから使っても大丈夫だと思う

補足だけど Substrate VM はOracle主導のオープンソースプロジェクトGraalの一部で
JavaバイトコードをAOTするもの、
これによりjavaパッケージが使えるKotlin/JVMのままネイティブ化出来るようになる
Linux向けは出来ていてWindowsやiOSなどはまだこれから

207デフォルトの名無しさん2019/02/03(日) 23:43:07.23ID:hpvKsGCb
ちなみにAndroid Runtimeも同様にAOTしている
こっちはJDKをGoogleが好きなように取捨選択してるのでJava互換性テストは通らない

Android Runtimeの技術を利用してJava(Kotlin/JVM含む)からiOS用のネイティブを生成してるのが
RoboVMやMulti-OS Engine

Substrate VMはこれら(Kotlin/Native含む)に対して
後追いだけどOpenJDKフルサポートのAOT、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど

208デフォルトの名無しさん2019/02/04(月) 00:38:33.17ID:udiwpstp
結局Java版Xamarinを作ろうとしてるだけだな
目的不在で技術だけが独り歩きしてる感すごい

209デフォルトの名無しさん2019/02/04(月) 06:16:54.78ID:jDY9Ysuj
>>200
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない

210デフォルトの名無しさん2019/02/04(月) 08:21:30.46ID:+iZnVKUh
>>209
そうなんか。kotlin nativeの得意分野って何なんや?

211デフォルトの名無しさん2019/02/04(月) 10:20:12.21ID:RwYNgFWa
>>208
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新

20年以上前に設計され、修正が積み上げられたC++コードなので
保守し辛く新技術の導入も困難とのこと

JITコンパイラ(Graal本体)はインタプリタやAOTとも関連が深く、
それらも考慮したエコシステムとしてサブプロジェクトを内包してる
Truffle / Sulong / Substrate VM

212デフォルトの名無しさん2019/02/04(月) 10:38:08.20ID:RwYNgFWa
>>210
Kotlinの対応プラットフォームを広げるものだから
強いて言うならKotlin/JVMと同じく通常アプリでは

Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意

213デフォルトの名無しさん2019/02/04(月) 12:40:41.74ID:Mgc+6WQD
Kotlin nativeは悪く言えば現状では得意分野などはっきり言って存在しないし、良く言えばこれから何に使ってもいいとも言える
Goの代わりに使うことももちろん可能

214デフォルトの名無しさん2019/02/04(月) 20:20:46.75ID:nyJZm1CJ
Ktor以上に急上昇してるJavalinってFWお前ら使ってる?

215デフォルトの名無しさん2019/02/04(月) 22:34:50.26ID:QEUSQVw8
使ってないし知らない

216デフォルトの名無しさん2019/02/05(火) 06:33:03.96ID:ZLbI9faD
>>214
使ったら竜騎士とかにクラスチェンジできるかな

217デフォルトの名無しさん2019/02/05(火) 06:59:09.94ID:+mMHH6yh
マジで聞いたことすらなかった
悪くなさそうだけど、英語も含めて情報が少なすぎて趣味以外には使えないかな

218デフォルトの名無しさん2019/02/05(火) 07:02:18.31ID:+mMHH6yh
軽く調べた感じだからよく分かってないんだけど、これ例えばSparkと比べて何が良いの?

219デフォルトの名無しさん2019/02/05(火) 09:02:22.82ID:855O/xU5
Kotlin を今のプロジェクトに使いたいけど、eclipse とか言う糞IDE使ってて相性悪すぎて笑えない
SWT とか JFace とかでUI作ってるから、eclipse を外すのは無理だし

220デフォルトの名無しさん2019/02/05(火) 09:40:26.01ID:NCwCR2JI
ググると槍投げ画像が沢山出てくるな・・・

221デフォルトの名無しさん2019/02/05(火) 10:08:44.38ID:Fs+UH34C

222デフォルトの名無しさん2019/02/05(火) 10:17:58.97ID:LEHFEUGy
>>216
宇宙刑事っぽさもあるし、使うと風呂釜が綺麗になって身体が芯からあたたまりそうな感じもする

223デフォルトの名無しさん2019/02/05(火) 10:32:30.10ID:+mMHH6yh
>>219
UI作るときとことりん書く時でIDE使い分ければいいんでないの?

224デフォルトの名無しさん2019/02/05(火) 10:32:56.86ID:+mMHH6yh
>>221
すまん、それ気付かなかった。
後で見てみるわ

225デフォルトの名無しさん2019/02/05(火) 11:21:10.88ID:jB1piIf6
>>216
ガリで

226デフォルトの名無しさん2019/02/05(火) 11:27:24.21ID:NCwCR2JI
宇宙刑事 Javalin

227デフォルトの名無しさん2019/02/05(火) 12:13:00.65ID:nvQ1xa5u
やっぱJavanだろ

228デフォルトの名無しさん2019/02/05(火) 12:24:17.71ID:ryDpasJz
Javalinの半分はやさしさで出来ています。

229デフォルトの名無しさん2019/02/05(火) 12:42:55.22ID:NCwCR2JI
リン付ければなんでも可愛らしくなると思いやがってそうはいかねえぞべらんめえ ←江戸っ子

230デフォルトの名無しさん2019/02/05(火) 15:01:18.53ID:PldLlsCY
> ←江戸っ子
ウザっ

231デフォルトの名無しさん2019/02/05(火) 15:25:14.63ID:NCwCR2JI
うざりん

232デフォルトの名無しさん2019/02/06(水) 19:35:52.56ID:59jOjkSQ
上でシステム系にはGoみたいに書かれてるんだけど、kotlin/nativeはGoより遅いのかな。
現状ではそうなのかも知れないけど、最終的にはGoと同等の速度が出せるポテンシャル(仕組み)だと
思ってるんだけどそうでもないの?

233デフォルトの名無しさん2019/02/06(水) 19:49:42.95ID:nvZvChxt
goに勝つのは流石に無理じゃ?

234デフォルトの名無しさん2019/02/06(水) 20:35:25.96ID:gjOdQxAx
Goに比べたら遥かに複雑怪奇な言語だから最適化は不利だろう
JVMの挙動をエミュレーションするための無駄な処理は少なからず必要だろうし

235デフォルトの名無しさん2019/02/07(木) 00:37:31.07ID:UFwIxg8c
1 c
2 go
5 jvm
10 script系

3くらいいける?

236デフォルトの名無しさん2019/02/07(木) 05:59:54.51ID:Ftq4Fy0N
>>232
構造的に無理
Goは構造をシンプルに保って高速軽量を維持するために言語仕様を必要最低限にしてるから、
書く人間の使いやすさを追求してるこちょりんとは根本的に目指してるものからして違う

237デフォルトの名無しさん2019/02/07(木) 07:33:55.52ID:ygKhuk/7
>>235
いけると思う
JIT後はJVMが1〜2だけど

238デフォルトの名無しさん2019/02/07(木) 08:43:07.10ID:qMU5zT+q
なんでRustはあんなに速いん?言語の抽象度は同じくらいやろ?

239デフォルトの名無しさん2019/02/07(木) 10:01:05.59ID:ygKhuk/7
>>238
根幹の言語機能の所有権とライフタイムにより
C++でのムーブセマンティクスやRAIIみたいなのをより高度にコンパイラが認識出来るので
速度(効率)を保ったまま安全性を高められてる

240デフォルトの名無しさん2019/02/07(木) 10:55:21.09ID:esduY2Xd
Goはフットプリントも小さいからな。
C++だと、iostreamを静的リンクしただけでもそこそこ大きくなるのに。

241デフォルトの名無しさん2019/02/07(木) 12:43:04.54ID:nkNDSe3E
上で1..10の速さ書いたんやけどあれは実測じゃなくて速さランクのイメージや。
go<kotlin native<<jvm<<壁<<script言語
こうなるなら納得なんやけど、現実には
kotlin native ≒ jvmなの?
最適化されたらgoに迫ると思い込んでるんやけどそんな甘くないんかな。

242デフォルトの名無しさん2019/02/07(木) 13:44:29.30ID:Ftq4Fy0N
最適化できたらそらそうだけど、その最適化がどこまで出来るかどうかはお天道様にしか分からない

243デフォルトの名無しさん2019/02/07(木) 14:46:10.65ID:nkNDSe3E
それもそうやね。大人しく半年か1年くらい待ってみるわ

244デフォルトの名無しさん2019/02/07(木) 14:47:12.25ID:ygKhuk/7
コンパイラの頑張り次第で Go ≒ Kotlin/Native まで行ける可能性はある

ベンチマークでは C ≒ Rust << Go ≒ JVM
Rust vs Go https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/rust-go.html
Go vs Java https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html

しかしGCの性質の違い、JVM起動時間、JIT、並列処理サポートなどにより
各ユースケースに対する適性は速度だけでは決まらない

245デフォルトの名無しさん2019/02/08(金) 16:17:29.13ID:nPWMA0BU
3桁ごとにカンマ打つには、
val str= "123456"
println( str.format("%,d"))

想定では、123,456のはずが123456になる
使い方間違ってるかな?

246デフォルトの名無しさん2019/02/08(金) 17:15:55.53ID:3DPCoowD
逆じゃね?

247デフォルトの名無しさん2019/02/08(金) 18:09:56.46ID:nPWMA0BU
逆+Intでないとダメみたい
BigDecimal放り込んだら勝手に12,345.6789みたいになればと思ったんだけど、自分で作るの面倒で信用ならん

248デフォルトの名無しさん2019/02/08(金) 18:45:11.42ID:MkVUfclC
jvmならNumberFormatでいいんじゃないの

import java.math.BigDecimal
import java.text.NumberFormat

val BigDecimal.fmtStr: String
get() = NumberFormat.getNumberInstance().format(this)

fun main(args: Array<String>) {
val a = BigDecimal(12345.6789)
println("${a.fmtStr}")
}

249デフォルトの名無しさん2019/02/08(金) 19:35:10.36ID:MkVUfclC
ごめんよく見たら丸められてたから訂正
https://ideone.com/AvbxFT

250デフォルトの名無しさん2019/02/08(金) 19:59:36.92ID:nPWMA0BU
>249

"."探して、整数と小数点以下に分けて整数部分にカンマ打ってから合体させようとしこしこ作ってたら別のアイデア出てた
ありがと

251デフォルトの名無しさん2019/02/09(土) 06:09:56.82ID:6/bHpQ6m
locale によってはカンマが3桁区切りではないかも知れないし記号がカンマではないかも知れないので
こうやって自分でやっちゃった方が良いのでは?

println(java.text.DecimalFormat("#,##0.000").format(java.math.BigDecimal("1234567890.1235"))) // 1,234,567,890.124

252デフォルトの名無しさん2019/02/09(土) 07:35:37.20ID:fJwH+mSX
>>251
ロケールに従わず常にカンマにしたいという意図ならそれだとそぐわないと思う
DecimalFormatに与えたカンマはカンマという文字ではなくグループ区切り子なのでロケールに応じた文字で出力されるよ

253デフォルトの名無しさん2019/02/10(日) 17:34:05.13ID:BbTEeZaP
日本, アメリカ, イギリス 他
1 = 1.000 < 10 < 1,000 = 1000

ドイツ, イタリア 他
1 = 1,000 < 10 < 1.000 = 1000

ロシア, フランス 他
1 = 1,000 < 10 < 1 000 = 1000

オーストラリア, カナダ 他
1 = 1.000 < 10 < 1 000 = 1000

国際単位系(SI)
1 = 1,000 = 1.000 < 10 < 1 000 = 1000
  空白を小数区切りに使う国が無いことと、ポイントとカンマの各国のばらつきから
  読み取り間違いを避けるための妥協案のようなもの

254デフォルトの名無しさん2019/02/10(日) 17:41:28.40ID:BbTEeZaP
おまけ

Ruby, Java, Kotlin 他
1 = 1.000 < 10 < 1_000 = 1000

C++
1 = 1.000 < 10 < 1'000 = 1000
 アンダースコアをユーザー定義リテラル用に使っていたため

255デフォルトの名無しさん2019/02/10(日) 18:10:30.74ID:6jFJUgix
そうか。じゃあグループセパレータを自分でカンマにセットしとかないと確実にカンマにはならないってことだな。

256デフォルトの名無しさん2019/02/12(火) 05:43:38.35ID:xDY2FToe
Java全然書いたことないんだけどJavaのこと調べてたらこの言語に辿り着いた
Android公式言語とのことだけど、Androidアプリ開発以外の用途でJavaでやることもKotlinで出来るの?
もうJavaじゃなくてKotlin学んだほうがいい?
PythonとCしか書けない

257デフォルトの名無しさん2019/02/12(火) 05:56:17.28ID:SvKCMiwA
おわこん

258デフォルトの名無しさん2019/02/12(火) 06:15:00.09ID:PanSk5rI
>>256
> JavaでやることもKotlinで出来るの?
できる。
> もうJavaじゃなくてKotlin学んだほうがいい?
JavaをやってからKotlinを学んだほうがいいけど、PythonとCができるなら、Kotlinから始めるのもありかも。

259デフォルトの名無しさん2019/02/12(火) 08:01:07.40ID:zazJl4ej
>>256
APIリファレンス読むためにJavaのメソッド定義の構文を知っておくくらいで
Kotlinをメインに学んで良いと思うよ

成果物はJavaクラスファイル(※)なので出来ることは同じ
やろうと思えば1プロジェクトで混在しても普通にお互い呼べる

※Kotlin/JS, Kotin/Nativeとかの別形式もある

260デフォルトの名無しさん2019/02/12(火) 11:22:53.23ID:8lolhehX
Scalaってどこいったん?

261デフォルトの名無しさん2019/02/12(火) 14:31:00.63ID:8DpMAebM
Scalaは衰退しました

262デフォルトの名無しさん2019/02/12(火) 15:06:09.44ID:ncKC6kPX
使われてるところでは安定して使われてるみたい
拡大は止まったと思うけど

263デフォルトの名無しさん2019/02/12(火) 20:08:57.00ID:hkCwi0n8
scala組がkotlinに合流してくれたら覇権言語狙えるんやないか。
ということは、kotlinに必要なのはお洒落感?

264デフォルトの名無しさん2019/02/12(火) 20:28:23.96ID:VerJGrBE
Scalaやってた意識高い系はみんなとっくにRustへ移行した

265デフォルトの名無しさん2019/02/12(火) 21:03:35.46ID:pT/fbk4d
>>256
それをJavaで作る必要があって、Javaで作ることを誰かに強制されているなら、それはJavaで作る
それをJavaで作る必要があって、Javaで作ることを誰にも強制されてないなら、それはKotlinで作る
それをJavaで作る必要がないなら、JavaでもKotlinでも作らない。他の言語を使う。めんどくさいじゃん

266デフォルトの名無しさん2019/02/13(水) 09:04:09.69ID:KRdNZL9E
ちょっと前はScala民がやたらKotlinを叩いてたけど、それももう見なくなったな

267デフォルトの名無しさん2019/02/13(水) 13:18:45.36ID:ikkFeMPB
現在はKotlin教とGo教の戦い?

268デフォルトの名無しさん2019/02/13(水) 14:52:01.31ID:e0d6KWci
言語に自己肯定感を求める人は無難無個性言語Kotlinや低脳言語Goでは欲求が満たされないことを知りRustへ行った

269デフォルトの名無しさん2019/02/13(水) 18:00:16.64ID:41RZIXro
>>267
両方とも同時期に流行り始めたけど、用途的にあんまり競合してない希ガス

270デフォルトの名無しさん2019/02/13(水) 19:36:21.84ID:n4QfG8LN
おれもどうせならオシャレな言語がいいんだがスマホのアプリ作りたいならkotlinしかないよね?

271デフォルトの名無しさん2019/02/13(水) 20:05:24.56ID:o4GE+skC
つDart

272デフォルトの名無しさん2019/02/13(水) 20:07:39.49ID:kPXKdc0M
dartがオシャレ…?

273デフォルトの名無しさん2019/02/13(水) 20:43:21.05ID:KRdNZL9E
flutter普及への最大の障害がDartだよな

274デフォルトの名無しさん2019/02/13(水) 22:02:27.55ID:O2gl0nE8
>>270
あなたの言うスマホアプリがゲームだけであるなら、Unityを使うことができる
これはWindowsマシンでAndroidゲームもiPhoneゲームも作ることができる(iPhoneの実機はあったほうがいいけど)

あなたの言うスマホアプリがiPhoneアプリであるなら開発マシンはMacでiPhoneは必須、個人なら言語は公式のSwift(就職する気なら今からObjective-Cに手を出して時間不足で爆死しよう)
Windowsマシンでも作成だけはできるがユーザーの「よくわからないけど動きません」に対して「よくわからないので直せません」と答えるしかなくなる(所詮エミュ)

あなたの言うスマホアプリがAndroidアプリである場合のみ、Windows(別にLinuxでもMacでもいいけど)でKotlinを使うことで作ることができる
ゲームを作ることももちろんできるが、基本的に全部自力での実装になるので序盤から山が高いし若干面倒くさい(後々勉強にはなるが)
手間と面倒だけ考えるならUnityとC#でやったほうがサンプルも解説も書籍もライブラリも山ほどあるし楽は楽、詰まってもだいたい先人が解いてるのでイージー。タイムイズマネー

もちろん他の言語で作ることもできて、たとえばもしあなたにC++の知識があるならC++でゴリゴリ作ることもできるんだけど、そんな人はこんなこと聞かないよね
えっXamarin?ごめーん忘れてた。「もしあなたがいっぱしのWindowsアプリケーション開発者であるなら」その知識とXamarinとC#と.NETを使うことでAndroid/iPhoneアプリ開発ができるよ

275デフォルトの名無しさん2019/02/13(水) 23:07:05.67ID:eA/7rWxO
>>268
それぞれちょっとずつカジってみたんだけどScalaの人がRustでファイナルアンサーするとは思えんかった。
RustはWebやるにはキツかったからまだどっかで彷徨ってるのかも。

>>269
現在のGoの用途→Webサーバ、Nativeアプリ
JetBrainsが思惑ってるKotlin, Kotlin/Nativeの用途→ Webサーバ, Nativeアプリ、というか何だか色々。
うまく行けばこれから競合していくんかな。

276デフォルトの名無しさん2019/02/14(木) 06:44:05.14ID:l2sDxPpK
>>275
Goもこちょりんもどちらも使うけど、一口にWEBサーバーと言っても得意なジャンルが違うな、少なくとも現時点では。
今後GoにSpringみたいなフルスタックのフレームワークが出てきたら思いっきり競合するかもね。

277デフォルトの名無しさん2019/02/14(木) 09:29:59.23ID:9tQDIG7c
合体させて Gotlin

278デフォルトの名無しさん2019/02/14(木) 11:59:45.42ID:PQjGjDTM
実際、Goの運用性とKotlinの生産性が合わさればわりと最強だと思う
Kotlin nativeみたいにKotlinのエコシステムを再現する方向だとどうしてもJVMをエミュレーションするような感じになって歪みが出る
逆にGoの文法をKotlinに寄せるほうが筋がいい

279デフォルトの名無しさん2019/02/14(木) 13:00:16.45ID:DBAMfZpK
歪みってどういうの?

280デフォルトの名無しさん2019/02/14(木) 15:39:16.51ID:cVDEqZjL
>>279
逆に聞くが、仮に完全にゼロベースで Kotlin native を開発してたとして、今と同じ言語仕様になったと思う?
特定の処理系を前提にして作られて普及した言語が他へ移植されて成功した例はない

281デフォルトの名無しさん2019/02/14(木) 17:06:41.26ID:DBAMfZpK
具体的な支障は無いってことでいいの?

282デフォルトの名無しさん2019/02/14(木) 19:02:02.86ID:HgCh9LDM
横からだけどjvmの負の特性も引き継ぎやすいってことかと思った。
起動が遅いとか、メモリ食うとか。

283デフォルトの名無しさん2019/02/14(木) 21:20:40.39ID:FnxMJF+D
起動が遅い事は遅いが昔からすれば今時のPCは速いね。
Windows95や98の頃なんかどうしてくれようというほど遅かったからなあ。
昔はみんな忍耐力強かったよなあ。

284デフォルトの名無しさん2019/02/15(金) 05:29:24.84ID:Ytmv+Yd8
>>280
確かにJVMのジェネリクス型消去がなかったら、reifiedみたいな複雑怪奇な仕様はなかったろうな。

移植については大抵は非公式移植事例だから、楽観はできないけど、まだ決めつけるには速いかと。
Scala.NET...うっ、頭が...

285デフォルトの名無しさん2019/02/15(金) 08:15:53.64ID:EWf/hEPb
新しいところでいうと、inline classなんか普通にユーザー定義の値型があれば全く必要ないな
unsigned integerもだいぶ無理矢理感が酷い
Kotlin native特有の話だと、C interopのための構造体のマッピングとか超無理矢理で最高にエイリアン感ある

286デフォルトの名無しさん2019/02/15(金) 09:58:26.61ID:KLsspNaS
iPhoneにおけるSwiftの立ち位置=AndroidにおけるKotlinの立ち位置

287デフォルトの名無しさん2019/02/15(金) 10:48:24.63ID:szDoWtiX
あ、はい

288デフォルトの名無しさん2019/02/15(金) 10:54:34.88ID:tar5L0r6
inline class = ユーザー定義の値型 = C#のstruct
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される

289デフォルトの名無しさん2019/02/15(金) 10:56:38.52ID:PR4djPv7
特定のVM前提で設計されて他へ移植されて成功した言語の例としてはAndroidのJava/KotlinやUnityのC#、Node.jsのJSあたりが該当すると言えなくもないけど、
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ

290デフォルトの名無しさん2019/02/15(金) 11:07:58.47ID:tar5L0r6
AndroidやC#のいくつかのターゲットはAOTで
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる

291デフォルトの名無しさん2019/02/15(金) 15:42:23.69ID:FI28dGgE
最近、kotlin触ってるけど、C#より学習コストが高いです
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?

292デフォルトの名無しさん2019/02/15(金) 16:15:05.26ID:PR4djPv7
>>291
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい

293デフォルトの名無しさん2019/02/15(金) 17:24:02.62ID:Hx3jejna
>>292さんの言ってる「Javaの制限」て例えばどんなこと?

294デフォルトの名無しさん2019/02/15(金) 17:29:59.00ID:tar5L0r6
>>291
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること

C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
 他に引数が無い場合は丸括弧も省略出来る
 (GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作

295デフォルトの名無しさん2019/02/15(金) 17:31:30.02ID:tar5L0r6
>>294脱字
× ・IterableとSequenceは遅延評価
〇 ・Iterableと違ってSequenceは遅延評価

296デフォルトの名無しさん2019/02/15(金) 22:07:22.01ID:KHCIiBIM
kotlin勉強中なんだけど、結局のところjetbrainsがscala推さずにkotlin出したのは何でなの?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?

297デフォルトの名無しさん2019/02/15(金) 22:33:17.97ID:tar5L0r6
コンセプトの違い

298デフォルトの名無しさん2019/02/15(金) 23:10:54.49ID:9S5XTVoX
>>296
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね

299デフォルトの名無しさん2019/02/15(金) 23:25:58.35ID:KHCIiBIM
>>296
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。

300デフォルトの名無しさん2019/02/15(金) 23:41:27.98ID:KHCIiBIM
まちがえた。上は >>298
雑念を捨ててkotlin邁進してきます

301デフォルトの名無しさん2019/02/16(土) 15:17:06.30ID:lTjIe/CZ
Scalaは言語マニアのオナニー言語だよなあ

302デフォルトの名無しさん2019/02/16(土) 17:00:29.98ID:odkD9xpX
なんだかんだでscalaは採用企業多いけどね
kotlinもtwitterとかpaypalみたいな大手で使ってくれると宣伝になるんだけど

303デフォルトの名無しさん2019/02/16(土) 17:31:16.36ID:W7DuQqzW
日本のYahooがKotlin採用したくらいではさざなみさえ立たないか

304デフォルトの名無しさん2019/02/17(日) 08:06:13.22ID:8BWCGdz7
Scalaの方が出たのが早かったし意識高い系(笑)が挙って使ったから
でもそれを維持出来る新人たちが居ないのが現状
Scalaは端的に複雑で難解な部分が多い
2018年後半以降Scalaの記事殆ど見かけないやろ?
コップ本(笑)

305デフォルトの名無しさん2019/02/17(日) 11:12:07.88ID:IdBTBZJc
Androidの公式言語がScalaになる世界線もあり得たと思うけど、そうならなかったってことはつまりそういうこと

306デフォルトの名無しさん2019/02/17(日) 11:17:52.27ID:IdBTBZJc
一年くらいScalaで仕事してたしまあ慣れればどうってことはないと思うけど、ScalaとKotlinで選べるとしたらよほどの変人以外はKotlin選ぶと思うわw

307デフォルトの名無しさん2019/02/17(日) 11:30:47.79ID:OQFPUwNT
ScalaはHaskellを意識しすぎ
簡潔に書きたいだけならKotlinかClosureの方がいい

308デフォルトの名無しさん2019/02/17(日) 11:57:32.09ID:nzXhLQND
Scalaのコンセプトは、スケーラビリティの理論実証
 オブジェクト指向と関数型の統合によりスケーラビリティが実現すると考え
 小規模から大規模まで同じ書き方/考え方で記述出来るように設計されている
 出自はコンピュータサイエンスの学者

Kotlinのコンセプトは、より良い産業向け言語
 Javaからの移行や相互運用、コンパイル速度、使い勝手について
 「仕事の道具」であることを意識して設計されている
 出自はIDE製品を提供する企業

309デフォルトの名無しさん2019/02/17(日) 12:47:22.79ID:7MWZQWrl
どっちも我田引水なだけやん

310デフォルトの名無しさん2019/02/17(日) 13:01:53.97ID:nzXhLQND
設計思想と既存資産があるから多様に派生し人が集まる
C, C++, Objective-Cが合流しないのも同様
それを我田引水と評することに何の意味もない

311デフォルトの名無しさん2019/02/17(日) 15:40:49.55ID:1RbyA1NJ
>>310
クスクス

312デフォルトの名無しさん2019/02/17(日) 15:53:56.04ID:tF7RiGiR
scalaでAndroidのプラグインとかあった気がする
我田引水ってなんか意味わからんな

313デフォルトの名無しさん2019/02/17(日) 23:16:27.59ID:ek0K0t7B
>>309
むしろ我田引水でない言語なんかあるんだろうか。
強いて言うならgrassとかwwww

314デフォルトの名無しさん2019/02/18(月) 02:04:27.28ID:XPBhJDxI
我田引水ってのは共用物について不正に占有したり自らの便宜を図ったりするような場合を言う
自己アピールや競争を含めた利己的な行動すべてを我田引水と揶揄するのは農耕民族的な発想が過ぎる
そういうのは道徳というより村八分や出る杭が打たれるのを恐れる面が強くイノベーションの足枷

315デフォルトの名無しさん2019/02/18(月) 11:11:01.50ID:+13B6eaL
もはや何のスレだか分からない

316デフォルトの名無しさん2019/02/18(月) 13:20:37.82ID:cZFby2gr
道徳説教スレ

317デフォルトの名無しさん2019/02/18(月) 13:34:09.52ID:trvxFZJG
我田引水スレ

318デフォルトの名無しさん2019/02/18(月) 19:19:37.69ID:I6FKQlBO
後ろ盾がjetbrainsっていうのはどうなんやろ。
大手と比べてどんなメリットデメリットあると思う?

319デフォルトの名無しさん2019/02/18(月) 19:29:55.81ID:Sk2Bqw0/
てか、我田引水ってどういう意味だっけwwww

320デフォルトの名無しさん2019/02/18(月) 19:50:06.12ID:TrdfW/q6
>>318
googleと仲いいしintellijシリーズが売れなくなるとも思えんし安泰なんじゃ?

321デフォルトの名無しさん2019/02/18(月) 20:44:26.76ID:bWM4TeHv
スカラ信者がまた荒らしてるな

322デフォルトの名無しさん2019/02/18(月) 21:57:58.91ID:EXht3ErA
>>318
大手と比べるとメリットはない。後ろ盾のない言語よりはいい。
IDEの開発会社という意味では、言語の普及がIDEの売上に直結する可能性があるので
Oracleみたいに独立不採算だからマネタイズに走るという思考にはなりにくいが、
絶対的なものではない。

323デフォルトの名無しさん2019/02/18(月) 22:33:30.93ID:nEhvYQ88
IDEの開発会社であるが故のリスクもあるけどね
VSCodeのような強力な他の開発ツールがKotlinサポートにおいてIntelliJを超えてしまってユーザーが流れた場合、
JetBrainsにとってKotlinの開発を続けることにもはや意味がなくなってしまう

324デフォルトの名無しさん2019/02/18(月) 22:58:18.56ID:/oirkxE3
後ろ盾最強はやっぱrust?

325デフォルトの名無しさん2019/02/18(月) 23:02:22.94ID:3dpq5+94
Goでぇす!

326デフォルトの名無しさん2019/02/19(火) 08:14:46.86ID:cAOiK8uf
後ろ盾の強さでいったらGoだべ
あれだけの巨大企業がついてる上に、開発も独裁せずに異常なまでにオープンであることを重視してるし

327デフォルトの名無しさん2019/02/19(火) 09:12:17.39ID:D8b3v+Fo
>>326
最強のSEO力でそう見せてるだけだぞ
それでもDartに対するヘイトは抑えきれなかったようだが

328デフォルトの名無しさん2019/02/19(火) 09:33:24.18ID:cAOiK8uf
>>327
直接Go開発周りのディスカッションを見てきての感想だから、SEOも何も関係ねーよ
英語が読めるなら自分の目で確かめることをお勧めする
あれはある意味理想的なOSS開発の形かもしれない

329デフォルトの名無しさん2019/02/19(火) 13:20:28.53ID:VQ802aqj
goは好きじゃないが>>326の言うことには同意
でもDartちゃんは駄目だから早く眠らせてあげて…

330デフォルトの名無しさん2019/02/19(火) 14:47:06.45ID:dYxLB9sm
FlutterがDartじゃなければ一気に覇権を取るまでありえただろうにな

331デフォルトの名無しさん2019/02/20(水) 14:22:13.38ID:v2qgHXVs
Android次期OSの開発言語がDartになるみたいな話どうなったん

332デフォルトの名無しさん2019/02/20(水) 15:43:28.44ID:YlCEZG7R
夢のOSなので夢で終わる

333デフォルトの名無しさん2019/02/20(水) 15:54:05.41ID:agArr1lp
ダー子

334デフォルトの名無しさん2019/02/20(水) 16:09:47.41ID:xuurx1V0

335デフォルトの名無しさん2019/02/20(水) 17:27:44.53ID:9tgV50SM
Dream → Nightmare

336デフォルトの名無しさん2019/02/20(水) 19:05:59.81ID:v7iPz90J
夢は見るもの
目標は叶えるもの

337デフォルトの名無しさん2019/02/20(水) 19:45:33.26ID:TCqLAjvR
夢を見る島

338デフォルトの名無しさん2019/02/20(水) 21:47:37.37ID:sBZRwN3G
>>337
小鳥ん島
>>336
揚げ足鳥で悪いが、目標は達成するものだと思う。

339デフォルトの名無しさん2019/02/22(金) 04:03:22.89ID:DtR1+6r8
>>334
まじかよダートいらねーじゃん

340デフォルトの名無しさん2019/02/23(土) 12:08:36.03ID:9pS68leH
Котлин

341デフォルトの名無しさん2019/02/24(日) 12:59:23.23ID:pmK9w2Lp
ランキング画面を作っていてRecyclerViewの項目のソートをしたいんですが、
Cellectionをお気に入り数の降順でソートした上で、
タイトルとサブタイトルの昇順にソートするにはどうしたらいいですか
以下でお気に入り数の降順でソートするところまではできたんですが。
RankingDatas.sortedByDescending { it.bookMarkCount }

342デフォルトの名無しさん2019/02/24(日) 17:16:45.57ID:DytDvOjA
俺だったらデータを抜いてくる時点でソートをかけて抜いてくる。

343デフォルトの名無しさん2019/02/24(日) 17:28:12.24ID:pmK9w2Lp
APIレスポンスはそうして返してるんですが、
ローカルでお気に入りオンオフしてランキング順位が変わった場合に
再度APIを叩いてデータを取り直すのも微妙なので
その場合はローカルでソートして
順番を入れ替えたいという感じです

344デフォルトの名無しさん2019/02/24(日) 18:25:01.14ID:nlMNXQkf
ドキュメントにこう書いてあるからascendingとdescendingを順次呼び出せばいいんじゃない?
The sort is stable. It means that equal elements preserve their order relative to each other after sorting.
呼び出す順序はソート優先順位の逆順で

345デフォルトの名無しさん2019/02/24(日) 20:05:27.33ID:pmK9w2Lp
rankingDatas.sortedByDescending { it.bookMarkCount }.sortedBy { it.title }.sortedBy { it.subTitle }

やってみましたが、途中の結果は捨てられて単に subTitle の降順になるようです

346デフォルトの名無しさん2019/02/24(日) 20:26:13.24ID:pmK9w2Lp
昇順か

347デフォルトの名無しさん2019/02/24(日) 21:01:47.88ID:DSwgvg4z
sortedWithつかえ

348デフォルトの名無しさん2019/02/24(日) 21:07:06.34ID:pmK9w2Lp
できましたありがとうございました

349デフォルトの名無しさん2019/02/25(月) 01:07:00.43ID:EPSsIluE
呼び出す順序はソート優先順位の逆順でと言ったのに伝わらなかったか

350デフォルトの名無しさん2019/02/25(月) 05:33:03.93ID:D5d9E5fI
「kotlin sort multiple fields」で検索!

351デフォルトの名無しさん2019/02/26(火) 03:00:37.89ID:lsok3PaS
こういうことしたかったのか?
https://code.i-harness.com/ja/q/2388797

352デフォルトの名無しさん2019/02/26(火) 06:27:00.41ID:oQJIDyJZ
久しぶりに触ったらcoroutineがだいぶ変わってるらしくて以前からとりあえず動くけどよく分かってない状態だったのにもう全然分からないよ……(´・ω・`)

353デフォルトの名無しさん2019/02/26(火) 07:07:49.29ID:UAPWfCGq
>>352
とりあえず前知識として「コールバック地獄」について知っておくといいかも

354デフォルトの名無しさん2019/02/26(火) 08:39:12.02ID:5k0N70Wq
coroutine登場人物多すぎ

355デフォルトの名無しさん2019/02/26(火) 09:55:03.32ID:E0EMtjG2
え?子ルーチンそんなに変わったの?

356デフォルトの名無しさん2019/02/26(火) 10:37:15.60ID:UAPWfCGq
experimental中は色々変わったけど正式版以降の使い方は基本的に変わってないよ
https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md

357デフォルトの名無しさん2019/02/26(火) 12:06:54.02ID:5MxkS3P7
>>351
のリンク先で、数値なら、- で降順にできるのか?

list.sortedWith(compareBy({ -it.age }, { it.name }, { it.address }))

Ruby なら、
arr2 = arr.sort_by { |a| [ -a[:score], a[:room] ] }

358デフォルトの名無しさん2019/02/26(火) 18:17:15.84ID:k06atLuF
>>357
できる。

359デフォルトの名無しさん2019/02/28(木) 03:26:51.88ID:oRFlldUh
ま、しかし、複数項目で昇順降順が混在する場合は自分で Comparator 作っちゃった方が楽かもね。

360デフォルトの名無しさん2019/02/28(木) 07:06:25.14ID:Lh1ejLNL
いやいや rankingDatas.sortedBy { it.subTitle }.sortedBy { it.title }.sortedByDescending { it.bookMarkCount } でいいじゃん

361デフォルトの名無しさん2019/02/28(木) 09:12:21.78ID:sPMvbV7g
直感的でない

362デフォルトの名無しさん2019/02/28(木) 09:15:13.48ID:UGZ/YaG8
>>360
処理時間3倍かかるよそれ

363デフォルトの名無しさん2019/02/28(木) 10:37:24.91ID:o8LdAn98
>>362
10万件ソートするなら使えないし、1000件しかソートしないなら問題ない
ランキングならたいした件数ないんじゃない

364デフォルトの名無しさん2019/02/28(木) 13:05:23.62ID:oAFMMcaR
>>360
それって2番目の並べ替えで1番目の並べ替えの順序が変わらないことは保証されてるの?

365デフォルトの名無しさん2019/02/28(木) 13:16:03.81ID:TwQuwGRl
stable sortだから保証されてる

366デフォルトの名無しさん2019/02/28(木) 15:53:56.89ID:sPMvbV7g
mutableLivedataを外部に公開したら良くないってことで
別途livedataを作ってそいつに参照を持たせて
外部にはlivedataだけ公開するっていうのを
全部のmutableLivedataに対して行うの面倒臭いんですが
なにかいい方法ないですか

367デフォルトの名無しさん2019/02/28(木) 19:05:52.26ID:TwQuwGRl
よく知らないけどmutableLivedataをコンストラクタで貰って
それを元にlivedataを作って両方保持するクラスでも作って包めばいいんじゃないの

368デフォルトの名無しさん2019/03/01(金) 01:02:08.44ID:8x0yRf06
それで何か解決するんですかね
結局view側からmutableLivedataに
アクセスできるんじゃないですかね

369デフォルトの名無しさん2019/03/01(金) 06:35:34.41ID:eJTnddJA
本当にやり方が思いつかないならもうちょっと経験値の高い先輩なりに相談してみよう

370デフォルトの名無しさん2019/03/01(金) 08:39:12.55ID:8x0yRf06
分からないならレスしないでください。うざいだけです

371デフォルトの名無しさん2019/03/01(金) 09:24:26.88ID:ajbNVKsu
動かしてないけどこんな感じ

import android.arch.lifecycle.*
import kotlin.reflect.KProperty

//保持用
fun <T> unmodifiableLiveData(d:LiveData<T>): LiveData<T> = Transformations.map(d){it}
class MutLiveWrap<T>(val lv:MutableLiveData<T>) {
val readonlyLv = unmodifiableLiveData(lv)
operator fun getValue(thisRef: Any?, property: KProperty<*>) = readonlyLv
}
val <T> MutableLiveData<T>.wrap get() = MutLiveWrap<T>(this)


//使用
class Test {
private val aWr = MutableLiveData<Int>().wrap
val a by aWr

fun f(){
val mutLv: MutableLiveData<Int> = this.aWr.lv
val roLv : LiveData<Int> = this.a
}
}

372デフォルトの名無しさん2019/03/01(金) 11:13:31.72ID:PhmT31GH
>>370
分かりません。

373デフォルトの名無しさん2019/03/01(金) 11:44:05.14ID:AdJjcFYH
>>370
技術力がないだけじゃなくて人間としても終わってるのな

374デフォルトの名無しさん2019/03/01(金) 12:41:01.41ID:yZJ4Zkhu
荒らしに返事するな!

そいつは前からいる、荒らしだろ。
相手をすると、この板に居つくだけ!

375デフォルトの名無しさん2019/03/01(金) 12:57:49.73ID:PhmT31GH
ま、しかし、このスレの場合は日頃は過疎ってるのでたまに荒しが来てくれた方がスレが活性化して落ちる心配がなくなるなw

376デフォルトの名無しさん2019/03/01(金) 16:06:36.33ID:XD1TRf4c
developer.android.comの最近のページはコードサンプルがKotlinとJava両方載ってるんだね
タブで切り替えるんだけど最初に表示されてるのはKotlin

377デフォルトの名無しさん2019/03/01(金) 16:54:26.44ID:ae30enpy
俺も動かしてないけどつくってみた

import androidx.annotation.MainThread
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer

private class ReadOnlyLiveData<T>(private val liveData: LiveData<T>) : LiveData<T>() {
override fun setValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
override fun postValue(value: T) { TODO("この関数を呼び出したとき、リードオンリーだから使えないよって教える。") }
@MainThread override fun observe(owner: LifecycleOwner, observer: Observer<in T>) { liveData.observe(owner, observer) }

@MainThread override fun observeForever(observer: Observer<in T>) { liveData.observeForever(observer) }

@MainThread override fun removeObserver(observer: Observer<in T>) { liveData.removeObserver(observer) }

@MainThread override fun removeObservers(owner: LifecycleOwner) { liveData.removeObservers(owner) }

override fun getValue(): T? = liveData.value

@SuppressWarnings("WeakerAccess") override fun hasObservers(): Boolean = liveData.hasObservers()

@SuppressWarnings("WeakerAccess") override fun hasActiveObservers(): Boolean = liveData.hasActiveObservers()
}

fun <T> LiveData<T>.readOnly(): LiveData<T> {
if (this is ReadOnlyLiveData<T>) return this // もうすでにリードオンリー
return ReadOnlyLiveData(this)
}

378デフォルトの名無しさん2019/03/02(土) 06:14:14.54ID:qFBH5IQH
>>357
降順と昇順が混在する場合は compareBy または compareByDescending で Comparator 作って
それに対して thenBy または thenByDescending で追加させて行く方が楽だし速いと思う。

379デフォルトの名無しさん2019/03/04(月) 16:04:14.52ID:/4qbaGVQ
AnkoでBottom Sheetって使えますか?

380デフォルトの名無しさん2019/03/08(金) 09:22:28.79ID:Yj0eRJ2i
なんか面白い話題ないんかな。。

381デフォルトの名無しさん2019/03/08(金) 10:46:41.80ID:pv8HlopZ
君が面白くなりなさい。

382デフォルトの名無しさん2019/03/08(金) 13:24:56.87ID:AzqZJLRD
springがフルkotlinになるのはいつ?

383デフォルトの名無しさん2019/03/08(金) 18:01:21.77ID:rmua+rZ/
Exposed1.0が出るのはいつ?

384デフォルトの名無しさん2019/03/10(日) 12:52:23.09ID:t+kr7Jdy
sequenceってジェネレーターみたいなもの?

385デフォルトの名無しさん2019/03/10(日) 13:42:04.30ID:56gRJqyl
>>384
SequenceはIterableとほぼ同じ
違いは
 Sequence: 遅延評価する (なのでジェネレーターも含む)
 Iterable:  基本的には遅延評価でない (通常、実体はコレクション)

拡張関数も別れていて、例えば
 Sequenceのmap は遅延評価するSequenceを返す
 Iterableのmap はその場で全要素を処理してListを返す

386デフォルトの名無しさん2019/03/11(月) 00:27:22.19ID:+Nlo5Elt
ずばり説明が書いてあるページを発見した。

KotlinのListとSequenceって何が違うの?
https://qiita.com/KirariGlock/items/9aa251a44c11900c8b5f

387デフォルトの名無しさん2019/03/11(月) 07:22:41.11ID:0boP2QX3
うんこは最後に出す方法

388デフォルトの名無しさん2019/03/11(月) 17:24:32.47ID:2ppgAkG/
げ、知らなかった。
ずっとIterableがStreamの代わりだとばかり。
PythonのSequenceと混同してた。
ならば、Iterableをあそこまでゴージャスにする必要があったのか?

389デフォルトの名無しさん2019/03/11(月) 18:33:50.09ID:JQuKUcCl
誰かの趣味だよきっと

390デフォルトの名無しさん2019/03/11(月) 18:35:48.60ID:oxE6wZ/Z
>>388
典型的なコレクション操作では遅延評価せずその場で全処理する方が早いため

意味付けが違うだけで、SequenceとIterableは同じ拡張関数を持ってるくらいの認識でOK

分かりやすさのため、あえて使い分けを用意しなかった
Javaの割り切り方もありだとは思うけどね

391デフォルトの名無しさん2019/03/11(月) 21:05:48.78ID:MDT71nit
SequenceはJava8のStreamと類似で、KotlinであえてStreamを使うべき機会はほとんどないからSequenceを使っておけば良いってことかな

392デフォルトの名無しさん2019/03/11(月) 23:18:53.36ID:+cXkYAGY
そしてSequenceって変数にぶち込んで使いまわせなかったっけ?

393デフォルトの名無しさん2019/03/12(火) 01:11:15.05ID:WllyGH1o
partitionのSequence版が無くて自作したわ

groupingByも遅延評価だけど使い方がむずい(毎回リファレンス読み直す)

394デフォルトの名無しさん2019/03/12(火) 08:13:05.73ID:z/76z4zm
>>391
pararellがないな。
はっきり並列化できる処理なら、Streamの方がJavaの言い回しを考慮した上でも直感的にかける。

395デフォルトの名無しさん2019/03/12(火) 12:54:36.68ID:6Uu2j9Xc
kotlin推しがgoを推薦


396デフォルトの名無しさん2019/03/12(火) 14:55:36.01ID:7iAawGvK
python,go,kotlin全部推してるやん

397デフォルトの名無しさん2019/03/12(火) 15:14:48.22ID:iD2RJper
>>396
このレスは板内爆撃
本人かシンパかアンチか荒らしかいまいち判別できないので放置でよいよ

398デフォルトの名無しさん2019/03/12(火) 15:56:40.12ID:7iAawGvK
>>397
そうか。すまん

399デフォルトの名無しさん2019/03/16(土) 11:53:34.93ID:28C0KCt9
そもそもなんの権威でもないやろこの人

400デフォルトの名無しさん2019/03/16(土) 13:53:25.25ID:jFsymRCD
坊やだからさ

401デフォルトの名無しさん2019/03/16(土) 16:06:54.74ID:ksQagb59
俺が Kotlin 押しビデオ作って公開すればいいのか?

しかし Kotlin 初心者なので「いいですよ〜。最高ですよ〜」などと情緒に訴えて見ている側を洗脳しようとすることぐらいしかできない。

402デフォルトの名無しさん2019/03/16(土) 16:14:10.50ID:YxxaJZky
>>401
ジャップに布教するなら、みんな使ってますよ〜乗り遅れますよ〜仲間外れですよ〜だけでいいよ
初心者のお前でも、有名企業でのKotlin採用事例を集めて紹介するくらいはできるだろう?

403デフォルトの名無しさん2019/03/16(土) 16:20:48.33ID:28C0KCt9
まぁでも、kotlin go あたりが推奨されるのはわかるけどな
今更phpとかおすよりかは説得力ある

404デフォルトの名無しさん2019/03/16(土) 17:20:10.49ID:ksQagb59
>>402
ああ。そうだな。
後は学生向けにこれさえできれば楽々就職みたいに言うと。

405デフォルトの名無しさん2019/03/16(土) 17:27:02.08ID:ksQagb59
やっぱこれも必要だろうな。
https://imgur.com/b5zh9pa

406デフォルトの名無しさん2019/03/16(土) 17:28:59.66ID:ksQagb59
既にどこの国の誰だか知らんが絵を作っている人はいた。
https://imgur.com/gallery/dIvW5Sh

407デフォルトの名無しさん2019/03/17(日) 18:08:41.49ID:fOPvRjrc
PreferenceFragmentが非推奨になる

代わりにandroidx.preference liblary使えって言われる

日本語のガイドに説明なし

適当すぎんだろイライラ

408デフォルトの名無しさん2019/03/17(日) 21:15:53.12ID:t+AGMGYK
あんま関係ないけどmavenのkotlinプラグインで増分コンパイルされないのって仕様?

409デフォルトの名無しさん2019/03/18(月) 09:41:08.53ID:7YQXcQeA
>>407
ドキュメント読めば書いてあるし問題なくね?

410デフォルトの名無しさん2019/03/18(月) 17:50:47.00ID:VkTfSOi0
>>407
本気で言うけど、公式ドキュメント程度の英語は頑張って読んだ方がいいと思うよ。

411デフォルトの名無しさん2019/03/18(月) 19:24:24.40ID:6b7FslP4
まぁAndroidの公式リファレンスは言語切替をシステム化してるから
ドキュメントのバージョンが不一致なら警告表示するくらいすればいいのにとは思う

iOSの方は英語以外バッサリ切り捨ててる(最新は英語読めと明示してある)から
中途半端に惑わされることは無い

412デフォルトの名無しさん2019/03/18(月) 20:47:50.90ID:1gtRswz3
いつの間にかこんな入門書出てたよ。既にKindle版もある。

Kotlinプログラミング
https://www.amazon.co.jp/dp/B07M8LKSKV

413デフォルトの名無しさん2019/03/19(火) 03:22:14.95ID:j5JxWPYN
もっと可愛い名前にすれば良かったのに
swiftみたいな

414デフォルトの名無しさん2019/03/19(火) 03:33:14.71ID:EnTGEExM
古都リンちゃん

415デフォルトの名無しさん2019/03/19(火) 10:04:27.55ID:InXhSaoV
>>409
日本語でしか表示されないんだが

416デフォルトの名無しさん2019/03/19(火) 10:51:32.88ID:STa9vfc0
>>415
ページ一番下に言語切替がある
リファレンスページでは正常に切り替わらないことがあるからトップページで切り換えた方がいい
https://developer.android.com/

もしくはURLに言語を英語にする「?hl=en」を付ける
https://developer.android.com/guide/topics/ui/settings.html?hl=en

日本語の方はAndroidXの記述が無いな
https://developer.android.com/guide/topics/ui/settings.html?hl=ja

417デフォルトの名無しさん2019/03/19(火) 12:07:55.88ID:t/u/FScK
Androidは公式で日本語ドキュメントあるのか
Kotlinのドキュメントは有志がやってたけどもうメンテしてないよな

418デフォルトの名無しさん2019/03/19(火) 12:30:24.38ID:BI7+7Q7/
君がやってくれ。たのんだぞ。

419デフォルトの名無しさん2019/03/19(火) 14:20:51.95ID:3khslMEX
Kotlin in actionとどっちの方がいいんだ

420デフォルトの名無しさん2019/03/19(火) 15:10:03.68ID:TG1sbbZQ
>>416
丁寧にすまんな……

421デフォルトの名無しさん2019/03/19(火) 17:12:09.49ID:7p2/yAlP
>>417
公式日本語ドキュメントは更新が遅いから読まない方がいいぞ

422デフォルトの名無しさん2019/03/19(火) 17:54:02.89ID:qahjbQKM
kotlin native応援してるんだけど何が一番貢献になるんやろか?
翻訳とか細かなライブラリ作ったりくらいなら時間かければできそうなんやけど、難しいことはできん。
やっぱ募金とかなんか?

423デフォルトの名無しさん2019/03/19(火) 18:07:06.75ID:VCt0hAH/
>>422
まずはなんとかしてVSCodeを潰そう
このままだとJetBrains無くなるよ

424デフォルトの名無しさん2019/03/19(火) 18:12:21.52ID:STa9vfc0
>>422
とりあえず公式リポジトリのスターとfork数増やして
kotlin nativeであることをアピールしたライブラリ作ればいいのでは

ただ、現時点ではパフォーマンスが残念だからお勧めしない
出来ることが違うとはいえ、ロジック部分は
JVMどころかKotlin/JS経由のnodeで動かすのより7〜10倍くらい遅い

まだコンパイラの最適化をやってないのは救いだけど
俺はARC with cycle collectorがスループット下げてる可能性を気にしてる
もしそうなら最適化やっても思うほど改善しないんじゃないかと

425デフォルトの名無しさん2019/03/20(水) 08:09:47.58ID:vnEhpOgU
JSとかnativeとかどうでもええ。
いろいろ変更予定のあるJVMとAndroid対応だけしっかりやれや。

426デフォルトの名無しさん2019/03/20(水) 09:36:36.87ID:bT3jH/zR
JetBrainsの業績そんなに悪くないしむしろ伸びてるはずだけど

427デフォルトの名無しさん2019/03/20(水) 13:58:35.52ID:uYHRW+dq
とりあえずgitとintellijの更新はしとく。
作るとしたら何系のライブラリがいいと思う?

428デフォルトの名無しさん2019/03/20(水) 14:21:09.73ID:wkbxcvwm
>>427
自分で使うやつ
より正確に言うとプルリクエストが来たときに議論できる程度に思い入れのあるやつ

使いもしないのに聞きかじりで作るのはやめておいたほうがいい

429デフォルトの名無しさん2019/03/20(水) 15:39:59.54ID:uYHRW+dq
なるほど。何に思い入れがあったか思い出してくるわ。
ありがと

430デフォルトの名無しさん2019/03/20(水) 17:00:17.12ID:BuSIOCAA
むしろMicrosoftのほうが糞

431デフォルトの名無しさん2019/03/20(水) 20:08:58.41ID:TxjggMxz
>>423
ならライセンス買おうよ。

432デフォルトの名無しさん2019/03/20(水) 20:09:44.23ID:kvLAmSD0
そういえばXamarinネタ見なくなったな

433デフォルトの名無しさん2019/03/20(水) 21:34:30.03ID:/gKFWWq8
>>432
まあ知ってる人はごくわずかだから話題にしたくても出来る人はいないだろう。

434デフォルトの名無しさん2019/03/22(金) 15:40:33.53ID:L3xU9+dS
即荒しが何か書いてスレが活性化するかと思ったら完全に無反応。本当に少数なったのだな。合掌。

435デフォルトの名無しさん2019/03/23(土) 14:14:54.18ID:Bvojjkpo
Kotlin そのものの質問ではないがこのスレの方が分かる人が多いような気がするのでここに書き込む。

IntelliJ IDEA で Kotlin のプロジェクトを作ってその src フォルダで 〜.kt を一つ作ってそこに main() が
あるだけなら良いんだけど、もう一つ 〜.kt を作ってそこにも main() を作って、それぞれを別々に動かす
ということはできないのかな? どうやらそのままではできないようで、そのままやろうとすると個別にコンパイル
しようとしても同じ関数があると衝突してエラーになる。(最初に登録した方のソースは大丈夫。2番目に
登録した方の 〜.kt ファイルのコンパイルでエラー)。

こういう使い方は想定されていないんだろうか? しかしこれができないと小さいプログラムが沢山あるような
プロジェクトは作れなくて個別に沢山のプロジェクトを作らねばならなくなる。仮にそういう風にしかできない
んだとしてもそれならばプロジェクトを束ねるようなその上位の何かは作れないのか?でないと同じ階層に
プロジェクトが沢山作られてしまい非常に使い辛い。

436デフォルトの名無しさん2019/03/23(土) 15:19:26.37ID:HXMNak6o
>>435
トップレベルのmain()が名前空間で衝突しているからコンパイルエラーになると思われる。

class MyApp {
companion object {
@JvmStatic fun main(args: Array<String>) {
のような書き出しでエントリーポイントを作ることも出来ますが、そういった方法では解決できませんでしょうか。

437デフォルトの名無しさん2019/03/23(土) 15:24:44.47ID:UK/ZLX81
>>435
A.kt に書けば AKt.class が、B.kt に書けば BKt.class が生成されるので
JvmNameとかpackage指定と合わないフォルダ下で名前衝突させたりしない限り
普通は衝突しないはずだけど

438デフォルトの名無しさん2019/03/23(土) 15:28:37.98ID:Bvojjkpo
>>436
どうもありがとう。

同じ関数がなければ main() がファイルごとにあっても大丈夫なことがわかった。
実行する時は main() の行頭の左側に出ている ? マークをマウスでクリックして実行またはデバッグすれば実行できた。

439デフォルトの名無しさん2019/03/23(土) 15:29:46.08ID:Bvojjkpo
>>437
ああ。package 付ける方法もあるな。試してないけどそれでもできそう。

440デフォルトの名無しさん2019/03/23(土) 15:34:11.63ID:Bvojjkpo
>>437
どうもありがとう。

できたよ。違う package にしておけば同じ関数があってもうまく行く(名前衝突しないんだから当然と言えば当然か)。

441デフォルトの名無しさん2019/03/23(土) 15:38:27.73ID:UK/ZLX81
いや、437はpackageが同じでもファイル名が別なら衝突しないという話だよ

442デフォルトの名無しさん2019/03/23(土) 18:56:11.23ID:Bvojjkpo
>>441
package が同じというのは2ファイルが package 指定なしの時と同じだよね?
それだとダメだったんだよね。IntelliJ がどういう風にコンパイルしているかの問題だろうけど。

443デフォルトの名無しさん2019/03/23(土) 18:58:25.76ID:z3jdsP7r
さすがにスレチ

444デフォルトの名無しさん2019/03/23(土) 19:07:58.43ID:Bvojjkpo
すまん。

445デフォルトの名無しさん2019/03/23(土) 19:29:18.72ID:UK/ZLX81
>>442
>同じだよね?
同じ

ほんとにmainが衝突してる?
main以外のトップレベル関数が衝突してるだけか、
もしくはかなり古いKotlinコンパイラ(プラグイン)を使ってない?

>>443
これはKotlinコンパイラの仕様だから別にスレチではないよ

446デフォルトの名無しさん2019/03/23(土) 20:07:45.61ID:UK/ZLX81
>>442
ああごめん435読み直したら、衝突したのはmainじゃなくて「同じ関数」なのね

対応方法としてはmain以外をprivate funにする,
classまたはcompanion objectまたはobjectに入れる

A.kt, B.kt
-----
fun main(){
a()
f.a2()
}
private fun a(){}
private val f = object {
fun a2(){}
}

4474422019/03/24(日) 03:29:22.97ID:ynFGlX0q
>>446
どうもありがとう。
確かに private でも名前外に出さないからできるね。

448デフォルトの名無しさん2019/03/26(火) 10:19:16.34ID:E1WCPVyW
Kotlin/Nativeが遅い原因を逆アセンブルして調べてたらこの記事にたどり着いた
https://soywiz.com/kpspemu-kn09/

UpdateReturnRefやLeaveFrameのコストが重すぎる
1.3.20時点ではリリースビルドでも最適化はされていない

449デフォルトの名無しさん2019/03/26(火) 19:23:47.37ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 56097
https://you-can-program.hatenablog.jp

450デフォルトの名無しさん2019/03/26(火) 21:38:27.76ID:PDyA3k9g
>>449
そのためにわざわざ眼鏡買うのバカらしいから君ちょっと自分で試してみなさい。
それともブログ書いた本人だから試し済みか?

451デフォルトの名無しさん2019/03/26(火) 21:40:50.59ID:PDyA3k9g
ていうか既にプログラム書ける人ばかり来てるであろうスレでそんなの書かれても効果を実感できるやつはほとんど居ないだろうなあ。

452デフォルトの名無しさん2019/03/26(火) 21:53:14.49ID:hJyrjtJ9

453デフォルトの名無しさん2019/03/29(金) 20:35:19.53ID:abJt4WgD
今日Kotlin入門しサクッと文法をやった程度のものですがAndroidプログラミングの学習リソースを探しています
JavaでのAndroidプログラミング経験はありません

454デフォルトの名無しさん2019/03/29(金) 20:41:29.42ID:KqjpTu4V
今日やっていきなりかよ!
もうちょっとKotlin単体で粘れよ!他にやることあるだろ!

455デフォルトの名無しさん2019/03/29(金) 21:25:55.21ID:Jv6E4VJb
>>454
>>453はXamarinのAndroid開発のエキスパートかもしれん...

456デフォルトの名無しさん2019/03/29(金) 21:34:48.88ID:wVkKBlg0
>>453
Activityとは何か?と考えることにひたすら時間を費やす。
使用言語にかかわらずandroid開発はそれがすべて。

457デフォルトの名無しさん2019/03/30(土) 06:03:17.66ID:145z6i/c
ぼくなんかJavaちょっとかじっただけでAndroidに挑戦しちゃったわ
あの時はActivityがクラスな事すら分からずにテキスト見てその通り書いてたな……😅

458デフォルトの名無しさん2019/03/30(土) 13:35:02.89ID:M1S6T7Ca
Rってなんですか?とか<T>ってなんですか?とかでぜひ挫折して欲しい

459デフォルトの名無しさん2019/03/30(土) 15:12:50.70ID:b12H3n9S
挫折するような人はRとは?とか<T>とは?なんてこと考えたりしない

460デフォルトの名無しさん2019/03/30(土) 15:38:23.64ID:bfZyzxOj
>>453
「Android Hello World」でググる
何はともあれ、まず動かすのが最速の学習

461デフォルトの名無しさん2019/03/30(土) 20:04:51.02ID:5DG6z16F
RもTも知らんけど、コピペで動いてるからそれでいい
適当にやれば動く
Rが赤いときは、大抵xmlの打ち間違い
T?知らん

462デフォルトの名無しさん2019/04/01(月) 00:45:49.25ID:Th3XB2nz
だいたいあってるw

463デフォルトの名無しさん2019/04/01(月) 01:50:31.93ID://wZRuJn
reifiedつよいよな

464デフォルトの名無しさん2019/04/01(月) 09:38:57.10ID:Fy4OwQz+
発音が難しいよね

465デフォルトの名無しさん2019/04/01(月) 16:18:36.04ID:yssFrFp/
コトリンのジェネリクスのTってC#のdefaut(T)みたいなのある?

466デフォルトの名無しさん2019/04/01(月) 17:10:11.92ID:Tc5+6fel
俺はC#を知らない

467デフォルトの名無しさん2019/04/01(月) 18:32:35.54ID://wZRuJn
ない
csはint x=defaultってかけるみたいだけどkotlinは明示的に0で初期化しなきゃいけない
他の型でも同じ

468デフォルトの名無しさん2019/04/01(月) 19:41:02.24ID:no59bRT+
C#のdefaultは単なるシンタックスシュガーじゃなくて、実行時に型引数に応じた適切な値を生成してくれる機能
JavaやKotlinのハリボテジェネリクスでは原理的に不可能

469デフォルトの名無しさん2019/04/01(月) 21:02:06.63ID:jyzymMUT
やりたくなったことは何度かある

470デフォルトの名無しさん2019/04/02(火) 01:27:31.42ID:imTVpGqL
default(T)ないのか・・・

こうしてみたけど何か改良点ある?
例外時にnullも返せないし例外時に返すためだけに引数にt入れてるんだが・・・

import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue

class SJson {
companion object {
inline fun <reified T> toObject(json: String, t: T): T {
val mapper = jacksonObjectMapper()
try {
val obj = mapper.readValue<T>(json)
return obj
} catch (e: Exception) {
SLog.e(e.message.toString())
return t
}
}
}
}

471デフォルトの名無しさん2019/04/02(火) 07:53:18.35ID:JAcM/MrS
>>470
単にnullを返したいということなら戻り値を T? にすればいい

472デフォルトの名無しさん2019/04/02(火) 08:46:54.35ID:e4jQj1uZ
ObjectMapper って使い回してよかったと思う

473デフォルトの名無しさん2019/04/02(火) 09:36:52.02ID:imTVpGqL
>>471
T?にしたらnull返せたわサンクス

>>472
なるほどね

474デフォルトの名無しさん2019/04/12(金) 13:13:10.63ID:EBXnKzt9
Kotlin 1.3.30 released
https://blog.jetbrains.com/kotlin/2019/04/kotlin-1-3-30-released/

KAPT関連の機能追加など
符号無し整数配列の機能追加など
Kotlin/Native
  mingw_x86サポート
  CocoaPodsとの実験的統合機能
  C相互運用改善

475デフォルトの名無しさん2019/04/12(金) 23:07:21.58ID:JX4xskgO
githubのrelease読んだけどめちゃくちゃ多かったな

476デフォルトの名無しさん2019/04/13(土) 02:06:40.85ID:hw3Eyeqa
ここからだとまだ 1.3.21 のままだね。
https://kotlinlang.org/docs/tutorials/command-line.html
IntelliJ だと 1.3.30 にアップデートできたけど。

477デフォルトの名無しさん2019/04/13(土) 02:22:02.28ID:hw3Eyeqa
あれ? UInt 型の変数を String.format() で指定する時はどうするのかな?
%d は駄目だし。toString() してから %s 使えってか?

478デフォルトの名無しさん2019/04/13(土) 09:53:18.70ID:oqNH9LQH
>>477
そのまま%sでも使えるけどString.formatはそもそもKotlinでなく
Javaの機能(=Kotlin/JVM以外で使用不可)なので
単純な書式ならString Template使った方がいいよ

val n = 100u
println( "n=${n}" )

479デフォルトの名無しさん2019/04/14(日) 20:07:14.86ID:JuY/4ckm
UInt に関しては toLong() しちゃえば良いだけだと後で気づいたが、ULong の方はどうもならんね。
ULong.MAX_VALUE と Long.MAX_VALUE は10進数だと20桁と19桁で1桁違うので桁を考慮したフォーマットはこれを考慮する必要がある。
%20d とか %020d と書いても ULong については分かってくれないので自作する必要がある。

480デフォルトの名無しさん2019/04/15(月) 01:34:29.54ID:PzbTbQ3M
C#みたく${}内でフォーマットが使えれば一番なんだけどね…

481デフォルトの名無しさん2019/04/15(月) 17:43:26.97ID:3BglWTch
要望出せばそのうち出来るようになりそう

482デフォルトの名無しさん2019/04/19(金) 12:18:20.68ID:je8e8yU3
OracleJDK有料化でますますKotlin人口が増えるな

483デフォルトの名無しさん2019/04/19(金) 13:16:58.17ID:oa1dttvK
たしかASにjavaからkotlin変換がなかったっけ
あれで全て解決するような気がするんだけど

484デフォルトの名無しさん2019/04/19(金) 14:47:33.44ID:Z5+6w9VM
jdk有料化とかで騒いでいる奴いるけど
彼らにとってoraclejdkが唯一のjdkなのかな

485デフォルトの名無しさん2019/04/19(金) 14:57:46.07ID:/crv8Bf3
>>484
そうだよ
ついでに世界は五分前に始まった

486デフォルトの名無しさん2019/04/19(金) 17:40:48.18ID:xQzUZ1Zh
JDK有償化の話は何ら騒ぐようなことじゃなかったのに
Oracleの説明が手抜きだったからああなった

あとOpenJDK公式サイトの構成が酷く大部分がメンテされてないもの原因の一つ
例えば Groups > Adoption > Wiki > Adopt OpenJDK

487デフォルトの名無しさん2019/04/19(金) 17:46:39.55ID:xQzUZ1Zh
サイト管理者が違うんだろうけど
AdoptOpenJDKへのリンクをトップに置いとけばいいのに
OpenJDKのビルドインフラのメンバーが運用してるんだから

488デフォルトの名無しさん2019/04/19(金) 21:41:56.97ID:oXduz3ip
うちはAWSのやつに順次置き換えてるわ、名前が覚えにくいけど

489デフォルトの名無しさん2019/04/19(金) 21:50:42.00ID:aAzLpfHC
なによりJakartaEEが無能すぎる

490デフォルトの名無しさん2019/04/19(金) 22:34:55.70ID:hY3XsNGB
そこでjblendですよ

491デフォルトの名無しさん2019/04/20(土) 09:53:47.54ID:IaSD8GNU
>>453
おぉー同士。
当方、Visual Basicアプリ、iOSアプリの経験はあるが、Android経験ゼロです。

どうやらAndroidManifest.xmlに記載のActivityがプログラムのエントリーポイントだと解った所。

iOSとの比較で言えば、
Activity = ViewController,
wedgit = View,
Fragment = Container ViewController
AppDelegate = Application
って感じらしい。

492デフォルトの名無しさん2019/04/20(土) 11:40:44.23ID:IaSD8GNU
>>491
ちょいと違うかも!
Fragment = custom wedgit(user defined wedgit)

みたいだな。
さて、Java, Kotlin初心者なので、両者のコードの対応表が欲しいところだ。

493デフォルトの名無しさん2019/04/20(土) 11:43:32.64ID:IaSD8GNU
>>492
>Java, Kotlin
Overview of Kotlin and Comparison Between Kotlin and Java
https://www.xenonstack.com/blog/overview-kotlin-comparison-kotlin-java/

494デフォルトの名無しさん2019/04/20(土) 13:32:39.16ID:IaSD8GNU

495デフォルトの名無しさん2019/04/21(日) 13:29:56.22ID:9kZK6Cbt
macOS Mojave 10.14.2
Android Studio 3.4
環境でBasic Activity Project作ってHello World表示するまで、かれこれ2hr費やした。

ハマりポイント
1. Gradle project sync failed. Basic functionality will not work properly.▶resolved with installing JDK 8u212
2. No Module Specified▶ガチャガチャやって解決。

496デフォルトの名無しさん2019/04/21(日) 13:36:48.96ID:9kZK6Cbt
ところでGradleって何だ?

daemonとして動いてファイルの変更を監視するmakeコマンドみたいなものか?
今、Gradle sync failed問題で困ってる。
新しくプロジェクト作ったら、Gradle sync failedってエラー吐いて、新規にapkってかModuleを作れない。なぜ??

497デフォルトの名無しさん2019/04/21(日) 13:52:47.18ID:qy+VhZ5w
>>496
何かというのはググってどうぞ
Gradle sync failed は Android Studio側の問題 (おそらくbuild.gradle生成処理の問題)

必要なライブラリのダウンロードが終わってないと発生するような印象
Android Studioを再起動してプロジェクトを新規作成しなおすとエラーが無くなったりする

498デフォルトの名無しさん2019/04/21(日) 14:11:36.76ID:Jrx6sgEL
gradle嫌い。
完全オフラインで開発作業したいのに、
ちょっとした事でネットアクセスを要求してくる。

499デフォルトの名無しさん2019/04/21(日) 14:14:25.40ID:RKX/L/5n
GradleKotlinDSL使ってるけど情報少なすぎてハマるからオススメしない

500デフォルトの名無しさん2019/04/21(日) 15:35:20.45ID:9kZK6Cbt
>>497
AndroidStudio3.4(17 April 2019)には問題ありと判断して、3.2へdegradeしてみた。

Gradle sync failed issueは初回Studio起動時に発生するも、指示に従って、build toolの最新版をinstallしてみた。

その後は3.2では問題発生せず!

ちなみに3.3はArchiveに発見できず。September 2018のAndroidStudioだが、まあ、良いんじゃ無いかぁ。

501デフォルトの名無しさん2019/04/21(日) 15:53:07.87ID:9kZK6Cbt
くっそ!
AndroidStudio3.3は、English pageにあるのかぁ。
日本語ページに無いなんて!
どうやら、日本は置いてけぼりって事だ。

502デフォルトの名無しさん2019/04/21(日) 16:45:42.90ID:9kZK6Cbt
AndroidStudio3.4
AndroidStudio3.2
AndroidStudio3.3.2

の順で試してみた。Mojave 10.14.3で。
Gradle sync failedが発生しないのは、3.2だった。
3.3.2, 3.4は発生する。

何をやっているかと言うと、
AndoroidStudioをinstallした直後に、新規プロジェクト(Basic Activity)を作った直後の挙動を調査しているのだ。

プロジェクト作成直後にGradle sync failedってよろしく無いよねぇ。
AndroidStudioをrestartしてもこの症状は解消しない。

503デフォルトの名無しさん2019/04/21(日) 16:51:51.27ID:qy+VhZ5w
>>502
3.3以降で、エラーになったプロジェクトを捨てて
再度新たにプロジェクトを作っても発生する?

504デフォルトの名無しさん2019/04/21(日) 17:41:08.01ID:9kZK6Cbt
>>503
します。ただし、3.4の場合、何かのひょうしに解決されて、Gradle sync failedってのが出なくなります。

idea.logファイルに記録されてるWarningはこんな感じ。

WARN - n.GradleOrderEnumeratorHandler - Root project path of the Gradle project not found for Module: 'App03'

505デフォルトの名無しさん2019/04/21(日) 18:18:34.43ID:2Pn5K2oC
そのへんのエラーは冗談比喩抜きで「起動しっぱなしで放っておいたら数日後に直る」経験しかない
まあどっかの何かが新しい何かに何かしてなくて放置してると何かが何かなって何かするんだと思う

506デフォルトの名無しさん2019/04/21(日) 18:20:30.52ID:9kZK6Cbt
>>504
>Root project path of the Gradle project not found

解決か?
~/Library/Preferences/AndroidStudio3.4/
~/Library/Preferences/AndroidStudio3.3/
を消してやると、Gradle Sync failed Issue解決!か?

今の所、上手く動いてる.
次は、Command Lineでkotlincコマンドを実行したいのだが、AndroidStudioをinstallしただけではダメなのだろうか?

In Android Studio download page, the basic Android tools below are included in Android Studio.
らしいのだが?

507デフォルトの名無しさん2019/04/21(日) 18:36:10.73ID:9kZK6Cbt
試しに、
https://developer.android.com/samples
ここからサンプルプロジェクトをdownloadしてみた。
なんと、AndroidStudio付属のGradleとは異なるバージョンのGradleのinstallが始まった。

サンプルプロジェクト毎にTarget API Levelが異なるために、それ用のGradleがinstallされるみたい。

AndroidStudio3.2, 3.3.2, 3.4をinstallしたが、しばらく3.4を使ってみる。

508デフォルトの名無しさん2019/04/21(日) 18:38:19.48ID:9kZK6Cbt
>>505
Gradle daemon(プロセス名java)をkillしてやれば、Sync failed Issueは解決するのかも!

509デフォルトの名無しさん2019/04/21(日) 18:48:08.38ID:2Pn5K2oC
すまん触った

510デフォルトの名無しさん2019/04/21(日) 19:56:32.73ID:9kZK6Cbt
developer.android.comからサンプルをdownloadして動かしてたら、Gradle daemonが3つも動いてる事になった。

各々違うVersionのGradleらしい。

どうやら、androidの開発環境の歴史的変遷から、ややこしい事になってるみたいだ。

build.gradle(Module:app)とbuild.gradle(Project: kotlinApp)の2つあったり。

511デフォルトの名無しさん2019/04/21(日) 21:42:46.66ID:ePLxajCC
連投しているところ悪いけど、その手の日記ならQiitaにでも書いておいてほしい。
ていうか書くまでもなくそこに答えが書いてある。

512デフォルトの名無しさん2019/04/21(日) 22:54:30.74ID:JMkKpOJG
まずはAndroid関係ないシンプルなGradleプロジェクトを作ってみることをお勧めする。基礎知識が欠落しすぎてて余計な回り道しかしてない。
よほど込み入ったことをしない限りそんなに複雑なものではないから。
少なくとも歴史上生まれてきた数々のビルドツールの中では1番マシ。

513デフォルトの名無しさん2019/04/21(日) 22:54:39.59ID:8IQ6w5E8
.gladleのキャッシュとかいろいろあるけどねえ
ガチャガチャやってりゃ直るからgladleは優しいよな

514デフォルトの名無しさん2019/04/21(日) 22:55:48.78ID:JMkKpOJG
それ。ぶっ壊れたと思っても適当になんかしてりゃ直ってくれるから優秀。

515デフォルトの名無しさん2019/04/21(日) 23:56:09.92ID:+YkyhY+W
まったく毎度毎度グーグルの仕事はほんんんんと雑だな

516デフォルトの名無しさん2019/04/22(月) 00:58:40.19ID:47gIWCEb
fragmentのbindingってlateinitでvarにするのとby lazyでvalにするのとどっちが正解ですか

517デフォルトの名無しさん2019/04/22(月) 03:51:49.53ID:SyBBal55
>>509
はい

518デフォルトの名無しさん2019/04/22(月) 10:56:56.63ID:QiOq/xsC
>>512
thx
found great articles in Qiita concerning Gradle build tool.

519デフォルトの名無しさん2019/04/22(月) 12:17:09.85ID:iCdpr57v
JVMが有償化したらおまえら阿鼻叫喚

520デフォルトの名無しさん2019/04/22(月) 12:49:18.33ID:+g+F61Q1
1年くらい前は確かに阿鼻叫喚だったけど今となってはもう誰も問題だと思ってない

521デフォルトの名無しさん2019/04/22(月) 13:54:04.36ID:5CpOs8vM
>>519
JVM, JRE, JDKが今どんな状況か分かってなさそう

522デフォルトの名無しさん2019/04/22(月) 14:54:26.97ID:3J9RCiSz
>>521
詳しく頼む

523デフォルトの名無しさん2019/04/22(月) 16:23:17.22ID:QiOq/xsC
>>522
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, built on April 10, 2019
JRE: 1.8.0_152-release-1343-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.3

これでどう?

524デフォルトの名無しさん2019/04/22(月) 16:29:37.09ID:QiOq/xsC
俺、AndroidStudio3.4をinstallしてからGradle sync failed問題を解決しようとして、Oracle JDK8u212ってのをinstallしちまった。

AndroidStudio3.4にはOpenJDKってのが入ってるのか?
Oracle JDK8u212ってのはuninstallしても良いのか?

ちなみに、Command Lineでjava -vすると
>java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

525デフォルトの名無しさん2019/04/22(月) 16:34:09.84ID:952sQ1RS
>>524
Android Studioには専用にカスタマイズされたOpenJDKが組み込まれててそれを使って動いているから、システムに別のJDKを入れようが入れまいが関係ない

526デフォルトの名無しさん2019/04/22(月) 16:35:59.31ID:QiOq/xsC
ちなみにgradleってファイル名のbash scriptがAndroidStudio3.4には入っていて、
1. $JAVA_HOME
2. which java

上記からjavaコマンドの場所を検索してgradle-launcher-5.1.1.jarを動かしてるみたいなんだけど。

527デフォルトの名無しさん2019/04/22(月) 16:37:13.18ID:952sQ1RS
で、何がわからなくて何が聞きたいの?

528デフォルトの名無しさん2019/04/22(月) 16:40:22.54ID:QiOq/xsC
>>525
なるほど!
ってことは、Oracle版JDKはuninstallしてもOK?

以下のフォルダをごそっと削除してしまいたいんだけど。

> /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home

529デフォルトの名無しさん2019/04/22(月) 16:49:59.02ID:952sQ1RS
>>528
Android Studioを動かすだけなら消しちゃって大丈夫。
そのパソコンで他にjavaに依存している何かを動かしてるなら消しちゃダメ。

530デフォルトの名無しさん2019/04/22(月) 18:10:15.79ID:QiOq/xsC
>>529
thx
javaに依存してる何かは、無いです。

kotlinc(Kotlin Compiler)コマンドを使いたいので
>brew install kotlin
ってコマンドを打とうとしてます。
kotlinがJREを必要とするなら、JREも同時にbrewがinstallするでしょう。
だったら、消さずに残すのが良いでしょうか?

531デフォルトの名無しさん2019/04/22(月) 19:06:49.70ID:R7Rys8j6
幼稚園児が増える季節か

532デフォルトの名無しさん2019/04/22(月) 19:49:54.02ID:BvK+7rjz
この前も別の初心者がkotlincで詰まってたんだけど、どこかの有名な入門サイトがコマンドライン推奨でもしてるの?
正直kotlin書くならIDE前提だろうからコマンドラインでコンパイラの使い方を覚える必要なんて全くないと思うんだが。

533デフォルトの名無しさん2019/04/22(月) 20:19:08.99ID:SyBBal55
>>532
同じ人なのでは
n=1

534デフォルトの名無しさん2019/04/22(月) 20:20:41.47ID:47gIWCEb
dagger

535デフォルトの名無しさん2019/04/22(月) 20:31:59.51ID:QiOq/xsC
>>532
うっそーん。
コマンドラインでチョコっと、コードを試したいってこと無い?
IDEよりVimが好きな俺だけか?

ようやく、Quickrun.vimが動くようになって、今コレ読んでるところ。

はじめてのKotlin。Javaと比較してみた
https://qiita.com/hituziando/items/fa2dc4097b24ab78276e

30分で覚えるKotlin文法
https://qiita.com/k5n/items/cc0377b75d8537ef8a85

536デフォルトの名無しさん2019/04/22(月) 20:41:55.57ID:47gIWCEb
それならブラウザ上で実行できるplayground的なものが公式にあったはず

537デフォルトの名無しさん2019/04/22(月) 20:49:23.39ID:952sQ1RS
ちょっと書いてちょっと動かすにしてもIntelliJでRunした方がいいしな、デバッガが超優秀だし
Vimで書いてコマンドラインで実行ってのは確かに昔Javaを勉強した頃はやったけど、
今となっては出汁をとるのに鰹節を削るところから始めるような古めかしさを感じる

538デフォルトの名無しさん2019/04/22(月) 20:51:00.58ID:952sQ1RS
まあ好みだからそれがやりたいなら良いとは思うよ
仕事で新人がそんなことで詰まってたらやんわり注意するかもしれんけど

539デフォルトの名無しさん2019/04/22(月) 20:51:15.45ID:MftVaIwk
そういうときはREPL使ってる

540デフォルトの名無しさん2019/04/22(月) 21:14:37.90ID:j5GMJ/X8
単一ファイルを少し変更したいときはエディタ。
それ以外はIDEを使う

541デフォルトの名無しさん2019/04/22(月) 21:42:39.28ID:QiOq/xsC
>>537
三大Java IDEは気にはなってるけど、今の所リソース食いそうで躊躇してます。

今の所、Referenceの検索容易性から俺にはVimかなぁ。
デバッグ環境はpoorかな。print文を埋め込むしか、今の所は手が無しかな。

デバッグが必要ならAndroidStudio起動して、なおかつKotlin Scriptに変換して動かす事にします。

ScriptじゃないKotlinコードをAndroidStudioで動かす事は出来ないのかな?よく解らん。

Xcodeならplayground作れるんだが。

542デフォルトの名無しさん2019/04/22(月) 21:53:50.10ID:BvK+7rjz
君、謎の行動力がありそうでそれはいいんだけど、
本当に何から何まで無駄なことばっかりやってるからまず最初に調べる癖をつけたほうがいい
この世界は一にも二にもまずは調べることが何より大事

543デフォルトの名無しさん2019/04/22(月) 22:12:50.79ID:5CpOs8vM
KotlinやるならIntelliJ一択
あとガワが違うだけでAndroid Studioの中身はIntelliJ
※Android以外のプロジェクト作成など、一部の機能を非表示にしている

544デフォルトの名無しさん2019/04/22(月) 22:19:17.89ID:BvK+7rjz
Kotlin勉強したいならIntelliJの無償版使うのが1番おすすめだねえ
ちなみにAndroid Studio動かすのと消費するリソースは同じ、何せほぼ同じものだし

545デフォルトの名無しさん2019/04/22(月) 22:23:01.40ID:5CpOs8vM
>>522
・JVMはJREの一部、JREはJDKの一部
・Java9以降「システムへの単一JREのインストール」は無くなっており、
 JDKから各アプリの同梱用JREを生成する (jdeps/jlink)
・OracleJDKに含まれるJVMは既に有償化されている
・OpenJDKに含まれるJVMは今後も有償化されることは無い

546デフォルトの名無しさん2019/04/22(月) 23:33:08.26ID:2FYuav9u
>>545
ありがとう
十分に理解できました

547デフォルトの名無しさん2019/04/23(火) 12:05:16.04ID:3Q52IgbA
>>535
>はじめてのKotlin。Javaと比較してみた
>https://qiita.com/hituziando/items/fa2dc4097b24ab78276e
>
>30分で覚えるKotlin文法
>https://qiita.com/k5n/items/cc0377b75d8537ef8a85

もういっちょ!
Kotlinまとめ - 文法詳解 - クラスとそのメンバ
https://qiita.com/hicka04/items/6f47f505d7b68ede3680

548デフォルトの名無しさん2019/04/23(火) 13:16:20.26ID:gv0SOq8d
>>535
ある。ちょこっとする時は例えWindowsで IntelliJ 起動中でも Linux サーバ側でREPLやるな。
なんでかというと IntelliJ のREPLのウインドウはなんか出力がすぐ出なかったりでおかしいから。
その他短すぎるプログラムのためにわざわざプロジェクト作ったり packge 作るのもアホらしい時とか。

549デフォルトの名無しさん2019/04/23(火) 14:13:43.00ID:3Q52IgbA
Android Studio残念ポイント!

1. Android Projectしか開くことができない。
2. Hello Worldするhello.ktを開くことができない。

なんで?そう言う時は、IntelliJ使えってことか?▶なんだろうなぁ。

550デフォルトの名無しさん2019/04/23(火) 14:52:10.33ID:67h9+wNp
>>548,549
JUnit使う手がある。
しかも、main毎にファイル分けるとかしなくていいし。

551デフォルトの名無しさん2019/04/23(火) 14:54:14.57ID:TrDrz5+t
>>548
IntelliJのあれはまともに動いてないんじゃないかとずっと思ってる
まともに使えてる人いるのだろうか…?

552デフォルトの名無しさん2019/04/23(火) 15:47:52.74ID:KnPjeA9Q
Intの変数名をintってするのってまずい?

val int : Int = 0

こういうの

553デフォルトの名無しさん2019/04/23(火) 15:52:03.96ID:3Q52IgbA
>>548
REPLねぇ。

Ruby, JavaScript(Node.js), SwiftのREPL環境を使ったことあるけど、Reflection機能が充実している言語(ruby)以外、イマイチだなぁ。

コードの編集も不自由だし。

あんた、本当にLinux側でREPLする事あるの?

554デフォルトの名無しさん2019/04/23(火) 15:54:20.98ID:3Q52IgbA
>>552
怖いなぁ。そのコード。
俺、さっき、setNameってメソッドを作ったら、clashしてるって怒られた。
clash = conflict って意味らしい。
java.lang.StringのsetNameメソッドとコンフリクトしてるから、コンパイルしないんだって。

555デフォルトの名無しさん2019/04/23(火) 16:06:01.49ID:KnPjeA9Q
そういうことあるのか
でもIntがintじゃないのってintを変数名で使ってもいいよっていう意思を感じるんだよなあ

val hoge : Hoge

ってすることを考えると

val int : Int

も自然な気がする

556デフォルトの名無しさん2019/04/23(火) 16:09:50.49ID:KnPjeA9Q
ああでもjavaは予約語でintだめなのか
やっぱりやめておこう

557デフォルトの名無しさん2019/04/23(火) 16:25:21.03ID:xD8uuYM0
そもそも逆コンパイルしたソースじゃないんだから
意味のある変数名付けなよ

558デフォルトの名無しさん2019/04/23(火) 16:31:00.98ID:3Q52IgbA
macOS10.14.3
AndroidStudio3.4
環境です。API Referenceを参照するには、どうすれば?
Command-Jで起動するかと思いきや?何も起こらないっす。

Webサイトへ行かないとダメなのかな?

559デフォルトの名無しさん2019/04/23(火) 17:37:07.37ID:gv0SOq8d
>>553
ちょっと試す時とかによく使うよ

560デフォルトの名無しさん2019/04/23(火) 17:41:27.91ID:3Q52IgbA
>>559
thx
そっすか。

561デフォルトの名無しさん2019/04/23(火) 18:02:43.25ID:3Q52IgbA
>>558
see the hit result of Help>Search(Documentation).
You can retrieve the documents by ctrl-J@macOS as well.

562デフォルトの名無しさん2019/04/23(火) 19:19:13.65ID:IWDMUBZh
>>555
とりあえず変な癖をつける前に『リーダブルコード』を読んでくれ、頼むから

563デフォルトの名無しさん2019/04/23(火) 19:47:01.75ID:hcUTeQ5O
リーダブルコード読みやすいしわかりやすいし為になるし
書いたやつ神

564デフォルトの名無しさん2019/04/23(火) 19:49:26.39ID:3Q52IgbA
>>562
>リーダブルコード
この本そんなに良い本なのか?

ペラペラ見たことあるけど、すでに知ってること、というか、実践していることしか書いてなかった。

565デフォルトの名無しさん2019/04/23(火) 19:52:05.70ID:Ky48Nwl1
>>564
嘘だ

566デフォルトの名無しさん2019/04/23(火) 20:08:14.43ID:gv0SOq8d
>>564
じゃあその本に書いてないことが書かれた本を出してくれ。Kindle版だけでもいいから。

567デフォルトの名無しさん2019/04/23(火) 20:16:21.90ID:IWDMUBZh
>>565
知っていることを再認識させてくれる良書ではある

568デフォルトの名無しさん2019/04/23(火) 20:18:24.37ID:IWDMUBZh
何でIDが同じになるんだよ
同じプロバイダーなのか

569デフォルトの名無しさん2019/04/23(火) 20:22:11.04ID:gv0SOq8d
たまーに同じID出ることあるな。ものすごく希だが。
きっと今日は良いことあるよ。あと3時間40分ぐらいで終わるけど。

570デフォルトの名無しさん2019/04/23(火) 20:22:12.06ID:3Q52IgbA
>>565
嘘じゃない。
ああぁ。俺は間違ってないんだな。という感じ。
まあ、詳細に読んだわけでは無いし、プログラマが知るべき97のこと、って本にも似たような事が書いてある。

Matzも「名前重要」なんて事を、97本に寄稿している。
プログラミング作法、なんかの方がよっぽど良かったな。俺には。

571デフォルトの名無しさん2019/04/23(火) 20:24:15.75ID:3Q52IgbA
>>569
って事はHash algorithmがpoorってこった。

572デフォルトの名無しさん2019/04/23(火) 20:25:36.05ID:B8eC+d1i
コードコンプリート

573デフォルトの名無しさん2019/04/23(火) 20:27:52.73ID:3Q52IgbA
>>570
>Matzも「名前重要」

私の設計上の座右の銘は「名前重要」です。あらゆる機能をデザインする時に、私はその名前にもっともこだわります。

courtesy of Matz

574デフォルトの名無しさん2019/04/23(火) 20:29:32.04ID:IWDMUBZh
プログラミング作法
プログラム書法
ソフトウェア作法

全てブライアン・カーニハン御年77歳の名著

575デフォルトの名無しさん2019/04/23(火) 20:31:32.66ID:gv0SOq8d
>>571
まあそういうことだな。
こんな掲示板でrichにしてどうするって感じはするが。

576デフォルトの名無しさん2019/04/23(火) 20:32:56.33ID:3Q52IgbA
>>566
じゃぁ、一つ俺の考え方を!

狭いスコープの中を生きる変数は、名前が短くても良い。
e.g. str1 = “OK”

広いスコープの中を生きる変数の名前は、長い名前が必要。
e.g. numberOfBooks = 100

何時いかなる時も、意味ある変数名をつけるのは、俺は反対だ。
変数名を考える事に、時間が惜しい時もある。

577デフォルトの名無しさん2019/04/23(火) 20:33:50.86ID:PyZ6tY2R
拡張プロパティに値セットする方法ある?

578デフォルトの名無しさん2019/04/23(火) 20:36:26.55ID:gv0SOq8d
やはりプログラミングも茶道とか華道とかと同様にプログラミング道を作ってわびさびが必要な時代が来たのかも知れないな。

579デフォルトの名無しさん2019/04/23(火) 20:36:27.27ID:IWDMUBZh
>>576
そ、ループ変数なんて i, j, k, ....nで良いやん

580デフォルトの名無しさん2019/04/23(火) 20:38:43.46ID:PyZ6tY2R
でもkotlinでforとか使わなくね?

581デフォルトの名無しさん2019/04/23(火) 20:42:02.64ID:gv0SOq8d
>>576
変数名を日本語にすれば良い。
ソース丸ごと世界に公開する予定がないならその方が分かりやすくて良い。
日本語知らないやつには難読化して軽くプロテクトが掛かった状態にもなる。

582デフォルトの名無しさん2019/04/23(火) 20:54:10.92ID:3Q52IgbA
>>581
昔、英語が出来なかった時には、
kabuPrice
とか
kabuka
なんて恥ずかしい名前使ってたけど、
今では、
sharePrice
でないと、code reading時にストレス感じるわぁ。

583デフォルトの名無しさん2019/04/23(火) 20:57:09.18ID:gv0SOq8d
漢字使え漢字

584デフォルトの名無しさん2019/04/23(火) 21:02:15.89ID:3Q52IgbA
val 感じ = "感じ"
print(感じ)
なんと、warningは出るが、実行可能。

585デフォルトの名無しさん2019/04/23(火) 21:05:59.98ID:3Q52IgbA
Qiita見ながらKotlin修行中だけど、
Jump Command便利そう。
return@forEach
continue@loop
return@loop
とか言うやつ。

これSwiftに欲しい。

586デフォルトの名無しさん2019/04/23(火) 21:15:06.63ID:3Q52IgbA
そんなことより、API referenceってかDocumentをofflineで見る手段、どうしてる?
Zeal, Velocity, Dashなんかを使ってるの?
Android StudioでAppCompatActivetyを引くと

android.support.v7.app.AppCompatActivity public AppCompatActivity()

Gradle: com.android.support:appcompat-v7:28.0.0@aar

たったコレだけしか表示されないっす。

587デフォルトの名無しさん2019/04/23(火) 21:32:38.61ID:bGCgvaJg
>>517
俺も謝っておく
触ったすまん

588デフォルトの名無しさん2019/04/23(火) 21:53:05.69ID:strBUBex
>>585
便利な反面1歩間違えると悲惨なコードになりそうだな

589デフォルトの名無しさん2019/04/23(火) 22:46:19.69ID:B8eC+d1i
尻でも触ったのか

590デフォルトの名無しさん2019/04/23(火) 23:21:01.87ID:IWDMUBZh

591デフォルトの名無しさん2019/04/23(火) 23:23:43.15ID:IWDMUBZh
ごめん間違えた、SwiftにあるからKotlinに欲しいって読み違えた
Xamarinのライセンス買ってくる

592デフォルトの名無しさん2019/04/24(水) 05:30:04.16ID:BhgQi2cO
悲惨なコードとは?

593デフォルトの名無しさん2019/04/24(水) 05:38:27.15ID:MHxaAVIF
goto文みたいに次にどこに行くのか読みにくいって意味じゃないかな
そんなことはないけどね

594デフォルトの名無しさん2019/04/24(水) 05:51:11.02ID:kB2a7+Os
変数名漢字って結構有りだと思う
平均からすれば英語かなり必死に勉強したほうだと思うけど、ネイティブからすれば変な英語使ってるって自覚あるし
ネイティブ的な感覚がないから、命名には常に苦労する
もちろん特定用途でしか使えない手法だけど、やっぱり母国語ってわかりやすいよね
英語圏のやつらにスーパハカーが多いのはそういう理由もあるよな、母国語でプログラムできるのうらやましいわ

595デフォルトの名無しさん2019/04/24(水) 07:33:38.62ID:ZqBzQREh
>>594
英語人口20億、英語母語5億
くらいじゃない?

チェコ、ロシア、ルクセンブルグにHacker多い印象が俺にはある。

596デフォルトの名無しさん2019/04/24(水) 11:18:15.23ID:ZqBzQREh
Constructorの書き方がムズイ。
primery, secondary constructorとか、Swiftには無いし。

Kotlinスタートブック、はしばらく様子見。今の所買わない方向で…
だって、2016年の本って、情報が古そうだし。

597デフォルトの名無しさん2019/04/24(水) 12:11:30.51ID:f6AiwYyw
そのうち在日ユダヤが「日本人にベーグル盗まれた」なんて狂言やりそう

598デフォルトの名無しさん2019/04/24(水) 12:20:40.85ID:ymPUK1bE
>>594
日本語固有のややこしい漢字の名称を無理やり英語にするよりはそのまま使った方が可読性もはるかにいいわな
何か不都合が起きたらIDEでリネームすりゃいいだけの話だから、全然ありだと思う
俺はテストケース名は日本語がんがん使う

599デフォルトの名無しさん2019/04/24(水) 12:48:24.16ID:CTi91KC0
>>596
Swiftの designated initializer ≒ Kotlinの primary constructor
Swiftの convenience initializer ≒ Kotlinの secondary constructor

600デフォルトの名無しさん2019/04/24(水) 13:08:03.94ID:CTi91KC0
>>599の具体例

Swift
https://ideone.com/48Boj1

Kotlin 比較用
https://ideone.com/ovwjrs

Kotlin 短縮
https://ideone.com/IcR8Wo

601デフォルトの名無しさん2019/04/24(水) 13:28:15.20ID:CQvKnKTI
>>577だけどこれ無理っぽいな

602デフォルトの名無しさん2019/04/24(水) 14:01:42.54ID:CTi91KC0
>>577
勧めるものじゃないけど、一応疑似的にならば
https://ideone.com/7lTdsi

class A {}

private val xname = WeakHashMap<Any,String?>()
var A.name: String?
get() = xname[this]
set(v:String?) { xname[this] = v }

603デフォルトの名無しさん2019/04/24(水) 14:14:45.53ID:ZqBzQREh
>>599
thx

604デフォルトの名無しさん2019/04/24(水) 14:19:09.62ID:ZqBzQREh
>>602
Kotlin day3の俺には、なぜAのインスタンスがnameプロパティを持つのか?
良く解らん。
Rubyみたいに、Aを再オープンしてるのか?

605デフォルトの名無しさん2019/04/24(水) 14:22:08.49ID:ZqBzQREh
>>604
fun mainの外でthisは何を指してるのだ?

606デフォルトの名無しさん2019/04/24(水) 14:28:29.52ID:ZqBzQREh
>>605
>fun mainの外でthis
ってのはMainKtのインスタンスってことか?
うぅーん。後で確認。

fun main(args: Array<String>) {}

in a file called Main.kt will compile to something like:

public class MainKt {
public static void main(String[] args) {}
}

607デフォルトの名無しさん2019/04/24(水) 14:55:22.29ID:CTi91KC0
>>604
602は拡張プロパティとシングルトンのWeakHashMapを利用している
詳細はgoogleで

拡張プロパティ:
見た目はプロパティだが実際のところ
staticメソッドのシンタックスシュガー

fun A_name_get(thisObj: A): String? {
  return xname.get(thisObj)
}

println( a.name )
 ↓
println( A_name_get(a) )


WeakHashMap:
キーがGC対象となるのを阻害しないMap
aとnameの関連付けはここに入っている
aがへの参照が無くなったら、nameへの関連付けもCG対象になって消える

608デフォルトの名無しさん2019/04/24(水) 15:34:34.20ID:ZqBzQREh
>>607
>拡張プロパティ

気になる!

Rubyの特異メソッドみたいなもんか?
特異メソッド:クラスに住んでるメソッドとは異なり、オブジェクトに住んでるソレ!

609デフォルトの名無しさん2019/04/24(水) 15:49:00.84ID:ZqBzQREh
>>608
特異メソッドとは違うみたい。

Rubyのクラスの再オープン、オープンクラス、monkey patching
とか言う邪悪なテクみたい。

Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。

610デフォルトの名無しさん2019/04/24(水) 15:52:13.17ID:ZqBzQREh
うぅーん。
top level でthisが何を指しているのか?
よく解らん。

611デフォルトの名無しさん2019/04/24(水) 15:52:31.03ID:CTi91KC0
連投せずググりなさい

612デフォルトの名無しさん2019/04/24(水) 15:56:37.35ID:ZqBzQREh
>>610
きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。

と言う事にしておこう。

拡張関数、拡張プロパティー、が必要になった時のメモ

Kotlinの拡張関数と拡張プロパティについて
https://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61

613デフォルトの名無しさん2019/04/24(水) 17:00:48.57ID:HA70GdMc
>ID:ZqBzQREh
日記は自分のブログでやってくれ

614デフォルトの名無しさん2019/04/24(水) 17:06:36.37ID:ymPUK1bE
散々言われてるみたいだけどまずとりあえずググる習慣をつけなさい
君はしなくていい回り道が多すぎる

615デフォルトの名無しさん2019/04/24(水) 20:05:15.35ID:CQvKnKTI
>>602
なるほど外のmapに入れられたのか、盲点だった
それとweakhashmapなんてあったのか初めて見たわ

616デフォルトの名無しさん2019/04/24(水) 20:26:09.12ID:ZqBzQREh
>>547
30分で…の記事、2日かけてようやくinfix記法のところまで読めた。
多分費やした時間は6hr以上。

全然30分じゃない。

617デフォルトの名無しさん2019/04/24(水) 20:28:11.81ID:Hf91oH+Q
>>614
君も謝る羽目になるよ

618デフォルトの名無しさん2019/04/24(水) 20:45:23.71ID:ZqBzQREh
なんと、キーワードになっている識別子もエスケープ可能!

例:isと言う名前のメソッドも呼び出せる。
foo.`is`(bar)

こんな感じ!

619デフォルトの名無しさん2019/04/24(水) 20:49:33.98ID:ZqBzQREh
Qiitaの30分で…の記事、走り読みした。約8hr位要した。
Vim内でチョコチョコ試運転しながら、走り読み。

お疲れ様でした。▶俺

620デフォルトの名無しさん2019/04/24(水) 20:52:35.15ID:ZqBzQREh
レシーバー付き関数リテラル、がよく解らんかった。

クラス移譲、プロパティー移譲
byとか使う奴。こんなのSwiftには無かったなぁ。

621デフォルトの名無しさん2019/04/24(水) 21:03:15.80ID:kFXKi6KY
>>596
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

太郎本を買っていない香具師は、モグリ!

622デフォルトの名無しさん2019/04/24(水) 21:13:18.43ID:kFXKi6KY
Kotlin は、swift とは似ていない

Kotlin は、Groovy を静的にしたもの。
つまり、Ruby, JavaScript の系統

オブジェクト指向・関数型のミックス

623デフォルトの名無しさん2019/04/24(水) 22:03:35.37ID:JvprRVGM
Swift程の糞はない

624デフォルトの名無しさん2019/04/25(木) 06:51:51.77ID:BgXoud3L
>>621
赤ベコ本の事ね。

625デフォルトの名無しさん2019/04/25(木) 09:50:10.40ID:P7ID4Nfd
リーダブルコード要約
https://gist.github.com/AKB428/b8970cea987577ec93c2

初心に戻る良著
最近省略して書いてたから反省してる

626デフォルトの名無しさん2019/04/25(木) 11:34:43.93ID:ap5qFTOn
> 読みやすい
> if (length > 10 )
>
> 読みにくい
> if (10 < length)

その主観は慣れによる、俺にとっては前者の方が読みにくい

うちでは「物差しの向きに一貫性を持たせる」という指針でやっている
その上で統一のため原則として「小さい方を左に書く」
よって >, >= を使わない

if (10 <= length && length < 100)


まぁRangeやRectでメソッドでの判定をすることも多く
そういう場合は左がどうこうというのは無いが

627デフォルトの名無しさん2019/04/25(木) 11:52:49.98ID:8pGnANx9
>>626
>if (10 <= length && length < 100)

if (length >= 10 && length < 100)
たまに、こう書くヤツが居るが殺意を覚える

一般的には可変値が左だと思う

628デフォルトの名無しさん2019/04/25(木) 12:18:15.49ID:NAVagSqc
俺も可変値が左だと思うけど、統一された指針が既にあるならそれを貫いたほうがいい
一貫性はとても大事

629デフォルトの名無しさん2019/04/25(木) 12:32:09.35ID:wpotMNKo
小さい方を左に書く。
頭の中では、大小は、左右で考えているから

横書きと同じ感覚。
左上がスタート地点

洋画ではそう。左上に赤色を配置する。
そこが目線のスタート地点。
そこから時計回りに目線が、渦の中心へと向かっていく

630デフォルトの名無しさん2019/04/25(木) 12:41:16.64ID:NQvr5Lbg
>>626
普通、言葉で考えると「lengthは10以上100未満?」て聞くじゃん。
「10は〜100は〜?」みたいな聞き方しないよね。
主語と動詞を逆にしちゃいけないと思う。

CやC++の頃は
if (length == 10) としたかったところをコーディングミスで
if (length = 10) にしてバグるのを防ぐ為に逆向きにしてた人を見受けたけど、いまどきはIDEがエラー出してくれるからねえ。

631デフォルトの名無しさん2019/04/25(木) 12:49:03.99ID:M77Bu+mz
IDEなくてもコンパイル時になんか出る。

632デフォルトの名無しさん2019/04/25(木) 12:54:48.89ID:P7ID4Nfd
>630
なるほど、確かにバグ防止で逆向きにも一理ある
面白いこと考えるね

633デフォルトの名無しさん2019/04/25(木) 13:03:38.24ID:myBoG5tn
>>632
ヨーダ記法って言うやつ

634デフォルトの名無しさん2019/04/25(木) 13:14:11.32ID:wpotMNKo
C言語では、左に代入できないものを書いていた

比較演算子と間違えて、代入演算子を使うと、コンパイルエラー

635デフォルトの名無しさん2019/04/25(木) 13:15:44.93ID:D7t01tqT
ヨーダ記法が可読性低いってのは散々言われてる
結局流行ってないしやらなくていい

636デフォルトの名無しさん2019/04/25(木) 13:44:40.50ID:nzEkPIBs
老害ってことや

637デフォルトの名無しさん2019/04/25(木) 14:11:29.90ID:MiLFxbr9
老害にだけは成りたく無いと思ってました

638デフォルトの名無しさん2019/04/25(木) 14:21:07.30ID:ap5qFTOn
>>630
> 言葉で考えると「lengthは10以上100未満?」て聞くじゃん

なるほど、改めて思い起こすと言葉以上に図や式で考えているな
そういう資料を読み書きすることが多いからかもしれないが

 10 length     100
--|----^----------|--

10 ≦ length < 100

他所のだけどイメージ
Kotlin 5 	YouTube動画>2本 ->画像>7枚

639デフォルトの名無しさん2019/04/25(木) 21:25:32.13ID:BgXoud3L
kotlin day4

kotlinc, kotlinコマンドの-classpathオプションの使い方でハマった。

>kotlin -cp jsoup-1.11.3.jar JsoupKt
error: could not find or load main class JsoupKt

こちらが正解
kotlin -cp .:jsoup-1.11.3.jar JsoupKt

なんか、変な仕様。そろそろbuild.gradleファイルの作り方を学ぶべきか?

640デフォルトの名無しさん2019/04/25(木) 21:29:50.40ID:BgXoud3L
あのぉー、Kotlinでスクレイピングしたいんですけど、
Jsoupがbest practice?
https://github.com/jhy/jsoup

実は、Javaも初心者なので、Kotlinへのmigrationでヘトヘト!

641デフォルトの名無しさん2019/04/25(木) 22:45:02.30ID:k8swiVaB
>>640
どんなサイトをスクレイピングしたいのかによるけど、javascriptをガンガン使ってるようなサイトならSeleniumが鉄板だと思うよ。
Jsoupでもjsを実行させられるらいしけど、とても辛いと聞いたことがある。基本的には静的なhtmlを扱うためのライブラリ。

642デフォルトの名無しさん2019/04/26(金) 09:47:20.98ID:MEdB7GvY
>>641
thx

Kotlin day5
コマンドラインで、jsoupでスクレーピングするソースを作成できた。
昔を思い出して、実行にはMakefile作成して行った。

Makefile内で文字列操作(大文字小文字変換とか、文字列連結)とかできるかな?

Makefileはこんな感じ!
CC := kotlin
CFLAGS1 := -cp jsoup-1.11.3.jar -include-runtime
CFLAGS2 := -cp .:jsoup-1.11.3.jar
SRC := jsoup

all: go
go:
$(CC)c $(SRC).kt $(CFLAGS1)
$(CC) $(CFLAGS2) JsoupKt
~

643デフォルトの名無しさん2019/04/26(金) 09:49:24.06ID:an8vMEsm
>>642
makeが何かをわかっていたらそんな質問はしない

644デフォルトの名無しさん2019/04/26(金) 10:03:32.40ID:3DaeQ571
>>641
Seleniumってテストツールだと思ってたが、そんな使い方があるのか。
目からうろこが1000枚くらい落ちた。

645デフォルトの名無しさん2019/04/26(金) 10:43:09.29ID:v018QqLA
>>644
Selenium自体はテストとは無関係だよ、ただ用途としてテストツールと組み合わされることが多いだけ。
最近のサイトはReactとかで動的にガンガン組み立てられるからスクレイピングもSelenium使っておいた方が無難。

646デフォルトの名無しさん2019/04/26(金) 13:23:49.21ID:A/WNBxWE
Ruby, Nokogiri, Selenium WebDriver を使えば?

CSS Selector, XPath で、要素を指定する

driver.execute_script で、JavaScript のソースコードも実行できる

647デフォルトの名無しさん2019/04/26(金) 14:28:56.17ID:5b9msznW
Kotlin勉強してるって言ってるんだから別にRubyじゃなくていいだろ

648デフォルトの名無しさん2019/04/26(金) 14:34:22.95ID:an8vMEsm
NokogiriでXPathとCSSセレクタ使うならべつにこっちでも同じだと思うよ

649デフォルトの名無しさん2019/04/26(金) 17:19:57.29ID:MEdB7GvY
JsoupはNokogiriと違ってXPathを使ってDOMの操作ができない。
けど、使い方はNokogiriとよく似てる。

Androidアプリにスクレイピング機能を実装したいので、Ruby使えば?は却下!

650デフォルトの名無しさん2019/04/26(金) 17:21:05.67ID:MEdB7GvY
ところでJsoupの名前の由来って何?
Java soup = Javaのスープ
変な名前。

651デフォルトの名無しさん2019/04/26(金) 17:57:42.91ID:TC/HkfSU
いちいち聞かずに勉強しろと延々言われているのに守らないからそういうちぐはぐな恥を晒して支持を減らすことになる(君はすでに識別されている)
どうせPythonのBeautifulSoupのことも知らないしタグスープという言葉も知らんのだろう
…あ、後者は別に知らんでいいわ、知らない人が多いし正式な用語というわけでもないから

652デフォルトの名無しさん2019/04/26(金) 18:12:21.37ID:tgodpZ2Y
ごった煮

653デフォルトの名無しさん2019/04/26(金) 20:00:10.59ID:ErNxnYz2
>>651
まあまあまぁまァ、落ち着けよ
このスレのレベルはピンキリさ

654デフォルトの名無しさん2019/04/26(金) 20:32:30.11ID:MEdB7GvY
>>651

thx.

That is originated in “soup HTML document up beautifully”, it seems.

655デフォルトの名無しさん2019/04/26(金) 21:06:34.41ID:XuSZUgKR
個人の試行錯誤の実況でスレが消費されてくより過疎ってた方がマシ

656デフォルトの名無しさん2019/04/27(土) 09:33:03.49ID:2kV59Ab3
スレの消費はどうでもいいんだけど、試行錯誤の記録はqiitaなりブログなり自分で管理できるところに残しておいた方が後々良いと思うんだよね

657デフォルトの名無しさん2019/04/27(土) 09:47:43.31ID:X+HWf3Sy
>>516
fragmentは再利用されるからlateinit var

658デフォルトの名無しさん2019/05/08(水) 08:51:45.05ID:7421dKds
Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019
https://www.publickey1.jp/blog/19/googleandroidkotlingoogle_io_2019.html

659デフォルトの名無しさん2019/05/08(水) 09:08:00.50ID:1o0ZoV2Z
>>658
わかったからFlutterで(を?)使えるようにしてくれ
現時点で構造的に対応超絶困難だ
マテリアルデザインの普及にも役立つだろ

660デフォルトの名無しさん2019/05/08(水) 19:13:02.95ID:PdqlbBMH
kotlin day17、object式
クラスAをインターフェースBによって僅かに修正したクラスCのインスタンスが必要となった時に、サブクラスCを宣言せずにそのインスタンスabを生成できる。
```kt
open class A(x: Int) {
public open val y: Int = x
}

interface B {...}

val ab: A = object : A(1), B {
override val y = 15
}
```

661デフォルトの名無しさん2019/05/08(水) 21:35:17.96ID:1/kiWGBR
前スレでも書いたがKotlin/JSに続く、Kotlin/Dartトランスパイラをだな・・
まぁやれるとしたらJB側だからリソース的に無理なんだけどな

662デフォルトの名無しさん2019/05/09(木) 00:39:13.38ID:62rwCBNY
>>661
Flutterが目当てなら、必ずしもDartを介することはないのでは?

663デフォルトの名無しさん2019/05/09(木) 07:27:30.06ID:bwcjejUH
どういう意味?

664デフォルトの名無しさん2019/05/09(木) 07:28:01.24ID:bwcjejUH
ああ、ごめん分かったよく読んでなかった

665デフォルトの名無しさん2019/05/09(木) 07:49:34.83ID:p+Gqts9i
>>662
少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない
Kernel binaryの仕様はDart自体より安定してない

https://flutter.dev/docs/development/tools/hot-reload
https://mrale.ph/dartvm/

Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を
Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ

666デフォルトの名無しさん2019/05/09(木) 09:45:14.22ID:Gvcl+e3N
flutterも最初素晴らしいと触ってたけど、dartの糞さに嫌気さしてさわるのやめたな。つか、flutterは致命的な問題もあるしな

667デフォルトの名無しさん2019/05/09(木) 13:10:55.61ID:fgBYrKh8
kotlinのgraphqlライブラリ微妙だからscalaのsangria使えないかなー
sangriaどころかscala触ったことないけど

668デフォルトの名無しさん2019/05/09(木) 15:52:18.57ID:drrQ8Z5A
>>666
どんな問題?

669デフォルトの名無しさん2019/05/09(木) 20:53:25.89ID:Gvcl+e3N
モバイルアプリはメモリ不足によってプロセスキルされ、キル前の状態に戻すために復元の仕組みが用意されてるがflutterではどうすればいいの?問題。
例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば?
flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は?
https://github.com/flutter/flutter/issues/6827

670デフォルトの名無しさん2019/05/09(木) 20:58:48.44ID:Gvcl+e3N
モバイルアプリ開発したことあれば必ずプロセスキルの問題に出くわすと思うんだがflutterの開発チームはこれ放置してるという。普通flutterの設計段階でこの事考慮すべきだが全く考慮してなさそうというあほっぷり。

671デフォルトの名無しさん2019/05/09(木) 23:07:11.65ID:p+GF1Adw
地方都市だけど最近Android本が本屋に数冊しかない
他言語は田舎のわりにはけっこう置いてるんだけど
Kotlin移行の影響なのかも

672デフォルトの名無しさん2019/05/10(金) 00:21:35.88ID:JD2pFQw6
>>670
flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな
後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと
考えてるとしたらヤバイ
そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・

673デフォルトの名無しさん2019/05/10(金) 03:07:44.06ID:+vHN15fT
>>671
Amazon使いなさい。

674デフォルトの名無しさん2019/05/10(金) 10:49:17.54ID:pdzLc3IS
Kotlin/Everywhere
https://blog.jetbrains.com/kotlin/2019/05/kotlin-is-everywhere-join-the-global-event-series/

・イベントは主に5月のGoogle I/Oと12月上旬のKotlinConfの間に行われる
・イベント予定は以下の地図に表示される(今後追加されていく)
https://events.withgoogle.com/kotlin-everywhere/

675デフォルトの名無しさん2019/05/10(金) 16:19:08.62ID:54LLglmL
>>671
同志
Android関連本、俺のところも本屋には少ない。
大阪に隣接の県の県庁所在地なんだけど。

大阪のデカイ本屋へは往復2,000円掛かっちまう。

676デフォルトの名無しさん2019/05/10(金) 19:41:51.78ID:iG629wI3
>>675
奈良市かな?

677デフォルトの名無しさん2019/05/10(金) 21:37:10.49ID:shkkgOQu
>>675
Kindleおすすめ
マルチディスプレイで勉強捗る

678デフォルトの名無しさん2019/05/10(金) 21:56:19.96ID:54LLglmL
>>677
Kindleも試したけど、俺、紙の本派なんだよねぇ。
書き込みできるのが紙の本がありがたい。

KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。
俺って、変かなぁ。

679デフォルトの名無しさん2019/05/10(金) 22:08:26.51ID:3MWdvG+0
紙の解像度にはまだまだ電子書籍は敵わない
紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ
印刷したデータは死んだデータだってのは、まあ、その通りなんだけども

680デフォルトの名無しさん2019/05/10(金) 23:11:37.34ID:msYu7Wbl
ktorでhttpsやろうとしてサンプル試してみたけどなんかダメだな

681デフォルトの名無しさん2019/05/11(土) 01:07:57.25ID:i9FGZXUp
>>673

Amazonも楽天も使ってるよ
ただ本屋に置いてない状況を見ると
Android開発の人気無くなってきてるのかなと思って
本屋は内容確認できる長所あるし
もう少し置いてほしいところ

682デフォルトの名無しさん2019/05/11(土) 06:20:49.01ID:J+BhWrkd
>>680
オレオレ認証局だけど出来たよ。Let'sEncryptのところでなければ答えられるかも。

>>681
Android開発者が紙の本からKindleに移住している可能性も。
といいつつ自分はPC本は紙派。読んだ後確認する時にこのあたりかなとパラパラとめくりながら探せるので。

683デフォルトの名無しさん2019/05/11(土) 07:17:10.19ID:g6fo75+g
[改訂新版]Android SDKポケットリファレンス
これのKindle版って、サンプルコード見やすいですか?

[改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。

Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。

684デフォルトの名無しさん2019/05/11(土) 07:18:23.32ID:g6fo75+g
ちなみに、お試し版をPaperwhiteで見てみたけど、お試し版は最初の数ページ、しかもサンプルコードが無いページしか、試し読みできませんでした。

685デフォルトの名無しさん2019/05/11(土) 07:25:20.42ID:BxWOidMY
kindleはコピペできないからPDF版のあるやつは、そっちを買うようにしてる。

686デフォルトの名無しさん2019/05/13(月) 07:33:21.30ID:x9oQSWJz
その本つてKotlin対応してなかった気がするけど
Javaでも良いの?

687デフォルトの名無しさん2019/05/13(月) 09:37:44.97ID:Brt5xi0Z
ここが過疎ってるような気がしてslack見てみたけどそっちも過疎ってるのかな。
slackの使い方間違えてるのかな。。

688デフォルトの名無しさん2019/05/13(月) 10:33:56.13ID:4rccaZT+
>>686
JaveでもOKっす。

689デフォルトの名無しさん2019/05/14(火) 02:33:08.66ID:3xJ0OqNt
forEach は Iterable<T> と Iterator<T> にあるのに forEachIndexed は Iterable<T> にあっても Iterator<T> にないのは何故か?

690デフォルトの名無しさん2019/05/14(火) 07:44:27.90ID:DWuOpB8T
昔ケンカしたから

691デフォルトの名無しさん2019/05/14(火) 07:49:34.32ID:rV66FunX
Iteratorは拡張関数が4つしかなくインターフェース変換を除くと実質2つ
なのでむしろforEachとwithIndexだけが特別扱いのようなもの

692デフォルトの名無しさん2019/05/14(火) 10:12:17.90ID:jvXWFm+P
うんことりん

693デフォルトの名無しさん2019/05/14(火) 12:25:52.36ID:zeev4Evh
Ruby では、クラスに、each メソッドが定義されていれば、
include Enumerable で、map, each_line などの便利な機能を使える(Mix-in)

Enumerableのラッパーが、Enumerator で、
eachを定義していないクラス、例えば、String クラスに、Enumerable の機能を追加する

Enumerableは内部イテレータで、Enumeratorは外部イテレータ。
外部イテレータは、繰り返しの進行を制御できる

enum = "a\nb".to_enum( :each_line ) # Enumerator
enum.with_index do | line, idx | # 1行ずつ処理する
p [ idx, line ]
end

出力
[0, "a\n"]
[1, "b"]

with_index は、Enumeratorクラスのメソッドで、
map に、インデックスを渡すことも出来る

p enum.with_index.map { | line, idx | "#{ idx } : #{ line.swapcase }" }
#=> ["0 : A\n", "1 : B"]

694デフォルトの名無しさん2019/05/14(火) 12:36:39.21ID:eEvxk7yL
>>691
あー。そうか。

まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。

あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。

695デフォルトの名無しさん2019/05/14(火) 12:45:32.34ID:BT1Jap6O
>>689
イテレーターは列挙するものだからインデックスと直結しないのでは
n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど
そいつを3から始めるイテレーターや逆順のイテレーター
3歩進んで2歩下がるイテレーターのインデックスというのは
ルールを決めてしまえばいいんだけど本質的な属性ではないと思う

696デフォルトの名無しさん2019/05/14(火) 13:05:37.50ID:4HZJg8yK
拡張関数ってグローバルだよな
どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう

697デフォルトの名無しさん2019/05/14(火) 16:08:52.35ID:o/ZzSQAi
拡張関数めっちゃ便利だけど、用法用量を守らないととても危険だよな

698デフォルトの名無しさん2019/05/14(火) 17:29:04.99ID:IaXs534s
拡張関数の定義を interface の中にすれば、使用可能範囲をコントロールできる

699デフォルトの名無しさん2019/05/14(火) 18:31:50.97ID:hlTwFz7+
Kotlin用ゲームエンジンらしい

https://korge.soywiz.com

700デフォルトの名無しさん2019/05/14(火) 19:29:46.17ID:o/ZzSQAi
>>698
知らなかった

701デフォルトの名無しさん2019/05/15(水) 12:44:33.69ID:laKGlnoI
どのみち、IDEがないと読み難い言語だから、Extensionはさして気にならない。
プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。

702デフォルトの名無しさん2019/05/16(木) 18:46:37.64ID:ctMRzncm
ts2ktって放置されているっぽいけど、今でも使いものになるの?

703デフォルトの名無しさん2019/05/16(木) 19:36:52.04ID:9YitK9mS
>>699
Android以外はちゃんと動くんかな・・・・?

704デフォルトの名無しさん2019/05/17(金) 22:06:49.39ID:5qYZVYSF
>>698
拡張した本人しか認識できないのもができるからな。

705デフォルトの名無しさん2019/05/18(土) 09:09:23.16ID:cPFyVnxJ
>>699
興味あるわこれ
今やってるの終わったら使ってみようと思うんだけど誰か試してみた?

706デフォルトの名無しさん2019/05/18(土) 12:51:09.41ID:JYN3Apin
社内の持ち回りの勉強会で、vimでKotlin開発する環境を気合いで整える、という発表をしたら大受けしたわ
もちろんネタとしてな。絶対idea使った方がいいぞ。

707デフォルトの名無しさん2019/05/18(土) 13:41:12.48ID:1MmHbsk/
無駄なことに時間使ってんな

708デフォルトの名無しさん2019/05/18(土) 16:19:18.33ID:IkSg3I69
やらないと後で「おまえやるって言ったよな」と責められるw

709デフォルトの名無しさん2019/05/18(土) 22:59:21.42ID:rrFT3N/c
kotlinでandroid開発の記事載ってる雑誌ないですか
ネットや書籍から情報得るしかない?

710デフォルトの名無しさん2019/05/19(日) 01:39:23.54ID:jp3Kdatt
本とかもう時代遅れ

711デフォルトの名無しさん2019/05/19(日) 05:37:35.31ID:+tXYNnhs
なぜ雑誌?本ならあるのだが。

712デフォルトの名無しさん2019/05/19(日) 16:40:35.01ID:+tXYNnhs
そもそも今ではプログラミングについての雑誌が少ないよね。
Software Design か日経ソフトウェアぐらいなんじゃないか?
ハードウェア寄りな Interface みたいなのもあるが。

713デフォルトの名無しさん2019/05/19(日) 18:23:21.54ID:fqpGXrMP
>>710
そんなこたぁ無い

714デフォルトの名無しさん2019/05/19(日) 19:18:58.24ID:Ma/nTg+4
本はディスプレイ以外に開けるから便利だよね

715デフォルトの名無しさん2019/05/19(日) 19:40:59.75ID:jp3Kdatt
掌田津耶乃でも読んでろカス

716デフォルトの名無しさん2019/05/19(日) 20:36:47.66ID:fqpGXrMP
つやのちゃん知ってるんだw

717デフォルトの名無しさん2019/05/20(月) 00:21:44.28ID:pT4TPZWt
断片的なのはネットで調べればいいが、
体系的に全体をまんべんなく知りたいってときは、
やっぱり書籍が適してると思う。

718デフォルトの名無しさん2019/05/20(月) 06:11:32.77ID:BYsItzt6
書籍もガッツリ読むなら紙の本がいいし、写経するなら電子書籍の方がいいし
選択肢が増えた分だけむしろ選ぶのが大変になってるな

719デフォルトの名無しさん2019/05/20(月) 11:03:48.81ID:+QyKHsoF
SoftwareDesignは最近はもう読んでない
バックナンバーも大量に棄てた
川上さんの連載のだけ残してる

720デフォルトの名無しさん2019/05/20(月) 11:35:05.49ID:MLZoEYDf
雑誌のいいとこは判型が大きいことだなw
ただのブログよりは読者層を意識してる率が高くて、Web記事よりはまとまりと終わりがある可能性が高いという感じか
なにの情報を欲しいと思ってるのかに依存する気がするぞ

721デフォルトの名無しさん2019/05/20(月) 11:43:30.49ID:3K6cHyBG
雑誌の良いところは、本よりも情報の鮮度が高いってとこだね。

722デフォルトの名無しさん2019/05/20(月) 15:22:51.14ID:poyp5Kqc
日経ソフトウェアは、素人向け

SoftwareDesign ぐらいか。
WEB+DB は、システム環境・プログラマーが半々ぐらい

他は、日経Linux は、ラズパイが多い

フレームワークの巨匠と言えば、掌田津耶乃・山田祥寛

山田の講習会は、数万円とか。
掌田なら、十万円ぐらい行きそうw

723デフォルトの名無しさん2019/05/20(月) 16:58:22.74ID:E7kxjeRz
つやのって読む価値のない入門書しか出してないだろ

724デフォルトの名無しさん2019/05/20(月) 20:22:34.07ID:Nm/yOzhN
最近の日経ソフトウェアはPython雑誌みたいになってる
Kotlinの記事なんて全く載らない

725デフォルトの名無しさん2019/05/20(月) 20:48:41.91ID:oKvxv21R
そういやPython大ブームだね。
機械学習関係で火が着いた感じか。

726デフォルトの名無しさん2019/05/20(月) 21:27:41.17ID:QYS7YbVl
数年後に始まる小学校でのプログラミング授業もPython採用と予想。

727デフォルトの名無しさん2019/05/20(月) 21:33:58.54ID:TjPZT1E7
授業は基本マイクラを使うぞ

728デフォルトの名無しさん2019/05/20(月) 22:00:59.30ID:9o82qJOc
kotlinのおすすめ無料学習教材は?

729デフォルトの名無しさん2019/05/20(月) 22:10:44.54ID:0DZMUBSm
勧めるようなものは特にない

730デフォルトの名無しさん2019/05/21(火) 08:28:21.83ID:2xcSjans
なんか公式のチュートリアルみたいなのなかったっけ

731デフォルトの名無しさん2019/05/21(火) 08:31:57.13ID:qls//8Wz
おすすめかどうかを意識しろ
あるかどうかではなく、おすすめかどうかだ
検索すりゃこのご時世英語含めてたくさん出てくる
そんなの見りゃわかる
おすすめできるものかどうかがいちばん大事

732デフォルトの名無しさん2019/05/21(火) 10:08:36.16ID:x7pfOsc7
ただで教える側に求めすぎだろw

733デフォルトの名無しさん2019/05/21(火) 10:10:30.25ID:YlTjoOUk
>>723
NGに入れろ
スッキリ


734デフォルトの名無しさん2019/05/21(火) 10:56:17.04ID:KjOgf3b2
kotlin使った事無くて勉強中なんですが
null安全は通信で届いたオブジェクトについてどう働きますか?
あるいはデシリアライズされたオブジェクトについて
そこでもnull安全ですか?

735デフォルトの名無しさん2019/05/21(火) 11:04:08.23ID:x7pfOsc7
当然どんなオブジェクトであれKotlinで書かれている限りnull安全は機能するけど、君はそもそもnull安全を誤解してそうな予感がする

736デフォルトの名無しさん2019/05/21(火) 11:11:41.76ID:KjOgf3b2
検索すると、null不可な変数にnullを代入できないこと、とあります。
そうすると通信で受信したオブジェクト等はどうなるのかなと。
この理解は間違っていますか?

737デフォルトの名無しさん2019/05/21(火) 11:39:29.09ID:c7g0QxSl
どこまで「使ったことない」かにもよるんだが
・nullかどうかの条件分岐をクリアした変数
・nullかどうかの条件分岐をまだやってない変数
の2つがあるだけだと思っていい

外部から取得したデータがあったとして、nullチェックをまだしていないならnullableだ
どこかで誰かが(静的文法解析上)nullではないという条件分岐を通したあとならそれはnonnull
どこかで誰かがその後にnullになるかもしれない処理を通したらnullableに戻る

738デフォルトの名無しさん2019/05/21(火) 12:29:35.90ID:ZAINLMmO
>>736
文字列とか通信データから、新たなオブジェクトを構築するのでしょ?

構築できたら、null ではないし、
データがおかしくて構築できなかったら、エラー!

739デフォルトの名無しさん2019/05/21(火) 12:40:36.99ID:sr6+MIRN
当然nonnull出ない変数ににnullをぶち込んだらエラーになる

740デフォルトの名無しさん2019/05/21(火) 13:55:21.57ID:2xcSjans
>>736
nullを入れられない型なのにnullを入れようとしたらその時点でオブジェクトを生成できずにエラー
なので、json文字列を受け取ってオブジェクトを生成する部分で要件に合わせて適宜いい感じに処理する必要がある

741デフォルトの名無しさん2019/05/21(火) 14:53:46.84ID:BVi2WQ22
>>736
試してみればわかると思うが、nillableな型にnull入れてObjectOutputStreamで書いた後でnullableでなくしてコンパイルしなおしてからObjectInputStreamで読もうとするとInvalidClassExceptionが出る。

742デフォルトの名無しさん2019/05/21(火) 15:17:02.88ID:RVxsm+ja
kotlin使ったことないって奴向けの説明ではないな

743デフォルトの名無しさん2019/05/21(火) 16:06:22.73ID:BVi2WQ22
図解しないとダメか?w

744デフォルトの名無しさん2019/05/21(火) 17:40:26.31ID:x7pfOsc7
そもそも聞かれてることに対する回答としてはピントがズレてる
自分の知識自慢したいイキリオタク感がすごい

745デフォルトの名無しさん2019/05/21(火) 18:43:35.05ID:gj4VcULk
>>734がおそらくしているであろう幻想を抱いていた時期が自分にもありました
とエスパーしながらいうと、通信で受信したオブジェクト等はnullableな型を持つことになるだけで、
Kotlinにしたからといってnullチェックが要らなくなるわけではない。

>>736には誰の説明が分かりやすかっただろうか。

746デフォルトの名無しさん2019/05/21(火) 20:08:28.33ID:BVi2WQ22
>>744
ずれてないだろ。通信でオブジェクト送る話なんだから。

747デフォルトの名無しさん2019/05/21(火) 20:11:45.34ID:grT0tw0/
Javaのコードを呼び出すところは、全部そうだね。
Kotlinはnullableであることを「強制しない」。
AndroidとかjavaxのAnnotationでもついていない限り。

748デフォルトの名無しさん2019/05/21(火) 20:44:09.88ID:wTyF+2my

749デフォルトの名無しさん2019/05/21(火) 21:17:46.88ID:KjOgf3b2
null安全は@NotNullとどう違いますか?

750デフォルトの名無しさん2019/05/21(火) 23:00:11.33ID:MtIoFqpw
コンパイルエラーになるかぬるぽでばーんってなるかの違い

751デフォルトの名無しさん2019/05/21(火) 23:15:32.28ID:dJ+4PuSm
null安全は以下の機能を包括する言葉
 ・型システムでnull許容とnull不可を区別出来る
 ・null許容型の取扱いを容易にするモナド操作などを言語仕様や標準ライブラリに持つ

752デフォルトの名無しさん2019/05/22(水) 00:26:45.64ID:s0RuNCYO
  ∧_∧  / ̄ ̄
 ( ´∀`)<  ド?
 (     )  \__
 │ │ │
 (__)___)

753デフォルトの名無しさん2019/05/22(水) 13:10:44.21ID:o0mLtMWH
iosアプリ作るのは現実的にいけそう?

754デフォルトの名無しさん2019/05/22(水) 15:26:22.63ID:06P4CJxl
いけるいける

755デフォルトの名無しさん2019/05/22(水) 17:11:00.38ID:ddL9armR
大丈夫大丈夫、なんの問題もない

756デフォルトの名無しさん2019/05/22(水) 19:37:38.21ID:N+dUt+tn
逆引きのAndroid開発用のKotlin本ないの?
Javaのはあるけどさ

757デフォルトの名無しさん2019/05/22(水) 21:14:49.49ID:o0mLtMWH
>>754
>>755
ほんとのほんとに?
作り始めてまうで?

758デフォルトの名無しさん2019/05/22(水) 22:18:54.87ID:mQdasoF8
うん、大丈夫、なにも心配することないから

759デフォルトの名無しさん2019/05/23(木) 00:10:33.20ID:K2oq56d+
>>754,755,758
iOSアプリを実際に作った人がこの板にこんなにいるとは思えないんだがw
いや、自分もないんだけどさw

760デフォルトの名無しさん2019/05/23(木) 00:56:30.37ID:ClSxeVCE
Kotlinでの競技プログラミングのコンテストがあるよ!

5月28日の23時35分から2時間半!

Kotlin Heroes Announcement
https://codeforces.com/blog/entry/67162
https://codeforces.com/contests/1170

761デフォルトの名無しさん2019/05/23(木) 01:52:40.87ID:kvy164Qh
英語で書かれた問題を解読するだけで2時間半が経過してしまいそうな予感

762デフォルトの名無しさん2019/05/23(木) 02:45:36.97ID:K2oq56d+
>>760
IntがintになるかIntegerになるか考慮しないといけなかったらちょっと嫌だなあ。

763デフォルトの名無しさん2019/05/23(木) 06:58:10.23ID:ZvIUMcmJ
>>759
大丈夫、Kotlinも業務で使ってるしiOSアプリも業務でいくつも作ってるからさ
Kotlin nativeのiOSアプリも実際に作ってみたって人と勉強会の懇親会で話したことがある

764デフォルトの名無しさん2019/05/24(金) 09:20:43.95ID:1flrLOhd
>>756
必要か?

765デフォルトの名無しさん2019/05/24(金) 13:57:22.09ID:WFuDBTgU
Listの初期化って

var list = listOf<Hoge>()



var list :Hoge? = null

どっちがいいの?

766デフォルトの名無しさん2019/05/24(金) 15:11:48.77ID:10iCK04b
>>765
全く違うもの出されてどちらがと聞かれても・・・

767デフォルトの名無しさん2019/05/24(金) 16:53:05.84ID:cg0Vnpe0
>>765
その2つでいうなら下はリストを作れてないから上一択になるぞw

768デフォルトの名無しさん2019/05/24(金) 16:57:14.79ID:WFuDBTgU
間違えた下は

var list :List<Hoge>? = null



これならどっちがいい?

769デフォルトの名無しさん2019/05/24(金) 16:59:34.27ID:cg0Vnpe0
どちらにせよその2つは作られる型が違う
nullableにする必要があるかどうかで使い分けろとしか

770デフォルトの名無しさん2019/05/24(金) 17:00:11.96ID:cg0Vnpe0
俺だったら何か理由がない限り上

771デフォルトの名無しさん2019/05/24(金) 17:00:17.36ID:g+HqU4NL
特別な理由がない限り上はvarじゃなくてvalにすべきじゃない?

772デフォルトの名無しさん2019/05/24(金) 17:15:07.02ID:WFuDBTgU
>>770
なぜ?

>>771
valにしたら代入できないじゃん

773デフォルトの名無しさん2019/05/24(金) 17:52:50.04ID:8qiM3xuo
val にして空の MutableList 作るのは?

774デフォルトの名無しさん2019/05/24(金) 18:01:30.45ID:XLHoRxVW
俺はemptyListだな

775デフォルトの名無しさん2019/05/24(金) 18:03:21.78ID:6OR0USBX
?取るのめんどいから空のリストにしてくれ

776デフォルトの名無しさん2019/05/24(金) 18:27:38.07ID:g+HqU4NL
>>772
ああごめん val にしてMutableList な
だが、おまえが欲しいのはたぶん
var list = emptyList<Hoge>()

777デフォルトの名無しさん2019/05/24(金) 18:51:13.35ID:xfff2+MO
>>772
Kotlinにおいてはvarもnullableもごく限られた場面でしか使わない例外的なものだということは知っておいた方が良い。
nullableは無駄に取り扱いが面倒だったり、varは予期せぬバグを生み出す温床になり得るから。

なので
val list = mutableListof<Unko>()

が、大抵の場面で正解。

778デフォルトの名無しさん2019/05/24(金) 19:42:38.12ID:Oa3ZkFre
Unkoって何ですか

779デフォルトの名無しさん2019/05/24(金) 20:03:18.59ID:g/LimCLF
えっお前んちUnkoねーのだっせー

780デフォルトの名無しさん2019/05/24(金) 20:04:30.18ID:6mh6tvLx
かといって盲目的に mutable collection を使うのもどうかと思うがな

781デフォルトの名無しさん2019/05/24(金) 20:17:54.95ID:73sdMVIH
盲目的も何もコンテキストが分からないんだから一般論としてvarを使うよりはMutableListを使う方が適してると言うしかないだろ
どんな状況でも何がなんでもMutableListを使えなんて誰も言ってない

782デフォルトの名無しさん2019/05/24(金) 20:23:02.45ID:73sdMVIH
俺も>>777にするな。

もしくはlateinitを使うか、どちらか。

783デフォルトの名無しさん2019/05/25(土) 05:49:19.79ID:wB1WneOU
>>768
状況にもよるけど、>>782で出たlateinitか、場所によっては
val list by lazy{ [List<Hoge>を返す式] }
そもそも、listの要素が出揃っていない段階でlistを宣言するのが適切でない可能性も。
val list = [List<Hoge>を返す式]
のようにいきなり最後まで計算するか、少々面倒だけど>>773の言うように一旦
val temporaryList = mutableListOf<Hoge>()
して要素が出揃ったら
val list = temporaryList.toList()
するとか。

784デフォルトの名無しさん2019/05/25(土) 06:37:38.07ID:fh0ztzaz
lateinitはvalにできないから糞

785デフォルトの名無しさん2019/05/25(土) 07:20:32.83ID:Kvnc/U5Q
そんなご無体な

786デフォルトの名無しさん2019/05/25(土) 08:02:42.85ID:9ELY4FpV
valだけが正しい。valにできないなら新しいvalにコピーするべき

7877682019/05/25(土) 10:50:32.51ID:VlF1HZqT
>>783
それだとvalじゃなくてvarじゃね?

始めに空のList入れる意見が多いけど結局使う時にemptyかチェックするでしょ
nullかどうかチェックするのと同じじゃね?

788デフォルトの名無しさん2019/05/25(土) 10:57:44.94ID:VlF1HZqT
nullの警告が厳しいからこそ使うのはどうだろうか
nullならnullだと知らされるがemptyじゃ何の警告も出ない

789デフォルトの名無しさん2019/05/25(土) 13:16:02.71ID:exhgzloH
・リスト自体を構築するケース
  ・listを使わないケースがかなりある and 非常に効率重視(※)なら
     var list: List<Hoge>? = null
     必要になったら list = mutableListOf()
  ・そうでないなら
     val list = mutableListOf<Hoge>()

  ※mutableListOf(=ArrayListの生成コスト)すら許容出来ない場合
    なおmutableListOfと比較するとlazyの準備処理の方がコストが掛かる

・場合によって構築済みリストを入れ替える(再代入)するケース
  var list = listOf<Hoge>()

補足: listOf()はemptyListにinline展開されEmptyListのシングルトンを返すので生成コストは無い
>>765 >>772は再代入目的のようなのでlistOfで良い

790デフォルトの名無しさん2019/05/25(土) 13:19:44.44ID:F8alA812
>>787
そうとは限らない
単にリストの要素数が0ならそれでいいケースも多い
そう考えると明らかに初期化を忘れてるのが分かるという意味でnullを入れておくのもいいかもしれない

791デフォルトの名無しさん2019/05/25(土) 17:48:30.03ID:AAsiXMmO
Androidなどで、非同期処理が関わってくると、
valは注意して使わないといけない場面が、意外にたくさんあることに気が付く。

792デフォルトの名無しさん2019/05/25(土) 18:20:07.77ID:lux9UzI+
Activityのbindingはby lazyのval
Fragmentのbindingはlateinit var

793デフォルトの名無しさん2019/05/26(日) 23:17:26.29ID:/1jO9AOV
>>765
そもそもローカル変数の話なのかプロパティの話なのか…

794デフォルトの名無しさん2019/05/27(月) 12:03:53.57ID:j1Bw0s67
emptyListってシングルトンだから生成コストがないってのは分かるんだけど、
今時その程度の生成コストを気にする場面ってそんなない気もする
富豪的プログラミングなんて言われるかもしれんけど、もはやそれ自体死語だしな

795デフォルトの名無しさん2019/05/27(月) 12:57:29.86ID:ffeERoRR
>>793
ローカルならそもそも悩まない。

val且つmutableにして都度addallするか、var且つimmutableで丸ごと置き換えるか、はケースバイケースで。

796デフォルトの名無しさん2019/05/27(月) 13:34:53.60ID:IGUdGZaE
valで都度変数作るからなぁ

797デフォルトの名無しさん2019/05/27(月) 14:33:20.72ID:24xkxhR7
プロパティの話ね
mutableにしてもそもそも生成は別のところでListごと作るからmutableだろうがListだろうが関係ない
当然後から代入するからvalにはできない

798デフォルトの名無しさん2019/05/27(月) 14:57:26.23ID:EJcO498B
copyメソッド

799デフォルトの名無しさん2019/05/27(月) 23:34:59.34ID:s432cqVY
サーバーサイドばっかだからかもしれんがプロパティにMutableListを使うことがそうそう無い
データクラスのコンストラクタ引数に val list: List はよくある

800デフォルトの名無しさん2019/05/27(月) 23:56:54.45ID:zFWKvIPE
内部DSLとかの指示を構築する系の実装で使うかな

801デフォルトの名無しさん2019/05/28(火) 05:58:36.43ID:sEeuOOEX
サーバーサイドかどうか関係なくない?
俺はよく使うよ。例えばツリー構造になってるデータを読み込む処理で自分の子ノードのリストを持つため、とか、これ昨日書いた。

802デフォルトの名無しさん2019/05/28(火) 06:33:15.65ID:f4BtQ/HR
val text = ""

って

val text :String = ""

って書いた方がいい?

803デフォルトの名無しさん2019/05/28(火) 07:05:11.16ID:Bdaqy37y
>>802
やるメリットは特にない
むしろ本当に宣言通りStringかどうかチェックするぶんビルド遅い

804デフォルトの名無しさん2019/05/28(火) 08:10:42.72ID:sEeuOOEX
>>802
いらない。何をどう見ても明らかにStringだから意味ない。

805デフォルトの名無しさん2019/05/28(火) 23:54:42.49ID:g+jKUI0N

806デフォルトの名無しさん2019/05/29(水) 01:39:37.10ID:KhqOXHGU
Kotlinに、SwiftのExpressibleByStringLiteralみたいなのが無くて本当に良かったと思う
あれは呪いだ

807デフォルトの名無しさん2019/05/29(水) 02:17:57.59ID:Qb2i3AGM
>>802 は、IntelljIDEA か Android Studio 使ってないのかね?
警告消して緑色になるようがんばれ
おれは警告にどうしても従えない場合でも、アノテーション使って絶対緑色にする

808デフォルトの名無しさん2019/05/29(水) 04:33:25.97ID:XoYuC6Fl
Charは'a'なのね

809デフォルトの名無しさん2019/05/29(水) 06:05:24.96ID:ouhOLTM0
>>806
なにそれ?

810デフォルトの名無しさん2019/05/29(水) 07:50:04.16ID:KhqOXHGU
>>809
https://ideone.com/3YQTSZ

文字列リテラルが本当に文字列なのか分からなくなるやつ

811デフォルトの名無しさん2019/05/31(金) 14:21:13.30ID:Jjn+Dq6k
>>806
PHPだと1リクエストごとにFWの初期化処理を行っているのが遅い理由でしょ
特にLaravelは読み込むファイルも多いし重い

他の言語だとアプリケーションサーバ起動時に一回だけ初期化処理をするので1リクエストあたりの処理が少ない

PHPでもSwooleやReactPHPなどを使えば同じことはできるけど、まあ既存のFWを乗っけてもバグりやすいだろうね

812デフォルトの名無しさん2019/05/31(金) 18:46:44.28ID:R6sHUJ5K
なんの話だよ

813デフォルトの名無しさん2019/05/31(金) 22:32:24.72ID:VAUlN9pw
やべぇやつが来たなwww

814デフォルトの名無しさん2019/06/01(土) 07:53:39.61ID:6Ne8KtIA
普通に誤爆でしょ

815デフォルトの名無しさん2019/06/01(土) 11:37:30.64ID:OCCxHMSa
android用途:元気
サーバーサイド用途:全く流行らず
kotlin/native: 瀕死
kotlin.js: 死亡

現状こんな認識なんだけど合ってる?

816デフォルトの名無しさん2019/06/01(土) 11:43:16.53ID:HBXiOctn
Xamarin程の糞はない

817デフォルトの名無しさん2019/06/01(土) 12:20:19.48ID:oJ6AvSx+
>>815
Kotlin nativeはなんかもう不死鳥とかみたく蘇ったりする予定なので書いておいてください

818デフォルトの名無しさん2019/06/01(土) 14:59:33.17ID:7bqJsR1f
身内のGraalにトドメ刺されて終わりだろ。

819デフォルトの名無しさん2019/06/01(土) 15:47:15.77ID:v1/bDBif
/NativeがGraalにやられても/JVMがスイッチするから大丈夫

820デフォルトの名無しさん2019/06/01(土) 16:20:49.17ID:4wvh7Cn2
>>815
合ってる

821デフォルトの名無しさん2019/06/01(土) 16:55:01.52ID:uuPo6pHP
nativeはまだ作成中みたいな感じなので瀕死とは違うと思うが

822デフォルトの名無しさん2019/06/01(土) 17:46:40.68ID:xELmXxSQ
Kotlinを勉強し始めたんだけどさあ
これってレファレンスを見てエディタで打ち込む->kotlincでコンパイル=>javaで動かす・・・・ってのを繰り返さないとならんの?
Swiftに言う「swift asdf.swift」みたいなのに相当するコマンドはないのかしら

823デフォルトの名無しさん2019/06/01(土) 17:49:07.58ID:FZbdo0L3
そうか。合ってるか。。

サーバーサイド kotlinが流行ってないのは何でなんだろ。
現状問題なく使えるように思うけど、ほとんど開発案件出てこないね。

824デフォルトの名無しさん2019/06/01(土) 17:50:33.82ID:v1/bDBif
>>822
IntelliJ(community版)を使おう
再生ボタン一つで済む

825デフォルトの名無しさん2019/06/01(土) 17:51:43.68ID:FZbdo0L3
>>822
まずintellij(IDE)をインストールしないと始まらない

826デフォルトの名無しさん2019/06/01(土) 18:32:24.41ID:7x5on0RN
このスレ定期的にkotlinc使う奴が出てくるよな
どこぞの入門サイトに書いてあるんかね
どう考えてもintellij使う前提の言語なのに

827デフォルトの名無しさん2019/06/01(土) 18:32:52.15ID:7x5on0RN
>>823
サーバーサイドKotlinで生きていきたいけど、仕事なさすぎて難しいよなあ

828デフォルトの名無しさん2019/06/01(土) 19:41:31.36ID:4wvh7Cn2
>>822
Kotlinを書くのにエディタを使うのがそもそも間違ってる。
無料版でいいからIntelliJ使え。

829デフォルトの名無しさん2019/06/01(土) 20:59:16.14ID:f9ycqMAV
うちはサーバーサイドで使ってるわ
ほぼ俺しか書いてないが

830デフォルトの名無しさん2019/06/01(土) 22:10:50.15ID:GQlgchjf
YouTube に動画をアップしてる、KENTA でも、
サーバーサイドの、Elixir, Kotlin などを受注するのに苦労してる。
彼は、変わった言語の仕事に、こだわる

こういう仕事は、滅多に出回らないから、ツテから入るのかも。
KENTAは千以上、名刺交換してるとか

彼は、GUI は嫌いらしい。
画面の修正で、時間を食うのが、嫌いらしい

数ピクセル、位置が違うとか、
修正したら、違う人が、元に戻せと言ったりw

GUI は、技術を学ぶ、時間効率が悪いから、嫌いらしい。
だから、サーバーサイドの仕事を取る

831デフォルトの名無しさん2019/06/01(土) 22:33:39.21ID:v1/bDBif
歌詞かな

832デフォルトの名無しさん2019/06/01(土) 22:48:31.29ID:ZDO2fOJr
サーバーサイド普通に使ってるぞ
lombok駆使するよりいいと思う

833デフォルトの名無しさん2019/06/01(土) 23:07:41.16ID:jNRuoNdG
>>830
海外の方?

834デフォルトの名無しさん2019/06/01(土) 23:08:06.44ID:vdsZQvk5
ポエムだぞ

835デフォルトの名無しさん2019/06/02(日) 01:28:53.78ID:/69WsxDT
>>830
「、」で区切り過ぎ。その文章の場合は全ての「、」を削除した方が読みやすい。

836デフォルトの名無しさん2019/06/02(日) 01:33:22.19ID:/69WsxDT
>>822
IntelliJ 使った方が楽だが、kotlinc でコマンドラインでやるとしたら最後の実行は kotlin コマンドでできるよ。

kotlinc xxx.kt
kotlin XxxKt

みたいにする。
kotlin コマンドは環境変数セットしたりして最終的に java を動かす。

837デフォルトの名無しさん2019/06/02(日) 10:05:23.69ID:80ueDuoq
で、サーバサイドkotlinのこれからについての認識なんやけど合ってる?

・実戦投入可能なレベルに達している

・goが選ばれるような案件では以下の点でgoに勝てないので流行らない
→粒度の細かいマイクロサービス:deploy容易性がgoに劣る、kotlinの抽象力が活き辛い
→aws lambdaとか:上記に加えてjvmが温まるまで遅い

・モノリシック案件のbetter javaとしては第一候補
→フルスタックFWが有望でspring bootが最有力
→必然的にSIerの仕事が多くなる

・SIerが最重要視するのは実績
→実績を積むには待つしかない

838デフォルトの名無しさん2019/06/02(日) 10:08:10.88ID:80ueDuoq
kotlin/nativeは「hello world」を「hello world!」にするだけでビルドに7sかかるんやけど。。
こんなもんなん?何かやり方間違ってるのかな。

839デフォルトの名無しさん2019/06/02(日) 10:25:57.88ID:klo8W86L
>>837
受託の業界は知らんけど、WEB業界なら今までJavaやらScalaやら使ってたところはもう大体使えるところから使い始めてる。
ただそもそも日本のWEB業界ではJavaが不人気過ぎてどうしてもニッチの部類に留まってるわな。

生存戦略としてはとにかく仕事の多いRailsやらをやるか、仕事は少ないが応募者も少ないKotlinを極めるか、まあどちらでもありっちゃあり
どうせ5年後には違う技術が台頭してるし

840デフォルトの名無しさん2019/06/02(日) 11:16:42.46ID:uIkDYzKb
既存のJavaからKotlinはあっても、そもそも新規でJVM選択するかなっていう

841デフォルトの名無しさん2019/06/02(日) 12:06:59.02ID:TDNwqEN9
sunが震え声で
ハードの進化でJVMのパフォーマンスは向上していくから…
って言ってから何年経ったのか

842デフォルトの名無しさん2019/06/02(日) 12:13:33.66ID:UpSyXruc
PHPで作ってたけどパフォーマンスが出なくなって来たからJavaで作り直す、みたいなのはよく聞くな
同じ理由で昔はRailsからJavaってのもあったけど最近のRailsは速いからあまり聞かなくなった

843デフォルトの名無しさん2019/06/02(日) 14:27:04.47ID:Kbt/vpV3
Rails ができれば、コピーのCakePHP も出来る

違う言語だけど

844デフォルトの名無しさん2019/06/02(日) 14:47:02.52ID:530n/55/
Rubyキチ、無視しろ。

845デフォルトの名無しさん2019/06/02(日) 14:52:37.88ID:LUUGWxBq
php8()

846デフォルトの名無しさん2019/06/02(日) 15:29:19.09ID:sHGNUntV
新規でサーバ側でkotlinで作ってもらったけど
少数派なのか。
まあ、何ができるかが大事だからいいけど、流行に左右されるのは厳しいね。

847デフォルトの名無しさん2019/06/02(日) 16:54:37.31ID:/69WsxDT
>>841
20年ぐらい?
まあ確かにあのWindows95だの98だので動かしていた時よりは速くなったけどね。

848デフォルトの名無しさん2019/06/02(日) 21:44:03.80ID:xSU5v8RX
結構Java嫌いな人多いんだね。自分もJavaは好きじゃないけど。

>>840
Javaが検討される規模のWEBサービス作る時にJVM以外の選択肢って例えば何かあるのかな?

>>841
Javaの出始めと比べたら劇的に進化してSunの言う通りになったと思うけどな。
Java離脱組もパフォーマンスじゃなくて開発効率やサービスの拡張性を気にしてる。

>>846
少数派なのはそうなんだけど、依頼側から見たサーバーサイドkotlinのデメリットは
・現状では開発者が少ない=人が集まらないことによる遅延、開発者単価
・実績がない=未知の何かが起こるかも
なのでローンチ出来てる時点でデメリットは乗り越えているし、
Android界隈では確固たる位置にいるからこの先メンテ人材が見つからない心配もない。(←ここが流行に左右されて困るポイント)
悪くない選択だったと思うんだけど

849デフォルトの名無しさん2019/06/03(月) 23:56:34.84ID:JEDLjuFd
JVMの性能は実行時最適化が強みだから
ベンチマーク系は不利
巨大なプログラムで長時間の動作において有利なはず
にもかかわらずベンチマークでもそこそこ速いんだからすごいのでは

850デフォルトの名無しさん2019/06/04(火) 00:08:19.43ID:8w4/id00
いや実行時最適化は繰り返し実行される処理に対して効くからベンチマークには強いぞ
立ち上がりの遅さとか、ベンチマークに現れない体感的な部分がJVMは遅い
事実上サーバー専用だから仕方ないが

851デフォルトの名無しさん2019/06/04(火) 02:28:23.05ID:Xu6aOKJJ
JVMはガーベッジコレクションでスローダウンするから未だに使い物にならない。
一番大事な時に直撃で機会損失が億いくと違約金も凄まじかったぜ。

852デフォルトの名無しさん2019/06/04(火) 06:40:04.13ID:1zKcF7rp
果てしなく嘘くさいな
シビアなシステムでどれだけ使われてると思ってるんだ

853デフォルトの名無しさん2019/06/04(火) 07:41:14.05ID:zxBnyDUV
10年以上前からあるコンカレントGCすら知らないような会社なんだろう

854デフォルトの名無しさん2019/06/04(火) 08:08:31.64ID:LGhp/e10
業務用Javaに関しては新機能が使われずなおかつアプデなしで10年経過とか普通にあるからな
それはそれでもいいから対外的にJava語るなって話なんだが

855デフォルトの名無しさん2019/06/04(火) 08:20:13.77ID:1zKcF7rp
例のみずほのサグラダファミリアもJava1.5という噂を聞いたけどマジなんかな

856デフォルトの名無しさん2019/06/04(火) 10:17:08.75ID:prB+PlYz
ネイティブでgc使わないようなコードも出せるようになればなんとかなりそうな気もするが、そうするとライブラリもそれ用のを使わないとダメか。

857デフォルトの名無しさん2019/06/04(火) 11:48:04.89ID:+GlxYcps
graalvmでできるぞ

858デフォルトの名無しさん2019/06/04(火) 12:44:23.82ID:zxBnyDUV
それ回収しないやつじゃないですかね

859デフォルトの名無しさん2019/06/04(火) 18:10:17.62ID:/4mAZqwS
JVMが使い物にならないという人が何を使っているのかとても気になる

860デフォルトの名無しさん2019/06/04(火) 18:49:03.68ID:Rd1vYitp
JVM入りの指輪使ってます!

861デフォルトの名無しさん2019/06/04(火) 19:32:40.19ID:+GlxYcps
jvmの引数でもGCのラグを解消できるし
最新のZGCというのも出てきた

862デフォルトの名無しさん2019/06/04(火) 23:57:50.92ID:FDlJBmR7
JVMというかspring fwの起動が糞遅いのは分かる
2.0になって少しましになったけど…

863デフォルトの名無しさん2019/06/05(水) 01:12:19.63ID:PtZsxspX
springってそんな遅いっけ?

864デフォルトの名無しさん2019/06/05(水) 10:00:02.20ID:zKfENgey
気のせいかわからんがKotlinでspringやると遅いような気がする

865デフォルトの名無しさん2019/06/05(水) 10:01:33.26ID:C+IWDk26
Ktor流行って欲しい

866デフォルトの名無しさん2019/06/05(水) 10:13:38.35ID:gaDZjJ4I
>>876
ktorはマイクロサービス向き
kotlin/jvmはモノリシック向き
kotlin nativeが流行らないと無理やと思うで

867デフォルトの名無しさん2019/06/05(水) 13:28:31.33ID:B3mDB84e
>>864
コンパイル時間は長いと思うけど、アプリ本体は変わらん。
というかそもそもspring本体はJavaだし。

868デフォルトの名無しさん2019/06/05(水) 19:11:23.87ID:i1hhoL96
>>866
Ktorをその並びで並べるのはちょっと違うと思う。

869デフォルトの名無しさん2019/06/05(水) 21:56:16.86ID:Nwu/rjvu
>>868
kotlin/jvmはJava代替でSIerによるフルスタックFW&モノリシック開発が向いている
kotlin/nativeはGo代替を目指していてWeb系企業のマイクロサービスが向いている
kotlin/jvm+ktorではGOに勝てるユースケースが無いので
ktor流行にはkotlin/nativeの流行も必須というのが自分の主張。
まあ異論はあると思う。ちなみにkotlin/nativeは応援してるしktorも流行ってほしい

870デフォルトの名無しさん2019/06/06(木) 00:14:12.91ID:crlHsY/g
>>822
vim + quickrunで動くよ!
kotlinc, javaなんてコマンドを打つことはしない。

871デフォルトの名無しさん2019/06/06(木) 05:38:57.73ID:AHPkvIjM
>>869
言ってることは分からなくもない。
ただ視野が狭すぎるというか、そんな可能性を狭めなくていいと思う。

872デフォルトの名無しさん2019/06/06(木) 06:33:47.56ID:DDFFQDhW
そもそもKtorってJVM、というかServletに依存してね

873デフォルトの名無しさん2019/06/06(木) 09:26:51.24ID:B66i5Eyn
依存はしてなくね

874デフォルトの名無しさん2019/06/06(木) 10:59:43.79ID:72rhxhib
次のリリースでkotlin/nativeのbuild時間が改善されそう
リリースいつなんだろ。。

875デフォルトの名無しさん2019/06/06(木) 12:47:51.63ID:rJJBtVPp
利根川さんにでも聞け

876デフォルトの名無しさん2019/06/06(木) 20:06:45.07ID:UUcOWqLu
kotlin/nativeはGraal(AOT)に勝てるかどうかすら怪しいのに、夢見過ぎだろ。

877デフォルトの名無しさん2019/06/06(木) 20:44:18.25ID:tk55iQ4S
ktsって誰も使ってなさそう

878デフォルトの名無しさん2019/06/06(木) 21:14:00.21ID:DsfM5wVX
Gradleで使う

879デフォルトの名無しさん2019/06/07(金) 08:15:36.89ID:XGKtoEgu
>>876
AArch64の対応が進んではいるもののGraalがiOSに対応するのは当分先
Kotlin/Native側も資産(ライブラリ等)不足やパフォーマンスの課題があるけどな

880デフォルトの名無しさん2019/06/07(金) 08:44:09.41ID:XGKtoEgu
>>879の補足

Graal側はAArch64/Linux対応が完成してからiOS対応をやるかどうか検討するとのこと
https://github.com/oracle/graal/issues/373#issuecomment-454697157

まだAArch64/Linux整備中の段階
https://github.com/oracle/graal/commits?author=sanzinger&since=2019-05-15&until=2019-06-07

iPhone/iPadのチップ : A10〜A12X : ARMv8ベース
ARMv8の64ビットモードがAArch64

881デフォルトの名無しさん2019/06/07(金) 16:14:27.25ID:5OmdT0Za
kotlin/nativeのメインターゲットはiOS開発なんだろうと思う。

882デフォルトの名無しさん2019/06/07(金) 16:40:27.70ID:xSr7j0ut
普通に考えりゃそうだわな

883デフォルトの名無しさん2019/06/07(金) 16:53:00.43ID:q0RmewW9
Swiftネイティブでいいじゃん、他にはUnityもあるし。
入り込む余地ないでしょ。

884デフォルトの名無しさん2019/06/07(金) 19:12:00.19ID:uzdYHfME
釣り針は大きすぎちゃいかんのだぞ

885デフォルトの名無しさん2019/06/09(日) 13:55:10.20ID:pv0ZpPmn
kotlin3大いいところ
・android標準という安心感(直ぐには廃れない)
・モダンな書き方ができる(arrowもあるし)
あと1つは?

886デフォルトの名無しさん2019/06/09(日) 14:23:05.48ID:LrdSIDEQ
>>885
Listが基本immutableなことやnull安全はモダンに含まれるのかな?
標準という意味ではGradleの記述言語としてもサポートされているので、廃れにくいかなと思っている。
個人的にはDSLを3つ目として挙げたい。

887デフォルトの名無しさん2019/06/09(日) 14:43:33.75ID:zgQq0a06
JVMで動く言語でJavaのライブラリそのまま使えるのが良い
これに関してはKotlinである必用はないのだが、その他の利点の上に更にこれがあるのが良い

888デフォルトの名無しさん2019/06/09(日) 16:29:58.10ID:SDScvKJ1
最新のjavaも随分進化したから、そこまでkotlinにこだわらねえ。
kotlinがjavaや.netみたく自前の最初からnull安全なクラスライブラリ備えてるなら別だけど。

889デフォルトの名無しさん2019/06/09(日) 16:35:14.81ID:yULR2w5s
逆にあえてJavaを使う理由が特に思い当たらんからとりあえずKotlin使うわ

890デフォルトの名無しさん2019/06/09(日) 19:10:48.79ID:TX+aAcRC
Javaに新機能が追加されてもざんねんなJava部分が消えるわけではないので
可能であるなら最初からKotlinでやりたいかな

891デフォルトの名無しさん2019/06/09(日) 22:02:36.62ID:LrdSIDEQ
>>888
自分も最初はラムダもOptionalもあるからとそう思っていたけど、immutable programmingで行こうと思った時に、
Listがimmutableであることを保証する方法がないことに気づいてKotlinへの移住を思い切った。
immutable programmingはそれほど実現しなかったと反省しているが、
Kotlin/JSやbuild.gradle.ktsとかも出来たので後悔はしていない。

892デフォルトの名無しさん2019/06/10(月) 10:30:03.83ID:5WqM3fpA
うちももう新規追加は全部Kotlinだわ
だってJavaで書くメリットがマジで何もないんだもん

893デフォルトの名無しさん2019/06/10(月) 10:36:29.16ID:rgxxUvbF
javaで仕事してるやつ転職できなくなるぞ

894デフォルトの名無しさん2019/06/10(月) 11:17:01.74ID:g6tidy/F
coboちゃんが入れ替わっただけの蛇腹は逝ってヨシ

895デフォルトの名無しさん2019/06/10(月) 13:43:04.79ID:5WqM3fpA
>>893
Java経験あるならKotlinなんてすぐ書けるから別に気にしないよ。
社員で雇うならどの言語で書いてたかはあんまり関係ない。

896デフォルトの名無しさん2019/06/10(月) 23:11:05.39ID:f1GGY3g+
kotlin書いてる人は何の仕事してるの?
やっぱandroid?

897デフォルトの名無しさん2019/06/11(火) 05:51:34.27ID:qT8Bq+lF
サーバーサイド
7割SpringBoot3割sparkその他

898デフォルトの名無しさん2019/06/11(火) 05:52:20.89ID:qT8Bq+lF
2年くらい前まで都市伝説レベルだったサーバーサイドKotlinも最近は勉強会でよく見かけるようになったんだ

899デフォルトの名無しさん2019/06/11(火) 07:18:21.72ID:G5A56vfp
できればkotlinで作りたいって言われてサーバー側のプログラムを作ってもらった。
DBサーバは別で画面制御だけ。

自分でも勉強しようと思ってこのスレッドを見てるところ。

900デフォルトの名無しさん2019/06/11(火) 15:06:52.23ID:1jV87VfI
そっか。サーバサイドkotlin順調に普及してきてるんやね。ワイの周り以外では。
うらやましい!

901デフォルトの名無しさん2019/06/11(火) 17:51:05.94ID:PKI+0nSq
ほぼ0だったのがようやく1になったくらいで、まだまだマイナーだけどね

902デフォルトの名無しさん2019/06/11(火) 19:13:42.98ID:oFYgO+/L
分布が0から1になったら制圧完了じゃないか

903デフォルトの名無しさん2019/06/13(木) 09:02:41.37ID:t9tRfwUY
kotlinは関数型も取り入れてるし
色々欲張り過ぎで言語仕様複雑化してるイメージがあるんだけど
実際使っててどうなの?
kotlinプロジェクトはコーディングスタイルが多様化しそう

904デフォルトの名無しさん2019/06/13(木) 10:04:02.16ID:7TzYdFG0
>>902
プログラマならまずそう思うわなw

905デフォルトの名無しさん2019/06/13(木) 17:30:55.80ID:rjthL9V0
AndroidStudioやVSCode(mathiasfrohlichのKotlin Language機能拡張)で学習してるんだけどさ
どちらにしてもスペルミスは文字の色である程度わかるけど、文法が間違っててもその場で指摘してくれるわけじゃないのね
ある程度身につくまで文法間違いやを教えてくれるとありがたいんだけどそういうのはないのかな?

906デフォルトの名無しさん2019/06/13(木) 17:36:07.23ID:5KTA02i+
文法間違いとはなんぞや
一応、実行できないくらい間違ってる場合はIntelliJ系だと「現時点で解釈不能でわけわかんないです」「これを書いてるつもりの場合は〇〇が必要です」って下に英語でちょろっと出る

907デフォルトの名無しさん2019/06/13(木) 18:20:30.31ID:KlaL+iOR
文法間違いは普通に赤線で指摘されるだろ

908デフォルトの名無しさん2019/06/13(木) 19:19:37.31ID:t9tRfwUY
kotlinのバグ発生率はJavaより低いですか?

909デフォルトの名無しさん2019/06/13(木) 19:22:16.85ID:5KTA02i+
Javaのバグ発生率を教えてくれたら考えてあげてもいいよ
同じような式で計算して出すから

910デフォルトの名無しさん2019/06/13(木) 19:32:38.72ID:BCeAlBQy
>>905
具体的にどういうこと?
VSCodeは知らんけどIntelliJは大抵のミスは教えてくれると思うけど

911デフォルトの名無しさん2019/06/13(木) 19:38:53.30ID:t9tRfwUY
>>909
https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf
>Java−0.01 (0.04)

Javaはいろいろな言語の中で平均的なバグ発生率のようです。
Kotlinはこの表にありません。

912デフォルトの名無しさん2019/06/13(木) 19:43:19.29ID:t9tRfwUY
Javaのバグ発生率は、
同じ領域で使われていると思われるC++,C#,Pythonと比べて最も低いです。
つまり、カーネルやデバドラやブラウザ系でなければJavaが一番優秀に思えます。
しかしKotlinはJavaを打ち倒すかもしれません。

913デフォルトの名無しさん2019/06/13(木) 19:52:28.01ID:LD/3JdHH
ぬるぽ
ぬるぽ
出まくるが
これはバグじゃないのか

914デフォルトの名無しさん2019/06/13(木) 20:13:21.29ID:t9tRfwUY
その比較研究はgithubのコミットに基づいているようなので
ほとんどのNPEは開発中に発生して修正済みでしょう。
最初からNPEを発生させないkotlinは、
むしろバグ発生率よりコーディングスピードで優れているかもしれません。

915デフォルトの名無しさん2019/06/13(木) 20:40:07.05ID:RwojvEQB
その類の実証研究、大抵がJava対象だからKotlinだとどうなのかとかはまぁ分からんよね

916デフォルトの名無しさん2019/06/13(木) 21:07:39.94ID:bk4aKhUm
kotlinだとコードの行数が減るからjavaに比べて開発規模が小さかったと判断されてしまう

917デフォルトの名無しさん2019/06/13(木) 23:03:46.90ID:bcw2IMf7
>>913
仕様です。

918デフォルトの名無しさん2019/06/14(金) 14:45:14.16ID:g+H89gem
kotlinの言語仕様的にjavaよりバグり易そうな部分ってあるんかな?

919デフォルトの名無しさん2019/06/14(金) 16:59:32.14ID:3STsRhDl
>>918
it や this が思ったものと違うものを指していたとか。

920デフォルトの名無しさん2019/06/14(金) 18:14:32.08ID:g+H89gem
確かに。let 周りで失敗してたことあったわ。あの辺はちょっと複雑になっちゃってる感あるね。

921デフォルトの名無しさん2019/06/14(金) 18:28:44.08ID:LdOtrrUz
KotlinはTypeScript, Swift, C#あたりの典型的なモダンCファミリーの範囲を超えてオリジナリティを出してきた部分については途端に微妙になる印象
当然っちゃ当然なんだが、天才的なものは感じないね

922デフォルトの名無しさん2019/06/14(金) 20:01:34.38ID:pfb3ZKlS
Javaはエラーコードを強制される部分があって、プログラムの質の底上げがされてるんじゃないかな

923デフォルトの名無しさん2019/06/14(金) 20:09:15.99ID:HXW20L0t
エラーコードを強制って例外処理のこと?

924デフォルトの名無しさん2019/06/14(金) 20:23:59.56ID:Emc1ZmLq
なんかもう、わかんない人は無理に会話入ってこなくていいよ

925デフォルトの名無しさん2019/06/14(金) 20:32:30.84ID:HXW20L0t
たぶんJavaにあってKotlinに無いものは無い
強いて言えばKotlinは関数型を採り入れて言語仕様が複雑化しつつあるし
Javaとの混在が可能だからごちゃごちゃしやすい
人によって書き方が変わりやすい
あとGSONとの連携で問題が生じやすいとかあったはず

926デフォルトの名無しさん2019/06/14(金) 22:27:49.12ID:7NQ+qMUb
検査例外とラムダ式の相性の悪さは…

927デフォルトの名無しさん2019/06/14(金) 22:47:52.21ID:w6RR3Bwm
検査例外ちゃんは皆に嫌われてるから…

投げられた例外を捌けるかどうかは呼び出し元の都合や要件に依るからcatchを強制されるのは好かん
て雲のジュウザが言ってた

928デフォルトの名無しさん2019/06/14(金) 22:48:02.61ID:HXW20L0t
なんかQiitaにうまく書けるコードあったからちょっとカスタマイズして使ってる
https://qiita.com/q-ikawa/items/3f55089e9081e1a854bc

929デフォルトの名無しさん2019/06/15(土) 04:17:10.27ID:6gRe3JZA
マルチパラダイムな関数型言語はどう設計していくのが良いのか難しいと思う
OOPと関数型は根本的にミスマッチしてる

930デフォルトの名無しさん2019/06/15(土) 07:02:06.90ID:9mAlYVnq
ポインタさえなければ、バグの出やすさは誤差の範囲じゃないかな

931デフォルトの名無しさん2019/06/15(土) 07:54:39.96ID:pCdIqw4x
Android kotlinで言えばMVVM一択だろ
悩むほど選択肢はない

932デフォルトの名無しさん2019/06/15(土) 08:21:51.26ID:34xcDdoq
>>926
関数型とも相性が悪いが嫌わないで下さいませ

933デフォルトの名無しさん2019/06/15(土) 09:07:49.50ID:Ga3aXpPN
>>929
そうかな
イミュータブルオブジェクトと関数型は相性いいと思うけど

934デフォルトの名無しさん2019/06/15(土) 10:09:18.81ID:kA7AOVm/
OOPそのものじゃなくてクラスでデータと関数が密結合してるのがいまいちという話は感じる

935デフォルトの名無しさん2019/06/15(土) 10:29:34.05ID:XQanIMKl
本質的にはラムダ/クロージャでの束縛と変わらないと思うけどな

936デフォルトの名無しさん2019/06/15(土) 10:40:41.99ID:VIoLCw8z
>>909
有言実行な

937デフォルトの名無しさん2019/06/15(土) 11:15:34.03ID:jsVQo8Sw
>>934
やはりdata Classだな

938デフォルトの名無しさん2019/06/15(土) 11:31:49.90ID:Ga3aXpPN
これが f(g(immutableData))

こうなる immutableObject.g().f()

939デフォルトの名無しさん2019/06/16(日) 15:28:56.20ID:+bML8jLF
>>918
わからない。なさそうな気がするが、KotlinにはKotlinなりの何かハマり易そうな部分があるのだろうな。弱点というかなんというか。

940デフォルトの名無しさん2019/06/17(月) 09:40:35.09ID:IlEGRCQm
宮迫の闇営業の件で何をトチ狂ったか、宮迫が出演する番組のスポンサーが
JetBrainsだと勘違いして開発者達にお問い合わせメール送りまくってるの草。
JetBrainsと宮迫は関係ねーよw

941デフォルトの名無しさん2019/06/17(月) 12:39:31.98ID:WHxj8IY7
何の話か全くわからない。
かといって聞いても面白そうな話ではないので詳しく聞きたいとも思わない。

942デフォルトの名無しさん2019/06/17(月) 13:00:55.37ID:o6rhTPDa
向いてないから死ね

943デフォルトの名無しさん2019/06/17(月) 14:50:03.42ID:WHxj8IY7
向いてない?

944デフォルトの名無しさん2019/06/17(月) 15:42:34.39ID:hVMxT+V3
(芸能ゴシップに)向いてない

945デフォルトの名無しさん2019/06/17(月) 17:37:42.52ID:zJfN8BpE
そんなことで死んでたら、おばちゃん以外全滅やな

946デフォルトの名無しさん2019/06/17(月) 17:48:49.03ID:z41igY3s
JetBrainsがテレビCM出してるの想像したらワロタ
オカンが「あらDataGripもいいわねえ」とか言うのか

947デフォルトの名無しさん2019/06/18(火) 06:15:56.76ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。

948デフォルトの名無しさん2019/06/18(火) 17:12:38.49ID:yt+j24gZ
>>944
まあ芸能関係は全く注目してないからな。
しかしのめり込む人は思い切りのめり込むね。
芸能人批判するとか、なんで自分と関係ない他人の事にそんなに夢中になれるのか謎だ。

949デフォルトの名無しさん2019/06/18(火) 20:05:30.96ID:Yl81yVsm
EBライブラリってのをdownloadしてcompileしてみた。
http://www.mistys-internet.website/eb/

ドキドキしながらsamplesを動かすと、動いてるみたい。
このライブラリを使えばEPWING辞書データにアクセスする事ができる。
俺の場合、手元のジーニアス大辞典にアクセスできた。

こいつでAndroidアプリ、辞書Viewer作れば需要あるかな?
EPWINGだけでなく、辞郎形式のテキストにも対応しちゃう事にする。
Qiitaへ投稿されたMouse Dictionaryみたいなのを目指すけど、需要あるか、ちょいと心配。

950デフォルトの名無しさん2019/06/18(火) 22:59:28.72ID:dBLXUbfR
>>949
ジーニアスのアプリがほしいと思っていた時期が、私にもありました。
でも、今や単語を選択して右クリック(長押し)->webで検索で済むと気づいてからは、
なんということでしょう。それまで高まっていた物欲が嘘のように消え去りました。

951デフォルトの名無しさん2019/06/19(水) 04:49:57.44ID:tVNS+22r
【出資】松本卓朗 人工知能詐欺【注意】
http://2chb.net/r/rikei/1560859403/

952デフォルトの名無しさん2019/06/19(水) 06:23:38.19ID:l5Kajxps
EBライブラリ、ソースのtimestampが2010/01/03と随分古い。
動かすとテキストがeuc-jpで出て来た。

これは、辞書に依存するのか?それともEBライブラリの仕様か?

2010年ってまだ、UTF-8が普及する前なのか?
そういえばYahoo Japanのフロントページが以前はeuc-jpだった気がする。けど、何時だったか思い出せない。
多分、Ruby 1.9が出現したころだから、これも2010年辺りか?

iPhoneと共にutf-8が普及し出したから2007年にはutf-8は普及の兆しがあったはずだが。

953デフォルトの名無しさん2019/06/19(水) 06:58:47.54ID:l5Kajxps
>>950
ジーニアス大辞典、良いよねぇ。
citeを引くと、excite, reciteと語源が同じって出てくる。

やっぱり、EPWING辞典の需要って少なそう。

954デフォルトの名無しさん2019/06/19(水) 09:56:43.59ID:t5G+Fp+C
>>952
その頃にはUTF-8が覇権を握り始めてたけど、LinuxのデフォルトがEUCだった頃の名残はまだまだ濃かった
特に人の意識でEUCが標準って感覚の人がまだ多かったね

955デフォルトの名無しさん2019/06/19(水) 10:46:28.14ID:l5Kajxps
twitterを電子辞書をkeyに検索すると、デバイスのお絵かき機能を使った落書きが、大量にヒットする。

学生さんは、授業中、イラスト描いてるらしい。

けど、画風が皆、似通ってるのはなぜだ?アニメ世代ってのは、あんな絵が好きなのか?

956デフォルトの名無しさん2019/06/19(水) 19:31:58.26ID:l5Kajxps
EPWINGって何の略?
必死にググったけど、WINGの部分が良く解らん。

EP = Electronic Publishing
ってのはすぐ気がついたけど。
あとEPWINGの仕様で、データはEUC-JPで格納されてる様だ。

EBライブラリのREADMEはISO-2022-JPで書かれていた。
時代を感じる。まだ、10年も経ってないのに。

957デフォルトの名無しさん2019/06/19(水) 19:36:05.36ID:WYELJAwQ
>>955
アニメの絵にも流行りがあって時と共に変化していくんだよ。
昔の同時代のアニメを見るとそれはそれでなんとなく似ていたりする。

958デフォルトの名無しさん2019/06/20(木) 07:32:57.64ID:q2Ahu20H
UTF-8がWindows10にも普及しているのか?調べてみた。
2018年末最新のWindows10からUTF-8採用って事みたい。

ごく最近ッてことだ。おそろしい。きっと混乱はまだ続きそう。

959デフォルトの名無しさん2019/06/20(木) 08:51:24.08ID:sDpzaQfg
メモ帳でutf-8使うとBOMってのが付くのが憎悪しかない

960デフォルトの名無しさん2019/06/20(木) 09:27:00.55ID:6ruM3wzV
漢字コード周りは太古より混沌としてますなあ

961デフォルトの名無しさん2019/06/20(木) 10:34:16.29ID:q2Ahu20H
>>959
メモ帳の文字コード既定値がUTF-8に、Windows 10「May 2019 Update」

https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00723/042300004/

962デフォルトの名無しさん2019/06/20(木) 11:33:05.23ID:XGI0CaH0
MSはsjis系のテキストファイルと区別するためにUTF-8のテキストファイルにBOM付けたかったんだろうが、Unix系の人達の激しい抵抗に屈した形だな

963デフォルトの名無しさん2019/06/20(木) 13:09:58.71ID:YzAIhfm/
>>960
もはやWindowsだけが浮いてて他は統一されている

964デフォルトの名無しさん2019/06/20(木) 13:22:43.18ID:R3CNAp+/
困ってるのが日本人だけだとしたら酷いな

965デフォルトの名無しさん2019/06/20(木) 14:02:42.49ID:JwmP4tXt
>「BOM(バイト・オーダー・マーク)なしのUTF-8」が追加
>デフォルト設定でBOMなしのUTF-8を選択するようになった

もうBOM付かないんですか!やったーー!AA略

966デフォルトの名無しさん2019/06/20(木) 14:09:50.23ID:JwmP4tXt
ExcelがBOM無しCSVに未対応じゃないすか!やだーー!

967デフォルトの名無しさん2019/06/20(木) 15:39:54.52ID:q2Ahu20H
UTF-8のデメリットは、1文字が1 - 6byteの可変長であること。
例:a = 61, 1byte
😀 = F0 9F 98 80, 4byte

これ、文字列バイナリデータが与えられた時、文字数ってどうやって数えるんだ?

968デフォルトの名無しさん2019/06/20(木) 15:46:34.34ID:9IsAc6k5
UTF-8 のメリットは任意のバイト位置で
それが何バイト必要な文字なのかと
その文字中の何バイト目かが判ることなんだが

969デフォルトの名無しさん2019/06/20(木) 17:45:07.28ID:q2Ahu20H
>>968
そうなのか!知らんかった。
では、80と出てくるとその文字は4byte必要な文字の1バイト目だと判るのね?

970デフォルトの名無しさん2019/06/20(木) 18:58:22.29ID:JwmP4tXt
文字数という意味ではUTF-32でさえも可変長だよ
異体字セレクタとかあるから

971デフォルトの名無しさん2019/06/20(木) 20:08:50.04ID:+6KXUujL
>>967
1〜4バイトでは?

>>968
文字の最初の1バイト目かどうかがわかるだけでは?それがわかると全体で何バイトかわかるけどいきなり途中の1バイトだけ見たらそれが何バイト目かはわからんと思うのだが。

972デフォルトの名無しさん2019/06/20(木) 20:21:19.41ID:1cBvDRZL
名前がコトリンだからあなどられて、ばかにされそうだけど
そこんとこどうなの?

973デフォルトの名無しさん2019/06/20(木) 20:25:32.03ID:iAGTq6ne
Kotlinの気持ち悪さといったらない

974デフォルトの名無しさん2019/06/20(木) 22:46:04.16ID:1p12e0x8
本当はSwiftより先にあったらしいけどさ
なんか言語学習を混乱させるために出てきた「後発劣化Swift」みたいな感覚が抜けないな

975デフォルトの名無しさん2019/06/20(木) 23:02:51.30ID:JwmP4tXt
Swift1.2〜3.2くらいまでアプリ開発で使いつつ
MLでの言語仕様の議論追ったりしてたけどKotlinと比較してそんな印象は無いなぁ
むしろSwiftがSwiftユーザーを混乱させる勢いだったよ

976デフォルトの名無しさん2019/06/20(木) 23:39:22.66ID:LZeo8jFH
おまえらことりんの事バカにし過ぎ

977デフォルトの名無しさん2019/06/21(金) 00:11:32.79ID:B9wXa8Qq
バカにする者の居る国の沿岸に Kotlin class destroyer でも派遣してやりなさい。

978デフォルトの名無しさん2019/06/21(金) 00:19:44.86ID:oqDjX8us
inline classには期待してる

979デフォルトの名無しさん2019/06/21(金) 02:52:37.45ID:FirfeIPX
>>971
君は勉強が足りない

980デフォルトの名無しさん2019/06/21(金) 06:45:14.02ID:0S+ga2MW
>>971で合ってるよ
10FFFF上限で5バイト以降は廃止されたし
2-4バイトは後続バイトであることは分かっても文字中のバイト位置の逆算は不可

981デフォルトの名無しさん2019/06/21(金) 09:40:47.55ID:UUUS7pJl
>>979
君よりは足りているように思えるのだが。

982デフォルトの名無しさん2019/06/21(金) 12:14:23.93ID:4tmbpCdV
向いてないから死ね

983デフォルトの名無しさん2019/06/21(金) 12:36:06.78ID:A0zl/65r
喧嘩はおやめ、ABC

984デフォルトの名無しさん2019/06/21(金) 13:20:15.67ID:DPrh10DB
ネカマだけどアタシのために喧嘩を止めて

985デフォルトの名無しさん2019/06/21(金) 13:30:31.81ID:skxOC/OA
>>982
このレス、プログラム板のあちこちでみるけど何?
板にキチガイが常駐してるの?

986デフォルトの名無しさん2019/06/21(金) 16:41:40.80ID:A0zl/65r
デジタル人格は死んでも本体が生きていればいくらでも復活出来る

987デフォルトの名無しさん2019/06/22(土) 00:51:03.50ID:sUTyEXDJ
くだすれPython(超初心者用) その43【Ruby禁止】

Python スレのテンプレを勝手に改変して、荒らしてる奴。
「Ruby 死ね」とか、いつも書いてる

Ruby, jQuery, Lodash, ライブラリの話は禁止とか、
テンプレを勝手に改変して、多くのスレを建てる荒らし!

荒らしの特徴は、いつも30分以内に、2回書き込んで自演する。
複数人いるように、見せかけるのが特徴

988デフォルトの名無しさん2019/06/22(土) 04:18:14.63ID:zj+KJbMh
( ´_ゝ`)フーン

989デフォルトの名無しさん2019/06/22(土) 10:05:28.96ID:fiI8bn9U
次スレよろ

990デフォルトの名無しさん2019/06/22(土) 16:01:21.64ID:zj+KJbMh

991デフォルトの名無しさん2019/06/22(土) 19:29:56.53ID:jXJvmGnc
>>990
次スレ乙

992デフォルトの名無しさん2019/06/23(日) 06:23:13.99ID:R2rggQxM

993デフォルトの名無しさん2019/06/23(日) 17:43:28.65ID:rsKqqEB5

994デフォルトの名無しさん2019/06/23(日) 19:46:17.29ID:N5Qb8UIm

995デフォルトの名無しさん2019/06/23(日) 22:16:19.27ID:vZOM6xmC
お前ら向いてないよ

996デフォルトの名無しさん2019/06/23(日) 22:31:20.40ID:6JO2kpc/
なんだと

997デフォルトの名無しさん2019/06/24(月) 06:19:00.21ID:ghfSvaJN
>>996
落ち着け。>>982の真似に過ぎない。

998デフォルトの名無しさん2019/06/24(月) 09:52:00.23ID:nG4gLzh9
998

999デフォルトの名無しさん2019/06/24(月) 12:50:53.78ID:6xXOOyfa
1000は君に譲ろう。さあ、書きなさい。

1000デフォルトの名無しさん2019/06/24(月) 12:52:49.34ID:NW8XqAfb
1000なら令和最初の関東大震災

mmp2
lud20190719220659ca
このスレへの固定リンク: http://5chb.net/r/tech/1544268581/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Kotlin 5 YouTube動画>2本 ->画像>7枚 」を見た人も見ています:
次世代言語15 Go Rust Swift Kotlin TypeScript
次世代言語15 Go Rust Bosque Kotlin TypeScript
Kotlin 2
Kotlin 3
Kotlin 6
Kotlin 4
Dart これ以上変な言語を増やすんじゃねえ! Kotlin
次世代言語Part8[Haskell Rust Kotlin TypeScript]
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
次世代言語13 Go Rust Swift Kotlin TypeScript
次世代言語17 Go Rust Kotlin TypeScript Julia
次世代言語14 Go Rust Swift Kotlin TypeScript
次世代言語議論スレ[Rust Kotlin Haskell]第6世代
次世代言語12 Go Rust Swift Kotlin TypeScript
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
次世代言語18 Go Rust Elixir Kotlin TypeScript
【IT】Kotlin 1.2正式版リリース。KotlinはJavaとJavaScriptのマルチプラットフォーム対応に
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
Kotlin
Kotlin 7
Kotlin初心者質問スレ
ScalaにできてKotlinにできないこと
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止]
kotlin勉強してandroidアプリ作りたいんだけど
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
次世代言語28 TypeScript Swift Go Kotlin Rust Nim
【IT】Kotlinで開発された初のAndroid向け不正アプリが発見
2018年に急成長したプログラミング言語は「Kotlin」「TypeScript」「HCL」
【悲報】 Androidプログラマ、Javaを捨てKotlinに大量移行 さらに遅いアプリで溢れかえる事態に
【プログラミング】Kotlinから直接ネイティブコードを生成する「Kotlin/Native」ベータに到達
もうすぐ小学校でプログラミングの授業が始まるけどさ、小学生がRustとかKotlinを理解できると思うか? 私は無駄だと思うよマジで
【IT】Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
Kotlin 8 (234)
【IT】6月プログラミング言語人気ランキング、Kotlinが急増の傾向 [無断転載禁止]
【IT】Google、KotlinをAndroidアプリ開発言語に選定 [無断転載禁止]
【IT】グーグル、プログラミング経験不要で「Android」「Kotlin」を学べる無償コース提供 [田杉山脈★]
プログラミング言語別 平均年収ランキング 1位 Scala 2位 Python 3位 Kotlin 4位 Swift [無断転載禁止]
Hotline Miami Part5
大航海時代Online〜Gran Atlas〜766海里
【Kotlin】Compose Multiplatform 1 (39)
Hotline Miami Part4
【帰ってきた】Hotline15【大井町倉庫】
Every Little Thing
marvel battle lines
BREITLING SUPER OCEAN
真夏の夜の淫夢.gachimuchi pants wrestling
【ZOOT】 インターリンク INTERLINK part14
【 新生】 Dorothy little happy 【 ドロシー 】
おまえらEveryLittleThingで好きな曲あげろ
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part265
フラットライナーズ FLATLINERS
【KOF】THE KING OF FIGHTERS 98 ULTIMATE MATCH Online part215
【◆BREITLING ブライトリング 総合76◆】
【L2R】リネージュ2 レボリューション / Lineage2 Revolution Part 45
【◆BREITLING ブライトリング 総合78◆】
"Please licking ass" などとアメリカ人が言うのだろうか?
BREITLING  ブライトリング   総合67
【◆BREITLING ブライトリング 総合77◆】
【◆BREITLING ブライトリング 総合78◆】
【◆BREITLING ブライトリング 総合79◆】
07:32:00 up 26 days, 17:56, 0 users, load average: 7.55, 7.27, 8.50

in 0.027304887771606 sec @0.027304887771606@0b7 on 010721