Kotlin 8

レス数: 289

概要: JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう ※前スレ Kotlin 7 https://mevius.5ch.net/test/read.cgi/tech/1588748438/
No.1
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
Kotlin 7
https://mevius.5ch.net/test/read.cgi/tech/1588748438/
No.5
println("乙")
No.6
今年もよろしく
No.7
androidのフレームワークって難しいんですかね?
やさしいKotlin入門を読んでたら、Kotlinとフレームワークを一度に習得することは至難の業って書いてあった
No.8
>>7

UI操作だけならData binding使うから、別にC#使ったことあるなら普通に組める。
それ以外も基本的にはJSとかより簡単だと思うよ。
面倒なのはファイルアクセス系など、パーミッション必要な類。
No.9
>>8

androidフレームワークと全く関係ない話してどうするの?
>>7

androidフレームワークは、ActivityとViewのライフサイクルの関係がややこしいくらい
AndroidX に関しては公式ドキュメントが常に最新で優秀だからそこ見れば解決する
Kotlin自体もスコープ関数や非同期処理が他言語と違うくらいかな
No.10
>>8

>>9

ありがとうございます
ボチボチやっていきます
Kotlin、なんかシンプルで直感的でいいですね
when の -> とか矢印にしか見えない w
No.11
前スレ
>>992

毎年乙です。
No.12
Kotlinはあまり浸透しないうちに下降局面に入ったよな
No.13
paizaラーニング、1チャプター5分くらいで見られるから空き時間に見るのにすごくいいんだけど、Kotlin編チャプター17までしか無いんだよね
Javaは充実してるのに…
No.14
>>12

最近はwasmでGC無し言語が再び脚光を浴びてきちゃったからしょうがない
No.15
kotlin nativeって一応defer があるのな
中身はfinally {[呼び出し関数]}をやってるだけだけど
No.17
造りたい桁数によるけど
とりあえず逆変換というか
ブルートフォース観たいに(ブラウザじゃなくてローカルなプログラムで)沢山生成して
その中に希望のものがあればそれのキーを遣えば簡単に実現出来る
No.18
Kotlin ってGo とTypeScript の中間って感じだね
Goはコンパイル最速で、
TypeScriptはJavaScript互換でフロント最強、
対してKotlinはコンパイルが速いわけでもなく、Java の遺産を使えるくらいしか取り柄がない、フロントもモバイル開発はともかく、デスクトップアプリやウェブサイトでTypeScript を差し置いて選択する理由が無い
よってモバイル開発を超えて普及する見込みなし
No.19
プログラムは完成しても多機種の検証が個人的に無理かな?と思い始めた
エミュレータがあるけどかなり時間を取られそうだし、他人に頼むとお金がかかる…
適当にリリースしてバグが出たら、低評価を付けられてバージョンアップするモチベーションを完全に無くしてしまいそう…
趣味に毛が生えた程度の技術を身に付けたいなら、windowsフリーソフト開発とかの方がいいでしょうか?
No.21
>>19

特殊デバイス使うんじゃなければ機種なんて考えなくていいよ
対応SDKの一番古い奴と一番新しい奴で動けば大抵なんとかなる
androidstudioが警告してくれるし
そして技術っても広すぎるから
何か漠然とでもやりたいことが浮かんでるならそれをやれる環境を学べばいい
No.22
使ってもらって低評価つけられるならまだ良いほうだよ
嫌いは好きに変換できるからね
使ってすらもらえない無関心を好きに変換させるほうが難しい
No.23
>>21

>>22

そうですか
翻訳アプリを作りたいんですよね
自分が使いたいと思うような。
もう少し勉強を続けてみます
No.24
>>16

総当たりで探しただけでは?
「5ch トリップ 検索」でググるとそういうサイトがいくつか出てくるぞ。
No.25
>>12

俺たちが使いまくって大流行させればいいじゃないか
No.26
Kotlin が優れてるところの一つにGradle システムを使えることだと勝手に思ってる
No.27
>>16

トリッパー使ったんじゃない?
No.28
JetBrainsってIntelliJ捨ててFleetっていうVS Codeのパクリに移行するつもりなんだろうか。
Fleetと心中するJetBrainsに巻きこまれてKotlinが沈没する未来しか見えない…
No.29
実際のコードでも、変数の型ってきちんと宣言する必要があるの?
特に数値が、byte型、short型、Int型、Long型、Float型、Double型とか面倒なんだけど…
JavaScriptでは変数の型なんて宣言したこと無い…
No.30
>>28

FleetってJetbrainsのSpaceありきでしょ
ローカルコーディングなら今までどおりIntelliJ IDEAでいい
No.31
>>29

数値型は大抵は宣言せずに事足りる
intかfloatだけで十分
宣言するのは引数かNullableのときぐらい
No.32
>>31

ありがとうございます
またkotlinの勉強再開しようかな?
No.33
>>30

オープンソースとはいえJetbrainsが「これからはFleetで行くからIntelliJの開発には参加しません」とか
言い出したらそうも言ってはいられない。
No.34
>>33

No.35
Fleet だろうがなんだろうが Kotlin が使えるならそれで良い。
IDE が IntelliJ IDEA でなければならないなんてことはない。
No.36
>>33

どゆこと?リモート開発プラットフォームのspaceってそんなに普及してるの?
No.37
Google Playストアの評価が機種別になって、アプリのリリースがしやすくなったと見ていいんでしょうか?
昔の方式で星2つとかだとアップデートするモチベーションが無くなってしまうと思うのですが…
No.38
>>37

なんの話か知らんけどスレ違いでは?
No.39
>>37

プログラマ板か泥板だな
ここはプログラム板だからスレチ
No.41
>>40

ありがとう
No.42
モチベなくなるとかいう舐めたやつがム板にいるの草
まずモチベあげてこいや
No.43
>>28

