X



Kotlin 4
レス数が1000を超えています。これ以上書き込みはできません。
0822デフォルトの名無しさん
垢版 |
2018/10/20(土) 13:28:58.42ID:qwv4GmvH
>>820
そういやそうだな。
C、そしてアセンブラ最強になってしまう。
0823デフォルトの名無しさん
垢版 |
2018/10/28(日) 15:23:51.96ID:D9Gt7gmT
Kotlin の Char には isAlphabetic() がないのな。
しょうがないからプログラムの上の方にこんなの作って使っている。

fun Char.isAlphabetic() = Character.isAlphabetic(toInt())

こういうのってこうやって簡単に作れちゃうから最初から標準のライブラリに入れてないんだろうか?
しかし最初からあってくれた方が楽と言えば楽だなあ。
0824デフォルトの名無しさん
垢版 |
2018/10/28(日) 15:42:20.00ID:ISWax1Kh
直接JavaのAPIを呼ぶべきだからだよ
そんな基準でKotlin版作ってたらキリがない
そもそもCharacterのメソッドってプログラマの使いやすさよりもUnicodeの仕様を正しく反映することを意図して作られていて、
そんなに頻繁に使うようなものではないだろ
知ってると思うけどisAlphabeticって平仮名とか含むんだぞ?
0828デフォルトの名無しさん
垢版 |
2018/10/28(日) 19:45:18.26ID:HCT7bRsv
>>824
Charでやっといてくれればnativeでコンパイルする時にもそのままにできるという利点がある。
0830デフォルトの名無しさん
垢版 |
2018/10/29(月) 10:36:46.12ID:kmR/sVLv
そして符号付きbitシフトとかどこで使うのか、今でも意味不明
Javaの負の遺産を引きずってるなー
0831デフォルトの名無しさん
垢版 |
2018/10/29(月) 10:45:27.47ID:f3zS/Ojj
Kotlinがそれなりに流行ったのはJavaの呪いを受け入れたからに他ならない
その代償がその程度であれば小さいもんだろう
0832デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:08:01.70ID:6BFpO29N
そういや符号付きシフトライト使わんな
0833デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:25:07.20ID:cH/HmFkL
javaつうか元々cの右シフトの挙動が定義されてなかったから、それを引きずってるだけ
0834デフォルトの名無しさん
垢版 |
2018/10/29(月) 13:20:28.49ID:pPcgFW80
まあそこらへんは存在したとしてもどうせ使うことはないだろうから別にいいよ
0835 ◆QZaw55cn4c
垢版 |
2018/10/29(月) 20:41:03.84ID:MQrExvvX
>>830
シフトに関しては符号付き、符号無しの区別は重要だと思いますよ
0837デフォルトの名無しさん
垢版 |
2018/10/29(月) 20:54:00.50ID:dR2v0XVE
ビットシフトはビットシフトで考えたほうが早いオールドタイプを宥めるために存在する
彼らの言う「ビットシフトでやったほうが速い処理」が必要な、いつか来る未来というのは結局来ずに終わる可能性のほうが高い
残りの折り返し見えた人生、来るほうにかけて生きてもいいけどさ
0838 ◆QZaw55cn4c
垢版 |
2018/10/29(月) 21:01:19.06ID:MQrExvvX
>>837
冪剰余のバイナリ法をみても、ビットシフトは重要だと思いますよ…
0839デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:12:23.49ID:/nQ888E/
符号無しシフトは非常に稀には使うけど 符号付きシフトは使った記憶がない
とはいえKotlinでは記号じゃないから負の遺産とは思わないな

C++みたいに右シフトがtemplate構文の邪魔するとかなったら呪縛もいいとこだけど
0840デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:19:40.25ID:a61r9koc
ビットシフトを使うほどカリッカリにパフォーマンスに拘る時にkotlin、というかjvm言語を使うかって話よね。
必要な場面があるのは分かるけど、今時のサーバーで普通のシステムを動かす前提なら普通はまず求められないし、可読性を犠牲にしてまで使うべきだとは思わない。
0841デフォルトの名無しさん
垢版 |
2018/10/29(月) 22:03:26.21ID:WjcZBaAC
主に移植性や相互運用性のために残ってるだけで批判の対象になるようなケースはほとんど実在しないと思うけどな
0842 ◆QZaw55cn4c
垢版 |
2018/10/29(月) 22:40:20.39ID:MQrExvvX
>>839
>右シフトがtemplate構文の邪魔するとか
C++11 lator でこの制限はなくなりました
0843デフォルトの名無しさん
垢版 |
2018/10/29(月) 23:00:18.21ID:pPcgFW80
使うシチュエーションは確かにあるけどものすごく稀だな
あれば2年に1回くらいは使うかもしれないけどなかったらなかったで別に困らない
0844デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:02:10.09ID:yLOLSFfe
ビットシフトな。実務で使うことはまあないな。
何かの解析とか組み込み系なら多用するだろうけど、そんなところではそもそもこちょりん使わないだろう。
0846デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:57:51.39ID:yLOLSFfe
だからそういうのを自前で実装するケースってそうそうないやろ、って話でしょ
0847デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:20:24.64ID:XfhSBW4w
元々ビット単位で詰め込んであるようなデータの解析には使った方が見易くなるかも知れない。ネットワークのパケットとか、その他色々あるよね。

