JetBrainsが開発した期待の新言語、Androidの公式開発言語にしてサーバーサイドもなんでもいけるKotlinについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1531818027/
探検
Kotlin 5
■ このスレッドは過去ログ倉庫に格納されています
2018/12/08(土) 20:29:41.41ID:oXOQORcd
202デフォルトの名無しさん
2019/02/03(日) 22:10:09.65ID:WjHZzJrh マジかあ。Scala状態は残念やのー。
俺にキラーアプリ作れるような力があればなぁ。。
俺にキラーアプリ作れるような力があればなぁ。。
203デフォルトの名無しさん
2019/02/03(日) 22:19:22.36ID:WjHZzJrh githubでkotlin-native使ってるプロジェクト探してみたけど、確かにあんまり盛り上がってる感じではないね。
今作ってるクソアプリが一段落ついたら何か作ってみよう。
今作ってるクソアプリが一段落ついたら何か作ってみよう。
204デフォルトの名無しさん
2019/02/03(日) 22:43:39.24ID:0oNu2+nX アプリよりFWだよな
205デフォルトの名無しさん
2019/02/03(日) 22:49:54.08ID:OYz8YI9S 「オーケーグーグル、エロくて楽しいアプリ作って」でエロくて楽しいkotlin nativeアプリのソースが生成されるAIを作れば流行る
206デフォルトの名無しさん
2019/02/03(日) 23:03:35.29ID:hpvKsGCb Kotlin/Native自体は現在進行中のSubstrate VMが出来上がるとやや辛い立ち位置になる
でもKotlin全体としては間接的にエコシステムが大きく強化されるし
Kotlin/Nativeから「Kotlin with Substrate VM」への移行は
性質的に割と容易なものになる期待もあるから使っても大丈夫だと思う
補足だけど Substrate VM はOracle主導のオープンソースプロジェクトGraalの一部で
JavaバイトコードをAOTするもの、
これによりjavaパッケージが使えるKotlin/JVMのままネイティブ化出来るようになる
Linux向けは出来ていてWindowsやiOSなどはまだこれから
でもKotlin全体としては間接的にエコシステムが大きく強化されるし
Kotlin/Nativeから「Kotlin with Substrate VM」への移行は
性質的に割と容易なものになる期待もあるから使っても大丈夫だと思う
補足だけど Substrate VM はOracle主導のオープンソースプロジェクトGraalの一部で
JavaバイトコードをAOTするもの、
これによりjavaパッケージが使えるKotlin/JVMのままネイティブ化出来るようになる
Linux向けは出来ていてWindowsやiOSなどはまだこれから
207デフォルトの名無しさん
2019/02/03(日) 23:43:07.23ID:hpvKsGCb ちなみにAndroid Runtimeも同様にAOTしている
こっちはJDKをGoogleが好きなように取捨選択してるのでJava互換性テストは通らない
Android Runtimeの技術を利用してJava(Kotlin/JVM含む)からiOS用のネイティブを生成してるのが
RoboVMやMulti-OS Engine
Substrate VMはこれら(Kotlin/Native含む)に対して
後追いだけどOpenJDKフルサポートのAOT、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど
こっちはJDKをGoogleが好きなように取捨選択してるのでJava互換性テストは通らない
Android Runtimeの技術を利用してJava(Kotlin/JVM含む)からiOS用のネイティブを生成してるのが
RoboVMやMulti-OS Engine
Substrate VMはこれら(Kotlin/Native含む)に対して
後追いだけどOpenJDKフルサポートのAOT、ということになる
出来上がるまでまだかなりの時間が掛かりそうだけど
208デフォルトの名無しさん
2019/02/04(月) 00:38:33.17ID:udiwpstp 結局Java版Xamarinを作ろうとしてるだけだな
目的不在で技術だけが独り歩きしてる感すごい
目的不在で技術だけが独り歩きしてる感すごい
209デフォルトの名無しさん
2019/02/04(月) 06:16:54.78ID:jDY9Ysuj >>200
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない
無理だね。というかそもそもGoの得意分野とKotlin(native)の得意分野がかぶってないから現時点であまり競合してない
210デフォルトの名無しさん
2019/02/04(月) 08:21:30.46ID:+iZnVKUh >>209
そうなんか。kotlin nativeの得意分野って何なんや?
そうなんか。kotlin nativeの得意分野って何なんや?
211デフォルトの名無しさん
2019/02/04(月) 10:20:12.21ID:RwYNgFWa >>208
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新
20年以上前に設計され、修正が積み上げられたC++コードなので
保守し辛く新技術の導入も困難とのこと
JITコンパイラ(Graal本体)はインタプリタやAOTとも関連が深く、
それらも考慮したエコシステムとしてサブプロジェクトを内包してる
Truffle / Sulong / Substrate VM
Graalの主目的はHotSpotのJITコンパイラ(C2)の刷新
20年以上前に設計され、修正が積み上げられたC++コードなので
保守し辛く新技術の導入も困難とのこと
JITコンパイラ(Graal本体)はインタプリタやAOTとも関連が深く、
それらも考慮したエコシステムとしてサブプロジェクトを内包してる
Truffle / Sulong / Substrate VM
212デフォルトの名無しさん
2019/02/04(月) 10:38:08.20ID:RwYNgFWa >>210
Kotlinの対応プラットフォームを広げるものだから
強いて言うならKotlin/JVMと同じく通常アプリでは
Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意
Kotlinの対応プラットフォームを広げるものだから
強いて言うならKotlin/JVMと同じく通常アプリでは
Goは並列処理や低レイテンシGC(リアルタイム用途)など
システム寄りが得意
213デフォルトの名無しさん
2019/02/04(月) 12:40:41.74ID:Mgc+6WQD Kotlin nativeは悪く言えば現状では得意分野などはっきり言って存在しないし、良く言えばこれから何に使ってもいいとも言える
Goの代わりに使うことももちろん可能
Goの代わりに使うことももちろん可能
214デフォルトの名無しさん
2019/02/04(月) 20:20:46.75ID:nyJZm1CJ Ktor以上に急上昇してるJavalinってFWお前ら使ってる?
215デフォルトの名無しさん
2019/02/04(月) 22:34:50.26ID:QEUSQVw8 使ってないし知らない
216デフォルトの名無しさん
2019/02/05(火) 06:33:03.96ID:ZLbI9faD >>214
使ったら竜騎士とかにクラスチェンジできるかな
使ったら竜騎士とかにクラスチェンジできるかな
217デフォルトの名無しさん
2019/02/05(火) 06:59:09.94ID:+mMHH6yh マジで聞いたことすらなかった
悪くなさそうだけど、英語も含めて情報が少なすぎて趣味以外には使えないかな
悪くなさそうだけど、英語も含めて情報が少なすぎて趣味以外には使えないかな
218デフォルトの名無しさん
2019/02/05(火) 07:02:18.31ID:+mMHH6yh 軽く調べた感じだからよく分かってないんだけど、これ例えばSparkと比べて何が良いの?
219デフォルトの名無しさん
2019/02/05(火) 09:02:22.82ID:855O/xU5 Kotlin を今のプロジェクトに使いたいけど、eclipse とか言う糞IDE使ってて相性悪すぎて笑えない
SWT とか JFace とかでUI作ってるから、eclipse を外すのは無理だし
SWT とか JFace とかでUI作ってるから、eclipse を外すのは無理だし
220デフォルトの名無しさん
2019/02/05(火) 09:40:26.01ID:NCwCR2JI ググると槍投げ画像が沢山出てくるな・・・
221デフォルトの名無しさん
2019/02/05(火) 10:08:44.38ID:Fs+UH34C222デフォルトの名無しさん
2019/02/05(火) 10:17:58.97ID:LEHFEUGy >>216
宇宙刑事っぽさもあるし、使うと風呂釜が綺麗になって身体が芯からあたたまりそうな感じもする
宇宙刑事っぽさもあるし、使うと風呂釜が綺麗になって身体が芯からあたたまりそうな感じもする
223デフォルトの名無しさん
2019/02/05(火) 10:32:30.10ID:+mMHH6yh >>219
UI作るときとことりん書く時でIDE使い分ければいいんでないの?
UI作るときとことりん書く時でIDE使い分ければいいんでないの?
224デフォルトの名無しさん
2019/02/05(火) 10:32:56.86ID:+mMHH6yh225デフォルトの名無しさん
2019/02/05(火) 11:21:10.88ID:jB1piIf6 >>216
ガリで
ガリで
226デフォルトの名無しさん
2019/02/05(火) 11:27:24.21ID:NCwCR2JI 宇宙刑事 Javalin
227デフォルトの名無しさん
2019/02/05(火) 12:13:00.65ID:nvQ1xa5u やっぱJavanだろ
228デフォルトの名無しさん
2019/02/05(火) 12:24:17.71ID:ryDpasJz Javalinの半分はやさしさで出来ています。
229デフォルトの名無しさん
2019/02/05(火) 12:42:55.22ID:NCwCR2JI リン付ければなんでも可愛らしくなると思いやがってそうはいかねえぞべらんめえ ←江戸っ子
230デフォルトの名無しさん
2019/02/05(火) 15:01:18.53ID:PldLlsCY > ←江戸っ子
ウザっ
ウザっ
231デフォルトの名無しさん
2019/02/05(火) 15:25:14.63ID:NCwCR2JI うざりん
232デフォルトの名無しさん
2019/02/06(水) 19:35:52.56ID:59jOjkSQ 上でシステム系にはGoみたいに書かれてるんだけど、kotlin/nativeはGoより遅いのかな。
現状ではそうなのかも知れないけど、最終的にはGoと同等の速度が出せるポテンシャル(仕組み)だと
思ってるんだけどそうでもないの?
現状ではそうなのかも知れないけど、最終的にはGoと同等の速度が出せるポテンシャル(仕組み)だと
思ってるんだけどそうでもないの?
233デフォルトの名無しさん
2019/02/06(水) 19:49:42.95ID:nvZvChxt goに勝つのは流石に無理じゃ?
234デフォルトの名無しさん
2019/02/06(水) 20:35:25.96ID:gjOdQxAx Goに比べたら遥かに複雑怪奇な言語だから最適化は不利だろう
JVMの挙動をエミュレーションするための無駄な処理は少なからず必要だろうし
JVMの挙動をエミュレーションするための無駄な処理は少なからず必要だろうし
235デフォルトの名無しさん
2019/02/07(木) 00:37:31.07ID:UFwIxg8c 1 c
2 go
5 jvm
10 script系
3くらいいける?
2 go
5 jvm
10 script系
3くらいいける?
236デフォルトの名無しさん
2019/02/07(木) 05:59:54.51ID:Ftq4Fy0N237デフォルトの名無しさん
2019/02/07(木) 07:33:55.52ID:ygKhuk/7238デフォルトの名無しさん
2019/02/07(木) 08:43:07.10ID:qMU5zT+q なんでRustはあんなに速いん?言語の抽象度は同じくらいやろ?
239デフォルトの名無しさん
2019/02/07(木) 10:01:05.59ID:ygKhuk/7240デフォルトの名無しさん
2019/02/07(木) 10:55:21.09ID:esduY2Xd Goはフットプリントも小さいからな。
C++だと、iostreamを静的リンクしただけでもそこそこ大きくなるのに。
C++だと、iostreamを静的リンクしただけでもそこそこ大きくなるのに。
241デフォルトの名無しさん
2019/02/07(木) 12:43:04.54ID:nkNDSe3E 上で1..10の速さ書いたんやけどあれは実測じゃなくて速さランクのイメージや。
go<kotlin native<<jvm<<壁<<script言語
こうなるなら納得なんやけど、現実には
kotlin native ≒ jvmなの?
最適化されたらgoに迫ると思い込んでるんやけどそんな甘くないんかな。
go<kotlin native<<jvm<<壁<<script言語
こうなるなら納得なんやけど、現実には
kotlin native ≒ jvmなの?
最適化されたらgoに迫ると思い込んでるんやけどそんな甘くないんかな。
242デフォルトの名無しさん
2019/02/07(木) 13:44:29.30ID:Ftq4Fy0N 最適化できたらそらそうだけど、その最適化がどこまで出来るかどうかはお天道様にしか分からない
243デフォルトの名無しさん
2019/02/07(木) 14:46:10.65ID:nkNDSe3E それもそうやね。大人しく半年か1年くらい待ってみるわ
244デフォルトの名無しさん
2019/02/07(木) 14:47:12.25ID:ygKhuk/7 コンパイラの頑張り次第で Go ≒ Kotlin/Native まで行ける可能性はある
ベンチマークでは C ≒ Rust << Go ≒ JVM
Rust vs Go https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/rust-go.html
Go vs Java https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html
しかしGCの性質の違い、JVM起動時間、JIT、並列処理サポートなどにより
各ユースケースに対する適性は速度だけでは決まらない
ベンチマークでは C ≒ Rust << Go ≒ JVM
Rust vs Go https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/rust-go.html
Go vs Java https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html
しかしGCの性質の違い、JVM起動時間、JIT、並列処理サポートなどにより
各ユースケースに対する適性は速度だけでは決まらない
245デフォルトの名無しさん
2019/02/08(金) 16:17:29.13ID:nPWMA0BU 3桁ごとにカンマ打つには、
val str= "123456"
println( str.format("%,d"))
想定では、123,456のはずが123456になる
使い方間違ってるかな?
val str= "123456"
println( str.format("%,d"))
想定では、123,456のはずが123456になる
使い方間違ってるかな?
246デフォルトの名無しさん
2019/02/08(金) 17:15:55.53ID:3DPCoowD 逆じゃね?
247デフォルトの名無しさん
2019/02/08(金) 18:09:56.46ID:nPWMA0BU 逆+Intでないとダメみたい
BigDecimal放り込んだら勝手に12,345.6789みたいになればと思ったんだけど、自分で作るの面倒で信用ならん
BigDecimal放り込んだら勝手に12,345.6789みたいになればと思ったんだけど、自分で作るの面倒で信用ならん
248デフォルトの名無しさん
2019/02/08(金) 18:45:11.42ID:MkVUfclC jvmならNumberFormatでいいんじゃないの
import java.math.BigDecimal
import java.text.NumberFormat
val BigDecimal.fmtStr: String
get() = NumberFormat.getNumberInstance().format(this)
fun main(args: Array<String>) {
val a = BigDecimal(12345.6789)
println("${a.fmtStr}")
}
import java.math.BigDecimal
import java.text.NumberFormat
val BigDecimal.fmtStr: String
get() = NumberFormat.getNumberInstance().format(this)
fun main(args: Array<String>) {
val a = BigDecimal(12345.6789)
println("${a.fmtStr}")
}
249デフォルトの名無しさん
2019/02/08(金) 19:35:10.36ID:MkVUfclC ごめんよく見たら丸められてたから訂正
https://ideone.com/AvbxFT
https://ideone.com/AvbxFT
250デフォルトの名無しさん
2019/02/08(金) 19:59:36.92ID:nPWMA0BU >249
"."探して、整数と小数点以下に分けて整数部分にカンマ打ってから合体させようとしこしこ作ってたら別のアイデア出てた
ありがと
"."探して、整数と小数点以下に分けて整数部分にカンマ打ってから合体させようとしこしこ作ってたら別のアイデア出てた
ありがと
251デフォルトの名無しさん
2019/02/09(土) 06:09:56.82ID:6/bHpQ6m locale によってはカンマが3桁区切りではないかも知れないし記号がカンマではないかも知れないので
こうやって自分でやっちゃった方が良いのでは?
println(java.text.DecimalFormat("#,##0.000").format(java.math.BigDecimal("1234567890.1235"))) // 1,234,567,890.124
こうやって自分でやっちゃった方が良いのでは?
println(java.text.DecimalFormat("#,##0.000").format(java.math.BigDecimal("1234567890.1235"))) // 1,234,567,890.124
252デフォルトの名無しさん
2019/02/09(土) 07:35:37.20ID:fJwH+mSX >>251
ロケールに従わず常にカンマにしたいという意図ならそれだとそぐわないと思う
DecimalFormatに与えたカンマはカンマという文字ではなくグループ区切り子なのでロケールに応じた文字で出力されるよ
ロケールに従わず常にカンマにしたいという意図ならそれだとそぐわないと思う
DecimalFormatに与えたカンマはカンマという文字ではなくグループ区切り子なのでロケールに応じた文字で出力されるよ
253デフォルトの名無しさん
2019/02/10(日) 17:34:05.13ID:BbTEeZaP 日本, アメリカ, イギリス 他
1 = 1.000 < 10 < 1,000 = 1000
ドイツ, イタリア 他
1 = 1,000 < 10 < 1.000 = 1000
ロシア, フランス 他
1 = 1,000 < 10 < 1 000 = 1000
オーストラリア, カナダ 他
1 = 1.000 < 10 < 1 000 = 1000
国際単位系(SI)
1 = 1,000 = 1.000 < 10 < 1 000 = 1000
空白を小数区切りに使う国が無いことと、ポイントとカンマの各国のばらつきから
読み取り間違いを避けるための妥協案のようなもの
1 = 1.000 < 10 < 1,000 = 1000
ドイツ, イタリア 他
1 = 1,000 < 10 < 1.000 = 1000
ロシア, フランス 他
1 = 1,000 < 10 < 1 000 = 1000
オーストラリア, カナダ 他
1 = 1.000 < 10 < 1 000 = 1000
国際単位系(SI)
1 = 1,000 = 1.000 < 10 < 1 000 = 1000
空白を小数区切りに使う国が無いことと、ポイントとカンマの各国のばらつきから
読み取り間違いを避けるための妥協案のようなもの
254デフォルトの名無しさん
2019/02/10(日) 17:41:28.40ID:BbTEeZaP おまけ
Ruby, Java, Kotlin 他
1 = 1.000 < 10 < 1_000 = 1000
C++
1 = 1.000 < 10 < 1'000 = 1000
アンダースコアをユーザー定義リテラル用に使っていたため
Ruby, Java, Kotlin 他
1 = 1.000 < 10 < 1_000 = 1000
C++
1 = 1.000 < 10 < 1'000 = 1000
アンダースコアをユーザー定義リテラル用に使っていたため
255デフォルトの名無しさん
2019/02/10(日) 18:10:30.74ID:6jFJUgix そうか。じゃあグループセパレータを自分でカンマにセットしとかないと確実にカンマにはならないってことだな。
256デフォルトの名無しさん
2019/02/12(火) 05:43:38.35ID:xDY2FToe Java全然書いたことないんだけどJavaのこと調べてたらこの言語に辿り着いた
Android公式言語とのことだけど、Androidアプリ開発以外の用途でJavaでやることもKotlinで出来るの?
もうJavaじゃなくてKotlin学んだほうがいい?
PythonとCしか書けない
Android公式言語とのことだけど、Androidアプリ開発以外の用途でJavaでやることもKotlinで出来るの?
もうJavaじゃなくてKotlin学んだほうがいい?
PythonとCしか書けない
257デフォルトの名無しさん
2019/02/12(火) 05:56:17.28ID:SvKCMiwA おわこん
258デフォルトの名無しさん
2019/02/12(火) 06:15:00.09ID:PanSk5rI >>256
> JavaでやることもKotlinで出来るの?
できる。
> もうJavaじゃなくてKotlin学んだほうがいい?
JavaをやってからKotlinを学んだほうがいいけど、PythonとCができるなら、Kotlinから始めるのもありかも。
> JavaでやることもKotlinで出来るの?
できる。
> もうJavaじゃなくてKotlin学んだほうがいい?
JavaをやってからKotlinを学んだほうがいいけど、PythonとCができるなら、Kotlinから始めるのもありかも。
259デフォルトの名無しさん
2019/02/12(火) 08:01:07.40ID:zazJl4ej >>256
APIリファレンス読むためにJavaのメソッド定義の構文を知っておくくらいで
Kotlinをメインに学んで良いと思うよ
成果物はJavaクラスファイル(※)なので出来ることは同じ
やろうと思えば1プロジェクトで混在しても普通にお互い呼べる
※Kotlin/JS, Kotin/Nativeとかの別形式もある
APIリファレンス読むためにJavaのメソッド定義の構文を知っておくくらいで
Kotlinをメインに学んで良いと思うよ
成果物はJavaクラスファイル(※)なので出来ることは同じ
やろうと思えば1プロジェクトで混在しても普通にお互い呼べる
※Kotlin/JS, Kotin/Nativeとかの別形式もある
260デフォルトの名無しさん
2019/02/12(火) 11:22:53.23ID:8lolhehX Scalaってどこいったん?
261デフォルトの名無しさん
2019/02/12(火) 14:31:00.63ID:8DpMAebM Scalaは衰退しました
262デフォルトの名無しさん
2019/02/12(火) 15:06:09.44ID:ncKC6kPX 使われてるところでは安定して使われてるみたい
拡大は止まったと思うけど
拡大は止まったと思うけど
263デフォルトの名無しさん
2019/02/12(火) 20:08:57.00ID:hkCwi0n8 scala組がkotlinに合流してくれたら覇権言語狙えるんやないか。
ということは、kotlinに必要なのはお洒落感?
ということは、kotlinに必要なのはお洒落感?
264デフォルトの名無しさん
2019/02/12(火) 20:28:23.96ID:VerJGrBE Scalaやってた意識高い系はみんなとっくにRustへ移行した
265デフォルトの名無しさん
2019/02/12(火) 21:03:35.46ID:pT/fbk4d >>256
それをJavaで作る必要があって、Javaで作ることを誰かに強制されているなら、それはJavaで作る
それをJavaで作る必要があって、Javaで作ることを誰にも強制されてないなら、それはKotlinで作る
それをJavaで作る必要がないなら、JavaでもKotlinでも作らない。他の言語を使う。めんどくさいじゃん
それをJavaで作る必要があって、Javaで作ることを誰かに強制されているなら、それはJavaで作る
それをJavaで作る必要があって、Javaで作ることを誰にも強制されてないなら、それはKotlinで作る
それをJavaで作る必要がないなら、JavaでもKotlinでも作らない。他の言語を使う。めんどくさいじゃん
266デフォルトの名無しさん
2019/02/13(水) 09:04:09.69ID:KRdNZL9E ちょっと前はScala民がやたらKotlinを叩いてたけど、それももう見なくなったな
267デフォルトの名無しさん
2019/02/13(水) 13:18:45.36ID:ikkFeMPB 現在はKotlin教とGo教の戦い?
268デフォルトの名無しさん
2019/02/13(水) 14:52:01.31ID:e0d6KWci 言語に自己肯定感を求める人は無難無個性言語Kotlinや低脳言語Goでは欲求が満たされないことを知りRustへ行った
269デフォルトの名無しさん
2019/02/13(水) 18:00:16.64ID:41RZIXro >>267
両方とも同時期に流行り始めたけど、用途的にあんまり競合してない希ガス
両方とも同時期に流行り始めたけど、用途的にあんまり競合してない希ガス
270デフォルトの名無しさん
2019/02/13(水) 19:36:21.84ID:n4QfG8LN おれもどうせならオシャレな言語がいいんだがスマホのアプリ作りたいならkotlinしかないよね?
271デフォルトの名無しさん
2019/02/13(水) 20:05:24.56ID:o4GE+skC つDart
272デフォルトの名無しさん
2019/02/13(水) 20:07:39.49ID:kPXKdc0M dartがオシャレ…?
273デフォルトの名無しさん
2019/02/13(水) 20:43:21.05ID:KRdNZL9E flutter普及への最大の障害がDartだよな
274デフォルトの名無しさん
2019/02/13(水) 22:02:27.55ID:O2gl0nE8 >>270
あなたの言うスマホアプリがゲームだけであるなら、Unityを使うことができる
これはWindowsマシンでAndroidゲームもiPhoneゲームも作ることができる(iPhoneの実機はあったほうがいいけど)
あなたの言うスマホアプリがiPhoneアプリであるなら開発マシンはMacでiPhoneは必須、個人なら言語は公式のSwift(就職する気なら今からObjective-Cに手を出して時間不足で爆死しよう)
Windowsマシンでも作成だけはできるがユーザーの「よくわからないけど動きません」に対して「よくわからないので直せません」と答えるしかなくなる(所詮エミュ)
あなたの言うスマホアプリがAndroidアプリである場合のみ、Windows(別にLinuxでもMacでもいいけど)でKotlinを使うことで作ることができる
ゲームを作ることももちろんできるが、基本的に全部自力での実装になるので序盤から山が高いし若干面倒くさい(後々勉強にはなるが)
手間と面倒だけ考えるならUnityとC#でやったほうがサンプルも解説も書籍もライブラリも山ほどあるし楽は楽、詰まってもだいたい先人が解いてるのでイージー。タイムイズマネー
もちろん他の言語で作ることもできて、たとえばもしあなたにC++の知識があるならC++でゴリゴリ作ることもできるんだけど、そんな人はこんなこと聞かないよね
えっXamarin?ごめーん忘れてた。「もしあなたがいっぱしのWindowsアプリケーション開発者であるなら」その知識とXamarinとC#と.NETを使うことでAndroid/iPhoneアプリ開発ができるよ
あなたの言うスマホアプリがゲームだけであるなら、Unityを使うことができる
これはWindowsマシンでAndroidゲームもiPhoneゲームも作ることができる(iPhoneの実機はあったほうがいいけど)
あなたの言うスマホアプリがiPhoneアプリであるなら開発マシンはMacでiPhoneは必須、個人なら言語は公式のSwift(就職する気なら今からObjective-Cに手を出して時間不足で爆死しよう)
Windowsマシンでも作成だけはできるがユーザーの「よくわからないけど動きません」に対して「よくわからないので直せません」と答えるしかなくなる(所詮エミュ)
あなたの言うスマホアプリがAndroidアプリである場合のみ、Windows(別にLinuxでもMacでもいいけど)でKotlinを使うことで作ることができる
ゲームを作ることももちろんできるが、基本的に全部自力での実装になるので序盤から山が高いし若干面倒くさい(後々勉強にはなるが)
手間と面倒だけ考えるならUnityとC#でやったほうがサンプルも解説も書籍もライブラリも山ほどあるし楽は楽、詰まってもだいたい先人が解いてるのでイージー。タイムイズマネー
もちろん他の言語で作ることもできて、たとえばもしあなたにC++の知識があるならC++でゴリゴリ作ることもできるんだけど、そんな人はこんなこと聞かないよね
えっXamarin?ごめーん忘れてた。「もしあなたがいっぱしのWindowsアプリケーション開発者であるなら」その知識とXamarinとC#と.NETを使うことでAndroid/iPhoneアプリ開発ができるよ
275デフォルトの名無しさん
2019/02/13(水) 23:07:05.67ID:eA/7rWxO276デフォルトの名無しさん
2019/02/14(木) 06:44:05.14ID:l2sDxPpK >>275
Goもこちょりんもどちらも使うけど、一口にWEBサーバーと言っても得意なジャンルが違うな、少なくとも現時点では。
今後GoにSpringみたいなフルスタックのフレームワークが出てきたら思いっきり競合するかもね。
Goもこちょりんもどちらも使うけど、一口にWEBサーバーと言っても得意なジャンルが違うな、少なくとも現時点では。
今後GoにSpringみたいなフルスタックのフレームワークが出てきたら思いっきり競合するかもね。
277デフォルトの名無しさん
2019/02/14(木) 09:29:59.23ID:9tQDIG7c 合体させて Gotlin
278デフォルトの名無しさん
2019/02/14(木) 11:59:45.42ID:PQjGjDTM 実際、Goの運用性とKotlinの生産性が合わさればわりと最強だと思う
Kotlin nativeみたいにKotlinのエコシステムを再現する方向だとどうしてもJVMをエミュレーションするような感じになって歪みが出る
逆にGoの文法をKotlinに寄せるほうが筋がいい
Kotlin nativeみたいにKotlinのエコシステムを再現する方向だとどうしてもJVMをエミュレーションするような感じになって歪みが出る
逆にGoの文法をKotlinに寄せるほうが筋がいい
279デフォルトの名無しさん
2019/02/14(木) 13:00:16.45ID:DBAMfZpK 歪みってどういうの?
280デフォルトの名無しさん
2019/02/14(木) 15:39:16.51ID:cVDEqZjL >>279
逆に聞くが、仮に完全にゼロベースで Kotlin native を開発してたとして、今と同じ言語仕様になったと思う?
特定の処理系を前提にして作られて普及した言語が他へ移植されて成功した例はない
逆に聞くが、仮に完全にゼロベースで Kotlin native を開発してたとして、今と同じ言語仕様になったと思う?
特定の処理系を前提にして作られて普及した言語が他へ移植されて成功した例はない
281デフォルトの名無しさん
2019/02/14(木) 17:06:41.26ID:DBAMfZpK 具体的な支障は無いってことでいいの?
282デフォルトの名無しさん
2019/02/14(木) 19:02:02.86ID:HgCh9LDM 横からだけどjvmの負の特性も引き継ぎやすいってことかと思った。
起動が遅いとか、メモリ食うとか。
起動が遅いとか、メモリ食うとか。
283デフォルトの名無しさん
2019/02/14(木) 21:20:40.39ID:FnxMJF+D 起動が遅い事は遅いが昔からすれば今時のPCは速いね。
Windows95や98の頃なんかどうしてくれようというほど遅かったからなあ。
昔はみんな忍耐力強かったよなあ。
Windows95や98の頃なんかどうしてくれようというほど遅かったからなあ。
昔はみんな忍耐力強かったよなあ。
284デフォルトの名無しさん
2019/02/15(金) 05:29:24.84ID:Ytmv+Yd8 >>280
確かにJVMのジェネリクス型消去がなかったら、reifiedみたいな複雑怪奇な仕様はなかったろうな。
移植については大抵は非公式移植事例だから、楽観はできないけど、まだ決めつけるには速いかと。
Scala.NET...うっ、頭が...
確かにJVMのジェネリクス型消去がなかったら、reifiedみたいな複雑怪奇な仕様はなかったろうな。
移植については大抵は非公式移植事例だから、楽観はできないけど、まだ決めつけるには速いかと。
Scala.NET...うっ、頭が...
285デフォルトの名無しさん
2019/02/15(金) 08:15:53.64ID:EWf/hEPb 新しいところでいうと、inline classなんか普通にユーザー定義の値型があれば全く必要ないな
unsigned integerもだいぶ無理矢理感が酷い
Kotlin native特有の話だと、C interopのための構造体のマッピングとか超無理矢理で最高にエイリアン感ある
unsigned integerもだいぶ無理矢理感が酷い
Kotlin native特有の話だと、C interopのための構造体のマッピングとか超無理矢理で最高にエイリアン感ある
286デフォルトの名無しさん
2019/02/15(金) 09:58:26.61ID:KLsspNaS iPhoneにおけるSwiftの立ち位置=AndroidにおけるKotlinの立ち位置
287デフォルトの名無しさん
2019/02/15(金) 10:48:24.63ID:szDoWtiX あ、はい
288デフォルトの名無しさん
2019/02/15(金) 10:54:34.88ID:tar5L0r6 inline class = ユーザー定義の値型 = C#のstruct
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される
そして最適化が十分ならそれらが必要無いことをRustとGoが証明してる
ヒープかスタックかは自動で判断される
289デフォルトの名無しさん
2019/02/15(金) 10:56:38.52ID:PR4djPv7 特定のVM前提で設計されて他へ移植されて成功した言語の例としてはAndroidのJava/KotlinやUnityのC#、Node.jsのJSあたりが該当すると言えなくもないけど、
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ
それらは言語の移植ではなくVMごと移植だからなあ
基本的にVM言語の他への移植は成功しないよ
290デフォルトの名無しさん
2019/02/15(金) 11:07:58.47ID:tar5L0r6 AndroidやC#のいくつかのターゲットはAOTで
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる
それらも「VMごと」に含むなら
LLVMを使うC++(Clang)も同じ扱いになる
291デフォルトの名無しさん
2019/02/15(金) 15:42:23.69ID:FI28dGgE 最近、kotlin触ってるけど、C#より学習コストが高いです
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?
それで、C#erがkotlinに切り替える際に、意識すべき点って何かありますか?
292デフォルトの名無しさん
2019/02/15(金) 16:15:05.26ID:PR4djPv7 >>291
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい
Javaの制限を理解すること
JVMは.NETのCLRに比べて機能的にはずっとショボくて、その制限に由来する奇妙な仕様がKotlinには数多く存在する
Javaに慣れてないとそのあたりは直感的に理解しづらい
293デフォルトの名無しさん
2019/02/15(金) 17:24:02.62ID:Hx3jejna >>292さんの言ってる「Javaの制限」て例えばどんなこと?
294デフォルトの名無しさん
2019/02/15(金) 17:29:59.00ID:tar5L0r6 >>291
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること
C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
他に引数が無い場合は丸括弧も省略出来る
(GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作
プログラム言語全般に言えることだけど
各構文を概要程度でも良いので、まずは一通り知ること
C#知ってて引っ掛かりそうな箇所として思いついたのは
・最後のパラメータがラムダの場合は丸括弧の後に書ける
他に引数が無い場合は丸括弧も省略出来る
(GroovyやSwiftのTrailing Closureと同じ)
・レシーバ付きラムダ
・inlineラムダ
・returnはfunから抜けるもので、ラムダから抜けるものではない
・IterableとSequenceは遅延評価
・コンパイルでジェネリクス情報は消える
・suspendは同期(await)が基本動作
295デフォルトの名無しさん
2019/02/15(金) 17:31:30.02ID:tar5L0r6296デフォルトの名無しさん
2019/02/15(金) 22:07:22.01ID:KHCIiBIM kotlin勉強中なんだけど、結局のところjetbrainsがscala推さずにkotlin出したのは何でなの?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?
商業的に旨みがあるから?それともbetter javaとしてのscalaに見切りをつけたから?それとも?
297デフォルトの名無しさん
2019/02/15(金) 22:33:17.97ID:tar5L0r6 コンセプトの違い
298デフォルトの名無しさん
2019/02/15(金) 23:10:54.49ID:9S5XTVoX >>296
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね
自分でScalaやってみればすぐにわかるよ
まともな感性があれば、あんなものが普及するわけがないことは明らかだった
JetBrainsもIDEを作る会社として自由にできる言語が一つは欲しかったというのはもちろんあっただろうけどね
299デフォルトの名無しさん
2019/02/15(金) 23:25:58.35ID:KHCIiBIM >>296
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。
なるほど。Scalaのこれ以上の普及は難しいという判断があった(だろう)ってことなら納得。
300デフォルトの名無しさん
2019/02/15(金) 23:41:27.98ID:KHCIiBIM まちがえた。上は >>298
雑念を捨ててkotlin邁進してきます
雑念を捨ててkotlin邁進してきます
301デフォルトの名無しさん
2019/02/16(土) 15:17:06.30ID:lTjIe/CZ Scalaは言語マニアのオナニー言語だよなあ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国と対話で良い関係つくるのが責任と首相 [少考さん★]
- 中国と対話で良い関係つくるのが責任と首相 ★2 [少考さん★]
- 参政党、梅村みずほ参院議員を党ボードメンバーから解任 参議院国会対策委員長の役職も外れる [少考さん★]
- 日本テレビ、国分太一の会見受け回答「『コンプライアンス違反行為があった』ということ以上に公にできない」「答え合わせ難しい」 [Ailuropoda melanoleuca★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★2 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★3 [Ailuropoda melanoleuca★]
- 【悲報】高市、答弁修正。バカウヨ敗北wwwwwwwwww [834922174]
- 中国の極超音速ミサイル、名古屋に照準か 高市さん助けて [399259198]
- 【速報】高市「日本はサンフランシスコ平和条約で台湾に関する全ての権利と権限を放棄している。台湾の法的地位や認定する立場ではない」 [931948549]
- 立川志らく「高市政権に逆らったら全部日本人じゃねえなんて言ってない」 [931948549]
- 【画像】高市円安寿司 [667744927]
- 【悲報】「ジャングリア沖縄」、開業3ヶ月目にしてガラガラになってしまうwwwwwwwwwwwwwwwwwww [839150984]
