Kotlin 6

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/06/22(土) 15:59:57.23ID:zj+KJbMh
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう

※前スレ
Kotlin 5
https://mevius.5ch.net/test/read.cgi/tech/1544268581/
484デフォルトの名無しさん
垢版 |
2019/12/09(月) 00:07:21.07ID:MrA/6cBN
>>483
できるのか! これができるとリフレクションを使ったフレームワークに幅が広がりそうだよねえ
特定の変数名をもつオブジェクトに値を代入するとかさ
2019/12/11(水) 10:04:40.40ID:YSNG9ChM
Kotlin 1.4以降に何を期待するか
https://blog.jetbrains.com/kotlin/2019/12/what-to-expect-in-kotlin-1-4-and-beyond/

品質とパフォーマンスに焦点を当て
大きな機能追加よりエクスペリエンスを向上させること(小さな機能追加はある)

Trailing Commaはありがたい
2019/12/11(水) 10:35:44.03ID:YSNG9ChM
GitHub統計
https://madnight.github.io/githut/

中々上がらない原因になってそうなのは
・スマホアプリでのクロスプラットフォーム性が他より劣る
・Kotlin/NativeやGraalVMのAOTの性能が
 他のGC持ちAOT(Go, C#)に全然追いつけてない
・AltJSとしてはTSに完敗
・Javaが割とモダン化していってる
2019/12/11(水) 17:32:54.10ID:zuvdOeFn
kotlin/jsは可能性がなさすぎるから諦めて他のとこにリソース使ってほしい。。
2019/12/11(水) 18:11:35.13ID:QRMyBX+7
ちょっとオワコン感が漂い始めたよね
2019/12/11(水) 18:44:39.88ID:3C9pU9bg
これから始めようと思ってた
2019/12/11(水) 21:20:44.17ID:cbWhmdF6
クロスプラットフォームは糞に例外なし
2019/12/12(木) 03:31:17.93ID:HDvavFF6
nativeでクロスプラットフォーム狙うならリッチな標準クラスライブラリがないと駄目だろ。言語だけ用意されても。
kotlin/JVMみたく他に寄生するなら寄生先のライブラリ使えるからいいけど。

nativeどうする気なの。

.netやjavaみたいな最低限の標準クラスライブラリないと役立たず。
2019/12/12(木) 10:07:02.43ID:Ijd1d2r8
どうする気もないでしょ
JBが本気でKotlinで天下獲るつもりならGoLandとRiderとResharperを今すぐ廃止すればいい
それをしていないということはその程度の覚悟なんだよ
粛々とチームを解散して開発者を解雇するだけだ
2019/12/13(金) 23:58:30.55ID:++ulbKLC
クロスプラットフォームがこんなに早く普及し始めるとはのぉ。
2019/12/14(土) 00:19:00.68ID:df1+QJt4
JavaでWindowsで開発してlinuxでうごかしとる
バージョンはこないだまで6だった
やっとJavaのかかとの所ぐらいまで世界が追い付いてきたようだ
2019/12/17(火) 06:30:13.16ID:noRj1Nsm
Kotlin/Nativeってバージョン番号が1.0を越えてるけど、
ベータ版を脱したってことでいいの?
2019/12/17(火) 10:45:01.35ID:buNxOUZu
クラスのnullableなインスタンスプロパティが複数(a,b,c)あって、
それらが全部nullじゃないときに実行できるメソッドあり、
fun execute() {
 if (!canExecute)
  return
 val a_ = a!!
 val b_ = b!!
 val c_ = c!!

}
いちいちこういう事やってんだけど、なんとかならんもんか・・
2019/12/17(火) 11:51:21.83ID:CYemexLv
小手先のテクニックよりも設計を見直すべきでは
a, b, cを一つの型に纏められないの?
2019/12/17(火) 18:50:15.12ID:buNxOUZu
MVVMのViewModelつくったことないの?
ViewModelを作るとたいがいこんなことになるんだが。
2019/12/17(火) 19:23:57.27ID:CYemexLv
>>498
いや、なんでa, b, cをわざわざ別個の変数に代入し直す必要があるの?
そこMVVM云々の事情は無関係だよね
HogeModel(a!!, b!!, c!!).execute()とかなら別に違和感ないやろ
2019/12/17(火) 19:27:54.98ID:buNxOUZu
普通のクラスだとこんなことにならんが、複雑に状態が遷移するViewModelだとこんなことになる。

ちょっと前にNullオブジェクトパターンの話題あったけど、NullオブジェクトじゃなくてViewModelの内部でStateパターン使えばたぶんいけると思うがめんどくさそう。
2019/12/17(火) 19:32:07.34ID:buNxOUZu
>>499
ああ、!!排除するために内部でそのために別のクラスに追い出せってことかなるほど。
2019/12/17(火) 20:00:31.90ID:buNxOUZu
つか、そのためだけならクラスを別に用意するんじゃなくてもいいんだよな。
ただ、executeCoreって別のnon-nullableな引数とるメソッド用意してexecuteCore(a!!,b!!,c!!)するだけで

実際のその先の処理もa_.hoge(b_,c_)とかでちゃんと処理委譲してるから毎回10数行レベルで、更に他に分割するって発想なかったわ。
2019/12/17(火) 21:26:42.16ID:sdUma5iy
!! はいかんぞ
2019/12/17(火) 21:41:44.72ID:Ef4LKPDY
みんないろいろなやり方で頑張ってるみたい
https://discuss.kotlinlang.org/t/kotlin-null-check-for-multiple-nullable-vars/1946
https://stackoverflow.com/questions/35513636/
2019/12/18(水) 01:11:24.71ID:Kzz0aLWj
nullチェックのガード節後に、スマートキャストが効けばいいわけだな
2019/12/18(水) 02:07:44.40ID:J0mER5OC
あたたたたたたた!!
2019/12/19(木) 00:36:56.60ID:pvCX0U01
あたたたたたたた?.let {
}
2019/12/19(木) 08:27:47.53ID:0eo+DnKB
みなさん
今日からKotlinを目指す事になった者です
よろしくお願いします
2019/12/19(木) 08:45:53.31ID:xYioGlNJ
kotlinを目指す
java始めたってことか?
2019/12/19(木) 08:55:17.26ID:0eo+DnKB
>>509
え?
Kotlinって言語の事じゃなかったんですか!?
てっきり言語かと
2019/12/19(木) 08:56:43.83ID:0eo+DnKB
やっぱりプログラミング言語で合ってるじゃないですか
初心者をいじめないで下さいよ
2019/12/19(木) 08:57:14.39ID:0eo+DnKB
ID:xYioGlNJをNGにした
2019/12/19(木) 09:10:42.29ID:sBMQ4GMS
kotlin始めましたならわかる
kotlin目指したらhallo world書いたら目標到達じゃないか
2019/12/19(木) 09:11:54.91ID:0eo+DnKB
>>513
Kotlin始めました
2019/12/19(木) 09:14:19.85ID:0eo+DnKB
>>513
でもまだ本が届いてないんです!
かといってプロゲートを調べたらKotlinがないしドットインストールを調べたらクッソ高ぇし
ヨ■■■で
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成
って本をポチりました
2019/12/19(木) 09:15:16.14ID:0eo+DnKB
>>513
こんな状態で僕はKotlinを始めている事になるのでしょうか!?
2019/12/19(木) 11:32:38.18ID:5d66kii1
思い込みが大事
2019/12/19(木) 12:36:14.53ID:DRlK3voY
>>516
なってるよ
だからもう書き込まないでね
519デフォルトの名無しさん
垢版 |
2019/12/19(木) 12:51:05.10ID:0uPukb6z
>>514
そんなこと書いた張り紙がラーメン屋にさりげなく貼られてたらどうしよう
2019/12/19(木) 13:37:11.92ID:0eo+DnKB
>>509
すいませんでした
調べたらKotlinの源がJavaという事が判明しました
NGIDを解除しました
ですから今はまずプロゲートでJavaをやってます
2019/12/19(木) 13:41:10.68ID:0eo+DnKB
オンライン講座やアプリにカネをかけたら負けだと思っているのでJavaの本もポチりました
「Java1年生―体験してわかる!会話でまなべる!プログラミングのしくみ」
まずはこれを読んでから
「作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 & Kotlin1.3で学ぶはじめてのスマホアプリ作成」
を読む事にしました

アデュー
522デフォルトの名無しさん
垢版 |
2019/12/19(木) 13:48:14.38ID:+cpLTGtZ
逆やろ
本買ったら負け
ほぼオンラインで事足りる
2019/12/19(木) 13:58:35.22ID:0eo+DnKB
>>522
俺たちは理解力ゼロの人間だから
2019/12/19(木) 14:25:11.21ID:dMnFAlGo
各言語のスッキリシリーズを生み出した、伝説の本!
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014

その後に、太郎本をやるのが定番!
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
2019/12/19(木) 15:34:22.45ID:Cn4tHGlw
>>515
たぶん開発環境があってないから楽しめないと思う
サンプル系の本は苦しみながら修正して作るものだと覚悟して望んでください
そうすればとてもいい本です
526デフォルトの名無しさん
垢版 |
2019/12/19(木) 16:26:30.93ID:0uPukb6z
>>522
そういや動画はわかりやすいと誰かが書いてたな。俺はわざわざ動画探して見ないけど。
2019/12/19(木) 19:30:40.54ID:lI3TBUYc
手動かしてたら覚える
本も動画もメンターもいらなかった
2019/12/19(木) 21:42:53.35ID:+kCyq/oE
勉強してプログラミングを覚えてからアプリを作るっていう考えがそもそも間違い
まず作りたいものがあるべきでその作りたいものを作るために必要な知識を
都度調べて問題の解決を繰り返すという方法で進むべき
作りたいものがないなら向いてないからプログラミングなんかやめてしまえ時間の無駄
2019/12/19(木) 22:02:46.62ID:rHJ8IYKv
まあ、そう言わんでも
君が数学を学んでいた頃、数学でやりたかったことあったの?
2019/12/19(木) 22:20:55.18ID:57XsBiPj
回転機能とワイヤーフレーム3Dでドヤってたら
あっという間に世間はポリゴンだのテクスチャだのバンプマッピングだの

ほんの数年の間の話
2019/12/19(木) 22:23:45.85ID:WqEVCHn0
大体アプリを作るのに必要な知識って言語の文法だけじゃない
Android SDKの知識も必要だし設計もMVVMとかfluxとかいろいろある
今の主流の外部ライブラリが何かとか非同期処理の実装はどうするか
Firebaseとかも活用した方がいいだろう
必要な知識が広すぎるのに目的もなくただ漠然と必要そうだとつまみ食いしてるだけで
あっという間に時間は終わっていく
大体5年もすればソフトウェアの世界は一変する
結局何も生み出せないまま技術に振り回されて時間が過ぎていくだけ
2019/12/19(木) 23:03:29.10ID:rHJ8IYKv
ふーん、偉いんだね
2019/12/19(木) 23:26:51.07ID:Cn4tHGlw
さっき気がついたんだけど
kotlinってimportしなくなった?不要なの?
Math.sin/cos/tan使ってもimportせずに使えてなんか変な感じです
2019/12/20(金) 06:46:42.42ID:YAC9G70z
>>533
https://kotlinlang.org/docs/reference/packages.html#default-imports

Javaでも java.lang.* (StringやMathなど) はインポート書かずに使える
2019/12/20(金) 10:39:15.14ID:JC7V0cWR
1.4でkotlin/nativeが爆速になってgoが死亡する世界線に行きたい
2019/12/20(金) 19:57:21.77ID:fz/tpFJr
誰かが1000億円の間違いしなかった世界がいい
今更Kotlinとか付け焼刃
537デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:49:59.43ID:BqL6wPJ0
>>528
その通り。

まあしかしそれ言ったら学校教育は完全にダメだね。
538デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:23:12.50ID:z0W1zCos
>>536
何の話?
539デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:26:06.69ID:z0W1zCos
>>533
俺は変な感じがしない。なぜならJavaの頃からそのように使っているからだ。というかむしろそうでない方に違和感がある。
2019/12/22(日) 00:16:19.54ID:tkZGS0uw
>>538
本人ではないが>>536はJavaに最初からnulll(=1000億円の間違い)がなかった世界線に行きたいらしい。
2019/12/22(日) 01:17:50.71ID:lJarWdBZ
Union typeないの?
2019/12/22(日) 02:55:53.04ID:lBW/6Z3k
union って、C言語の union のこと? そういうのはないね。自分で無理矢理 Byte 配列に詰め込むのなら出来るが。
2019/12/22(日) 03:55:07.63ID:buP4BnNs
>>541
sealed class
2019/12/22(日) 07:09:03.62ID:tHQUUh7m
こういうやつでしょ
 var a : (String | List<Int>) = "aaa"
 a = listOf(10)
無いよ
2019/12/22(日) 17:46:16.29ID:buP4BnNs
sealed class Either<L, R>{
class Left<L, R>(val value: L): Either<L, R>()
class Right<L, R>(val value: R): Either<L, R>()
}

var a: Either<String, List<Int>> = Either.Left(“foo”)

https://pl.kotl.in/1oWpsAGCs

KotlinはJavaの足枷が重いから劇的に使いやすくなることはなさそう
2019/12/22(日) 22:24:55.21ID:qcLf379+
Union typeをサポートするとString?型もString | nullの略記でしかなくなるのだろうか
547デフォルトの名無しさん
垢版 |
2019/12/23(月) 13:25:26.95ID:8tSOZ4fL
しかしnullは型の名前ではないな。
2019/12/23(月) 21:19:46.42ID:UCqRJFPo
Unitと同じくオブジェクト宣言にすれば型としても値としても使える

TypeScriptのようにリテラル型という方式もあるけど
function f(): string | null | 10 { return 10; }
2019/12/23(月) 22:41:55.78ID:38BjLmtU
sealed classってinterfaceを持たないfinalなクラスをEither型には出来ないってことであってる?
2019/12/23(月) 22:55:01.39ID:4g9tMDJ4
GraphQL使ってるとunion欲しくなるよな
551デフォルトの名無しさん
垢版 |
2020/01/01(水) 00:07:09.43ID:fUaq4dOi
あけましておめでとうございます。
ことりんもよろしくおねがいします。
2020/01/01(水) 01:20:42.00ID:GmQkVq6D
Kotlin飛躍の年になれば良いな
2020/01/01(水) 16:57:33.69ID:GoZXP4nz
マルチプラットフォームの改善来ないかな
2020/01/03(金) 14:40:28.98ID:cH4r0C2y
>>554
どんな感じで?
2020/01/03(金) 17:40:31.87ID:ekbnoNnk
自分に安価してどうするよ\(^o^)/
2020/01/03(金) 22:30:37.55ID:UvyQWypU
>>556
面目ない
557デフォルトの名無しさん
垢版 |
2020/01/04(土) 10:36:41.93ID:trUJS7QS
自己再帰禁止
2020/01/04(土) 11:20:27.49ID:qTzaefKe
再帰関数見るとスッと入ってこなくてウッて毎回なる
2020/01/05(日) 02:42:41.09ID:Sr2nXWfX
素養がないから死ね
560デフォルトの名無しさん
垢版 |
2020/01/05(日) 19:42:27.74ID:YU7sLweA
そよそよ
2020/01/05(日) 20:51:47.31ID:QM2lp1QM
素養クラスに、拡張プロパティで付け加え!
2020/01/06(月) 15:47:29.78ID:26y+agJu
素養とかいらんやろ。慣れや
2020/01/06(月) 22:45:33.84ID:MYKIKe5Z
大学のC言語の授業で2分木の深さ優先探索と幅優先探索を再帰関数で書かされたなあ
2020/01/07(火) 00:31:39.93ID:hqMcZlsr
言語の名前がかわいいというだけの理由でkotlinを勉強し始めました。
書きやすくていいですね!
2020/01/07(火) 11:18:31.53ID:R7wg2P50
PCの気晴らし2Dゲームやスマホアプリやかんたんゲーム作ろうかなーと思ってKotlin始めたのだけど、
微妙絶妙にメインストリームから外れて手間が合わんのだな
Unity的なゲームじゃないスマホアプリはうまく合ってる気はするが
2020/01/07(火) 12:12:12.94ID:muv+YNpY
C#相手だと言語的なアドバンテージはほとんど無いから勝ち目はないわな
2020/01/07(火) 12:29:43.03ID:QGWNDMvz
サーバー書こうぜ
2020/01/07(火) 12:41:10.88ID:v179ZXJD
要は「めっちゃ書きやすいJava」なので、Javaのときに特段盛り上がってなかった分野はKotlinでも特段盛り上がってはいない
Kotlinで利用者が流入爆増してKotlin独自のライブラリが各分野でじゃんじゃん作られるみたいな未来予想図もあったのだが、まあ、世の中なかなか冷静で頼もしい限りではある
2020/01/07(火) 13:06:26.78ID:muv+YNpY
レベルS プラットフォームを問わずKotlinが広く利用される
レベルA Kotlinを使うためにJavaプラットフォームが採用される
レベルB KotlinによってJavaプラットフォームの採用障壁が下がる
レベルC Kotlinによって既存のJava開発者の満足度が改善する

今のところせいぜいCだな
2020/01/07(火) 20:56:09.81ID:LyNNZa7r
Javaやってたら取っつきやすいみたいな扱いされてるけどC#の方が覚えやすくね?
2020/01/07(火) 21:10:11.11ID:mPccAZYV
kotlinってandroid専用言語という位置づけだと思っていいですか?
Webでも積極的に使われている言語ですか?
2020/01/07(火) 22:30:31.70ID:I2Ol6zE2
現状ではandroid専用。Java代替目指してる言語だからwebで使うポテンシャルはあるけど、その用途で流行ってるとは言い難い。
573デフォルトの名無しさん
垢版 |
2020/01/08(水) 14:29:53.70ID:HfJa1tF4
流行ってないだけで専用というわけでもない。
574デフォルトの名無しさん
垢版 |
2020/01/08(水) 14:36:25.48ID:HfJa1tF4
ま、しかし、みんながやってると自分もやるみたいなのはやはり日本人的な感じがするな。
保守的と言うか開拓精神がないというか。だから悪いということはないけどな。
自分が率先して使って自分を中心に世界中に広めるみたいなこともできるかも知れないのだが、そういう考えが最初から起こらないぐらい頭が固くなってガチガチに保守化していると。
2020/01/08(水) 14:43:05.37ID:266dC9mX
「〇〇を作りたいのでKotlinを使う」の〇〇に入るのは非ゲームAndroidアプリ、ではある
現状これ以外で使うのは趣味とか修行とか苦行とかバカとかなんかそんな感じ
Kotlinは一応だいたいのものは作れるには作れるので、Kotlinで作ってみたいという情熱(または狭窄)で個人でいろんなもの作ること自体は別に止めない
手段が目的と化してるという点以外は問題はないからね
みんなあまりやらないことをやるという点では面白いはずだとは思うよ
どっすかRubyの二の舞
2020/01/08(水) 15:08:09.71ID:NG22H+Rz
>>574
欧米の人って明確な目的があって、それに合う道具なら古いものも新しいものも使う印象
日本列島に生息するアーリーアダプタ猿はたいてい手段と目的が逆転していて、
新しいものを触っても「やってみた」で終わるからそれ以上の発展がない
2020/01/08(水) 20:25:58.31ID:txej2vin
有名人が使ってるから使おう・それが正しいみたいのがあるね
2020/01/08(水) 20:42:10.23ID:UOnWj2Kr
>>577
その後誰も使わなくなるものに手を出して半年で天を仰ぐ事例は事欠かない
だったらちょっとか有名人にも頼りたくなるというものだ
2020/01/08(水) 21:44:46.93ID:IfVHQg0W
その、「失敗したらどうしよう・・失敗しないように安全パイを狙おう」ていう発想が日本人ていう話
580デフォルトの名無しさん
垢版 |
2020/01/08(水) 21:51:52.21ID:SxJLgebM
自分が有名人になろうという発想もない。
2020/01/08(水) 22:07:34.74ID:sWXWn+ML
まぁ結局はjavaなんだから、だったらjavaのままでいいじゃんで終わってそう。
2020/01/08(水) 22:07:56.44ID:l2iB3kWY
webなんかどうでもいい
今やブラウザからよりもアプリからの方がインタネットアクセスしてる人多い
サーバー側処理もこれから firebase的なものが主流になって独自実装はなくなっていく
Android専用とは即ち最強ということ
2020/01/09(木) 13:41:59.25ID:+yIYUPGX
え?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。