Kotlin [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/02/27(土) 01:46:01.68ID:Ag8w7//2
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
2017/07/29(土) 20:43:20.90ID:W96Wekxi
ライブラリ関係とか周辺知識も必要やな
2017/07/29(土) 21:30:26.28ID:c4yh7S8Z
Kotlinに限らないけど今の言語を使う上ではHaskell界隈由来のflatMapとかも理解しておいた方がいい

別言語のだけど図解部分は支障無いから貼っておく
https://www.slideshare.net/ksc1213/swiftmonad
2017/07/29(土) 22:18:06.96ID:CGKorK5y
むしろ周辺知識の方が覚える事膨大で困る
2017/07/29(土) 22:19:42.45ID:qR/5D+lk
>>489
haskell由来?www
2017/07/29(土) 22:34:22.42ID:DIZfrj77
>>488
ライブラリ系の学習って遅延学習じゃ駄目なの?
2017/07/29(土) 22:37:08.86ID:qR/5D+lk
>>492
いいよ
2017/07/29(土) 23:53:54.93ID:c4yh7S8Z
>>491
何由来だと思ってるの?
2017/07/30(日) 00:04:10.80ID:PpFa/iNU
その手の奴はだいたいLisp由来とか言っとけば当たる
2017/07/30(日) 09:16:23.60ID:AatiOL5G
>>487
主要言語の「Effective 何々」という本を読めば、わかるけど、
すべての言語でほぼ同じ

本では、equals, hashCode, toString の三種の神器を、
最初にオーバーライドしましょうって書いてあるけど、

Kotlin では、データクラスと言って、最初から用意されている
2017/07/30(日) 10:13:47.62ID:1EcJb2Jm
またお前か
ミュータブルなクラスでequalsやhashCodeをオーバーライドするのは多くの場合不適切
498
垢版 |
2017/07/30(日) 15:50:13.09ID:P5Qwr2jW
Haskell大人気だな。
ただのflattenとmapで、ほんとにlispの頃からある。
2017/07/30(日) 18:11:16.75ID:X+REAxPs
型システムと共にMonadやFunctorとして整理された経緯を知らないと
そう思うのも無理は無い
Lispやさらに前段の数学も由来として合ってはいるが
関数単体で導入されたわけでなく包括的な概念で導入されている
500
垢版 |
2017/07/30(日) 18:24:32.50ID:P5Qwr2jW
包括的な概念で導入された、って、関数型言語なら当たり前の概念を集めて来たって話で、
Haskellで知った、って話をドヤ顔されても、って話なんじゃないの?
2017/07/30(日) 22:02:52.21ID:4pngWMeM
Javaは(意外と)シンブルな言語なんだから、3言語ぐらい精通してる人ならばkotlinなんて難しくないよ。
Javaをマスターしてないとって思う人もいるみたいだけど、Javaの持ってる要素なんて、プログラミングの様々な要素からしたらそんなに多くないから大丈夫だよ
2017/07/30(日) 22:16:46.98ID:W7NHR4pI
>>501
良かった。
typeScriptとswift2とobjcとgo
が使えてる俺はなんの問題もなく使いこなせるって事だね?
2017/07/30(日) 22:18:14.70ID:sGCf83rH
CommonLispやC++に比べれば屁でもない
2017/07/31(月) 08:02:41.90ID:IjzZ4ZfD
>>500
>概念を集めて来たって話
是非ともMonadやFunctorとして整理された経緯を調べてみてくれな
2017/07/31(月) 14:27:59.07ID:luO5NyKL
elixirのパターンマッチに感動したんだけど、バイナリ列にパターンマッチングできるんでバイナリデコーダが簡単にできそうなんですが
kotlinもそういうことできます?
506
垢版 |
2017/07/31(月) 18:32:19.26ID:/DHTAviI
>>504
知ってるよ。そもそも物理屋、工学屋は圏論自体から入っとる。
2017/08/01(火) 00:27:55.71ID:PARHYe6N
>>481だけがわりと正確な物言いしてるが「解説の大部分がJavaプログラムに依存してる」ことが学習上の問題
自然言語でほとんど書いてないからJavaの動作を斟酌して理解しないといけないのだ
時間と人手が解決する問題ではあるが、今から学びたい人にはあんまり嬉しくなかろうな

理解に必要なのはJavaの文法そのものではなくJavaの個々の動作と実装のされ方なのでJava使ったことない人はしばらく戻ってこれないぞ
ただ、遠回りだけど近道なので頑張ってくれ
508デフォルトの名無しさん
垢版 |
2017/08/01(火) 01:54:59.02ID:sayqMREC
>>502

>>475
の順番に読めば、OK
2017/08/01(火) 02:05:24.99ID:A0OBZNC2
>>475
rubyみたいなオワコン勧めるなボケ
2017/08/01(火) 02:07:40.68ID:A0OBZNC2
kotlinってアンチパターンすぎる。
純粋な実装を隠蔽するんだから。
2017/08/01(火) 03:56:21.19ID:sayqMREC
>>505
Byte Stream に変換して、その中から探せば?
2017/08/01(火) 09:50:52.12ID:5VpZIsuu
kotlinやってみたくなったけど
入門者向けの情報がjava前提の物ばかりなので
javaやり始めました

で、思ったんだけど
javaって言語仕様以外の部分で覚えなきゃならない事多すぎ
kotlin入門者向けのライトなjava入門の情報が欲しい今日この頃
2017/08/01(火) 14:33:06.94ID:bOmdPaNn
何はともあれHello worldよ
色々丸コピでもいいから手持ちのAndroid端末上に画面を出す

そこで登場したよく分からないものを全てググって
その後はやりたいことをベースに調べていけばいい
本読むのはその後でも
2017/08/01(火) 19:23:29.20ID:A6tuVNB3
JavaとKotlinなんて文法以外にさほど違いがないから、覚えることが多いことに変わりない罠
2017/08/01(火) 19:34:51.60ID:HNVJVpAf
覚えるって発想がよくわからない
調べたらいいと思う
516
垢版 |
2017/08/01(火) 20:43:30.74ID:ps+Dq31M
>>510
案外bytecodeはjavacより賢いと思う。
kotlin nativeにも期待たし、隠蔽ってのはそこまで深く考えんで良いのでは?

あんまり隠蔽と言い出すと、アセンブラ書くしか無くなる。
517デフォルトの名無しさん
垢版 |
2017/08/01(火) 23:16:53.17ID:NbT5I2SP
(´・ω・`)これって、コーリンって読むらしいね
2017/08/01(火) 23:25:56.46ID:WvvXqR8d
じゃあそう読めばいいんじゃない?
伝わらないと思うけど
519デフォルトの名無しさん
垢版 |
2017/08/01(火) 23:56:00.53ID:NbT5I2SP
(´・ω・`)いまね、wiki見たらことりんってかいてたー
さっきTwitterみてたらコーリンってよむってウソ情報ながれてたのー
すいません
2017/08/02(水) 00:30:22.22ID:Mrcj6vwl
ここやTwitterのような有象無象発信の情報は一度調べることをオススメする

1次情報や文責のある情報なら話は別だけどね
521デフォルトの名無しさん
垢版 |
2017/08/03(木) 02:14:23.09ID:dP8PygxN
コトリチャンって読むんやで
522デフォルトの名無しさん
垢版 |
2017/08/04(金) 02:49:08.32ID:C9CuhslM
この言語でiosアプリも開発できるの?
ならSwiftもJavaもいらなくね?
523デフォルトの名無しさん
垢版 |
2017/08/05(土) 22:07:19.73ID:q6QkhQr1
初心者向けの定番本教えて
2017/08/05(土) 22:40:45.42ID:su6WsJEB
まだ出てないだろ?
2017/08/05(土) 22:41:57.37ID:Zex8il51
>>475
に書いてある

定番もクソも、Kotlin の本は、ユーザーグループ代表の本だけ
2017/08/05(土) 23:47:57.71ID:1Q3JuekX
電子書籍でも出てるよな
2017/08/06(日) 08:37:01.72ID:exhLY8Mw
kotlin自体はそんなに変な仕様じゃないから
androidとの組み合わせで変わるとこが知りたい。
基本的にはimportはjavaの時と同じなの?
andrid全般の学習をする時にjavaで書かれたコードが単純にkotlinのコードに変換すれば動くってことでいいのかな。
2017/08/06(日) 11:16:41.83ID:8894pkNA
その認識だと先にKotlinを数日みっちり勉強したほうが早く理解できる気がするぞ
2017/08/06(日) 11:37:11.88ID:exhLY8Mw
>>528
どうなんだろね。単純にjavaのコードの部分を変換してみて
なんで動かないのか検証したほうが早い気もする(遅延学習)
androidのチュートリアル自体はjavaで書かれてるものが大半だし。
2017/08/15(火) 15:45:25.89ID:qX6sO+hu
Swift, Clang/LLVMの発明者のラットナー がKotlinの開発に参加するってマジ?
2017/08/15(火) 19:45:47.28ID:wxesOBVY
IntellijにKotlinのREPL付いていて便利だろうと思ったけど
REPLは入力途中でけっこう固まってしまう。
あとprintlinが改行しなかったり、まだ不安定なのかな。
2017/08/15(火) 20:57:50.46ID:wYSD0kSw
Kotlin 1.1.4 is out
https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/
2017/08/16(水) 15:09:19.71ID:VrVIPOAA
>>530
GoogleでAI関連の部署に入ったみたいだぞ?
2017/08/17(木) 12:41:21.77ID:Am4yUvQo
>>533
マジかー、まぁ、Googleに入ったならSwiftよりはKotlinよりか
Alloに関わるなら無いこともない?
2017/08/17(木) 13:05:10.32ID:5mQoD0+b
>>530
こマ?
536デフォルトの名無しさん
垢版 |
2017/08/17(木) 14:10:07.16ID:P168fr1d
Kotlinに関わるならJetBrainsに行くやろ
あるいはGoogleのなかでも特にBrainsチームに入る意味がない
本人がAIやるって言ってんだからそれ以上でもそれ以下でもない
2017/08/17(木) 17:50:59.53ID:8HfS9wXv
SwiftとKotlin/Nativeはコンセプトや立ち位置が同じだからワンチャンあるで
GoMobileもAndroid Studio C/C++ NDK Pluginも死に体だから、Android + Kotlin/Nativeに期待したいね
2017/08/17(木) 20:15:47.27ID:uHinuZ07
これかな

Apple「Swift」のクリス・ラトナー氏、Teslaを経てGoogle Brain入り
ttp://www.itmedia.co.jp/enterprise/articles/1708/15/news043.html
2017/08/18(金) 06:36:54.32ID:pZRlwMOC
騒ぐことか?
たかがswift()の開発者なんだろ?
2017/08/18(金) 07:47:10.05ID:ijb+FWu4
教祖だからしゃーない
2017/08/18(金) 10:12:07.26ID:vRHq3miw
Swiftの開発者だけど、Kotlin/Nativeで使うLLVMの開発者でもあるんだよなぁ

Googleへの転職も短期らしいしApple(Swift)からJetBrains(Kotlin)にすぐに転職したら
倫理的にAppleからクレームが来るのは当然だしお茶濁しかもね
KotlinにLLVMのノウハウ投入してくれることを期待しようじゃないの
2017/08/18(金) 10:14:49.37ID:ReVsiHRv
>>541
brainだから全く関係ないが
2017/08/18(金) 10:15:50.49ID:FWE4C9Nk
希望的観測
2017/08/18(金) 10:35:41.64ID:+X0+m8dy
googleって20%ルールってまだあるんでしょ?
その20%の中でkotlinに手を出すのは自由なんじゃないの。
ただ、swiftの言語仕様の変遷を見るにkotlinの言語仕様に口出したら
とんでもないことになりそう
2017/08/18(金) 10:42:26.32ID:bO8OoBBY
>>544
会社が大きくなって死んだよ
546デフォルトの名無しさん
垢版 |
2017/08/18(金) 11:43:17.65ID:a7R6z0dh
3秒ルールはないのかな
547デフォルトの名無しさん
垢版 |
2017/08/19(土) 05:05:31.91ID:pqlrWbIe
C#から来たけど、C#ではヌル安全もコンストラクタとメンバ定義が一体になってるやつも一向に入らないからKotlinの方がいいと思うようになったね
IDEが少しモッサリしてるのとコンパイルが遅いのが難点だけどね
SwiftはGCがないから論外じゃない?
2017/08/19(土) 13:02:36.70ID:i5Fk1Iv8
>>547
GCないから論外ってそれRustに向かって言えるの?
2017/08/19(土) 13:06:40.00ID:s/Tmv27m
今どきガベコレは欲しいな
2017/08/19(土) 13:13:50.07ID:yjxWeDHX
Kotlin/Native PreviewはGCじゃなくARCなんだけど?
そして、GCがベストというわけじゃないし今後はどうするかは知らんとも言ってる
551デフォルトの名無しさん
垢版 |
2017/08/19(土) 13:17:42.75ID:pqlrWbIe
>>548
Rustはスゴイよな
使いこなせればあれが理想なんだろうな
2017/08/19(土) 14:47:09.74ID:a8QxREVh
rustはどうなんだろうね。
いずれ学習したい言語ではあるけど、今のところ活躍場所がないからなぁ。
2017/08/19(土) 14:56:51.77ID:t3rqEI6U
Kotlin勉強してるけどベターJavaとしてのScalaは相当辛いなあ。
Scalaは何目指せばいいんだろ
2017/08/19(土) 15:51:07.03ID:+F5+cWTJ
Scalaって当時のサーバサイドJava(J2EE)の代替として出たものでしょ
サーバ上で動かすJavaVMに既存資産(ソフト&人員)の再利用以外の価値を見出せるなら使えるんじゃないの
2017/08/19(土) 17:29:36.37ID:9KU7ntuJ
Java EE が、大げさすぎるから、
2001年、Struts
2004年、Ruby の、Rails
2006年、Groovy の、Grails
2006年、Scala の、Play

今は、Kotlin が出たけど、型を書くのが面倒くさいから、
型を書かない、Ruby, Groovy は残るだろう
2017/08/19(土) 22:54:27.97ID:a8QxREVh
>>555
javaばっか触ってる人は型がない方が素敵って思ってるのかね。
俺はTypescriptでかなり幸せだけど。確かにjsよりタイプ量が増えるけど
それ以上に安心感がパない
2017/08/19(土) 23:01:53.07ID:C7hMtZt2
型がないのと型を書かないですむのを一緒にするなし
2017/08/19(土) 23:02:14.25ID:p9Z5WLWG
型があろうがなかろうがどうせバグはテストで潰すからな
js界隈にはテスト文化がないのか
2017/08/19(土) 23:50:54.57ID:3LWi1RRc
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は70万払ってる) 客:短期延長していい?
5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
2017/08/20(日) 00:15:05.28ID:kaazzj5o
>>555
Railsより長く使われてるTomcat(Servlet)とPHPを忘れてんよ
どっちもRailsに淘汰されるかと思ったらなんだかんだで未だに生き残ってやがるから困る