もちろん割り算や余り計算すれば特定のビット抜き出す事はできるし、恐らく最適化されると最終的なコードは同じになるだろうけどね。

なのでどう書くと見易くなるかの問題だな。16で割って8の余り出すように書くか 4 ビット右シフトして 7 を and するように書くか。
だいたいは後者の方が見易く分かりやすいかも知れないが、場合によっては前者の方が良いかも知れない。
0848デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:46:02.26ID:bp+Jjz8r
ビット操作するなら素直にビット操作演算子つかえばいいんじゃね
ことりんはわり算した時のビット内容に規定があるのかわからんし
0849デフォルトの名無しさん
垢版 |
2018/10/30(火) 17:13:35.01ID:yLOLSFfe
なんだ、低レベルな処理をkotlinで書きたい人って結構いるもんなのか。
そういうのはCか最近ならGoあたりを使うと思ってた。
0850デフォルトの名無しさん
垢版 |
2018/10/30(火) 17:37:55.08ID:9UQqj8fB
最初は普通にkotlinで書いて、ボトルネックになるようならネイティブに逃がすでしょ。画像処理とか明らかにヘビーなことやるなら最初からネイティブで書くけど。

ところでkotlinネイティブで、本体の部分はJVMとかでkotlinで書いて、ヘビーな部分はkotlinネイティブで書いて利用するとか芸当簡単にできるようになるのか?
0851デフォルトの名無しさん
垢版 |
2018/10/30(火) 17:40:45.12ID:9UQqj8fB
例えばandroid画像処理アプリ本体はdalvikのkotlinで動かして、画像処理本体はkotlinで書くけどネイティブでとか。
0853デフォルトの名無しさん
垢版 |
2018/10/31(水) 00:32:35.54ID:vLSvux0L
透過的にできるようになるといいな。例えばメソッドに native 付けておけばそのメソッドは自動でネイティブにコンパイルされるとか。
0854デフォルトの名無しさん
垢版 |
2018/10/31(水) 00:37:12.39ID:l6hBIWd4
Androidならともかく、PCの方の非海賊版JVMのパフォーマンスをnativeが超えるのは相当難しそう
0857デフォルトの名無しさん
垢版 |
2018/10/31(水) 11:08:01.55ID:3SYFbLW8
>>855
LLVMのコードってほとんどただの抽象化された機械語だから、
Kotlinを動かすならこれまでJVMに依存してたランタイムの機能を独自に相当作り込まなきゃいけないよ
0860デフォルトの名無しさん
垢版 |
2018/11/01(木) 23:50:12.25ID:qS+FGnrA
これだけの大幅機能追加なら、そろそろJavaみたいにKotlin3とかに名前変更してもいいと思うけどな
0861デフォルトの名無しさん
垢版 |
2018/11/02(金) 06:54:17.88ID:vPK+PbBn
Goとかrustみたいに、システムプログラミング向けとしてもkotlin /native は使われる将来性はある?
0862デフォルトの名無しさん
垢版 |
2018/11/02(金) 07:04:17.48ID:sk3a5Htb
>>861
プリミティブのintと参照のIntを明示的に区別する仕様ではないから向いていないのではと思う。
0863デフォルトの名無しさん
垢版 |
2018/11/02(金) 07:05:33.59ID:jzdzUnCl
>>861
低いレイヤーを直接触るようなことはやりにくいから、あえて使う理由もないと思う
出来ないことはないだろうけど
0864デフォルトの名無しさん
垢版 |
2018/11/02(金) 07:23:29.85ID:7Yuyvv3H
参照型にnullを許さないってのも、微妙だな
書いてて疲れる。

hoge?.fuga
とか
hoge!!
とか返って可読性が落ちてる希ガス
0865デフォルトの名無しさん
垢版 |
2018/11/02(金) 07:41:58.45ID:99M9u1qg
>>864
そうだよ
面倒だから使いたくないでしょ
使わないようにしたいんだよ
だからそうなっている
0866デフォルトの名無しさん
垢版 |
2018/11/04(日) 10:09:12.87ID:hIyIwIUL
情報少ないけどKotlin/NativeはGCでなくARCってことでいいのかな