Fleetって有料ライセンスのみ販売予定じゃかったっけ?
無料ライセンスの予定もあるん?
No.44
Kotlinでデスクトップアプリ作ろうと思ったら何が良いですか
No.45
>>43

クソどうでもいいからこれ以上伸ばすなつまらん
No.46
結局kotlinはこの程度の民度にしかならんね
オワリオワリ
No.47
はい
No.48
>>36

後援企業のJetBrainsが苦しくなればKotlinとそのエコシステムの進化も停滞するだろうなという話。
>>35

実際の所IntelliJ以外でKotlin書いている人ってどれくらいいるんだろう。
No.49
>>48

fleetとintellijの話をしてるんだけど、jetbrainsが苦しいやらkotlinやらの話はしてない
spaceをより連携しやすく設計したのがfleetであって明確にintellijと差別化された商品だと思うんだが、なんでintellijが廃れる話になるのか
リモート開発プラットフォームのspaceが普及するならfleetは必須ツールになるとは思う
「後援企業のJetBrainsが苦しくなれば」はなんの話をしてるのか意味不明だから再度返答求む
こっちはわからないから聞いてるの
No.50
そもそもfleetは今のところ正式リリース後のライセンスは有料のみだから、spaceで開発しないなら使うことのない代物だろうに
No.51
こいつ多分まういっていう荒らしだから相手にしなくてよし
>>48
No.52
>>49

下の方に Free のライセンスも書いてあるよ。検討中だから変わる可能性はあるが。
No.54
>>52

お、ええやん
No.55
>>49

いや、だから
>>28
でFleetとJetBrainsが心中する予測を元にしていると述べているので、
勝手に話を変えた挙げ句に意味不明とか言い出されても。
>>52

IntelliJはCommunity Editionは商用利用可だけど、FleetのFree版は商用不可。
無償版に人が流れて有償版が伸び悩むIntelliJから収益性の高そうなFleetに
ユーザーを移行させようとしても不思議じゃないように思う。
>>49
はFleetはIntelliJの代替にはなり得ないという立場でいい?
No.56
kotlin1.8用のcompose compiler1.4がいつの間にか来てた
これでjava8と完全におさらばだ
No.57
>>44

Kotlin Native微妙だし、普通にMAUIとか使った方がいいと思う。
C#なんてほぼKotlinみたいなもんだし。
No.58
>>57

マウイ来んなやクソが
なんでわざわざ過疎スレにアンチして🕊しにくるのか理解できない
No.59
>>58

何言ってんのかよくわからんが、普段はKotlinメインで使ってるけど、デスクトップ向けではないな、って話やろ。
態々、Kotlinで組むなら止める程度にはKotlin使ってるし。
No.60
Kotlinで作ることを前提にお題を求めてるのにC#で開発させようとするの草
No.61
Compose for desktop はどうなんすか
No.63
>>61

宣言的UIはカスだからC#で開発したほうがいい
No.64
>>44

JetBrainsはFleetエディタの開発にこれ使ってる
https://github.com/JetBrains/skiko

サポートプラットフォーム
Kotlin/JVM on Linux(x86_64 and arm64)
Kotlin/JVM on Windows(x86_64)
Kotlin/JVM on macOS(x86_64 and arm64)
Kotlin/JVM on Android(x86_64 and arm64), starting with API version 24
Kotlin/JS + WebAssembly in browsers
Kotlin/Native on iOS(arm64 and x64)
Kotlin/Native on macOS (arm64 and x64)
ちゃんと自分の製品の開発に使っててえらい
No.65
マイクロソフトのXamarinとは違うんですねえ
No.67
今は1.8
1.9の次に2.0だから安定版はまだまだ後かと思うけど
No.68
>>66

JVMとかJSのバックエンド部分は既にK2コンパイラに置き換え済みだぜ?Nativeはベース自体がK2コンパイラだし
https://blog.jetbrains.com/kotlin/2021/10/the-road-to-the-k2-compiler/

逆にフロントエンドとしてのK2コンパイラってのがよくわからん
記事を見る限りIDEと密に連携する部分っぽいけど
No.69
it.nameやit::name
のnameの部分を文字列結合して
アドレス参照って可能でしょうか
やっぱ全部手打ちのマンパワーですかね・・・
No.70
>>69

正攻法としてはリフレクションを使うことになるんだろうけど、数が少ないなら手打ちの方が楽かな。
annotationで何とかできるのかもしれないけど、そこまでしたことがないので分からない。
メタプログラミング的には、gradleにソースコード書き換えのスクリプトを仕込むとか。
No.71
>>69

