Kotlin 4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/17(火) 18:00:27.88ID:PDZGrLP2
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
https://kotlinlang.org


※前スレ
http://mevius.5ch.net/test/read.cgi/tech/1521401186/
2018/07/25(水) 07:17:57.17ID:mjDoqtlK
>>113
動的型付言語は人間が頭の中で実際の型を把握してればコード上では型チェック不要だよ

Ruby
map = {}
map["hoge] = "今は文字列"
map["hoge"] = 100 #今は整数
map["hoge"] = [1,2,3] #今は整数の配列

map["hoge"].each{|i| puts i.to_s} # 今入ってるのは整数の配列だと人間が把握してるので適正なコード
2018/07/25(水) 07:34:47.16ID:NuE3ewHE
>>117
半角のまま貼り付けたら弾かれたんだ。
2018/07/25(水) 07:40:45.40ID:nUGMun5h
>>115
明示的にキャスト、間違ってたら実行時例外でいいなら as でよくね

val map = HashMap<String, Any?>()
map["hoge"] = 10
map["hage"] = "zura,katsura"
map["hoge"] = map["hage"]

val list = (map["hage"] as String).split(',')
println(list) // [zura, katsura]
2018/07/25(水) 08:28:43.96ID:pc8pXKsN
Kotlinスレが珍しくKotlinの話してるのか
2018/07/25(水) 10:22:42.75ID:7AbAukpx
元の>>99についての話なら「キャストなし」が前提なのでは

とはいえシリアライズやGSONなら型定義が必須だろうから
キャストより手間増える気がする
2018/07/25(水) 10:56:38.61ID:QsHBqRMq
使うたびにキャストするのが面倒くさいって話なら一度定義しとけばあとはそのまま使えるgsonはアリじゃね
2018/07/25(水) 11:39:23.46ID:1gumeC8R
てか別にGsonなんて使わなくてもHashを渡して初期化したら中でいい感じにkeyごとにキャストしておいてくれるラッパークラス作れば良いのでは
2018/07/25(水) 12:12:16.20ID:RwqHQTi+
結局取り出すときに型がわかってるようにするには事前定義が必須と
2018/07/25(水) 12:55:48.93ID:1gumeC8R
せやな
2018/07/25(水) 14:31:05.88ID:alBChnpJ
当たり前の話
嫌なら静的型付けなんてやめちまえ
2018/07/25(水) 15:13:33.72ID:CbElzlsD
性的片付けならお手伝いします。
129デフォルトの名無しさん
垢版 |
2018/07/25(水) 15:46:24.96ID:rOB4O81b
Mapから特定のキーで取り出した値の型をプログラマが知っている場合だけでしか使えなくて、型がわからないなら型チェックが必要になり、そうするとスマートキャストが使えるので現状のままで問題ない事になる。
型チェックなしで使えるようにできたとしてもやはりバグの温床になりそうだというのもある。(しかも見つけにくいバグにならないか?)
2018/07/25(水) 15:49:44.09ID:dm3jJ5Gu
特にKotlinの場合はJavaのウンコ仕様のせいでジェネリクスの型引数を安全にダウンキャストできないからな
2018/07/25(水) 17:01:14.13ID:xG56qnJC
やっぱJetbrain VM作ってよ〜
2018/07/25(水) 18:05:14.18ID:7AbAukpx
>>131
何のメリットが?
2018/07/25(水) 18:13:55.24ID:60VZ2ETs
そもそもVM利用してるのってJavaの遺産利用する為だしな
134デフォルトの名無しさん
垢版 |
2018/07/25(水) 18:16:24.83ID:ekeRKo17
資産ではなく遺産
2018/07/25(水) 20:57:40.57ID:OXaxpOj9
>>99
https://ideone.com/Bxe3Vj
2018/07/26(木) 20:21:16.47ID:v8/TcxRM
>>135
map["hoge"] as String → map.get<String>("hoge")
map["fuga"] as Int → map.get<Int>("fuga")
無 → inline fun <reified T> HashMap<String, Any?>.get(key: String) = get(key) as T

ただのキャストよりコード量が増えて危険な操作であることがわかりにくくなっただけやんけ
137デフォルトの名無しさん
垢版 |
2018/07/27(金) 02:00:17.48ID:O4NPrPXG
全然関係ない話

これが出来る事を知らなかった。

val s = "abc"
println("${s + "xyz"}")

ダブルクォーテーションで括った中にダブルクォーテーションで括った文字列がある状態なのに問題なくコンパイルも実行もできる。
${ ... } はコンパイル時に特別扱いしてたんだな。
2018/07/27(金) 07:04:48.78ID:8+KT0NyM
>>137
マジか、知らなかった。
まあやることはあまりないだろうがw
2018/07/27(金) 07:05:22.41ID:UmDdNteT
{}の中はプラグラムのコードやからな。
それだけやで
2018/07/27(金) 08:06:17.19ID:BgbV5sVA
一番内側のデリミタが来るまでは外側のデリミタはマスクされて見えないという話
2018/07/27(金) 08:36:58.60ID:xnwtYCKh
むしろコンパイル時じゃなかったらビビる
evalがある言語じゃないんだから
2018/07/27(金) 08:45:57.59ID:xnwtYCKh
もちろんネストも出来る

Kotlin   https://ideone.com/9oQrPl
Groovy  https://ideone.com/PkZexd
Swift   https://ideone.com/vCuTyE
bash   https://ideone.com/9GW6lT
2018/07/27(金) 18:32:30.58ID:BbfW0v3N
>>141
そんな威張るなよ
2018/07/27(金) 18:38:45.51ID:eMZjpBCY
そんな僻むなよ
2018/07/28(土) 13:18:16.11ID:S6ztPmt9
unit testしたいんですが
junit って標準モジュールじゃないんですか?
2018/07/28(土) 21:07:10.68ID:yXUefUq2
じゃないです。
2018/07/28(土) 21:53:41.27ID:AhCis0X4
ようやくKotlin1.3の話が出てきた。
ttps://blog.jetbrains.com/kotlin/2018/07/see-whats-coming-in-kotlin-1-3-m1/
148デフォルトの名無しさん
垢版 |
2018/07/29(日) 08:07:58.83ID:7lOBGcOb
operator で何も返さない Unit のやつを作るとどうなるかを実験していて気づいたこと。
例えば plus() って + 記号が出てきただけで呼ばれるわけで、そうなると + 記号だけで中身を書き換える事も可能になるんだな。

https://paiza.io/projects/wtY0TgCLyLhRsls2-6wcuQ
2018/07/29(日) 08:59:34.65ID:4MUmFrCs
そりゃまあただのメソッド呼び出しを糖衣構文だし
150デフォルトの名無しさん
垢版 |
2018/07/29(日) 09:51:20.17ID:7lOBGcOb
>>149
これができるのなら Unit ではない演算子の結果を捨てるような式はエラーにして欲しかった。
2018/07/29(日) 10:47:26.84ID:DahY5MEG
DSLに使うからそれは困る
152デフォルトの名無しさん
垢版 |
2018/07/30(月) 18:02:59.40ID:xHVHgAPA
JetBrains のサイトに StringBuilder.set メソッドのドキュメントがない事に気づいた。
いやググると見つかるので正確にはあるのだが、どこからリンクされているかがわからない。
普通に考えるとこれは StringBuilder のページからなんだろうが、それはない。getならある。
2018/08/01(水) 15:30:30.04ID:wHCC+gZS
JavaFX+Kotlinでクロスプラットフォームのアプリ作ろうと思ったけど、
やっぱ今からだとElectronの方がいいのかな
SDKからも切り離されたし
2018/08/01(水) 16:27:09.30ID:BRE0Gb7p
TornadoFX使ってみてよ
2018/08/01(水) 17:14:08.32ID:o97vF+z4
竜巻外為良さそうだけど、そもそもJavaFXが流行ってない気が
2018/08/01(水) 17:17:06.60ID:BRE0Gb7p
現時点で流行ってないし、java自体がこの状況で今から人気が出てくるとも思えないよなあ
electronかみんな大好きXamarinでも使った方がいいだろう
2018/08/01(水) 22:35:46.35ID:SQGsQ61c
TornadoFX良かった。JavaFXが切り離されさえしなければ...
2018/08/01(水) 23:16:43.13ID:CtMSSjTe
トーナードは良いものだよ。
JavaFX自体が消滅しそうだけど
159デフォルトの名無しさん
垢版 |
2018/08/02(木) 00:14:03.14ID:vClc7nAi
tornado の発音はトーネイドに聞こえるが・・・
2018/08/02(木) 00:40:41.05ID:ZvszlWDN
なんでJavaFXって人気ないの?
Electronが人気すぎるだけ?
Electronコード隠蔽できないから嫌なんだけどな
2018/08/02(木) 01:22:59.89ID:PUemVwHx
>>160
なんでって、Javaだからだよ
有史以来、FXに限らずクライアントJavaに人気があったことなど無い
162デフォルトの名無しさん
垢版 |
2018/08/02(木) 02:34:55.79ID:vClc7nAi
Android で大人気だけどなw
2018/08/02(木) 02:35:51.35ID:M4JJW8Mq
javafxscript用の設計だったからね
script潰れてjava向けに再設計とか時間かけすぎなんだよ
164デフォルトの名無しさん
垢版 |
2018/08/02(木) 06:11:52.44ID:L4dxCzkb
アンドロイドせいでjava/kotlinを書かざるを得ない迷惑なはなし
2018/08/02(木) 06:43:03.26ID:t5505cjw
>>164
C++やJavaScriptでも書けるだろ
2018/08/02(木) 07:38:05.58ID:NvR76J0F
C#で書けるだろ、忘れるな
2018/08/02(木) 08:27:55.22ID:02Lt02wr
はいxamarinネタ禁止
2018/08/02(木) 13:16:08.31ID:QRqag3vd
加速度センサーに木星や土星の重力加速度があるのですが、何に使うんでしょうか?
2018/08/02(木) 13:35:16.77ID:0TA/kWAT
なんかの実験用じゃない
170デフォルトの名無しさん
垢版 |
2018/08/02(木) 13:39:12.92ID:Cp7uV85Z
木星や土星へ行った時のため
2018/08/02(木) 15:31:09.75ID:cpkp83Z6
たまに使うよね
2018/08/02(木) 15:55:49.44ID:mx93PpF6
俺も前職で何度か土星行ったから、そういう時は役に立った
173デフォルトの名無しさん
垢版 |
2018/08/02(木) 16:26:00.89ID:SFe9zIxE
どしぇー
2018/08/02(木) 17:47:49.29ID:kLlfQZwC
10年前にJavascriptとDA PUMPが再ブレークすることを予想してた奴が居たら凄いと思う
2018/08/02(木) 20:26:30.99ID:ChN5Xojk
Electron + Kotlin/JS というのはアリ? というかしている人いる?
2018/08/02(木) 20:41:24.62ID:5ti5JZJP
ElectronならTypeScriptでいいだろ
2018/08/02(木) 21:35:16.65ID:t5505cjw
プロシュート兄貴を見習え
2018/08/02(木) 22:16:27.96ID:0hgfJcdZ
>>175
ReactNativeをKotlin/JSで書こうとして死亡してた人なら知ってる。
出来ないことはない、ってレベルらしい
2018/08/03(金) 16:55:37.97ID:dH+GGA6R
Javascriptが流行ってるのって言語の作りが良いからとかじゃなくて、結局はブラウザで動くからなんだよな
だから、誰かがことりんが動くブラウザを作ればことりん流行ると思う
180デフォルトの名無しさん
垢版 |
2018/08/03(金) 16:57:00.14ID:X+nM2ZWl
>>179
君に任せた
2018/08/03(金) 17:51:01.66ID:/71FxLcE
コトリンが動くブラウザをお前らが作っても流行らんよ
182デフォルトの名無しさん
垢版 |
2018/08/03(金) 18:04:24.79ID:X+nM2ZWl
あ、そうか。JavaScriptの代わりにKotlinスクリプトが動けばいいんじゃないか。そうすればわざわざJavaScriptに変換しなくて済む。
2018/08/03(金) 19:10:58.88ID:Sg6jgRzL
GoogleがDartで、それやろうとして、結局、あきらめたじゃん。
Dart自体は、Fuchsiaで復活するみたいだけど。
2018/08/03(金) 19:29:20.15ID:MrVuCq4o
dartもいい言語じゃねぇけど、JSよりかはましだからな。flutter人気でてdart使われるようになったら、dartのchromeブラウザ搭載計画を復活させて欲しい
2018/08/03(金) 19:32:54.71ID:NM98E0T5
wasmにDOM/GCが搭載されれば色んな言語からの需要があるだろうしそれほど夢物語でもない
kotlinがその中で天下取れるかはまた別の話だけど
2018/08/03(金) 19:33:36.87ID:ZdEKhS09
Chromeだけ動くようになったとしても他のブラウザが追随して、かつそれ以前のバージョンが駆逐されるまで待たないと実用できないからな。

それにDart自体がクソみたいな言語であることは変わらないから、多大なコストかけてまで乗り換えたくはないな
2018/08/03(金) 19:38:42.60ID:1Ao96BNz
TypeScriptという手軽でまあまあなソリューションが広まって、なんかもういいんじゃねという空気だよね
2018/08/03(金) 20:00:01.04ID:M4do4FkD
プログラミング言語は素晴らしいから広まるんじゃないのだということを我々はこの30年でイヤというほど味わったのでるふぁい
189デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:25:03.99ID:X+nM2ZWl
でるふぁい
2018/08/03(金) 21:06:23.69ID:C7OuABnl
Algol
2018/08/03(金) 23:27:02.39ID:YJ+EXEAl
WebもアプリもKotlinよりTypescriptだろうか
2018/08/03(金) 23:43:06.58ID:EZZ8bH2k
まあそうだね
オラクルの件のせいで今後は(Kotlinが使えるような会社においては)Javaプラットフォームが積極的に選ばれることももう無くなるだろう
どうしてもJavaプラットフォームを使わざるを得ない事情があるときのマシな選択肢としての限定的なポジションに落ち着いていくんだろうね
2018/08/04(土) 07:38:33.47ID:5xMt+ptm
Kotlinは贔屓目でもなんでもなく、Java環境で動く素晴らしいJava代替物なのだが
その肝心の「Java環境でなければならなかったこと」が唐突に外部要因で縮小し始めており回復の理屈もないのだ…
現時点でJavaに業務で縁のない人はちょっと立ち止まったほうがいいかもしれん
Androidでプログラミングしたい? Unity使えUnity
2018/08/04(土) 09:36:50.04ID:+3XGJmmJ
一年前のだけど興味深いディスカッション

なぜKotlin Native?
https://discuss.kotlinlang.org/t/2275/

JetBrainsチームのコメントに気になる文言もある
Rock54のせいで引用出来ないけど18と22
2018/08/04(土) 09:44:43.94ID:+3XGJmmJ
今後の状況次第ではJava環境からの脱出口になるから
もっとKotlin/Nativeにパワーを

Kotlin/Native v0.8 released
https://blog.jetbrains.com/kotlin/2018/07/kotlinnative-v0-8-released/
2018/08/04(土) 10:09:54.85ID:XWbY/qAH
言っちゃ悪いけど、開発言語を前提にして物事を考えるのってエンジニアとしてはだいぶ低レベルな段階だよ
そのレベルの連中が多数派を占めるほどにはまだKotlinの裾野は広がってないと思う
梯子外されるのがもうちょっと遅かったらもしかしたらとは思うけど、残念だね
2018/08/04(土) 10:31:19.81ID:x/iry6Ka
仕事と趣味は別という発想が出てこない君はエンジニア以前に社会人としてとても低レベルだね
2018/08/04(土) 10:33:33.07ID:Q3NLupVY
営利利用されない技術は進歩しないから、たとえ趣味でやってる人も離れていくもんだよ
2018/08/04(土) 10:51:25.19ID:x/iry6Ka
それはまた別の話
2018/08/04(土) 11:35:40.35ID:+3XGJmmJ
>>196
そうかな、個人でやる分にはC++でもObjCでも構わないけどそうじゃない環境では
記述性などの他に学習コスト/人材調達的にも
Kotlinはバランスの良い言語だと思うんだけどな
2018/08/04(土) 12:14:40.56ID:ii6jRswP
仕事でサーバサイドkotlin使ってるけど今後はOpenJDKにするかもだって
2018/08/04(土) 13:55:15.47ID:lZHxRZe2
え、むしろ今までOracle使ってたん?
うちは8にする時にOpenJDKに切り替えたわ
2018/08/04(土) 13:58:19.47ID:lZHxRZe2
なんだかんだJDKの混乱も今だけだとは思うけどな。
かっちりしたエンプラのシステムはOracle使うだろうし、そうじゃなくて現時点でKotlin使ってるようなフットワークの会社なら普通にOpenJDKのアップデートに追随していくだろうしな。
2018/08/04(土) 15:25:21.46ID:ZDA+8I61
>>202
JavaFXしたかったんだ.....
公式にJavaFX使うならOracleJDK使えって.....
OpenJDK9には統合されると思っていたら、ご覧の有様だよ.....dayo.....
2018/08/04(土) 15:40:03.53ID:S+Y35Ar7
>>204
>公式にJavaFX使うならOracleJDK使えって
初耳だ…
2018/08/04(土) 16:06:29.82ID:VXB2QifJ
そもそもRedHatクローン使ってればOpenJDKでなんの差し支えもないからな、数ヶ月前みたいな絶望感はない
FX勢は、なんというか、がんばれw
2018/08/04(土) 16:20:44.63ID:ZDA+8I61
>>205
今見ると書いてないな...
記憶違いかもしれないが、今となってはどっちでもいい....orz
2018/08/04(土) 16:27:23.63ID:nJEeH/Xf
情報が錯綜して勘違いやデマ流されたりするのが今のJavaは良くないな
209デフォルトの名無しさん
垢版 |
2018/08/04(土) 17:27:40.61ID:2zclIjyW
>>> println("ちん${"ピョロ${"す${"ぽー"}"}"}ん")
ちんピョロすぽーん
>>>
2018/08/04(土) 19:45:45.27ID:b4AQTWfG
まさかJavaよりJavaScriptが主流になる日がくるなんて・・・
会社入りたての頃にJavaScriptでHP作る担当だった奴を見下してた自分を叱ってやりたい
2018/08/04(土) 21:23:35.89ID:0LAYEhli
>>210
そもそも担当言語で同僚を見下すこと自体人として終わってるから悔い改めるためにXamarinのライセンス買ってこい
2018/08/04(土) 21:59:20.75ID:AoH8FoSW
Xamarin程の糞はない
2018/08/04(土) 22:39:02.20ID:bP7rOq1R
ネックは処理が重いだけだから可能性はあったよな
214デフォルトの名無しさん
垢版 |
2018/08/05(日) 04:32:52.81ID:cdvogGHQ
>>210
その当時の JavaScript と今の JavaScript は同じか?
2018/08/05(日) 09:20:55.32ID:gCURYumf
>>214
同じだよ。
JavaScriptの有用性に気付いたグーグル先生がGoogle Mapを作ってから流れが変わった。
2018/08/05(日) 09:32:24.17ID:JhHL1KW5
JavaScriptはブラウザで動くからあの立ち位置にいるだけで基本的にはうんち言語
CoffeeScriptだのDartだのTypeScriptだのKotlin/JSだのが出てくるのもJavaScriptがうんち過ぎてなるべく書きたくないからだし
2018/08/05(日) 09:37:55.39ID:gCURYumf
>>216
Node.js知らんの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況