参考
https://blog.jetbrains.com/kotlin/2017/04/kotlinnative-tech-preview-kotlin-without-a-vm/
https://github.com/JetBrains/kotlin-native/issues/587
https://github.com/JetBrains/kotlin-native/issues/1698

>>861
GoはGCによる停止時間を極小化するために学術レベルのことやってる
 (全体の処理効率が多少下がってもリアルタイム性優先)
RustはGCでない
Kotlin/NativeがARCならシステムプログラミング用途でも支障無いと思う
0867デフォルトの名無しさん
垢版 |
2018/11/04(日) 12:16:15.86ID:3vbFFfcV
arcだとすると既存プログラムはコードを書き換えないといけない場合があると思うけど、それを承知で採用してるの?
0869デフォルトの名無しさん
垢版 |
2018/11/04(日) 12:38:32.84ID:hIyIwIUL
ARC with cyclic collector というのをちらほら見る
弱参照を使わなくても既存コードのままで問題無いようだ

ただこれがGCのような停止時間を発生させるかなどはよく分からなかった
0871デフォルトの名無しさん
垢版 |
2018/11/04(日) 13:11:27.17ID:Ujv6OCQm
諸々の問題の解決を試みているうちに、気がついたら出来上がったものはGCそのものだったというオチになりそう
既存の枯れた技術を舐めてかかって自分で実装してみてはじめてそれが十分に優れていたことに気付く
技術の過度な抽象化による間違った万能感に陥りがちなITエンジニアにはよくあること
0872デフォルトの名無しさん
垢版 |
2018/11/04(日) 13:21:16.17ID:yZ41sxSU
オリジナル言語を頑張って作ったが結局動作的にLispになったみたいな話だな
0873デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:17:20.37ID:gWJ/1CAI
そのまんまでしょ。弱参照ないARCで管理するが、循環参照用に定期的にGCは走らせる。
0874デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:21:36.32ID:gWJ/1CAI
だから循環参照するクラス大量だとフルGC走らせるのと同じことになるが、大抵のプログラムでは循環参照するクラスはそんな大量じゃないので大抵のケースではARC with cyclic collectorの方が速くなるとか
0876デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:54:43.50ID:eEexL0w4
>>870
大人の
0877デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:58:25.67ID:hIyIwIUL
>>875
nativeでは kotlin.native.ref.WeakReference
jvmでは java.lang.ref.WeakReference が有る
jsには無いからcommonにも無い
0878デフォルトの名無しさん
垢版 |
2018/11/04(日) 19:14:10.57ID:0dNetsrH
javaや.netにあるのは知ってるから質問けど
そっか、所詮、最大公約数になるから他の言語に引きずられまくりでjsとかにねぇからkotlinで標準で用意されてねぇのか。
0879デフォルトの名無しさん
垢版 |
2018/11/04(日) 20:08:53.22ID:yQqM28AX
いやKotlinに無い理由はJavaにあるからだよ
建前はともかく、実態はAltJavaとしてしか使われてないしJBもそれを前提に開発してるのが実情
0880デフォルトの名無しさん
垢版 |
2018/11/04(日) 22:06:08.12ID:MOVpxqlB
現状だとメモリ管理は対応プラットフォームの機能に寄生するみたいな感じになってるのは気になるね
iOS向けだとiOSのARCを利用するし、Cなら手動で開放してる
Kotlin/Native として統一的なメモリ管理機構を作らないと、プラットフォームを超えたコードの共有化とかはかなり限定的なものになりそう

しかし統一的なメモリ管理機構を言語で用意すると、プラットフォーム側で用意してるメモリ管理機構と重複部分ができて無駄だなとも思う
Xamarinとかはそんな感じだし
0881デフォルトの名無しさん
垢版 |
2018/11/04(日) 22:31:08.12ID:hIyIwIUL
ARCはOS関係無くね、Swiftと同じく普通にコンパイラとランタイムによる実装でしょ
現時点でcommon書くときメモリに関して支障は感じないけど
メモリ管理機構ってJVM上やJS上でどういうのを想定してる?
0882デフォルトの名無しさん
垢版 |
2018/11/04(日) 23:19:36.30ID:MOVpxqlB
JS はランタイム側でGCやってくれるし、JVMもGCやってくれるので、
アプリケーション側の kotlin コードでメモリ開放する必要ないし、循環参照とかも意識する必要ないでしょう

