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/10/03(水) 14:40:52.95ID:X8xhhWwD
そんな針に釣られるなよ
759デフォルトの名無しさん
垢版 |
2018/10/03(水) 15:29:24.11ID:4kFnpcns
>>757
複数の人を十把一絡げにして一人だと考えてないか?
なお、最初にWindowsのx64版がおかしいと書いたのは俺だ。
760デフォルトの名無しさん
垢版 |
2018/10/03(水) 15:38:50.68ID:L9VSGZ0e
自演か
761デフォルトの名無しさん
垢版 |
2018/10/03(水) 15:51:18.05ID:4kFnpcns
少なくとも俺はrubyは知らない。
2018/10/03(水) 17:56:10.58ID:qAqPsDCa
確かにこれはめんどくさい
2018/10/03(水) 19:08:32.84ID:arhBJOST
rubyはム版に生息してるいつものrubyガイジだろ
2018/10/03(水) 19:11:15.68ID:qAqPsDCa
あいつ他のスレでも見かけるけど、板中のスレ全部巡回してるのかな
2018/10/03(水) 23:09:54.42ID:My3Rjwp+
学習段階以外でREPL使う用途が思いつかない
2018/10/04(木) 20:43:53.45ID:AnIvRrkz
Kotlinではあまりやらないけど、LLだとたまに使う

巨大XMLの一部構造を解析する必要があるときなんかに、
「この要素でこの子要素持ってないやついる?」
「この要素の子要素でこの属性持ってないヤツいる?」
「この要素のこの属性が取りうる値一覧くれ」
みたいなのを逐一繰り返し聞く必要がある場合なんかにはREPLの方が楽
2018/10/04(木) 21:55:58.93ID:GW9bGudq
IntelliJのデバッガ使った方が楽じゃね
2018/10/05(金) 09:00:21.69ID:TVcycwJc
俺もIDEAのEvaluate Expression使う。完全にREPLの上位互換だと思う。
2018/10/06(土) 13:09:06.04ID:WgHY7o0s
Kotlin fest動画来たな
2018/10/14(日) 07:11:14.48ID:beYTJsD+
android studio3.2で、カーソルがある行のみ整形するショートカットを教えてください
2018/10/14(日) 08:14:53.09ID:07hzNJXL
>>770
Shift+下 の後 Ctrl+Alt+l (エル)
2018/10/14(日) 21:05:23.47ID:beYTJsD+
>>771
ありがとうございます。
けっこう手順を踏まないとダメなんですね

次に書く行がある場合Ctrl+Shift+Enterで整形できたのですが、
}前など最終行の場合にイライラしてました・・
2018/10/14(日) 22:36:11.51ID:pGqNEbzG
>>772
Settings の Keymap の Editor Actions の中に、Emacs Tab というのがある
押すと、カーソルがある行だけを、前の行に合わせてインデントしてくれる
たぶんデフォルトだとキーに割り当てられてないので、何か適当なキーに割り当てて使う
じぶんはこれを Ctrl + I と Tab に割り当てて使っている
Tabを直接入力できなくなるけど、特に困ったことは無い
2018/10/15(月) 21:35:33.77ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
2018/10/17(水) 11:52:16.07ID:5AnSWZbJ
ずっとkotlinばっか書いてると久しぶりにjavaを書いた時に==で文字列比較とかしそうになって危険
2018/10/17(水) 12:17:00.62ID:09vqJ2WQ
C#とkotlinだけで書けばええんや
777デフォルトの名無しさん
垢版 |
2018/10/18(木) 00:43:49.66ID:CSkK3ONp
今更C#覚える気にはならん
2018/10/18(木) 07:40:45.75ID:KOCQ6LQm
NativeきたらC#は不要になるな
779デフォルトの名無しさん
垢版 |
2018/10/18(木) 09:17:43.73ID:xtVP5nmJ
そういやnative試しにやってみたらちゃんとコンパイルできて感動した
2018/10/18(木) 09:39:16.93ID:NtzxCfOc
native着々と出来上がってきてていいね
2018/10/18(木) 09:50:00.53ID:LiE4kJE0
あれってKotlinだけでiOSのGUIまで全部いけるの?
2018/10/18(木) 09:53:18.19ID:LiE4kJE0
自分で調べたけど行けそうだね、今週末にでもなんか作ってみるか
2018/10/18(木) 10:07:13.26ID:+dNyBfsQ
どうせ日本語文字処理とか日本語表示とか日本語フォントとか日本語入力とかで(どう)しようもないバグとかあるんだろ
お前ら使ってわかりやすく報告しろ
2018/10/18(木) 11:12:07.81ID:Oe/xKmru
サーバー側もiOSもAndroidもKotlinのみでできてJVMからも独立して最強じゃん
2018/10/18(木) 11:13:01.88ID:Oe/xKmru
Flutterとkotlin native どっちが将来性あるんだろうか
2018/10/18(木) 11:28:37.05ID:+dNyBfsQ
いまモノがあるという時点で後者
まあ仮に3年後に乗り換えだとしても3年は便利に使えるわけだし充分だろう
2018/10/18(木) 11:35:55.95ID:LiE4kJE0
俺はFlutterの方が将来性あるし、シェアも大きくなると思うけどな。
特にグーグルがまじでAndroidを捨て去るならそうなると思う。

