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

レス数が1000を超えています。これ以上書き込みはできません。
2016/02/27(土) 01:46:01.68ID:Ag8w7//2
JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
2016/02/27(土) 01:53:02.07ID:M1op650Q
Android開発ばかり注目されているけどサーバーサイドでも使っていきたいね。KotlinかわいいよKotlin。
2016/02/27(土) 02:03:58.29ID:kilaRF3z
ようやくスレ立ったか

C#erにオススメ
2016/02/27(土) 02:09:59.86ID:sN4Pn2/e
>>3
ようやくスレ立ったか

じゃねえよハゲ
望んでたなら自分で立てろやカス
2016/02/27(土) 02:41:02.12ID:hI6CEqxt
拡張子はktなのか
2016/02/27(土) 09:41:53.54ID:nQV2L2HM
どこからダウンロードできますか?
IDEじゃなくてKotlin本体だけが欲しいです
2016/02/27(土) 10:37:17.40ID:kilaRF3z
>>1のリンク先、ちょっとスクロールするとDownload Compilerってのがある

>>4
まだ禿てねえよハゲ
2016/02/27(土) 11:14:47.56ID:hI6CEqxt
IDE使わなくても、gradleにロードさせるのが簡単なんじゃないの?と思ったが
公式見たら kotlinc が用意されてるのな
2016/02/27(土) 11:25:26.53ID:0K1cdFU/
>>3
何故、C#er?
2016/02/27(土) 13:08:04.60ID:nQV2L2HM
これからダウンロードして勉強しようと思ったんですけど
僕はJavaの知識がないんですよ
やっぱりJavaをひと通り学んでからKotlinを使うほうがいいですか?
2016/02/27(土) 17:28:47.93ID:kilaRF3z
>>9
Kotlinちょっとしか触ってないけどC#と類似点多くね?
・プロパティ
・拡張関数=拡張メソッド
・ジェネリクスのin、out、where
・オーバーライド元メソッドにopen/virtualが必要

かつてはアノテーションもC#風だったけど、今はjava風に変わった
2016/02/27(土) 18:39:50.54ID:KsPOIQ1H
内包表記は無いの?
2016/02/27(土) 18:40:22.18ID:ip4T9kfk
>>11
C# に比べて何がいいの?
2016/02/27(土) 18:50:05.98ID:KsPOIQ1H
チラッと調べただけだけど
・パターンマッチ
・名前つきタプル
・Data Class
・null非許容型

C#7.0に欲しいものばかりw
2016/02/27(土) 19:15:03.68ID:D+WCAKrD
Javaを勉強せずにJavaFXアプリ作れますか?
2016/02/27(土) 20:17:24.82ID:DzbbisjT
>>15
むり
2016/02/27(土) 21:07:35.07ID:yBj0ji6/
またJVMか…
泥アプリ制作が流行ってるから仕方ないのかね
2016/02/27(土) 22:22:55.81ID:hI6CEqxt
開発してるJetBrains自身が、JVM上で動く製品を開発してる会社だからな
自分達の製品にもKotlin使ってるみたいだよ
2016/02/27(土) 22:29:02.97ID:hI6CEqxt
公式の1.0リリースの日本語のページがあった
http://blog.jetbrains.com/jp/2016/02/17/578
2016/02/27(土) 23:39:23.79ID:KsPOIQ1H
複数の属性を持てるenumも便利そう。

これもC#7.0に欲しいw
2016/02/28(日) 21:01:32.18ID:qX9WRNgF
scalaと比べてどうなの?
jetbrainsが自社のプロダクトで使ってるといっても、サーバサイドでは話はきかないね。
2016/02/28(日) 21:12:49.92ID:mEuTbruV
https://kotlinlang.org/docs/reference/comparison-to-scala.html
scalaで幸せなら不要だって

spring mvcは普通に動く
たぶんplayもいけるんじゃね
2016/02/28(日) 21:51:31.38ID:qX9WRNgF
なるほど、springやEEが自然に利用できるなら、kotlin製のフレームワークに固執する必要はないか。
2016/02/28(日) 21:55:17.88ID:qX9WRNgF
Karaといframeworkはあるけど、Githubを見たところそこまで活発ではなさそう。cssをtye safeに書けるのは面白そうだけど
25デフォルトの名無しさん
垢版 |
2016/03/09(水) 20:13:43.33ID:ZmUAjtzS
Kotlinはフレームワーク次第
2016/03/09(水) 21:54:57.77ID:MLkdPiKR
javaのフレームワークがそのまま使えるのがいいんだろ
2016/03/09(水) 22:12:21.73ID:TWWKX9/D
ビルドツールもそのまま使えるしな
2016/03/11(金) 23:43:17.01ID:RA7SR1be
英語もしゃべれねぇくせにどいつもこいつも新興言語に騙されおって
新興宗教じゃねぇんだから
29デフォルトの名無しさん
垢版 |
2016/03/12(土) 00:46:03.37ID:w4nC79sm
Kotlinを使うプロジェクトが増えないとKotlinの技術者が増えない
Kotlinの技術者が増えないとKotlinを使うプロジェクトが増えない
2016/03/12(土) 01:43:46.52ID:A9rdrO/7
intellij使ってる人が興味持ってくれればなあ
31デフォルトの名無しさん
垢版 |
2016/03/14(月) 16:38:06.42ID:ONULiEU5
Kotlinって書籍とかがまだ全くないな
2016/03/14(月) 17:49:52.49ID:jDfMkT0o
まぁまだ1.0がリリースされたばかりですし
33デフォルトの名無しさん
垢版 |
2016/03/14(月) 18:13:22.66ID:rxc3Byav
2011年から死んでる
2016/03/14(月) 20:49:46.27ID:ste1llL9
今から勉強しようかと思うんだけど、駄目なの?
2016/03/14(月) 22:51:22.51ID:7NRac0Aa
1.0.0がリリースされたばかりだからタイミングいいよ
一応破壊的変更はしないとか言ってたような
2016/03/15(火) 09:16:40.95ID:4EDSiDUj
Androidアプリの開発にkotlin使ってるけどいい感じよ
ラムダが使えるのとDSLがね
拡張メソッドも作れたり
2016/03/16(水) 17:48:01.10ID:SWFG0n+i
勉強するのも使うのも全く自由なんだけど、
こんなマイナー言語で何する気?

目的をはっきりさせようや。
何もできるんだよ?
2016/03/16(水) 17:48:37.27ID:SWFG0n+i
*何ができるんだよ。
2016/03/16(水) 18:36:21.30ID:BFPYGSUK
>>37
Javaより優れた言語でJVMで動くアプリケーションを書ける
2016/03/16(水) 21:09:15.92ID:ol/uA8ay
Ceylon とどっちがいいの?
41デフォルトの名無しさん
垢版 |
2016/03/16(水) 21:57:29.33ID:OWx848x5
>>39
すでにScalaという先客がいる
2016/03/16(水) 22:05:50.83ID:l9Y8vSPn
♪ことりん、ことりん。
2016/03/16(水) 22:15:09.55ID:ItRpyeBM
scalaに対しての優位点はコンパイル速度と、javaとの親和性?

文法的にもcontinueとbreakが使えて、自由度の高いreturnとthisがあるか

inlineもscalaとかなり違う?
2016/03/17(木) 12:46:00.12ID:8D5exYrn
scalaは難しすぎるよね
2016/03/17(木) 14:24:01.95ID:y+SO78pF
JavaScriptでいいじゃん
2016/03/17(木) 17:34:00.53ID:Lr213s2+
Kotlinはかわいい。Scalaはキモい。
Kotlinが普及するように、俺も微力ながらブログにKotlinネタ書いていくよ。
2016/03/17(木) 21:05:02.80ID:8D5exYrn
普及するために何が足りないか?
48デフォルトの名無しさん
垢版 |
2016/03/17(木) 22:30:53.09ID:6lVX3tiR
世界的な有名サービスがKotlinで記述されたらかなり影響はある
2016/03/18(金) 11:16:52.22ID:PaeRr1p1
enumがメソッド持てるのがリージョンコードを複数の表現で返すenum作るときに便利だったな
あと、whenがif elseの変わりに使えて可読性がいいのが好き
2016/03/18(金) 13:04:13.88ID:7TGL3g0b
enumがメソッド持てるのはJavaも一緒でしょ
2016/03/18(金) 19:30:40.78ID:Ri+xB30N
プログラミング初心者なんですけどKotlin習得するのには2〜3年はかかる?
2016/03/18(金) 20:27:52.77ID:itkpzA44
初心者は情報の多い言語を使うべき
入門書とかが出てからじゃないと無理
2016/03/18(金) 20:46:02.24ID:Ri+xB30N
>>52
ありがとう

無難にJavaScriptやってみます
2016/03/23(水) 18:25:49.69ID:q4NyJu3s
>>53
将来kotlinをやるんだったら
javascriptじゃなくてjavaね。
2016/03/23(水) 19:30:06.44ID:IjQfzLPy
つーかおまえらコトリンの響きで選んでるだろ
2016/03/23(水) 21:00:38.88ID:Sy6dDY9b
名前は凄く重要
2016/03/23(水) 21:40:59.87ID:r6iJqmyn
スカラに比べたら言語のランタイムない(よね?)のがメリットとか
58デフォルトの名無しさん
垢版 |
2016/03/24(木) 08:58:18.85ID:9L/DvAgg
>言語のランタイム
?
2016/03/25(金) 19:03:36.81ID:7CoDARGW
Javaとソース互換を壊すという致命的欠陥を自らしておいて、
なおかつ既存言語とのソース互換が何もないのなら使えませんよね。
過去のソースとの互換のためにN88-BASIC互換言語を作りましたとかいうほうがまだ使い道がある。

独自言語で作ったものはソースの墓場になる。
末長く残るソースを作れない。
2016/03/26(土) 12:14:43.51ID:XHWY3LTw
>>59
いま普及してる言語だって、スタートラインは独自言語(っていう表現はどうかと思うが)だったわけでw
61デフォルトの名無しさん
垢版 |
2016/03/26(土) 12:42:36.47ID:lc2ldByq
バックエンドでKotlin使いたいんだけど、おすすめのWebフレームワークとかDBフレームワークあったら教えてください。Spring Bootがかなりいい気がするけど特にDBフレームワークが困ってます。
2016/03/26(土) 14:29:17.16ID:ENkp8QGX
>>60
俺を忘れるなよ...
      C++
2016/03/26(土) 16:15:03.51ID:H9bcXfYg
>>60
C++とアップルのObjective-Cは、C言語上位互換。
2016/03/27(日) 00:37:01.30ID:tuBIqIOP
Swiftがクソ過ぎるのは誰もが知ってるんだから触れてやるなよ
2016/03/28(月) 00:51:03.64ID:h3cCXmjq
KotlinとSwiftってそんな違う? 似たようなもんじゃ
JavaやObCと比べりゃ
2016/03/29(火) 00:00:43.96ID:1pY1OkRW
>>59
javaライブラリを呼べるjvm上で動くプログラミング言語なんていっぱいあるやん
67デフォルトの名無しさん
垢版 |
2016/04/01(金) 20:35:42.53ID:vSPHDFRv
さびれすぎ
2016/04/02(土) 10:51:29.00ID:3UiLT1dE
>>66
ライブラリを呼んでもしょうがないだろ
普通のJavaのソースをコンパイルしたらエラーになるんじゃ意味ないわ
2016/04/03(日) 00:40:39.84ID:ZV9NMQt1
Android向けKotlinのロードマップ
http://blog.jetbrains.com/jp/2016/03/30/639
70デフォルトの名無しさん
垢版 |
2016/04/03(日) 13:51:35.58ID:4I/r7xwS
Googleが公式サポート表明してくれたら最高なんだけどな。
2016/04/04(月) 18:10:35.02ID:F20gyuD1
>>70
正直無理な話だよね。
kotlinのほうがいい理由を必死こいて考えるよりは素直にJavaやっとけよ
マイナーという不利益を納得して使うものだが、君は納得できていない。
72デフォルトの名無しさん
垢版 |
2016/04/06(水) 21:23:24.57ID:2V81Qvo2
>>68
??
そりゃ別の言語ですし
jvmで動く言語で互換性がある言語自体珍しくね?
jarから呼び出せればいいと思う
2016/04/08(金) 10:30:14.19ID:swQw/RPS
GoogleはAndroidの第一言語、つまりJavaに置き換わるものとして、Swiftのサポートを検討しているらしい。
泣きそう。
2016/04/08(金) 13:03:55.45ID:UcK710Vt
>>73
Swiftもいい言語だから、そうなったらなったでJavaのままよりはありがたいけどな
2016/04/08(金) 20:59:07.38ID:Im1g3EY5
javaの資産()はどうなるの
76デフォルトの名無しさん
垢版 |
2016/04/08(金) 22:32:48.96ID:uKgtJKvS
マジかよSwiftやってみるわ
2016/04/08(金) 23:37:04.56ID:T8jUewN4
クソ言語流行らそうと必死なんだな
2016/04/09(土) 00:49:54.84ID:gQ4mSWZC
>>73のネタはこの記事だと思うが
http://thenextweb.com/dd/2016/04/07/google-facebook-uber-swift/
記事の中ではgoogleがkotlinの採用も検討していると書いてあるぞ

ただしコンパイルが遅いのと
できたばかりの言語なのでコミュニティが小さい事がネックらしい
2016/04/09(土) 19:22:37.10ID:Q/bwh4yI
AndroidのJavaの問題は言語ではなくJavaプラットフォーム(の海賊版)にあるのに言語だけ変えても意味無いだろ
2016/04/10(日) 05:02:23.23ID:OMjoBoPQ
とはいえJavaライブラリのインタフェースに関する権利をOracleが主張してたりとかJava言語による問題も多いだろうし、そこだけ解決できるのでも結構違うのでは。Javaプラットフォームごと捨てるのはさすがに現実的ではないでしょうし。
2016/04/12(火) 14:39:07.24ID:tcJgF5lM
>>80
OracleはJava APIに権利があると主張しているのであってJava VMを使う以上、他の言語に変えても同じ。
OpenJDKなど、Oracle公認のフリーのJava/Java VMもあるわけで、Javaは使い続けるでしょう。
今開発プレビュー版が出ているAndroid Nは、初めてOpenJDKのライブラリを使っているわけで。
Java 8対応、新しいJackコンパイラの登場など大進化を見せている状況でJavaを捨てるとか有り得ない。
Javaから別の言語に変えることを検討中という記事は信用できない。
現時点無視してよいかと。
もっと信頼できるネタが出てから気にしたほうが賢明。
2016/04/12(火) 15:18:33.45ID:9HGJ3JQs
>>81
てことはAndroid N以降はOracleとの訴訟の件は関係ないってことになる?
あと、その考え方だと、kotlinを正式採用の方が現実味あるのかな
83デフォルトの名無しさん
垢版 |
2016/04/12(火) 20:56:18.12ID:Rk5bS0ji
KotlinよりScalaの方がありそう
2016/04/12(火) 21:30:53.05ID:zxlf4Ltj
>>82
OpenJDKはOracle公認だから、使い方にもよるかも知れないけどGoogleがOracleに責められずにフリーで使える可能性はある。
ただ、Oracleはライセンス料が欲しいわけだからあの手この手で金を要求しようとすると思う。
Swiftよりはkotlinのほうがまだ可能性はあると思うがGoogleがサポートする必要性が薄いとも思う。
85デフォルトの名無しさん
垢版 |
2016/04/12(火) 21:35:28.14ID:ZWvwh7J9
>>83
Androidでscalaは辛いらしい
何が辛いのかよく分からんけど
2016/04/12(火) 21:46:26.86ID:3ZquNVD8
Scalaはビルドツールが糞
2016/04/12(火) 21:51:27.23ID:tRZrs4lg
scalaって標準ライブラリのサイズがでかくなかった?
2016/04/13(水) 09:06:47.77ID:E2Yhqe8e
>>83
そう?Scalaが普及しはじめてから何年も経つけど、GoogleがScalaに興味を示したことってあったっけ?
2016/04/16(土) 21:14:12.15ID:1vFpn8v7
JavaのOO畑で関数型とかよく分からんしってマルチパラダイム言語の第一歩によさそうだなKotlin
名前も可愛いし
2016/04/16(土) 22:47:26.92ID:rMj3oXBU
Kotlinってあんまり関数型要素ないだろ
関数型度はJava8と大して変わらん
91デフォルトの名無しさん
垢版 |
2016/05/01(日) 10:54:20.06ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
92デフォルトの名無しさん
垢版 |
2016/06/19(日) 22:31:14.76ID:eVkfK1tp
話題なさすぎじゃね
2016/08/06(土) 23:21:47.71ID:DcF8zl9X
javaに触らすいきなりkotlinから
アンドロイド開発に入門するのって無茶ですかね?
そういうコンセプトの入門書とかないかな
2016/08/07(日) 00:17:57.07ID:ImwDssOT
無茶というか無意味な縛りプレイだよ
Java分からないとサンプルコード読めないじゃん
2016/08/08(月) 11:17:38.46ID:tg5qo0Cy
無意味な縛りですかね。javaの構文自体は平易だからandroidとセットでkotlinの構文が学べたほうがいいなのかなと
2016/08/08(月) 22:59:13.69ID:/KkOsDFd
じゃあ聞くなよ
2016/08/09(火) 07:51:56.25ID:qoHYj2J7
じゃあ尚更Javaでいいだろ
KotlinなんかJavaやったあとなら一瞬でマスターできるからどうでもいい
2016/08/10(水) 09:10:55.40ID:rQiddDUo
お前ら
ことりん
という響きが好きなだけちゃうんかと
2016/09/21(水) 00:39:02.10ID:UYN6tSg/
(・8・)
2016/11/10(木) 04:01:41.16ID:5wJA0ZNT
日本人は流行に乗りたがるけどすぐ飽きるね
名前に釣られただけで結局流行りそうにない
2016/11/14(月) 23:59:31.98ID:wCV5pHeX
scalaと比べていいところってある?
ユーザ数はscalaのほうが多いだろうしどっちやろうか迷ってる
2016/11/15(火) 00:56:14.67ID:r0bdrrlQ
カオスじゃない
Javaとの完全な互換性がある(Scalaは事実上一方通行)
Scalaに比べれば遥かにまともな言語だよ
Scalaはとりあえず全部ブチ込んでみただけの実験言語で、本来実用に使うようなもんじゃない
2017/01/09(月) 20:37:51.41ID:4w5Vtztw
Kotlin vs Ceylon
2017/01/11(水) 13:27:31.23ID:ejV+8ohg
Gradle3.xでKotlinがサポートされたのって、普及に影響する?
2017/01/11(水) 17:14:25.25ID:qSPp3nGT
Groovyがそこまで普及してるか?
つまりそういうこと
2017/01/12(木) 21:33:12.76ID:ArceXZLM
>>105
なるほど納得した。ありがとう。
2017/01/17(火) 06:25:55.49ID:/OTVP4TW
EclipseでKotlinしている人っている?
2017/01/18(水) 21:56:09.40ID:nmk83e0+
あるオープンソースのコードを呼んでてIDEで飛べないクラスがあって調べたらKotlinを見つけた
どう使い分けるんだろう
109デフォルトの名無しさん
垢版 |
2017/01/20(金) 09:01:11.60ID:fIQqHT5d
>>108
普段はJavaを使っているけど
BigIntegerで数値計算するとか、raw stringでスクリプト生成するときだけ
Kotlinでクラス作成するという用途なら理解できなくもない。
2017/03/02(木) 22:58:10.37ID:aTDCpX5l
JavaScriptが書けるようになったと聞いて
2017/03/02(木) 23:03:06.74ID:6rwxIFtV
それよりコルーチンだよ
名前がいいよね
112デフォルトの名無しさん
垢版 |
2017/03/11(土) 08:06:57.61ID:vLyp82+E
>>111
コルーチン...ロシア人かな? Kotlinだけに。
2017/03/27(月) 12:32:22.63ID:zxMW45Gj
go->goroutine
Kotlin->koroutine
ってこと?
114デフォルトの名無しさん
垢版 |
2017/04/13(木) 10:00:40.79ID:p+wJDHjt
んーcoroutine、便利さを挙動の理解の混乱が上回ってる..w
かえって複雑になりそう
2017/04/14(金) 10:49:57.90ID:rxkV6/uG
>>114
coroutineって「状態を持つ」ような気がするんだけど、
関数型プログラミングのイミュータブルであるべきという
考え方に逆行しているという理解であってますか?
2017/04/15(土) 00:40:02.53ID:5VFPMUgC
>>115
なんちゃって関数型プログラミングでは状態の局所化に役立つ便利な道具だと思うよ
ステートマシンなどという糞を排除できる
2017/04/16(日) 13:23:05.16ID:FOOthHC9
一つのクラスに複数のアノテーション持てない感じ?
2017/04/18(火) 07:19:21.21ID:q56THeJt
このスレで言うのもなんだが、初心者の質問はTwitterで投げるのがいいよ
普及させたい人が定期的に検索して拾ってくれるから
119115
垢版 |
2017/04/22(土) 21:58:39.69ID:8rHjbk1S
>>114
オブジェクトのように「フィールド」に「値」を状態として持つのではなく、
coroutineは「コード上」に「まだ実行されていない処理」を状態として持つから
複雑で分かりにくいんじゃないかなと思いました。

>>116
coroutine自体がステートマシンだと書いてあるものを見たのですが、
ステートマシンが局所化されるモナドのような何か?(わかってない)
120デフォルトの名無しさん
垢版 |
2017/04/23(日) 10:19:21.32ID:9Bq1d30L
suspend関数ってコルーチンの中でしか使えないってことは、そこらじゅうlaunchの類だらけになるってこと?笑
まだ滅多に使用例のってるブログとかみかけないね。
生き残れるのか?これw

>>119 https://github.com/pljp/kotlin-coroutines/blob/japanese_translation/kotlin-coroutines-informal.md#状態マシン
2017/04/28(金) 17:34:29.34ID:80AWOTNk
ことりん擬人化まだ?
122デフォルトの名無しさん
垢版 |
2017/05/01(月) 23:00:23.52ID:+TVy5Krd
Rubyの、p, pp みたいに、自動的に、コンテナ内を展開して、
中のオブジェクトを、コンソールに表示してくれる、デバッグ用関数はありますか?

p コンテナ・オブジェクト
2017/05/04(木) 00:18:07.49ID:lRx89izX
ない
そんなもんIDEのデバッガで止めて見ればいいだろ
2017/05/04(木) 00:39:59.73ID:7TNYL3q7
それはダサいわ
2017/05/13(土) 22:26:26.42ID:UQoi629m
なんか折りたたみすぎるんだよな〜
2017/05/18(木) 03:33:23.69ID:DKg0Na73
大勝利キタ━━━━(゚∀゚)━━━━ !!!!
127デフォルトの名無しさん
垢版 |
2017/05/18(木) 03:35:35.85ID:Wz6O2oVO
きたな
2017/05/18(木) 03:38:32.99ID:l26+mVZr
まじか
2017/05/18(木) 08:19:21.98ID:6xLYhPbf
アプデかなんか来たの?
2017/05/18(木) 08:34:44.83ID:eCnYzL6s
Androidでのファーストクラスサポートだそうですよ
2017/05/18(木) 08:35:35.63ID:zgtLgueR
Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.

だって。
2017/05/18(木) 09:08:10.23ID:PzmNC1sh
ファーストクラスってなんですか?
133デフォルトの名無しさん
垢版 |
2017/05/18(木) 09:13:30.93ID:zw0yFHDv
ビジネスクラスより上
2017/05/18(木) 09:37:46.74ID:cqnkW2Fd
例の訴訟絡みでjvm捨てると思ってたんだがなあ
135デフォルトの名無しさん
垢版 |
2017/05/18(木) 10:06:03.05ID:L+z+Rh5o
記念アゲ (・8・)
2017/05/18(木) 12:11:08.36ID:zgtLgueR
Android Studioで標準サポートになる、つうことだろ。
2017/05/18(木) 12:12:50.95ID:NEKf9u2/
AndroidがKotlinサポートか
Java使わなくていい場面増えるのは歓迎だけど
C#のが良かった

