19/04/23 12:05:16.04 3Q52IgbA.net
>>535
>はじめてのKotlin。Javaと比較してみた
>URLリンク(qiita.com)
>
>30分で覚えるKotlin文法
>URLリンク(qiita.com)
もういっちょ!
Kotlinまとめ - 文法詳解 - クラスとそのメンバ
URLリンク(qiita.com)
557:デフォルトの名無しさん
19/04/23 13:16:20.26 gv0SOq8d.net
>>535
ある。ちょこっとする時は例えWindowsで IntelliJ 起動中でも Linux サーバ側でREPLやるな。
なんでかというと IntelliJ のREPLのウインドウはなんか出力がすぐ出なかったりでおかしいから。
その他短すぎるプログラムのためにわざわざプロジェクト作ったり packge 作るのもアホらしい時とか。
558:デフォルトの名無しさん
19/04/23 14:13:43.00 3Q52IgbA.net
Android Studio残念ポイント!
1. Android Projectしか開くことができない。
2. Hello Worldするhello.ktを開くことができない。
なんで?そう言う時は、IntelliJ使えってことか?▶なんだろうなぁ。
559:デフォルトの名無しさん
19/04/23 14:52:10.33 67h9+wNp.net
>>548,549
JUnit使う手がある。
しかも、main毎にファイル分けるとかしなくていいし。
560:デフォルトの名無しさん
19/04/23 14:54:14.57 TrDrz5+t.net
>>548
IntelliJのあれはまともに動いてないんじゃないかとずっと思ってる
まともに使えてる人いるのだろうか…?
561:デフォルトの名無しさん
19/04/23 15:47:52.74 KnPjeA9Q.net
Intの変数名をintってするのってまずい?
val int : Int = 0
こういうの
562:デフォルトの名無しさん
19/04/23 15:52:03.96 3Q52IgbA.net
>>548
REPLねぇ。
Ruby, JavaScript(Node.js), SwiftのREPL環境を使ったことあるけど、Reflection機能が充実している言語(ruby)以外、イマイチだなぁ。
コードの編集も不自由だし。
あんた、本当にLinux側でREPLする事あるの?
563:デフォルトの名無しさん
19/04/23 15:54:20.98 3Q52IgbA.net
>>552
怖いなぁ。そのコード。
俺、さっき、setNameってメソッドを作ったら、clashしてるって怒られた。
clash = conflict って意味らしい。
java.lang.StringのsetNameメソッドとコンフリクトしてるから、コンパイルしないんだって。
564:デフォルトの名無しさん
19/04/23 16:06:01.49 KnPjeA9Q.net
565:そういうことあるのか でもIntがintじゃないのってintを変数名で使ってもいいよっていう意思を感じるんだよなあ val hoge : Hoge ってすることを考えると val int : Int も自然な気がする
566:デフォルトの名無しさん
19/04/23 16:09:50.49 KnPjeA9Q.net
ああでもjavaは予約語でintだめなのか
やっぱりやめておこう
567:デフォルトの名無しさん
19/04/23 16:25:21.03 xD8uuYM0.net
そもそも逆コンパイルしたソースじゃないんだから
意味のある変数名付けなよ
568:デフォルトの名無しさん
19/04/23 16:31:00.98 3Q52IgbA.net
macOS10.14.3
AndroidStudio3.4
環境です。API Referenceを参照するには、どうすれば?
Command-Jで起動するかと思いきや?何も起こらないっす。
Webサイトへ行かないとダメなのかな?
569:デフォルトの名無しさん
19/04/23 17:37:07.37 gv0SOq8d.net
>>553
ちょっと試す時とかによく使うよ
570:デフォルトの名無しさん
19/04/23 17:41:27.91 3Q52IgbA.net
>>559
thx
そっすか。
571:デフォルトの名無しさん
19/04/23 18:02:43.25 3Q52IgbA.net
>>558
see the hit result of Help>Search(Documentation).
You can retrieve the documents by ctrl-J@macOS as well.
572:デフォルトの名無しさん
19/04/23 19:19:13.65 IWDMUBZh.net
>>555
とりあえず変な癖をつける前に『リーダブルコード』を読んでくれ、頼むから
573:デフォルトの名無しさん
19/04/23 19:47:01.75 hcUTeQ5O.net
リーダブルコード読みやすいしわかりやすいし為になるし
書いたやつ神
574:デフォルトの名無しさん
19/04/23 19:49:26.39 3Q52IgbA.net
>>562
>リーダブルコード
この本そんなに良い本なのか?
ペラペラ見たことあるけど、すでに知ってること、というか、実践していることしか書いてなかった。
575:デフォルトの名無しさん
19/04/23 19:52:05.70 Ky48Nwl1.net
>>564
嘘だ
576:デフォルトの名無しさん
19/04/23 20:08:14.43 gv0SOq8d.net
>>564
じゃあその本に書いてないことが書かれた本を出してくれ。Kindle版だけでもいいから。
577:デフォルトの名無しさん
19/04/23 20:16:21.90 IWDMUBZh.net
>>565
知っていることを再認識させてくれる良書ではある
578:デフォルトの名無しさん
19/04/23 20:18:24.37 IWDMUBZh.net
何でIDが同じになるんだよ
同じプロバイダーなのか
579:デフォルトの名無しさん
19/04/23 20:22:11.04 gv0SOq8d.net
たまーに同じID出ることあるな。ものすごく希だが。
きっと今日は良いことあるよ。あと3時間40分ぐらいで終わるけど。
580:デフォルトの名無しさん
19/04/23 20:22:12.06 3Q52IgbA.net
>>565
嘘じゃない。
ああぁ。俺は間違ってないんだな。という感じ。
まあ、詳細に読んだわけでは無いし、プログラマが知るべき97のこと、って本にも似たような事が書いてある。
Matzも「名前重要」なんて事を、97本に寄稿している。
プログラミング作法、なんかの方がよっぽど良かったな。俺には。
581:デフォルトの名無しさん
19/04/23 20:24:15.75 3Q52IgbA.net
>>569
って事はHash algorithmがpoorってこった。
582:デフォルトの名無しさん
19/04/23 20:25:36.05 B8eC+d1i.net
コードコンプリート
583:デフォルトの名無しさん
19/04/23 20:27:52.73 3Q52IgbA.net
>>570
>Matzも「名前重要」
私の設計上の座右の銘は「名前重要」です。あらゆる機能をデザインする時に、私はその名前にもっともこだわります。
courtesy of Matz
584:デフォルトの名無しさん
19/04/23 20:29:32.04 IWDMUBZh.net
プログラミング作法
プログラム書法
ソフトウェア作法
全てブライアン・カーニハン御年77歳の名著
585:デフォルトの名無しさん
19/04/23 20:31:32.66 gv0SOq8d.net
>>571
まあそういうことだな。
こんな掲示板でrichにしてどうするって感じはするが。
586:デフォルトの名無しさん
19/04/23 20:32:56.33 3Q52IgbA.net
>>566
じゃぁ、一つ俺の考え方を!
狭いスコープの中を生きる変数は、名前が短くても良い。
e.g. str1 = “OK”
広いスコープの中を生きる変数の名前は、長い名前が必要。
e.g. numberOfBooks = 100
何時いかなる時も、意味ある変数名をつけるのは、俺は反対だ。
変数名を考える事に、時間が惜しい時もある。
587:デフォルトの名無しさん
19/04/23 20:33:50.86 PyZ6tY2R.net
拡張プロパティに値セットする方法ある?
588:デフォルトの名無しさん
19/04/23 20:36:26.55 gv0SOq8d.net
やはりプログラミングも茶道とか華道とかと同様にプログラミング道を作ってわびさびが必要な時代が来たのかも知れないな。
589:デフォルトの名無しさん
19/04/23 20:36:27.27 IWDMUBZh.net
>>576
そ、ループ変数なんて i, j, k, ....nで良いやん
590:デフォルトの名無しさん
19/04/23 20:38:43.46 PyZ6tY2R.net
でもkotlinでforとか使わなくね?
591:デフォルトの名無しさん
19/04/23 20:42:02.64 gv0SOq8d.net
>>576
変数名を日本語にすれば良い。
ソース丸ごと世界に公開する予定がないならその方が分かりやすくて良い。
日本語知らないやつには難読化して軽くプロテクトが掛かった状態にもなる。
592:デフォルトの名無しさん
19/04/23 20:54:10.92 3Q52IgbA.net
>>581
昔、英語が出来なかった時には、
kabuPrice
とか
kabuka
なんて恥ずかしい名前使ってたけど、
今では、
sharePrice
でないと、code reading時にストレス感じるわぁ。
593:デフォルトの名無しさん
19/04/23 20:57:09.18 gv0SOq8d.net
漢字使え漢字
594:デフォルトの名無しさん
19/04/23 21:02:15.89 3Q52IgbA.net
val 感じ = "感じ"
print(感じ)
なんと、warningは出るが、実行可能。
595:デフォルトの名無しさん
19/04/23 21:05:59.98 3Q52IgbA.net
Qiita見ながらKotlin修行中だけど、
Jump Command便利そう。
return@forEach
continue@loop
return@loop
とか言うやつ。
これSwiftに欲しい。
596:デフォルトの名無しさん
19/04/23 21:15:06.63 3Q52IgbA.net
そんなことより、API referenceってかDocumentをofflineで見る手段、どうしてる?
Zeal, Velocity, Dashなんかを使ってるの?
Android StudioでAppCompatActivetyを引くと
android.support.v7.app.AppCompatActivity public AppCompatActivity()
Gradle: com.android.support:appcompat-v7:28.0.0@aar
たったコレだけしか表示されないっす。
597:デフォルトの名無しさん
19/04/23 21:32:38.61 bGCgvaJg.net
>>517
俺も謝っておく
触ったすまん
598:デフォルトの名無しさん
19/04/23 21:53:05.69 strBUBex.net
>>585
便利な反面1歩間違えると悲惨なコードになりそうだな
599:デフォルトの名無しさん
19/04/23 22:46:19.69 B8eC+d1i.net
尻でも触ったのか
600:デフォルトの名無しさん
19/04/23 23:21:01.87 IWDMUBZh.net
>>585
Kotlinにあるでしょそれ
URLリンク(kotlinlang.org)
601:デフォルトの名無しさん
19/04/23 23:23:43.15 IWDMUBZh.net
ごめん間違えた、SwiftにあるからKotlinに欲しいって読み違えた
Xamarinのライセンス買ってくる
602:デフォルトの名無しさん
19/04/24 05:30:04.16 BhgQi2cO.net
悲惨なコードとは?
603:デフォルトの名無しさん
19/04/24 05:38:27.15 MHxaAVIF.net
goto文みたいに次にどこに行くのか読みにくいって意味じゃないかな
そんなことはないけどね
604:デフォルトの名無しさん
19/04/24 05:51:11.02 kB2a7+Os.net
変数名漢字って結構有りだと思う
平均からすれば英語かなり必死に勉強したほうだと思うけど、ネイティブからすれば変な英語使ってるって自覚あるし
ネイティブ的な感覚がないから、命名には常に苦労する
もちろん特定用途でしか使えない手法だけど、やっぱり母国語ってわかりやすいよね
英語圏のやつらにスーパハカーが多いのはそういう理由もあるよな、母国語でプログラムできるのうらやましいわ
605:デフォルトの名無しさん
19/04/24 07:33:38.62 ZqBzQREh.net
>>594
英語人口20億、英語母語5億
くらいじゃない?
チェコ、ロシア、ルクセンブルグにHacker多い印象が俺にはある。
606:デフォルトの名無しさん
19/04/24 11:18:15.23 ZqBzQREh.net
Constructorの書き方がムズイ。
primery, secondary constructorとか、Swiftには無いし。
Kotlinスタートブック、はしばらく様子見。今の所買わない方向で…
だって、2016年の本って、情報が古そうだし。
607:デフォルトの名無しさん
19/04/24 12:11:30.51 f6AiwYyw.net
そのうち在日ユダヤが「日本人にベーグル盗まれた」なんて狂言やりそう
608:デフォルトの名無しさん
19/04/24 12:20:40.85 ymPUK1bE.net
>>594
日本語固有のややこしい漢字の名称を無理やり英語にするよりはそのまま使った方が可読性もはるかにいいわな
何か不都合が起きたらIDEでリネームすりゃいいだけの話だから、全然ありだと思う
俺はテストケース名は日本語がんがん使う
609:デフォルトの名無しさん
19/04/24 12:48:24.16 CTi91KC0.net
>>596
Swiftの designated initializer ≒ Kotlinの primary constructor
Swiftの convenience initializer ≒ Kotlinの secondary constructor
610:デフォルトの名無しさん
19/04/24 13:08:03.94 CTi91KC0.net
>>599の具体例
Swift
URLリンク(ideone.com)
Kotlin 比較用
URLリンク(ideone.com)
Kotlin 短縮
URLリンク(ideone.com)
611:デフォルトの名無しさん
19/04/24 13:28:15.20 CQvKnKTI.net
>>577だけどこれ無理っぽいな
612:デフォルトの名無しさん
19/04/24 14:01:42.54 CTi91KC0.net
>>577
勧めるものじゃないけど、一応疑似的にならば
URLリンク(ideone.com)
class A {}
private val xname = WeakHashMap<Any,String?>()
var A.name: String?
get() = xname[this]
set(v:String?) { xname[this] = v }
613:デフォルトの名無しさん
19/04/24 14:14:45.53 ZqBzQREh.net
>>599
thx
614:デフォルトの名無しさん
19/04/24 14:19:09.62 ZqBzQREh.net
>>602
Kotlin day3の俺には、なぜAのインスタンスがnameプロパティを持つのか?
良く解らん。
Rubyみたいに、Aを再オープンしてるのか?
615:デフォルトの名無しさん
19/04/24 14:22:08.49 ZqBzQREh.net
>>604
fun mainの外でthisは何を指してるのだ?
616:デフォルトの名無しさん
19/04/24 14:28:29.52 ZqBzQREh.net
>>605
>fun mainの外でthis
ってのはMainKtのインスタンスってことか?
うぅーん。後で確認。
fun main(args: Array<String>) {}
in a file called Main.kt will compile to something like:
public class MainKt {
public static void main(String[] args) {}
}
617:デフォルトの名無しさん
19/04/24 14:55:22.29 CTi91KC0.net
>>604
602は拡張プロパティとシングルトンのWeakHashMapを利用している
詳細はgoogleで
拡張プロパティ:
見た目はプロパティだが実際のところ
staticメソッドのシンタックスシュガー
fun A_name_get(thisObj: A): String? {
return xname.get(thisObj)
}
println( a.name )
↓
println( A_name_get(a) )
WeakHashMap:
キーがGC対象となるのを阻害しないMap
aとnameの関連付けはここに入っている
aがへの参照が無くなったら、nameへの関連付けもCG対象になって消える
618:デフォルトの名無しさん
19/04/24 15:34:34.20 ZqBzQREh.net
>>607
>拡張プロパティ
気になる!
Rubyの特異メソッドみたいなもんか?
特異メソッド:クラスに住んでるメソッドとは異なり、オブジェクトに住んでるソレ!
619:デフォルトの名無しさん
19/04/24 15:49:00.84 ZqBzQREh.net
>>608
特異メソッドとは違うみたい。
Rubyのクラスの再オープン、オープンクラス、monkey patching
とか言う邪悪なテクみたい。
Dateクラスに本来備わってないyesterday, tomorrowとかいうpropertyを追加したりできる。
620:デフォルトの名無しさん
19/04/24 15:52:13.17 ZqBzQREh.net
うぅーん。
top level でthisが何を指しているのか?
よく解らん。
621:デフォルトの名無しさん
19/04/24 15:52:31.03 CTi91KC0.net
連投せずググりなさい
622:デフォルトの名無しさん
19/04/24 15:56:37.35 ZqBzQREh.net
>>610
きっとthisは、nameプロパティーが呼ばれるまで定まらなくて、nameプロパティーのレシーバー(a1, a2)の事なんだ。
と言う事にしておこう。
拡張関数、拡張プロパティー、が必要になった時のメモ
Kotlinの拡張関数と拡張プロパティについて
URLリンク(qiita.com)
623:デフォルトの名無しさん
19/04/24 17:00:48.57 HA70GdMc.net
>ID:ZqBzQREh
日記は自分のブログでやってくれ
624:デフォルトの名無しさん
19/04/24 17:06:36.37 ymPUK1bE.net
散々言われてるみたいだけどまずとりあえずググる習慣をつけなさい
君はしなくていい回り道が多すぎる
625:デフォルトの名無しさん
19/04/24 20:05:15.35 CQvKnKTI.net
>>602
なるほど外のmapに入れられたのか、盲点だった
それとweakhashmapなんてあったのか初めて見たわ
626:デフォルトの名無しさん
19/04/24 20:26:09.12 ZqBzQREh.net
>>547
30分で…の記事、2日かけてようやくinfix記法のところまで読めた。
多分費やした時間は6hr以上。
全然30分じゃない。
627:デフォルトの名無しさん
19/04/24 20:28:11.81 Hf91oH+Q.net
>>614
君も謝る羽目になるよ
628:デフォルトの名無しさん
19/04/24 20:45:23.71 ZqBzQREh.net
なんと、キーワードになっている識別子もエスケープ可能!
例:isと言う名前のメソッドも呼び出せる。
foo.`is`(bar)
こんな感じ!
629:デフォルトの名無しさん
19/04/24 20:49:33.98 ZqBzQREh.net
Qiitaの30分で…の記事、走り読みした。約8hr位要した。
Vim内でチョコチョコ試運転しながら、走り読み。
お疲れ様でした。▶俺
630:デフォルトの名無しさん
19/04/24 20:52:35.15 ZqBzQREh.net
レシーバー付き関数リテラル、がよく解らんかった。
クラス移譲、プロパティー移譲
byとか使う奴。こんなのSwiftには無かったなぁ。
631:デフォルトの名無しさん
19/04/24 21:03:15.80 kFXKi6KY.net
>>596
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
太郎本を買っていない香具師は、モグリ!
632:デフォルトの名無しさん
19/04/24 21:13:18.43 kFXKi6KY.net
Kotlin は、swift とは似ていない
Kotlin は、Groovy を静的にしたもの。
つまり、Ruby, JavaScript の系統
オブジェクト指向・関数型のミックス
633:デフォルトの名無しさん
19/04/24 22:03:35.37 JvprRVGM.net
Swift程の糞はない
634:デフォルトの名無しさん
19/04/25 06:51:51.77 BgXoud3L.net
>>621
赤ベコ本の事ね。
635:デフォルトの名無しさん
19/04/25 09:50:10.40 P7ID4Nfd.net
リーダブルコード要約
URLリンク(gist.github.com)
初心に戻る良著
最近省略して書いてたから反省してる
636:デフォルトの名無しさん
19/04/25 11:34:43.93 ap5qFTOn.net
> 読みやすい
> if (length > 10 )
>
> 読みにくい
> if (10 < length)
その主観は慣れによる、俺にとっては前者の方が読みにくい
うちでは「物差しの向きに一貫性を持たせる」という指針でやっている
その上で統一のため原則として「小さい方を左に書く」
よって >, >= を使わない
if (10 <= length && length < 100)
まぁRangeやRectでメソッドでの判定をすることも多く
そういう場合は左がどうこうというのは無いが
637:デフォルトの名無しさん
19/04/25 11:52:49.98 8pGnANx9.net
>>626
>if (10 <= length && length < 100)
if (length >= 10 && length < 100)
たまに、こう書くヤツが居るが殺意を覚える
一般的には可変値が左だと思う
638:デフォルトの名無しさん
19/04/25 12:18:15.49 NAVagSqc.net
俺も可変値が左だと思うけど、統一された指針が既にあるならそれを貫いたほうがいい
一貫性はとても大事
639:デフォルトの名無しさん
19/04/25 12:32:09.35 wpotMNKo.net
小さい方を左に書く。
頭の中では、大小は、左右で考えているから
横書きと同じ感覚。
左上がスタート地点
洋画ではそう。左上に赤色を配置する。
そこが目線のスタート地点。
そこから時計回りに目線が、渦の中心へと向かっていく
640:デフォルトの名無しさん
19/04/25 12:41:16.64 NQvr5Lbg.net
>>626
普通、言葉で考えると「lengthは10以上100未満?」て聞くじゃん。
「10は~100は~?」みたいな聞き方しないよね。
主語と動詞を逆にしちゃいけないと思う。
CやC++の頃は
if (length == 10) としたかったところをコーディングミスで
if (length = 10) にしてバグるのを防ぐ為に逆向きにしてた人を見受けたけど、いまどきはIDEがエラー出してくれるからねえ。
641:デフォルトの名無しさん
19/04/25 12:49:03.99 M77Bu+mz.net
IDEなくてもコンパイル時になんか出る。
642:デフォルトの名無しさん
19/04/25 12:54:48.89 P7ID4Nfd.net
>630
なるほど、確かにバグ防止で逆向きにも一理ある
面白いこと考えるね
643:デフォルトの名無しさん
19/04/25 13:03:38.24 myBoG5tn.net
>>632
ヨーダ記法って言うやつ
644:デフォルトの名無しさん
19/04/25 13:14:11.32 wpotMNKo.net
C言語では、左に代入できないものを書いていた
比較演算子と間違えて、代入演算子を使うと、コンパイルエラー
645:デフォルトの名無しさん
19/04/25 13:15:44.93 D7t01tqT.net
ヨーダ記法が可読性低いってのは散々言われてる
結局流行ってないしやらなくていい
646:デフォルトの名無しさん
19/04/25 13:44:40.50 nzEkPIBs.net
老害ってことや
647:デフォルトの名無しさん
19/04/25 14:11:29.90 MiLFxbr9.net
老害にだけは成りたく無いと思ってました
648:デフォルトの名無しさん
19/04/25 14:21:07.30 ap5qFTOn.net
>>630
> 言葉で考えると「lengthは10以上100未満?」て聞くじゃん
なるほど、改めて思い起こすと言葉以上に図や式で考えているな
そういう資料を読み書きすることが多いからかもしれないが
10 length 100
--|----^----------|--
10 ≦ length < 100
他所のだけどイメージ
URLリンク(i.imgur.com)
649:デフォルトの名無しさん
19/04/25 21:25:32.13 BgXoud3L.net
kotlin day4
kotlinc, kotlinコマンドの-classpathオプションの使い方でハマった。
>kotlin -cp jsoup-1.11.3.jar JsoupKt
error: could not find or load main class JsoupKt
こちらが正解
kotlin -cp .:jsoup-1.11.3.jar JsoupKt
なんか、変な仕様。そろそろbuild.gradleファイルの作り方を学ぶべきか?
650:デフォルトの名無しさん
19/04/25 21:29:50.40 BgXoud3L.net
あのぉー、Kotlinでスクレイピングしたいんですけど、
Jsoupがbest practice?
URLリンク(github.com)
実は、Javaも初心者なので、Kotlinへのmigrationでヘトヘト!
651:デフォルトの名無しさん
19/04/25 22:45:02.30 k8swiVaB.net
>>640
どんなサイトをスクレイピングしたいのかによるけど、javascriptをガンガン使ってるようなサイトならSeleniumが鉄板だと思うよ。
Jsoupでもjsを実行させられるらいしけど、とても辛いと聞いたことがある。基本的には静的なhtmlを扱うためのライブラリ。
652:デフォルトの名無しさん
19/04/26 09:47:20.98 MEdB7GvY.net
>>641
thx
Kotlin day5
コマンドラインで、jsoupでスクレーピングするソースを作成できた。
昔を思い出して、実行にはMakefile作成して行った。
Makefile内で文字列操作(大文字小文字変換とか、文字列連結)とかできるかな?
Makefileはこんな感じ!
CC := kotlin
CFLAGS1 := -cp jsoup-1.11.3.jar -include-runtime
CFLAGS2 := -cp .:jsoup-1.11.3.jar
SRC := jsoup
all: go
go:
$(CC)c $(SRC).kt $(CFLAGS1)
$(CC) $(CFLAGS2) JsoupKt
~
653:デフォルトの名無しさん
19/04/26 09:49:24.06 an8vMEsm.net
>>642
makeが何かをわかっていたらそんな質問はしない
654:デフォルトの名無しさん
19/04/26 10:03:32.40 3DaeQ571.net
>>641
Seleniumってテストツールだと思ってたが、そんな使い方があるのか。
目からうろこが1000枚くらい落ちた。
655:デフォルトの名無しさん
19/04/26 10:43:09.29 v018QqLA.net
>>644
Selenium自体はテストとは無関係だよ、ただ用途としてテストツールと組み合わされることが多いだけ。
最近のサイトはReactとかで動的にガンガン組み立てられるからスクレイピングもSelenium使っておいた方が無難。
656:デフォルトの名無しさん
19/04/26 13:23:49.21 A/WNBxWE.net
Ruby, Nokogiri, Selenium WebDriver を使えば?
CSS Selector, XPath で、要素を指定する
driver.execute_script で、JavaScript のソースコードも実行できる
657:デフォルトの名無しさん
19/04/26 14:28:56.17 5b9msznW.net
Kotlin勉強してるって言ってるんだから別にRubyじゃなくていいだろ
658:デフォルトの名無しさん
19/04/26 14:34:22.95 an8vMEsm.net
NokogiriでXPathとCSSセレクタ使うならべつにこっちでも同じだと思うよ
659:デフォルトの名無しさん
19/04/26 17:19:57.29 MEdB7GvY.net
JsoupはNokogiriと違ってXPathを使ってDOMの操作ができない。
けど、使い方はNokogiriとよく似てる。
Androidアプリにスクレイピング機能を実装したいので、Ruby使えば?は却下!
660:デフォルトの名無しさん
19/04/26 17:21:05.67 MEdB7GvY.net
ところでJsoupの名前の由来って何?
Java soup = Javaのスープ
変な名前。
661:デフォルトの名無しさん
19/04/26 17:57:42.91 TC/HkfSU
662:.net
663:デフォルトの名無しさん
19/04/26 18:12:21.37 tgodpZ2Y.net
ごった煮
664:デフォルトの名無しさん
19/04/26 20:00:10.59 ErNxnYz2.net
>>651
まあまあまぁまァ、落ち着けよ
このスレのレベルはピンキリさ
665:デフォルトの名無しさん
19/04/26 20:32:30.11 MEdB7GvY.net
>>651
thx.
That is originated in “soup HTML document up beautifully”, it seems.
666:デフォルトの名無しさん
19/04/26 21:06:34.41 XuSZUgKR.net
個人の試行錯誤の実況でスレが消費されてくより過疎ってた方がマシ
667:デフォルトの名無しさん
19/04/27 09:33:03.49 2kV59Ab3.net
スレの消費はどうでもいいんだけど、試行錯誤の記録はqiitaなりブログなり自分で管理できるところに残しておいた方が後々良いと思うんだよね
668:デフォルトの名無しさん
19/04/27 09:47:43.31 X+HWf3Sy.net
>>516
fragmentは再利用されるからlateinit var
669:デフォルトの名無しさん
19/05/08 08:51:45.05 7421dKds.net
Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019
URLリンク(www.publickey1.jp)
670:デフォルトの名無しさん
19/05/08 09:08:00.50 1o0ZoV2Z.net
>>658
わかったからFlutterで(を?)使えるようにしてくれ
現時点で構造的に対応超絶困難だ
マテリアルデザインの普及にも役立つだろ
671:デフォルトの名無しさん
19/05/08 19:13:02.95 PdqlbBMH.net
kotlin day17、object式
クラスAをインターフェースBによって僅かに修正したクラスCのインスタンスが必要となった時に、サブクラスCを宣言せずにそのインスタンスabを生成できる。
```kt
open class A(x: Int) {
public open val y: Int = x
}
interface B {...}
val ab: A = object : A(1), B {
override val y = 15
}
```
672:デフォルトの名無しさん
19/05/08 21:35:17.96 1/kiWGBR.net
前スレでも書いたがKotlin/JSに続く、Kotlin/Dartトランスパイラをだな・・
まぁやれるとしたらJB側だからリソース的に無理なんだけどな
673:デフォルトの名無しさん
19/05/09 00:39:13.38 62rwCBNY.net
>>661
Flutterが目当てなら、必ずしもDartを介することはないのでは?
674:デフォルトの名無しさん
19/05/09 07:27:30.06 bwcjejUH.net
どういう意味?
675:デフォルトの名無しさん
19/05/09 07:28:01.24 bwcjejUH.net
ああ、ごめん分かったよく読んでなかった
676:デフォルトの名無しさん
19/05/09 07:49:34.83 p+Gqts9i.net
>>662
少なくともDart Kernel binaryを生成出来ないとFlutterのホットリロードが使えない
Kernel binaryの仕様はDart自体より安定してない
URLリンク(flutter.dev)
URLリンク(mrale.ph)
Flutterのクロスプラットフォーム性や開発時の機能などの結構な割合を
Dart自体の機能により実現しているのでその辺の仕組みに乗っかれないと逆に厳しいと思うぞ
677:デフォルトの名無しさん
19/05/09 09:45:14.22 Gvcl+e3N.net
flutterも最初素晴らしいと触ってたけど、dartの糞さに嫌気さしてさわるのやめたな。つか、flutterは致命的な問題もあるしな
678:デフォルトの名無しさん
19/05/09 13:10:55.61 fgBYrKh8.net
kotlinのgraphqlライブラリ微妙だからscalaのsangria使えないかなー
sangriaどころかscala触ったことないけど
679:デフォルトの名無しさん
19/05/09 15:52:18.57 drrQ8Z5A.net
>>666
どんな問題?
680:デフォルトの名無しさん
19/05/09 20:53:25.89 Gvcl+e3N.net
モバイルアプリはメモリ不足によってプロセスキルされ、キル前の状態に戻すために復元の仕組みが用意されてるがflutterではどうすればいいの?問題。
例えばandroidならonSaveInstanceStateがあるが、flutterではどうすれば?
flutterは1つのActivity上でページ遷移してるが、ページ毎に状態保存、復元は?
URLリンク(github.com)
681:デフォルトの名無しさん
19/05/09 20:58:48.44 Gvcl+e3N.net
モバイルアプリ開発したことあれば必ずプロセスキルの問題に出くわすと思うんだがflutterの開発チームはこれ放置してるという。普通flutterの設計段階でこの事考慮すべきだが全く考慮してなさそうというあほっぷり。
682:デフォルトの名無しさん
19/05/09 23:07:11.65 p+GF1Adw.net
地方都市だけど最近Android本が本屋に数冊しかない
他言語は田舎のわりにはけっこう置いてるんだけど
Kotlin移行の影響なのかも
683:デフォルトの名無しさん
19/05/10 00:21:35.88 JD2pFQw6.net
>>670
flutter詳しくは知らんが、もしそれが本当ならモバイル用途としてはたしかに致命的欠陥だな
後付けでflutterのフレームワークの中で強引に全部保存復帰するようにするから気にするな、みたいなこと
考えてるとしたらヤバイ
そういうことができないモバイルだからステートの保存と復帰はアプリに投げるように作ってあるのに・・
684:デフォルトの名無しさん
19/05/10 03:07:44.06 +vHN15fT.net
>>671
Amazon使いなさい。
685:デフォルトの名無しさん
19/05/10 10:49:17.54 pdzLc3IS.net
Kotlin/Everywhere
URLリンク(blog.jetbrains.com)
・イベントは主に5月のGoogle I/Oと12月上旬のKotlinConfの間に行われる
・イベント予定は以下の地図に表示される(今後追加されていく)
URLリンク(events.withgoogle.com)
686:デフォルトの名無しさん
19/05/10 16:19:08.62 54LLglmL.net
>>671
同志
Android関連本、俺のところも本屋には少ない。
大阪に隣接の県の県庁所在地なんだけど。
大阪のデカイ本屋へは往復2,000円掛かっちまう。
687:デフォルトの名無しさん
19/05/10 19:41:51.78 iG629wI3.net
>>675
奈良市かな?
688:デフォルトの名無しさん
19/05/10 21:37:10.49 shkkgOQu.net
>>675
Kindleおすすめ
マルチディスプレイで勉強捗る
689:デフォルトの名無しさん
19/05/10 21:56:19.96 54LLglmL.net
>>677
Kindleも試したけど、俺、紙の本派なんだよねぇ。
書き込みできるのが紙の本がありがたい。
KindleのためにiPad Pro 12inchも買ったけどやっぱり紙が良いんだよねぇ。
俺って、変かなぁ。
690:デフォルトの名無しさん
19/05/10 22:08:26.51 3MWdvG+0.net
紙の解像度にはまだまだ電子書籍は敵わない
紙の優位性はあるから書見台(ブックスタンド)とか使え、そしてやっぱイマイチだってしまい込むんだ
印刷したデータは死んだデータだってのは、まあ、その通りなんだけども
691:デフォルトの名無しさん
19/05/10 23:11:37.34 msYu7Wbl.net
ktorでhttpsやろうとしてサンプル試してみたけどなんかダメだな
692:デフォルトの名無しさん
19/05/11 01:07:57.25 i9FGZXUp.net
>>673
Amazonも楽天も使ってるよ
ただ本屋に置いてない状況を見ると
Android開発の人気無くなってきてるのかなと思って
本屋は内容確認できる長所あるし
もう少し置いてほしいところ
693:デフォルトの名無しさん
19/05/11 06:20:49.01 J+BhWrkd.net
>>680
オレオレ認証局だけど出来たよ。Let'sEncryptのところでなければ答えられるかも。
>>681
Android開発者が紙の本からKindleに移住している可能性も。
といいつつ自分はPC本は紙派。読んだ後確認する時にこのあたりかなとパラパラとめくりながら探せるので。
694:デフォルトの名無しさん
19/05/11 07:17:10.19 g6fo75+g.net
[改訂新版]Android SDKポケットリファレンス
これのKindle版って、サンプルコード見やすいですか?
[改訂新版]Swiftポケットリファレンス、こいつのKindle版掲載のサンプルコードは、文字の拡大縮小も可能で、Goodなんだけど。
Kindle Paper Whiteで閲覧します。iPad Pro 12inchもあるけど。
695:デフォルトの名無しさん
19/05/11 07:18:23.32 g6fo75+g.net
ちなみに、お試し版をPaperwhiteで見てみたけど、お試し版は最初の数ページ、しかもサンプルコードが無いページしか、試し読みできませんでした。
696:デフォルトの名無しさん
19/05/11 07:25:20.42 BxWOidMY.net
kindleはコピペできないからPDF版のあるやつは、そっちを買うようにしてる。
697:デフォルトの名無しさん
19/05/13 07:33:21.30 x9oQSWJz.net
その本つてKotlin対応してなかった気がするけど
Javaでも良いの?
698:デフォルトの名無しさん
19/05/13 09:37:44.97 Brt5xi0Z.net
ここが過疎ってるような気がしてslack見てみたけどそっちも過疎ってるのかな。
slackの使い方間違えてるのかな。。
699:デフォルトの名無しさん
19/05/13 10:33:56.13 4rccaZT+.net
>>686
JaveでもOKっす。
700:デフォルトの名無しさん
19/05/14 02:33:08.66 3xJ0OqNt.net
forEach は Iterable<T> と Iterator<T> にあるのに forEachIndexed は Iterable<T> にあっても Iterator<T> にないのは何故か?
701:デフォルトの名無しさん
19/05/14 07:44:27.90 DWuOpB8T.net
昔ケンカしたから
702:デフォルトの名無しさん
19/05/14 07:49:34.32 rV66FunX.net
Iteratorは拡張関数が4つしかなくインターフェース変換を除くと実質2つ
なのでむしろforEachとwithIndexだけが特別扱いのようなもの
703:デフォルトの名無しさん
19/05/14 10:12:17.90 jvXWFm+P.net
うんことりん
704:デフォルトの名無しさん
19/05/14 12:25:52.36 zeev4Evh.net
Ruby では、クラスに、each メソッドが定義されていれば、
include Enumerable で、map, each_line などの便利な機能を使える(Mix-in)
Enumerableのラッパーが、Enumerator で、
eachを定義していないクラス、例えば、String クラスに、Enumerable の機能を追加する
Enumerableは内部イテレータで、Enumeratorは外部イテレータ。
外部イテレータは、繰り返しの進行を制御できる
enum = "a\nb".to_enum( :each_line ) # Enumerator
enum.with_index do | line, idx | # 1行ずつ処理する
p [ idx, line ]
end
出力
[0, "a\n"]
[1, "b"]
with_index は、Enumeratorクラスのメソッドで、
map に、インデックスを渡すことも出来る
p enum.with_index.map { | line, idx | "#{ idx } : #{ line.swapcase }" }
#=> ["0 : A\n", "1 : B"]
705:デフォルトの名無しさん
19/05/14 12:36:39.21 eEvxk7yL.net
>>691
あー。そうか。
まあ Iterable は中に Iterator 返すやつ一つ作ってしまえば良いだけなので object で作ってそのまま forEachOndexed で使えば良いだけなのだがなんというか面倒。
あ、自分でそういう拡張関数作ればいいだけか。てか作っておいて欲しかっな。
706:デフォルトの名無しさん
19/05/14 12:45:32.34 BT1Jap6O.net
>>689
イテレーターは列挙するものだからインデックスと直結しないのでは
n件のリストがあったとして、それをイテラブルとして回すときのインデックスはほぼ自明だけど
そいつを3から始めるイテレーターや逆順のイテレーター
3歩進んで2歩下がるイテレーターのインデックスというのは
ルールを決めてしまえばいいんだけど本質的な属性ではないと思う
707:デフォルトの名無しさん
19/05/14 13:05:37.50 4HZJg8yK.net
拡張関数ってグローバルだよな
どこに書けばいいか迷ったあげく使うクラスと同じファイルに書いてしまう
708:デフォルトの名無しさん
19/05/14 16:08:52.35 o/ZzSQAi.net
拡張関数めっちゃ便利だけど、用法用量を守らないととても危険だよな
709:デフォルトの名無しさん
19/05/14 17:29:04.99 IaXs534s.net
拡張関数の定義を interface の中にすれば、使用可能範囲をコントロールできる
710:デフォルトの名無しさん
19/05/14 18:31:50.97 hlTwFz7+.net
Kotlin用ゲームエンジンらしい
URLリンク(korge.soywiz.com)
711:デフォルトの名無しさん
19/05/14 19:29:46.17 o/ZzSQAi.net
>>698
知らなかった
712:デフォルトの名無しさん
19/05/15 12:44:33.69 laKGlnoI.net
どのみち、IDEがないと読み難い言語だから、Extensionはさして気にならない。
プロパティアクセスのせいで、知らず知らずにシャドウしてしまう方がずっと気になる。
713:デフォルトの名無しさん
19/05/16 18:46:37.64 ctMRzncm.net
ts2ktって放置されているっぽいけど、今でも使いものになるの?
714:デフォルトの名無しさん
19/05/16 19:36:52.04 9YitK9mS.net
>>699
Android以外はちゃんと動くんかな・・・・?
715:デフォルトの名無しさん
19/05/17 22:06:49.39 5qYZVYSF.net
>>698
拡張した本人しか認識できないのもができるからな。
716:デフォルトの名無しさん
19/05/18 09:09:23.16 cPFyVnxJ.net
>>699
興味あるわこれ
今やってるの終わったら使ってみようと思うんだけど誰か試してみた?
717:デフォルトの名無しさん
19/05/18 12:51:09.41 JYN3Apin.net
社内の持ち回りの勉強会で、vimでKotlin開発する環境を気合いで整える、という発表をしたら大受けしたわ
もちろんネタとしてな。絶対idea使った方がいいぞ。
718:デフォルトの名無しさん
19/05/18 13:41:12.48 1MmHbsk/.net
無駄なことに時間使ってんな
719:デフォルトの名無しさん
19/05/18 16:19:18.33 IkSg3I69.net
やらないと後で「おまえやるって言ったよな」と責められるw
720:デフォルトの名無しさん
19/05/18 22:59:21.42 rrFT3N/c.net
kotlinでandroid開発の記事載ってる雑誌ないですか
ネットや書籍から情報得るしかない?
721:デフォルトの名無しさん
19/05/19 01:39:23.54 jp3Kdatt.net
本とかもう時代遅れ
722:デフォルトの名無しさん
19/05/19 05:37:35.31 +tXYNnhs.net
なぜ雑誌?本ならあるのだが。
723:デフォルトの名無しさん
19/05/19 16:40:35.01 +tXYNnhs.net
そもそも今ではプログラミングについての雑誌が少ないよね。
Software Design か日経ソフトウェアぐらいなんじゃないか?
ハードウェア寄りな Interface みたいなのもあるが。
724:デフォルトの名無しさん
19/05/19 18:23:21.54 fqpGXrMP.net
>>710
そんなこたぁ無い
725:デフォルトの名無しさん
19/05/19 19:18:58.24 Ma/nTg+4.net
本はディスプレイ以外に開けるから便利だよね
726:デフォルトの名無しさん
19/05/19 19:40:59.75 jp3Kdatt.net
掌田津耶乃でも読んでろカス
727:デフォルトの名無しさん
19/05/19 20:36:47.66 fqpGXrMP.net
つやのちゃん知ってるんだw
728:デフォルトの名無しさん
19/05/20 00:21:44.28 pT4TPZWt.net
断片的なのはネットで調べればいいが、
体系的に全体をまんべんなく知りたいってときは、
やっぱり書籍が適してると思う。
729:デフォルトの名無しさん
19/05/20 06:11:32.77 BYsItzt6.net
書籍もガッツリ読むなら紙の本がいいし、写経するなら電子書籍の方がいいし
選択肢が増えた分だけむしろ選ぶのが大変になってるな
730:デフォルトの名無しさん
19/05/20 11:03:48.81 +QyKHsoF.net
SoftwareDesignは最近はもう読んでない
バックナンバーも大量に棄てた
川上さんの連載のだけ残してる
731:デフォルトの名無しさん
19/05/20 11:35:05.49 MLZoEYDf.net
雑誌のいいとこは判型が大きいことだなw
ただのブログよりは読者層を意識してる率が高くて、Web記事よりはまとまりと終わりがある可能性が高いという感じか
なにの情報を欲しいと思ってるのかに依存する気がするぞ
732:デフォルトの名無しさん
19/05/20 11:43:30.49 3K6cHyBG.net
雑誌の良いところは、本よりも情報の鮮度が高いってとこだね。
733:デフォルトの名無しさん
19/05/20 15:22:51.14 poyp5Kqc.net
日経ソフトウェアは、素人向け
SoftwareDesign ぐらいか。
WEB+DB は、システム環境・プログラマーが半々ぐらい
他は、日経Linux は、ラズパイが多い
フレームワークの巨匠と言えば、掌田津耶乃・山田祥寛
山田の講習会は、数万円とか。
掌田なら、十万円ぐらい行きそうw
734:デフォルトの名無しさん
19/05/20 16:58:22.74 E7kxjeRz.net
つやのって読む価値のない入門書しか出してないだろ
735:デフォルトの名無しさん
19/05/20 20:22:34.07 Nm/yOzhN.net
最近の日経ソフトウェアはPython雑誌みたいになってる
Kotlinの記事なんて全く載らない
736:デフォルトの名無しさん
19/05/20 20:48:41.91 oKvxv21R.net
そういやPython大ブームだね。
機械学習関係で火が着いた感じか。
737:デフォルトの名無しさん
19/05/20 21:27:41.17 QYS7YbVl.net
数年後に始まる小学校でのプログラミング授業もPython採用と予想。
738:デフォルトの名無しさん
19/05/20 21:33:58.54 TjPZT1E7.net
授業は基本マイクラを使うぞ
739:デフォルトの名無しさん
19/05/20 22:00:59.30 9o82qJOc.net
kotlinのおすすめ無料学習教材は?
740:デフォルトの名無しさん
19/05/20 22:10:44.54 0DZMUBSm.net
勧めるようなものは特にない
741:デフォルトの名無しさん
19/05/21 08:28:21.83 2xcSjans.net
なんか公式のチュートリアルみたいなのなかったっけ
742:デフォルトの名無しさん
19/05/21 08:31:57.13 qls//8Wz.net
おすすめかどうかを意識しろ
あるかどうかではなく、おすすめかどうかだ
検索すりゃこのご時世英語含めてたくさん出てくる
そんなの見りゃわかる
おすすめできるものかどうかがいちばん大事
743:デフォルトの名無しさん
19/05/21 10:08:36.16 x7pfOsc7.net
ただで教える側に求めすぎだろw
744:デフォルトの名無しさん
19/05/21 10:10:30.25 YlTjoOUk.net
>>723
NGに入れろ
スッキリ
▼
▲
745:デフォルトの名無しさん
19/05/21 10:56:17.04 KjOgf3b2.net
kotlin使った事無くて勉強中なんですが
null安全は通信で届いたオブジェクトについてどう働きますか?
あるいはデシリアライズされたオブジェクトについて
そこでもnull安全ですか?
746:デフォルトの名無しさん
19/05/21 11:04:08.23 x7pfOsc7.net
当然どんなオブジェクトであれKotlinで書かれている限りnull安全は機能するけど、君はそもそもnull安全を誤解してそうな予感がする
747:デフォルトの名無しさん
19/05/21 11:11:41.76 KjOgf3b2.net
検索すると、null不可な変数にnullを代入できないこと、とあります。
そうすると通信で受信したオブジェクト等はどうなるのかなと。
この理解は間違っていますか?
748:デフォルトの名無しさん
19/05/21 11:39:29.09 c7g0QxSl.net
どこまで「使ったことない」かにもよるんだが
・nullかどうかの条件分岐をクリアした変数
・nullかどうかの条件分岐をまだやってない変数
の2つがあるだけだと思っていい
外部から取得したデータがあったとして、nullチェックをまだしていないならnullableだ
どこかで誰かが(静的文法解析上)nullではないという条件分岐を通したあとならそれはnonnull
どこかで誰かがその後にnullになるかもしれない処理を通したらnullableに戻る
749:デフォルトの名無しさん
19/05/21 12:29:35.90 ZAINLMmO.net
>>736
文字列とか通信データから、新たなオブジェクトを構築するのでしょ?
構築できたら、null ではないし、
データがおかしくて構築できなかったら、エラー!
750:デフォルトの名無しさん
19/05/21 12:40:36.99 sr6+MIRN.net
当然nonnull出ない変数ににnullをぶち込んだらエラーになる
751:デフォルトの名無しさん
19/05/21 13:55:21.57 2xcSjans.net
>>736
nullを入れられない型なのにnullを入れようとしたらその時点でオブジェクトを生成できずにエラー
なので、json文字列を受け取ってオブジェクトを生成する部分で要件に合わせて適宜いい感じに処理する必要がある
752:デフォルトの名無しさん
19/05/21 14:53:46.84 BVi2WQ22.net
>>736
試してみればわかると思うが、nillableな型にnull入れてObjectOutputStreamで書いた後でnullableでなくしてコンパイルしなおしてからObjectInputStreamで読もうとするとInvalidClassExceptionが出る。
753:デフォルトの名無しさん
19/05/21 15:17:02.88 RVxsm+ja.net
kotlin使ったことないって奴向けの説明ではないな
754:デフォルトの名無しさん
19/05/21 16:06:22.73 BVi2WQ22.net
図解しないとダメか?w
755:デフォルトの名無しさん
19/05/21 17:40:26.31 x7pfOsc7.net
そもそも聞かれてることに対する回答としてはピントがズレてる
自分の知識自慢したいイキリオタク感がすごい
756:デフォルトの名無しさん
19/05/21 18:43:35.05 gj4VcULk.net
>>734がおそらくしているであろう幻想を抱いていた時期が自分にもありました
とエスパーしながらいうと、通信で受信したオブジェクト等はnullableな型を持つことになるだけで、
Kotlinにしたからといってnullチェックが要らなくなるわけではない。
>>736には誰の説明が分かりやすかっただろうか。
757:デフォルトの名無しさん
19/05/21 20:08:28.33 BVi2WQ22.net
>>744
ずれてないだろ。通信でオブジェクト送る話なんだから。
758:デフォルトの名無しさん
19/05/21 20:11:45.34 grT0tw0/.net
Javaのコードを呼び出すところは、全部そうだね。
Kotlinはnullableであることを「強制しない」。
AndroidとかjavaxのAnnotationでもついていない限り。
759:デフォルトの名無しさん
19/05/21 20:44:09.88 wTyF+2my.net
>>728
URLリンク(play.kotlinlang.org)
760:デフォルトの名無しさん
19/05/21 21:17:46.88 KjOgf3b2.net
null安全は@NotNullとどう違いますか?
761:デフォルトの名無しさん
19/05/21 23:00:11.33 MtIoFqpw.net
コンパイルエラーになるかぬるぽでばーんってなるかの違い
762:デフォルトの名無しさん
19/05/21 23:15:32.28 dJ+4PuSm.net
null安全は以下の機能を包括する言葉
・型システムでnull許容とnull不可を区別出来る
・null許容型の取扱いを容易にするモナド操作などを言語仕様や標準ライブラリに持つ
763:デフォルトの名無しさん
19/05/22 00:26:45.64 s0RuNCYO.net
∧_∧ / ̄ ̄
( ´∀`)< ド?
( ) \__
│ │ │
(__)___)
764:デフォルトの名無しさん
19/05/22 13:10:44.21 o0mLtMWH.net
iosアプリ作るのは現実的にいけそう?
765:デフォルトの名無しさん
19/05/22 15:26:22.63 06P4CJxl.net
いけるいける
766:デフォルトの名無しさん
19/05/22 17:11:00.38 ddL9armR.net
大丈夫大丈夫、なんの問題もない
767:デフォルトの名無しさん
19/05/22 19:37:38.21 N+dUt+tn.net
逆引きのAndroid開発用のKotlin本ないの?
Javaのはあるけどさ
768:デフォルトの名無しさん
19/05/22 21:14:49.49 o0mLtMWH.net
>>754
>>755
ほんとのほんとに?
作り始めてまうで?
769:デフォルトの名無しさん
19/05/22 22:18:54.87 mQdasoF8.net
うん、大丈夫、なにも心配することないから
770:デフォルトの名無しさん
19/05/23 00:10:33.20 K2oq56d+.net
>>754,755,758
iOSアプリを実際に作った人がこの板にこんなにいるとは思えないんだがw
いや、自分もないんだけどさw
771:デフォルトの名無しさん
19/05/23 00:56:30.37 ClSxeVCE.net
Kotlinでの競技プログラミングのコンテストがあるよ!
5月28日の23時35分から2時間半!
Kotlin Heroes Announcement
URLリンク(codeforces.com)
URLリンク(codeforces.com)
772:デフォルトの名無しさん
19/05/23 01:52:40.87 kvy164Qh.net
英語で書かれた問題を解読するだけで2時間半が経過してしまいそうな予感
773:デフォルトの名無しさん
19/05/23 02:45:36.97 K2oq56d+.net
>>760
IntがintになるかIntegerになるか考慮しないといけなかったらちょっと嫌だなあ。
774:デフォルトの名無しさん
19/05/23 06:58:10.23 ZvIUMcmJ.net
>>759
大丈夫、Kotlinも業務で使ってるしiOSアプリも業務でいくつも作ってるからさ
Kotlin nativeのiOSアプリも実際に作ってみたって人と勉強会の懇親会で話したことがある
775:デフォルトの名無しさん
19/05/24 09:20:43.95 1flrLOhd.net
>>756
必要か?
776:デフォルトの名無しさん
19/05/24 13:57:22.09 WFuDBTgU.net
Listの初期化って
var list = listOf<Hoge>()
と
var list :Hoge? = null
どっちがいいの?
777:デフォルトの名無しさん
19/05/24 15:11:48.77 10iCK04b.net
>>765
全く違うもの出されてどちらがと聞かれても・・・
778:デフォルトの名無しさん
19/05/24 16:53:05.84 cg0Vnpe0.net
>>765
その2つでいうなら下はリストを作れてないから上一択になるぞw
779:デフォルトの名無しさん
19/05/24 16:57:14.79 WFuDBTgU.net
間違えた下は
var list :List<Hoge>? = null
ね
これならどっちがいい?
780:デフォルトの名無しさん
19/05/24 16:59:34.27 cg0Vnpe0.net
どちらにせよその2つは作られる型が違う
nullableにする必要があるかどうかで使い分けろとしか
781:デフォルトの名無しさん
19/05/24 17:00:11.96 cg0Vnpe0.net
俺だったら何か理由がない限り上
782:デフォルトの名無しさん
19/05/24 17:00:17.36 g+HqU4NL.net
特別な理由がない限り上はvarじゃなくてvalにすべきじゃない?
783:デフォルトの名無しさん
19/05/24 17:15:07.02 WFuDBTgU.net
>>770
なぜ?
>>771
valにしたら代入できないじゃん
784:デフォルトの名無しさん
19/05/24 17:52:50.04 8qiM3xuo.net
val にして空の MutableList 作るのは?
785:デフォルトの名無しさん
19/05/24 18:01:30.45 XLHoRxVW.net
俺はemptyListだな
786:デフォルトの名無しさん
19/05/24 18:03:21.78 6OR0USBX.net
?取るのめんどいから空のリストにしてくれ
787:デフォルトの名無しさん
19/05/24 18:27:38.07 g+HqU4NL.net
>>772
ああごめん val にしてMutableList な
だが、おまえが欲しいのはたぶん
var list = emptyList<Hoge>()
788:デフォルトの名無しさん
19/05/24 18:51:13.35 xfff2+MO.net
>>772
Kotlinにおいてはvarもnullableもごく限られた場面でしか使わない例外的なものだということは知っておいた方が良い。
nullableは無駄に取り扱いが面倒だったり、varは予期せぬバグを生み出す温床になり得るから。
なので
val list = mutableListof<Unko>()
が、大抵の場面で正解。
789:デフォルトの名無しさん
19/05/24 19:42:38.12 Oa3ZkFre.net
Unkoって何ですか
790:デフォルトの名無しさん
19/05/24 20:03:18.59 g/LimCLF.net
えっお前んちUnkoねーのだっせー
791:デフォルトの名無しさん
19/05/24 20:04:30.18 6mh6tvLx.net
かといって盲目的に mutable collection を使うのもどうかと思うがな
792:デフォルトの名無しさん
19/05/24 20:17:54.95 73sdMVIH.net
盲目的も何もコンテキストが分からないんだから一般論としてvarを使うよりはMutableListを使う方が適してると言うしかないだろ
どんな状況でも何がなんでもMutableListを使えなんて誰も言ってない
793:デフォルトの名無しさん
19/05/24 20:23:02.45 73sdMVIH.net
俺も>>777にするな。
もしくはlateinitを使うか、どちらか。
794:デフォルトの名無しさん
19/05/25 05:49:19.79 wB1WneOU.net
>>768
状況にもよるけど、>>782で出たlateinitか、場所によっては
val list by lazy{ [List<Hoge>を返す式] }
そもそも、listの要素が出揃っていない段階でlistを宣言するのが適切でない可能性も。
val list = [List<Hoge>を返す式]
のようにいきなり最後まで計算するか、少々面倒だけど>>773の言うように一旦
val temporaryList = mutableListOf<Hoge>()
して要素が出揃ったら
val list = temporaryList.toList()
するとか。
795:デフォルトの名無しさん
19/05/25 06:37:38.07 fh0ztzaz.net
lateinitはvalにできないから糞
796:デフォルトの名無しさん
19/05/25 07:20:32.83 Kvnc/U5Q.net
そんなご無体な
797:デフォルトの名無しさん
19/05/25 08:02:42.85 9ELY4FpV.net
valだけが正しい。valにできないなら新しいvalにコピーするべき
798:768
19/05/25 10:50:32.51 VlF1HZqT.net
>>783
それだとvalじゃなくてvarじゃね?
始めに空のList入れる意見が多いけど結局使う時にemptyかチェックするでしょ
nullかどうかチェックするのと同じじゃね?
799:デフォルトの名無しさん
19/05/25 10:57:44.94 VlF1HZqT.net
nullの警告が厳しいからこそ使うのはどうだろうか
nullならnullだと知らされるがemptyじゃ何の警告も出ない
800:デフォルトの名無しさん
19/05/25 13:1
801:6:02.71 ID:exhgzloH.net
802:デフォルトの名無しさん
19/05/25 13:19:44.44 F8alA812.net
>>787
そうとは限らない
単にリストの要素数が0ならそれでいいケースも多い
そう考えると明らかに初期化を忘れてるのが分かるという意味でnullを入れておくのもいいかもしれない
803:デフォルトの名無しさん
19/05/25 17:48:30.03 AAsiXMmO.net
Androidなどで、非同期処理が関わってくると、
valは注意して使わないといけない場面が、意外にたくさんあることに気が付く。
804:デフォルトの名無しさん
19/05/25 18:20:07.77 lux9UzI+.net
Activityのbindingはby lazyのval
Fragmentのbindingはlateinit var
805:デフォルトの名無しさん
19/05/26 23:17:26.29 /1jO9AOV.net
>>765
そもそもローカル変数の話なのかプロパティの話なのか…
806:デフォルトの名無しさん
19/05/27 12:03:53.57 j1Bw0s67.net
emptyListってシングルトンだから生成コストがないってのは分かるんだけど、
今時その程度の生成コストを気にする場面ってそんなない気もする
富豪的プログラミングなんて言われるかもしれんけど、もはやそれ自体死語だしな
807:デフォルトの名無しさん
19/05/27 12:57:29.86 ffeERoRR.net
>>793
ローカルならそもそも悩まない。
val且つmutableにして都度addallするか、var且つimmutableで丸ごと置き換えるか、はケースバイケースで。
808:デフォルトの名無しさん
19/05/27 13:34:53.60 IGUdGZaE.net
valで都度変数作るからなぁ
809:デフォルトの名無しさん
19/05/27 14:33:20.72 24xkxhR7.net
プロパティの話ね
mutableにしてもそもそも生成は別のところでListごと作るからmutableだろうがListだろうが関係ない
当然後から代入するからvalにはできない
810:デフォルトの名無しさん
19/05/27 14:57:26.23 EJcO498B.net
copyメソッド
811:デフォルトの名無しさん
19/05/27 23:34:59.34 s432cqVY.net
サーバーサイドばっかだからかもしれんがプロパティにMutableListを使うことがそうそう無い
データクラスのコンストラクタ引数に val list: List はよくある
812:デフォルトの名無しさん
19/05/27 23:56:54.45 zFWKvIPE.net
内部DSLとかの指示を構築する系の実装で使うかな
813:デフォルトの名無しさん
19/05/28 05:58:36.43 sEeuOOEX.net
サーバーサイドかどうか関係なくない?
俺はよく使うよ。例えばツリー構造になってるデータを読み込む処理で自分の子ノードのリストを持つため、とか、これ昨日書いた。
814:デフォルトの名無しさん
19/05/28 06:33:15.65 f4BtQ/HR.net
val text = ""
って
val text :String = ""
って書いた方がいい?
815:デフォルトの名無しさん
19/05/28 07:05:11.16 Bdaqy37y.net
>>802
やるメリットは特にない
むしろ本当に宣言通りStringかどうかチェックするぶんビルド遅い
816:デフォルトの名無しさん
19/05/28 08:10:42.72 sEeuOOEX.net
>>802
いらない。何をどう見ても明らかにStringだから意味ない。
817:デフォルトの名無しさん
19/05/28 23:54:42.49 g+jKUI0N.net
>>802
Javaのvarで似たような議論がある。
URLリンク(orablogs-jp.blogspot.com)
818:デフォルトの名無しさん
19/05/29 01:39:37.10 KhqOXHGU.net
Kotlinに、SwiftのExpressibleByStringLiteralみたいなのが無くて本当に良かったと思う
あれは呪いだ
819:デフォルトの名無しさん
19/05/29 02:17:57.59 Qb2i3AGM.net
>>802 は、IntelljIDEA か Android Studio 使ってないのかね?
警告消して緑色になるようがんばれ
おれは警告にどうしても従えない場合でも、アノテーション使って絶対緑色にする
820:デフォルトの名無しさん
19/05/29 04:33:25.97 XoYuC6Fl.net
Charは'a'なのね
821:デフォルトの名無しさん
19/05/29 06:05:24.96 ouhOLTM0.net
>>806
なにそれ?
822:デフォルトの名無しさん
19/05/29 07:50:04.16 KhqOXHGU.net
>>809
URLリンク(ideone.com)
文字列リテラルが本当に文字列なのか分からなくなるやつ
823:デフォルトの名無しさん
19/05/31 14:21:13.30 Jjn+Dq6k.net
>>806
PHPだと1リクエストごとにFWの初期化処理を行っているのが遅い理由でしょ
特にLaravelは読み込むファイルも多いし重い
他の言語だとアプリケーションサーバ起動時に一回だけ初期化処理をするので1リクエストあたりの処理が少ない
PHPでもSwooleやReactPHPなどを使えば同じことはできるけど、まあ既存のFWを乗っけてもバグりやすいだろうね
824:デフォルトの名無しさん
19/05/31 18:46:44.28 R6sHUJ5K.net
なんの話だよ
825:デフォルトの名無しさん
19/05/31 22:32:24.72 VAUlN9pw.net
やべぇやつが来たなwww
826:デフォルトの名無しさん
19/06/01 07:53:39.61 6Ne8KtIA.net
普通に誤爆でしょ
827:デフォルトの名無しさん
19/06/01 11:37:30.64 OCCxHMSa.net
android用途:元気
サーバーサイド用途:全く流行らず
kotlin/native: 瀕死
kotlin.js: 死亡
現状こんな認識なんだけど合ってる?
828:デフォルトの名無しさん
19/06/01 11:43:16.53 HBXiOctn.net
Xamarin程の糞はない
829:デフォルトの名無しさん
19/06/01 12:20:19.48 oJ6AvSx+.net
>>815
Kotlin nativeはなんかもう不死鳥とかみたく蘇ったりする予定なので書いておいてください
830:デフォルトの名無しさん
19/06/01 14:59:33.17 7bqJsR1f.net
身内のGraalにトドメ刺されて終わりだろ。
831:デフォルトの名無しさん
19/06/01 15:47:15.77 v1/bDBif.net
/NativeがGraalにやられても/JVMがスイッチするから大丈夫
832:デフォルトの名無しさん
19/06/01 16:20:49.17 4wvh7Cn2.net
>>815
合ってる
833:デフォルトの名無しさん
19/06/01 16:55:01.52 uuPo6pHP.net
nativeはまだ作成中みたいな感じなので瀕死とは違うと思うが
834:デフォルトの名無しさん
19/06/01 17:46:40.68 xELmXxSQ.net
Kotlinを勉強し始めたんだけどさあ
これってレファレンスを見てエディタで打ち込む->kotlincでコンパイル=>javaで動かす・・・・ってのを繰り返さないとならんの?
Swiftに言う「swift asdf.swift」みたいなのに相当するコマンドはないのかしら
835:デフォルトの名無しさん
19/06/01 17:49:07.58 FZbdo0L3.net
そうか。合ってるか。。
サーバーサイド kotlinが流行ってないのは何でなんだろ。
現状問題なく使えるように思うけど、ほとんど開発案件出てこないね。
836:デフォルトの名無しさん
19/06/01 17:50:33.82 v1/bDBif.net
>>822
IntelliJ(community版)を使おう
再生ボタン一つで済む
837:デフォルトの名無しさん
19/06/01 17:51:43.68 FZbdo0L3.net
>>822
まずintellij(IDE)をインストールしないと始まらない
838:デフォルトの名無しさん
19/06/01 18:32:24.41 7x5on0RN.net
このスレ定期的にkotlinc使う奴が出てくるよな
どこぞの入門サイトに書いてあるんかね
どう考えてもintellij使う前提の言語なのに
839:デフォルトの名無しさん
19/06/01 18:32:52.15 7x5on0RN.net
>>823
サーバーサイドKotlinで生きていきたいけど、仕事なさすぎて難しいよなあ
840:デフォルトの名無しさん
19/06/01 19:41:31.36 4wvh7Cn2.net
>>822
Kotlinを書くのにエディタを使うのがそもそも間違ってる。
無料版でいいからIntelliJ使え。
841:デフォルトの名無しさん
19/06/01 20:59:16.14 f9ycqMAV.net
うちはサーバーサイドで使ってるわ
ほぼ俺しか書いてないが
842:デフォルトの名無しさん
19/06/01 22:10:50.15 GQlgchjf.net
YouTube に動画をアップしてる、KENTA でも、
サーバーサイドの、Elixir, Kotlin などを受注するのに苦労してる。
彼は、変わった言語の仕事に、こだわる
こういう仕事は、滅多に出回らないから、ツテから入るのかも。
KENTAは千以上、名刺交換してるとか
彼は、GUI は嫌いらしい。
画面の修正で、時間を食うのが、嫌いらしい
数ピクセル、位置が違うとか、
修正したら、違う人が、元に戻せと言ったりw
GUI は、技術を学ぶ、時間効率が悪いから、嫌いらしい。
だから、サーバーサイドの仕事を取る
843:デフォルトの名無しさん
19/06/01 22:33:39.21 v1/bDBif.net
歌詞かな
844:デフォルトの名無しさん
19/06/01 22:48:31.29 ZDO2fOJr.net
サーバーサイド普通に使ってるぞ
lombok駆使するよりいいと思う
845:デフォルトの名無しさん
19/06/01 23:07:41.16 jNRuoNdG.net
>>830
海外の方?
846:デフォルトの名無しさん
19/06/01 23:08:06.44 vdsZQvk5.net
ポエムだぞ
847:デフォルトの名無しさん
19/06/02 01:28:53.78 /69WsxDT.net
>>830
「、」で区切り過ぎ。その文章の場合は全ての「、」を削除した方が読みやすい。
848:デフォルトの名無しさん
19/06/02 01:33:22.19 /69WsxDT.net
>>822
IntelliJ 使った方が楽だが、kotlinc でコマンドラインでやるとしたら最後の実行は kotlin コマンドでできるよ。
kotlinc xxx.kt
kotlin XxxKt
みたいにする。
kotlin コマンドは環境変数セットしたりして最終的に java を動かす。
849:デフォルトの名無しさん
19/06/02 10:05:23.69 80ueDuoq.net
で、サーバサイドkotlinのこれからについての認識なんやけど合ってる?
・実戦投入可能なレベルに達している
・goが選ばれるような案件では以下の点でgoに勝てないので流行らない
→粒度の細かいマイクロサービス:deploy容易性がgoに劣る、kotlinの抽象力が活き辛い
→aws lambdaとか:上記に加えてjvmが温まるまで遅い
・モノリシック案件のbetter javaとしては第一候補
→フルスタックFWが有望でspring bootが最有力
→必然的にSIerの仕事が多くなる
・SIerが最重要視するのは実績
→実績を積むには待つしかない
850:デフォルトの名無しさん
19/06/02 10:08:10.88 80ueDuoq.net
kotlin/nativeは「hello world」を「hello world!」にするだけでビルドに7sかかるんやけど。。
こんなもんなん?何かやり方間違ってるのかな。
851:デフォルトの名無しさん
19/06/02 10:25:57.88 klo8W86L.net
>>837
受託の業界は知らんけど、WEB業界なら今までJavaやらScalaやら使ってたところはもう大体使えるところから使い始めてる。
ただそもそも日本のWEB業界ではJavaが不人気過ぎてどうしてもニッチの部類に留まってるわな。
生存戦略としてはとにかく仕事の多いRailsやらをやるか、仕事は少ないが応募者も少ないKotlinを極めるか、まあどちらでもありっちゃあり
どうせ5年後には違う技術が台頭してるし
852:デフォルトの名無しさん
19/06/02 11:16:42.46 uIkDYzKb.net
既存のJavaからKotlinはあっても、そもそも新規でJVM選択するかなっていう
853:デフォルトの名無しさん
19/06/02 12:06:59.02 TDNwqEN9.net
sunが震え声で
ハードの進化でJVMのパフォーマンスは向上していくから…
って言ってから何年経ったのか
854:デフォルトの名無しさん
19/06/02 12:13:33.66 UpSyXruc.net
PHPで作ってたけどパフォーマンスが出なくなって来たからJavaで作り直す、みたいなのはよく聞くな
同じ理由で昔はRailsからJavaってのもあったけど最近のRailsは速いからあまり聞かなくなった
855:デフォルトの名無しさん
19/06/02 14:27:04.47 Kbt/vpV3.net
Rails ができれば、コピーのCakePHP も出来る
違う言語だけど
856:デフォルトの名無しさん
19/06/02 14:47:02.52 530n/55/.net
Rubyキチ、無視しろ。
857:デフォルトの名無しさん
19/06/02 14:52:37.88 LUUGWxBq.net
php8()
858:デフォルトの名無しさん
19/06/02 15:29:19.09 sHGNUntV.net
新規でサーバ側でkotlinで作ってもらったけど
少数派なのか。
まあ、何ができるかが大事だからいいけど、流行に左右されるのは厳しいね。
859:デフォルトの名無しさん
19/06/02 16:54:37.31 /69WsxDT.net
>>841
20年ぐらい?
まあ確かにあのWindows95だの98だので動かしていた時よりは速くなったけどね。
860:デフォルトの名無しさん
19/06/02 21:44:03.80 xSU5v8RX.net
結構Java嫌いな人多いんだね。自分もJavaは好きじゃないけど。
>>840
Javaが検討される規模のWEBサービス作る時にJVM以外の選択肢って例えば何かあるのかな?
>>841
Javaの出始めと比べたら劇的に進化してSunの言う通りになったと思うけどな。
Java離脱組もパフォーマンスじゃなくて開発効率やサービスの拡張性を気にしてる。
>>846
少数派なのはそうなんだけど、依頼側から見たサーバーサイドkotlinのデメリットは
・現状では開発者が少ない=人が集まらないことによる遅延、開発者単価
・実績がない=未知の何かが起こるかも
なのでローンチ出来てる時点でデメリットは乗り越えているし、
Android界隈では確固たる位置にいるからこの先メンテ人材が見つからない心配もない。(←ここが流行に左右されて困るポイント)
悪くない選択だったと思うんだけど
861:デフォルトの名無しさん
19/06/03 23:56:34.84 JEDLjuFd.net
JVMの性能は実行時最適化が強みだから
ベンチマーク系は不利
巨大なプログラムで長時間の動作において有利なはず
にもかかわらずベンチマークでもそこそこ速いんだからすごいのでは
862:デフォルトの名無しさん
19/06/04 00:08:19.43 8w4/id00.net
いや実行時最適化は繰り返し実行される処理に対して効くからベンチマークには強いぞ
立ち上がりの遅さとか、ベンチマークに現れない体感的な部分がJVMは遅い
事実上サーバー専用だから仕方ないが
863:デフォルトの名無しさん
19/06/04 02:28:23.05 Xu6aOKJJ.net
JVMはガーベッジコレクションでスローダウンするから未だに使い物にならない。
一番大事な時に直撃で機会損失が億いくと違約金も凄まじかったぜ。
864:デフォルトの名無しさん
19/06/04 06:40:04.13 1zKcF7rp.net
果てしなく嘘くさいな
シビアなシステムでどれだけ使われてると思ってるんだ
865:デフォルトの名無しさん
19/06/04 07:41:14.05 zxBnyDUV.net
10年以上前からあるコンカレントGCすら知らないような会社なんだろう
866:デフォルトの名無しさん
19/06/04 08:08:31.64 LGhp/e10.net
業務用Javaに関しては新機能が使われずなおかつアプデなしで10年経過とか普通にあるからな
それはそれでもいいから対外的にJava語るなって話なんだが
867:デフォルトの名無しさん
19/06/04 08:20:13.77 1zKcF7rp.net
例のみずほのサグラダファミリアもJava1.5という噂を聞いたけどマジなんかな
868:デフォルトの名無しさん
19/06/04 10:17:08.75 prB+PlYz.net
ネイティブでgc使わないようなコードも出せるようになればなんとかなりそうな気もするが、そうするとライブラリもそれ用のを使わないとダメか。
869:デフォルトの名無しさん
19/06/04 11:48:04.89 +GlxYcps.net
graalvmでできるぞ
870:デフォルトの名無しさん
19/06/04 12:44:23.82 zxBnyDUV.net
それ回収しないやつじゃないですかね
871:デフォルトの名無しさん
19/06/04 18:10:17.62 /4mAZqwS.net
JVMが使い物にならないという人が何を使っているのかとても気になる
872:デフォルトの名無しさん
19/06/04 18:49:03.68 Rd1vYitp.net
JVM入りの指輪使ってます!
873:デフォルトの名無しさん
19/06/04 19:32:40.19 +GlxYcps.net
jvmの引数でもGCのラグを解消できるし
最新のZGCというのも出てきた
874:デフォルトの名無しさん
19/06/04 23:57:50.92 FDlJBmR7.net
JVMというかspring fwの起動が糞遅いのは分かる
2.0になって少しましになったけど…
875:デフォルトの名無しさん
19/06/05 01:12:19.63 PtZsxspX.net
springってそんな遅いっけ?
876:デフォルトの名無しさん
19/06/05 10:00:02.20 zKfENgey.net
気のせいかわからんがKotlinでspringやると遅いような気がする
877:デフォルトの名無しさん
19/06/05 10:01:33.26 C+IWDk26.net
Ktor流行って欲しい
878:デフォルトの名無しさん
19/06/05 10:13:38.35 gaDZjJ4I.net
>>876
ktorはマイクロサービス向き
kotlin/jvmはモノリシック向き
kotlin nativeが流行らないと無理やと思うで
879:デフォルトの名無しさん
19/06/05 13:28:31.33 B3mDB84e.net
>>864
コンパイル時間は長いと思うけど、アプリ本体は変わらん。
というかそもそもspring本体はJavaだし。
880:デフォルトの名無しさん
19/06/05 19:11:23.87 i1hhoL96.net
>>866
Ktorをその並びで並べるのはちょっと違うと思う。
881:デフォルトの名無しさん
19/06/05 21:56:16.86 Nwu/rjvu.net
>>868
kotlin/jvmはJava代替でSIerによるフルスタックFW&モノリシック開発が向いている
kotlin/nativeはGo代替を目指していてWeb系企業のマイクロサービスが向いている
kotlin/jvm+ktorではGOに勝てるユースケースが無いので
ktor流行にはkotlin/nativeの流行も必須というのが自分の主張。
まあ異論はあると思う。ちなみにkotlin/nativeは応援してるしktorも流行ってほしい
882:デフォルトの名無しさん
19/06/06 00:14:12.91 crlHsY/g.net
>>822
vim + quickrunで動くよ!
kotlinc, javaなんてコマンドを打つことはしない。
883:デフォルトの名無しさん
19/06/06 05:38:57.73 AHPkvIjM.net
>>869
言ってることは分からなくもない。
ただ視野が狭すぎるというか、そんな可能性を狭めなくていいと思う。
884:デフォルトの名無しさん
19/06/06 06:33:47.56 DDFFQDhW.net
そもそもKtorってJVM、というかServletに依存してね
885:デフォルトの名無しさん
19/06/06 09:26:51.24 B66i5Eyn.net
依存はしてなくね
886:デフォルトの名無しさん
19/06/06 10:59:43.79 72rhxhib.net
次のリリースでkotlin/nativeのbuild時間が改善されそう
リリースいつなんだろ。。
887:デフォルトの名無しさん
19/06/06 12:47:51.63 rJJBtVPp.net
利根川さんにでも聞け
888:デフォルトの名無しさん
19/06/06 20:06:45.07 UUcOWqLu.net
kotlin/nativeはGraal(AOT)に勝てるかどうかすら怪しいのに、夢見過ぎだろ。
889:デフォルトの名無しさん
19/06/06 20:44:18.25 tk55iQ4S.net
ktsって誰も使ってなさそう
890:デフォルトの名無しさん
19/06/06 21:14:00.21 DsfM5wVX.net
Gradleで使う
891:デフォルトの名無しさん
19/06/07 08:15:36.89 XGKtoEgu.net
>>876
AArch64の対応が進んではいるもののGraalがiOSに対応するのは当分先
Kotlin/Native側も資産(ライブラリ等)不足やパフォーマンスの課題があるけどな
892:デフォルトの名無しさん
19/06/07 08:44:09.41 XGKtoEgu.net
>>879の補足
Graal側はAArch64/Linux対応が完成してからiOS対応をやるかどうか検討するとのこと
URLリンク(github.com)
まだAArch64/Linux整備中の段階
URLリンク(github.com)
iPhone/iPadのチップ : A10~A12X : ARMv8ベース
ARMv8の64ビットモードがAArch64
893:デフォルトの名無しさん
19/06/07 16:14:27.25 5OmdT0Za.net
kotlin/nativeのメインターゲットはiOS開発なんだろうと思う。
894:デフォルトの名無しさん
19/06/07 16:40:27.70 xSr7j0ut.net
普通に考えりゃそうだわな
895:デフォルトの名無しさん
19/06/07 16:53:00.43 q0RmewW9.net
Swiftネイティブでいいじゃん、他にはUnityもあるし。
入り込む余地ないでしょ。
896:デフォルトの名無しさん
19/06/07 19:12:00.19 uzdYHfME.net
釣り針は大きすぎちゃいかんのだぞ
897:デフォルトの名無しさん
19/06/09 13:55:10.20 pv0ZpPmn.net
kotlin3大いいところ
・android標準という安心感(直ぐには廃れない)
・モダンな書き方ができる(arrowもあるし)
あと1つは?
898:デフォルトの名無しさん
19/06/09 14:23:05.48 LrdSIDEQ.net
>>885
Listが基本immutableなことやnull安全はモダンに含まれるのかな?
標準という意味ではGradleの記述言語としてもサポートされているので、廃れにくいかなと思っている。
個人的にはDSLを3つ目として挙げたい。
899:デフォルトの名無しさん
19/06/09 14:43:33.75 zgQq0a06.net
JVMで動く言語でJavaのライブラリそのまま使えるのが良い
これに関してはKotlinである必用はないのだが、その他の利点の上に更にこれがあるのが良い
900:デフォルトの名無しさん
19/06/09 16:29:58.10 SDScvKJ1.net
最新のjavaも随分進化したから、そこまでkotlinにこだわらねえ。
kotlinがjavaや.netみたく自前の最初からnull安全なクラスライブラリ備えてるなら別だけど。
901:デフォルトの名無しさん
19/06/09 16:35:14.81 yULR2w5s.net
逆にあえてJavaを使う理由が特に思い当たらんからとりあえずKotlin使うわ
902:デフォルトの名無しさん
19/06/09 19:10:48.79 TX+aAcRC.net
Javaに新機能が追加されてもざんねんなJava部分が消えるわけではないので
可能であるなら最初からKotlinでやりたいかな
903:デフォルトの名無しさん
19/06/09 22:02:36.62 LrdSIDEQ.net
>>888
自分も最初はラムダもOptionalもあるからとそう思っていたけど、immutable programmingで行こうと思った時に、
Listがimmutableであることを保証する方法がないことに気づいてKotlinへの移住を思い切った。
immutable programmingはそれほど実現しなかったと反省しているが、
Kotlin/JSやbuild.gradle.ktsとかも出来たので後悔はしていない。
904:デフォルトの名無しさん
19/06/10 10:30:03.83 5WqM3fpA.net
うちももう新規追加は全部Kotlinだわ
だってJavaで書くメリットがマジで何もないんだもん
905:デフォルトの名無しさん
19/06/10 10:36:29.16 rgxxUvbF.net
javaで仕事してるやつ転職できなくなるぞ
906:デフォルトの名無しさん
19/06/10 11:17:01.74 g6tidy/F.net
coboちゃんが入れ替わっただけの蛇腹は逝ってヨシ
907:デフォルトの名無しさん
19/06/10 13:43:04.79 5WqM3fpA.net
>>893
Java経験あるならKotlinなんてすぐ書けるから別に気にしないよ。
社員で雇うならどの言語で書いてたかはあんまり関係ない。
908:デフォルトの名無しさん
19/06/10 23:11:05.39 f1GGY3g+.net
kotlin書いてる人は何の仕事してるの?
やっぱandroid?
909:デフォルトの名無しさん
19/06/11 05:51:34.27 qT8Bq+lF.net
サーバーサイド
7割SpringBoot3割sparkその他
910:デフォルトの名無しさん
19/06/11 05:52:20.89 qT8Bq+lF.net
2年くらい前まで都市伝説レベルだったサーバーサイドKotlinも最近は勉強会でよく見かけるようになったんだ
911:デフォルトの名無しさん
19/06/11 07:18:21.72 G5A56vfp.net
できればkotlinで作りたいって言われてサーバー側のプログラムを作ってもらった。
DBサーバは別で画面制御だけ。
自分でも勉強しようと思ってこのスレッドを見てるところ。
912:デフォルトの名無しさん
19/06/11 15:06:52.23 1jV87VfI.net
そっか。サーバサイドkotlin順調に普及してきてるんやね。ワイの周り以外では。
うらやましい!
913:デフォルトの名無しさん
19/06/11 17:51:05.94 PKI+0nSq.net
ほぼ0だったのがようやく1になったくらいで、まだまだマイナーだけどね
914:デフォルトの名無しさん
19/06/11 19:13:42.98 oFYgO+/L.net
分布が0から1になったら制圧完了じゃないか
915:デフォルトの名無しさん
19/06/13 09:02:41.37 t9tRfwUY.net
kotlinは関数型も取り入れてるし
色々欲張り過ぎで言語仕様複雑化してるイメージがあるんだけど
実際使っててどうなの?
kotlinプロジェクトはコーディングスタイルが多様化しそう
916:デフォルトの名無しさん
19/06/13 10:04:02.16 7TzYdFG0.net
>>902
プログラマならまずそう思うわなw
917:デフォルトの名無しさん
19/06/13 17:30:55.80 rjthL9V0.net
AndroidStudioやVSCode(mathiasfrohlichのKotlin Language機能拡張)で学習してるんだけどさ
どちらにしてもスペルミスは文字の色である程度わかるけど、文法が間違っててもその場で指摘してくれるわけじゃないのね
ある程度身につくまで文法間違いやを教えてくれるとありがたいんだけどそういうのはないのかな?
918:デフォルトの名無しさん
19/06/13 17:36:07.23 5KTA02i+.net
文法間違いとはなんぞや
一応、実行できないくらい間違ってる場合はIntelliJ系だと「現時点で解釈不能でわけわかんないです」「これを書いてるつもりの場合は〇〇が必要です」って下に英語でちょろっと出る
919:デフォルトの名無しさん
19/06/13 18:20:30.31 KlaL+iOR.net
文法間違いは普通に赤線で指摘されるだろ
920:デフォルトの名無しさん
19/06/13 19:19:37.31 t9tRfwUY.net
kotlinのバグ発生率はJavaより低いですか?
921:デフォルトの名無しさん
19/06/13 19:22:16.85 5KTA02i+.net
Javaのバグ発生率を教えてくれたら考えてあげてもいいよ
同じような式で計算して出すから
922:デフォルトの名無しさん
19/06/13 19:32:38.72 BCeAlBQy.net
>>905
具体的にどういうこと?
VSCodeは知らんけどIntelliJは大抵のミスは教えてくれると思うけど
923:デフォルトの名無しさん
19/06/13 19:38:53.30 t9tRfwUY.net
>>909
URLリンク(web.cs.ucdavis.edu)
>Java-0.01 (0.04)
Javaはいろいろな言語の中で平均的なバグ発生率のようです。
Kotlinはこの表にありません。
924:デフォルトの名無しさん
19/06/13 19:43:19.29 t9tRfwUY.net
Javaのバグ発生率は、
同じ領域で使われていると思われるC++,C#,Pythonと比べて最も低いです。
つまり、カーネルやデバドラやブラウザ系でなければJavaが一番優秀に思えます。
しかしKotlinはJavaを打ち倒すかもしれません。
925:デフォルトの名無しさん
19/06/13 19:52:28.01 LD/3JdHH.net
ぬるぽ
ぬるぽ
出まくるが
これはバグじゃないのか
926:デフォルトの名無しさん
19/06/13 20:13:21.29 t9tRfwUY.net
その比較研究はgithubのコミットに基づいているようなので
ほとんどのNPEは開発中に発生して修正済みでしょう。
最初からNPEを発生させないkotlinは、
むしろバグ発生率よりコーディングスピードで優れているかもしれません。
927:デフォルトの名無しさん
19/06/13 20:40:07.05 RwojvEQB.net
その類の実証研究、大抵がJava対象だからKotlinだとどうなのかとかはまぁ分からんよね
928:デフォルトの名無しさん
19/06/13 21:07:39.94 bk4aKhUm.net
kotlinだとコードの行数が減るからjavaに比べて開発規模が小さかったと判断されてしまう
929:デフォルトの名無しさん
19/06/13 23:03:46.90 bcw2IMf7.net
>>913
仕様です。
930:デフォルトの名無しさん
19/06/14 14:45:14.16 g+H89gem.net
kotlinの言語仕様的にjavaよりバグり易そうな部分ってあるんかな?
931:デフォルトの名無しさん
19/06/14 16:59:32.14 3STsRhDl.net
>>918
it や this が思ったものと違うものを指していたとか。
932:デフォルトの名無しさん
19/06/14 18:14:32.08 g+H89gem.net
確かに。let 周りで失敗してたことあったわ。あの辺はちょっと複雑になっちゃってる感あるね。
933:デフォルトの名無しさん
19/06/14 18:28:44.08 LdOtrrUz.net
KotlinはTypeScript, Swift, C#あたりの典型的なモダンCファミリーの範囲を超えてオリジナリティを出してきた部分については途端に微妙になる印象
当然っちゃ当然なんだが、天才的なものは感じないね
934:デフォルトの名無しさん
19/06/14 20:01:34.38 pfb3ZKlS.net
Javaはエラーコードを強制される部分があって、プログラムの質の底上げがされてるんじゃないかな
935:デフォルトの名無しさん
19/06/14 20:09:15.99 HXW20L0t.net
エラーコードを強制って例外処理のこと?
936:デフォルトの名無しさん
19/06/14 20:23:59.56 Emc1ZmLq.net
なんかもう、わかんない人は無理に会話入ってこなくていいよ
937:デフォルトの名無しさん
19/06/14 20:32:30.84 HXW20L0t.net
たぶんJavaにあってKotlinに無いものは無い
強いて言えばKotlinは関数型を採り入れて言語仕様が複雑化しつつあるし
Javaとの混在が可能だからごちゃごちゃしやすい
人によって書き方が変わりやすい
あとGSONとの連携で問題が生じやすいとかあったはず
938:デフォルトの名無しさん
19/06/14 22:27:49.12 7NQ+qMUb.net
検査例外とラムダ式の相性の悪さは…
939:デフォルトの名無しさん
19/06/14 22:47:52.21 w6RR3Bwm.net
検査例外ちゃんは皆に嫌われてるから…
投げられた例外を捌けるかどうかは呼び出し元の都合や要件に依るからcatchを強制されるのは好かん
て雲のジュウザが言ってた
940:デフォルトの名無しさん
19/06/14 22:48:02.61 HXW20L0t.net
なんかQiitaにうまく書けるコードあったからちょっとカスタマイズして使ってる
URLリンク(qiita.com)
941:デフォルトの名無しさん
19/06/15 04:17:10.27 6gRe3JZA.net
マルチパラダイムな関数型言語はどう設計していくのが良いのか難しいと思う
OOPと関数型は根本的にミスマッチしてる
942:デフォルトの名無しさん
19/06/15 07:02:06.90 9mAlYVnq.net
ポインタさえなければ、バグの出やすさは誤差の範囲じゃないかな
943:デフォルトの名無しさん
19/06/15 07:54:39.96 pCdIqw4x.net
A
944:ndroid kotlinで言えばMVVM一択だろ 悩むほど選択肢はない
945:デフォルトの名無しさん
19/06/15 08:21
946::51.26 ID:34xcDdoq.net
947:デフォルトの名無しさん
19/06/15 09:07:49.50 Ga3aXpPN.net
>>929
そうかな
イミュータブルオブジェクトと関数型は相性いいと思うけど