が、Dartとかいう古き悪しきJavascriptみたいなゴミは書きたくないからNativeを書くぞ俺は
788デフォルトの名無しさん
垢版 |
2018/10/18(木) 11:38:34.71ID:/F7k6oEO
>>784
当方はプログラミングの勉強を始めたいと考えている初心者です

ド素人の質問ですみませんが、
Kotlin nativeだとJVM(Oracle JDKやOpen JDKを含む)の制約から解放されるのですか?
ライブラリとかまだKotlin独自のものが少ないので、色々難しい課題があるとは思いますが、
とりあえずOracleからの著作権侵害訴訟のリスクに怯えなくてもKotlinで開発出来るように
なるなら、安心して開発に取り組めるようになるのではないかと思いまして
もし見当違いの質問でしたら、申し訳ありません
2018/10/18(木) 11:50:17.69ID:vXtTFe2k
>>783
emojiのおかげでそのへん心配する必要はほぼ無くなったな
2018/10/18(木) 12:03:26.12ID:Mxr2Ur4L
>>788
代わりに極めて高い確率でKotlin nativeそのものが頓挫しコード資産や経験がパーになるリスクを背負うことになるけど、それでもよければ
791デフォルトの名無しさん
垢版 |
2018/10/18(木) 13:01:35.45ID:G4vijIF0
>>783
あるかなあ?元から国際化考えて作られたものだからnativeになったからといって新たにそれのバグが追加されるとは思えんが。
2018/10/18(木) 13:10:28.86ID:bOGKoKpZ
GUI側でなんかありそうな気はうっすらする
793デフォルトの名無しさん
垢版 |
2018/10/18(木) 13:53:48.29ID:/F7k6oEO
>>790
私がKotlin native習得に挫折するなら話は分かりますが、Kotlin nativeそのものが頓挫することは
ないんじゃないでしょうか?
2018/10/18(木) 14:01:13.13ID:Mxr2Ur4L
>>793
普通にあるよ
何を勘違いしてるのか知らないが、たかが小さな会社の俺プラットフォームでプロダクションには現状誰も使ってないんだぞ?
そんなもん毎日のように腐るほど生み出されては消えていっている
逆に成功したら超ラッキー、くらいのレベルだ
Kotlinユーザーってほぼ例外なく他の言語も使えるから、Javaがゴタゴタしてるからって無理にKotlinに固執する理由もない
言っちゃ悪いけど、他に選択肢を持っている人がオモチャとして観察するフェーズであり、キャリアを賭けるようなもんじゃない
2018/10/18(木) 14:29:52.26ID:Oe/xKmru
これから新規でクロスプラットフォームでアプリ作るとしたらflutterとkotlin nativeどっちがいいんすか
2018/10/18(木) 14:41:31.35ID:mC/Lwmhp
React nativeがいいよ
797デフォルトの名無しさん
垢版 |
2018/10/18(木) 14:52:18.29ID:/F7k6oEO
>>794
なるほど、社内でのKotlin nativeプロジェクトにおける開発という意味で頓挫と仰っておられたのですね
了解しました
Kotlin自体の開発元のJetBrains社によるKotlin native開発の頓挫のことを指してるのかと思ってしまったので。。
確かに現場視点から見ると、著作権云々より色々考慮しなくてはいけないことがあるんでしょうね