https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
2017/05/18(木) 12:17:09.11ID:w2PMjkvW
GWにkotlin始めて書きやすいなと思ってた俺大勝利
2017/05/18(木) 12:38:42.71ID:zgtLgueR
>>137
今までのJava資産を活かしながらシームレスに移行できる、というのが大きい。
その意味でc#はありえん。
2017/05/18(木) 12:57:50.54ID:3vvtk3AJ
いまJavaを使ってる人を救うことを考えたらまずはKotlinだろうね
2017/05/18(木) 13:16:17.63ID:XKDAC558
まじかよ
コトリン大好きな俺大勝利じゃん
祝杯や
2017/05/18(木) 13:21:33.03ID:9vmsiCj/
やったぜ
2017/05/18(木) 13:23:06.77ID:yATb/f/P
えっちだぁw
2017/05/18(木) 15:12:54.92ID:d+oDyp66
日本Kotlinユーザグループ代表、長澤 太郎
Kotlinスタートブック -新しいAndroidプログラミング、2016

WEB+DB vol.94 の特集が、Kotlin, Electron

m, 10
a, 5
m, 2

こういう行区切りのデータがある時、文字列・数値の順番で、ソートするにはどうするの?
2017/05/18(木) 15:28:16.59ID:/Shfsuc2
KotlinじゃなくSwiftでも良いのにな
確か、Android向けのクロスビルドができるようになってたろ
2017/05/18(木) 16:57:05.60ID:sDwtWkJp
AppleがGoを公式採用するくらいあり得ないことだな
2017/05/18(木) 17:15:26.94ID:zgtLgueR
>>145
今までのjava資産を考えるとありえん。
appleは悪い意味でおかしい。
148デフォルトの名無しさん
垢版 |
2017/05/18(木) 18:29:24.60ID:xYh7ZO1T
競技プログラミングでKotlinを覚えるか…
2017/05/18(木) 23:54:53.47ID:s8Za2vto
>>70
念願かなったね。おめでとう。
2017/05/19(金) 08:25:10.64ID:Yy4p2hUQ
>>144 自己レス
class Person(val age: Int, val name: String) { }

val mlist: MutableList<Person> = mutableListOf( );

mlist.add(Person(25, "Tom"));
mlist.add(Person(25, "Dave"));
mlist.add(Person(20, "Kate"));
mlist.add(Person(20, "Alice"));

val sortedList = mlist.sortedWith(compareBy({ it.age }, { it.name }))

sortedList.forEach {
println("${it.age} : ${it.name}")
}

出力
20 : Alice
20 : Kate
25 : Dave
25 : Tom
2017/05/19(金) 13:20:04.25ID:JnsQ7Gr+
ニュース見て始めて半日くらいの調べもの堪え性のない人が質問です!
それはそうと初心者スレとか質問スレとかあってもいいかもしれないですね!

>>> var list = listOf(10, 20, 30)
>>> list[1] + 5
25
>>> var map = mapOf(1 to 10, 2 to 20, 3 to 30)
>>> map[1] + 5
error: infix call corresponds to a dot-qualified call 'map[1].plus(5)' which is not allowed on a nullable receiver 'map[1]'. Use '?.'-qualified call instead
>>> map[1]?.plus(5)
15
入ってる数字をあとで計算とかに使いたいだけなんですがどこの考え方間違ってるんでしょうか
2017/05/19(金) 20:24:00.83ID:t+9TXaRk
>>70
おめ
2017/05/19(金) 20:34:19.80ID:Ig6oJN7I
>>71
これは恥ずかしいwwww
154デフォルトの名無しさん
垢版 |
2017/05/19(金) 22:29:26.32ID:HhPXEO/A
じゃ今後のAndroidのライブラリにはKotlinで書かれてるものの出てくるのかな?
2017/05/20(土) 00:38:31.20ID:ap8WyFQI
それはないだろう
2017/05/20(土) 02:32:08.53ID:WmFfeyqJ
>>151
map[何々]が、nullable だから。
map[1]は存在するけど、map[4]なら存在しない

map[1].plus(5)なら、map[1](レシーバー)がnullableだから、
null.plus(5)の場合にバグるから、?. null許容演算子を使う
2017/05/20(土) 15:30:08.83ID:LOC45URm
Javaの仕様がそのまま引き継がれてるんだな
Listのgetのインデックスが範囲外だとIndexOutOfBoundsException例外で
Mapのgetのキーが存在しない場合は例外じゃなくてnull返すのね
2017/05/20(土) 15:41:06.41ID:8ml7mLK3
getOrNullとかあるよ
2017/05/20(土) 19:38:14.41ID:NqXZxUdZ
Android StudioでのIntelliJ Kotlinプラグインが公式サポートされただけでAndroid System LibにKotlinクラス群が入ったわけじゃないんだよなぁ

>>154
今までと変わらずやる気になれば出るし、やる気にならなければ出ない程度かと
別段メリットがあるようには思えないけど、誰かKotlin Androidライブラリプロジェクトテンプレート作ってくれよ
160デフォルトの名無しさん
垢版 |
2017/05/20(土) 20:11:09.01ID:LOC45URm
企業内での使用はGoogle公式かどうかですごい影響あるよ
2017/05/21(日) 10:31:28.30ID:4E+x2A2G
これをきにコトリンを始める人がいっぱいいそうだが
ほとんど人が挫折するんだろうな
2017/05/21(日) 10:35:53.77ID:W3P4J6B5
こんな簡単な言語で挫折する要素とは
2017/05/21(日) 10:40:32.81ID:tBEndF3S
Kotlin言語そのものは難しくないがJavaの言語に加えて
Javaのライブラリまで含めて覚えないといけなそうだから
C#より敷居が高い
164デフォルトの名無しさん
垢版 |
2017/05/21(日) 11:08:54.99ID:h5RyjkDf
kotlinにはtypescriptのtsserverみたいに補完機能はないんでしょうか?
2017/05/21(日) 11:33:04.16ID:W3P4J6B5
第一級開発言語に指定したんやからfwは全てkotlinラッパを出すやろ
166デフォルトの名無しさん
垢版 |
2017/05/21(日) 12:33:48.18ID:sr6r/1gA
?なvarをif != null したら!!いらないようにしてほしいな〜
valに入れ直すのはスマートじゃないよ
2017/05/21(日) 13:24:08.34ID:tU5Dlyyu
>>156
似たようなとこで詰まってた
Nullableでご安全にする理屈はわかるけど連想配列の利用法としては煩雑だね
覚えとくしかないか
それともこのへん便利な格納構造があるのかな
2017/05/21(日) 18:45:53.63ID:UuW+xgyM
>>> var map = mapOf(1 to 10,2 to 20)
>>> map[3]
null
>>> var list = listOf(10,20)
>>> list[3]
java.lang.ArrayIndexOutOfBoundsException: 5
at java.util.Arrays$ArrayList.get(Arrays.java:3841)
>>157の言う通り、究極的にはこのしょーもない内部仕様のせいである
この仕様を知ってるKotlinがmap作った時点で全要素Nullableにしてくれてるのだね

>>> var value = map[2]
>>> value
20
>>> value + 5
error: infix call corresponds to a dot-qualified call 'value.plus(5)' which is not allowed on a nullable receiver 'value'. Use '?.'-qualified call instead
>>> var value:Int = map[2]
error: type mismatch: inferred type is Int? but Int was expected
このへんも、Null安全のない言語から来た人はふんす!!ってなると思われ
2017/05/21(日) 20:26:44.09ID:9L9dm7b/
>>163
C#文法とC#ライブラリを学習するよりは楽そう

>>165
Java APIをKotlin APIに透過的に見せるからラッパーの用意すら要らんでしょ
2017/05/21(日) 20:46:52.64ID:RH0jdAto
最終的に訴訟のネタにもなってるjavaを切り離す方向まで行かないんですかね。
171デフォルトの名無しさん
垢版 |
2017/05/21(日) 21:44:40.19ID:mFn/WD+c
VMの問題なんだからいまさらどうしようもないだろ。
2017/05/21(日) 22:54:56.67ID:1evlh7eH
Ruby, JS などで、メソッドチェーンすると、
nil オブジェクトから、メソッドを呼べないと言う、
No Method Error なんて、しょっちゅう起こるし、

メソッドチェーンはテストも、しにくい
2017/05/22(月) 01:22:13.90ID:yjMvX9x8
素のkotlinでは使えるけどAndroidのkotlinでは使えないのってある?
2017/05/22(月) 01:48:31.03ID:97nOcTMK
Nullableかどうかは書き手が決められるのがステキとか言っておきながら
mapOfだと"暗黙の"Nullableになるように見えるのが初心者的にキモいという主張だろう
誰もNullableの有用性の議論などしてない
読点君には理解できんだろうが
2017/05/22(月) 06:16:11.80ID:jD5FXPee
>>170-171
VMじゃなくAPI(ライブラリ実装)の問題でしょ
Sun(現Oracle)の作った全Java APIを放棄してKotlinで一から作れば訴訟問題からは無関係になれる

まぁ、GoogleもJetbrainsもお互いに「お前がやれ」とか思ってそうだけど
Google: KotlinはJetbrainsのモノなんだから、JetbrainsがKotlin APIを整備するべき
Jetbrains: Java訴訟はGoogleの問題なんだから、GoogleがKotlin APIを整備するべき
2017/05/22(月) 08:14:55.23ID:fxLikn6a
map を実装する場合、普通は、2種類書く

そのキーが無い場合、
null を返すものと、例外をthrow するもの

nullable になるのは、null を返すもの
177デフォルトの名無しさん
垢版 |
2017/05/22(月) 08:34:20.91ID:7g15jPZv
>>175
VMの方のAPIだよ。
言語の方のAPIだけの問題なら、OpenJDKだけで解決してしまうだろが。
2017/05/22(月) 09:45:07.45ID:WLj9ZHQ7
>>177
確かそのapiのインターフェース自体に著作権があるというのがoracleの主張だったはず
2017/05/22(月) 09:46:09.30ID:jD5FXPee
OpenJDKにもVM実装は含まれてるんだけどなw
Oracle JVMとOpenJDK JVMで微妙に要件や振る舞い違うって業界の人は頭抱えるけどまぁ誤差か
2017/05/22(月) 09:46:23.44ID:NZ0IuE42
擬人化まだかよ
無能どもめ
2017/05/22(月) 09:52:42.83ID:WLj9ZHQ7
>>175
Androidのapiインターフェースの話をしてるんだからgoogleじゃない?
でもjavaと切り離すなんてできないだろうから、少しずつやってくしかないね。
コレクション系の独自実装とか始まったりして
swiftもobjective-cの文字列型とswiftの文字列型があってapiインターフェース呼び出しの際に暗黙の型変換が行われてた。
そんな感じになるのかな。かなりキモいけど
2017/05/22(月) 18:40:23.05ID:jD5FXPee
「apiインターフェース」の「頭痛が痛い」みたいな表現、嫌いじゃない:D