君が何をやりたいのかいまいちわからない
No.72
ありがとうございます
検索単語の検討つかなかったので助かります
No.73
Kotlin のコンパイラとか IDEA って一応オープンソースだけど、
コメント無さすぎじゃない?
意図的に削除してるわけではなく、こういう開発スタイルなだけ?
No.74
IT先進国ではソースコードから意味が読み取れるようになってる
コメントを書かないといけないということはソースコードが糞ということ
No.75
大昔ガチでそれ主張してる有名なプログラマがいた気がするな
No.76
それで結局キーワードが長くなり記号が減りまるで英文のようになるとすると、俺にとってそれはクソとなるのではないかと思う。
No.77
そんなことにはなれへんで。往生しまっせ~
No.78
コメントがなぜ必要かというと要はサマリーが欲しいからなんだよ
よみゃわかる、とかいわれてもいちいち全部読んでたら時間のムダ以外の何ものでもない
30分のYoutube動画のURLだけ提示して「見れば全部説明してある」とかいわれても困るわけ
動画の内容は何で、これを見ると何がわかるのか、要点はなにか、それ書けということ
読む人の時間を節約するために、効率を上げるために的確なコメントがあるってのがわからん
脳タリンの言いそうな言葉が、「コードですべて説明できている」
No.79
そんなのはソースコードの外側に書けば良いこと
No.80
ぶっちゃけ詳細な情報はAIで生成する時代が来る
プログラマーが書くのはクラスやファイルに対して1行ぐらいの概要で良くなる
No.81
やがて人の欲しがりそうなことを予測して先に作ったり実行したりするようになる。
No.82
そして人間は栽培されるようになる。
No.83
youtubeのサマリーは概要欄や説明文のところに書いてある
No.84
Int?をIntでオーバーライドできるようですが逆は多分不可能ですよね?
検索してもなかなか情報が無いので
No.85
nullを表現できる型よりも出来ない型の方が表現できる状態が一つ少ないんだから override できて当然だと思うが。
No.86
漠∞!!!!
及∞!!!!!
斗∞!!!!!!
語∞!!!!!!!
原∞!!!!!!!!
芋∞!!!!!!!!!
表∞!!!!!!!!!!
牛∞!!!!!!!!!!!
No.87
Kotlin 1.9.0
No.88
以下の2つのfilterって全く同じ処理ですか?
速度はほぼ同じようですしサイズも同じですし
fun main(){
val l = (1..1000000).toList()
val s = System.currentTimeMillis()
val m = l.filter { it in 3..500000 }
val s2 = System.currentTimeMillis()
val n = l.filter { it >= 3 && it <= 500000 }
val s3 = System.currentTimeMillis()
println(s2-s)
println(s3-s2)
println(m.size)
println(n.size)
}
No.89
>>88

ほぼ同じになるのではないかな。 it in 3..500000 は IntRange(3, 500000).contains(it) って書いたのと同じだし。
contains() メソッドのソースを見るとこう書いてある。
override fun contains(value: Int): Boolean = first <= value && value <= last
ただ、最適化されなかった場合は IntRange クラスのインスタンスを毎回作ることになるのでその分だけメモリ確保(及び不要になった時の解放)を毎回することになってそれが無駄になる。なので最終的なコードが同じになるかどうかはコンパイラ次第になる。
No.90
そう言えば実行環境が JVM だと HotSpot とかの実行時最適化がされるのでコードが少々違っても大差ない速度になる可能性がある。
No.91
負の値に対して mod() 使った時と % 使った時で結果が違う。
(-7) % 3 は結果が -1
(-7).mod(3) は結果が 2
ソースを追ってみたら Int.mod() は kotlin/libraries/stdlib/src/kotlin/util/FloorDivMod.kt にある拡張関数が使われていた。
数学のルールとしては余りは0以上でなければいけないことになっているので結果が 2 の方が正しい。
その代わりその場合は割り算の結果が -3 で出る必要があるが、それは Int.floorDiv() を使うと計算できるようになっていた。( / 記号を使うと -2 になる)。
これ Kotlin 1.5 からのようだが(多分リリースノート等に書かれていることだろうが)、今まで気が付かなかった。
No.92
他の言語でも当たり前やん。
No.93
IntelliJ IDEA がAIに繋がるようになったそうだな。
やはりそのうち「アレやっといて」とか言うだけで全部やってくれるようになるんだろうな。
No.94
AI化で、JSONとクラスの変換やORMの自動生成とかを一言だけでやってくれるようになると助かる。
No.95
AIが書いてくれた部分は色分けしてほしいな
No.96
Int?をIntでオーバーライドできるって書いてあるけどオーバーロードじゃないの
全然意味が変わってくると思うんだが
No.97
文脈によるとしか…
No.98
Coroutinesを勉強しようと思ってるんですが
error: unresolved reference: kotlinx
他エラー多数
dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
}
このような依存関係を追加すれば動きそうですが
kotlinc c001.kt
kotlin C001Kt
などとやって動かす方法は無いのでしょうか
Coroutinesはandroid専用なのですか?
c001.kt
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello")
}
No.100
英語読めない人は色々と向いてないよ
No.101
>>98

chatGPTにその質問をまるままコピペして質問してみたよ
https://i.imgur.com/BhfnYa7.jpg

chatGPTの答えで意味通じてる?
Kotlinはよく知らないからわからないけど、JavaScriptではすごく貢献してくれている
No.102
>>101

残念だけど98が知らなけばいけない一番重要な情報が抜けてるから
>>99
を見なきゃ駄目だな
No.103
>>102

そうなんだ
chatGPTは人間とのチャットみたいに、ここから掘り下げて質問できることが特徴だから、まず
>>98
をコピペしてchatGPTが答えたら、そこから疑問点を次々と納得できるまで入力してみるといいよ
No.104
>>103

いま
>>98
を質問してみると、kotlinx-coroutines-coreを使う方法出てくるからだれかが質問して少し賢くなったのかな
でも実行のやりかたがgradle使う方法とkotlinc使う方法がごっちゃになっててダメダメ
gradleを使って上記を実行する方法を教えてくださいと質問すると、gradleラッパーを作らないと実行できない方法を回答してきてダメダメ
gradleラッパーを作る方法教えてくださいと質問してようやく実行のための手順を全部教えて貰える感じ
初心者がここまで追加の問いをできるとは思えんが
No.105
kotlinc -classpath /home/hoge/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.6.4/2c997cd1c0ef33f3e751d3831929aeff1390cb30/kotlinx-coroutines-core-jvm-1.6.4.jar c001.kt -include-runtime -d c001.jar
コンパイルは出来ましたが
Exception in thread "main" java.lang.NoClassDefFoundError: kotlinx/coroutines/GlobalScope
at C001Kt.main(c001.kt:4)
at C001Kt.main(c001.kt)
Caused by: java.lang.ClassNotFoundException: kotlinx.coroutines.GlobalScope
...
chatgptに聞いたりググったりして
gradle init --dsl kotlin
2 enter 4 enter ...
などとしてみてapp/build.gradle.ktsのdependenciesに
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
を書いて./gradlew runしてみましたが
> Task :app:compileKotlin
w: file:///hoge/kt/c001/app/src/main/kotlin/c001/App.kt:4:5 This is a delicate API and its use requires care. Make sure you fully read and understand documentation of the declaration that is marked as a delicate API.
そもそもkotlinx.coroutines.*とkotlin.coroutines.*があるようですが
コンソールアプリで使えるのは後者なのでしょうか
もしそうだとすると上のサンプルコード自体コンソールでは使えないかもしれません
色々試してみていますがまだうまく動かせていません
初心者すぎてすいません
No.106
chatgptに聞くだけじゃなくて公式ドキュメントも読めよな
No.107
>>105