私の元々の質問の意図は、Kotlin nativeで作成したネイティブバイナリのコードであれば、Oracleの著作権
侵害とは一切関わりのないコードが生成できるのかと確認することでした
実際の現場での開発運用までいくと、会社による顧客へのサポート対応とか諸々の課題を当然考慮しないと
いけないでしょうが、今回の質問はそこまで踏み込んでおらず、あくまでOracleの著作権の影響範囲とその
回避について、Kotlin nativeの開発は有用か尋ねたつもりでした

多分私を学生だと思われて、現場の泥臭いことを教えていただいたのですね
勘違いさせてすみません
50近いオッサンが、趣味と好奇心の延長で質問したことですので
2018/10/18(木) 15:56:54.48ID:Mxr2Ur4L
>>797
そうじゃなくてJetBrainsによるKotlin native開発が頓挫する話だ
JetBrainsはMSやOracle、Googleといった力押しで言語を普及させることのできるような企業と比較すれば遥かに「小さな会社」だよ
趣味なら好きにすればいいし、頓挫しても経験は決してゼロにはならないけど、
Javaロックインよりも遥かに大きなリスクを抱えることになるというのは理解しておきなさい
2018/10/18(木) 16:23:08.89ID:LiE4kJE0
>>794に禿げ上がるほど同意しすぎて禿げたわ

まだまだおもちゃとしか言えないレベルだよな。
とは言え一年前に比べたらだいぶ進化してるから、一年後にどうなってるかはわからない。
800デフォルトの名無しさん
垢版 |
2018/10/18(木) 17:02:31.96ID:/F7k6oEO
>>798
なるほど、まだKotlin nativeは使い物になるレベルに達していない代物なのですね
色々ご教授いただき、ありがとうございました。

正直、従来のKotlinとKotlin nativeとの言語としての完成度の差を知らなかったので、
大変勉強になりました
今は、(Kotlin nativeではなく)ノーマル(従来)のKotlinを触って勉強したいと思います
2018/10/18(木) 18:54:28.76ID:aXnVPh22
使い物になるかどうか俺にはまだわからない。
2018/10/18(木) 20:57:17.61ID:2fRxoa3c
flutterは使い物になってるん
2018/10/18(木) 21:23:22.75ID:L9eqCZWO
現状大差ない
どちらもプロダクトに投入してる例はあるけどまだまだこれから
2018/10/18(木) 23:19:27.58ID:W/jJZT8E
React Native + Kotlin/JS + Objective-C でアプリ書いてるけど
React Native + Kotlin/Common + Kotlin/Native (RCT_EXPORT_MODULEだけObjC) を考えてる
2018/10/18(木) 23:56:45.28ID:2fRxoa3c
React Nativeは糞なん
2018/10/19(金) 00:01:12.66ID:0w8u7dR8
>>804
Kotlin使ってるならObjCじゃなくSwift使えよ
構文とか似てるし
2018/10/19(金) 05:50:07.67ID:anLrnbMW
>>804
なんでそんな目に見える苦行の道を選んだのかw
2018/10/19(金) 06:53:56.43ID:o50FFHF4
>>806
以前別アプリで使ってたけど型推論あるとビルドクッソ遅いの直ったの?
2018/10/19(金) 10:32:23.06ID:QF/fmEqa
ちょっとでも欠点を見つけるとそれを理由にして新しいものを拒否するやつってどこの世界にも必ずいるよな
2018/10/19(金) 11:39:41.80ID:A/qV8EFP
それ以上に、古いものの欠点を過剰に騒ぎ立てて新しいものをゴリ押ししようとする奴のほうが多い気がする
2018/10/19(金) 11:45:04.89ID:A/qV8EFP
あと個人的な経験でいうと、新しいものの欠点はむしろ検討段階で見落とされて後で問題になることが非常に多い
新規導入におけるビジネス判断って、フィーチャーだけに目が行って非機能仕様や細かい制約はあまり考慮されないもんだ
2018/10/19(金) 11:47:27.55ID:QF/fmEqa
顔真っ赤だぞ
2018/10/19(金) 12:05:14.92ID:tmON5lM4
今ある問題に目を瞑って現状維持に固執するやつは多い
新しいものを見ると特に検証もせず推し進めるやつもいる
2018/10/19(金) 12:17:58.33ID:3T6bO47t
新しいものを受け入れられなくなった時が老化の始まりだと思っている
2018/10/19(金) 13:18:39.60ID:CgT1zPa0
人は歩みを止めた時に、そして挑戦を諦めた時に年老いてゆくのだと思います。