Kotlin iOS では、Swift や Obj-C と同じランタイム側にあるARCを使っているのではないのかな?
この場合アプリケーション側の kotlin コードでは、循環参照とかを意識しなくてはいけないのでは?

Cライブラリを使ってLinux上で直接動くような Kotlin Native コードの場合には、
malloc や free に相当するもので手動でメモリ確保開放とかやる必要があったりしますよね?
https://kotlinlang.org/docs/reference/native/c_interop.html
0883デフォルトの名無しさん
垢版 |
2018/11/05(月) 00:00:51.88ID:L+6WacOy
んなわけあるかい
LLVMで普通に直接動く実行コードを生成してるだけで、iOSのオブジェクトモデルとは別物だ
iOSに循環参照を自動的に見つけて解放してくれるって事実上の独自GCやぞ
そんなもん勝手に組み込めるんならみんなとっくにやっとる
0884デフォルトの名無しさん
垢版 |
2018/11/05(月) 00:53:31.72ID:gUcvv7gK
var x = Foo()
Bar(x)
x = Boo()

以上のような Kotlin コードをコンパイルしたときに、Boo()の結果を x に代入するまえに x に入っていた Foo() への参照をどう処理するかってこと
Bar(x)の結果、だれかが x に入っていた Foo オブジェクトへの参照を保持している可能性がある

JVMやJSだと単に x を上書きするコードにコンパイルすればいいよね
iOS向けにコンパイルするときには release(x) みたいなのを含んだ LLVM コードに変換される?
もしくは、Kotlin が独自の ARC みたいなの持っていて、それに応じた処置がおこなわれるの?

Linux 向けの Kotlin / Native でコンパイルはこのままできるのかな?
0885デフォルトの名無しさん
垢版 |
2018/11/05(月) 01:36:44.15ID:2KUKl2mx
>>882 >>884
ObjCランタイムは普通にCのABIのライブラリ群だから
純粋なC言語から呼べるしKotlin/Nativeからも呼べる

iOSでもLinuxでもプラットフォームのAPIを使うには
それに沿ったメモリ構造や解放関数の呼び出しなどのリソース管理が必要だけど
外部呼び出しを除いたKotlin/Nativeの部分にmalloc/free/releaseなどは必要無いよ
0886デフォルトの名無しさん
垢版 |
2018/11/05(月) 02:10:02.43ID:gUcvv7gK
>>885
そうすると、 Kotlin / Native で普通に確保したオブジェクトの解放はどういう方式で行われているのかな?
リファレンスカウンタ? GCでは無いよね?
リファレンスカウンタだとすれば、Kotlin/JVMでは問題無いオブジェクト同士が参照しあう構造は、避けないとダメだよね
0887デフォルトの名無しさん
垢版 |
2018/11/05(月) 06:27:49.62ID:DuzbnuJe
ここで不毛な言い争いするくらいなら実際にコード書いて試せばいいのでは。。
0890デフォルトの名無しさん
垢版 |
2018/11/06(火) 11:37:39.99ID:13CfGTjW
Kotlin 1.3 には Kotlin Native がバンドルされているみたいに書いてあるWebページがあるが、されてないよね?
bin ディレクトリ以下はいつも通りのスクリプトやバッチファイルがあるだけで kotlin-native はないんだけど。
何かオプションで変わるのか?
0892デフォルトの名無しさん
垢版 |
2018/11/06(火) 23:53:17.85ID:BD76rR44
どうやら KotlinConf 2018 の基調講演では1.3 に native バンドルすると発表していたようだ。
https://www.publickey1.jp/blog/18/kotlinnativekotlin_13winmaciosandroidwebassemblykotlinconf_2018.html
それでこういう記事になったのかも知れない。
https://www.publickey1.jp/blog/18/kotlin_13javavmkotlinnative.html

で、実際バンドルされているのかいないのか?
0893デフォルトの名無しさん
垢版 |
2018/11/07(水) 04:08:57.36ID:uTkGbVYN
古いIntelliJ(1.3) + Kotlin1.3プラグイン: 表示されず
最新IntelliJ(2.5) 素の状態(1.2.51)   : 表示されず
最新IntelliJ(2.5) + Kotlin1.3プラグイン: 新規プロジェクトでKotlin/Nativeが表示された

IntelliJ側も一定以上のバージョンが必要みたい

