Kotlin [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/02/27(土) 01:46:01.68ID:Ag8w7//2
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
236235
垢版 |
2017/05/28(日) 19:22:45.75ID:QwjzxVOm
>Javaには、Primitive があるけど、
>Kotlinでは、すべてがオブジェクト

実行速度を上げるため、primitiveを使う方法もある
2017/05/28(日) 20:49:50.31ID:ZXIsROaD
途中からJavaとの違いからKotlinの特徴になっててイマイチ、、、

とりあえず、Javaとおなじこと出来るでいいんでね
2017/05/28(日) 23:18:36.68ID:IZz0cLMX
初歩的な質問とかしていい?
ByteArray使いたいときって
val a = byteArrayOf(0x80.toByte(), 0xCA.toByte(), ...)
みたいに.toByte()ってつけなきゃいけないん?慣れるまで見づらいな…
2017/05/28(日) 23:55:52.52ID:C6P4TIAg
いろいろ考え方はあるのだと思うけども
なにかコレクションがあって、それ全てに何か処理をして返して欲しいときはmapが使える
>>> val array = arrayOf("aaa","bbb","ccc").map{ it.toUpperCase() }
>>> array
[AAA, BBB, CCC]
240デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:11:46.19ID:Vfa09dL5
>>238
Kotlinは通常キャストはされないが、byteはリテラルがないからかリテラルだけは型推論されて、
val bytes = byteArrayOf(0x01, 0x02)
というのは型検査を通る模様。
2017/05/31(水) 22:55:29.26ID:JH+W+dlz
kotlinでjsってどんな感じ?
typescriptの型情報取り込めると知って
ちょっと気になってきた。
type scriptより関数型が強めだから幸せになれそう
2017/06/01(木) 10:14:24.94ID:2LgcCNqk
hasteやGHCjsじゃ駄目なん?
2017/06/01(木) 10:55:02.44ID:AXJF1Amn
SwiftとKotlinでちょっと遅延評価リストを比較した

■Kotlin
オンラインコンパイラ: https://try.kotlinlang.org/

val a = generateSequence(0){it+1}

//A 問題なし
println("A: "+ a.take(10).toList() )

//B 問題なし
println("B: "+ a.take(10).map{it*10}.toList() )

//C 問題なし
println("C: "+ a.filter{3<it}.take(10).toList() )

//D 問題なし
println("D: "+ a.map{it*10}.take(10).toList() )

//E 問題なし
println("E: "+ a.map{it*10}.filter{50<it}.take(5).toList() )
2017/06/01(木) 22:36:13.65ID:FF0Uww0g
ファイルの整形処理で少しカジッてみたけど、ファイルIOはJavaのAPIと古い?関数と新しい?関数が混在してて、Googleの海をさ迷ったよw
kotlinのsequenceを返すreadLinesが欲しかったんだけど、見つけきれなかったので自作した。
既存であるのかな?
2017/06/01(木) 23:40:24.53ID:wljaouQ8
lineSequence()とかuseLines()とか?
246デフォルトの名無しさん
垢版 |
2017/06/02(金) 22:36:46.10ID:x3ElWORK
androidアプリってscriptの方で作れますか?
kotlinc -script
2017/06/04(日) 01:46:21.69ID:MOnNXU8r
ヘイ親方質問
ファイルをShift_JISで保存してもUTF-8で保存しても
fun main(args: Array<String>){
println("日本語です")
}
が特段のオプションなしのkotlincでコンパイル可能で
特段のオプションなしkotlinでWindowsコマンドプロンプトに無事表示可能なんだけども
これはいったいどのへんが気を遣ってくれてるんですかね
248デフォルトの名無しさん
垢版 |
2017/06/07(水) 14:34:22.11ID:SSzPpmQQ
>>144-150
自己レス。データクラスを使った

data class Person(val age: Int, val name: String)

val mlist: MutableList<Person> = mutableListOf( );

mlist.add(Person(25, "Tom"));
mlist.add(Person(25, "Dave"));
mlist.add(Person(20, "Kate"));
mlist.add(Person(20, "Alice"));

val sortedList = mlist.sortedWith(compareBy({ it.age }, { it.name }))

sortedList.forEach {
println( it )
}

出力
Person(age=20, name=Alice)
Person(age=20, name=Kate)
Person(age=25, name=Dave)
Person(age=25, name=Tom)
249デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:28:27.40ID:xoha/0nR
C#やってる人にとって凄く扱いやすかったりする?
ちなみに母ちゃんのあだ名がコトリン
2017/06/16(金) 14:48:16.06ID:+s2fXv0/
母ちゃんモダンな名前なんやね
251デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:58:47.38ID:TF51QW3i
古都りん
252デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:59:56.64ID:TF51QW3i
秋の奈良レンタサイクル“古都りん” - 奈良県自転車利用総合案内サイト
nara-cycling.com/rent-a-cycle/
253デフォルトの名無しさん
垢版 |
2017/06/16(金) 15:20:11.64ID:dTWIGOSM
>>247
kotlinじゃなくてJavaの仕様でしょ。
254デフォルトの名無しさん
垢版 |
2017/06/19(月) 11:01:48.86ID:heYb3DeP
なんでgoogleはkotlinをアンドロイドアプリの公式言語にしたの?
なんでgolangじゃないの?
オラクルとの訴訟もあるのにjavaを切ったほうがいいんじゃないの?
2017/06/19(月) 12:12:39.67ID:xaFoAOZp
java切ってどうなるか考えればわかるだろう
2017/06/19(月) 21:05:24.63ID:snSfABSo
>>254
オラクルとの訴訟での争点は言語じゃなくてAPI
言語を何にしようが無関係
2017/06/21(水) 02:18:15.32ID:CAzvCkNY
>>254
使ってみればわかるけどgolangってメタプログラミングな部分が弱いから
既存のシステムの置き換えに向いてる言語ではないと思う。
新たに1から構築するなら可能性はあるけど。
2017/06/21(水) 02:21:47.43ID:CAzvCkNY
>>256
これ。でも段階的にjavaに頼らないようにしていくのかもね。
コレクション系がandroid用に別実装になるとかあれは面白い。

あとオラクルにjavaから離れるアピールして圧力をかける政治的意図もあると思う
2017/06/21(水) 02:29:38.77ID:sE0qxZss
JetBrainsうまうまってこと?
2017/06/21(水) 02:33:39.09ID:jljDxrF/
Jetbrains買収あるか?
2017/06/21(水) 02:59:48.56ID:CAzvCkNY
むしろ、なんで買収しないんだろな。
つーかjetbrainが謎すぎて。
なんで一社であんなに幅広くide作れるのかが謎
262デフォルトの名無しさん
垢版 |
2017/06/21(水) 05:02:56.13ID:wPEHzi2i
なんか怪しい力働いてるよなjetbrainsって
2017/06/21(水) 07:39:22.48ID:MgLtlgFl
理解できないことを怪しいって言うのは悪い癖だぞ
2017/06/21(水) 07:48:18.50ID:aInzLc5f
共通のベースに言語乗せてるだけだし、開発なんかほとんどオフショアだろ
265
垢版 |
2017/06/21(水) 08:05:49.79ID:iG5W0fvY
Kotlin nativeも頑張ってるしな。
結構そっちにも期待。
266デフォルトの名無しさん
垢版 |
2017/06/21(水) 10:55:07.74ID:GDsri7KT
>>265
同意
2017/06/22(木) 01:10:45.12ID:77+4f1XL
>>265
これが本格的に動き始めたらswiftの存在意義が、、、、、無くなるよね
2017/06/22(木) 07:18:08.18ID:Ti1xVgu4
ラットナーがjetbrainsに転職するってマジ?
2017/06/22(木) 09:16:59.96ID:yA4QDZF/
>>267
swiftのが言語仕様は優れてる
2017/06/22(木) 09:32:44.22ID:6k72kRRJ
Swift on Androidが地味に進んでるからそっちも期待
一定量の完成度が見込めたらKotlinから移行するのも良いかも
2017/06/22(木) 11:33:55.45ID:szHtJQ50
>>270
地味に進んでるって、Xamarin Androidのように、SwiftからJavaのAndroid APIを呼び出す仕組みが用意されつつあるの?
それが出来なきゃKotlinの代わりにはならんよ
2017/06/22(木) 12:05:57.96ID:E8iNX+8Y
kotlin/nativeでndkを使いたい
sdk側とndk側で同じ言語使えたら開発楽だと思う
2017/06/22(木) 12:16:58.77ID:szHtJQ50
>>272
それ何のためにNdk使うの?
2017/06/22(木) 13:02:54.50ID:6k72kRRJ
Kotlin.NativeからObjCが叩けるようになるのが先か
SwiftからJavaが叩けるようになるのが先か
どっちも現実的にはないわな

まぁそれでも言語/フレームワークの開発が絶賛進行中のSwiftの方に夢があるかな
2017/06/22(木) 13:14:48.12ID:3yY7lcXH
>>273
画像加工とかはndkで処理したい
2017/06/22(木) 14:17:05.90ID:szHtJQ50
>>275
その用途だとKotlin nativeじゃ多分意味無い
Nativeコードに変換すればc++で書いたのと同じ性能が出るというわけじゃないからね
277デフォルトの名無しさん
垢版 |
2017/06/22(木) 19:32:17.15ID:eBYfVtnR
>>276
llvmのコード吐くんじゃないの?
2017/06/22(木) 19:42:12.44ID:wKDRovrw
いやJVMは十分速いよ?
C++でもJavaと同じように書いたらパフォーマンスは大差ない
C++が速くなるのは低レベルな汚いハックができるからで、それができないならあまり意味がないということだろ
2017/06/22(木) 19:55:38.89ID:mgpLFN+F
>>277
kotlinから変換されたllvmコードは、kotlinの言語仕様を満たすために、
例えばメモリ管理はガベージコレクションが前提となるから
その為の少し大きめなランタイム付いてくるはず
境界チェックのようなc++なら省略できるコードも漏れなく付いてくるはず
2017/06/22(木) 22:21:35.91ID:3yY7lcXH
>>276
c++ほどの速度は出ないのね
結構早くなると思って期待したんだけど

>>278
以前画像にブラー処理掛けたときは結構違った
2017/06/23(金) 09:47:11.55ID:hp7X3mpn
それは言語の違いではなくアルゴリズムの違いではなかろうか
もしくはJavaヒープ/Nativeヒープの性能差分ならByteBufferを使う手もある
そこまで考慮するくらいなら素直にC/C++使った方が幸せだけど

ByteBufferはGC走りづらいから性能良いんだけど普通は使わないよねぇ
2017/06/23(金) 10:01:06.35ID:9PTuVR6v
ByteBuffer(もしくはそれと同様の使い方をするプリミティブ配列)がGCの性能に大きな影響を与えるって一体どんな状況?
バッファは長時間使い回すんだからGCなんかほとんど関係ないだろ
GCの負担になるほど頻繁に生成しまくるとかアホなことしてるとしても、その場合はネイティブヒープの方が割当時のオーバーヘッドの分かえって遅くなりそうだし
2017/06/24(土) 03:52:32.49ID:QlqTymbl
メモリ管理とかよりさ
JVMやDEXの中間コードからJITされたコードの場合、SIMDとかの特殊なCPU命令はまず使ってくれない
つまり十分に最適化されたネイティブコードに勝てる見込みはまずない

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

この「NDKで利用して」をKotlin Native でより安全に書けるのなら、価値はありそうだな
284デフォルトの名無しさん
垢版 |
2017/06/24(土) 04:16:45.08ID:qquEaJ2M
んなこたない。
JITでSIMDぐらい普通に使われるし、
むしろ事前に最低限サポートするCPUを決めてそれに足を引っ張られる事前コンパイルより、実行しているCPUの拡張命令を最大限使えるJITの方が効率的なコードになる事もある。
2017/06/24(土) 06:57:58.73ID:bDbRpy30
どっちなのさ!
2017/06/24(土) 09:27:02.16ID:32e8D3Wy
JITコンパイラの性能次第
2017/06/24(土) 09:54:27.72ID:LXfJ84Bv
Dalvik, ARTどころかOracle JVMですらSIMDは扱うよ

>>282
俺が使った時は、Androidでnew byte[1024]がOutOfMemoryでByteBuffer.allocate(1024)は通るような状況(実際は1KじゃなくM単位
画像加工を試みたんだけどbyte配列のままで処理しようとしたら分割操作が必要になってクッソ重たいのwww
2017/06/24(土) 10:51:37.84ID:iOfeax4r
ByteBufferのAPI嫌いだな
Javaの過剰設計の伝統ここに極まれりって感じ
2017/06/24(土) 15:08:57.88ID:LXfJ84Bv
NIOが出た当初も評判良くはなかったよねー, ないと困ることは確かにあるんだけど必要とする人は少ないし
それでも当時は仮想マシンを謳うくせにこんな基本機能もないのかよって風聞で過剰どころか不足と言われ
1.4は標準ライブラリを大量に追加しようってリリースだったから仕方ない
2017/06/26(月) 14:38:34.02ID:Wfn5YHgL
ByteBufferはdirectがあるからまぁ必要。
291デフォルトの名無しさん
垢版 |
2017/06/27(火) 08:01:46.32ID:7qLYNCF8
間接的にお世話になってることも知らずに文句言ってるアホばっか。
2017/06/27(火) 08:19:48.98ID:p7AYCZKI
エンジン構造も知らずに車に文句付けてるってくらい論点が異なるよ
使う側であれば別に中身を意識しなくていいんだよ
2017/06/27(火) 08:45:00.53ID:+gpX7LUM
>>288とかはエンジンなんて車にいらねーって言ってるんだけどなw
2017/06/27(火) 12:59:12.87ID:thSLzROj
APIに文句言ってるだけじゃね
Javaが使いにくいからとKotlin使ってるお前らにそれを批判する資格はない
2017/06/27(火) 14:24:44.78ID:xkXC4vKS
実際問題java apiからkotlinを切り離すのはわりと簡単だったりするの?
google内で独自apiを作ってたりして
2017/06/27(火) 16:52:29.37ID:rNyRMSOh
余裕やろうな
やる価値があるかは別として
2017/06/27(火) 17:26:00.35ID:JXIPCy9a
技術云々でなく普及のための絡みで難しそうだな
2017/06/27(火) 19:50:52.50ID:GY2ar0Yu
Java APIじゃなくJava Libraryだとするなら、そこを切り離して実用に耐えるにはJava1.4くらいには過剰設計しないと無理じゃね
2017/06/28(水) 03:27:10.10ID:4SuBLGV6
>>296
googleってそういうの不得意な気がする。
なんかいろいろ作りっぱなし感がすごい
300デフォルトの名無しさん
垢版 |
2017/06/28(水) 03:57:50.54ID:ULDUfAbu
GoogleとOracleってまだちょっと揉めてるん?
2017/06/28(水) 09:52:23.47ID:1HRXLIL1
>>299
またOracleから技術をパクれは余裕綽々よ

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

Googleはもうパクらないだろうから、Jetbrainsがパクることを期待しようか
2017/06/28(水) 11:09:49.25ID:fPVyfCmw
>>301
Androidは何もパクってないが
捨てられたApache Harmonyを引き継いだだけやし現時点ではOpenJDKになるってし
元を正せばOSS化を進めてたウンコOracleが突然APIのライセンスだなんだ
2017/06/28(水) 11:10:28.02ID:fPVyfCmw
と喚き散らしたことのほうがどう考えても筋違いや
Oracleはキチガイ集団
2017/06/28(水) 12:55:43.96ID:n0wEK4ez
当時、Sun JVMはクローズドソースでVMの中の人どころか、Java層のAPIも非公開だったろ...
ノウハウパクっておいてApache JVMから引き継いだだけだからってのは盗人猛々しいわw
305デフォルトの名無しさん
垢版 |
2017/06/28(水) 13:02:32.04ID:WVoz31+g
>>304
JavaのAPIが非公開だったってそれまでJavaプログラマは何を見て書いてたんだよ。
2017/06/28(水) 13:09:21.41ID:1HRXLIL1
面倒な奴だなぁ
APIとLibraryを区別する気はないのかと思ったら、そこは区別するのかよ
2017/06/28(水) 13:45:27.56ID:fPVyfCmw
>>304
sun javaはsunのものだがjavaはsunのものではない
何をぱくったって?
2017/06/28(水) 16:04:17.62ID:1HRXLIL1
だーかーらー、>>301で言っているだろ
クローズドソースのSun JVMに首突っ込んで、自前のJVM実装のリリースに走ったのを悪行と言っている
当時もJVM自体はGNU, Apache, MSと多様に存在してたし、独自のJVMを作る自体は気にしないけど
仲良くしようぜーって近づいて技術を盗み見るのをパクったと表現しているんだ

自前のJVM作ろうが、JVM上で動く別言語作ろうが一向に構わんが、あの時のGoogleの行為は大笑いだったんだぜ
2017/06/28(水) 17:10:45.64ID:woJsJzbY
結局フェアユースという落ちが付いたろ。判決はどこまで確定したっけ?
2017/06/28(水) 17:18:12.30ID:KUDOoNV3
Googleはライセンス料を回避するためDalvikを作った
Oracleが訴訟起こしたのはGoogleから和解金や継続的なロイヤルティーを得るため
金vs金

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

今のところ訴訟バトルはGoogle有利に進んでいる模様
2017/06/28(水) 17:24:37.74ID:KUDOoNV3
訂正

特許とAPIの著作権
2017/06/28(水) 19:19:21.21ID:xWBVVuch
しかし何れにせよ、Androidが無かったらJava(及びそのエコシステム)はもっと廃れてたはずだよね
2017/06/28(水) 20:01:24.52ID:gsVJZ8oO
JDKのライブラリ群は30年ぐらい前の発想で作られた頭が痛くなりそうな
APIも多いのでKotlinでJDKと別にモダンなコアライブラリ
作ってくれるならとても嬉しい
2017/06/28(水) 20:13:20.22ID:R8FO3Rrv
>>312
androidが何に寄与したって?w
2017/06/28(水) 20:17:07.79ID:kl/WEkBu
>>312
Javaの市場はほぼ100%エンタープライズとWebが占めててAndroidなんかカスみたいなもんだぞ
2017/06/28(水) 20:20:40.71ID:woJsJzbY
javaはヌルポ排除できない時点でだめだよな。
317デフォルトの名無しさん
垢版 |
2017/06/29(木) 00:16:43.10ID:OxDWNayQ
>>316
だからKotlinが生まれたんだっけな
2017/06/29(木) 11:02:50.69ID:7tq2Nu14
Kotlinでヌルポ起きないってギャグにしては古すぎる・・・
2017/06/29(木) 11:39:09.06ID:FObp9uyg
オプショナルを正しく使ってればヌルポなんて起きようがないんだがw
2017/06/29(木) 11:40:38.32ID:pdm0wtJX
ニュアンスとか前提の差で話が噛み合ってない気が
2017/06/29(木) 11:47:39.86ID:JFxFowh1
ぬるぽは既存のライブラリやフレームワークから飛んでくるからKotlinを使ったところで解決にならないんだよなあ
自分で書いた範囲ならJavaでもぬるぽなんて滅多に出さないわ
2017/06/29(木) 12:00:09.83ID:pdm0wtJX
テストあるからJava1.4でもClassCastExceptionは滅多に出さない的な
2017/06/29(木) 12:22:12.95ID:7tq2Nu14
プリベリファイ要求してたMobileのJava1.3は偉大だったんだなって
2017/06/29(木) 12:28:25.79ID:JFxFowh1
>>322
そういう問題じゃない
Javaのライブラリにおいて引数にnullが渡されそれが不正値であるときに発生する例外は何か? →たいていぬるぽ
Javaのライブラリにおいて属性の値がnullでそれが不正値であるときに発生するエラーは何か? →だいたいぬるぽ
明示的なチェックを怠りランタイムエラーに頼るこの糞習慣がある限りぬるぽは決して無くならない
2017/06/29(木) 13:21:35.51ID:FObp9uyg
>>321
んなことは言わなくても全員わかっとる
2017/06/29(木) 14:39:25.51ID:JUVsJKjr
そもそもテストを書けばぬるぽの9割は生まれる前から死ぬ
しかしそれでもテストをしないできないすり抜けるからこそ静的言語コード本体に「テスト機能」をつけたのだよ
人間とは間違うものなのだ
2017/06/29(木) 15:15:09.10ID:Xwk4Fgx6
Javaのライブラリにおいて引数に配列上限値が渡されそれが不正値であるときに発生する例外は何か? →たいていあれいいんでっくすあうとばうんど
Javaのライブラリにおいて配列の要素値がマイナス値でそれが不正値であるときに発生するエラーは何か? →たいていあれいいんでっくすあうとばうんど
配列操作を安全に操作できないKotlinはJavaと同じレベルで糞だな

ヌルポだけがバグの原因だと思ってるアホは置いといて、やっぱテストフレームワークを充実させたJUnitは偉大だわ
2017/06/29(木) 15:20:20.01ID:W0uOcXiB
なんだこいつw
2017/06/29(木) 19:47:56.73ID:zX+YoTjc
>>327
問題の発生頻度が段違いだろ。

型システムを採用しているにもかかわらず、型無しのヌルポを排除できないjavaはとても古臭い。
2017/06/29(木) 20:58:35.28ID:UEgl5Zip
Sunが死んだ
太陽が死んだ
2017/06/29(木) 21:19:35.80ID:cCrWWcTS
日本語で書かれた Kotlin に関するいい感じのチュートリアルってない?
2017/06/29(木) 21:34:38.83ID:pdm0wtJX
書いて覚えろ
2017/06/30(金) 00:28:01.26ID:56/qVjC+
>>331
情熱、自己顕示、小遣い稼ぎ、まあ理由はなんでもいいんだけど自分でちょろっと記事でも書いてみようとするとよくわかる
・Java入門
・Kotlin詳説
・よくわかるIntelliJ
・10日で学ぶAndroidプログラミング
あたりをごっちゃまぜにしたものが必要になる
ぶっちゃけとてもめんどくさい
2017/06/30(金) 01:58:55.10ID:q+HYO1HC
チュートリアルならKotlin Koansやるのが一番じゃない?
Webでも手軽に出来るしIDEAにも専用のプラグインがある
335デフォルトの名無しさん
垢版 |
2017/06/30(金) 10:50:35.57ID:TsXJhClE
あれいいんでっくすあうとばうんどは、0除算並みの恥ずかしいミス。
nullpoとは次元が違うわw
2017/06/30(金) 11:53:55.60ID:0zGLF76x
>>334
webのやつってなんか重くないですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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