このソフトを使えばどうなるものか。 危ぶむなかれ、危ぶめば道はなし。
踏み出せばその一足が道となり、その一足が道となる。

迷わず使えよ、使えばわかるさ ありがとう!
2018/10/19(金) 13:35:53.85ID:A/qV8EFP
都合よく自分の使いたいものを想定して一般論を語るのはいけない
こんな糞パッケージや糞製品導入した奴は子ねって思ったこと、ITエンジニアならあるだろ?
2018/10/19(金) 18:28:06.35ID:anLrnbMW
自社が製品として販売しているオリジナルフレームワークを自社サービスで使っているせいで仕事を辞めたことはある。
本当に、本当にゴミフレームワークだった。
2018/10/19(金) 19:44:06.11ID:akKjNeBd
>>814
その新しいものとやらが実際には価値のないものだったら動かない方が勝りますね
819デフォルトの名無しさん
垢版 |
2018/10/19(金) 19:53:50.60ID:gPrGaWTX
重要なのは新しいか古いかではなく、自分の望みを叶える事に使える道具かどうかだ。
2018/10/20(土) 07:22:23.67ID:LPuzIORG
>>819
叶えるのに最適かどうか、と言わないとC言語でなんでもできるおじさんがやって来るぞ。
821デフォルトの名無しさん
垢版 |
2018/10/20(土) 12:16:34.27ID:u8BRF3D8
C++よりCだな
822デフォルトの名無しさん
垢版 |
2018/10/20(土) 13:28:58.42ID:qwv4GmvH
>>820
そういやそうだな。
C、そしてアセンブラ最強になってしまう。
823デフォルトの名無しさん
垢版 |
2018/10/28(日) 15:23:51.96ID:D9Gt7gmT
Kotlin の Char には isAlphabetic() がないのな。
しょうがないからプログラムの上の方にこんなの作って使っている。

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

こういうのってこうやって簡単に作れちゃうから最初から標準のライブラリに入れてないんだろうか?
しかし最初からあってくれた方が楽と言えば楽だなあ。
2018/10/28(日) 15:42:20.00ID:ISWax1Kh
直接JavaのAPIを呼ぶべきだからだよ
そんな基準でKotlin版作ってたらキリがない
そもそもCharacterのメソッドってプログラマの使いやすさよりもUnicodeの仕様を正しく反映することを意図して作られていて、
そんなに頻繁に使うようなものではないだろ
知ってると思うけどisAlphabeticって平仮名とか含むんだぞ?
2018/10/28(日) 16:24:20.91ID:B8FJbCxl
おっUnicodeのクソさならおじさん語っちゃうぞ
2018/10/28(日) 16:49:19.52ID:Pbs4Hud/
クロスプラットフォーム狙うなら用意しなきゃ駄目だな
2018/10/28(日) 17:53:59.71ID:kYm0OnSb
>>825
じゃJstarの開発マニュアルから初めてくれ