Gradleプラグインは混ぜる意味無いし、
GitHubのリポジトリ直リリースの方も別のリポジトリと混ぜたりしないだろうから
バンドル云々は関係無いと思う
0894デフォルトの名無しさん
垢版 |
2018/11/14(水) 11:15:27.33ID:m5bayMOd
Native使ってみたいけどNativeの恩恵にあずかれそうなアプリねーな
0896デフォルトの名無しさん
垢版 |
2018/11/14(水) 13:13:51.91ID:bryEJhFF
>>895
そらならKotlinだろうがnativeだろうがインストールできないのでは?
0897デフォルトの名無しさん
垢版 |
2018/11/14(水) 13:14:35.60ID:bryEJhFF
タイプミスった
スマホのタイプミスは変になるなあ
とほほ
0898 ◆QZaw55cn4c
垢版 |
2018/11/14(水) 21:03:33.84ID:1oDeoExT
>>897
フリック入力には早く慣れたい、今30文字/分レベル
0907デフォルトの名無しさん
垢版 |
2018/11/15(木) 23:34:43.61ID:thmm/mkW
JVMはバイトコードを読むもの
Kotlinソースコードはバイトコードを吐く
Javaソースコードもバイトコードを吐く
他のJVM言語(Groovy、Scala、JRuby、Jython等)もバイトコードを吐く
ドゥユゥアンダースタン?
0908デフォルトの名無しさん
垢版 |
2018/11/16(金) 02:51:53.33ID:RZeahJQu
>>905
概念的にはそうなんだけど実際にはそういう人間にとってわかりやすい中間的な状態はすっ飛ばして内部でいきなりバイトコード作っている。
0909デフォルトの名無しさん
垢版 |
2018/11/16(金) 06:20:06.46ID:7Oyx3zj5
>>905
Javaで書かれたコードはClassファイルに変換される
Kotlinで書かれたコードもClassファイルに変換される

つまり、OpenJDK (JVM)から見たら、実行する時点でそのコードがもともとJavaで書かれていたのかKotlinで書かれていたのかの区別はできない。
0910デフォルトの名無しさん
垢版 |
2018/11/16(金) 07:42:39.93ID:SxJuNQsd
なるほど ありがとうございます

JDKっていうのはコンパイラだけじゃなくてインタプリタも含まれてるのか
0912デフォルトの名無しさん
垢版 |
2018/11/16(金) 12:09:05.80ID:cFUtGW68
そもそもAWSのJDKっても普通のOpenJDKに対して長期的にバグフィックスとセキュリティ修正をするってだけだからな。
0914デフォルトの名無しさん
垢版 |
2018/11/16(金) 12:51:50.09ID:InCl5VjB
Kotlin使っといてJavaのLTS期間がどうとかアホかよ
Kotlinって常に最新バージョンしかサポートされてなくて、
新しいバージョンリリースされた瞬間にサポート切れなんだけど、そこ理解してる?
0915デフォルトの名無しさん
垢版 |
2018/11/16(金) 13:21:45.24ID:ffAbnTNN
>>910
JDKってか、JVMにバイトコードのインタープリタとJITコンパイラ(実行時によく使用されるメソッドとかをバイトコードから機械語にコンパイルする)が含まれてる
0916デフォルトの名無しさん
垢版 |
2018/11/16(金) 13:25:37.10ID:cFUtGW68
>>913
あ、すまん、文脈としては「だからAWSのJDKでだけ動かないなんてことはない」と言いたかった。
0918デフォルトの名無しさん
垢版 |
2018/11/16(金) 13:32:19.68ID:InCl5VjB
>>917
どのみち放置運用するようなものには全く使えないんだから、半年毎にJDKを更新するくらい大した問題じゃないでしょ
0921デフォルトの名無しさん
垢版 |
2018/11/16(金) 18:19:57.19ID:7Oyx3zj5
>>918
それが大した問題だからここ何ヶ月も世界中で大騒ぎしてたわけで。。

まあアプリ本体とJDKをDockerかなんかでまとめてコンテナ化とかしてりゃ何の苦労もないけどな、
現実に本番環境でそこまで出来てるところはまだ少数派だろう。
0922デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:42:48.03ID:4Z/2Zn+l
うわー。Pleiades インストールしたら IntelliJ IDEA が日本語に!