>>160
その昔、Apple公式だからという点のみで流行ったSwiftという言語があってな・・・
あれも技術を知らない企画屋がそんな感じで企業内採用を提案したんだよな、嫌な事件だったね
2017/05/23(火) 19:42:46.96ID:dGC6uRRV
null非許容って使ってみると地味に結構不便だな…
今までとは根本的に設計方針を変えなきゃならないものがあるなぁ…
2017/05/23(火) 19:49:01.45ID:IihgumLk
var a : String? = null
2017/05/23(火) 20:27:48.65ID:oZAHFLLi
型安全でないnull使うより、その型のnull定数を定義するほうが楽だよ。
2017/05/23(火) 20:49:32.53ID:Hx0L3jS4
val hoge;
{
2017/05/23(火) 21:06:38.96ID:cBJ7DVw+
null参照の概念は10億ドル単位の過ちってそれ一番言われてるしなw
偉人の言葉を信仰心と共に信じるべし
2017/05/23(火) 21:36:52.74ID:gX8pe08F
ぬるぽ
2017/05/24(水) 01:18:07.88ID:9HF6LZlN
>>183
?使うだけなのに何言ってんの?
大昔の案件で引数には必ずnullチェックを入れるというコーディング規約があって、保守性は下がるし規約に従わないやつはいるしで散々だった。
2017/05/24(水) 12:26:54.17ID:t8jtcsol
intellij、if式を折りたたまないようにするオプションはどこですか?
2017/05/24(水) 12:44:50.63ID:t8jtcsol
>>189
たとえばintefaceのnotnullなプロパティを亜種的なクラスでnullableにオーバーライド、できないよねぇ。
個人レベルの開発ならそこらへんの曖昧さはかえって便利な場合もあったんだけどね。
まぁ最初から全部nullableにしちゃえば済む話だが9割の非nullに全部?なり!!を付けるのはキモい。
javaコードをそのまんまkotlinコードに移行は、できなくはないけどキモいコードになる。
192デフォルトの名無しさん
垢版 |
2017/05/24(水) 14:28:45.40ID:Fp8uMQ/t
  Λ_Λ  \\
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >_Λ∩
  _/し' //. V`Д´)/
 (_フ彡        / ←>>188
2017/05/24(水) 15:15:47.70ID:9HF6LZlN
>>191
わざわざnullableなプロパティを含むインターフェースを使う意味がわかんない。ちゃんとnullチェックして渡せば良いじゃない。
2017/05/25(木) 00:19:31.03ID:Mhkkcekf
>>193
自分もそんなコードが欲しくなるとは予想しなかったけどな笑
nullであることを利用して動作変える派生クラスをkotlin化しようとして躓いたわ。
結局設計を変えることで対応したけどね。javaで使えてたトリッキーな手は使えなくなった不便さがあるね、便利さの陰に。
まぁ慣れの問題だが。
2017/05/25(木) 04:40:51.77ID:FYZ1kIH6
androidだとonCreateで初期化するような変数はnullableにしなきゃいけないのかと思ってたけど、lateinitってあるのね
個人的にはそこそこ使うから@とかの記号にしてほしかったけど
196デフォルトの名無しさん
垢版 |
2017/05/25(木) 06:20:09.08ID:5itOJ4P9
プロパティが、最初からデフォルト値を持っていたら、ダメなのか?

どうしても、nullが必要なのか?
2017/05/25(木) 08:51:21.17ID:iRBHnHtq
nullオブジェクト使わないの?
2017/05/25(木) 09:21:48.18ID:VyhgnQr+
関数の戻り値の型ならnullable欲しいな
戻り値がnullになるとき毎回exceptionをthrowするのかって話
2017/05/25(木) 09:23:32.29ID:E3n3KUhW
え?ww
2017/05/25(木) 09:37:46.25ID:VyhgnQr+
例えば数値を文字列として格納してるデータをファイルとかDBとかから取り出すとき
その値は数値としてしか使わないけどもしかしたらnullな場合もある
getter関数作るのにgetterでは必ず文字列として取得して変換可能か判断してから数値にする処理を毎回するか変換できなかったらcatchするのか

そんな場合なnullableがあれば外からみた関数の使い方はシンプルにできる
2017/05/25(木) 11:19:50.16ID:iRBHnHtq
だからnullオブジェクトを用意して使えって。
型安全でないnullなんか窓から投げ捨てろ。
2017/05/25(木) 11:20:19.76ID:5itOJ4P9
入力欄のオプショナルな項目か

携帯電話を持っていれば、その番号を記入して、みたいな奴か
2017/05/25(木) 11:26:27.67ID:/eJUHzjl
頭が時代についていってないようだなw
2017/05/25(木) 22:55:58.94ID:HKNQp0n4
元々はアドレスだったことを思い出せば功罪がわかる
2017/05/26(金) 05:24:14.29ID:Yn8sEtTn
>>196
同じようなことを考えたことがあったけど、「実行時エラーは悪」という考えにとらわれると、
間違った値(デフォルト値)のままエラー無しに処理が進んでしまうのは実行時エラーよりたちが悪い
ということを忘れがちになる。
>>197
使用頻度を考えるとnullオブジェクトをいちいち定義するよりnullチェックのほうがましな
変数の方が多いと思われる。
また、nullオブジェクトはどんな状況で使われても適切な結果を返すように実装しなければ、
上で述べたデフォルト値の問題を起こすことになるから、ミスのないデフォルトを
設定すること自体が難しい場合もあると思う(使用経験が少ないからわからない)。
2017/05/26(金) 07:38:30.45ID:Mhihnqx0
>>205
今時はなるべく完全コンストラクタを使って最初に一括で初期化し、
後は一切変更できないクラス設計が好まれるんだよ
C#は見境なく大量のgetsetプロパティを持つクラスを定義するバカが多いけど
207デフォルトの名無しさん
垢版 |
2017/05/26(金) 09:51:12.09ID:5tQUvAE5
kotlin/nativeに期待
208デフォルトの名無しさん
垢版 |
2017/05/26(金) 10:10:41.46ID:5tQUvAE5
nullチェックはもうちょっと痒いところまで手が届くといいね
たとえば if(a == 0 && b?. == "hoge") {...} で2つめはnullならパスしてくれる
みたいに書けたら便利
2017/05/26(金) 10:24:21.56ID:Heb9aC5z
nullを使わなければいいと思うよ
2017/05/26(金) 11:15:12.27ID:+T40nrdw
>>205
コンパイルエラーにできるものを実行時に処理するのは良くない設計だな。
型無しのnullを使うとコンパイルエラーに出来なくなる。
nullオブジェクトでも実行時エラーは処理できるから、必要ならそうすりゃいいし。
2017/05/26(金) 11:16:41.50ID:4K0JCbpq
いぐざくとりいい!
212デフォルトの名無しさん
垢版 |
2017/05/26(金) 12:12:06.77ID:5tQUvAE5
>>209 と、いわれても既存APIにはnullableだらけだからなぁ
2017/05/26(金) 12:28:01.13ID:Heb9aC5z
そのAPIの中はそれで良いと思う
今後作るAPIについては別に過去をなぞる必要はないとも思うよ
2017/05/26(金) 12:46:21.42ID:ZNc2U8qB
>>207
これってiosもうごくの?
2017/05/26(金) 22:05:46.36ID:xRlJL6be
Kotlin/NativeをAndroid(NDK)で動かしたい
216205
垢版 |
2017/05/27(土) 00:21:30.12ID:q99eAiGg
>>210
およそ
nullがコンパイルエラーになる > 適切に設計されたnullオブジェクト >
nullチェック > 実行時NPE > 不適切なnullオブジェクトでエラー無しに誤った処理が進む

という順位なので>>210とは特にそれほど見解の相違はないと思う。
nullオブジェクトは必ず容易かつ適切に設計できることを暗黙の前提とするかどうかが相違点かな。
2017/05/27(土) 00:39:18.95ID:IRYfzUqY
tensorflowをサポートするらしいけど、どうせならpython自体を扱えるのを目指してくれたらいいのに
2017/05/27(土) 06:06:26.16ID:q99eAiGg
ハマったので備忘録程度に。
Kotlin/JSで@JsNameの使いどころは、公式ドキュメントでは
In some cases (for example, to support overloads),
となっているが、引数ありのトップレベル関数はoverloadしていなくても
@JsNameをつけないとトランスパイル後の名前が変えられる模様。
2017/05/27(土) 07:44:00.03ID:3w92Yrys
>>217
目指すの意味がさっぱり分からんけど、kotlinじゃなくjython使うのじゃダメなの?
2017/05/27(土) 18:48:51.46ID:q99eAiGg
>>219
たぶん>>217はCPythonのライブラリをKotlinから使いたいのであって、
JavaやKotlinで書かれたものをPythonで呼び出したいのではないと思う。
JythonはPython3に対応するめどもなさそうだし....
221デフォルトの名無しさん
垢版 |
2017/05/27(土) 20:22:15.32ID:IRYfzUqY
そうそう、kotlinから直接pythonライブラリ使えたらいいなー、と。それだけ。
JetBrainsならやってくれそうなんじゃないかとw
jython、そうなんだよ、開発止まってない?
222デフォルトの名無しさん
垢版 |
2017/05/27(土) 20:26:08.40ID:IRYfzUqY
>>215 そしてついにはJVMと決別とか
2017/05/27(土) 20:30:57.73ID:3w92Yrys
> CPythonのライブラリをKotlinから使いたい
JythonでPythonコード(CPythonのライブラリ)をJVM上に読み込んで
KotlinでJVM上に展開されたバイトコードを呼び出せば良いんでないの
という意味だったんだけど、そうじゃないんだろうかねぇ

他の在り様を考えたけど、どれも現実的でない構成になってやっぱり分からん
案1. KotlinコンパイラがPythonコードをコンパイルできるようにする => それJythonじゃん...
案2. JNIのサポート言語(C/C++)にPythonを新たに追加する => Oracleに言えよ...
案3. JVM, CPythonプロセス間をWSGI的なもので繋ぐ => もう何が何やら...

まぁ深く考えないで、素直にKotlinからtensorflowのJava APIを叩くのが一番楽だと思います
224220
垢版 |
2017/05/28(日) 07:09:50.42ID:L+V4SXEt
>>223がどの程度Pythonに詳しいかわからないけど、PythonのライブラリはPythonだけでなく
C言語などを混ぜて書かれていることも多いので、
> Pythonコード(CPythonのライブラリ)をJVM上に読み込んで
ということ自体ができないと思う(自分もそこまで詳しくないから確証はない)。
Pythonで書かれているライブラリでもPython3に移行しているので、Python2ベースのJythonには
使えないし。

あと>>223はJVM前提みたいだけど>>221はKotlin/NativeみたいにJVMから離れて
CPythonのインタプリタ上で(あるいはCPythonのAPIを呼び出しながら)Kotlinを実行する
ことを想定しているからかみあわないんだと思う。

> 素直にKotlinからtensorflowのJava APIを叩くのが一番楽だと思います
tensorflowはその通りだけど、>>217はそれ以外のScipyみたいなライブラリのことを
言っているんだと推測。
2017/05/28(日) 08:47:56.63ID:1kfTQYrn
>>221はKotlinコンパイラでPythonコードをコンパイルしたいって言ってるから一旦理解したが
>>224はCPythonコンパイラでKotlinコードをコンパイルしたいって言ってて草生える
別の人間の意見だからそれは良いんだけど、どっちにせよ馬鹿っぽい構成だな

Kotlin/NativeでJVMから離れても、
結局はKotlinランタイム, Pythonランタイムの2つの言語/プロセス間通信が必要で
他言語間通信はC言語を挟めというのがイマドキの現実的なI/F設計だろうに
そのC言語I/FにKotlin, Pythonのラッパーを噛ませるならギリギリ現実的か

Python2が3に移行してるって言うが、Googleが10年以上Python2に固執したせいで
ようやく最近Python2, 3が平行実装になった程度で完全移行は進んでないだろ...
Jythonなんかはその煽りで3への移行をやらず枯れきった性質だと思うぞ
226デフォルトの名無しさん
垢版 |
2017/05/28(日) 11:11:04.40ID:E43+dK8Z
>>224 普通に空気読んでくれてありがとねー笑

>>225 現実に今すぐ俺がkotlinでPythonライブラリ使いたいと言ってるわけじゃないんで、見当違いだが詳しい解説ありがとねー

JBはiOSにもネイティブでkotlinを対応させようとしてるくらいだし
方向性としてすべての分野でkotlinを使えるようしようとの野心をもってるらしいし
もとものkotlinは産業用に開発してると謳ってるわけだけど
tensorflowに対応させるなんて発表聞けば、研究分野、この場合機械学習だけども、にも
ターゲットを広げたんかな、と
ならばいっそのことpythonライブラリ全般を使えるような開発をやってくれたら
さらにいろいろ広がるんじゃないか、とそういう期待
PyCharmとか出してるくらいだし
まぁ人的資源とかの関係もあるだろうから優先順位低いだろうけどね

googleだってもしかしてJVMと決別を視野に入れてkotlin/nativeを評価したのかもしらんし?
227デフォルトの名無しさん
垢版 |
2017/05/28(日) 11:26:10.28ID:E43+dK8Z
現にFuture plansには入ってるんだよね、Data analysis and Scientific Computingが
どうやって実現する予定なのかはわからんけど
228デフォルトの名無しさん
垢版 |
2017/05/28(日) 11:36:02.32ID:E43+dK8Z
それとも何か?この科学技術計算ターゲットってのは
もしかしてイチからkotlinで科学技術計算ライブラリ
もしくはコミュニティまで作ろうってことなのか?
まさかtensorflowに対応で完結じゃあるまい?w

いずれにせよJBが近い将来どんな具体策を出してくるのか、非常に楽しみである
2017/05/28(日) 12:40:24.58ID:ZXIsROaD
JVMもPythonも知らない素人だった
相手した二人共これには苦笑い
2017/05/28(日) 14:33:07.68ID:ew7wH7J4
kotlin見てみたけどこれscalaをオチンポ向けにした言語やな
2017/05/28(日) 15:01:49.36ID:YXueBn2b
オチンポ向け…
2017/05/28(日) 15:13:25.48ID:SqJWukL/
>>230
詳しく
2017/05/28(日) 15:22:28.26ID:asHVM9Q4
全然知らないで書くけど
Javaと同等の事をKotlinで出来るの?
2017/05/28(日) 17:38:26.84ID:9pcvjMzo
できるんでないかな
Javaの呼び出しもシームレスにできるしな
2017/05/28(日) 19:16:55.76ID:QwjzxVOm
Kotlin = Scala + Groovy(Rubyも同じ)

Javaでは、nullを除去できない

Javaには、Primitive があるけど、
Kotlinでは、すべてがオブジェクト

Java ←変換可能→ Kotlin

クロージャのデフォルト引数は、it を使う

第2引数のラムダ式を、引数の外に出せる、糖衣構文あり
関数(引数, { it })
関数(引数){ it }

toString, equals, hashCode の3種の神器を、最初から持っている、データクラスがある
236235
垢版 |
2017/05/28(日) 19:22:45.75ID:QwjzxVOm
>Javaには、Primitive があるけど、
>Kotlinでは、すべてがオブジェクト

実行速度を上げるため、primitiveを使う方法もある
2017/05/28(日) 20:49:50.31ID:ZXIsROaD
途中からJavaとの違いからKotlinの特徴になっててイマイチ、、、

とりあえず、Javaとおなじこと出来るでいいんでね
2017/05/28(日) 23:18:36.68ID:IZz0cLMX
初歩的な質問とかしていい?
ByteArray使いたいときって
val a = byteArrayOf(0x80.toByte(), 0xCA.toByte(), ...)
みたいに.toByte()ってつけなきゃいけないん?慣れるまで見づらいな…
2017/05/28(日) 23:55:52.52ID:C6P4TIAg
いろいろ考え方はあるのだと思うけども
なにかコレクションがあって、それ全てに何か処理をして返して欲しいときはmapが使える
>>> val array = arrayOf("aaa","bbb","ccc").map{ it.toUpperCase() }
>>> array
[AAA, BBB, CCC]
240デフォルトの名無しさん
垢版 |
2017/05/29(月) 23:11:46.19ID:Vfa09dL5
>>238
Kotlinは通常キャストはされないが、byteはリテラルがないからかリテラルだけは型推論されて、
val bytes = byteArrayOf(0x01, 0x02)
というのは型検査を通る模様。
2017/05/31(水) 22:55:29.26ID:JH+W+dlz
kotlinでjsってどんな感じ?
typescriptの型情報取り込めると知って
ちょっと気になってきた。
type scriptより関数型が強めだから幸せになれそう
2017/06/01(木) 10:14:24.94ID:2LgcCNqk
hasteやGHCjsじゃ駄目なん?
2017/06/01(木) 10:55:02.44ID:AXJF1Amn
SwiftとKotlinでちょっと遅延評価リストを比較した

■Kotlin
オンラインコンパイラ: https://try.kotlinlang.org/

val a = generateSequence(0){it+1}

//A 問題なし
println("A: "+ a.take(10).toList() )

//B 問題なし
println("B: "+ a.take(10).map{it*10}.toList() )

//C 問題なし
println("C: "+ a.filter{3<it}.take(10).toList() )

//D 問題なし
println("D: "+ a.map{it*10}.take(10).toList() )

//E 問題なし
println("E: "+ a.map{it*10}.filter{50<it}.take(5).toList() )
2017/06/01(木) 22:36:13.65ID:FF0Uww0g
ファイルの整形処理で少しカジッてみたけど、ファイルIOはJavaのAPIと古い?関数と新しい?関数が混在してて、Googleの海をさ迷ったよw
kotlinのsequenceを返すreadLinesが欲しかったんだけど、見つけきれなかったので自作した。
既存であるのかな?
2017/06/01(木) 23:40:24.53ID:wljaouQ8
lineSequence()とかuseLines()とか?
246デフォルトの名無しさん
垢版 |
2017/06/02(金) 22:36:46.10ID:x3ElWORK
androidアプリってscriptの方で作れますか?
kotlinc -script
2017/06/04(日) 01:46:21.69ID:MOnNXU8r
ヘイ親方質問
ファイルをShift_JISで保存してもUTF-8で保存しても
fun main(args: Array<String>){
println("日本語です")
}
が特段のオプションなしのkotlincでコンパイル可能で
特段のオプションなしkotlinでWindowsコマンドプロンプトに無事表示可能なんだけども
これはいったいどのへんが気を遣ってくれてるんですかね
248デフォルトの名無しさん
垢版 |
2017/06/07(水) 14:34:22.11ID:SSzPpmQQ
>>144-150
自己レス。データクラスを使った

data class Person(val age: Int, val name: String)

val mlist: MutableList<Person> = mutableListOf( );

mlist.add(Person(25, "Tom"));
mlist.add(Person(25, "Dave"));
mlist.add(Person(20, "Kate"));
mlist.add(Person(20, "Alice"));

val sortedList = mlist.sortedWith(compareBy({ it.age }, { it.name }))

sortedList.forEach {
println( it )
}

出力
Person(age=20, name=Alice)
Person(age=20, name=Kate)
Person(age=25, name=Dave)
Person(age=25, name=Tom)
249デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:28:27.40ID:xoha/0nR
C#やってる人にとって凄く扱いやすかったりする?
ちなみに母ちゃんのあだ名がコトリン
2017/06/16(金) 14:48:16.06ID:+s2fXv0/
母ちゃんモダンな名前なんやね
251デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:58:47.38ID:TF51QW3i
古都りん
252デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:59:56.64ID:TF51QW3i
秋の奈良レンタサイクル“古都りん” - 奈良県自転車利用総合案内サイト
nara-cycling.com/rent-a-cycle/
253デフォルトの名無しさん
垢版 |
2017/06/16(金) 15:20:11.64ID:dTWIGOSM
>>247
kotlinじゃなくてJavaの仕様でしょ。
254デフォルトの名無しさん
垢版 |
2017/06/19(月) 11:01:48.86ID:heYb3DeP
なんでgoogleはkotlinをアンドロイドアプリの公式言語にしたの?
なんでgolangじゃないの?
オラクルとの訴訟もあるのにjavaを切ったほうがいいんじゃないの?
2017/06/19(月) 12:12:39.67ID:xaFoAOZp
java切ってどうなるか考えればわかるだろう
2017/06/19(月) 21:05:24.63ID:snSfABSo
>>254
オラクルとの訴訟での争点は言語じゃなくてAPI
言語を何にしようが無関係
2017/06/21(水) 02:18:15.32ID:CAzvCkNY
>>254
使ってみればわかるけどgolangってメタプログラミングな部分が弱いから
既存のシステムの置き換えに向いてる言語ではないと思う。
新たに1から構築するなら可能性はあるけど。
2017/06/21(水) 02:21:47.43ID:CAzvCkNY
>>256
これ。でも段階的にjavaに頼らないようにしていくのかもね。
コレクション系がandroid用に別実装になるとかあれは面白い。

あとオラクルにjavaから離れるアピールして圧力をかける政治的意図もあると思う
2017/06/21(水) 02:29:38.77ID:sE0qxZss
JetBrainsうまうまってこと?
2017/06/21(水) 02:33:39.09ID:jljDxrF/
Jetbrains買収あるか?
2017/06/21(水) 02:59:48.56ID:CAzvCkNY
むしろ、なんで買収しないんだろな。
つーかjetbrainが謎すぎて。
なんで一社であんなに幅広くide作れるのかが謎
262デフォルトの名無しさん
垢版 |
2017/06/21(水) 05:02:56.13ID:wPEHzi2i
なんか怪しい力働いてるよなjetbrainsって
2017/06/21(水) 07:39:22.48ID:MgLtlgFl
理解できないことを怪しいって言うのは悪い癖だぞ
2017/06/21(水) 07:48:18.50ID:aInzLc5f
共通のベースに言語乗せてるだけだし、開発なんかほとんどオフショアだろ
265
垢版 |
2017/06/21(水) 08:05:49.79ID:iG5W0fvY
Kotlin nativeも頑張ってるしな。
結構そっちにも期待。
266デフォルトの名無しさん
垢版 |
2017/06/21(水) 10:55:07.74ID:GDsri7KT
>>265
同意
2017/06/22(木) 01:10:45.12ID:77+4f1XL
>>265
これが本格的に動き始めたらswiftの存在意義が、、、、、無くなるよね
2017/06/22(木) 07:18:08.18ID:Ti1xVgu4
ラットナーがjetbrainsに転職するってマジ?
2017/06/22(木) 09:16:59.96ID:yA4QDZF/
>>267
swiftのが言語仕様は優れてる
2017/06/22(木) 09:32:44.22ID:6k72kRRJ
Swift on Androidが地味に進んでるからそっちも期待
一定量の完成度が見込めたらKotlinから移行するのも良いかも
2017/06/22(木) 11:33:55.45ID:szHtJQ50
>>270
地味に進んでるって、Xamarin Androidのように、SwiftからJavaのAndroid APIを呼び出す仕組みが用意されつつあるの?
それが出来なきゃKotlinの代わりにはならんよ
2017/06/22(木) 12:05:57.96ID:E8iNX+8Y
kotlin/nativeでndkを使いたい
sdk側とndk側で同じ言語使えたら開発楽だと思う
2017/06/22(木) 12:16:58.77ID:szHtJQ50
>>272
それ何のためにNdk使うの?
2017/06/22(木) 13:02:54.50ID:6k72kRRJ
Kotlin.NativeからObjCが叩けるようになるのが先か
SwiftからJavaが叩けるようになるのが先か
どっちも現実的にはないわな

まぁそれでも言語/フレームワークの開発が絶賛進行中のSwiftの方に夢があるかな
2017/06/22(木) 13:14:48.12ID:3yY7lcXH
>>273
画像加工とかはndkで処理したい
2017/06/22(木) 14:17:05.90ID:szHtJQ50
>>275
その用途だとKotlin nativeじゃ多分意味無い
Nativeコードに変換すればc++で書いたのと同じ性能が出るというわけじゃないからね
277デフォルトの名無しさん
垢版 |
2017/06/22(木) 19:32:17.15ID:eBYfVtnR
>>276
llvmのコード吐くんじゃないの?
2017/06/22(木) 19:42:12.44ID:wKDRovrw
いやJVMは十分速いよ?
C++でもJavaと同じように書いたらパフォーマンスは大差ない
C++が速くなるのは低レベルな汚いハックができるからで、それができないならあまり意味がないということだろ
2017/06/22(木) 19:55:38.89ID:mgpLFN+F
>>277
kotlinから変換されたllvmコードは、kotlinの言語仕様を満たすために、
例えばメモリ管理はガベージコレクションが前提となるから
その為の少し大きめなランタイム付いてくるはず
境界チェックのようなc++なら省略できるコードも漏れなく付いてくるはず
2017/06/22(木) 22:21:35.91ID:3yY7lcXH
>>276
c++ほどの速度は出ないのね
結構早くなると思って期待したんだけど

>>278
以前画像にブラー処理掛けたときは結構違った
2017/06/23(金) 09:47:11.55ID:hp7X3mpn
それは言語の違いではなくアルゴリズムの違いではなかろうか
もしくはJavaヒープ/Nativeヒープの性能差分ならByteBufferを使う手もある
そこまで考慮するくらいなら素直にC/C++使った方が幸せだけど

ByteBufferはGC走りづらいから性能良いんだけど普通は使わないよねぇ
2017/06/23(金) 10:01:06.35ID:9PTuVR6v
ByteBuffer(もしくはそれと同様の使い方をするプリミティブ配列)がGCの性能に大きな影響を与えるって一体どんな状況?
バッファは長時間使い回すんだからGCなんかほとんど関係ないだろ
GCの負担になるほど頻繁に生成しまくるとかアホなことしてるとしても、その場合はネイティブヒープの方が割当時のオーバーヘッドの分かえって遅くなりそうだし
2017/06/24(土) 03:52:32.49ID:QlqTymbl
メモリ管理とかよりさ
JVMやDEXの中間コードからJITされたコードの場合、SIMDとかの特殊なCPU命令はまず使ってくれない
つまり十分に最適化されたネイティブコードに勝てる見込みはまずない

最適化されたライブラリの一つであるlibjpeg-turboみたいなのをアプリから使うときに
libjpeg-turboのAPIを一つ一つJNIでラップするのと
libjpeg-turboのAPIをNDKで利用してからアプリ固有のAPIだけJNIでラップするのと
どっちがリソース管理が楽かは言うまでもない

この「NDKで利用して」をKotlin Native でより安全に書けるのなら、価値はありそうだな
284デフォルトの名無しさん
垢版 |
2017/06/24(土) 04:16:45.08ID:qquEaJ2M
んなこたない。
JITでSIMDぐらい普通に使われるし、
むしろ事前に最低限サポートするCPUを決めてそれに足を引っ張られる事前コンパイルより、実行しているCPUの拡張命令を最大限使えるJITの方が効率的なコードになる事もある。
2017/06/24(土) 06:57:58.73ID:bDbRpy30
どっちなのさ!
2017/06/24(土) 09:27:02.16ID:32e8D3Wy
JITコンパイラの性能次第
2017/06/24(土) 09:54:27.72ID:LXfJ84Bv
Dalvik, ARTどころかOracle JVMですらSIMDは扱うよ

>>282
俺が使った時は、Androidでnew byte[1024]がOutOfMemoryでByteBuffer.allocate(1024)は通るような状況(実際は1KじゃなくM単位
画像加工を試みたんだけどbyte配列のままで処理しようとしたら分割操作が必要になってクッソ重たいのwww
2017/06/24(土) 10:51:37.84ID:iOfeax4r
ByteBufferのAPI嫌いだな
Javaの過剰設計の伝統ここに極まれりって感じ
2017/06/24(土) 15:08:57.88ID:LXfJ84Bv
NIOが出た当初も評判良くはなかったよねー, ないと困ることは確かにあるんだけど必要とする人は少ないし
それでも当時は仮想マシンを謳うくせにこんな基本機能もないのかよって風聞で過剰どころか不足と言われ
1.4は標準ライブラリを大量に追加しようってリリースだったから仕方ない
2017/06/26(月) 14:38:34.02ID:Wfn5YHgL
ByteBufferはdirectがあるからまぁ必要。
291デフォルトの名無しさん
垢版 |
2017/06/27(火) 08:01:46.32ID:7qLYNCF8
間接的にお世話になってることも知らずに文句言ってるアホばっか。
2017/06/27(火) 08:19:48.98ID:p7AYCZKI
エンジン構造も知らずに車に文句付けてるってくらい論点が異なるよ
使う側であれば別に中身を意識しなくていいんだよ
2017/06/27(火) 08:45:00.53ID:+gpX7LUM
>>288とかはエンジンなんて車にいらねーって言ってるんだけどなw
2017/06/27(火) 12:59:12.87ID:thSLzROj
APIに文句言ってるだけじゃね
Javaが使いにくいからとKotlin使ってるお前らにそれを批判する資格はない
2017/06/27(火) 14:24:44.78ID:xkXC4vKS
実際問題java apiからkotlinを切り離すのはわりと簡単だったりするの?
google内で独自apiを作ってたりして
2017/06/27(火) 16:52:29.37ID:rNyRMSOh
余裕やろうな
やる価値があるかは別として
2017/06/27(火) 17:26:00.35ID:JXIPCy9a
技術云々でなく普及のための絡みで難しそうだな
2017/06/27(火) 19:50:52.50ID:GY2ar0Yu
Java APIじゃなくJava Libraryだとするなら、そこを切り離して実用に耐えるにはJava1.4くらいには過剰設計しないと無理じゃね
2017/06/28(水) 03:27:10.10ID:4SuBLGV6
>>296
googleってそういうの不得意な気がする。
なんかいろいろ作りっぱなし感がすごい
300デフォルトの名無しさん
垢版 |
2017/06/28(水) 03:57:50.54ID:ULDUfAbu
GoogleとOracleってまだちょっと揉めてるん?
2017/06/28(水) 09:52:23.47ID:1HRXLIL1
>>299
またOracleから技術をパクれは余裕綽々よ

しかし、あれは酷かったよなw
JVMのスポンサー/共同開発に名を連ねたと思ったら
その数年後にAndroid発表してSun JVMじゃなく自前のDalvik VM使うからwwwってSunを切り捨てる暴挙
そりゃ技術をパクられたSun(Oracle)はブチキレるわ

Googleはもうパクらないだろうから、Jetbrainsがパクることを期待しようか
2017/06/28(水) 11:09:49.25ID:fPVyfCmw
>>301
Androidは何もパクってないが
捨てられたApache Harmonyを引き継いだだけやし現時点ではOpenJDKになるってし
元を正せばOSS化を進めてたウンコOracleが突然APIのライセンスだなんだ
2017/06/28(水) 11:10:28.02ID:fPVyfCmw
と喚き散らしたことのほうがどう考えても筋違いや
Oracleはキチガイ集団
2017/06/28(水) 12:55:43.96ID:n0wEK4ez
当時、Sun JVMはクローズドソースでVMの中の人どころか、Java層のAPIも非公開だったろ...
ノウハウパクっておいてApache JVMから引き継いだだけだからってのは盗人猛々しいわw
305デフォルトの名無しさん
垢版 |
2017/06/28(水) 13:02:32.04ID:WVoz31+g
>>304
JavaのAPIが非公開だったってそれまでJavaプログラマは何を見て書いてたんだよ。
2017/06/28(水) 13:09:21.41ID:1HRXLIL1
面倒な奴だなぁ
APIとLibraryを区別する気はないのかと思ったら、そこは区別するのかよ
2017/06/28(水) 13:45:27.56ID:fPVyfCmw
>>304
sun javaはsunのものだがjavaはsunのものではない
何をぱくったって?
2017/06/28(水) 16:04:17.62ID:1HRXLIL1
だーかーらー、>>301で言っているだろ
クローズドソースのSun JVMに首突っ込んで、自前のJVM実装のリリースに走ったのを悪行と言っている
当時もJVM自体はGNU, Apache, MSと多様に存在してたし、独自のJVMを作る自体は気にしないけど
仲良くしようぜーって近づいて技術を盗み見るのをパクったと表現しているんだ

自前のJVM作ろうが、JVM上で動く別言語作ろうが一向に構わんが、あの時のGoogleの行為は大笑いだったんだぜ
2017/06/28(水) 17:10:45.64ID:woJsJzbY
結局フェアユースという落ちが付いたろ。判決はどこまで確定したっけ?
2017/06/28(水) 17:18:12.30ID:KUDOoNV3
Googleはライセンス料を回避するためDalvikを作った
Oracleが訴訟起こしたのはGoogleから和解金や継続的なロイヤルティーを得るため
金vs金

GoogleがOracle JVMでなくApache Harmonyをベースに開発したため
OracleはソースコードでなくAPIの著作権という方向からDalvikの権利を押さえに掛かった

今のところ訴訟バトルはGoogle有利に進んでいる模様
2017/06/28(水) 17:24:37.74ID:KUDOoNV3
訂正

特許とAPIの著作権
2017/06/28(水) 19:19:21.21ID:xWBVVuch
しかし何れにせよ、Androidが無かったらJava(及びそのエコシステム)はもっと廃れてたはずだよね
2017/06/28(水) 20:01:24.52ID:gsVJZ8oO
JDKのライブラリ群は30年ぐらい前の発想で作られた頭が痛くなりそうな
APIも多いのでKotlinでJDKと別にモダンなコアライブラリ
作ってくれるならとても嬉しい
2017/06/28(水) 20:13:20.22ID:R8FO3Rrv
>>312
androidが何に寄与したって?w
2017/06/28(水) 20:17:07.79ID:kl/WEkBu
>>312
Javaの市場はほぼ100%エンタープライズとWebが占めててAndroidなんかカスみたいなもんだぞ
2017/06/28(水) 20:20:40.71ID:woJsJzbY
javaはヌルポ排除できない時点でだめだよな。
317デフォルトの名無しさん
垢版 |
2017/06/29(木) 00:16:43.10ID:OxDWNayQ
>>316
だからKotlinが生まれたんだっけな
2017/06/29(木) 11:02:50.69ID:7tq2Nu14
Kotlinでヌルポ起きないってギャグにしては古すぎる・・・
2017/06/29(木) 11:39:09.06ID:FObp9uyg
オプショナルを正しく使ってればヌルポなんて起きようがないんだがw
2017/06/29(木) 11:40:38.32ID:pdm0wtJX
ニュアンスとか前提の差で話が噛み合ってない気が
2017/06/29(木) 11:47:39.86ID:JFxFowh1
ぬるぽは既存のライブラリやフレームワークから飛んでくるからKotlinを使ったところで解決にならないんだよなあ
自分で書いた範囲ならJavaでもぬるぽなんて滅多に出さないわ
2017/06/29(木) 12:00:09.83ID:pdm0wtJX
テストあるからJava1.4でもClassCastExceptionは滅多に出さない的な
2017/06/29(木) 12:22:12.95ID:7tq2Nu14
プリベリファイ要求してたMobileのJava1.3は偉大だったんだなって
2017/06/29(木) 12:28:25.79ID:JFxFowh1
>>322
そういう問題じゃない
Javaのライブラリにおいて引数にnullが渡されそれが不正値であるときに発生する例外は何か? →たいていぬるぽ
Javaのライブラリにおいて属性の値がnullでそれが不正値であるときに発生するエラーは何か? →だいたいぬるぽ
明示的なチェックを怠りランタイムエラーに頼るこの糞習慣がある限りぬるぽは決して無くならない
2017/06/29(木) 13:21:35.51ID:FObp9uyg
>>321
んなことは言わなくても全員わかっとる
2017/06/29(木) 14:39:25.51ID:JUVsJKjr
そもそもテストを書けばぬるぽの9割は生まれる前から死ぬ
しかしそれでもテストをしないできないすり抜けるからこそ静的言語コード本体に「テスト機能」をつけたのだよ
人間とは間違うものなのだ
2017/06/29(木) 15:15:09.10ID:Xwk4Fgx6
Javaのライブラリにおいて引数に配列上限値が渡されそれが不正値であるときに発生する例外は何か? →たいていあれいいんでっくすあうとばうんど
Javaのライブラリにおいて配列の要素値がマイナス値でそれが不正値であるときに発生するエラーは何か? →たいていあれいいんでっくすあうとばうんど
配列操作を安全に操作できないKotlinはJavaと同じレベルで糞だな

ヌルポだけがバグの原因だと思ってるアホは置いといて、やっぱテストフレームワークを充実させたJUnitは偉大だわ
2017/06/29(木) 15:20:20.01ID:W0uOcXiB
なんだこいつw
2017/06/29(木) 19:47:56.73ID:zX+YoTjc
>>327
問題の発生頻度が段違いだろ。

型システムを採用しているにもかかわらず、型無しのヌルポを排除できないjavaはとても古臭い。
2017/06/29(木) 20:58:35.28ID:UEgl5Zip
Sunが死んだ
太陽が死んだ
2017/06/29(木) 21:19:35.80ID:cCrWWcTS
日本語で書かれた Kotlin に関するいい感じのチュートリアルってない?
2017/06/29(木) 21:34:38.83ID:pdm0wtJX
書いて覚えろ
2017/06/30(金) 00:28:01.26ID:56/qVjC+
>>331
情熱、自己顕示、小遣い稼ぎ、まあ理由はなんでもいいんだけど自分でちょろっと記事でも書いてみようとするとよくわかる
・Java入門
・Kotlin詳説
・よくわかるIntelliJ
・10日で学ぶAndroidプログラミング
あたりをごっちゃまぜにしたものが必要になる
ぶっちゃけとてもめんどくさい
2017/06/30(金) 01:58:55.10ID:q+HYO1HC
チュートリアルならKotlin Koansやるのが一番じゃない?
Webでも手軽に出来るしIDEAにも専用のプラグインがある
335デフォルトの名無しさん
垢版 |
2017/06/30(金) 10:50:35.57ID:TsXJhClE
あれいいんでっくすあうとばうんどは、0除算並みの恥ずかしいミス。
nullpoとは次元が違うわw
2017/06/30(金) 11:53:55.60ID:0zGLF76x
>>334
webのやつってなんか重くないですか?
2017/06/30(金) 13:36:42.47ID:tesV9X+3
そんなんローカルに持ってきてやればよろしいがな
IntelliJ入れてあるならプラグインがある
コマンドラインしかないなら…、まあ、IDEなしは初心者であるからこそ積極的には勧めないんだけども、
コマンドラインしかないならgitで持ってきてテストが通るようにスクリプト本体編集すればいい
えっコマンドラインからテストするやり方がわからない?
338331
垢版 |
2017/06/30(金) 13:58:27.40ID:svEzz20W
>>334
本家 (またはそれに近いコミュニティ) にある資料ならここで聞くまでもなく有るのはわかりますがな。
そうじゃなくて「日本語で」あったらうれしいなぁという話で。
2017/06/30(金) 14:35:57.92ID:5/+9iJSz
自分用でなく他の人用という話だったら
Chromeなどでのページ翻訳+原文で頑張る方法を勧める
2017/06/30(金) 14:52:56.61ID:tesV9X+3
>>331
あるかどうかで言えば「まだないです」
Kotlinは基本的にはただのJavaなので、上にもあるけどJavaの基本知識(を教えるだけの余裕)が必要なのでちゃんとした入門制作はハードルが高い
巷の日本語ページがスタートブックすら超えられてないのはそのへんが理由
そしてスタートブックですら初心者全く掬えてない
助走読本はとても頑張ってるけれど、助走ゴールな気がちょっとしなくもない。これはやっぱりJavaが悪いので仕方がない
ttps://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view
2017/06/30(金) 15:08:07.12ID:svEzz20W
>>340
なるほど。
Java の資産を使えるメリットと引き換えに Java の知識が必要ってことね。
というか、 Java をマシに使える言語って感覚なのかな。

私は Scheme (LISP 系言語) を普段使いしてるので同じく LISP 系言語である Clojure を検討してたんだが、
やっぱり Java の知識が必要で、しかし Java について全然知らないので他の系統はどうなんかなと思って
このスレに来た次第。

やっぱりそう簡単にはいかんか……
2017/06/30(金) 15:20:46.15ID:5/+9iJSz
何に困ってるのか分からない
その辺の経験あるなら手動かせば身に付くまで大して掛からないだろう
2017/06/30(金) 15:38:15.91ID:O4IQOzV/
googleのやるべきことはFWを全てkotlinに書き換えることやな
2017/06/30(金) 16:02:16.24ID:2Da2vksV
英語読めない奴がLISPとかすげえな
やってて死にたくならない?
2017/06/30(金) 16:17:39.99ID:O4IQOzV/
>>341
つhaskel
2017/06/30(金) 16:43:11.20ID:svEzz20W
>>344
Scheme は日本語訳あるからそんなにつらくない。
Common Lisp とかみたいに仕様の日本語訳がなくてクソ巨大なのを使いこなすのは大変だと思うけど、
最初からリッチなライブラリがそろっているので実用しやすいという人もいる。

>>342
興味本位なので面倒くさかったらやらないだけ。
ハードルの低い入門があれば見るかもっていう感じ。
2017/06/30(金) 17:11:37.52ID:0PkxBZJ1
>>335
RuntimeExceptionの子クラスの例外は総じて同レベルで恥ずかしいんだが
原則、どれもパラメータチェックしてないから発生する例外だからな
むしろ、ヌルポが一番恥ずかしくて、それが起きないようにオプショナルがあるんだと思ってる
2017/06/30(金) 17:59:28.75ID:2uOE1xo7
Javaがクソなのと、クソの処理をしないプログラマがマヌケなのは別の話。一緒にすんな。

Optionalはその変数がnullでないことをコンパイル時に保証できたっけ?
実行時コストをかけて解決するのは鈍臭い。
2017/06/30(金) 18:12:49.54ID:0PkxBZJ1
そのクソの処理をしないプログラマでも安全にコーディングさせるためにオプショナルがあるんだよ...
オプショナルがあるからヌルポが起きないわけでもないから完全に安全とは言えんがまぁ言及すまい
2017/06/30(金) 21:30:17.46ID:2uOE1xo7
>>349
まともな言語なら(c++でさえ)コンパイル時に済ませられるのを、わざわざ実行時にチェックしなきゃいけないのは鈍臭い、つうこと。
2017/07/01(土) 06:09:20.91ID:v+Q0wrxJ
全く噛み合ってなくてワロタ
どんだけ崇拝してるんだかwww
2017/07/01(土) 12:59:00.78ID:qNm5JQD+
C++でヌルポが起きないってマジ?w
2017/07/01(土) 15:33:59.29ID:v+Q0wrxJ
Rustだとガチでヌルポが起こせないゾ
オプショナルとかいう中途半端なモノを誇ってるKotlinとは格が違う
まぁ他の面倒が多くて全く勧められるものじゃないけど

オプショナル()だけで素晴らしいとか絶賛してる子は他にメリットを見出してどうぞ
2017/07/01(土) 15:53:26.04ID:KyLBHjPn
トレイリングクロージャ無いと死ぬマン
355デフォルトの名無しさん
垢版 |
2017/07/01(土) 20:36:50.31ID:M8KylmXN
ここまで、lazy 初期化の話が出ないw
2017/07/01(土) 21:29:59.25ID:SoXb9Q80
ヌル安全つうのはモダンな言語じゃ標準装備なんじゃろ?
2017/07/02(日) 13:51:47.79ID:RlGcb3P/
>>338
Koansとか英語読めなくても(読まなくても)分かるんだが…
メインはKotlinのソースコードで説明読めないなら問題と答えを比べて見るだけで基本的な構文は勉強出来るし
そもそもプログラミング自体の理解が浅いならJavaとかから始めないと例え日本語の解説あっても分からんと思うよ
358デフォルトの名無しさん
垢版 |
2017/07/02(日) 23:49:50.72ID:ynDhLM7Z
Java + Groovy = Kotlin

つまり、Javaに関数型を付けた言語だから、
最初に、オブジェクト指向を学ぶ必要があるから、かなり大変

まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
WEB+DB vol.94 の特集が、Kotlin, Electron

Try Kotlin のサイトで、ブラウザからプログラミングできる
2017/07/03(月) 00:00:56.60ID:MkRtof65
ここまで出張して来たか、、、
2017/07/03(月) 00:27:08.93ID://L4zw1o
sageじゃない時点でスルーでいいよ
2017/07/03(月) 00:37:26.98ID:MkRtof65
NGワード:スッキリわかる
2017/07/03(月) 06:33:05.51ID:4ljd5V+p
Kotlin.NativeよりSwiftのが使えるって本当?
Kotlin.Nativexはキーワードばかり散見されて実質何がどこまで完成してるのか分からんのだが
SwiftはWin, *nix, Androidで普通に動くようになってるけど、Kotlinはそこまで至ってないんだよね?
2017/07/03(月) 08:38:14.08ID:mDI6RaMX
swiftって仕様安定したの?
2017/07/03(月) 09:06:19.84ID:8rVktY+j
おおよそ
2017/07/03(月) 09:13:44.93ID:4ljd5V+p
Kotlin/NativeのCとの連携ってJNIを踏襲するんじゃなくて、現在進行形で独自I/F仕様を作ってるっぽいな
一応、Linux, Mac, Winで動くようだけど完成度はSwiftのがまだマシだ
366デフォルトの名無しさん
垢版 |
2017/07/03(月) 12:50:39.71ID:v2mMhpE7
いまさらJNIはないだろ。
JVMの方も10か11でJNIに代わるNative対応が予定されているし。
2017/07/03(月) 15:28:28.68ID:BBsEUtpT
なおさら踏襲しとけよと思わなくもないな
Kotlin/NativeのNative I/F
Java9以前, KotlinのJNI
Java10以降のFFI
と仕様が乱立するのか・・・

Kotlinって仕様安定してないのな
2017/07/03(月) 18:16:02.56ID:tIUw+Kxj
JNI踏襲とか無いわ
そうしたいなら普通にJava使っとけば良いと思う
2017/07/04(火) 09:13:03.70ID:ETZVte8W
KotlinがJNIを踏襲していることは知らないのか、知ってて度外視なのか
Kotlin/NativeアゲのためにKotlinを蔑んでちゃどうしようもないな
370デフォルトの名無しさん
垢版 |
2017/07/04(火) 15:17:21.36ID:FOvT7Dr6
Kotlin/Javaが使うのは何でもないこと。
もしKotlin/NativeがJNI使うとしたら、それどこのXamarinだよってことだろw
2017/07/04(火) 16:48:31.76ID:E7VHi3Qh
JNIのI/F踏襲して
external fun fgetc(file: CPointer) char;
とかでいいじゃんっつーね
externalの先はわざわざVM/Runtimeかます必要はなくてCに繋げればいい

Kotlin/NativeのNative I/FはC++に対応してないようだし
後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
C++に対応するならまぁアリかと思うけどないんだろうしね
2017/07/04(火) 18:27:25.69ID:kEoD/tXz
>Cに繋げればいい
ならJNI要らないじゃん
JNI踏襲ならJNIEnvの実装必須でしょ

C++対応とか正気かよ
C++同士でさえコンパイラやバージョン違いで
マングリングが異なってリンク不可能だからCリンケージ使うのに
2017/07/04(火) 19:45:38.53ID:E7VHi3Qh
I/Fとランタイムの区別が出来てない
まぁ>>368とかもJavaとKotlinとKotlin/Nativeと区別してないからその程度なんだろうけど

> C++対応とか正気かよ
Rustのアホはbindgenって補完ツールで実現したぞ
他言語では見たことないから当然Kotlinもナイと思ってる, 後発なんだから検討はして欲しいけどねー
2017/07/04(火) 19:58:52.39ID:G1Se2kAk
javaに触らずにkotlinだけでandroid開発できるようになんないかな
2017/07/04(火) 19:59:34.67ID:bn9cQclE
なればいいね
2017/07/04(火) 20:44:06.85ID:kEoD/tXz
>>373
>>365からの一連の流れはKotlin/NativeでのI/Fの話だぞ
区別云々は君が話の前提から混乱しているだけ

>bindgen
見たけどClang 3.9(〜4.0)のマングリングを前提としてるから
ヘッダだけじゃなく実装本体もClangでビルドする必要があるようだが

完全なC++コードがある場合は使えるが、ABIの代わりにはならないだろう
2017/07/04(火) 22:22:00.36ID:A9sYzzwp
>>374
5年後にバージョン3とかになればなんとか…
378デフォルトの名無しさん
垢版 |
2017/07/05(水) 11:03:55.64ID:BRC1acOi
スマホアプリの言語ぐらい統一して欲しい
googleとappleで話し合えないのかねぇ
mac以外でもios用のアプリ製作からリリースまで最後まで出来るようにしてほしいよねぇ
2017/07/05(水) 11:08:55.38ID:PFivIsqu
>>378
統一したいならC#
2017/07/05(水) 12:07:39.48ID:Ejf+K2GI
Appleの昔から自分たちのプラットフォームにユーザーを囲いこんで、他のプラットフォームからの鎖国という考え方
Googleは自分たちのサービスを他のプラットフォームでも利用してもらってユーザーを増やし、収益を伸ばしたい考え方
統一でという方向で動く時、どちらがそれを拒んだり我を通した条件を突きつけてくるかは明白
2017/07/05(水) 12:09:06.92ID:NUQ3PgkL
>>378
お互い何のメリットが?
開発者としても何のメリットも感じないが
382デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:46:52.77ID:BRC1acOi
開発者として開発環境を統一できるメリットがあるだろうが
2017/07/05(水) 12:51:04.90ID:XfevCCY3
>>382
開発側からすればwebフロントエンド系のように開発者余りまくりで単価デフレになるデメリットしかない
384デフォルトの名無しさん
垢版 |
2017/07/05(水) 14:04:19.57ID:KnxHgcda
>>378
ブラウザですら自分の思い通りに開発できないからってwebkitからblinkフォークさせたのに
2017/07/05(水) 16:01:58.60ID:+yhqIzpS
>>382
androidとiPhoneでフレームワークが違うから無理。
2017/07/05(水) 16:10:10.15ID:KD2VFbty
>>378
react native とtypescriptに期待してる。
typescriptならサーバサイドにも耐えそう。言語仕様もパターンマッチング提案中だったり、
結構格好いい言語になってきた
2017/07/05(水) 16:35:02.36ID:dBZFHwYj
>>385
JVM言語で「iOSとAndroidを統一環境で開発できる」と言うのもなんかがっかりではある
君は一体歴史のどこを見てきたのかと
2017/07/05(水) 16:42:58.42ID:ajye3GRU
>>383
金の話はまた次元の違う話かと思われる
2017/07/05(水) 17:00:43.66ID:XfevCCY3
>>388
別次元?なにが?
ある側面だけみてメリットデメリットの話してもなんの意味もないやろ
2017/07/05(水) 18:58:19.44ID:nAxrn5ol
>>378
GoogleはAndroid開発環境を複数OS向けに出している

iOSアプリの公式開発環境がMac用しかないのはAppleが狭量なだけだし、Googleは無関係
話し合いで進展する問題ではない
2017/07/05(水) 18:59:51.81ID:XfevCCY3
これはアスペ
2017/07/05(水) 19:12:52.25ID:nAxrn5ol
仮にAppleがiOSの開発環境をWindows向けに出すとして、iOSエミュレータはついてくんのか?っていう
Androidのような大真面目なエミュレータではなく、iOSはMac上でも「シミュレータ」しか動かん
それがWindows上で動かせるようになるとはあまり思わない
2017/07/05(水) 21:24:57.18ID:+yhqIzpS
技術の問題じゃなくて政治の問題だろ。
2017/07/06(木) 07:36:12.02ID:iYgfgx2U
>>376
JNIEnvが必須とか言い出すからIFじゃなくRuntimeの話を交え始めたと理解したが?

RustがclangでC/C++本体のコンパイルが必要だからNGなら
Kotlin/Nativeがclang等々でC本体のコンパイルを必要とするのもNGになっちまうだろw
他言語を他コンパイラでコンパイルするのは当然で、C++に限ってはその上でKotlin/Nativeが頑張るんだよ
2017/07/06(木) 09:16:31.44ID:Xn+el2UL
どうでもいいけど擬人化ことりんちゃんまだかよ
無能ども
2017/07/06(木) 13:03:11.11ID:A60SyEEL
>>394
>IFじゃなくRuntimeの話
Javaからnativeを使う方のJNIは以下から成り、JNIEnvはJNI仕様の中核
 ・CのABI
 ・シンボル名と引数のルール
    ※ Java_パッケージ_クラス_メソッド(JNIEnv*, thisインスタンス, java側引数)
 ・プリミティブ型の定義
 ・JNIEnv(JNI関数群)のインターフェイス仕様

>clang等々
特定のコンパイラ/バージョン依存なのと, CのABI依存なのはまったく異なる

Kotlin/Nativeのinterop, JavaのJNI, C#のP/Invoke, RustのFFIなどはABIで連携するけど
bindgenはI/FでなくC++コード全体を取り込む外部ツール
Clangの実装に強く依存するからRustの仕様の一部として取り込まれることも無いだろう

誰かがKotlin版bindgenを作ろうとすることに特に反対は無いけどすべきとも思わない
Kotlin/NativeでJNIのI/Fを使う話も労力に見合うものは得られない
2017/07/06(木) 13:14:33.18ID:A60SyEEL
>>394
追記
そもそも根本的な話としてCのABIと呼んでいるもの(↓と同義)が何か分かってる?

https://github.com/JetBrains/kotlin-native/blob/v0.1.0/INTEROP.md
>target is a C library

https://doc.rust-lang.org/book/first-edition/ffi.html
>C ABI

バイナリ内のシンボル名や呼出規約であって別にコード自体がC言語である必要は無い
C++(extern "C"), Rust, Haskellなどネイティブにビルド出来るものは
C ABIでのライブラリを作成する機能を持つものは多い

Cに無い機能(C++例外など)をそのまま透過出来ないというだけで、
C++やRustで作った共有ライブラリをKotlin/Nativeから呼べる
2017/07/06(木) 17:54:27.44ID:j+3WJv+Z
なんでandroidのために新しい言語覚えなきゃいけないねん
2017/07/06(木) 18:08:30.77ID:vSzC4r/y
別にいいんじゃない?android使わなくても。
2017/07/06(木) 19:00:34.42ID:/cQIX5Le
汎用言語が Android では使えないというのは制約だろう。
2017/07/06(木) 20:22:03.24ID:736nPsTD
不満はあってもJavaよりはずっと良い
402デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:28:02.58ID:L8j5rxy6
呼出規約には、2種類ある

呼び出した方で、引数のスタック領域の確保・解放をするものと、
呼び出された方で、するもの
403デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:43:32.25ID:X1Wsv7xS
さらには引数を後ろからスタックに積むもの、前から積むものもってのもある。
2017/07/08(土) 16:04:44.48ID:bEWoCU65
萌えキャラKotlinたんの誕生まだ?
2017/07/08(土) 17:26:45.29ID:69drE4+r
>>396
なんか長々書いてるけど、結局新規のIF, 文法切っても現仕様はSwift同程度なんだよね
中身がどうあろうがいいけどショボい機能しか載せられないなら、Kotlinの上っ面IFだけはKotlinとKotlin/Nativeで共通化して欲しかったって話だよ

まぁ絶賛開発中の言語仕様だし期待しないで気長に待つわ
2017/07/08(土) 19:34:40.80ID:dvBryjqP
しょっぱいだのショボいだのディスるのは簡単だが
浅い知識と考えでそれを言うのは恥ずかしいことだと少しは自覚しろよ・・・
2017/07/09(日) 10:04:20.42ID:0uIBGQaT
>>398
Kotlinは簡単な言語だからいいでしょ
2017/07/09(日) 12:16:36.95ID:1xYpz64I
構文糖衣が多くてperlみたいな雰囲気を感じないでもない
2017/07/09(日) 12:55:49.42ID:GAM/5uII
await使えるようになるだけで移行したいわ
2017/07/09(日) 14:03:09.85ID:5jNmidbV
xamalin使えばいいじゃん
2017/07/09(日) 22:15:33.42ID:x/k/RP/C
>>408
>構文糖衣が多くてperlみたいな雰囲気を感じないでもない
カッコとかなしでむき出しで書かれる A keyword B みたいな構文はどうにも慣れないね
A.method(B)やfunction(A,B)と同じはずなんだが、空白という文字で区切られていると脳が一瞬括りを拒否する
2017/07/10(月) 13:10:30.69ID:Y8I/wQdo
>>406
最初(>>367の時点)からKotlin層の文法だけを注視してて、C層は気にしてないからなぁ
Kotlin層の共通化が大変な訳でも無し、わざわざ大変な新規IF切ってしょぼい機能になってるのは恥ずかしいよ
2017/07/10(月) 13:34:33.04ID:gqDySAuG
>>412
何何どういうこと?
まだkotlinは遠くから眺めているだけだから気になる?
2017/07/10(月) 23:27:47.39ID:LuuY8Q0f
>>412
C層を気にしてないんじゃなく知らないだけだろ
だから「わざわざ大変な新規IF」なんて的外れなレスをすることになる
JNIライブラリを書いたことすら無さそうだし

良案と思っているものがあれば↓で提案してみたらどうだ?
https://discuss.kotlinlang.org/
鼻であしらわれるのがオチだが
2017/07/11(火) 02:41:16.53ID:HQt0YaW2
言語なんて色々あるんだから自分の好きなの選んだらええんやで
Androidに正式採用されてから一気に書き込み増えたな
2017/07/11(火) 03:44:11.61ID:LaLOr5GK
>>414
別にKotlinがそこまで好きなわけじゃないし、ここでKotlin/Nativeの喜劇を鼻で笑ってた方が楽だし・・・
業務でJNIを書いてたのは15年くらい前の1.3の頃だねぇ、あの頃はJNIはC++が使えなくてラッパー層の実装も面倒だった
いつからか知らんけど、JNIEnvにC++ APIが追加されててC層の実装が楽になってて数年前にビビったわ

・・・と老害なレスしとけば、論点ズラして技術論から離れた場外乱闘になって俺が飽きれるだろ
2017/07/11(火) 11:50:37.31ID:HY0nK+zE
>>413
Kotlin
--
external fun sayHello();
System.loadLibrary("hello")
sayHello() // C API呼び出し

Kotlin/Native
--
import kotlinx.cinterop.*
sayHello() // C API呼び出し
// 別途、defファイル, gradleファイルを用意

Kotlin/Nativeはexternal funを宣言しないでシームレスにC APIを利用させるために、KotlinからIF構成を変えてる
external funの宣言がなくなった分だけKotlin層の記述は楽になったけど
代わりにdef, gradleが必要で、Kotlinと互換性なくて、C++ APIは呼べないという制限がある

そこまで変えるなら、頑張ってC++ API呼べるようにして欲しいなーって冗談半分で言ったら噛み付かれた
418デフォルトの名無しさん
垢版 |
2017/07/11(火) 12:19:57.03ID:UunU8BlR
プログラマの勉強しようとおもってますが、これはジャバとなにがちがいますか?
大差ないようであればこれを勉強しようおおもいます
2017/07/11(火) 12:23:20.73ID:qIknPoW2
>>418
Javaとの大きな違いは、Javaを完全に理解してる人向けで初心者向けの情報がほぼゼロという点
2017/07/11(火) 12:38:05.79ID:TEHQIMDt
ObjCというマイナーで黴の生えた言語がiOS開発入門の障害になっていたところに現れたSwiftとは違い、
Javaは開発者ならはっきり言ってできて当然なので今後も初心者向けの情報の充実は望めない
2017/07/11(火) 12:44:27.43ID:nZ299llH
Android入門は今後kotlinベースになるだろ。
2017/07/11(火) 13:43:49.66ID:6GA6X5kA
それ頼む。javaのライブラリに依存すると言ってもandroid似関係するのはごく一部でしょう?
フルセットのjavaを学ぶ必要ないよね
2017/07/11(火) 14:41:08.33ID:poL23Q4e
>>418
Kotlinは話題になってはいるが「Java言語を使いこなしている人がその知識を使うと楽に書ける」ので好評を得ている
Java言語を全く知らないのであればKotlinはむしろ二重三重の習得障壁があるので勧められない
なにするかもぜんぜんわからないし現実世界で聞ける師匠もいないというのならJavaでいいんじゃないかな

JavaなしでのKotlin学習術というのは数年したら出てくるとは思うがそれはKotlin本体の充実も待たねばならんのでしんどい
2017/07/11(火) 15:36:02.36ID:HBLQ2eVf
>>417
随分トーンダウンしたなw

>Kotlin/NativeのNative I/FはC++に対応してないようだし
>後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
 ↓
>頑張ってC++ API呼べるようにして欲しいなーって冗談半分で言った

そもそもKotlin(JNI)との互換性の話にC++は関係無いだろう
JNIでもエクスポートする部分はextern "C"なんだから
2017/07/11(火) 17:16:47.08ID:U4fTHQuQ
おう、そうだなw
それでKotlin/NativeのIFの話はどうした?論点ズレてんよ
2017/07/11(火) 18:38:24.21ID:HBLQ2eVf
>>425
日本語が不自由なのか?
「Kotlin(JNI)との」と書いているんだが
2017/07/11(火) 21:08:20.35ID:k/zCsCNx
僕Javaはちょっとしか使ったことないLisperだけど、Kotlinサクッと学んでAndroid開発してるよ? 難しくないよ?
2017/07/11(火) 21:13:00.00ID:xWYiv0j+
LISPerが書くコードとか他人が読めなそうやな
2017/07/11(火) 23:22:21.14ID:rvrzGERi
>>423
javaのエコシステムが学習障害なのかな。歴史がある分根深そう
gladleとかいうタスクランナー用に専用言語あるんだっけか
2017/07/11(火) 23:23:35.24ID:rvrzGERi
swift、typescriptと触ってoptionalが無い言語は正直触りたくなくなっとる。
2017/07/12(水) 06:26:01.18ID:HQm2gXhD
>>418
Kotlin = Java + Groovy

Javaのオブジェクト指向に、Groovyの関数型を付けたもの。
クロージャを多用する

まずこの本で、Javaとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、
プログラミング GROOVY、2011
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
2017/07/12(水) 06:44:11.99ID:Tu2UL3Q1
KotlinはGroovyはあんまり関係ないだろ
機能的にはC#をリスペクトしていて、文法はScalaを簡略化したもの
2017/07/12(水) 08:03:32.77ID:LUkpq5Wd
>>432
さわっちゃだめよ
2017/07/12(水) 08:14:26.72ID:Tu2UL3Q1
C#の思想でScalaを再設計した感じだな
2017/07/13(木) 00:38:10.55ID:uHqOeG/1
メソッドの最後の引数にクロージャを書いて、
そのクロージャの中のメソッド呼び出しの最後の引数にクロージャを書いて・・・
って感じの記法でDSLを作れるのが ruby から groovy 経由で kotlin に引き継がれた特徴かね?
gradle の build.gradle みたいな奴ね

これを引き継いでる関係で build.gradle を kotlin で書けるのがもう実装されてる
Androidのレイアウトを kotlin のこの DSL 記法で書けたりもするね
2017/07/13(木) 01:28:56.84ID:JW4C8wb9
>>435
その辺はほぼScalaだよ
2017/07/13(木) 10:30:47.12ID:9URTCQsI
最近の言語はどれもよく似てるだろ
Swiftにも似てると思ったし
2017/07/13(木) 10:37:01.80ID:FzpRErWm
>>436
そりゃあscalaは何でもてんこ盛りだから同じことできるだろうけど、
公式がGroovy-styleって言ってるんだよね

Type-Safe Groovy-Style Builders
https://kotlinlang.org/docs/reference/type-safe-builders.html
2017/07/14(金) 05:04:39.07ID:SOKcdYDj
>>437
Swiftより古い言語なんだよなぁ…
2017/07/14(金) 09:50:43.08ID:tqlcOT7v
>>426
> そもそもKotlin(JNI)との互換性の話にC++は関係無い
KotlinとKotlin/NativeでNative I/Fを変えるなら、Kotlin/NativeでC++ APIをシームレスに使いたい、けど実現しないだろうねー
って笑い話をしてるのに、JNIEnvがーとか、JNIやったことないだろーとか関係ないこと言い出した子に言われても・・・
素直に、clangに依存するrustと違って、kotlin/nativeは特定C/C++コンパイラに依存しない選択をしたんだ、で良いだろうに

SwiftがKotlinのOptionalをパクったって、それ一番言われてるから
ここ10年の新興言語はお互いにパクリあってるからもう何が大元か分からなくなってるよね
2017/07/14(金) 11:53:31.95ID:JnCMaGHk
>>440
実現していないことに対し「しょっぱいなぁと思う」「ショボい機能」と罵ることと
「けど実現しないだろうねー って笑い話」というのは
お前の中では同程度の表現なのか?
2017/07/14(金) 11:59:48.94ID:JnCMaGHk
>>440
I/Fの話というだけで、JNI踏襲とC++対応は別々の話で関係無いだろ?
だから>>371に対しての>>372は改行で分けている

>>417といい、そのレスといい何故混ぜて話そうとするんだ?
「JNI踏襲するか、しないならC++対応」という思考のようだが
どちらも愚案だと言ってるだけだぞ

外部ツールとしてC++→Kotlinの変換ツールなら否定しないが
2017/07/14(金) 20:37:24.56ID:F62iti5K
>>441-442
> 「JNI踏襲するか、しないならC++対応」という思考のようだがどちらも愚案
うむ、後者は出来ないし、しないだろうからなw
前者は出来なくないだろうけど、仕様乱立(>>367)してでもCをシームレスに呼び出せるのがクールだと思ったんだろうね

「JNIを踏襲せず、C++に対応せず、Cをシームレスに呼び出せる」という現行仕様を両手あげて歓迎しない限り収まりそうにないね
Kotlin/Nativeの微妙な現行仕様を笑ってたけど、あなたの現行仕様に対する信仰が分かったので取り下げるよ
宗教は理屈じゃないと、ObjCでも散々言われているのを知っているのだ
2017/07/15(土) 08:38:17.95ID:HFaGoOZi
最後まで技術的な話が出来ない奴だったな
>>396-397で説明したのに「C++(ソースレベル)」と「CのABI」が
並べて書けるものでないことも理解されなかったようだし
まぁ取り下げたならそれでいい
445デフォルトの名無しさん
垢版 |
2017/07/15(土) 13:44:47.75ID:KAmmMYRz
>>438
そのBuilderだけの話だろ。
ここだけ取り出して、Groovyベースとか言っちゃうのはイカレてる。
2017/07/15(土) 23:24:57.48ID:5uf8kOgL
第2引数のラムダ式を、引数の外に出せる、糖衣構文あり

関数(引数, { it })
関数(引数){ it }

確か、Groovy, Gradle も同じだったか
2017/07/16(日) 00:40:29.56ID:mqalEvhx
クロージャ以外の実引数を省略して
関数 { it } とかも書けるよね

まあたしかscalaも同じことができるんだが
ruby、groovy では特に好んでこの形式を使ってDSLを作ったり
文法の拡張的な感じに使う

kotlin ではこれをさらに効率的に使い倒すために
上記のように使う関数の定義に inline という指定ができる

https://kotlinlang.org/docs/reference/inline-functions.html

引数にクロージャをとるけど、
実際にはクロージャを使わない形にインライン展開される
2017/07/16(日) 06:49:43.02ID:ZSYh3+ww
あとはコンパイル時処理があるといいな
2017/07/18(火) 08:52:46.31ID:Ttzd9ReG
Java8でもlamda構文はコンパイル時にインライン展開されるよ
2017/07/23(日) 20:14:23.56ID:5U3qvpGz
一瞬不相応に盛り上がったけど「将来性は高いが現時点ではJava利用者向けのベターJavaである」ということが周知されて落ち着いたな
よかったよかった
451デフォルトの名無しさん
垢版 |
2017/07/24(月) 10:25:57.37ID:d8RjP+27
スッゲー上から目線の総括にワロタwwww
2017/07/25(火) 02:00:55.92ID:UzXdgK41
Android公式の言語になって悔しい奴も居るんだろう
2017/07/25(火) 06:18:37.30ID:5XPEt11J
oracleが噛んでる時点で終わりの始まり。
solarisとかね。
2017/07/25(火) 07:07:22.80ID:BBsjcCUe
WorkStation, MySQL, OpenOffice...う、頭が...
455デフォルトの名無しさん
垢版 |
2017/07/26(水) 10:30:04.80ID:VR8TYjgB
IDE使わずに複数のファイルにコードを分割したときにどうやってコンパイルしてから実行する方法を教えてください
これはだめでした
kotlinc a.kt b.kt
kotlin AKt.class BKt.class

■a.kt
fun main(args: Array<String>) {
name()
}

■b.kt
fun name() {
println("Name?")
}
2017/07/26(水) 11:06:32.93ID:M5MsN9/+
kotlin -classpath . AKt
ではどう?
2017/07/26(水) 11:07:19.20ID:M5MsN9/+
あーあとjar作ってもいいし
458デフォルトの名無しさん
垢版 |
2017/07/26(水) 11:40:00.85ID:VR8TYjgB
できました!どうもありがとうございます
2017/07/27(木) 08:44:41.76ID:ol3Ji14g
KotlinがAndroid Studio公式サポートになって悔しい、ムキー
ってなるのはGoMobileユーザくらいか?実在するか分からんレベルな実用性だけども
2017/07/27(木) 09:33:07.79ID:Spup3DD1
その件で主に煽られてるのは主にScalaユーザーじゃね
彼ら自身はこれまでScalaの筋の悪さと付き合ってきて、なぜKotlinなのかをある意味一番よく理解してるから
反発する奴は少ない印象だけど
2017/07/27(木) 09:49:55.47ID:ol3Ji14g
Scalaって今は亡きJ2EE Servletに対抗する化石ソリューションでKotlinと全く関係ないんじゃないの
流石にあれは関係ないから反発も何もないと思うぞ、関係を探すなら同じJVM言語ってくらいか?
2017/07/27(木) 22:48:26.51ID:q/d1LfH4
実際にScalaでAndroidアプリ作ってた奴も居るし、Androidが出るまではJVM言語はおろかJavaすらあんまり積極的に使われてなかったしな
もともとKotlinよりはScalaの方が有名だったし、JVM言語としては悔しいだろうよ
2017/07/27(木) 22:52:33.46ID:qe1/bFe6
scalaよりkotlinが優れてるところなんてないやろ
464デフォルトの名無しさん
垢版 |
2017/07/27(木) 23:36:19.26ID:ZxLGu3dd
javaなんて覚えられそうにないからkotlin学習しようと思ってるけど
記述量が減るのは優れているとは言えませんかセニョール
2017/07/27(木) 23:57:49.40ID:0y0CpLqK
小さなソースコードが高レベル言語の目的であり、力がその目的をどれだけうまく達成できるかというものなら、
プログラミング言語の力を測るには、それがプログラムをどれだけ小さくできるかを見ればよいということになる。

逆に、言語がプログラムを小さくしないのなら、それはプログラミング言語の役割をちゃんと果たしていないということだ。
切れないナイフとか、読めない印刷とかと同じだ。

ってポールが言ってた
2017/07/28(金) 05:37:58.09ID:H2JBSSoH
>>462
そりゃScalaはサーバサイドJavaにおいて歴史があって、組み込みJavaはAndroidが出る前は落ち目だったからだろ
お前のレスはKotlinユーザは全く別の土俵のScalaにコンプレックスを持ってんだなって感想しか出ないぞ
2017/07/28(金) 13:00:03.02ID:QPanRF+L
listをfor文で回す処理を書いてるんですが、
for(data in some_data?.datas!!) {
}
ってなって、datasの後の!!を消したいんですがどうするべきなんでしょうか
2017/07/28(金) 13:39:12.54ID:k8WFShoV
some_data?.datas?.forEach { data ->
}

こうかな
2017/07/28(金) 13:48:48.64ID:QPanRF+L
>>468
できました!ありがとうございました!
2017/07/28(金) 21:34:18.74ID:8b7/0WjD
>>466
悔しいのうw悔しいのうwww
471デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:54:39.65ID:GOfdf3yM
Javaに挫折したPHPの経験しかない初心者なんですけど
kotlinの勉強する場合の王道の本を教えてください
2017/07/28(金) 22:02:07.02ID:PUrhlE/b
>>471
KotlinはJavaをマスターしてる人がちょっと便利なJavaとして齧るもので、基本的にWebで十分
まずはJavaをマスターしてきなさい
2017/07/28(金) 22:17:54.83ID:zVVm7Ell
なんか勘違いしてるみたいだけど、そもそもKotlinはJavaに沢山の機能が足されていてJavaよりずっと複雑で難解な言語だぞ。
敷居の低い言語というイメージがあるのは、Javaができる人にとってストレスなく入れる言語であり、プログラミング自体の初心者がほぼ皆無だから。
Javaを学べばそれは全てKotlinでそのまま活かせるんだから、幻想は捨ててまずJavaやったほうがいい。
2017/07/28(金) 22:23:58.60ID:z1qsdhOb
本などで勉強しようとするから挫折する
言語を身に付けるにはコードを書いて読む以外に道はない
2017/07/28(金) 23:13:12.64ID:wSdfWqng
まずこの本で、オブジェクト指向をみっちり学ぶ
1. スッキリわかる Java入門 第2版、2014

2. たのしいRuby 第5版、2016
3. Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

この順番が最短。
2を省くと、関数型プログラミングが分からないので、必要
2017/07/29(土) 00:10:16.43ID:W96Wekxi
AndroidStudioでJavaコードをKotlinに変換する機能を使ってKotlinのコードを生成して内容を見てると分かった気になってくる
2017/07/29(土) 00:50:30.28ID:DIZfrj77
むかーしjavaをちょっとやってたけど
そんなに癖がない言語だよねjava自体は。
必ずクラスを挟まないといけないから無駄に書くコードが多いくらいだよね。そんな認識の人間ならkotlin
触り始められます?
2017/07/29(土) 03:36:29.97ID:W96Wekxi
KotlinはどちらかというとJavaよりもC#に似ている
2017/07/29(土) 07:41:06.02ID:sH/xP+7Q
ScalaはKotlinの発展を悔しがるくらいに類似性があるらしいからScalaをやったことあると尚良し
結局どこに悔しがる要素があるのかサッパリ分からんかったけど
2017/07/29(土) 12:46:08.39ID:DY1QEEX5
javaアンチパターンとkotlinベストプラクティスのセットって、どっかに無いの?
2017/07/29(土) 13:01:26.70ID:JySrTbDn
Kotlin自体に関しては、他の現代的で使いでのあるプログラミング言語と比較して何か特別に学びにくいということはない
じゃあどこに壁があるのかというと
・公式の説明やマニュアルですら「Javaでいうところの○○」「動作詳細は以下のJavaプログラムを参照」のようにJavaの習熟者を対象にしている
・現状唯一の日本語本であるスタートブックすらJavaである程度の規模のプログラムを組んだ経験を前提としている
・そんな人たちが作る公開ライブラリはもちろんJavaの(類似ライブラリの)知識が前提の用法・動作説明である
というようなあたりにある
別にこれが非難すべきものだとは全く考えないのだが(これらを部外者に解説しようとすると何冊分ものJava基礎と応用を自前でゼロから解説する羽目になるため)、
単に想定対象者以外には苦難の道であるよとは伝えておきたい
「英語で書かれたマニュアルしかないから英語読めないと辛いよ」と同じような感じで
「Javaで書かれたマニュアルしかないからJavaできないと辛いよ」というやつだ
2017/07/29(土) 13:13:06.22ID:VZ2r/0rx
解説がJavaだけでなく全体的にC#/ES6(&TypeScript)/Scalaあたりの「C+F系」の経験者を意識してるのも初学者には優しくないポイントだろうな
その辺の経験がある人だとKotlinは非常に素直で分かりやすくて
資料も経験者向けに要点を押さえて作ってあって手早く学べる、とても敷居の低い言語なんだけどね
2017/07/29(土) 13:59:26.36ID:7KFbni30
初学者向きではないってのはネックですな
2017/07/29(土) 16:36:34.64ID:U9LihKmk
>>71
ガイジ晒しage
2017/07/29(土) 17:17:33.51ID:W96Wekxi
Null安全型はいいよね
486471
垢版 |
2017/07/29(土) 20:15:51.81ID:DdYvAide
2ちゃんのjavaスレが荒れててあんまり回答貰えなかったからkotlin選んだようなものなんですが
心を入れ替えてjavaから勉強します
先輩方どうもありがとう
2017/07/29(土) 20:26:38.68ID:DIZfrj77
他の言語に精通してたらjavaって何か勉強必要な言語?
interfaceとかわかってればいいんでしょ?
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にして当該メソッドを呼ぶ」というメソッドを作ってそっちを使うようにする
具体的にどういうことをしたいときなのか言うと案外別アプローチあるやもしれず
2017/09/07(木) 18:50:45.76ID:dJGmlTPD
拡張プロパティで短縮

val Byte.i:Int get() = toInt()

fun f(b:Int) {
println(b)
}

fun test() {
val b:Byte = 100
f(b.i)
}
2017/09/07(木) 21:28:09.40ID:wVi6dnoF
>>586は何気にbytecodeにコンパイルすると最速処理に最適化されるのではと悩む
val b:Byteはクラス型じゃなくプリミティブ型intに置換されて、+0は無意味な処理として削除される的なね

toIntoをメソッドとしてコールするようなオーバーヘッドは無いに越したことはないよねー
2017/09/07(木) 21:37:35.68ID:10GmZssK
class MainActivity : AppCompatActivity() {
  fun func(value: Int) : String {
  }
}

: の前って空白をいれるべきなんでしょうか
入れないでおくべきなんでしょうか
クラスの継承の時だけ入れるべきなんでしょうか
2017/09/07(木) 21:52:37.07ID:La56k81V
>>590
https://kotlinlang.org/docs/reference/coding-conventions.html#colon

interface Foo<out T : Any> : Bar {
  fun foo(a: Int): T
}

これ以外の書き方は公式規約に則らないスタイルとなる
むろんそれを押し通してもよいが
592デフォルトの名無しさん
垢版 |
2017/09/08(金) 10:15:45.38ID:IL9yY2pX
関数定義の時はコロン前の空白無しって感じか
593デフォルトの名無しさん
垢版 |
2017/09/09(土) 05:04:55.71ID:/lYAOhx7
>>589
それはオーバーヘッドが出ないように最適化されるのかどうかに掛かっている。
2017/09/09(土) 18:18:44.00ID:8E3FMuHj
>>593
後から思い直したけど、メソッドfがByteクラスというクラス型を受け取る以上
val b:Byte = 100
b+0
までをプリミティブ型に最適化する超絶賢いコンパイル処理がなされても
f(100)
でintからByteへのインスタンス生成が必要だからJVM上の最小限コストにはならぬ
小賢しく汚いコードの割に最大効果が得られるわけでもないから微妙だわ
2017/09/09(土) 21:51:29.93ID:fgzL7F9C
>>594
f(100)と書いたならコンパイル時にインスタンス作ってコンスタントプールに入れられるから実行時の無駄はないのでは?
2017/09/09(土) 23:45:06.02ID:8E3FMuHj
# メソッドfが受け取るのはByteじゃなくIntだったorz

>>595
プリミティブ型byte/int 100はコンスタントプールに乗っかるけど
クラス型Byte/Int 100はコンスタントプールには乗っからないから
メソッドf呼び出し時のint to Intのインスタンス化コストは回避できてなくね?
メソッドfが受ける型をJITやクラスローダーが書き換えないと無理ぽ

どうやったってJava相当まで最適化できないんだから
全部Intにするなり拡張プロパティ使うなり、好きなように実装して良いと思った
2017/09/10(日) 01:33:16.68ID:3lFSiHDa
乗らないか。じゃあダメだな。
まあでもそこまで最適化するようなコンパイラができればできるということでもあるので何とも言えんな。

それとプログラマが最適化を考慮してコード書くってのは、まるで昔のC言語のようで、かなり変な状態だとも思える。
現実問題としては効率を上げるためにはそうせざるを得ないが、本来であればそれはコンパイラがやるべき仕事であり
人間がそういうことから解放されないのはまだ技術力が足りないからだ。
2017/09/10(日) 11:34:35.85ID:tQxxVHdc
100は例なだけでtoInt云々の文脈では定数でなく変数でしょ

KotlinのByte/Intはオブジェクト型が必要なとき以外はプリミティブ型になる
さらにJVMのスタック上でbyteはintサイズで置かれてる
 ※例えば引数の2つのbyte型の加算は「iloadでint変数として読み込み x2」「int加算」「i2bでbyte表現に切り捨て」「istoreでintとして保管」になる

なのでtoIntはバイトコードレベルではメソッドコールどころか変換命令すら無く消滅する
+0や拡張プロパティはバイトコードに残るけど多分Dalvik JITやARTが消すんじゃないかな
599デフォルトの名無しさん
垢版 |
2017/09/10(日) 23:39:27.48ID:Aa/cPztt
0〜127 なら、最初から、EXE の静的データ領域に入っているから、

インスタンスも作られないから、何も考えなくてよい
2017/09/11(月) 01:06:11.35ID:TB0SwtSd
やっぱそれなりに最適化されるのでほとんど考えなくて良いということかな
2017/09/11(月) 07:19:36.53ID:RCvV23l8
Javaほどではないが、それなりには最適化されるから考えなくて良いよ
2017/09/11(月) 09:40:07.36ID:vJ3AiMg+
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK)  プログラマーズ
2017/09/14(木) 14:48:20.23ID:ZrYTexa1
Kotlinを使えば使うほど、Kotolinってええ言語やなと思う
サーバーサイドでも使われているようだし、この言語はやる価値があるね
2017/09/14(木) 14:51:31.85ID:ZrYTexa1
Kotolinのデメリットって何かある?
全然見当たらないんだけど
2017/09/14(木) 15:24:33.82ID:fvkkQJHv
>>604
マクロがない
2017/09/14(木) 15:35:41.46ID:EfU1+ylv
>>604
動的ではない

どちらも適材適所、釘にはトンカチレベルの話だが、デメリットとして挙げるなら
2017/09/14(木) 17:42:44.76ID:wsl9UgI1
>>606
ランタイム(kotlin.jar)が実行に必要
2017/09/14(木) 17:43:11.05ID:wsl9UgI1
安価間違えた、スマン
2017/09/14(木) 17:48:14.60ID:fvkkQJHv
動的言語のメリットってないだろ
型推論あるし
2017/09/15(金) 10:44:48.01ID:VHxNrIHu
>>604
javaの知識が前提
611デフォルトの名無しさん
垢版 |
2017/09/15(金) 11:20:35.63ID:t0O3AeYk
>>604
言語自体のデメリットではないかもしれないが、
IDEの選択肢がない・開発補助ツールなどが未発達。
2017/09/15(金) 18:58:50.23ID:Tu1mqslW
>>610
コレはでかい。正直この知識を簡単に獲得する方法あるの?
kotlinからjavaの世界に入る方法を知りたい。
613デフォルトの名無しさん
垢版 |
2017/09/15(金) 21:05:06.50ID:iYxiAtrq
そういやJavaの知識なしの人向けの入門書はまだないのかな?
なくても流行ればその内出そうだが。
2017/09/15(金) 21:11:43.49ID:pJQDrUz2
groovyよりは期待できるの?
2017/09/16(土) 07:58:31.08ID:AcW1bn43
Javaって一番メジャー言語だから
情報が溢れてると思うんだが……
マイナー言語の苦しさに比べたらはるかに楽
2017/09/16(土) 08:06:32.31ID:wHRqrpim
Javaを既に知っている者ならそうだろうな
Javaを知らずにKotlinやると、KotlinとJavaを並行して学習することになるから面倒だって話だ
2017/09/16(土) 09:13:19.33ID:dqmaxFWN
kotlinはJavaのスクリプト言語みたいな立ち位置だからな(コンパイル要るけど)
Java入門が巷に溢れているがゆえにKotlin+Javaの書籍は出しにくいかもしれん
それにしたとしても時間が解決していくではあろう
2017/09/16(土) 09:53:29.49ID:64cU0LXO
Kotlinで開発してたとして、具体的にどういうときにJavaの知識が必要になるんだろう?
JVMに関してなら「言語+実行環境」だから他の言語と変わりないし
Javadocのシグネチャくらいで困ることは無さそうだし

多分、解説書く側も「何が分からないのか分からない」状態になってるんじゃないかな
619デフォルトの名無しさん
垢版 |
2017/09/16(土) 10:25:55.20ID:7CqADWEJ
>>607
JSもJVMもランタイムがいると思うけど、このランタイムってApache2.0ライセンスなのかな?
だとしたら、同梱した場合、表示が必要になるんだっけ?
2017/09/16(土) 10:55:31.44ID:9wmYZqGr
>>618
こういうことをJVM上でやりたいなぁって思った時に、Javaでの実装手法を調べてKotlinで読み換えるわけだろ?
その時にまずJavaの全般的な知識(文法, ライブラリ)を浅く広く手に入れる所から始まる
次に、JavaからKotlinに読み換えるために文法/ライブラリの在り様を深く理解してから適切なKotlinコードに書き下す
JavaとKotlinの生半可な知識だけでJavaコードを参考にKotlinコード書くと、汚いKotlinコードになるよね

なので、絶賛Javaを再勉強中・・・Java1.5の頃の知識で止まってるからイマドキのJavaが分からない
java.langとかNIO2とかを使ったコードをKotlinでいきなり書こうとしたら何か違う感が酷くてやめちまったよ
2017/09/16(土) 11:21:42.95ID:QlT8cqjN
他の言語を知ってれば要はリファレンスとjava特有の注意事項があればいいと思うの。
文字列組み立てにはStringBuilder使えみたいなの。

そういうの無い?
2017/09/16(土) 11:42:24.85ID:zsfdrVgC
android studioってkotlinのプロジェクトにjavaのコードを貼り付けたらkotlinに変換してくれる神機能があるから
泥開発する時にネットで拾ったjavaのコードをペタペタコピペプログラミングするだけでも勉強になる

javaもkotlinも知識皆無の状態でkotlinで泥アプリ開発に取り組んだら見様見真似で簡単なアプリ作れた
ある程度コピペしてたらjavaのこの書き方はkotlinではこう書きそうっていうのがなんとなく察せてくるからandroid studioの補完を頼りに写経したりする

javaも知らないけど新しく言語の知識学ぶなんて面倒くさいからヤダ!知識皆無だけどすぐ何か作りたい!hello wordとか練習問題みたいなの書いても面白くないからモチベーションわかない!すぐ作りたい物作りたい!って場合は
ネットのサンプルと強力なIDEの支援を頼りにコピペ写経するのが効率よさそう
(外国語ができなくても海外でしばらく生活したら知識的に習わなくてもだんだん喋れるようになる理論)
2017/09/16(土) 12:49:19.86ID:64cU0LXO
>>620
Kotlinで書かれたサンプルコードが少ないってこと?
それについては自動変換で対応するか、Kotlinが広まってサンプルが増えるのを待つしか無いか
2017/09/16(土) 12:50:15.30ID:64cU0LXO
それと思ったのはKotlin・・というよりプログラム初学者は
言語仕様、ライブラリ、プラットフォームの知識がごちゃ混ぜになってるのかも

「Java言語仕様の知識前提」の場合はデメリットだけど、後者2つはそうではないんだよね
ちゃんと切り分けて教える必要があるのかもしれない
625デフォルトの名無しさん
垢版 |
2017/09/16(土) 15:17:58.69ID:iyhV3x2n
>>620
一々Javaで考えてからKotlinに読み替えるのではなく最初からKotlinで考えればいいのでは?それは出来ないの?
2017/09/16(土) 15:51:26.67ID:zchkTGlK
前途洋々たる人にJavaを教えたいかというとそうでもない、しかし現状kotlinにはjavaの知識がいくらか必要というジレンマ
2017/09/16(土) 17:15:31.02ID:k4zUo1jM
自動変換はマジで神機能だな
2017/09/17(日) 09:11:08.18ID:e3nYUfGU
kotlin変換はスニペット単位で変換挿入できれば初学者サポートとして文句ないんだけど
まあ高望みしても仕方ないなw
2017/09/17(日) 09:16:06.15ID:s1Tpc6AU
Kotlinを使い始めるのにJavaから始めないといけないのも高望みだから仕方ない
JVMとJava LibraryありきなんだからJavaを知らないで何が始まろうかと理解している
2017/09/17(日) 10:57:51.48ID:iGeioDqi
>>628
騙されたと思ってandroid studioでkotlinを開いてそこにjavaのスニペットをそのまま普通に貼り付けてみ
2017/09/17(日) 12:20:57.80ID:QcEs4Olk
>>628
できるぞ
2017/09/17(日) 20:10:21.20ID:881Zhju6
kotlinというかIntelliJはなにかにつけてUnresolved Referenceで発狂して真っ赤になるのを潰していかんといかん
全部自前のkotlinファイルとパッケージだけで構成すれば絶対に起こらん事象だが、そんなのは稀だ
2017/09/17(日) 20:33:40.63ID:8Aq7R6E2
>>632
あれはライブラリ作者とプラグイン作者が7割くらい悪い
提供されるテンプレートでjavaパッケージのimportの不足(しかもbuild.gradleに依存関係未記述)とか勘弁して欲しい
ていうかこれ作者のとこではどうやって動いてたんだ…
2017/09/17(日) 22:18:35.53ID:hEJjpySw
>>633
TornadoFXでえらい苦労した記憶がある
無論使うのやめた
Androidのほうがまだきちんと動くw
2017/09/18(月) 21:46:47.81ID:KEjrNeQk
昔のEclipse環境下開発みたいなトラブル起こしてんなw
libs/*.jar と .classpath をコミットしてなくて、ライブラリ実装者とライブラリ利用者で環境が合致しないとかよくあった

build.gradleで依存管理してないなら、libs/*.jar と .idea/ で管理してるんじゃないのかね
ビルドできねーよってIssue発行して、build.gradleで依存管理するように直してもらおうぜ(Kotlinと全く関係ない話題
2017/09/19(火) 01:56:04.30ID:q5GM4Sdx
TornadoFXは面白そうだなと思って手を付けた瞬間
・TornadoFXのDSL記法では思った通りに動作しないがJavaFXでは動く
・JavaFXではうまく動かないがswt直呼びでは動く
・JavaのGUIアプリケーションではあまり得意ではない
の3者が混然一体となってGUI初心者に襲いかかってきた荒野の印象しかない
GUIやるのさぼってきたツケもあるしkotlin関係ないけどな
637デフォルトの名無しさん
垢版 |
2017/09/19(火) 02:57:40.00ID:33S+M35U
FXには手を出すなって死んだばっちゃが言ってた
638デフォルトの名無しさん
垢版 |
2017/09/19(火) 03:13:01.72ID:NsD/KMp/
HTTPプロトコル受けるようにして、GUIはHTMLとjavascriptでブラウザ任せでやる方がいいんでね?
2017/09/19(火) 11:33:34.11ID:yNuGs4H1
とるねーどFXのDSL記法は初心者の「こうかな?これなら動くかな?」という学習の試行錯誤を念入りに潰してバグに変えるプロ
設定記述手法以外のDSLなんてまあたいていそんなもんだが
どうしてもPCでGUI欲しくてなにもわからない最初ならJavaFXにするのがよいよ
2017/09/19(火) 23:03:32.67ID:yNuGs4H1
>>630
IntelliJではできんことのほうが多いね
完動するJavaのクラスのファイルとかそういうでっかいのか意味のあるわかりやすい小さいやつとかじゃないとまず無理
それでも便利だろうという指摘はもっともだが
2017/09/20(水) 00:55:44.49ID:yi4mI7ko
tornadoFXで丸1日悩んでいたことがJavaFXでは1時間でできたなんていう笑い話が…
別にこれに限った話じゃないけど、今から何か始めたいって人は「kotlin対応新鋭フレームワーク!」みたいな宣伝には騙されずにJava製のでいいからメジャーなやつを選ぼうね
たいていkotlinでの書き方みたいなのが公開されてるからそれで充分さ
2017/09/20(水) 12:49:45.18ID:UnWC6mNR
画面はWebView(JavaScript連携)でいいよ
2017/09/21(木) 00:08:50.00ID:fijEecfV
そこそこの長さの文字列をわかりよく文字列のリストにする方法ってないですか
"ABCDE".toList()だとCharのリストになってmapとか繋げて変換がいります
"ABCDE".split("")だとなんか7つのリストになります
文字境界の正規表現を指定すればいいような気もしますが探せませんでした
644デフォルトの名無しさん
垢版 |
2017/09/21(木) 03:27:44.93ID:AcIIQNEl
>>643
"ABCDE".split("(?=.)") ではどうか?
2017/09/21(木) 11:28:55.55ID:fijEecfV
>>> "ABCDE".split("")
[, A, B, C, D, E, ]
>>> "ABCDE".split("").size
7
>>> "ABCDE".split(Regex("(?=.)"))
[A, B, C, D, E]
おお、ありがとうです
しかしありそうでないのねStringで分けるやつ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/09/21(木) 13:35:52.21ID:mLLoqbOf
>>645
"ABCDE".map { it.toString() }
これおすすめ
2017/09/21(木) 21:11:04.25ID:fijEecfV
だからそれだとStringをCharにしてからStringにするという手間がかかっ

for(int var6 = 0; var6 < var5.length(); ++var6) {
char item$iv$iv = var5.charAt(var6);
String var13 = String.valueOf(item$iv$iv);
destination$iv$iv.add(var13);
}

…ってなかった。最近の言語のコレクションのmapとかあのへんのメソッドは空気を読んでて困る(えらい)。じゃあこれにします
2017/09/23(土) 03:05:43.18ID:LuIx8rlF
Kotlinは配列というかリストになんか入れるとエラーで二度と引き出せなくなるのが嫌
何か不都合があって引き出せないのなら最初から弾いてくれ
2017/09/23(土) 06:21:39.07ID:iHkIwIdJ
意味がわからん
2017/09/23(土) 09:46:44.92ID:X9FmtUo8
つmutableListOf
2017/09/23(土) 09:47:52.09ID:X9FmtUo8
いや意味がわからんな
2017/09/23(土) 10:14:30.20ID:Fr4ObNsJ
あのへんは型とか継承とかの理解きちんとしてないとちょっと複雑なの入れたときものっそいエラーになるよ
適当に書いて適当に使ってると動くと見せかけていざというとき詰まる箇所ベスト3に入ると思う
2017/09/23(土) 10:59:53.99ID:BNc4tUhk
具体例があると話も広がりそうだけどイメージがわかない
2017/09/23(土) 13:45:04.86ID:HgJ0Nznd
コレクションって色々種類があって、
問題によって適切なクラスを選ぶべきとか言っていたくせに
mutableListはmutableListしか種類ないし、それで別に問題がないってどういうことだよ
フィールドもprivateにしてsetter, getterからアクセスしろとか言っていたくせに
プロパティアクセスは実質フィールドをpublicにしているのと変わりないじゃねえか
その他、継承は良いことだからたくさん使って活用していこうとか言っていたくせに
openをつけないと継承できなくして、実質継承は推奨しないみたいになってるのなんなん
嘘ばっかり言いやがって
655デフォルトの名無しさん
垢版 |
2017/09/23(土) 14:17:09.35ID:8bsZ0VcP
>>652
「のっそい」って何処の方言?沢山って意味?
2017/09/23(土) 14:32:54.88ID:Ok7b72Pt
>>654
いろいろ勘違いしててどこから突っ込めばいいのやら
2017/09/23(土) 15:29:22.72ID:vuIl3Vgh
プロパティアクセスは、publicなフィールドへのアクセスと違って、
setを制限してgetだけにできるし、
setするときの値チェックなんかもできるし、
privateフィールドをsetter/getterでアクセスする利点はそのままに、
使うときの表記をシンプルにしてくれる
2017/09/23(土) 15:29:38.76ID:vuIl3Vgh
継承するよりコンポジションしてアクセスを転送する方がいいっていうのは
もうオブジェクト指向では定説
2017/09/23(土) 15:37:14.57ID:vuIl3Vgh
ミュータブルなコレクションに厳密な静的型チェックを適用としようとするのはいろいろ限界がある
Javaでは厳密な静的型チェックを放棄して使いやすさを優先してる
2017/09/23(土) 15:40:52.48ID:JwqPmi7Z
今更だけど、StringをStringリスト(配列)にするってクッソ馬鹿っぽいな
Stringをnewするのも重いし、確保したメモリをGCで回収するのも重くなる

「StringをCharにしてからStringにするという手間」とか言うならChar配列で扱えというね
String配列扱うくらいに性能を考えないなら、当初の通りに#toList #map使っててもおkだろ
2017/09/23(土) 16:00:34.34ID:BNc4tUhk
>>654
>mutableListはmutableListしか種類ない
意味がわからない
大枠でList, Set, MapなどがあってLinkedHashMapとSortedMapは順序制御が違うし
ArrayListとLinkedListは追加削除のパターンによって計算量オーダーが異なる

>setter, getterからアクセスしろとか言っていたくせに
構文が理由ではない
>フィールドをpublicにしているのと変わりない
構文が変わりないだけ
2017/09/23(土) 16:22:03.12ID:vuIl3Vgh
>>660
Stringがイミュータブルなら、
Stringの一部分を取り出して新しいStringを作るのはとても軽い処理でできる
その新しStringを作る仕組みで配列を作れば、それも軽い
2017/09/23(土) 16:43:59.09ID:JwqPmi7Z
COW信者乙

さておき、入れ物のStringインスタンスをnewするのはやめたいよな
中身をコピーするかどうか以前にJVM上のインスタンスの確保が重たいんだよ
そして、GCで回収して回る対象個数が増えて重たくなるのは中身のコピー有無は関係ないんだよ
664デフォルトの名無しさん
垢版 |
2017/09/23(土) 17:42:00.77ID:8bsZ0VcP
かといって日頃パフォーマンスに影響するような膨大な処理をさせてないので気にならない
2017/09/23(土) 20:38:20.82ID:3qopZopL
Kotlinの気に入らないところ
http://anopara.net/2017/09/16/kotlin%E3%81%AE%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D/
2017/09/23(土) 21:43:26.21ID:Kp7vI9MI
気に入らないところが、JavaやScalaを使い込んだ人視点で、このスレレベルからみるとむしろズレてるね
667デフォルトの名無しさん
垢版 |
2017/09/23(土) 22:33:09.90ID:lJM5VEju
>>662
そういったイミュータブルな文字列を表現するデータ構造として Rope がある
・Rope (data structure) - Wikipedia
 https://en.wikipedia.org/wiki/Rope_(data_structure)
・ロープ: 理論と実践 - IBM developerWorks / Java technology
 https://www.ibm.com/developerworks/jp/java/library/j-ropes/
・最終報告 - Ropeを用いたRuby処理系の高速化に関する報告
 http://www.spinute.org/ruby/gsoc2016/japanese.html

特に「Stringの一部分を取り出して新しいStringを作る」という
substring 操作に関しては、上記の Wikipedia のページからリンクされている
原論文(英語)の中で疑似コードを使って丁寧に解説されている

で、肝心の Kotlin 実装は知らない(汗
668デフォルトの名無しさん
垢版 |
2017/09/23(土) 22:39:08.56ID:XK13+/v0
>>641
tornadoFXのマニュアル今読んでいるところだけど、tornadoFXだめなのか...
>>642
前やってみたけど、Javascriptとつなぎ合わせるところが、ちょっと面倒だった。
型安全でもないし...
2017/09/24(日) 02:01:15.02ID:GOJB25/b
>>666
文法が気に入らないって言ってるだけでJavaやScalaを使い込んでるようにも見えんがな
JVMの仕様上、JavaやScalaの方が最適化されてるからKotlinが気に入らないって話かと思って読んだらもっと浅い話だった

Kotlinの文法が良いってこのスレは賞賛してるから論点はこのスレと合致してる
ただ、Kotlinの文法がダメって記事と、Kotlinの文法がイイってスレとで感想が真逆なだけだ
670デフォルトの名無しさん
垢版 |
2017/09/24(日) 02:17:41.07ID:vbDFNvhm
>>655
ものすごい→ものっそい
2017/09/24(日) 09:32:49.28ID:UrGEC0gh
tornadoFXはDSLのダメなとこ出てるねえってだけだから、それ気にならないならいいんじゃないかな
足りない情報は君が発信するんだ
2017/09/24(日) 10:29:34.48ID:tu0D//Rh
Kotlin は、Groovy, Scala, Ruby の影響を受けている

Ruby を関数型にした、Elixir を意識している。
関数型では、デフォルトが、immutable
2017/09/24(日) 14:15:58.51ID:q8xwt5Nv
ねえねえおにいちゃん
ミュータブルリストの先頭から要素を削除して詰める(戻り値不問)って行為をいちばんうまくできる書き方ってなあに
674デフォルトの名無しさん
垢版 |
2017/09/24(日) 14:31:53.81ID:c233uqnI
>>673
removeAt() じゃないの?
675デフォルトの名無しさん
垢版 |
2017/09/24(日) 14:32:52.09ID:c233uqnI
コマンドラインでこんな風にできたが

>>> val a = mutableListOf(1, 2, 3)
>>> a
[1, 2, 3]
>>> a.removeAt(0)
1
>>> a
[2, 3]
2017/09/25(月) 02:59:33.77ID:JjTJVibn
kotolinってc#で言うpartial classみたいなことできないのかな?
実装を分けたい
2017/09/26(火) 20:47:43.28ID:fZxiOEU0
fun main(args : Array<String>){
test(){
println("test!")
}
}

fun <T> test(body: () -> T ) : T {
println("START")
try{
return body
}
finally{
println("END")
}
}
これで
(returnの行): error: type mismatch: inferred type is () -> T but T was expected
ってエラー出るのなんでですか
まだどっかに<T>って書かないとダメですか
STARTって表示してtest!って表示してENDって表示するようにしたいんですが
2017/09/26(火) 20:59:27.36ID:zAWxdVvk
bodyは () -> T じゃん?つまり body() がTじゃん?
返り値いらないならUnit型でも
679デフォルトの名無しさん
垢版 |
2017/09/26(火) 21:19:23.18ID:rflTuAqa
println()って何か返すんだっけ?
2017/09/26(火) 21:25:08.76ID:aozsvlNo
コピペ参考でジェネリクス書いちゃう気持ちはわかる
ネットとかにある高階関数なんかのサンプルはたいていなんか小難しいパターンやってるからな
ちょこちょこ検索してみたけどシンプルなのはなかなかないようだ
というわけで顧客が必要だったもの:

fun main(args : Array<String>){
test(){
println("test!")
}
}

fun test(body: () -> Unit){
println("START")
try{
return body()
}
finally{
println("END")
}
}

超わかりやすい
681デフォルトの名無しさん
垢版 |
2017/09/26(火) 22:18:45.79ID:8E9hjYW6
>>680
それ return 書かなくても同じだよね?
2017/09/27(水) 00:00:41.38ID:u5lJ+g1P
簡素化のためにUnitを返す型をクロージャーにしてるけど任意の型を戻せるようにしたいんじゃないの
>>680は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする
683デフォルトの名無しさん
垢版 |
2017/09/27(水) 02:23:01.67ID:T8WeFZTh
>>677
return body ではなく return body() では?
2017/09/28(木) 00:26:24.46ID:iSh/X78V
前から思ってたんだけど、Kotlinって
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?
2017/09/28(木) 00:37:08.13ID:ZguEyfSR
そういうのはRubyでやれや!って煽られて終わりな気も致しますよ
2017/09/28(木) 00:42:19.80ID:iSh/X78V
くっ…
2017/09/28(木) 01:13:09.11ID:TXb2X2Zy
えーそれ言語関係なくない?
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ
2017/09/28(木) 18:33:31.64ID:Qp0jWVYU
むしろJavaだとboolean isHogeEmpty()ってメソッドを作るケースだから
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの
2017/09/28(木) 20:41:39.85ID:DhynOxwg
そうなのか?

うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。
2017/09/28(木) 21:04:34.88ID:wU4E+DpF
>>684
変数での分離で良い

一見で意味付けが分かり辛いものは変数名で説明していい
局所的なものであれば無意味にメソッド化する必要も無い
その条件式が2度出てきたときに再考する
2017/09/29(金) 08:30:52.93ID:Zb0/fBQl
あー、rubyは変数いきなり定義だし命名規則もsnake_caseで緩いし変数もメソッドも呼び出し方同じにできるし
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか
2017/09/29(金) 09:00:05.56ID:RLeXl8wr
一般的には説明変数を追加するのに比べると
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ
2017/10/01(日) 12:07:39.75ID:l76lJP+R
言語に関係ない話だと思うんだけどごめん
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら
2017/10/01(日) 12:35:40.87ID:z+KkZaZ7
データベース…
2017/10/01(日) 13:26:09.11ID:l76lJP+R
でもデータベースはメソッド生えないにゃん…
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする
2017/10/01(日) 13:29:23.37ID:sf4M11/u
つまり、どういうこと?
2017/10/01(日) 13:45:30.71ID:kJ8csjIE
>>695
アイテムごとに個別のメソッドが必要だと考えるのは抽象化が不足してるから
食べ物アイテム100個作っても食べ物クラス1個で済む場合もあるでしょ
2017/10/01(日) 15:01:31.15ID:OWvF7Xmk
むしろそれぞれクラス化するのはアクションの方で
アイテムなんて1クラスで十分じゃね
2017/10/01(日) 15:03:06.78ID:7TAdAwOu
ゲ制でやれ
700デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:06:13.80ID:4trAwtIa
>>695
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…

それの何がいけないの?
2017/10/01(日) 15:11:03.14ID:wO0rh9jl
色々用途や効果がある個々のアイテムインスタンスが対応するメソッドを持ってて自分に関することは全て知っていて
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…
2017/10/01(日) 15:24:19.98ID:z+KkZaZ7
よくわかんないけどデータベース(SQL)から(id,)name,price,weight,actionの(データ)クラスに入れてMapに突っ込むのは普通じゃね
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる
2017/10/01(日) 15:27:41.13ID:z+KkZaZ7

完全にサーバー<=>クライアント型のゲームを想定してました忘れてください
2017/10/01(日) 15:35:03.09ID:YDbLDpC/
よっぽどドラクエ2みたいなツクールサンプル的な単一用途アイテムでもない限り
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>699
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難
2017/10/01(日) 16:36:39.58ID:IPLbJXkb
薬草を使った時の処理
薬草を燃やした時の処理
薬草を売った時の処理


薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話
2017/10/01(日) 17:36:02.79ID:KiopyZMH
じゃあ毒消し草にも同じ処理コピペすんの?
2017/10/01(日) 23:16:31.50ID:aVSvWtqd
アルゴリズムと計算量を知らないのか

千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる

2分探索なら、データ数が千個でも、探索回数は、1/100 になる

2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる

データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない
2017/10/01(日) 23:32:16.54ID:kJ8csjIE
>>707
Mapのlookupなんですけど
2017/10/01(日) 23:40:51.98ID:3vO8zSI2
プログラミング向いてなさそう
2017/10/01(日) 23:54:27.15ID:f01mTcSu
二分探索と二分探索木の探索って違わない……?
2017/10/02(月) 00:18:14.35ID:YWGKtTIQ
>>710
文章を最後まで読んでる偉い子
2017/10/02(月) 01:24:21.58ID:wSRtZd0X
ゲームでマスタ類はID(=index)でアクセスするので計算量はO(1)
そして>>693の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる
2017/10/02(月) 04:26:00.56ID:/O3TaAQA
長文で探索語るなら、ZDDの説明ぐらいしなされ
2017/10/02(月) 08:35:15.29ID:fVjCl62I
一覧で管理したくなる量のデータ(とそれに紐づいた処理)のクラスをいちいち手作業で作るのが面倒大変だけどこれでいいのかなって話なんじゃないの
前が見えなくなる人は迷惑だな
2017/10/02(月) 10:28:12.40ID:o9ncCo8n
JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね

オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ

その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?
716707
垢版 |
2017/10/02(月) 23:30:03.61ID:eOIGvVq/
DB だと、B-tree, B+ tree
計算量は、O(log n)

全(線形)探索なら、O(n)

計算量は、>>707
に書いた通り

n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回

データを2分探索木で構築していないのなら、DB には勝てない
2017/10/02(月) 23:38:58.59ID:o0D0xmrR
O(1)でやってんだからDBに勝ってるだろ
2017/10/03(火) 00:27:03.06ID:G2lKIaaK
100個のインスタンスを、生成しただけだろ?

Map(key : value) になっていないだろ?
Map なら、O(1) だけど
2017/10/03(火) 01:18:34.37ID:aqsVlxub
>>716
二分探索木じゃなくても二分探索はできるだろ
>>710の親切なツッコミをスルーして無駄レスすんなよ
2017/10/03(火) 10:03:00.11ID:/m6PSf5w
>>714も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど
2017/10/04(水) 02:14:07.85ID:KVI0o5Io
Kotlinの話しろよ
2017/10/04(水) 08:09:18.36ID:kznoEkrV
JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。
723デフォルトの名無しさん
垢版 |
2017/10/04(水) 08:38:43.69ID:JPTWWYYO
なんて出てるの?
2017/10/04(水) 08:42:20.58ID:0hGgeKFz
Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ
2017/10/04(水) 09:07:35.93ID:V3GzLm78
multidexって何が辛いの?
2017/10/04(水) 09:54:28.03ID:cxJCJ2DC
\コットリ〜ン/
727722
垢版 |
2017/10/04(水) 19:34:08.08ID:kznoEkrV
>>723
インタプリタにて↓
>>> println("hogehoge")
println("hogehoge")WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to co
nstructor java.lang.String(char[],boolean)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.
text.StringFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
ive access operations
WARNING: All illegal access operations will be denied in a future release
hogehoge

二度目以降は正常↓
>>> println("hogehoge")
println("hogehoge")hogehoge
2017/10/04(水) 19:35:36.92ID:sxpDUYrW
kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用
2017/10/04(水) 20:44:57.35ID:+JSlwxf3
String, char[] が異なる型なのかも

文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?
2017/10/04(水) 21:19:13.27ID:1osd033a
kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?
2017/10/04(水) 21:23:31.36ID:ekjB4cHk
最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄

というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ
2017/10/04(水) 22:29:29.12ID:vuQl5P59
長澤太郎以外は販売できないことになっている
733デフォルトの名無しさん
垢版 |
2017/10/05(木) 01:07:21.32ID:ioWgBjMx
>>730
まだあまり流行ってなくて出版社が乗り気じゃないのでは?
2017/10/05(木) 04:39:51.99ID:i/YPJQu8
今月2冊出るよ
2017/10/05(木) 09:20:35.38ID:qdkn4E5e
おおそうか
2017/10/05(木) 21:38:31.29ID:c5+kzESi
サーバーサイドKotlin明日発売やないか
2017/10/05(木) 23:00:14.40ID:RWFlOlgJ
流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える

このおっさん1人で、プログラミングの約半分の分野を、網羅しているw
2017/10/05(木) 23:19:11.04ID:c5+kzESi
そいつが出す本自体は糞だけどな
2017/10/05(木) 23:21:16.13ID:XUc7C4CE
別に流行り廃りでプログラムするわけじゃないしな
740デフォルトの名無しさん
垢版 |
2017/10/06(金) 01:37:01.01ID:x0C9073k
これか。10月6日発売。

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/aQkmPNJ
2017/10/06(金) 04:09:03.86ID:tqIbkLAn
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6
2017/10/06(金) 05:25:11.21ID:dm5GZqP5
http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?
2017/10/06(金) 05:39:21.03ID:tqIbkLAn
Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?
2017/10/06(金) 09:08:25.48ID:NqBQU0ep
それは答を教えてくれるわけじゃないからなあ

>>742
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ
2017/10/06(金) 10:14:22.41ID:dm5GZqP5
>>744
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね
2017/10/06(金) 11:25:26.06ID:oni6PLk4
val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()
2017/10/06(金) 17:16:40.52ID:X4PDhaWR
Spek使ってる人いる?
http://spekframework.org/docs/latest/#_gradle
これの通りにbuild.gradleに書いてる気がするんだがNoMEthodErrorで動かん
10 06, 2017 5:09:49 午後 org.junit.platform.launcher.core.DefaultLauncher handleThrowable
警告: TestEngine with ID 'spek' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.support.descriptor.ClassSource.from(Ljava/lang/Class;)Lorg/junit/platform/engine/support/descriptor/ClassSource;
at org.jetbrains.spek.engine.SpekTestEngine.resolveSpec(SpekTestEngine.kt:114)
...
2017/10/06(金) 19:04:09.88ID:X4PDhaWR
>>747
動いた。最後のほうの独立したdependenciesに追加
dependencies {
testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.1'
}
junit-platform-runnerのバージョンは
https://mvnrepository.com/artifact/org.junit.platform/junit-platform-runner
にアクセスして最新ぽいバージョンのページ押してGradleタブ表示
書かなくても動いてる人はどっかで設定してるんだろうな
2017/10/06(金) 21:33:44.02ID:tqIbkLAn
プログラミング GROOVY、2011

Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012
2017/10/06(金) 22:27:21.32ID:tSMXLmVc
>>748
同じ苦労したことある。ドキュメントに書いてよ…。
2017/10/07(土) 05:51:08.18ID:dZntJrcK
>>746
aaaに押し込みなさい
2017/10/07(土) 14:33:30.45ID:tYMANlqN
SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー
2017/10/07(土) 14:36:59.78ID:lxJ0Yf9D
kotlinはJavaわかんなくても他言語やってたらイケル?
2017/10/07(土) 14:53:56.94ID:tYMANlqN
>>753
言語仕様の理解においてはJavaの経験は不要

ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね
2017/10/07(土) 14:59:26.09ID:lxJ0Yf9D
>>754
ありがとうございます
kotlinがandroidの開発言語としてサポートされることになったので試してみたいなーと思ってたんでアプリ作ってみます
2017/10/07(土) 18:31:13.36ID:b4KK/o19
javaは1日でマスターできるので実質java未経験でも問題ないよ
2017/10/07(土) 19:18:53.56ID:rBYfi2xH
変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです
2017/10/07(土) 19:29:23.45ID:+RQU5E5j
ことぅりんだからなお前ら
ことりんとかいってたら数す
2017/10/07(土) 19:33:19.97ID:+RQU5E5j
それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...
2017/10/07(土) 19:41:49.21ID:XbHkmFTG
ことりんかわいい
761デフォルトの名無しさん
垢版 |
2017/10/07(土) 22:16:30.42ID:f9dDdlSq
ことりん(*´ェ`*)ポッ
2017/10/07(土) 22:18:46.44ID:iveAgMmn
人間だったら絶対美少女
2017/10/07(土) 22:55:16.08ID:LDd+/z40
ちょまどが漫画書いてくれないかなあ
2017/10/07(土) 23:13:31.53ID:X09Q1vcV
ちょまど(笑)
2017/10/07(土) 23:16:52.81ID:+RQU5E5j
お前ら...
https://www.hi-jax.com/namiaki/wp-content/uploads/2016/05/81C582BB-243A-4636-B3E4-DFD58ED4D17C.jpg
766デフォルトの名無しさん
垢版 |
2017/10/07(土) 23:38:16.22ID:f9dDdlSq
>>757
君の言いたいことがよくわからない。
2017/10/07(土) 23:51:42.16ID:2fKU1//d
何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな
2017/10/08(日) 01:04:04.02ID:bhcsmcAx
あざとい名前つけやがって
2017/10/08(日) 01:14:02.14ID:93IJP3PA
>>757
KFunctionのcall

val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)
2017/10/08(日) 01:22:31.02ID:93IJP3PA
>>767
Objective-Cだと結構普通に使うんよ
2017/10/08(日) 01:57:15.44ID:32PQUixn
Rubyでもメソッドのオブジェクト化を稀に使う

irb> "a=b=c".split("=")
=> ["a", "b", "c"]
irb> "a=b=c".method("split").call("=")
=> ["a", "b", "c"]
irb> "a=b=c".send("split", "=")
=> ["a", "b", "c"]
772デフォルトの名無しさん
垢版 |
2017/10/08(日) 02:41:05.63ID:c+/m9riq
あ、ようやっと何言ってるかわかったw
2017/10/08(日) 21:54:57.44ID:32PQUixn
IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?
2017/10/09(月) 19:59:00.68ID:3clxx/P9
リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい
775デフォルトの名無しさん
垢版 |
2017/10/09(月) 20:53:05.90ID:sCOU7I7y
>>740
その本さっき紀伊国屋で買った
2017/10/09(月) 21:17:44.65ID:bvkIQjV4
その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ
2017/10/09(月) 21:55:29.10ID:4WiIHmfQ
>>774
既存の関数一つで、ということなら知らないけど
関数追加して良いのなら
http://rextester.com/JSYB15250
2017/10/09(月) 22:00:53.70ID:4WiIHmfQ
Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う

アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler
2017/10/09(月) 22:34:41.54ID:c41RoAYB
言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?
780デフォルトの名無しさん
垢版 |
2017/10/09(月) 23:58:04.80ID:tFlwnlNI
>>779
同じことやるのでもJavaより記述が楽そうな感じがするからだ。
更にこれまでのJavaの資産を使えるのが良い。
2017/10/10(火) 00:00:43.01ID:jM5sd94/
どんどん高級度が増して行ってそのうち人間はなぜソフトウェアがCPU上で動いているのかその仕組みを知る人がいなくなるのですね
そしてAIと対峙しなければならなくなったとき誰も対応できなくなる
そういう未来が待っているのでしょう
782デフォルトの名無しさん
垢版 |
2017/10/10(火) 04:02:27.77ID:Q5yhaeDv
>>776
ま、今後に期待だな。

一応 Google が Android 用として採用したんだから入門書は他にも出てくると思う。
ネットの情報も増え続けるだろう。
2017/10/10(火) 10:24:21.67ID:8V61cfLq
いままでひらがなだけのぶんしょうだったのがかんじがつかえるようになったというかんじだ
そりゃ最終的な音としては漢字があっても無くても変わらないかもしれないが、漢字を理解していれば読みやすく書きやすい
長文を書きやすくもなるだろうし、そこから生まれるものもあろう
個人的にはスクリプト言語のような立ち位置だと思っている
2017/10/10(火) 21:49:29.43ID:VPwnJAPN
今月末に出るKotlin in actionの方は上級者向けのような気がする
2017/10/10(火) 22:21:41.00ID:FWHsF53j
>>784
なんだ、日本語訳でるのか。頑張って洋書の方読んでるけど、理論だてて書いてあるのでわかりやすい。ところどころJavaとの比較があり、Javaの知識がないとちょっと苦しいとこあるかも。あとTry Kotlinでサンプルもあるよね。
2017/10/10(火) 23:01:05.11ID:Z3ZusD4X
in action は上級じゃないよ
プログラミング初心者向けじゃないけど
最初の1冊に選んでいい本
2017/10/10(火) 23:25:19.52ID:VPwnJAPN
日本語の技術書とかネットの情報でも日本語のものだと実務に使えるレベルに達しなくなってきてるよね
日本はIT後進国になってしまったんだと常々感じる
2017/10/10(火) 23:37:43.52ID:ZTVh7Eud
>>787
テクノロジーの移り変わりが早すぎて、一次リソースを参考にした方が効率的だし、わざわざ日本語に訳す必要もないから
2017/10/10(火) 23:38:33.00ID:sNdI8sqC
>>787
先進国だった時なんてあったか?
790デフォルトの名無しさん
垢版 |
2017/10/10(火) 23:42:30.50ID:gasOXxRr
一昔前はtronとかあったやん
今の日本はなにもない
2017/10/11(水) 00:08:24.55ID:YuycjJaM
最速だからいいということばかりでもない
周回遅れでも構わない情報のほうが世の中には多い
Kotlinスタートブックは1年以上前の刊行だけど使えないゴミだと言う人はまともな人にはおるまい
2017/10/11(水) 00:09:08.60ID:T++UmApy
ハードはともかく
ソフトは先進国だった事はない
793デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:18:15.85ID:EN0HNRmd
これからなればいい
2017/10/11(水) 00:23:02.14ID:JdWo4X1f
Androidの技術書見ても現在主流の
RxJava, databinding, MVVM, flux, redux辺りの解説をしている本が全然ない
Androidだからまだネットで日本語の情報多いけど、
iOSになると本当に英語の情報しかなくなってくる
本当に駄目な国になってきている
ニュージーランド辺りに脱出した方がいいんじゃないかと思ってくるレベル
あっちはプログラマーの年収1000万らしいし
2017/10/11(水) 00:30:16.27ID:LhuJ4eZA
>>794
英語の情報があればいいやろ
796デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:31:11.36ID:JfiRQ2Rl
むしろ英語を使うようになったからでは
日本語の書籍は高いし遅いし
2017/10/11(水) 00:31:53.22ID:V+6zovsu
>>794
お前と違って、英語の情報だけで充分なエンジニアが増えているという見方もできる
798デフォルトの名無しさん
垢版 |
2017/10/11(水) 00:33:36.19ID:EN0HNRmd
そしてみんなが苦もなく英語が読めるようになった頃、完璧な自動翻訳が完成する。
2017/10/11(水) 01:16:39.94ID:OvZKAieI
>>796
msのxamarin本なんか、原本はePubなら無料だが、日本語訳したとたんに6000円になるぜ!
2017/10/11(水) 01:19:17.66ID:YuycjJaM
>>799
安心しろ
日本の技術書を英訳してもだいたい1冊40ドルくらいにはなる
固定化されて訂正できない翻訳には人件費がかかるのだ
2017/10/11(水) 14:21:15.86ID:WJBR6sLF
英語、ちゃんと理解できるようにならんと、これからはだめなんだろうなぁ
なんとなくでしか読めんし、結局分からん事は日本語で探して解決するから、英語だけで完結できん
一年かけて英語習得するか!
2017/10/11(水) 14:48:59.07ID:YuycjJaM
高卒くらいの英語力は保持してるつもりなのにネットの記事がぜんぜん読めんという場合
・スラングがめっちゃ入ってる
・ネット文法が入ってて正規寄りではないので読み取れない
・専門用語が専門的すぎる
のだいたいどれかで、プログラミングの記事は最後の比率が大きい
これは英語本体をどんだけ勉強しても専門用語の日本での意味や技術的意味がわかるわけではないので役に立たない
パブリックメソッドを行政手法と訳してたら絶対わからんわけでな
2017/10/11(水) 16:03:19.52ID:hhJP1zLS
プログラマで英語弱い人はTry Kotlinのサンプルをちょこちょこ試してみたほうがより効率的かもね
804
垢版 |
2017/10/11(水) 18:19:59.78ID:Q0CgrKbU
>>802
逆にしばらくエンジニアやってりゃ、技術文書は読めるようになったりするけどな。
仕事でやるなら翻訳自体、翻訳メモリ使って翻訳することの方が多いし。
翻訳メモリで完全新規な文書の翻訳はたまに手伝う。
805デフォルトの名無しさん
垢版 |
2017/10/11(水) 18:21:22.65ID:AVBsiIwy
>>801
おお。そうだ。このスレはこれから英語で書こう。
806デフォルトの名無しさん
垢版 |
2017/10/11(水) 18:22:16.37ID:AVBsiIwy
i have a pen
2017/10/11(水) 20:28:51.56ID:qqbN54VH
>>806
文頭は大文字にしなきゃ
2017/10/11(水) 20:39:22.12ID:M3+oH0ZC
Iは文頭でなくても大文字にしなきゃ
2017/10/11(水) 20:56:44.06ID:PtNlY4pv
have じゃなくて am でしょ
2017/10/11(水) 21:23:33.96ID:JdWo4X1f
I am a pen
2017/10/11(水) 23:47:37.98ID:9t+rVGQp
me too
2017/10/12(木) 07:16:44.81ID:OX/pZMRS
人間はいねぇのかここは...
2017/10/12(木) 08:54:42.09ID:Pi/VQsL7
高卒レベル英語力(英検2級)と辞書があれば、読めるだろうに。
814デフォルトの名無しさん
垢版 |
2017/10/12(木) 09:09:03.89ID:tSTw7rai
は?英語なんて知らなくても全部グーグル先生に突っ込めば読める
815デフォルトの名無しさん
垢版 |
2017/10/12(木) 09:18:29.99ID:AXWM+xbo
I am fool.
You are fool.
We are fool.
2017/10/12(木) 09:46:23.80ID:o8TlX9Z0
>>815
you fool
you are a fool
you are dead foolish

article required
2017/10/12(木) 10:15:06.41ID:7rfu7aua
You is a big fool man.
Hahahaha.
818デフォルトの名無しさん
垢版 |
2017/10/12(木) 11:44:05.54ID:6DbuDLdk
me too
2017/10/12(木) 12:17:18.61ID:jZh2ph1X
lol
820デフォルトの名無しさん
垢版 |
2017/10/12(木) 12:40:17.85ID:LPj/TZWs
It is useless. I can not communicate at all in English.
2017/10/12(木) 13:56:58.96ID:3A6lsKEo
Kotlin is so cute;-)
2017/10/12(木) 16:54:50.54ID:irZYU/94
pls, say fool just another...
2017/10/12(木) 17:44:23.32ID:cYyBZWxu
all your base are belong to us
2017/10/12(木) 18:33:55.37ID:o8TlX9Z0
>>823
All your bases belong to our country.

中卒レベル
2017/10/12(木) 18:38:55.59ID:W4Y9jhaF
>>824
https://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us
2017/10/12(木) 20:17:00.25ID:o8TlX9Z0
知らんかったわ
「ワレワレハ…」的なノリね
2017/10/12(木) 21:43:09.54ID:5ILt7KpA
Engrish
2017/10/12(木) 22:43:44.31ID:OX/pZMRS
>>815
Hey, don't include me in foolish people!
2017/10/12(木) 23:58:19.05ID:IILQSMTY
*/
2017/10/13(金) 00:42:44.70ID:JcXjubca
こぉっとぅりんっ
2017/10/13(金) 00:43:15.89ID:JcXjubca
こぉとぅりん
832デフォルトの名無しさん
垢版 |
2017/10/13(金) 00:49:55.72ID:neFZx4WS
>>828
I am your friend.
833デフォルトの名無しさん
垢版 |
2017/10/13(金) 19:18:19.17ID:/02if2W5
いますぐJavaをやめてKotlinに移行すべき10の理由↓
834デフォルトの名無しさん
垢版 |
2017/10/13(金) 19:28:52.37ID:WJkFRsiD
1. I love kotlin.
835デフォルトの名無しさん
垢版 |
2017/10/13(金) 19:30:46.10ID:WJkFRsiD
2. We love kotlin.
2017/10/13(金) 20:13:20.58ID:Gc4qJwYJ
3. We are Kotlin.
2017/10/13(金) 21:17:09.35ID:snGniETu
このスレもう要らないな
2017/10/14(土) 00:02:55.04ID:UTsnHwgS
>>837
Are you pen?
2017/10/14(土) 00:07:29.38ID:F+wwiVHB
碌に移行する理由がないんじゃJavaの天下は続くな。
2017/10/14(土) 00:24:30.10ID:lMgWewwv
理由ならある
呼び名がかわいい
2017/10/14(土) 05:04:47.87ID:rkGKts9o
これから流行るんじゃねえか? まずは Android 用アプリ作成に使うのが流行ると思うぞ。
2017/10/14(土) 06:05:23.13ID:Ls8C6+0E
AndroidStudio3.0のベータ版だと、アプリとテストの雛形のデフォルトがKotlinになってるから
特にこだわりがない人は Kotlin 使うようになるだろね
2017/10/14(土) 08:54:09.10ID:UTsnHwgS
Null安全だけでも以降するのに十分な理由になると思うが
2017/10/14(土) 09:23:07.84ID:mCAw9QQf
>>838
No, it is an apple.

and Swift
2017/10/14(土) 09:34:03.59ID:22PxWoNo
ぬる安全で動かなきゃletとかwithとかalsoとか見せればイチコロだと思うにゃん
さほど変態的でない記述でJavaコードが更に短くなるというだけで訴求力はあるはず
2017/10/14(土) 09:37:33.59ID:A2JBGmbK
スクリプト動作モードは遅すぎて使い物にならないな
2017/10/14(土) 14:20:16.21ID:mpqXFZeP
>>843
Going.
2017/10/14(土) 14:26:02.66ID:ocOTfHdi
withは要らんわ
大してメリットが無く紛らわしいだけだからとC#が意図的にVBから削ったゴミを
なぜ今更復活させてしまったのか
2017/10/14(土) 14:28:24.42ID:UTsnHwgS
let, with, alsoの使い分けがよくわからん
2017/10/14(土) 14:55:18.93ID:xdbq9lHZ
letは「これnot nullのif文代わりに使えるじゃん!」って置き換えるもその後にelse節が必要になって泣く泣く書き換える羽目になるトラップとして使う
2017/10/14(土) 16:45:54.36ID:UTsnHwgS
valで変数を書き始められるのが楽
Javaに戻ると型名書かないといけなくて脳に負担がかかる
2017/10/14(土) 16:59:08.57ID:F+wwiVHB
Javaがどんどん軟派化仕様を取り入れてるときに、軟派言語出されても競合するなぁ。
2017/10/14(土) 17:32:07.97ID:UTsnHwgS
Javaの件でOracleがGoogleを訴えたりしてなかったっけ?
あれが関係しているような気がするんだが
2017/10/14(土) 17:46:40.03ID:F+wwiVHB
MSは訴えられてWindowsからMS製Javaを排除したが、
AndroidからGoogle製Javaを排除したらただのLinuxじゃん。
2017/10/14(土) 17:52:02.81ID:iaPiK/ZP
Googleが訴えられたのはJVMとAPIだから言語を変えたところで何の意味もないよ
2017/10/14(土) 18:08:25.27ID:+XwGR1nT
言語がモダンになってIDEが必須になってどんどん人間がバカになっていくぅ
2017/10/14(土) 19:31:44.98ID:zWnjpaDB
>>850
?: run {} が使える
2017/10/14(土) 21:25:44.86ID:Ls8C6+0E
>>848
withは言語機能として組み込まれてるわけじゃなくて、
他のrunとかapplyでも使ってるレシーバ付き関数リテラルの一番簡単な使い方
このレシーバ付き関数リテラルがあれば、withみたいな関数は簡単に定義できるんで、
withがダメっていうならレシーバ付き関数リテラルもダメってことになる
でもKotlinは意図的にレシーバ付き関数リテラルを用意して活用する気満々なんだよ
2017/10/15(日) 01:36:56.98ID:ZgJv24or
with ってこれなのな。
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()

https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e
2017/10/15(日) 01:57:24.53ID:1JZd3G1s
withってほとんどの場合副作用使うからなあ
現代的なプログラミングにはそぐわないよ
2017/10/15(日) 02:28:15.35ID:fk/JYaTL
Kotlinのwithは値を返すから副作用を利用するかどうかは使う人次第だ
2017/10/15(日) 03:09:10.81ID:ps8be+yY
1つのList/Setを条件で分けて3つのグループにするのに何かいいやり方ありますか?
val group1 = ArrayList<HogeEnum>()
val group2 = ArrayList<HogeEnum>()
val group3 = ArrayList<HogeEnum>()
group.forEach {
when {
it.isHoge() -> group1.add(it)
it.isHage() -> group2.add(it)
else -> group3.add(it)
}
}
2017/10/15(日) 03:38:27.73ID:rZYksuR6
Iterable.groupBy()があるよ
やってることは結局その例とかわらないけど
2017/10/15(日) 04:01:40.27ID:fk/JYaTL
こんな感じか
val result = group.groupBy ({ if (it.isHoge()) 0 else if (it.isHage()) 1 else 2 }, {it})
val group1 = result[0]
val group2 = result[1]
val group3 = result[2]
865デフォルトの名無しさん
垢版 |
2017/10/15(日) 17:12:21.76ID:sVOncOOl
>>864
itのままでいいなら二番目のパラメータ省略できるよ。
2017/10/15(日) 18:32:02.26ID:fk/JYaTL
>>865
なるほど、ならばこんな感じに
val result = group.groupBy {it.run{when{isHoge()->0; isHage()->1; else->2}}}
867デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:18:47.56ID:WbabBMh3
さっき本屋行ったらこんなの売ってた。工学社の I/O BOOKS のやつだ。
https://i.imgur.com/UHC2KT1.jpg
ぱらぱらめくって見た感じでは全体が簡単にまとめられているようではあった。
小さいサイズの本の方がいい人向けかな。
まあしかし買うなら立ち読みして確認してからにするとよい。
2017/10/15(日) 19:22:52.08ID:g+9Qt1e8
電子書籍で出してくれ
2017/10/15(日) 23:30:21.51ID:9R+c2v2L
本屋で写真取ると捕まるぞ。
2017/10/15(日) 23:38:59.63ID:YqfACteL
長澤太郎以外でも出せるんだな
871デフォルトの名無しさん
垢版 |
2017/10/16(月) 01:10:50.17ID:K3bUm04o
>>869
ああ。中身撮影してると思われたら捕まるだろうな。w
しかし少し離れた所から表紙しか撮影してないから誤解されることはないと思うがな。
2017/10/16(月) 02:03:12.91ID:8vIi4A+y
>>871
店舗内での書影撮影に関してはわりと明確なルールがあるよ

・ 書店が入っている商業施設が無断撮影禁止なら無断撮影者は退去対象である

明瞭だ
著作権とかどうでもいい
出禁だ出禁
2017/10/16(月) 02:12:21.73ID:1RgvFhx3
>>872
店内で本をスマホにかざすとアクションが起こるみたいなアプリがまずぶつかる障壁だな
本屋主導の電書アプリでついてる機能でプレスリリースまで出したけど立ち消えになったりもする
kotlinでシチュ限定スマホアプリ作ってる人もいるだろうけどスマホ使用制限エリアとの兼ね合いには注意だ
2017/10/16(月) 19:28:21.38ID:hogQmxQx
これを皮切りに
kotlinの本が続々出て今年から来年にかけて
爆発的に売れる予感。
2017/10/16(月) 21:34:34.38ID:8lVe0990
とりあえずはインアクションがあればいいな
やっとまともな本が出る
2017/10/16(月) 21:37:31.83ID:7CHwAcHs
まともに移行する理由がひとつも挙げれなかったから爆発しない。F#ぐらいの立ち位置だな。
2017/10/16(月) 21:38:36.04ID:nm/6hD9y
Null安全はでかいだろ
プログラミング初心者か
2017/10/16(月) 21:53:29.09ID:7CHwAcHs
なるほど。Null安全か。よしJavaに追加しよう。
2017/10/16(月) 21:53:40.26ID:TAj2pYDL
>>877
そうだよ
http://mevius.5ch.net/test/read.cgi/tech/1492843013/978
2017/10/16(月) 22:04:58.29ID:nm/6hD9y
プログラミング初心者がF#とか言ってんのか
2017/10/16(月) 22:12:56.85ID:7CHwAcHs
この人は人の話を聞かず妄想で話を進める人だな。

頭に蛆でも沸いてるのか?
882デフォルトの名無しさん
垢版 |
2017/10/16(月) 22:49:58.86ID:snZUUJVe
今爆発が始まったばかりなんだよ。
2017/10/17(火) 03:13:52.64ID:hVetZd8l
Javaで困ってねーからな。Javaで困ってる案件をKotlinなら解決できるわけもなく。

中にはNull例外で困ってる初心者もいるようだが。
2017/10/17(火) 04:17:41.05ID:NmuLnA8X
Java自体Android開発以外であんまり使わないからKotlin Nativeに期待してる
仕事だとWebはPHP、PCはexe形式のWin用の案件ばっかりなんだよね
2017/10/17(火) 08:01:28.76ID:7/LKBs88
未だに手続き型の泥臭いコードが主流の日本じゃ流行らないでしょ
日本はCOBOLとstatic Javaが正義
2017/10/17(火) 08:17:08.08ID:gQ4z+/LN
どうして自分で使ってもいない言語のスレにやってきて書き込むのかまったく意味不明
2017/10/17(火) 09:12:43.23ID:dhvYHJws
Kotlinできないやつは仕事がなくなる
2017/10/17(火) 09:31:20.86ID:4QIDkuyk
「Javaで作ってます(実際にはKotlinですが)」というパターンが増えると思う
Javaのボイラープレートコードを
・IDEが自動生成してソースに直書きする
・Kotlinがコンパイル時に追加書きする
という程度の違いしかないわけだし
見る必要のないものは見えないほうが能率的にも好ましい
2017/10/17(火) 10:54:09.69ID:hVetZd8l
>>887
Java以上に難解な言語だからな。
2017/10/17(火) 11:27:44.11ID:onQ9Ahkh
>>889
Kotlinからプログラミングに入った人が、数年経ってからJavaに手を出したとして、Javaの方が簡単だと思うかな
891デフォルトの名無しさん
垢版 |
2017/10/17(火) 12:21:38.68ID:H+HUM8Ad
まだ学習中ではあるが、Java より Kotlin の方が簡単なのではないかという感じがしている。
少なくとも同じことやろうとしたら Java では記述が面倒になるものがある。
2017/10/17(火) 12:48:53.61ID:dhvYHJws
型名から書き始めるのがだるく感じるようになってしまった
2017/10/17(火) 13:37:15.76ID:gQ4z+/LN
>>891
簡単だよ、「教科書」の範囲を脱するとJavaの知識は絶対に必要だからちょっとアレだけど
所要時間の7割くらいはKotlinでざくざく書ける
残り3割は
・ 事例をKotlinでググったがJavaのしか出てこなかったので諦めてJavaを読んでいる
・ IntelliJでJavaコードを変換してもらったらジェネリクスやコンパニオンオブジェクトやアノテーションだらけになりしかも動かないので泣きながら修正している
・ IntelliJに変換してもらおうとしたらどうやらスニペットらしく何度ペーストしてもうんともすんとも言わないので吐きながら手作業でひとつひとつ置き換えている
のだいたいどれかだ
2017/10/17(火) 18:57:01.82ID:hVetZd8l
ビット演算子とかすでに普及したC系の書法あるのになんで変えるんだろう?
2017/10/17(火) 19:18:36.93ID:30A/rDEh
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
http://news.mynavi.jp/news/2017/10/17/044/
2017/10/17(火) 19:47:17.34ID:hVetZd8l
イライラするな、そのグラフ。クリックしても全然拡大できねー。
897デフォルトの名無しさん
垢版 |
2017/10/17(火) 20:36:40.86ID:H+HUM8Ad
>>896
スマホやタブレットなら拡大するを押した後はピンチできると思うよ。
2017/10/17(火) 20:39:30.41ID:dhvYHJws
お前ら時代についていけなくてプログラミングの仕事ができなくなるぞ
Kotlin以外にもRxとかdatabindingとかMVVM, flux, MVIとか
新しい技術がどんどんでてきてんのにどうすんだ
899デフォルトの名無しさん
垢版 |
2017/10/17(火) 20:50:31.20ID:H+HUM8Ad
え?全部覚えればいいだけでは?
2017/10/17(火) 20:55:29.61ID:y2IFefmv
調べ方さえ知っときゃいいのよ
基本はアルゴリズム
2017/10/17(火) 20:58:55.12ID:O+BDW8Aj
>>898
え?新しい?
どれのこと言ってんの?
2017/10/17(火) 20:59:12.42ID:GiRVoeFb
AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
ttp://news.mynavi.jp/news/2017/10/17/044/
2017/10/17(火) 21:27:02.26ID:kRPJAKch
アセンブラに回帰するから大丈夫
2017/10/17(火) 23:21:34.71ID:A1W0Ufl3
>>899
無理だよ
お前が天才なら話は別だが
2017/10/17(火) 23:26:52.13ID:hVetZd8l
Kotlinは最新鋭の言語だからな。ついていくにはかなりの勉強が必要。
オブジェクト思考なにそれじゃとても無理。
2017/10/17(火) 23:38:47.28ID:psnU0zFe
Kotlinが分からないお前ら全員失業www無職ざまあwwwwww
2017/10/18(水) 00:26:22.06ID:AVtT/z6f
>>898
あなた「が」その技術を作って売っているのでないのなら、アタラシイギジュツというのは業務としては無視してよい
それの半数は1年で話題にならなくなり、2年でその半数が消える
3年経っても話題になり生き残っているのなら、そこで初めて検討すればいい(たとえばKotlinのように)

まあそれの多くは技術というよりは概念だからわりと生き残ってる部類だが
家のプログラミングで追いかけてりゃ十分じゃないかな
2017/10/18(水) 09:11:29.05ID:rBz0muCO
Kotlinの定数ってどう書くのが正しいんですか
全部大文字にしてアンダースコアで繋げる、
じゃないですよね
2017/10/18(水) 09:38:16.58ID:96L4BFY0
>>908
companion object{
const val hoge
}
Javaライブラリから定数だと思ってもらう必要がないならcompanion object{}はいらないはず
hogeの名前部分は好きに書け
仰る通り全部大文字アンダースコア区切りが普通ね
910デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:26:44.80ID:iXMhk9b6
>>904
そうか。じゃあ問題ないな。
2017/10/18(水) 15:49:53.65ID:ZPgodlCt
>>904
idiot savant なら話は別だが
の誤記だよね
2017/10/18(水) 20:53:45.43ID:9Hfah7Rk
ねえコトリン^^
2017/10/19(木) 13:53:40.95ID:kzg66C9N
こっち向いて
2017/10/19(木) 14:09:52.81ID:ZSJg0roA
     ☆      ∬   ∬
     |\      r;ェ、c3 シュンシュン
     ∴∴∴   _(_'フ__
     (´・ω・`) |l三三三||¬| 
    ( _ つ  .|l三旦三||  | 
    (_(__ノ  「目   「:_] 
2017/10/19(木) 22:05:31.14ID:zAbDVwTY
>>913
ロシアが攻めて来たのよ
2017/10/19(木) 23:19:09.40ID:v9LYhYCi
ロ、ロ、ロ、ロシアン
2017/10/20(金) 09:23:09.66ID:cIqzCW7A
Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
ttp://www.publickey1.jp/blog/17/kotlinandroidrealm.html
2017/10/20(金) 10:33:28.19ID:ogaeHTAB
それはKotlinのスキル有無の問題ではなくて、
Kotlin程度、まともにJavaできる人なら適当に一日触ったら十分使いこなせるようになるんだから
それができないレベルの人には仕事はないという当たり前の話だと思う
2017/10/20(金) 11:04:30.15ID:q2wuGssb
kotlinはjavaの唯一最大の参入障壁「やりたいことに対して無意味にも思える記述が多すぎる」を解消した
あとはちょっと変わった記述の適用広範囲Javaライブラリみたいなもんだからな、そりゃ使われるわ

実はKotlinよりもプログラミング言語的に素晴らしいScalaさんという一つ上くらいの先輩がいるのだが
Scalaさんは初動に集まった人がアカデミックだった上に記号魔術で遊び過ぎて印象悪くして失敗してしまったのだ(初動大事)
2017/10/20(金) 12:09:50.84ID:+lt7TopC
Javaオンリーな人が付け焼き刃でKotlin使うようになってほぼJavaなKotlinコードが量産されるんだろうな
2017/10/20(金) 12:36:09.65ID:q2wuGssb
>>920
たとえば??
2017/10/20(金) 12:45:02.92ID:p6j5lSQw
何を今更
ジェットブレインが開発した時点でそういう言語だろ
2017/10/20(金) 12:53:16.47ID:4LtGa96p
ジェットブレインってなんだろう…
924デフォルトの名無しさん
垢版 |
2017/10/20(金) 12:53:54.91ID:PCOS2CdI
>>920
え?例えばどんな?
クラスはみんなopenとか?
2017/10/20(金) 12:55:55.90ID:q2wuGssb
>>923
正直なところ、該当プログラミング言語を使ってないような人が言語のスレに書き込む理由がさっぱりわからん
自分の知らないことばかり話してるスレだぞ…
2017/10/20(金) 12:56:22.84ID:cIqzCW7A
ジェット脳
2017/10/21(土) 08:55:05.79ID:SwYl7d2P
バグだらけのWebアプリケーションをKotlinで実装してみました
https://qiita.com/tamura__246/items/ce2932809b9e4ec0297e
2017/10/21(土) 08:56:18.39ID:uavAERV8
言語を変えたらバグがなくなりす。Javaのときも言ってた気がします。
2017/10/21(土) 10:49:40.33ID:uVD587X2
>>928
バグの一部はなくなった。もちろん全部はなくならない。
2017/10/21(土) 14:07:32.75ID:DUYo3YXD
見てないけど、kotlinにしたら、世の中のプログラムのバグがなくなるのか
kotlin最強だな
2017/10/21(土) 15:57:07.83ID:pTq+5yjM
プログラム言語の進化の歴史の基本パターンだしな
2017/10/21(土) 22:52:03.68ID:l0C30vmt
>>930
だから全部はなくならないってw
2017/10/21(土) 23:05:33.46ID:uavAERV8
ヌルポがなくなるらしい。でもちゃんとテストしたらヌルポのバグって全部修正できるよね。
つまりkotlinにすればテストしなくていいということ。

結果さらにバグあり納品が増えてデスマーチ。いつかみた風景。
ポインタがなくなれば〜、GCがあれば〜

オープンソースにすれば〜ってのもあったね。最近多いのがAIにすれば〜
2017/10/22(日) 03:25:09.30ID:e1gng41K
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い
2017/10/22(日) 03:25:51.40ID:GA495a0M
Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い
2017/10/22(日) 09:06:20.22ID:AhvojsY+
世の中のプログラムのバグがなくなるとかテストしなくていいとか
脳内の飛躍が半端ないなw
2017/10/22(日) 09:51:20.46ID:ThKraGOL
>>933
それはヌルポをテストしなくていいを、ヌルポ以外のテストもしなくていいにすり替えたから。
つまり>>933の脳内にバグがある状態。
938名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 10:39:38.28ID:Aud0wCrn
>>928
りす?
       n_n
      / ・ \
      /ヽ__・
  /Ξミヽ/ (゚Д゚)
 ( ―、| (ノ  |つ
  \_人人__)_)
      ∪ ∪
939名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 10:43:40.96ID:Aud0wCrn
>>936
その辺は何れ何とかなるんじゃないかな。AIが発達して人間が何かする必要は特に無くなる。
もちろんAIはプログラミングなんかしない。自身が既にプログラムだしね。単に人間が望むであろう動きを自分がすればいいだけ。
2017/10/23(月) 01:55:41.23ID:abHVYf4D
Pythonじゃダメなの?
2017/10/23(月) 01:58:47.60ID:u5IDZl2p
だめなの
942デフォルトの名無しさん
垢版 |
2017/10/23(月) 09:12:33.70ID:dbUGXOGc
そういやPythonやったことないな。いつもLinuxいじってて目の前に既に使える環境があったんだがなぜか覚える気にならずPerlばかり使っていた。
いい加減学習するか。
943デフォルトの名無しさん
垢版 |
2017/10/23(月) 09:16:27.95ID:q13VoyIh
ぱいそんなんて勉強が必要なものでもないがな
944デフォルトの名無しさん
垢版 |
2017/10/23(月) 09:49:53.15ID:dbUGXOGc
いや、ほら、何も知らないからさ。
ファイル名の拡張子が .py ってことぐらいしか知らない。
2017/10/23(月) 10:00:47.84ID:QKnEuIrp
常用するLinuxBoxがあるのならPython/Rubyは良い選択肢
自分のために楽しくやりたいならRubyを、皆と一緒に便利にやりたいならPythonを選ぶといい
どっちか覚えたら片方はすぐなんで初期用途で選んでいいよ
2017/10/23(月) 19:00:30.13ID:puhk/g9t
未だにkotlinだとヌルポがなくなるとか言ってるやつがいるのか
947デフォルトの名無しさん
垢版 |
2017/10/23(月) 19:15:07.45ID:YIhcz2Te
ひねくれた複雑な事やらなければだいたいはなくせないか?
2017/10/23(月) 19:39:06.53ID:o6L3q82d
Kotlin使ってもぬるぽ連発してんのか
2017/10/23(月) 22:51:45.52ID:QKnEuIrp
>>947
ああ、こいつに構わなくていいよ
いつも同じことしか書かないんだ
説得しようとしても無駄
2017/10/23(月) 23:04:44.08ID:zzY32qse
器用なことやるな
2017/10/24(火) 02:21:21.48ID:IbgCT9FR
kotlinが急進的に普及みたいな記事を
良くみるが、俺は到底そうとは思えない。
理由はKotlinの謳い文句の
KotlinからJava変換、KotlinからJavascript変換が
まだまだ使いずらいってことだ。
AndroidスタジオはPCによってはBuildが遅過ぎ
まったく開発にならない。Webプログラムのパイオニアみたいな
キャッチセースで最近注目を引いてるけど、まだまだ
美味しい時期ではないように思うえる。
今日とかWindow10/32ビットでコマンドラインから
JavaとJavasriptにコンパイルしようとしたけど
Javaspitに関しては資料が少なすぎて手も足も出ない。

コマンドプロンプトから

kotlinc-js -output hello -sourceFiles hello.kt -libraryFiles kotlin-jslib.jar

で良かったけ?なんか、情報が閑散としてて判らん
2017/10/24(火) 03:06:11.96ID:PSxxe1n/
全角で言語名書く奴の意見は参考にしない事にしている
2017/10/24(火) 08:04:25.98ID:s8DNo2te
全角と半角が混じって気持ち悪いことこの上ない
プログラマーとは思えない美的感覚
2017/10/24(火) 08:20:05.29ID:kOLVT7kL
Javasript
Javaspit
という新しい言語が生まれたようだな
2017/10/24(火) 08:54:24.56ID:EMAIs2aC
>>952-954
なんでそうやって構うの
2017/10/24(火) 08:54:33.53ID:rijisBQi
spit = つばを吐く
ということだから、
Javaspit = Javaにつばを吐く
つまり熱狂的なKotlin信者ということ
957デフォルトの名無しさん
垢版 |
2017/10/24(火) 09:09:32.53ID:Y1f+CDs0
Window10

新しいOS
2017/10/24(火) 09:51:43.85ID:99TFwYv/
キッズプログラマー
959デフォルトの名無しさん
垢版 |
2017/10/24(火) 10:24:42.63ID:rImCj7mr
SRIPT

Shanghai Research Institute of Petrochemical Technology
2017/10/24(火) 10:28:35.28ID:YiJuDl3B
>>955
プログラミングできなくても参加できるからね
自分たちは何もできないって人前で叫んでいるようなものだ
正直お帰り頂きたいのだが
2017/10/24(火) 12:32:17.01ID:ILn03nC/
>>948
どこにヌルポ連発すると書いたのか。アスペかおまえは。
>>949
おまえみたいなゴミカスエンジニアは何言っても否定するんだろうな
962デフォルトの名無しさん
垢版 |
2017/10/28(土) 13:15:37.00ID:cK0+9veY
ぬるぽ
963デフォルトの名無しさん
垢版 |
2017/10/28(土) 14:38:12.64ID:cK0+9veY
何気なくAmazon見てたらこんなの見つけた。無料。

Kotlin Programming Tutorial https://www.amazon.co.jp/dp/B074FXTTKL/ref=cm_sw_r_an_am_at_ws_jp?ie=UTF8
2017/10/28(土) 14:39:54.99ID:0x9+D/xv
EclipseのエディタがJavaと同じぐらいKotlinサポートしてくれてるなら乗り換えてもいい
2017/10/28(土) 14:44:54.44ID:Ng05dLeH
KotlinはIntelliJ開発元のJetBrainsが作ってるからEclipseプラグインに期待するのは間違い
もしサードパーティによってIntelliJより使いやすいEclipseプラグインが出てきて開発者がそっちに流れそうになったりしたら
JetBrainsは法的手段を使ってでも全力で潰しに来るはず
2017/10/28(土) 14:58:11.85ID:ZGNKF2eF
極めて単純に「Eclipseは20年以上Javaをサポートしアプデし続けてきたので最強である」というだけなので
今のJava+EclipseをKotlinで再現するにはあとやっぱり20年くらい必要だと思われる
あれは年季の問題であって、NetBeans+Javaとか(困ったことに)IntelliJ+Javaも同じようなものだ

IDEサポートの分厚さという点ではKotlinはどの組み合わせにも及んでいない
とりあえずバックスペースで消していくだけでKotlinプラグインがクラッシュすることがあるのを直さんといかんレベル
2017/10/28(土) 15:54:42.82ID:LaChF7dA
MSがVSCodeのプラグイン作ったら1年でJava超えるだろうけどね
2017/10/28(土) 15:57:39.28ID:0x9+D/xv
なんてこったい

Oracleはjava9でvar採用して
innullablejre.jarを別途提供すべき
969デフォルトの名無しさん
垢版 |
2017/10/29(日) 03:51:42.38ID:0yKrkLYC
すばらしい使い捨て言語だ。
2017/10/29(日) 09:51:25.77ID:nF8jP4ar
>バックスペースで消していくだけでKotlinプラグインがクラッシュする
あれは繊細過ぎると思う
どっかでチェック開始間隔の設定がありそうだけどな
2017/10/29(日) 09:56:52.64ID:0yKrkLYC
kotlinでプラグインを書かないからヌルポになるんだよ。
972デフォルトの名無しさん
垢版 |
2017/10/29(日) 19:11:11.42ID:6hfILvPI
さっき新宿の紀伊國屋書店行ったらKotlinイン・アクションもう置いてあったよ。
ということは多分大きい本屋ならもう売ってると思う。
2017/10/29(日) 21:42:48.27ID:Gu+Q8xiz
感想は?買いなん
2017/10/29(日) 22:04:20.61ID:oFRxn/Jf
>>973
まだパラパラめくって見ただけなので何とも言えないが、詳しく一通り書いてあるように見える。
2017/10/30(月) 00:56:22.26ID:/vdlmG2A
初めてのまともな日本語の本でしょ
あのクソみたいなエバンジェリスト本(笑)をやっと駆逐できるな
2017/10/30(月) 02:59:15.21ID:nQXUW6Dj
エバンジェリスト本?
ああ、まあ、 Technology evangelist か?
2017/10/30(月) 08:46:43.80ID:stDQ/FyB
長澤太郎もかかわっている
2017/10/30(月) 21:53:49.20ID:pVIch9qW
今日から始めます。
今インストール中。
よろしくお願いします。
2017/10/30(月) 22:37:30.38ID:OufZdVP7
ここは!
あなたの!
日記帳!

Javaを読めないとしんどいから、もしまだ知らないなら並行作業でちょっとずつやるといいよ
今からやっておくとだいたいKotlinわかったころに何かやりたくなっても「あっこれ進研ゼミでやったやつだ!」となって捗ること請け合い
2017/10/30(月) 23:00:21.71ID:pVIch9qW
>>979
応援ありがとうございます。
Javaは少しだけやりました。
一応C#は使えるので、
kotlinやりながらJavaも覚えたいと思います。
2017/10/31(火) 20:53:53.80ID:mFIgmMeH
data?.let {
  ...
}
でdataがNULLじゃないときだけ処理を実行できることは分かりました。
これにdataがNULLのときの処理も追加したい場合はどう書いたらいいんでしょうか
data?.let {
  ...
}?: {
}
みたいに書けないです。
2017/10/31(火) 21:01:44.57ID:mFIgmMeH
ファイル入力の処理などの以下の処理が
while((line = br.readLine()) != null)
Kotlinだと、Assignments are not expressions, and only expressions are allowed in this context
のエラーになるんですが、Kotlinだとどう書いたらいいんでしょうか
2017/10/31(火) 21:38:42.83ID:kBfCDZdZ
>>981
let{ ... } が null を飛ばしてラムダ式を実行することができるのはあくまで副次作用に過ぎない
条件分岐させたいのなら素直に when か if で書くべき

>>982
File(path).forEachLine { line -> println(line) }
984デフォルトの名無しさん
垢版 |
2017/10/31(火) 21:39:06.81ID:cTxMPZq4
>>981
普通に if 使って書けば良いのでは?
2017/10/31(火) 21:55:55.33ID:7/FAMo7N
>>981
?: run {}
2017/10/31(火) 22:06:34.40ID:mFIgmMeH
data?.let {
  ...
}?: {
  ...
}.invoke()
というのを見つけたんですが、?: run {}の方がいいんでしょうか
2017/10/31(火) 22:10:44.21ID:BGaLFLkz
癖のある言語ですね・・・
2017/10/31(火) 22:16:51.16ID:kBfCDZdZ
>>986
だから条件分岐は条件分岐として書いてくれ
letはもともと

val hoge = Hoge()
hoge.mes1()
hoge.mes2()

と書く代わりに

Hoge().let{ it.mes1(); it.mes2() }

と書くことができるという構造だ
条件分岐の代わりに使っていいものじゃない
ネット上で観測される彼らは「間違っている」
参考にしてはならない
2017/10/31(火) 22:20:26.16ID:mFIgmMeH
えー。letってNULLチェック代わりに使うものじゃなかったの
2017/10/31(火) 22:28:56.76ID:kBfCDZdZ
nullチェックは ?. の部分だ
letの中身が長くなればなるほど、それはletで書くべきではないということになる
今ここでこれ使うと1行で書けて変数に入れられるぜえ、とかだとapplyとか使うの考えるがまあその程度

letをnull回避として紹介してた人が今どんだけそれを日常的に使ってるかは個人的に興味があるよ
最初の紹介で使っただけなんじゃないかと思うんだよねえ

>>990超したので新スレおねがいします
2017/10/31(火) 22:29:35.46ID:6MYbZ/26
Wikipediaとか参考文献にしてそう
2017/10/31(火) 22:47:55.01ID:wyGoJvua
そもそものもともととして.?じゃ本当にnullが来たとき対処できないじゃないか
checkNotNull(value){ "valueがnullです" }
とかしないと不安にならないの
2017/10/31(火) 23:34:28.34ID:E21Np2eC
それならKotlin使うのやめろよ
2017/10/31(火) 23:39:23.74ID:u3Drl61J
>>992
何言ってんの
2017/10/31(火) 23:49:38.22ID:BBLfUUwS
>>989
https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e
996デフォルトの名無しさん
垢版 |
2017/11/01(水) 00:08:55.25ID:jxmKQQAl
次スレ

http://mevius.5ch.net/test/read.cgi/tech/1509462463/

2ch.net でないとうまく開かない専ブラの人は以下のURL

http://mevius.2ch.net/test/read.cgi/tech/1509462463/
2017/11/01(水) 00:46:22.34ID:1EENXbRG
x.?let {} ?: run {} は letのとこのブロックがnull返すと x がnullじゃなくても run のブロック実行しちまうだろ
x.?also {} ?: run {} にしとけよ
2017/11/01(水) 00:52:45.72ID:pp6VRjc6
>>992
?. を書いてメソッドチェーンを繋げなければならない状況自体、なにかおかしいからな
とっとと非nullを確定させるのが妥当
しかもわざわざスコープ内で覚えててくれるんだから、利用しない手はない
2017/11/01(水) 02:02:04.51ID:x/3omok5
999
2017/11/01(水) 02:02:35.06ID:x/3omok5
1000
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 613日 0時間 16分 34秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。