まず、
>>99
は試したの?
99の手順通りにやって、どこでうまくいってないかを書いてくれ。
No.109
>>108

この流れでいまだにkotlinx-coroutines-android
だしてくるのはなんなの
混乱させたいの?
No.110
公式サイト程度の簡単英語すら読めないってヤバイよ
No.111
この頃は自動翻訳しても結構読める日本語になるので、面倒な時は翻訳している。
ブラウザに自動翻訳のボタン付いてて楽だし。
No.112
多分
>>105
のkotlinc使ってコンパイル成功したやつで実行出来るとおもうんだけど、
コンパイル時に使ったjarの場所を実行時にも指定する必要があるはず
No.113
gradle使う場合(ここでは7.2使用)はgradle init --dsl kotlinして、質問にはこんな感じに答えて
2: application
4: Kotlin
1: no - only one application project
それで作ったプロジェクトでApp.ktを
>>98
のc001.ktのコードに置き換えて、
app/build.gradle.ktsのdependenciesにimplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0")を追加して、
./gradlew runで実行できたよ
./gradlew buildするとAppTest.ktがApp.ktと合ってないのでエラーになるからappHasAGreeting()の中身を空にしとくといい
No.114
113さんの方法で実行できました。バージョンは最初1.5.0でコンパイルしましたが最新の1.7.3でも動きました
これで勉強できます。ありがとう!
No.115
androidアプリでデータ保存するとしたら今はroomになると思うのですが
room + koin + coroutine
room + coroutine flow
room + livedata
room + rxjava3
など色々な技術がありますがこれが最新ってのはどれなんでしょうか?オススメの組み合わせはありますか?
No.116
room hilt coroutine flow viewModel, Jetpack compose
No.117
>>115

これ前に久々にアプリ作る時に自分で調べたらめっちゃ大変だったけど、
>>116
みたいな人神だわ。
No.118
以下のbyはどういう文法なのでしょうか
val navBackStackEntry by navController.currentBackStackEntryAsState()
クラスとプロパティの委譲のbyとはまた別物ですよね?
No.119
プロパティ移譲じゃない?
No.120
>>119