慣れてないと違和感あるなこれw
0923デフォルトの名無しさん
垢版 |
2018/11/17(土) 07:34:08.71ID:KWZ5EwMD
eclipseで開発してるやつおる?
最近 eclipse の Kotolin のプラグイン更新されてるみたいだけど、やっぱり IntelliJ の方が断然快適なんだろうか
eclipse ずっと使ってきたから、今から開発環境変えるのも苦労しそう
0924デフォルトの名無しさん
垢版 |
2018/11/17(土) 08:00:43.63ID:SiZmC7/H
むしろそういったIME使わずに作ってる人いない?
どうも自分で制御出来ない感じが慣れなくって
0927デフォルトの名無しさん
垢版 |
2018/11/17(土) 10:32:10.09ID:Lyuticwx
>>923
IntelliJの良いところは開発環境周りの苦労がほぼないことだよ
eclipseから移るとマジで別世界で漏らしそうになる
0930デフォルトの名無しさん
垢版 |
2018/11/17(土) 11:52:52.29ID:B4GISbTr
自演乙
0931デフォルトの名無しさん
垢版 |
2018/11/17(土) 12:03:25.62ID:Lyuticwx
>>929
日本語で命名するの、騙されたと思ってやってみたらみやすくてワロタわ。
個人プロジェクトでしかやってないけど、テストケースを日本語にしておくとめっちゃ見やすい。
0934デフォルトの名無しさん
垢版 |
2018/11/17(土) 13:47:53.54ID:rc62Vrp5
Kotlin使うなら開発元のJetBrainsを支援する意味でもIntelliJの有償版を使うべき
最近はJavaがゴタゴタしてるし、JBが強いスマホ分野ではIDE離れの動きが出てきてるし、開発環境市場はVSCodeが席巻してる
このままだと会社無くなってKotlinも終わっちゃうよ
0935デフォルトの名無しさん
垢版 |
2018/11/17(土) 13:48:05.80ID:KWZ5EwMD
SWT使うから、eclipseのWindowBuilderないとちょっときついのよね
IntelliJ は魅力的だしとりあえずインストールしてみたけど、IDE2つ起動しないといけなくなりそう
0936デフォルトの名無しさん
垢版 |
2018/11/17(土) 21:54:40.24ID:ftBRdYwQ
>>923
プラグインが0.7.2くらいの時に使ったことがあったが、Javaのプログラミングの時にまでエラーが出るようになって、
たまらずアンインストールした。
その後どうなったか知らないが、まだアルファ版のままみたし、もともとのContributorはほとんど関与していなくて、
現在のContributorは実質ほぼ一人だけみたいだから、IntelliJのサポートレベルには
遠く及ばないんじゃなかろうか。
https://github.com/JetBrains/kotlin-eclipse/graphs/contributors
0939デフォルトの名無しさん
垢版 |
2018/11/22(木) 21:37:26.67ID:WC7mf3YT
kotlin勉強してみたけど、なんていうんだろこれまでだと泥臭い書き方になるものが
すっきりかけるようになっていいな
JavaよりC#のほうがいいと思ってたがC#もdelegateを導入したあたりから複雑化して
いまとなってはkotlinのほうがなんか直感的にわかる
0940デフォルトの名無しさん
垢版 |
2018/11/22(木) 21:53:40.76ID:BxA30JEc
本当に使ってるの?
C#のdelegateは最初のバージョンからあるし、KotlinってC#をリスペクトしてて
盲目的にC#にあるものは全部取り入れてるからC#より複雑だぞ
0941デフォルトの名無しさん
垢版 |
2018/11/22(木) 23:32:14.84ID:36KvwJdV
C#よりいい点はレシーバ付きラムダ式と拡張関数の書き方かな

ジェネリクスは…
reifiedはがんばってる気がするけど
0942デフォルトの名無しさん
垢版 |
2018/11/23(金) 00:02:58.62ID:jI4KYN6E
あんま使ってないんだと思うしスレチだが
最近のC#はdelegate負の遺産として使わないぞ
0943デフォルトの名無しさん
垢版 |
2018/11/23(金) 01:25:32.06ID:fYjwDIpD
この流れはチャンスだ
使った事ないけどデリゲートって何ですか?
デリケートなら知ってます
0944デフォルトの名無しさん
垢版 |
2018/11/23(金) 12:09:30.81ID:uLRLCLS/
easy scalaとしてkotlin開発始めたんだからC#関係ないぞw
てかC#もscalaの記法パクってるの多いからな
0945デフォルトの名無しさん
垢版 |
2018/11/23(金) 12:13:14.21ID:2OhrHiHK
エヴァしか知らないとアニメ表現が全部エヴァのパクリに見える現象がここにも
0946デフォルトの名無しさん
垢版 |
2018/11/23(金) 14:30:09.94ID:88YT2KBI
作ろうとしていたのは静的型付けのgroovyで、静的型付け言語の先輩のC#やScalaの記法を参考にしただけなんですけどね
0947デフォルトの名無しさん
垢版 |
2018/11/23(金) 14:53:48.45ID:mswwi/pb
他の言語やった後に C# やると
event や delegate キーワードはなんじゃこれって思うよね
0948デフォルトの名無しさん
垢版 |
2018/11/23(金) 17:00:12.01ID:ZfEOkgRs
>>945
Cのパクリ言語の多さには驚かされます。
0951デフォルトの名無しさん
垢版 |
2018/11/23(金) 22:54:35.99ID:8BniVbk+
>>943
最後の一文から知りたいのでなくて、ネタをやりたかったのだろうとは思うが、一応説明すると、
基底クラスを継承する代わりに、継承したい基底クラスのインスタンスを指定すると、
あたかも継承したかのように振る舞う機能。
基底クラスのメソッド呼び出しは、上記で指定したインスタンスに委譲(delegate)され、
そのインスタンスのメソッドが呼ばれる。

