Kotlin 6
■ このスレッドは過去ログ倉庫に格納されています
JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
Kotlin 5
https://mevius.5ch.net/test/read.cgi/tech/1544268581/ 大学のC言語の授業で2分木の深さ優先探索と幅優先探索を再帰関数で書かされたなあ 言語の名前がかわいいというだけの理由でkotlinを勉強し始めました。
書きやすくていいですね! PCの気晴らし2Dゲームやスマホアプリやかんたんゲーム作ろうかなーと思ってKotlin始めたのだけど、
微妙絶妙にメインストリームから外れて手間が合わんのだな
Unity的なゲームじゃないスマホアプリはうまく合ってる気はするが C#相手だと言語的なアドバンテージはほとんど無いから勝ち目はないわな 要は「めっちゃ書きやすいJava」なので、Javaのときに特段盛り上がってなかった分野はKotlinでも特段盛り上がってはいない
Kotlinで利用者が流入爆増してKotlin独自のライブラリが各分野でじゃんじゃん作られるみたいな未来予想図もあったのだが、まあ、世の中なかなか冷静で頼もしい限りではある レベルS プラットフォームを問わずKotlinが広く利用される
レベルA Kotlinを使うためにJavaプラットフォームが採用される
レベルB KotlinによってJavaプラットフォームの採用障壁が下がる
レベルC Kotlinによって既存のJava開発者の満足度が改善する
今のところせいぜいCだな Javaやってたら取っつきやすいみたいな扱いされてるけどC#の方が覚えやすくね? kotlinってandroid専用言語という位置づけだと思っていいですか?
Webでも積極的に使われている言語ですか? 現状ではandroid専用。Java代替目指してる言語だからwebで使うポテンシャルはあるけど、その用途で流行ってるとは言い難い。 ま、しかし、みんながやってると自分もやるみたいなのはやはり日本人的な感じがするな。
保守的と言うか開拓精神がないというか。だから悪いということはないけどな。
自分が率先して使って自分を中心に世界中に広めるみたいなこともできるかも知れないのだが、そういう考えが最初から起こらないぐらい頭が固くなってガチガチに保守化していると。 「〇〇を作りたいのでKotlinを使う」の〇〇に入るのは非ゲームAndroidアプリ、ではある
現状これ以外で使うのは趣味とか修行とか苦行とかバカとかなんかそんな感じ
Kotlinは一応だいたいのものは作れるには作れるので、Kotlinで作ってみたいという情熱(または狭窄)で個人でいろんなもの作ること自体は別に止めない
手段が目的と化してるという点以外は問題はないからね
みんなあまりやらないことをやるという点では面白いはずだとは思うよ
どっすかRubyの二の舞 >>574
欧米の人って明確な目的があって、それに合う道具なら古いものも新しいものも使う印象
日本列島に生息するアーリーアダプタ猿はたいてい手段と目的が逆転していて、
新しいものを触っても「やってみた」で終わるからそれ以上の発展がない 有名人が使ってるから使おう・それが正しいみたいのがあるね >>577
その後誰も使わなくなるものに手を出して半年で天を仰ぐ事例は事欠かない
だったらちょっとか有名人にも頼りたくなるというものだ その、「失敗したらどうしよう・・失敗しないように安全パイを狙おう」ていう発想が日本人ていう話 まぁ結局はjavaなんだから、だったらjavaのままでいいじゃんで終わってそう。 webなんかどうでもいい
今やブラウザからよりもアプリからの方がインタネットアクセスしてる人多い
サーバー側処理もこれから firebase的なものが主流になって独自実装はなくなっていく
Android専用とは即ち最強ということ サーバーサイドがDB直結で済むようなアプリなんてミニゲームくらいだろ firestoreってrate limitやIP banみたいなこと課金なしにできないの?
セキュリティルールで、他人のデータおもらしや、入力データ検証はできるけど。個人で使うとrate limitみたいのないと課金攻撃食らうのが怖い小心者の俺。 貧乏人のくせにうるせえな
ガキはオフラインでlampでもやってろ まあ、金払って押しつけるのが正しくはある
自社メールサーバーを運営するのが今や愚かな行為であるのと同じ flutterきてるからもう色々諦めて、サーバーサイドkotlinに注力して欲しい。。 クロスプラットフォームは全部糞
そもそもDartが糞
ちょうど今日はてぶでflutterの記事を読んだがやっぱりDartが糞
ttps://hachibeechan.hateblo.jp/entry/flutter-is-great-good-but-dart-is-dirt
結局サンプルアプリみたいな見た目のしょぼいごみアプリしか作れないのがオチ Dartが糞なのはわかる。でもflutterがきてるのも事実。
もう「どこでもkotlin」とか言ってる場合じゃない。
このままだとandroid->fuchsia移行と共にkotlinは終わる。
なのでjava,goを押しのけて静的サーバーサイド言語の第一候補になるしか道はないと思う と思うけど、googleはなぜかKotlin版flutterのJetpack Composeを今年ベータリリース?に向けて作業中。
Jetpack Composeは最初はandroid向けかもしれんが、kotlinはnativeでクロスプラットホームになるし、Jetpack Composeも将来いつの間にかクロスプラットホームになったり? まぁ、composeはクロスプラットホームにならなくてもcomposeの存在はかなりflutterへの移行を押し留めることになりそう。
もちろんflutterはクロスプラットホームだけど。 K/JVMとK/Nチームがあまり仲良くない感じだったし
K/Nの設計上の戦略ミスもあって先は厳しい
企業リソースが潤沢でないことも大きいんだろうけど 相変わらず世間で流行るかどうかばかりを気にしている。世間に依存して頼りすぎている。その結果振り回され続けてしまう。 俺なんて世間の流行なんか無視して我が道をいってるから
メインはDelphiパスカルだぜ! 趣味なら何でもいいんだろうけど仕事なら需要を考慮しないと糞仕事で薄給とかやってられないでしょ 流行ってるやつの方が情報多くて学習し易いというのはあるな。
そういえば今はまだJavaが結構使われてるようだがCも増えたんだってな。組み込み関係が増えたせいらしい。 >>602
給料あげたかったら、プログラマーは卒業しないとね >>601
自分が楽しめるならレガシーシステムのお守役としてニッチ極めるのは全然ありだべ exposedのDAOとDSLってどっち使った方がいいんですか? 流行るか流行らないなんてどうでもいいんだよ
やりたいことをやれるかどうか
JavaScript界隈の気持ち悪いやつがflutterは流行らないといってるけど
流行ったらどういう態度にでるのか見てみたいものだ KotlinのコンパイラはKotlinで書かれてるの?それともJava? Javaに決まっているだろ
Kotlinで書かれてたらどうやってコンパイラをコンパイルするのだ
鶏は卵からしか生まれないのだ コンパイラがどの言語で書かれてるかを質問する人よくいるけど
知ったところで何か意味あるの? >>615
最初はJavaで次からはKotlinに変換して自分で自分を記述する状態にしてるかもよ。するとその後はずっとKotlinでKotlinを書く状態になる。
昔はPASCALをPASCALで書いてハンドコンパイルしてから自身をコンパイルさせるなんての本当にあったようだけどな。 >>616
コンパイラを作れる言語かどうかがわかる。
ということ以外の意味はないかな。 最初は別言語で書かれるが、その後自身の言語で書き直すことはよくある
セルフホスティングと言ってGo,Rustなども達成している
成果物の動作環境で自身も動作可能になるので
Kotlin/JSがセルフホスティングなら
babel/standaloneのようにブラウザ上でコンパイルが可能になったり
Kotlin/NativeのビルドにJVMが不要になったりする
実用上はJVM需要が主だしGradleが便利なので変えないだろうけど >>618
KotlinのコンパイラがJavaで作られたとしても
Kotlinがコンパイラを作れない言語ということにはならないと思うんだが 美人のまんこと豚のまんことどっちが良いかって豚の方が名器なら豚を選べば良い
気にすんな >>621が童貞だとしても、
>>621が性的不能ということにはならない
つまりこういうことだ kotlin1.4の展望を読んだんだけど、
「kotlin/nativeのコンパイル速度は、まだしばらく改善できません」
って言ってるのかな。。楽しみにしてたのに いままでバックエンドにIL採用してなかったのは不仲が原因・・・? 今日もnull安全だから…プロパティに代入して欲しいの 近所の本屋ではkotlinの棚にflutterが侵食してきている
kotlin本は必要だー!出せー! //
/ ./
/ ./ パカ
/ ∩彡⌒ ミ 髪のはなし終わった?
/ .|(´・ω・`)_
// | ヽ/
" ̄ ̄ ̄ ̄"∪ 通話中でもバックグランドで処理するアプリとか、スマートウォッチ向けアプリ作ってみたい >>639
どうぞ。遠慮なく。思う存分作ってよいぞ。どんどん作ってくれたまへ。 大丈夫。お前ならできる。俺は信じてるぞ。
とりあえずネットで検索しろ。 完成したらその事を本に書いて出せ。
Amazonの電子書籍なら簡単な審査だけで出せる。 スマートキャストで、これは問題なくできる。
val x: Any = 0.3
if (x is Double) println(x + 0.2)
しかしこれはできなかった。
val x2: List<Any> = listOf(0.3)
if (x2[0] is Double) println(x2[0] + 0.2)
足し算する前に as Double でキャストすると問題なし。
if (x2[0] is Double) println(x2[0] as Double + 0.2)
なんで? val で List だから内容が変更されることはない筈で、スマートキャストできそうに見えるんだけど。
Listの中身まで推論してられっかボケってこと? Listに色々なクラスのインスタンス入れて返すメソッドを思い付いたのだがKotlinはスマートキャスト使えるから楽に書けるかなと思ったんだよね。
で、試してみてわかったんだけど、これだとJavaと大差ないね。 >>650
[0]は.get(0)のシンタックスシュガー
でgetが要素を変更しない保証がない covariantの問題だから、将来的にもそこは変わないと思う。 .get()がthisを変更しないことを
関数定義時に保証する文法を追加すれば解決可能では?
val y = x[i]で一旦受ければいいから
JBの言語改善にかける意欲の低さを考えれば超期待薄 > Listに色々なクラスのインスタンス入れて返すメソッド
これのメリットがよく分からんけど List<Any> に対して get(i) + cast する拡張関数作ればいいんじゃね リストにいろいろと聞くとつい、生Listを構造体代わりにする昔ながらのクソコードを思い出す
あのアンチパターンに名前はないのだろうか
静的ならDestructuring Declarationsを使い動的ならSequenceを返してitをスマートキャストすればいいのでは >>650 >>654
メソッドを2回呼んで同じ値を返す保証は結構難しい
言語レベルでのメモ化や参照透過性、所有権システムなどが必要になる
フロー解析で出来たところでコンパイル可否がlistOfの実装に依存して
柔軟性もコンパイル速度も悪化するから
Kotlinディスカッションに投げても多分改悪判定される
valやletで十分だと思うけどな ■ このスレッドは過去ログ倉庫に格納されています