ありがとうございます
前後の文脈も示すべきでした
ttps://developer.android.com/jetpack/compose/navigation?hl=ja
ここにあるコードの抜粋
val navController = rememberNavController()
Scaffold(
bottomBar = {
BottomNavigation {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navBackStackEntry?.destination
...
この使われかたはプロパティじゃないと思うのですがどうでしょうか
No.122
>>121
ありがとうございます
検索してもインターネットには情報が少ないですね
エラーメッセージを頼りにちいさいサンプルを書いてみましたが、
error: unresolved reference: test
このエラーが消せませんでした
委譲ならtestが呼べると思ったのですが
import kotlin.reflect.KProperty
public interface A{
fun test() : Unit
operator fun getValue(b : Nothing?, c:KProperty<*>) : String
}
public val impl = object : A{
override fun test() = println("hello world")
override fun getValue(b: Nothing?, c: KProperty<*>) = "str"
}
fun main(){
val da by impl
da.test()
}
No.123
>>122

移譲の形式でval da by implとした場合、da.test()はdaのgetValue(....)した結果をレシーバとしてtest()メソッドを呼ぶという意味になるよね?つまり"str".test()という意味になってエラーになるだろう
移譲でないval da = implとすればda.test()は呼べるはず
No.124
>>123

ありがとうございます。一人では絶対にわからなかったと思います
getValueにはそういう意味があるのですね
以下のように書き換えてhello worldが表示できました
import kotlin.reflect.KProperty
public interface A{
fun test() : Unit
operator fun getValue(b : Nothing?, c:KProperty<*>) : A
}
public val impl = object : A{
override fun test() = println("hello world")
override fun getValue(b: Nothing?, c: KProperty<*>) = this
}
fun main(){
val da by impl
da.test()
}
No.126
javaのが上なのか
Kotlinに移行した開発者は増えてると思うんだがそこまででもないのか?
最近検索にひっかかるドキュメントはjavaよりKotlinのほうが多い印象
No.127
Android 向けアプリの開発では結構使われているのではないかな。知らんけど。
Java の場合は20年以上前から色々な事に使われてきてプログラマも多いし本も多いから上なのは当然の事。
というかそもそも Kotlin は JavaVM で動くやつが最初に出て Java のライブラリ使って動くことが前提なのでまだまだ Java なしではいられない状態。
No.128
androidはbuild.gradleもGroovyからKotlin(build.gradle.kts)に置き換えられるようになったし
かなりKotlin推しって感じ
俺はjavaから乗り換えた。Kotlinは書いていて割と楽しい方だと思う
そして名前がかわいいという最強のメリット
No.129
var書いて変数名の後にコロン書いてまた変数型
の一手間を惜しまない人にはオススメ
No.130
型の指定は省略出来ることが多いが、それで可読性が下ることもあるかな。
No.131
確かにできるだけ型注釈はほしいな
Haskellなんかは型を明示してないとわけわからなくなったり
型注釈によってプログラムの動作が変わるまである
型注釈でプログラムの動作(全解探索か最初の解探索か)が変わるコードを始めてみたときは感動した
No.132
varとvalの使い分けに価値があるんだから手間とは感じないなあ
コーディング量トータルで見たら誤差すぎる
JavaScript系でletとconst書くのが面倒とか聞いたことないし
No.133
まだ使い始めて4ヶ月ぐらいだけど
徹底してnullセーフティを追求する言語仕様のよさがやっとわかりはじめた
基本!!は使っちゃダメなのだよね?
No.134
自分で新たに作る Kotlin プログラムでは !! を使うように書く必要性がないのでは?
No.135
importと利用できる名前が
リンク出来ないのが個人的に見づらい
Pythonみたく
import numpy as np
np.array()
が見やすく名前の衝突もなくいいなぁ
No.136
>>135

できるみたいだけど
https://codelabsjp.net/kotlin-practice-renameimport/

>【Kotlin練習問題】importの名前を変更する
>クラスや関数をimportする際、import文の後にas 新しい名前と書き加えることで
>別の名前を指定することができます。別のライブラリからの似たような名前の
>クラスや関数を複数個使いたい時など、混乱を避けるのに便利です。
No.137
asは知らなかったなー便利だな
Kotlinすぐバージョンがあがるから、知らない機能がたくさんある
先日もこんなちょっとクスっとする機能を知った
fun main(){
println(1_000_000) //3桁ごとにアンダーバーで区切った数値が使える
println(3_000L) //Long型
}
No.138
クスッとするってそれもうJavaにすら導入されてるよ
しかも12年前のバージョンだ
No.139
12年前と書いたのはアンダースコアのほうね
100Lみたいな書き方ならJavaが生まれる前の古典
No.140
それはすまなかった
android-studioが重くてKotlinとおさらばしなければいけなくなったのだが
その前にJavaFXでGUIアプリでも作ってみようと思う
No.141
コマンドラインでコンパイルしたり他のIDE使うとかすれば重いのはなんとかなる
ゲーミングPCみたいに無茶苦茶速いPCにしても良い
No.142
ちょいと宣伝。
更新が止まってたリファレンスの和訳を引き取って、ツアーを一通り和訳しました。
https://karino2.github.io/kotlin-web-site-ja/docs/kotlin-tour-welcome.html

個人的に教えるのに使うために和訳したので需要があるかはわからんけど、一応お知らせ。
No.143
>>142

乙乙乙
No.144
>>142

翻訳すごいな
いつかはKotlinに。
No.145
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。
意外と自分の知らない新機能が入ってたりして勉強になるw
当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
No.146
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。
意外と自分の知らない新機能が入ってたりして勉強になるw
当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
No.147
本家が結構アップデートされてるので既存の和訳を更新したり新しく足されたのは和訳したりもしてるよ。
意外と自分の知らない新機能が入ってたりして勉強になるw
当たり前だけど本家のリファレンスはよく書けてるね。
他の言語の知識が相当あるのを前提にしてるので、教えるのに使うなら副読本とか作らないとダメそうだが…
No.148
なんかchmateがずっとくるくる回ってるので放っておいたらめっちゃ投稿された…
No.149
Android Studioでラムダ式の波括弧の色を変えたらコードが読みやすくなるね
No.151
Kotlin 1.9.20
No.152
>>150

11月データに更新されてたけど、
Kotlinが先月18位から今月15位に上がってんね
Androidアプリ用途だけじゃなくてサーバー用途のJava-to-Kotlinの置き換えが進んでるってことなのかな
2,3ヶ月後にはGo-langの順位を抜きそう
No.153
O'Reilly の Kotlin Cookbook の日本語版が出て欲しいところ。
No.154
今更だけどアセンブリ言語がこんな高くなるのは
どういうポイント付けしてるんだろ
No.155
Qiitaのアドヴェントカレンダー、Kotlin過疎すぎだろ…
No.156
>>155

まあ、SpringBootに関する記事がなにかしら上がるっしょ
No.157
そういやC言語ってまだ大人気なんだな。Python が人気なのはわかるが。
MATLAB という言語は知らなかった。
No.158
>>152
,154
2,3ヶ月後に逆転したら謎だらけ
kotlin programming
約 46,300,000 件 (0.30 秒)
go language programming
約 1,040,000,000 件 (0.44 秒)
No.159
こんなことになってるのか
rust language programming
約 21,600,000 件 (0.42 秒)
https://i.imgur.com/TNA5Ee4.png
No.160
>>157

MATLABは工業系で計測機器の動作管理によく使うからね
今後も順位をキープしてずっと居座り続けるだろうよ
No.161
>>156

kotlinで新しくサーバーやるならSpringBootよりktorだろうけど、kotlinでSpringBootやる人しか見ないの笑う、まあいいんだけどさ
No.162
>>161

どこらへんが笑いどころなのか、よくわからないので教えてほしい。
No.163
今時SpringBootなんて書いてるやつはいないだろう
No.164
spring boot、どのあたりがダメだった?
No.165
SpringBootはアノテーションつけてなんやかんやできるの便利だと思う
No.166
あけましておめでとうございます
ことりんもよろしくおねがいします
No.167
200gくらいでPSPやGBAを遊ぶのに最適な機種は何ですか?
元がブラウン管のゲーム機は、RGB30の画面比率で満足しています
Powkiddy X55は293gでちょっと個人的に重いです
重くてあまりゲームをやらなくなると思います
Switch liteがそうだったので
No.168
誤爆しました…
No.169
へー。Linux で動いてる携帯ゲーム機なんてあったんだ。知らなかった。
No.170
Amazonで「ポータブルゲーム機 linux」で検索すると沢山出てくるな。こんなにあったとは。
No.171
Spring bootはアノテーションのつけ方が今一つ
どうせなら main 文とか import 文とか全部省略できるようにやってくれればいいのに
あと使っているうちに動かなくなるところとか
結局、tymeleef、html,JavaScript と共存することになるので
コードが複雑になる
No.172
mainはわかるけどimport省略って、いったい……?
アノテーション使わずに、パッケージ名やクラス名、メソッド名でどうにかするとか?
No.173
Spring Bootの役割を完全に誤解しているな
LombokやBetter Javaではなくエンタープライズアプリの開発フレームワークや
No.174
アノテーションといえば製品によるだろうけど自作アノテーションでコンパイル時にコード生成させる方法を学んで組み込んだら格段に開発効率が上がった経験あるわ
No.175
そのコード生成がされるまではJavaのコードとして一時的に不正になるのか、生成前でもJavaとしてコンパイルが通るソースとして成立するのかには隔たりがある
前者はLombokやKotlinのようにコーディング量が劇的に減って便利だとしてもIDEなどのツールにサポートされるまでは使えるツールが制限され普及の障壁になる
Spring Bootがimport分やmainの記載を省くような文法変更を加える大げさな仕組みだった場合はここまでの普及はなかった
No.176
>>175

寝てないの?
No.177
kapt使い慣れると、ちょっとしたことがコード生成でできるようになるから、めちゃくちゃ便利になるよね。
No.178
kotlin.collections.MutableMap のドキュメントを見てもソースを見ても computeIfAbsent() メソッドはないのになぜか使えるね。
No.179
kotlinx.coroutines1.8.0きたああ!
No.180
なんか良くなる?
No.181
これでKotlinが5位になっていたことに、たった今気付いた。
将来性の高いプログラミング言語とは?タイプ別ランキングTop10
https://www.sejuku.net/blog/124758
No.184
たぶん、Groovy の本は日本で、ここ10年で1冊も出ていない
文法は、Ruby と似ているから、
Ruby on Rails をやれば、おおよそ分かる
No.185
GroovyなんてJavaのビルド構成触るときにしか書いたことないや
それもいまKotlin Scriptに書き直されてもう使うこと無くなりそうだけど
No.186
出てきた当初から名前がイキり過ぎとは思った
No.187
最も年収の高いプログラミング言語は? CAMELORSがランキングを発表
https://codezine.jp/article/detail/19210

1位 Go
2位 Kotlin
3位 Python
No.188
トップ10の中にRustが入っていないな。まだそんなに年収得られるほど稼げる用途で使われてないのかな?
No.190
アニメ絵な表紙はいらん
No.191
そういやkotlinってロゴもマスコットも影薄いよな…
No.192
かといってGoみたいにキモいマスコットで有名になっても困る
No.193
マスコットっていたっけ……?
No.194
>>193

golang マスコットで画像検索すると見つかる
gopherという名前だそうだ
No.195
go マスコット でも見つかった
>Go言語のマスコットキャラクター「Gopher」を愛でる
俺には無理
No.196
Kotlinのマスコット(Kodee)の話だろ
No.197
ʕ◔ϖ◔ʔ 呼んだ?
No.198
マスコットなんていたのかkotlin…
No.199
日本じゃ販売されてないオライリーの本だとテンみたいな動物が描かれてるな
No.201
うーん、やっぱりインパクトが薄すぎるな
特段かわいくもないしカッコよくもないし、さりとてキモくもない
せめてキモカワイイくらいでないとインパクトが薄い
No.203
Any 型のインスタンスを MutableList<Any> 型にキャストしようとするとチェックしていないという警告が出る。
かといって if (it is MutableList<Any>) ... みたいにチェックする部分を書いても List が持つ型の Any のチェックはできないとエラーになる。
これ Java で Object のキャストする時も同じだと思うけど、List, Map, Set の類の保持する値の型に関してはチェックできないからもうどうにもならんのかな?言語仕様の問題?
No.204
Anyにキャストしたいと思ったことがない
その状況がまずおかしいのでは??
No.205
Let's Go!!
No.206
>>204

何をしようとしていたかというと、まず MutableMap<String, Any> のインスタンスを作っておいて、それのキーによって値が Int だったり String だったり MutableList<String> だったり MutableList<Int> だったりするようにしたかった。
m["A"] なら Int, m["B"] なら MutableList<String>, m["C"] なら MutableList<Int> みたいな感じ。
まあ、何か他の方法がないわけじゃないんだろうけどね。(自分で専用のクラス作れば一発で解消するんだろうけどねw)。
No.207
文字通り未検査なんだから仕方ないね
型不明のコレクションにキャストしてから各要素をmapでキャストするかまるごと警告抑制でいいのでは
No.208
composeで何個かアプリ作ってて思ったけど、確かに綺麗かつ書き換えしやすく書けるけど、今までに比べて難しすぎる。
初学者が書けるとは思えないんだが。
No.209
初学者はFigmaみたいなデザインツールサービスで設計してComposeでコーディングの流れなら多少はマシなんじゃないか?
ReactやらSwiftUIやら時代の流れで宣言的UIが主流になったからこの形式に慣れるしかないんだ
No.211
シンプルにModifierとかテーマとかが分かりづらそう。
もちろん、知ってる人は今までより楽なんだけどなぁ。
No.212
ダークテーマとかめんどくさいねん
No.213
祝・Kotlin 2.0.0🥳
No.214
シンプルなビルドツールのAmperがスタンドアローンで動くようになったみたい
そろそろGradleやめてAmperにしてもいいかも
ttps://blog.jetbrains.com/amper/2024/05/amper-update-may-2024/
No.215
今年のKotlin Confはよかった
AWSの話もあってサーバーサイドとしても宣伝されてた
ttps://youtu.be/Ar73Axsz2YA
No.216
時間ができたから興味本位で個人用泥アプリをそこまで苦労なくKMPに移行させてみた
iOS開発環境はないからとりあえずJVMのデスクトップアプリとして動かして満足
主に書き換えたところ
build.gradleのマルチプラットフォーム化
xml→Composeに完全書き換え(これは既にほぼ移植完了してた)
SharedPreferencesをDataStoreに移行
commonMainに共通コードを移動
No.217
忘れてたあとネットワーク周りのKtor移植
No.218
>>216

結構簡単そうだな。
compose重い印象あるけど、JVMの動作やリソースの食い具合は
>>216
的に満足いくレベルだった?
No.219
>>218

スムーズで満足だったよ
大量のアイテムのリスト表示もカクつくことなく、Androidで動かした場合と遜色もなくデスクトップアプリとして動いてくれた
メモリ使用量はだいたい100~150MBのリソースを食ってたから気になる人はいるかも
No.220
>>219

回答ありがとう。
アプリに寄るのは理解しているけど、ベースでのメモリの食いもそんなないんだね。
MAUIも個人的に好みじゃないし、今度作るときはCompose使ってみようかな。
No.221
Modifier.composedをModifier.Nodeに書き換えたらむっちゃ爆速になったので報告
参考になったサイト
Modifier.Node を使いましょう (Part 4: @Composable 関数の実装を Modifier.Node に書き換える) ttps://qiita.com/_SUR4J_/items/d48372b5793c4a0fa65f
No.222
ttps://github.com/matteocrippa/sensor-accelerometer-multiplatform/blob/main/shared/src/iosMain/kotlin/it/matteocrippa/sensorsmultiplatform/Sensors.kt
iOSアプリ開発、Kotlinで簡単にセンサーデータを取り出せるのな、クロスプラットフォーム対応モバイルアプリは全部Kotlinでいいじゃん
No.223
ktorがバージョン3.0.0に向けて大規模リファクタリングが進んでるね
io部分をkotlinxioベースに移行するプルリクがさっきコミットされた
No.224
2.0.10
No.225
ロシアの企業だけどこの先どうなるんだろうね?phpは死んでも全然構わないけどさw
No.226
KotlinはJetBrainsのIDEに縛られるのが唯一にして最大のデメリットだな
JetBrainsに貢ぐ気のある企業だけがサーバーをJavaではなくKotlinで実装できる
言語仕様自体は何一つ文句無く素晴らしい
No.227
>>225

まあ、消えることはないんじゃない
・なんだかんだJavaの仮想マシンの上で動かせるのは大きいメリット
・AndroidがJavaファースト言語だからKotlinとは切り離せない関係にある
・マルチプラットフォーム対応
・言語仕様的にむっちゃ書きやすい
・ビルドツールのGradleが便利
ただしJetBrainsはクソ、金の亡者
No.228
JetBrainsは金にがめついが、良いものには金出さないといけないのはしょうがないと言えばしょうがない。
No.229
開発ツールしか売っていないJetBrainsがMSやGoogleみたいにタダでバラ撒けるわけがないし企業として存続するためにはサブスクは適切だと思うよ
No.230
MSにしてもMSDNはタダじゃないし…
No.231
iOSアプリ作りたかったんだけど、お金がない w
Mac miniとiPhone SEを買うと15万円くらいかかる
androidだとWindowsはあるので、手持ちのandroidスマホはテスト機に使わないとして、Galaxy aだけの2万円で済む…
No.232
最近はKotlin/WASMとGUIフレームワークComposeでウェブページのいわゆるシングルページアプリケーションを作って遊んでる
WASMだからiOSだろうとデスクトップだろうとブラウザで動くから便利
No.233
📢 KOTLIN ROADMAP UPDATE: Find out what comes next for Kotlin!
9/18/2024
・Language evolution: more efficient data handling, increased abstraction, and enhanced performance with clear code.
・K2-based IntelliJ IDEA plugin: faster code completion, improved highlighting and search, and more stable code analysis.
・Kotlin Multiplatform: release direct Kotlin to Swift Export, streamlined build setup, and simplified creation of KMP libraries.
・Experience of third-party ecosystem authors: simplify development and publication process for Kotlin libraries, tools, and frameworks.
For more details, head over to our Kotlin roadmap page. Explore our accomplishments and learn about our key objectives and future plans!
https://kotl.in/roadmap
No.234
Ktor 3.0.0きたね
No.235
kotlin のここが嫌
・省略記法を推奨してること
 関数引数の()を省略okにしないで欲しい
・引数最後のラムダを()の外に出して良いとか言わないで欲しい
No.236
perlっぽいね
No.237
拡張関数でお釣りがくる
No.238
>>235

rubyからgroovyを経由してKotlinに取り込まれたDSL作成能力の要の記法なので、無くすわけにはいかない
No.239
>>235

ラムダを出していいのは、そういう関数を作りやすくなるから流石にほしい。
No.240
>>235

じゃあそういう自分が気に入る記述の言語を作れば?
自分で作らなくても仕様公開しておけばそのうち誰かが作ってくれると思うよ。
No.241
今ならAIに作らせることも出来るかも知れんね。
No.242
Javascriptなんかは関数のカッコの有無によって役割が変わるからカッコ省略に違和感を覚える人がいるのはわかる
ラムダ引数の外出しが嫌ってのはわからん
なんでもきっちりしてないと嫌なタイプかね
No.243
fun interfaceの記法とかで発狂してそう
fun interface MyInvoker {
operator fun invoke(input: String)
}
val invoker: MyInvoker = MyInvoker { input ->
println(input)
}
これと同等
val invoker: MyInvoker = object : MyInvoker {
override operator fun invoke(input: String){
println(input)
}
}
No.244
C#信者なもんでJava もダセーと思ってたけど
kotlin でVBA みたいな記法見てげんなりしたんよ
No.245
C#もKotlinもそんな変わんなくね
しいて言うならばKotlinのほうが記法の自由度が高いと思うけどそれが気に入らないのか?
No.246
Kotlinは
C# -> F# の変貌っぷりよりはよっぽどマシ
No.247
F#が幅を効かせてる分野ってなんかあったっけ
No.248
F#と比べるならKotlinでなくScalaの方が適切だと思う
F#やScalaは関数型を目指した言語だけど、Kotlinは普通のOOP言語なので
No.249
F#と比べるならKotlinでなくScalaの方が適切だと思う
F#やScalaは関数型を目指した言語だけど、Kotlinは普通のOOP言語なので
No.250
まてまて
VBAはよくない→似た記法がある→Kotlinにも悪感情
これ、何の合理性もない偏見であることに気付こうぜ
VBAやVBに問題があるのはカッコが省略可能だったり書き方の自由度があるからではない
自分で信者と言っているあたりある程度自覚と自虐があるんだろうけど、こういうお気持ち優先のコメントに振り回されるのはやめたい
No.251
知らない人が横から突然現れて
「かわいそうに。本当のコトリンを知らないんだね。一週間後にまた来てください。本物のコトリンを食べさせてあげるから」とかいう訳のわからない世界
No.252
知らない人?
FF外から失礼します!と断ってから発言したほうがよかったか
No.253
食うもんじゃないんじゃね?知らんけど
No.254
ふぁっ?!
KotlinのVSCode向けLSPをJetbrainsがプレアルファで出してる
Kotlin製品をVSCodeで開発させて貰えるの有難すぎる
https://github.com/Kotlin/kotlin-lsp

About Kotlin Language Server and plugin for Visual Studio Code
No.256
>>254

thx
No.257
>>255

やったぜ。
No.258
早速使ってみた。
定義移動は普通にできるけど、実装へ移動ができなかったのが気になった。
No.260
Scalaのimplicit parameterと同じ機能…?
No.261
今日の発見
Kotlin libraries のページのメソッド一つ一つの説明が書いてあるページを表示して、日本語に自動翻訳させると「fun」の部分が「楽しい」になる。
No.262
いつの間にか IntelliJ IDEA が変わって Ultimate と Community エディションでプログラムを分けていたのを止めて、
そのままだと Community エディションでサブスクに金出すと Ultimate になるようになっていた。
Kotlin とは直接関係しないが今まで Community エディションだと面倒だったことがある程度 Ultimate 側から取り込まれて無料で使えるようだ。
更に言語ごとに分かれていたIDEを IntelliJ IDEA に一本化した模様。
https://www.jetbrains.com/ja-jp/products/compare/?product=idea&product=idea-ult
No.263
なんでこんな重いjvm言語使わせるんだろう
グーグルならgoでいいやん
No.264
Googleならって、なんの話だ?
No.265
重さを感じる場面あるか?
別にC言語でも作れるぞ
No.266
KotlinはJetBrains、JVMのJavaはオラクルでグーグルは関係ないな
No.267
>>263

AndroidのランタイムやフレームワークをJVMターゲットに決めた時代にはGoはまだなかったからな
いまさら作り直す手間はかけられない
No.268
Androidの話か
昔はJavaが覇権だったからその名残りだね
No.269
javaの名残か。。。
swiftはネイティブコンパイルなのになあ
あとgradleとかゆうのもくそじゃね?
No.270
俺も Java も gradle もその前の eclipse もはじめからクソだと思ってるが
皆がクソだと思いはじめるまで誰もかれも「これこそがモダン!!
これこそかスマート!!これこそが次世代への革命」とかなんとか褒めそやして
誰もかれもこれを押しつけてくるからしかたなく使っている
No.271
swift は xcode が糞だろう
No.272
>>270

IntelliJに対するEclipseというなら、その前のってのはわかるけど。
どういう意図でその前のっていってるの?
No.273
よく分からないけどそれっぽい言葉を使って話してみたい年ごろなのだろう
No.274
謎の万能感がある頃は何でもクソや無能に見えるよね
振り返って考えたときクソだったというかクソ製造機だったのはJSPじゃな
No.275
java関連て全部うんこだから将来的には今のcobolみたいな感じになりそう
No.276
もうなってるわ
No.277
パソコン、機械のブラック20とそれ以降代入の自動設定プログラムオートセットコード20について
プログラムセットオートコード20
ダイダロディクス20
これがおおざっぱにいって船や重工業用機械向け
プログラムセットオートコード20
バイバロニック20
これがおおざっぱにいってパソコンや家庭用軽機械向け
プログラムセットオートコード20図
左上に船や機械の名前、中央に船の概略図、右下にブラック20とダイダロディックス20
、バイバロニック20などの名前、左下にその船や機械の状態。
パソコンや機械を作る場合は正しく、確認するように。
No.278
gradleきらい…
No.279
jsp、jstl とカスタムタグを手軽に作れる tagファイルとで、結構使い勝手良かったよね。
No.280
gradleきらいは同意する……
No.281
GradleはKMPサポートで多少マシになってるがそれでもクソ
Gradleを置き換えるビルドツールをJetBrainsが開発中
No.282
JSPは技術的に何ができるかが問題ではなく何でもできすぎるので世の平凡なプログラマに渡したらどんな惨状になるかが予測できていなかった
フレームワークという発想がまだ浸透していない時代なので仕方ないといえばそう
JSP後発のテンプレートエンジンは反省を生かしてずっと使いやすくなった
No.283
GradleはAntのスパゲッティを消してくれただけでも感謝してる
レガシーからの移行ならビルドスクリプトもカオスになりがちだけどそれはGradleが悪いというよりビルド構成を標準に寄せて再構築できなかったチームが悪いことのほうが多そう
No.285
あけましておめでとうございます
No.286
AIにコード生成させるとバージョンとコーディング作法が混在してて修正がめっちゃ大変
RoomとかHiltとか楽に書くために別な問題を山盛りにしてる
はっきりって欠陥言語でしょ
No.287
BOM指定すりゃあいいやん
No.288
AIエージェント使うならHilt使わずに手動で依存性注入させたほうがいい
Roomに関してもSqliteを直書きさせてるよ
Roomの機能のInvalidationTrackerやスキーマ生成&マイグレーション機能を自力で実装するのはAIエージェントがやってくれた
No.289
AGENTS.md 書けよ