Effective Javaによると継承は一般的に間違いを起こしやすとしてdelegateするよう勧めている。

overrideするメソッドがたくさんあるけど具象クラスがないインターフェースを実装する時に
ヘルパークラスから生成したインスタンスに委譲すると便利。
0952デフォルトの名無しさん
垢版 |
2018/11/29(木) 16:05:57.68ID:nHLSJTBx
KotlinでWindowsとかのデスクトップアプリ作ろうと思ったら、やっぱTornadoFXとかになるの?
ネイティブで作れたら嬉しいんだけど
0953デフォルトの名無しさん
垢版 |
2018/11/29(木) 16:56:34.05ID:ExWFlvb4
そもそもWindowsのデスクトップアプリを作るなら、C#かC++だろ
なんでわざわざKotlinで作るんだ
0955デフォルトの名無しさん
垢版 |
2018/11/29(木) 17:24:12.38ID:OofVoAKX
windows「とかの」
まぁクロスプラット狙ってるならそれでもいいんじやねぇの
0956デフォルトの名無しさん
垢版 |
2018/11/29(木) 17:26:42.57ID:tIHf4qpT
Javaでクロスプラットフォームなクライアントアプリを作ろうとしたが、クリップボードひとつまともに機能しかった悲しい思い出が甦る
0957デフォルトの名無しさん
垢版 |
2018/11/29(木) 18:27:18.48ID:93l6OrKk
TornadeFXとかあかんやろ(見もせずに言ってます)
ティアが嵩むほどシステムの信頼性は下がる(見もせずに言ってます)
Java JavaFX Kotlin あかんやろ、Java標準からも外されるくらいクソなJavaFX、あかんやろ(見もせずに言ってます)
0958デフォルトの名無しさん
垢版 |
2018/11/29(木) 19:16:53.65ID:8tueZiBH
とりあえずAndroid用アプリでも作っときなさい。
今はその方が使ってくれる人は多そうだしな。
GUIも問題なし。

そうでなければGUIなしの主にサーバ用プログラム作るかかな。
GUIはクライアント側に任せる。クライアント側は何でも良い。
0959デフォルトの名無しさん
垢版 |
2018/11/29(木) 19:33:01.28ID:iATAGwWK
一つのことにこだわって新しいことの習得がおっくうになるのは老化してる証拠
0961デフォルトの名無しさん
垢版 |
2018/11/29(木) 19:43:58.47ID:8tueZiBH
そうだな。ボケ防止にもなるから新しいことやった方が良い。

ただしボケ防止の場合は完璧な状態になる必要はない。
学習を続けるという脳を使い続ける行為が重要なのであって、完璧になってゴールしてしまったらそこで学習が終わってしまうからだ。
0962デフォルトの名無しさん
垢版 |
2018/11/29(木) 22:30:52.83ID:BEC3KPap
>>959
尊師のお言葉にもあるけど、経験値が増えるにつれて、わざわざ自分で使い込んでみなくてもある程度わかるようになってしまうんだよな
Kotlinなんてまさにそうで、Javaに十分精通してる人なら「ああ、記述をライトにしたAltJavaね。機会があれば使おう。」で終わり
0963デフォルトの名無しさん
垢版 |
2018/11/29(木) 22:49:53.88ID:anCZlMXk
Javaで出来ることをKotlinで書くだけだから普通に出来るでしょ
まあそもそもデスクトップアプリをJavaで作ること自体あんまりおすすめしないけど
0964デフォルトの名無しさん
垢版 |
2018/11/30(金) 02:32:19.54ID:KY1rTXDt
まあそのうちnativeできるし、何かできるんじゃなかろうか。
0965デフォルトの名無しさん
垢版 |
2018/11/30(金) 07:59:18.39ID:pFci1ptA
>>962
確かに老い先短くなると、学習する期間で縮む余命の方が、残りの余命の間に得られる利益を上回るよね。
0966デフォルトの名無しさん
垢版 |
2018/11/30(金) 08:47:06.15ID:JSlOh1Qz
>>965
余命の問題だけじゃないけどな
・この程度なら必要になったときにググれば十分だ
・類似技術を習得済みだから最悪でも今持ってるスキルの範囲でカバー可能
経験を積めば大抵こうなるから、わざわざ使い込んで試す利益は限りなく低くなる
0968デフォルトの名無しさん
垢版 |
2018/11/30(金) 12:56:15.42ID:vx8Iixcx
Kotlinに慣れてくるとJavaに戻る気は失せてくる。
型推論とか色々とコンパイラが面倒見てくれるから楽だ。
0970デフォルトの名無しさん
垢版 |
2018/11/30(金) 14:01:04.03ID:LHvn0OZF
最新のJava使えるなら型推論あるし、javaでもそこまでいらいらしなくったな。
0972デフォルトの名無しさん
垢版 |
2018/11/30(金) 21:50:01.48ID:vx8Iixcx
٩( ᐛ )و
0973デフォルトの名無しさん
垢版 |
2018/12/03(月) 11:14:21.81ID:m1M1hiPd
Kotlinは言語としてとてもよくできている、しかし現実的な用途がピーキーだ