テスト云々より動的型付け(TypeScript含む)は実行時速度がなぁ
動的型付け+型チェックは苦肉の策で、静的型付け+型推論が今の流行りよな
よってKotlinは素晴らしい
2017/08/20(日) 00:37:21.64ID:C3zH0fui
ひところJIETがネガキャンされてて最近は逆に急にこのありさま

どこに首根っこつかまれたんだ
2017/08/20(日) 19:22:23.16ID:X7HXBqNm
Android Studio 2.3.3で新規プロジェクト作るとKotlin変換後syncするとなんか赤字のIDEエラーが出るわ
AssertionError: Resolver for 'completion/highlighting in org.jetbrains.kotlin.idea.caches.resolve.NotUnderContentRootModuleInfo@1f51170a for files MainActivity.kt
for platform JVM' does not know how to resolve ModuleProductionSourceInfo(module=Module: 'app')
なんか設定間違ってるのだろうか…
2017/08/20(日) 20:28:01.43ID:X7HXBqNm
ぬーん原因らしきものわかった
「Javaをktファイルに変換する(Ctrl+Shift+Alt+k)」は/app/src/main/javaを選択した状態でやったほうがいいらしい
下手に/appとかプロジェクトルート選択した状態で変換すると余計なのまでkt化されてIDEサポート動作に支障が出るようだ
こんなミスする人そんなにいないと思うけど数文字打つたびIDEエラー出まくるという人は気をつけてみてくれ
2017/08/20(日) 21:38:37.79ID:X7HXBqNm
そうでもなかった
IlligalStateExcptionは別枠らしい
Failed to create expression from text: '<ERROR FUNCTION>'
ターミナルから起動すると標準エラー出力にスタックトレースが出ることがわかったのだが追跡めんどいな
前のと違ってこのエラー出ても補完とかは動くからもう無視したいした
2017/08/22(火) 01:05:28.57ID:hpqXPKX7
ちょっと関係ない話だがKotlinの入門書の最初に説明用のサンプルとして出てきた最大公約数を求める関数のアルゴリズムに驚いた
ユークリッドの互除法なんてものがあることを今まで知らなかった
証明見てもまだよくわからん
よくこんなことに気付いたな
紀元前300年の数学者すげー
2017/08/22(火) 01:14:54.99ID:tq0/mRJT
ユークリッドの互除法って有名で
プログラミングの題材としてもよく出てくるけど
紀元前に生まれてたら自力で思いつかないとは思う
2017/08/22(火) 01:47:52.53ID:hpqXPKX7
有名だったのか。確かに再帰処理の題材としては丁度いいねこれ。
2017/08/22(火) 02:31:08.97ID:tq0/mRJT
Kotlinなんて最新言語じゃなくて
何十年も前のBASICやCの頃から
互除法の例題はあったよ
2017/08/22(火) 02:37:43.49ID:i38qdLYb
正直あれは脚注でもなんでもいいから一言解説がついててもいいと思う
どこかで一度でもやったことさえあれば一発で見当がつくが
そうでなきゃ何がなんだかさっぱりわからんはずだ
2017/08/22(火) 02:45:00.72ID:NodutCvj
別にユークリッドの互除法を教えるのが目的じゃないからなあ
2017/08/22(火) 02:49:09.46ID:tq0/mRJT
Nクイーンとかもそうだけど
使い回されてるアルゴリズムを載せるのって
他言語でもう読み書きしたことがある人が
「この言語だとどう書くの?」ってのを
確認するためにあるようなものだからね
2017/08/22(火) 12:09:02.60ID:IWEK7hu0
「※ユークリッドの互除法」と一言書いてあるだけで100人単位で手間が救われたはずではある
もともとページ数ギリギリな書籍だから難しいのかもしれんが
573デフォルトの名無しさん
垢版 |
2017/08/22(火) 12:48:19.23ID:AcxdB0/s
ま、しかし、少なくとも計算に関しては数学知ってるか否かでかなりプログラムが変わって物凄く効率化できる可能性あるな。
2017/08/22(火) 12:53:42.85ID:NodutCvj
大体仕事で再起処理とか使わないし
2017/08/22(火) 14:14:28.90ID:IVfvVmbm
ユークリッドの互除法は、中学生レベルだろ。
知らなかったら、最大公約数を求められない