全て聞き流してあげよう
828デフォルトの名無しさん
垢版 |
2018/10/28(日) 19:45:18.26ID:HCT7bRsv
>>824
Charでやっといてくれればnativeでコンパイルする時にもそのままにできるという利点がある。
2018/10/28(日) 20:35:21.54ID:rIZW9HtV
なんでByte型に符号が必要なんだろ。
扱いづらすぎ
c#のbyte型にしてたもんせ
2018/10/29(月) 10:36:46.12ID:kmR/sVLv
そして符号付きbitシフトとかどこで使うのか、今でも意味不明
Javaの負の遺産を引きずってるなー
2018/10/29(月) 10:45:27.47ID:f3zS/Ojj
Kotlinがそれなりに流行ったのはJavaの呪いを受け入れたからに他ならない
その代償がその程度であれば小さいもんだろう
832デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:08:01.70ID:6BFpO29N
そういや符号付きシフトライト使わんな
2018/10/29(月) 11:25:07.20ID:cH/HmFkL
javaつうか元々cの右シフトの挙動が定義されてなかったから、それを引きずってるだけ
2018/10/29(月) 13:20:28.49ID:pPcgFW80
まあそこらへんは存在したとしてもどうせ使うことはないだろうから別にいいよ
2018/10/29(月) 20:41:03.84ID:MQrExvvX
>>830
シフトに関しては符号付き、符号無しの区別は重要だと思いますよ
2018/10/29(月) 20:46:14.26ID:cH/HmFkL
算術シフトなんて今時使わんのう
2018/10/29(月) 20:54:00.50ID:dR2v0XVE
ビットシフトはビットシフトで考えたほうが早いオールドタイプを宥めるために存在する
彼らの言う「ビットシフトでやったほうが速い処理」が必要な、いつか来る未来というのは結局来ずに終わる可能性のほうが高い
残りの折り返し見えた人生、来るほうにかけて生きてもいいけどさ
2018/10/29(月) 21:01:19.06ID:MQrExvvX
>>837
冪剰余のバイナリ法をみても、ビットシフトは重要だと思いますよ…
2018/10/29(月) 21:12:23.49ID:/nQ888E/
符号無しシフトは非常に稀には使うけど 符号付きシフトは使った記憶がない
とはいえKotlinでは記号じゃないから負の遺産とは思わないな

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

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

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

ところでkotlinネイティブで、本体の部分はJVMとかでkotlinで書いて、ヘビーな部分はkotlinネイティブで書いて利用するとか芸当簡単にできるようになるのか?
2018/10/30(火) 17:40:45.12ID:9UQqj8fB
例えばandroid画像処理アプリ本体はdalvikのkotlinで動かして、画像処理本体はkotlinで書くけどネイティブでとか。
2018/10/30(火) 18:47:41.21ID:gLBwTwyT
論理的にはできるはずだから、パフォーマンス比較してみたいなそれは
853デフォルトの名無しさん
垢版 |
2018/10/31(水) 00:32:35.54ID:vLSvux0L
透過的にできるようになるといいな。例えばメソッドに native 付けておけばそのメソッドは自動でネイティブにコンパイルされるとか。
2018/10/31(水) 00:37:12.39ID:l6hBIWd4
Androidならともかく、PCの方の非海賊版JVMのパフォーマンスをnativeが超えるのは相当難しそう
2018/10/31(水) 06:48:37.29ID:98pSB8cX
そこはnativeってかLLVMの範疇の話だべ
2018/10/31(水) 10:40:22.28ID:dR1y5/6Z
Kotlin1.3の新機能
https://aakira.app/blog/2018/10/whatsnew-kotlin13/

いろいろ面白い
2018/10/31(水) 11:08:01.55ID:3SYFbLW8
>>855
LLVMのコードってほとんどただの抽象化された機械語だから、
Kotlinを動かすならこれまでJVMに依存してたランタイムの機能を独自に相当作り込まなきゃいけないよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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