おすすめできる人
 ・現在Javaでプログラミングしている人
おすすめできない人
 ・まだJavaでプログラミングしていない人

「いまからJava勉強してアプリとかサービスとか作ろうと思うんです」という初心者の人がいたらアホかやめとけと言うと思う
それはKotlinにも当てはまる
「いまさらJavaで作らなくてもいいぞ」という進言はJavaの文法の小難しさというより周辺の環境を考慮しての物言いなはずである
KotlinはJavaの環境のJava文法部分を変更するもので、たとえばJavaでのゲームGUIのつくりにくさや外部ライブラリの面妖さを変更してはくれない
「いやあちょうどJavaでプログラミングしようかと思ってたとこなんですよ」という人がたまたまいたならもう全力でおすすめできるのだが
0974デフォルトの名無しさん
垢版 |
2018/12/03(月) 12:14:09.57ID:7ySpxLkd
ピーキー?
0976デフォルトの名無しさん
垢版 |
2018/12/03(月) 12:19:55.67ID:XSpjUKkp
Scalaとかいう意識高い系の先輩を倒したと思ったらまさか大地主様に後ろから殴られるとはな
0978デフォルトの名無しさん
垢版 |
2018/12/03(月) 12:30:15.88ID:hZ1xmoNV
確かに今現在Java使ってるやつには折伏したくなるがプログラミング初心者ですって奴にJVM言語は勧められないな
0980デフォルトの名無しさん
垢版 |
2018/12/03(月) 12:47:01.90ID:OUmDU7Ge
もともと、既存Javaユーザーを救おうというのがコンセプトっぽいしなKotlin

>>979
本当にまったく何もわからなければC#(とUnity)
なにか新しくてそれなりに作れる言語やってみたいとか骨のあること口走ったらGo
みんなと同じがいいのならPython
0982デフォルトの名無しさん
垢版 |
2018/12/03(月) 13:57:28.32ID:ygSmLhmH
Androidアプリ作りたいって初心者は多いから、普通にコトリン勧めるよ。
そこで慣れていく頃にはサーバーサイドKotlinももうちょっとはメジャーになってるだろうし
0987デフォルトの名無しさん
垢版 |
2018/12/04(火) 12:51:09.49ID:HMynH27O
どんな最適化してくれるかに掛かっていると言える。
その辺の自由度はあまりない。
0988デフォルトの名無しさん
垢版 |
2018/12/07(金) 22:57:19.96ID:xWcDprPO
Javaだと1週間かかっていた機能追加が、Kotlin移行後は2〜3日でできるようになりました。

――工数が半分以下に減ってるんですね……! Android版Yahoo!ニュースではまだJavaを使っている部分もあるかと思いますが、今後Kotlinへ完全移行する予定はあるのでしょうか?

https://employment.en-japan.com/engineerhub/entry/2018/12/07/110000
0993デフォルトの名無しさん
垢版 |
2018/12/09(日) 14:57:26.51ID:rgDJoSoN
有難き早漏
0995デフォルトの名無しさん
垢版 |
2018/12/10(月) 14:37:10.12ID:aAESLT1a
>>990
何作りたいのかまったくヒアリングできないのならJSでもいいような気がする
実はiPhoneアプリ作りたいんでしたーでもなんとか…なんとか…いやどうだろう、なんとか
0999デフォルトの名無しさん
垢版 |
2018/12/12(水) 11:02:21.85ID:XAdiQzbb
1000への道はKotlinで敷き詰められている。
1000デフォルトの名無しさん
垢版 |
2018/12/12(水) 11:02:47.76ID:XAdiQzbb
ま、いいや。次行こう次。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 147日 17時間 2分 20秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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