プログラムの本で、素数を求めるのに、√N まで、求めれば良いのに、
それを知らない著者もいる

N = 1,000 なら、32 まで試せば良いのに、1,000 まで試してる著者もいるw
2017/08/22(火) 14:21:03.39ID:IWEK7hu0
>>575
ユークリッドの互除法は4年前から高校の数学Aに記載されるようになった
それ以前では教育課程では学ばない
577デフォルトの名無しさん
垢版 |
2017/08/22(火) 16:24:42.17ID:ZXHHpxC4
>>574
使うこともあるよ。使った方が簡単になる場合。

こないだやったのは(Kotlinではないが)XMLの階層構造をRDBの表に入れるとかそこから戻すとかの処理。
XMLって入れ子になってるから再帰で書いた方が楽だ。というか再帰使わないと複雑怪奇なプログラムになるんじゃないか?
2017/08/24(木) 02:30:54.84ID:YbxxOGZ9
互除法は繰り返しでもわりと自然にコーディングできるが、XMLとかの木構造の処理は再帰が自然だよね。
2017/08/31(木) 23:08:32.05ID:67nUNCV4
operator キーワードの意味が良く分からないんですがこれって何のために必要なんでしょうか
2017/08/31(木) 23:18:11.21ID:pWykFKbQ
>>579
operatorが書かれてない場合はそういう名前の普通のメソッド定義だとみなされる
operatorが書かれてる場合はそれに対応する記号の演算子のメソッド定義だとみなされる
2017/09/01(金) 15:48:55.97ID:yBuOlbxF
ギアパワーの組み合わせで性能が見れるアプリを作ってみようかと思うんだが、
どういう機能があったら嬉しいかね
単に57表記が見れるだけじゃ意味ないよねえ
2017/09/01(金) 16:36:37.15ID:xNWoFI1L
それはプログラミング言語の手法の話ではないと思うよ
そのアプリを使うであろう人たちに直接聞いてみてはいかがかな
2017/09/07(木) 03:36:37.46ID:Ua+ABG0j
使う
2017/09/07(木) 03:43:26.98ID:Ua+ABG0j
ミスった

引数がIntのメソッドにByteとかShortとかつっこみたいときの賢い方法ってない?
いちいち.toInt()付けるのアホらしくて
…いっそのこと全部Intにしてしまうか
2017/09/07(木) 07:38:14.55ID:hBpoFfSg
java使えば?
2017/09/07(木) 07:43:21.26ID:dJGmlTPD
val b:Byte = 100
f(b+0)
2017/09/07(木) 18:23:41.25ID:dmOyOqaZ
「引数をとりあえずIntにして当該メソッドを呼ぶ」というメソッドを作ってそっちを使うようにする
具体的にどういうことをしたいときなのか言うと案外別アプローチあるやもしれず
■ このスレッドは過去ログ倉庫に格納されています