■ このスレッドは過去ログ倉庫に格納されています
Kotlin
- 1 :デフォルトの名無しさん:2016/02/27(土) 01:46:01.68 ID:Ag8w7//2.net
- JetBrainsが開発した期待の新言語Kotlinについて語りましょう
https://kotlinlang.org
- 2 :デフォルトの名無しさん:2016/02/27(土) 01:53:02.07 ID:M1op650Q.net
- Android開発ばかり注目されているけどサーバーサイドでも使っていきたいね。KotlinかわいいよKotlin。
- 3 :デフォルトの名無しさん:2016/02/27(土) 02:03:58.29 ID:kilaRF3z.net
- ようやくスレ立ったか
C#erにオススメ
- 4 :デフォルトの名無しさん:2016/02/27(土) 02:09:59.86 ID:sN4Pn2/e.net
- >>3
ようやくスレ立ったか
じゃねえよハゲ
望んでたなら自分で立てろやカス
- 5 :デフォルトの名無しさん:2016/02/27(土) 02:41:02.12 ID:hI6CEqxt.net
- 拡張子はktなのか
- 6 :デフォルトの名無しさん:2016/02/27(土) 09:41:53.54 ID:nQV2L2HM.net
- どこからダウンロードできますか?
IDEじゃなくてKotlin本体だけが欲しいです
- 7 :デフォルトの名無しさん:2016/02/27(土) 10:37:17.40 ID:kilaRF3z.net
- >>1のリンク先、ちょっとスクロールするとDownload Compilerってのがある
>>4
まだ禿てねえよハゲ
- 8 :デフォルトの名無しさん:2016/02/27(土) 11:14:47.56 ID:hI6CEqxt.net
- IDE使わなくても、gradleにロードさせるのが簡単なんじゃないの?と思ったが
公式見たら kotlinc が用意されてるのな
- 9 :デフォルトの名無しさん:2016/02/27(土) 11:25:26.53 ID:0K1cdFU/.net
- >>3
何故、C#er?
- 10 :デフォルトの名無しさん:2016/02/27(土) 13:08:04.60 ID:nQV2L2HM.net
- これからダウンロードして勉強しようと思ったんですけど
僕はJavaの知識がないんですよ
やっぱりJavaをひと通り学んでからKotlinを使うほうがいいですか?
- 11 :デフォルトの名無しさん:2016/02/27(土) 17:28:47.93 ID:kilaRF3z.net
- >>9
Kotlinちょっとしか触ってないけどC#と類似点多くね?
・プロパティ
・拡張関数=拡張メソッド
・ジェネリクスのin、out、where
・オーバーライド元メソッドにopen/virtualが必要
かつてはアノテーションもC#風だったけど、今はjava風に変わった
- 12 :デフォルトの名無しさん:2016/02/27(土) 18:39:50.54 ID:KsPOIQ1H.net
- 内包表記は無いの?
- 13 :デフォルトの名無しさん:2016/02/27(土) 18:40:22.18 ID:ip4T9kfk.net
- >>11
C# に比べて何がいいの?
- 14 :デフォルトの名無しさん:2016/02/27(土) 18:50:05.98 ID:KsPOIQ1H.net
- チラッと調べただけだけど
・パターンマッチ
・名前つきタプル
・Data Class
・null非許容型
C#7.0に欲しいものばかりw
- 15 :デフォルトの名無しさん:2016/02/27(土) 19:15:03.68 ID:D+WCAKrD.net
- Javaを勉強せずにJavaFXアプリ作れますか?
- 16 :デフォルトの名無しさん:2016/02/27(土) 20:17:24.82 ID:DzbbisjT.net
- >>15
むり
- 17 :デフォルトの名無しさん:2016/02/27(土) 21:07:35.07 ID:yBj0ji6/.net
- またJVMか…
泥アプリ制作が流行ってるから仕方ないのかね
- 18 :デフォルトの名無しさん:2016/02/27(土) 22:22:55.81 ID:hI6CEqxt.net
- 開発してるJetBrains自身が、JVM上で動く製品を開発してる会社だからな
自分達の製品にもKotlin使ってるみたいだよ
- 19 :デフォルトの名無しさん:2016/02/27(土) 22:29:02.97 ID:hI6CEqxt.net
- 公式の1.0リリースの日本語のページがあった
http://blog.jetbrains.com/jp/2016/02/17/578
- 20 :デフォルトの名無しさん:2016/02/27(土) 23:39:23.79 ID:KsPOIQ1H.net
- 複数の属性を持てるenumも便利そう。
これもC#7.0に欲しいw
- 21 :デフォルトの名無しさん:2016/02/28(日) 21:01:32.18 ID:qX9WRNgF.net
- scalaと比べてどうなの?
jetbrainsが自社のプロダクトで使ってるといっても、サーバサイドでは話はきかないね。
- 22 :デフォルトの名無しさん:2016/02/28(日) 21:12:49.92 ID:mEuTbruV.net
- https://kotlinlang.org/docs/reference/comparison-to-scala.html
scalaで幸せなら不要だって
spring mvcは普通に動く
たぶんplayもいけるんじゃね
- 23 :デフォルトの名無しさん:2016/02/28(日) 21:51:31.38 ID:qX9WRNgF.net
- なるほど、springやEEが自然に利用できるなら、kotlin製のフレームワークに固執する必要はないか。
- 24 :デフォルトの名無しさん:2016/02/28(日) 21:55:17.88 ID:qX9WRNgF.net
- Karaといframeworkはあるけど、Githubを見たところそこまで活発ではなさそう。cssをtye safeに書けるのは面白そうだけど
- 25 :デフォルトの名無しさん:2016/03/09(水) 20:13:43.33 ID:ZmUAjtzS.net
- Kotlinはフレームワーク次第
- 26 :デフォルトの名無しさん:2016/03/09(水) 21:54:57.77 ID:MLkdPiKR.net
- javaのフレームワークがそのまま使えるのがいいんだろ
- 27 :デフォルトの名無しさん:2016/03/09(水) 22:12:21.73 ID:TWWKX9/D.net
- ビルドツールもそのまま使えるしな
- 28 :デフォルトの名無しさん:2016/03/11(金) 23:43:17.01 ID:RA7SR1be.net
- 英語もしゃべれねぇくせにどいつもこいつも新興言語に騙されおって
新興宗教じゃねぇんだから
- 29 :デフォルトの名無しさん:2016/03/12(土) 00:46:03.37 ID:w4nC79sm.net
- Kotlinを使うプロジェクトが増えないとKotlinの技術者が増えない
Kotlinの技術者が増えないとKotlinを使うプロジェクトが増えない
- 30 :デフォルトの名無しさん:2016/03/12(土) 01:43:46.52 ID:A9rdrO/7.net
- intellij使ってる人が興味持ってくれればなあ
- 31 :デフォルトの名無しさん:2016/03/13(日) 23:49:03.71 ID:Vr1n8FvPJ
- 英語しゃべれるけどKotlinに興味持ってる
- 32 :デフォルトの名無しさん:2016/03/14(月) 16:38:06.42 ID:ONULiEU5.net
- Kotlinって書籍とかがまだ全くないな
- 33 :デフォルトの名無しさん:2016/03/14(月) 17:49:52.49 ID:jDfMkT0o.net
- まぁまだ1.0がリリースされたばかりですし
- 34 :デフォルトの名無しさん:2016/03/14(月) 18:13:22.66 ID:rxc3Byav.net
- 2011年から死んでる
- 35 :デフォルトの名無しさん:2016/03/14(月) 20:49:46.27 ID:ste1llL9.net
- 今から勉強しようかと思うんだけど、駄目なの?
- 36 :デフォルトの名無しさん:2016/03/14(月) 22:51:22.51 ID:7NRac0Aa.net
- 1.0.0がリリースされたばかりだからタイミングいいよ
一応破壊的変更はしないとか言ってたような
- 37 :デフォルトの名無しさん:2016/03/15(火) 09:16:40.95 ID:4EDSiDUj.net
- Androidアプリの開発にkotlin使ってるけどいい感じよ
ラムダが使えるのとDSLがね
拡張メソッドも作れたり
- 38 :デフォルトの名無しさん:2016/03/16(水) 17:48:01.10 ID:SWFG0n+i.net
- 勉強するのも使うのも全く自由なんだけど、
こんなマイナー言語で何する気?
目的をはっきりさせようや。
何もできるんだよ?
- 39 :デフォルトの名無しさん:2016/03/16(水) 17:48:37.27 ID:SWFG0n+i.net
- *何ができるんだよ。
- 40 :デフォルトの名無しさん:2016/03/16(水) 18:36:21.30 ID:BFPYGSUK.net
- >>38
Javaより優れた言語でJVMで動くアプリケーションを書ける
- 41 :デフォルトの名無しさん:2016/03/16(水) 21:09:15.92 ID:ol/uA8ay.net
- Ceylon とどっちがいいの?
- 42 :デフォルトの名無しさん:2016/03/16(水) 21:57:29.33 ID:OWx848x5.net
- >>40
すでにScalaという先客がいる
- 43 :片山博文MZ ◆T6xkBnTXz7B0 :2016/03/16(水) 22:05:50.83 ID:l9Y8vSPn.net
- ♪ことりん、ことりん。
- 44 :デフォルトの名無しさん:2016/03/16(水) 22:15:09.55 ID:ItRpyeBM.net
- scalaに対しての優位点はコンパイル速度と、javaとの親和性?
文法的にもcontinueとbreakが使えて、自由度の高いreturnとthisがあるか
inlineもscalaとかなり違う?
- 45 :デフォルトの名無しさん:2016/03/17(木) 12:46:00.12 ID:8D5exYrn.net
- scalaは難しすぎるよね
- 46 :デフォルトの名無しさん:2016/03/17(木) 14:24:01.95 ID:y+SO78pF.net
- JavaScriptでいいじゃん
- 47 :デフォルトの名無しさん:2016/03/17(木) 17:34:00.53 ID:Lr213s2+.net
- Kotlinはかわいい。Scalaはキモい。
Kotlinが普及するように、俺も微力ながらブログにKotlinネタ書いていくよ。
- 48 :デフォルトの名無しさん:2016/03/17(木) 21:05:02.80 ID:8D5exYrn.net
- 普及するために何が足りないか?
- 49 :デフォルトの名無しさん:2016/03/17(木) 22:30:53.09 ID:6lVX3tiR.net
- 世界的な有名サービスがKotlinで記述されたらかなり影響はある
- 50 :デフォルトの名無しさん:2016/03/18(金) 11:16:52.22 ID:PaeRr1p1.net
- enumがメソッド持てるのがリージョンコードを複数の表現で返すenum作るときに便利だったな
あと、whenがif elseの変わりに使えて可読性がいいのが好き
- 51 :デフォルトの名無しさん:2016/03/18(金) 13:04:13.88 ID:7TGL3g0b.net
- enumがメソッド持てるのはJavaも一緒でしょ
- 52 :デフォルトの名無しさん:2016/03/18(金) 19:30:40.78 ID:Ri+xB30N.net
- プログラミング初心者なんですけどKotlin習得するのには2〜3年はかかる?
- 53 :デフォルトの名無しさん:2016/03/18(金) 20:27:52.77 ID:itkpzA44.net
- 初心者は情報の多い言語を使うべき
入門書とかが出てからじゃないと無理
- 54 :デフォルトの名無しさん:2016/03/18(金) 20:46:02.24 ID:Ri+xB30N.net
- >>53
ありがとう
無難にJavaScriptやってみます
- 55 :デフォルトの名無しさん:2016/03/23(水) 18:25:49.69 ID:q4NyJu3s.net
- >>54
将来kotlinをやるんだったら
javascriptじゃなくてjavaね。
- 56 :デフォルトの名無しさん:2016/03/23(水) 19:30:06.44 ID:IjQfzLPy.net
- つーかおまえらコトリンの響きで選んでるだろ
- 57 :デフォルトの名無しさん:2016/03/23(水) 21:00:38.88 ID:Sy6dDY9b.net
- 名前は凄く重要
- 58 :デフォルトの名無しさん:2016/03/23(水) 21:40:59.87 ID:r6iJqmyn.net
- スカラに比べたら言語のランタイムない(よね?)のがメリットとか
- 59 :デフォルトの名無しさん:2016/03/24(木) 08:58:18.85 ID:9L/DvAgg.net
- >言語のランタイム
?
- 60 :デフォルトの名無しさん:2016/03/25(金) 19:03:36.81 ID:7CoDARGW.net
- Javaとソース互換を壊すという致命的欠陥を自らしておいて、
なおかつ既存言語とのソース互換が何もないのなら使えませんよね。
過去のソースとの互換のためにN88-BASIC互換言語を作りましたとかいうほうがまだ使い道がある。
独自言語で作ったものはソースの墓場になる。
末長く残るソースを作れない。
- 61 :デフォルトの名無しさん:2016/03/26(土) 12:14:43.51 ID:XHWY3LTw.net
- >>60
いま普及してる言語だって、スタートラインは独自言語(っていう表現はどうかと思うが)だったわけでw
- 62 :デフォルトの名無しさん:2016/03/26(土) 12:42:36.47 ID:lc2ldByq.net
- バックエンドでKotlin使いたいんだけど、おすすめのWebフレームワークとかDBフレームワークあったら教えてください。Spring Bootがかなりいい気がするけど特にDBフレームワークが困ってます。
- 63 :デフォルトの名無しさん:2016/03/26(土) 14:29:17.16 ID:ENkp8QGX.net
- >>61
俺を忘れるなよ...
C++
- 64 :デフォルトの名無しさん:2016/03/26(土) 16:15:03.51 ID:H9bcXfYg.net
- >>61
C++とアップルのObjective-Cは、C言語上位互換。
- 65 :デフォルトの名無しさん:2016/03/27(日) 00:37:01.30 ID:tuBIqIOP.net
- Swiftがクソ過ぎるのは誰もが知ってるんだから触れてやるなよ
- 66 :デフォルトの名無しさん:2016/03/28(月) 00:51:03.64 ID:h3cCXmjq.net
- KotlinとSwiftってそんな違う? 似たようなもんじゃ
JavaやObCと比べりゃ
- 67 :デフォルトの名無しさん:2016/03/29(火) 00:00:43.96 ID:1pY1OkRW.net
- >>60
javaライブラリを呼べるjvm上で動くプログラミング言語なんていっぱいあるやん
- 68 :デフォルトの名無しさん:2016/04/01(金) 20:35:42.53 ID:vSPHDFRv.net
- さびれすぎ
- 69 :デフォルトの名無しさん:2016/04/02(土) 10:51:29.00 ID:3UiLT1dE.net
- >>67
ライブラリを呼んでもしょうがないだろ
普通のJavaのソースをコンパイルしたらエラーになるんじゃ意味ないわ
- 70 :デフォルトの名無しさん:2016/04/03(日) 00:40:39.84 ID:ZV9NMQt1.net
- Android向けKotlinのロードマップ
http://blog.jetbrains.com/jp/2016/03/30/639
- 71 :デフォルトの名無しさん:2016/04/03(日) 13:51:35.58 ID:4I/r7xwS.net
- Googleが公式サポート表明してくれたら最高なんだけどな。
- 72 :デフォルトの名無しさん:2016/04/04(月) 18:10:35.02 ID:F20gyuD1.net
- >>71
正直無理な話だよね。
kotlinのほうがいい理由を必死こいて考えるよりは素直にJavaやっとけよ
マイナーという不利益を納得して使うものだが、君は納得できていない。
- 73 :デフォルトの名無しさん:2016/04/06(水) 21:23:24.57 ID:2V81Qvo2.net
- >>69
??
そりゃ別の言語ですし
jvmで動く言語で互換性がある言語自体珍しくね?
jarから呼び出せればいいと思う
- 74 :デフォルトの名無しさん:2016/04/08(金) 10:30:14.19 ID:swQw/RPS.net
- GoogleはAndroidの第一言語、つまりJavaに置き換わるものとして、Swiftのサポートを検討しているらしい。
泣きそう。
- 75 :デフォルトの名無しさん:2016/04/08(金) 13:03:55.45 ID:UcK710Vt.net
- >>74
Swiftもいい言語だから、そうなったらなったでJavaのままよりはありがたいけどな
- 76 :デフォルトの名無しさん:2016/04/08(金) 20:59:07.38 ID:Im1g3EY5.net
- javaの資産()はどうなるの
- 77 :デフォルトの名無しさん:2016/04/08(金) 22:32:48.96 ID:uKgtJKvS.net
- マジかよSwiftやってみるわ
- 78 :デフォルトの名無しさん:2016/04/08(金) 23:37:04.56 ID:T8jUewN4.net
- クソ言語流行らそうと必死なんだな
- 79 :デフォルトの名無しさん:2016/04/09(土) 00:49:54.84 ID:gQ4mSWZC.net
- >>74のネタはこの記事だと思うが
http://thenextweb.com/dd/2016/04/07/google-facebook-uber-swift/
記事の中ではgoogleがkotlinの採用も検討していると書いてあるぞ
ただしコンパイルが遅いのと
できたばかりの言語なのでコミュニティが小さい事がネックらしい
- 80 :デフォルトの名無しさん:2016/04/09(土) 19:22:37.10 ID:Q/bwh4yI.net
- AndroidのJavaの問題は言語ではなくJavaプラットフォーム(の海賊版)にあるのに言語だけ変えても意味無いだろ
- 81 :デフォルトの名無しさん:2016/04/10(日) 05:02:23.23 ID:OMjoBoPQ.net
- とはいえJavaライブラリのインタフェースに関する権利をOracleが主張してたりとかJava言語による問題も多いだろうし、そこだけ解決できるのでも結構違うのでは。Javaプラットフォームごと捨てるのはさすがに現実的ではないでしょうし。
- 82 :デフォルトの名無しさん:2016/04/12(火) 14:39:07.24 ID:tcJgF5lM.net
- >>81
OracleはJava APIに権利があると主張しているのであってJava VMを使う以上、他の言語に変えても同じ。
OpenJDKなど、Oracle公認のフリーのJava/Java VMもあるわけで、Javaは使い続けるでしょう。
今開発プレビュー版が出ているAndroid Nは、初めてOpenJDKのライブラリを使っているわけで。
Java 8対応、新しいJackコンパイラの登場など大進化を見せている状況でJavaを捨てるとか有り得ない。
Javaから別の言語に変えることを検討中という記事は信用できない。
現時点無視してよいかと。
もっと信頼できるネタが出てから気にしたほうが賢明。
- 83 :デフォルトの名無しさん:2016/04/12(火) 15:18:33.45 ID:9HGJ3JQs.net
- >>82
てことはAndroid N以降はOracleとの訴訟の件は関係ないってことになる?
あと、その考え方だと、kotlinを正式採用の方が現実味あるのかな
- 84 :デフォルトの名無しさん:2016/04/12(火) 20:56:18.12 ID:Rk5bS0ji.net
- KotlinよりScalaの方がありそう
- 85 :デフォルトの名無しさん:2016/04/12(火) 21:30:53.05 ID:zxlf4Ltj.net
- >>83
OpenJDKはOracle公認だから、使い方にもよるかも知れないけどGoogleがOracleに責められずにフリーで使える可能性はある。
ただ、Oracleはライセンス料が欲しいわけだからあの手この手で金を要求しようとすると思う。
Swiftよりはkotlinのほうがまだ可能性はあると思うがGoogleがサポートする必要性が薄いとも思う。
- 86 :デフォルトの名無しさん:2016/04/12(火) 21:35:28.14 ID:ZWvwh7J9.net
- >>84
Androidでscalaは辛いらしい
何が辛いのかよく分からんけど
- 87 :デフォルトの名無しさん:2016/04/12(火) 21:46:26.86 ID:3ZquNVD8.net
- Scalaはビルドツールが糞
- 88 :デフォルトの名無しさん:2016/04/12(火) 21:51:27.23 ID:tRZrs4lg.net
- scalaって標準ライブラリのサイズがでかくなかった?
- 89 :デフォルトの名無しさん:2016/04/13(水) 09:06:47.77 ID:E2Yhqe8e.net
- >>84
そう?Scalaが普及しはじめてから何年も経つけど、GoogleがScalaに興味を示したことってあったっけ?
- 90 :デフォルトの名無しさん:2016/04/16(土) 21:14:12.15 ID:1vFpn8v7.net
- JavaのOO畑で関数型とかよく分からんしってマルチパラダイム言語の第一歩によさそうだなKotlin
名前も可愛いし
- 91 :デフォルトの名無しさん:2016/04/16(土) 22:47:26.92 ID:rMj3oXBU.net
- Kotlinってあんまり関数型要素ないだろ
関数型度はJava8と大して変わらん
- 92 :デフォルトの名無しさん:2016/05/01(日) 10:54:20.06 ID:tKi6j9CT.net
- 匿名通信(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的に分散され、特定のサーバーに依存しません
z
- 93 :デフォルトの名無しさん:2016/06/19(日) 22:31:14.76 ID:eVkfK1tp.net
- 話題なさすぎじゃね
- 94 :デフォルトの名無しさん:2016/08/06(土) 23:21:47.71 ID:DcF8zl9X.net
- javaに触らすいきなりkotlinから
アンドロイド開発に入門するのって無茶ですかね?
そういうコンセプトの入門書とかないかな
- 95 :デフォルトの名無しさん:2016/08/07(日) 00:17:57.07 ID:ImwDssOT.net
- 無茶というか無意味な縛りプレイだよ
Java分からないとサンプルコード読めないじゃん
- 96 :デフォルトの名無しさん:2016/08/08(月) 11:17:38.46 ID:tg5qo0Cy.net
- 無意味な縛りですかね。javaの構文自体は平易だからandroidとセットでkotlinの構文が学べたほうがいいなのかなと
- 97 :デフォルトの名無しさん:2016/08/08(月) 22:59:13.69 ID:/KkOsDFd.net
- じゃあ聞くなよ
- 98 :デフォルトの名無しさん:2016/08/09(火) 07:51:56.25 ID:qoHYj2J7.net
- じゃあ尚更Javaでいいだろ
KotlinなんかJavaやったあとなら一瞬でマスターできるからどうでもいい
- 99 :デフォルトの名無しさん:2016/08/10(水) 09:10:55.40 ID:rQiddDUo.net
- お前ら
ことりん
という響きが好きなだけちゃうんかと
- 100 :デフォルトの名無しさん:2016/09/21(水) 00:39:02.10 ID:UYN6tSg/.net
- (・8・)
- 101 :デフォルトの名無しさん:2016/11/10(木) 04:01:41.16 ID:5wJA0ZNT.net
- 日本人は流行に乗りたがるけどすぐ飽きるね
名前に釣られただけで結局流行りそうにない
- 102 :デフォルトの名無しさん:2016/11/14(月) 23:59:31.98 ID:wCV5pHeX.net
- scalaと比べていいところってある?
ユーザ数はscalaのほうが多いだろうしどっちやろうか迷ってる
- 103 :デフォルトの名無しさん:2016/11/15(火) 00:56:14.67 ID:r0bdrrlQ.net
- カオスじゃない
Javaとの完全な互換性がある(Scalaは事実上一方通行)
Scalaに比べれば遥かにまともな言語だよ
Scalaはとりあえず全部ブチ込んでみただけの実験言語で、本来実用に使うようなもんじゃない
- 104 :デフォルトの名無しさん:2017/01/09(月) 20:37:51.41 ID:4w5Vtztw.net
- Kotlin vs Ceylon
- 105 :デフォルトの名無しさん:2017/01/11(水) 13:27:31.23 ID:ejV+8ohg.net
- Gradle3.xでKotlinがサポートされたのって、普及に影響する?
- 106 :デフォルトの名無しさん:2017/01/11(水) 17:14:25.25 ID:qSPp3nGT.net
- Groovyがそこまで普及してるか?
つまりそういうこと
- 107 :デフォルトの名無しさん:2017/01/12(木) 21:33:12.76 ID:ArceXZLM.net
- >>106
なるほど納得した。ありがとう。
- 108 :デフォルトの名無しさん:2017/01/17(火) 06:25:55.49 ID:/OTVP4TW.net
- EclipseでKotlinしている人っている?
- 109 :デフォルトの名無しさん:2017/01/18(水) 21:56:09.40 ID:nmk83e0+.net
- あるオープンソースのコードを呼んでてIDEで飛べないクラスがあって調べたらKotlinを見つけた
どう使い分けるんだろう
- 110 :デフォルトの名無しさん:2017/01/20(金) 09:01:11.60 ID:fIQqHT5d.net
- >>109
普段はJavaを使っているけど
BigIntegerで数値計算するとか、raw stringでスクリプト生成するときだけ
Kotlinでクラス作成するという用途なら理解できなくもない。
- 111 :デフォルトの名無しさん:2017/03/02(木) 22:58:10.37 ID:aTDCpX5l.net
- JavaScriptが書けるようになったと聞いて
- 112 :デフォルトの名無しさん:2017/03/02(木) 23:03:06.74 ID:6rwxIFtV.net
- それよりコルーチンだよ
名前がいいよね
- 113 :デフォルトの名無しさん:2017/03/11(土) 08:06:57.61 ID:vLyp82+E.net
- >>112
コルーチン...ロシア人かな? Kotlinだけに。
- 114 :デフォルトの名無しさん:2017/03/27(月) 12:32:22.63 ID:zxMW45Gj.net
- go->goroutine
Kotlin->koroutine
ってこと?
- 115 :デフォルトの名無しさん:2017/04/13(木) 10:00:40.79 ID:p+wJDHjt.net
- んーcoroutine、便利さを挙動の理解の混乱が上回ってる..w
かえって複雑になりそう
- 116 :デフォルトの名無しさん:2017/04/14(金) 10:49:57.90 ID:rxkV6/uG.net
- >>115
coroutineって「状態を持つ」ような気がするんだけど、
関数型プログラミングのイミュータブルであるべきという
考え方に逆行しているという理解であってますか?
- 117 :デフォルトの名無しさん:2017/04/15(土) 00:40:02.53 ID:5VFPMUgC.net
- >>116
なんちゃって関数型プログラミングでは状態の局所化に役立つ便利な道具だと思うよ
ステートマシンなどという糞を排除できる
- 118 :デフォルトの名無しさん:2017/04/16(日) 13:23:05.16 ID:FOOthHC9.net
- 一つのクラスに複数のアノテーション持てない感じ?
- 119 :デフォルトの名無しさん:2017/04/18(火) 07:19:21.21 ID:q56THeJt.net
- このスレで言うのもなんだが、初心者の質問はTwitterで投げるのがいいよ
普及させたい人が定期的に検索して拾ってくれるから
- 120 :115:2017/04/22(土) 21:58:39.69 ID:8rHjbk1S.net
- >>115
オブジェクトのように「フィールド」に「値」を状態として持つのではなく、
coroutineは「コード上」に「まだ実行されていない処理」を状態として持つから
複雑で分かりにくいんじゃないかなと思いました。
>>117
coroutine自体がステートマシンだと書いてあるものを見たのですが、
ステートマシンが局所化されるモナドのような何か?(わかってない)
- 121 :デフォルトの名無しさん:2017/04/23(日) 10:19:21.32 ID:9Bq1d30L.net
- suspend関数ってコルーチンの中でしか使えないってことは、そこらじゅうlaunchの類だらけになるってこと?笑
まだ滅多に使用例のってるブログとかみかけないね。
生き残れるのか?これw
>>120 https://github.com/pljp/kotlin-coroutines/blob/japanese_translation/kotlin-coroutines-informal.md#状態マシン
- 122 :デフォルトの名無しさん:2017/04/28(金) 17:34:29.34 ID:80AWOTNk.net
- ことりん擬人化まだ?
- 123 :デフォルトの名無しさん:2017/05/01(月) 23:00:23.52 ID:+TVy5Krd.net
- Rubyの、p, pp みたいに、自動的に、コンテナ内を展開して、
中のオブジェクトを、コンソールに表示してくれる、デバッグ用関数はありますか?
p コンテナ・オブジェクト
- 124 :デフォルトの名無しさん:2017/05/04(木) 00:18:07.49 ID:lRx89izX.net
- ない
そんなもんIDEのデバッガで止めて見ればいいだろ
- 125 :デフォルトの名無しさん:2017/05/04(木) 00:39:59.73 ID:7TNYL3q7.net
- それはダサいわ
- 126 :デフォルトの名無しさん:2017/05/13(土) 22:26:26.42 ID:UQoi629m.net
- なんか折りたたみすぎるんだよな〜
- 127 :デフォルトの名無しさん:2017/05/18(木) 03:33:23.69 ID:DKg0Na73.net
- 大勝利キタ━━━━(゚∀゚)━━━━ !!!!
- 128 :デフォルトの名無しさん:2017/05/18(木) 03:35:35.85 ID:Wz6O2oVO.net
- きたな
- 129 :デフォルトの名無しさん:2017/05/18(木) 03:38:32.99 ID:l26+mVZr.net
- まじか
- 130 :デフォルトの名無しさん:2017/05/18(木) 08:19:21.98 ID:6xLYhPbf.net
- アプデかなんか来たの?
- 131 :デフォルトの名無しさん:2017/05/18(木) 08:34:44.83 ID:eCnYzL6s.net
- Androidでのファーストクラスサポートだそうですよ
- 132 :デフォルトの名無しさん:2017/05/18(木) 08:35:35.63 ID:zgtLgueR.net
- Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin.
だって。
- 133 :デフォルトの名無しさん:2017/05/18(木) 09:08:10.23 ID:PzmNC1sh.net
- ファーストクラスってなんですか?
- 134 :デフォルトの名無しさん:2017/05/18(木) 09:13:30.93 ID:zw0yFHDv.net
- ビジネスクラスより上
- 135 :デフォルトの名無しさん:2017/05/18(木) 09:37:46.74 ID:cqnkW2Fd.net
- 例の訴訟絡みでjvm捨てると思ってたんだがなあ
- 136 :デフォルトの名無しさん:2017/05/18(木) 10:06:03.05 ID:L+z+Rh5o.net
- 記念アゲ (・8・)
- 137 :デフォルトの名無しさん:2017/05/18(木) 12:11:08.36 ID:zgtLgueR.net
- Android Studioで標準サポートになる、つうことだろ。
- 138 :デフォルトの名無しさん:2017/05/18(木) 12:12:50.95 ID:NEKf9u2/.net
- 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/
- 139 :デフォルトの名無しさん:2017/05/18(木) 12:17:09.11 ID:w2PMjkvW.net
- GWにkotlin始めて書きやすいなと思ってた俺大勝利
- 140 :デフォルトの名無しさん:2017/05/18(木) 12:38:42.71 ID:zgtLgueR.net
- >>138
今までのJava資産を活かしながらシームレスに移行できる、というのが大きい。
その意味でc#はありえん。
- 141 :デフォルトの名無しさん:2017/05/18(木) 12:57:50.54 ID:3vvtk3AJ.net
- いまJavaを使ってる人を救うことを考えたらまずはKotlinだろうね
- 142 :デフォルトの名無しさん:2017/05/18(木) 13:16:17.63 ID:XKDAC558.net
- まじかよ
コトリン大好きな俺大勝利じゃん
祝杯や
- 143 :デフォルトの名無しさん:2017/05/18(木) 13:21:33.03 ID:9vmsiCj/.net
- やったぜ
- 144 :デフォルトの名無しさん:2017/05/18(木) 13:23:06.77 ID:yATb/f/P.net
- えっちだぁw
- 145 :デフォルトの名無しさん:2017/05/18(木) 15:12:54.92 ID:d+oDyp66.net
- 日本Kotlinユーザグループ代表、長澤 太郎
Kotlinスタートブック -新しいAndroidプログラミング、2016
WEB+DB vol.94 の特集が、Kotlin, Electron
m, 10
a, 5
m, 2
こういう行区切りのデータがある時、文字列・数値の順番で、ソートするにはどうするの?
- 146 :デフォルトの名無しさん:2017/05/18(木) 15:28:16.59 ID:/Shfsuc2.net
- KotlinじゃなくSwiftでも良いのにな
確か、Android向けのクロスビルドができるようになってたろ
- 147 :デフォルトの名無しさん:2017/05/18(木) 16:57:05.60 ID:sDwtWkJp.net
- AppleがGoを公式採用するくらいあり得ないことだな
- 148 :デフォルトの名無しさん:2017/05/18(木) 17:15:26.94 ID:zgtLgueR.net
- >>146
今までのjava資産を考えるとありえん。
appleは悪い意味でおかしい。
- 149 :デフォルトの名無しさん:2017/05/18(木) 18:29:24.60 ID:xYh7ZO1T.net
- 競技プログラミングでKotlinを覚えるか…
- 150 :デフォルトの名無しさん:2017/05/18(木) 23:54:53.47 ID:s8Za2vto.net
- >>71
念願かなったね。おめでとう。
- 151 :デフォルトの名無しさん:2017/05/19(金) 08:25:10.64 ID:Yy4p2hUQ.net
- >>145 自己レス
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
- 152 :デフォルトの名無しさん:2017/05/19(金) 13:20:04.25 ID:JnsQ7Gr+.net
- ニュース見て始めて半日くらいの調べもの堪え性のない人が質問です!
それはそうと初心者スレとか質問スレとかあってもいいかもしれないですね!
>>> 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
入ってる数字をあとで計算とかに使いたいだけなんですがどこの考え方間違ってるんでしょうか
- 153 :デフォルトの名無しさん:2017/05/19(金) 20:24:00.83 ID:t+9TXaRk.net
- >>71
おめ
- 154 :デフォルトの名無しさん:2017/05/19(金) 20:34:19.80 ID:Ig6oJN7I.net
- >>72
これは恥ずかしいwwww
- 155 :デフォルトの名無しさん:2017/05/19(金) 22:29:26.32 ID:HhPXEO/A.net
- じゃ今後のAndroidのライブラリにはKotlinで書かれてるものの出てくるのかな?
- 156 :デフォルトの名無しさん:2017/05/20(土) 00:38:31.20 ID:ap8WyFQI.net
- それはないだろう
- 157 :デフォルトの名無しさん:2017/05/20(土) 02:32:08.53 ID:WmFfeyqJ.net
- >>152
map[何々]が、nullable だから。
map[1]は存在するけど、map[4]なら存在しない
map[1].plus(5)なら、map[1](レシーバー)がnullableだから、
null.plus(5)の場合にバグるから、?. null許容演算子を使う
- 158 :デフォルトの名無しさん:2017/05/20(土) 15:30:08.83 ID:LOC45URm.net
- Javaの仕様がそのまま引き継がれてるんだな
Listのgetのインデックスが範囲外だとIndexOutOfBoundsException例外で
Mapのgetのキーが存在しない場合は例外じゃなくてnull返すのね
- 159 :デフォルトの名無しさん:2017/05/20(土) 15:41:06.41 ID:8ml7mLK3.net
- getOrNullとかあるよ
- 160 :デフォルトの名無しさん:2017/05/20(土) 19:38:14.41 ID:NqXZxUdZ.net
- Android StudioでのIntelliJ Kotlinプラグインが公式サポートされただけでAndroid System LibにKotlinクラス群が入ったわけじゃないんだよなぁ
>>155
今までと変わらずやる気になれば出るし、やる気にならなければ出ない程度かと
別段メリットがあるようには思えないけど、誰かKotlin Androidライブラリプロジェクトテンプレート作ってくれよ
- 161 :デフォルトの名無しさん:2017/05/20(土) 20:11:09.01 ID:LOC45URm.net
- 企業内での使用はGoogle公式かどうかですごい影響あるよ
- 162 :デフォルトの名無しさん:2017/05/21(日) 10:31:28.30 ID:4E+x2A2G.net
- これをきにコトリンを始める人がいっぱいいそうだが
ほとんど人が挫折するんだろうな
- 163 :デフォルトの名無しさん:2017/05/21(日) 10:35:53.77 ID:W3P4J6B5.net
- こんな簡単な言語で挫折する要素とは
- 164 :デフォルトの名無しさん:2017/05/21(日) 10:40:32.81 ID:tBEndF3S.net
- Kotlin言語そのものは難しくないがJavaの言語に加えて
Javaのライブラリまで含めて覚えないといけなそうだから
C#より敷居が高い
- 165 :デフォルトの名無しさん:2017/05/21(日) 11:08:54.99 ID:h5RyjkDf.net
- kotlinにはtypescriptのtsserverみたいに補完機能はないんでしょうか?
- 166 :デフォルトの名無しさん:2017/05/21(日) 11:33:04.16 ID:W3P4J6B5.net
- 第一級開発言語に指定したんやからfwは全てkotlinラッパを出すやろ
- 167 :デフォルトの名無しさん:2017/05/21(日) 12:33:48.18 ID:sr6r/1gA.net
- ?なvarをif != null したら!!いらないようにしてほしいな〜
valに入れ直すのはスマートじゃないよ
- 168 :デフォルトの名無しさん:2017/05/21(日) 13:24:08.34 ID:tU5Dlyyu.net
- >>157
似たようなとこで詰まってた
Nullableでご安全にする理屈はわかるけど連想配列の利用法としては煩雑だね
覚えとくしかないか
それともこのへん便利な格納構造があるのかな
- 169 :デフォルトの名無しさん:2017/05/21(日) 18:45:53.63 ID:UuW+xgyM.net
- >>> 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)
>>158の言う通り、究極的にはこのしょーもない内部仕様のせいである
この仕様を知ってる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安全のない言語から来た人はふんす!!ってなると思われ
- 170 :デフォルトの名無しさん:2017/05/21(日) 20:26:44.09 ID:9L9dm7b/.net
- >>164
C#文法とC#ライブラリを学習するよりは楽そう
>>166
Java APIをKotlin APIに透過的に見せるからラッパーの用意すら要らんでしょ
- 171 :デフォルトの名無しさん:2017/05/21(日) 20:46:52.64 ID:RH0jdAto.net
- 最終的に訴訟のネタにもなってるjavaを切り離す方向まで行かないんですかね。
- 172 :デフォルトの名無しさん:2017/05/21(日) 21:44:40.19 ID:mFn/WD+c.net
- VMの問題なんだからいまさらどうしようもないだろ。
- 173 :デフォルトの名無しさん:2017/05/21(日) 22:54:56.67 ID:1evlh7eH.net
- Ruby, JS などで、メソッドチェーンすると、
nil オブジェクトから、メソッドを呼べないと言う、
No Method Error なんて、しょっちゅう起こるし、
メソッドチェーンはテストも、しにくい
- 174 :デフォルトの名無しさん:2017/05/22(月) 01:22:13.90 ID:yjMvX9x8.net
- 素のkotlinでは使えるけどAndroidのkotlinでは使えないのってある?
- 175 :デフォルトの名無しさん:2017/05/22(月) 01:48:31.03 ID:97nOcTMK.net
- Nullableかどうかは書き手が決められるのがステキとか言っておきながら
mapOfだと"暗黙の"Nullableになるように見えるのが初心者的にキモいという主張だろう
誰もNullableの有用性の議論などしてない
読点君には理解できんだろうが
- 176 :デフォルトの名無しさん:2017/05/22(月) 06:16:11.80 ID:jD5FXPee.net
- >>171-172
VMじゃなくAPI(ライブラリ実装)の問題でしょ
Sun(現Oracle)の作った全Java APIを放棄してKotlinで一から作れば訴訟問題からは無関係になれる
まぁ、GoogleもJetbrainsもお互いに「お前がやれ」とか思ってそうだけど
Google: KotlinはJetbrainsのモノなんだから、JetbrainsがKotlin APIを整備するべき
Jetbrains: Java訴訟はGoogleの問題なんだから、GoogleがKotlin APIを整備するべき
- 177 :デフォルトの名無しさん:2017/05/22(月) 08:14:55.23 ID:fxLikn6a.net
- map を実装する場合、普通は、2種類書く
そのキーが無い場合、
null を返すものと、例外をthrow するもの
nullable になるのは、null を返すもの
- 178 :デフォルトの名無しさん:2017/05/22(月) 08:34:20.91 ID:7g15jPZv.net
- >>176
VMの方のAPIだよ。
言語の方のAPIだけの問題なら、OpenJDKだけで解決してしまうだろが。
- 179 :デフォルトの名無しさん:2017/05/22(月) 09:45:07.45 ID:WLj9ZHQ7.net
- >>178
確かそのapiのインターフェース自体に著作権があるというのがoracleの主張だったはず
- 180 :デフォルトの名無しさん:2017/05/22(月) 09:46:09.30 ID:jD5FXPee.net
- OpenJDKにもVM実装は含まれてるんだけどなw
Oracle JVMとOpenJDK JVMで微妙に要件や振る舞い違うって業界の人は頭抱えるけどまぁ誤差か
- 181 :デフォルトの名無しさん:2017/05/22(月) 09:46:23.44 ID:NZ0IuE42.net
- 擬人化まだかよ
無能どもめ
- 182 :デフォルトの名無しさん:2017/05/22(月) 09:52:42.83 ID:WLj9ZHQ7.net
- >>176
Androidのapiインターフェースの話をしてるんだからgoogleじゃない?
でもjavaと切り離すなんてできないだろうから、少しずつやってくしかないね。
コレクション系の独自実装とか始まったりして
swiftもobjective-cの文字列型とswiftの文字列型があってapiインターフェース呼び出しの際に暗黙の型変換が行われてた。
そんな感じになるのかな。かなりキモいけど
- 183 :デフォルトの名無しさん:2017/05/22(月) 18:40:23.05 ID:jD5FXPee.net
- 「apiインターフェース」の「頭痛が痛い」みたいな表現、嫌いじゃない:D
>>161
その昔、Apple公式だからという点のみで流行ったSwiftという言語があってな・・・
あれも技術を知らない企画屋がそんな感じで企業内採用を提案したんだよな、嫌な事件だったね
- 184 :デフォルトの名無しさん:2017/05/23(火) 19:42:46.96 ID:dGC6uRRV.net
- null非許容って使ってみると地味に結構不便だな…
今までとは根本的に設計方針を変えなきゃならないものがあるなぁ…
- 185 :デフォルトの名無しさん:2017/05/23(火) 19:49:01.45 ID:IihgumLk.net
- var a : String? = null
- 186 :デフォルトの名無しさん:2017/05/23(火) 20:27:48.65 ID:oZAHFLLi.net
- 型安全でないnull使うより、その型のnull定数を定義するほうが楽だよ。
- 187 :デフォルトの名無しさん:2017/05/23(火) 20:49:32.53 ID:Hx0L3jS4.net
- val hoge;
{
- 188 :デフォルトの名無しさん:2017/05/23(火) 21:06:38.96 ID:cBJ7DVw+.net
- null参照の概念は10億ドル単位の過ちってそれ一番言われてるしなw
偉人の言葉を信仰心と共に信じるべし
- 189 :デフォルトの名無しさん:2017/05/23(火) 21:36:52.74 ID:gX8pe08F.net
- ぬるぽ
- 190 :デフォルトの名無しさん:2017/05/24(水) 01:18:07.88 ID:9HF6LZlN.net
- >>184
?使うだけなのに何言ってんの?
大昔の案件で引数には必ずnullチェックを入れるというコーディング規約があって、保守性は下がるし規約に従わないやつはいるしで散々だった。
- 191 :デフォルトの名無しさん:2017/05/24(水) 12:26:54.17 ID:t8jtcsol.net
- intellij、if式を折りたたまないようにするオプションはどこですか?
- 192 :デフォルトの名無しさん:2017/05/24(水) 12:44:50.63 ID:t8jtcsol.net
- >>190
たとえばintefaceのnotnullなプロパティを亜種的なクラスでnullableにオーバーライド、できないよねぇ。
個人レベルの開発ならそこらへんの曖昧さはかえって便利な場合もあったんだけどね。
まぁ最初から全部nullableにしちゃえば済む話だが9割の非nullに全部?なり!!を付けるのはキモい。
javaコードをそのまんまkotlinコードに移行は、できなくはないけどキモいコードになる。
- 193 :デフォルトの名無しさん:2017/05/24(水) 14:28:45.40 ID:Fp8uMQ/t.net
- Λ_Λ \\
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >_Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>189
- 194 :デフォルトの名無しさん:2017/05/24(水) 15:15:47.70 ID:9HF6LZlN.net
- >>192
わざわざnullableなプロパティを含むインターフェースを使う意味がわかんない。ちゃんとnullチェックして渡せば良いじゃない。
- 195 :デフォルトの名無しさん:2017/05/25(木) 00:19:31.03 ID:Mhkkcekf.net
- >>194
自分もそんなコードが欲しくなるとは予想しなかったけどな笑
nullであることを利用して動作変える派生クラスをkotlin化しようとして躓いたわ。
結局設計を変えることで対応したけどね。javaで使えてたトリッキーな手は使えなくなった不便さがあるね、便利さの陰に。
まぁ慣れの問題だが。
- 196 :デフォルトの名無しさん:2017/05/25(木) 04:40:51.77 ID:FYZ1kIH6.net
- androidだとonCreateで初期化するような変数はnullableにしなきゃいけないのかと思ってたけど、lateinitってあるのね
個人的にはそこそこ使うから@とかの記号にしてほしかったけど
- 197 :デフォルトの名無しさん:2017/05/25(木) 06:20:09.08 ID:5itOJ4P9.net
- プロパティが、最初からデフォルト値を持っていたら、ダメなのか?
どうしても、nullが必要なのか?
- 198 :デフォルトの名無しさん:2017/05/25(木) 08:51:21.17 ID:iRBHnHtq.net
- nullオブジェクト使わないの?
- 199 :デフォルトの名無しさん:2017/05/25(木) 09:21:48.18 ID:VyhgnQr+.net
- 関数の戻り値の型ならnullable欲しいな
戻り値がnullになるとき毎回exceptionをthrowするのかって話
- 200 :デフォルトの名無しさん:2017/05/25(木) 09:23:32.29 ID:E3n3KUhW.net
- え?ww
- 201 :デフォルトの名無しさん:2017/05/25(木) 09:37:46.25 ID:VyhgnQr+.net
- 例えば数値を文字列として格納してるデータをファイルとかDBとかから取り出すとき
その値は数値としてしか使わないけどもしかしたらnullな場合もある
getter関数作るのにgetterでは必ず文字列として取得して変換可能か判断してから数値にする処理を毎回するか変換できなかったらcatchするのか
そんな場合なnullableがあれば外からみた関数の使い方はシンプルにできる
- 202 :デフォルトの名無しさん:2017/05/25(木) 11:19:50.16 ID:iRBHnHtq.net
- だからnullオブジェクトを用意して使えって。
型安全でないnullなんか窓から投げ捨てろ。
- 203 :デフォルトの名無しさん:2017/05/25(木) 11:20:19.76 ID:5itOJ4P9.net
- 入力欄のオプショナルな項目か
携帯電話を持っていれば、その番号を記入して、みたいな奴か
- 204 :デフォルトの名無しさん:2017/05/25(木) 11:26:27.67 ID:/eJUHzjl.net
- 頭が時代についていってないようだなw
- 205 :デフォルトの名無しさん:2017/05/25(木) 22:55:58.94 ID:HKNQp0n4.net
- 元々はアドレスだったことを思い出せば功罪がわかる
- 206 :デフォルトの名無しさん:2017/05/26(金) 05:24:14.29 ID:Yn8sEtTn.net
- >>197
同じようなことを考えたことがあったけど、「実行時エラーは悪」という考えにとらわれると、
間違った値(デフォルト値)のままエラー無しに処理が進んでしまうのは実行時エラーよりたちが悪い
ということを忘れがちになる。
>>198
使用頻度を考えるとnullオブジェクトをいちいち定義するよりnullチェックのほうがましな
変数の方が多いと思われる。
また、nullオブジェクトはどんな状況で使われても適切な結果を返すように実装しなければ、
上で述べたデフォルト値の問題を起こすことになるから、ミスのないデフォルトを
設定すること自体が難しい場合もあると思う(使用経験が少ないからわからない)。
- 207 :デフォルトの名無しさん:2017/05/26(金) 07:38:30.45 ID:Mhihnqx0.net
- >>206
今時はなるべく完全コンストラクタを使って最初に一括で初期化し、
後は一切変更できないクラス設計が好まれるんだよ
C#は見境なく大量のgetsetプロパティを持つクラスを定義するバカが多いけど
- 208 :デフォルトの名無しさん:2017/05/26(金) 09:51:12.09 ID:5tQUvAE5.net
- kotlin/nativeに期待
- 209 :デフォルトの名無しさん:2017/05/26(金) 10:10:41.46 ID:5tQUvAE5.net
- nullチェックはもうちょっと痒いところまで手が届くといいね
たとえば if(a == 0 && b?. == "hoge") {...} で2つめはnullならパスしてくれる
みたいに書けたら便利
- 210 :デフォルトの名無しさん:2017/05/26(金) 10:24:21.56 ID:Heb9aC5z.net
- nullを使わなければいいと思うよ
- 211 :デフォルトの名無しさん:2017/05/26(金) 11:15:12.27 ID:+T40nrdw.net
- >>206
コンパイルエラーにできるものを実行時に処理するのは良くない設計だな。
型無しのnullを使うとコンパイルエラーに出来なくなる。
nullオブジェクトでも実行時エラーは処理できるから、必要ならそうすりゃいいし。
- 212 :デフォルトの名無しさん:2017/05/26(金) 11:16:41.50 ID:4K0JCbpq.net
- いぐざくとりいい!
- 213 :デフォルトの名無しさん:2017/05/26(金) 12:12:06.77 ID:5tQUvAE5.net
- >>210 と、いわれても既存APIにはnullableだらけだからなぁ
- 214 :デフォルトの名無しさん:2017/05/26(金) 12:28:01.13 ID:Heb9aC5z.net
- そのAPIの中はそれで良いと思う
今後作るAPIについては別に過去をなぞる必要はないとも思うよ
- 215 :デフォルトの名無しさん:2017/05/26(金) 12:46:21.42 ID:ZNc2U8qB.net
- >>208
これってiosもうごくの?
- 216 :デフォルトの名無しさん:2017/05/26(金) 22:05:46.36 ID:xRlJL6be.net
- Kotlin/NativeをAndroid(NDK)で動かしたい
- 217 :205:2017/05/27(土) 00:21:30.12 ID:q99eAiGg.net
- >>211
およそ
nullがコンパイルエラーになる > 適切に設計されたnullオブジェクト >
nullチェック > 実行時NPE > 不適切なnullオブジェクトでエラー無しに誤った処理が進む
という順位なので>>211とは特にそれほど見解の相違はないと思う。
nullオブジェクトは必ず容易かつ適切に設計できることを暗黙の前提とするかどうかが相違点かな。
- 218 :デフォルトの名無しさん:2017/05/27(土) 00:39:18.95 ID:IRYfzUqY.net
- tensorflowをサポートするらしいけど、どうせならpython自体を扱えるのを目指してくれたらいいのに
- 219 :デフォルトの名無しさん:2017/05/27(土) 06:06:26.16 ID:q99eAiGg.net
- ハマったので備忘録程度に。
Kotlin/JSで@JsNameの使いどころは、公式ドキュメントでは
In some cases (for example, to support overloads),
となっているが、引数ありのトップレベル関数はoverloadしていなくても
@JsNameをつけないとトランスパイル後の名前が変えられる模様。
- 220 :デフォルトの名無しさん:2017/05/27(土) 07:44:00.03 ID:3w92Yrys.net
- >>218
目指すの意味がさっぱり分からんけど、kotlinじゃなくjython使うのじゃダメなの?
- 221 :デフォルトの名無しさん:2017/05/27(土) 18:48:51.46 ID:q99eAiGg.net
- >>220
たぶん>>218はCPythonのライブラリをKotlinから使いたいのであって、
JavaやKotlinで書かれたものをPythonで呼び出したいのではないと思う。
JythonはPython3に対応するめどもなさそうだし....
- 222 :デフォルトの名無しさん:2017/05/27(土) 20:22:15.32 ID:IRYfzUqY.net
- そうそう、kotlinから直接pythonライブラリ使えたらいいなー、と。それだけ。
JetBrainsならやってくれそうなんじゃないかとw
jython、そうなんだよ、開発止まってない?
- 223 :デフォルトの名無しさん:2017/05/27(土) 20:26:08.40 ID:IRYfzUqY.net
- >>215 そしてついにはJVMと決別とか
- 224 :デフォルトの名無しさん:2017/05/27(土) 20:30:57.73 ID:3w92Yrys.net
- > 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を叩くのが一番楽だと思います
- 225 :220:2017/05/28(日) 07:09:50.42 ID:L+V4SXEt.net
- >>224がどの程度Pythonに詳しいかわからないけど、PythonのライブラリはPythonだけでなく
C言語などを混ぜて書かれていることも多いので、
> Pythonコード(CPythonのライブラリ)をJVM上に読み込んで
ということ自体ができないと思う(自分もそこまで詳しくないから確証はない)。
Pythonで書かれているライブラリでもPython3に移行しているので、Python2ベースのJythonには
使えないし。
あと>>224はJVM前提みたいだけど>>222はKotlin/NativeみたいにJVMから離れて
CPythonのインタプリタ上で(あるいはCPythonのAPIを呼び出しながら)Kotlinを実行する
ことを想定しているからかみあわないんだと思う。
> 素直にKotlinからtensorflowのJava APIを叩くのが一番楽だと思います
tensorflowはその通りだけど、>>218はそれ以外のScipyみたいなライブラリのことを
言っているんだと推測。
- 226 :デフォルトの名無しさん:2017/05/28(日) 08:47:56.63 ID:1kfTQYrn.net
- >>222はKotlinコンパイラでPythonコードをコンパイルしたいって言ってるから一旦理解したが
>>225は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への移行をやらず枯れきった性質だと思うぞ
- 227 :デフォルトの名無しさん:2017/05/28(日) 11:11:04.40 ID:E43+dK8Z.net
- >>225 普通に空気読んでくれてありがとねー笑
>>226 現実に今すぐ俺がkotlinでPythonライブラリ使いたいと言ってるわけじゃないんで、見当違いだが詳しい解説ありがとねー
JBはiOSにもネイティブでkotlinを対応させようとしてるくらいだし
方向性としてすべての分野でkotlinを使えるようしようとの野心をもってるらしいし
もとものkotlinは産業用に開発してると謳ってるわけだけど
tensorflowに対応させるなんて発表聞けば、研究分野、この場合機械学習だけども、にも
ターゲットを広げたんかな、と
ならばいっそのことpythonライブラリ全般を使えるような開発をやってくれたら
さらにいろいろ広がるんじゃないか、とそういう期待
PyCharmとか出してるくらいだし
まぁ人的資源とかの関係もあるだろうから優先順位低いだろうけどね
googleだってもしかしてJVMと決別を視野に入れてkotlin/nativeを評価したのかもしらんし?
- 228 :デフォルトの名無しさん:2017/05/28(日) 11:26:10.28 ID:E43+dK8Z.net
- 現にFuture plansには入ってるんだよね、Data analysis and Scientific Computingが
どうやって実現する予定なのかはわからんけど
- 229 :デフォルトの名無しさん:2017/05/28(日) 11:36:02.32 ID:E43+dK8Z.net
- それとも何か?この科学技術計算ターゲットってのは
もしかしてイチからkotlinで科学技術計算ライブラリ
もしくはコミュニティまで作ろうってことなのか?
まさかtensorflowに対応で完結じゃあるまい?w
いずれにせよJBが近い将来どんな具体策を出してくるのか、非常に楽しみである
- 230 :デフォルトの名無しさん:2017/05/28(日) 12:40:24.58 ID:ZXIsROaD.net
- JVMもPythonも知らない素人だった
相手した二人共これには苦笑い
- 231 :デフォルトの名無しさん:2017/05/28(日) 14:33:07.68 ID:ew7wH7J4.net
- kotlin見てみたけどこれscalaをオチンポ向けにした言語やな
- 232 :デフォルトの名無しさん:2017/05/28(日) 15:01:49.36 ID:YXueBn2b.net
- オチンポ向け…
- 233 :デフォルトの名無しさん:2017/05/28(日) 15:13:25.48 ID:SqJWukL/.net
- >>231
詳しく
- 234 :デフォルトの名無しさん:2017/05/28(日) 15:22:28.26 ID:asHVM9Q4.net
- 全然知らないで書くけど
Javaと同等の事をKotlinで出来るの?
- 235 :デフォルトの名無しさん:2017/05/28(日) 17:38:26.84 ID:9pcvjMzo.net
- できるんでないかな
Javaの呼び出しもシームレスにできるしな
- 236 :デフォルトの名無しさん:2017/05/28(日) 19:16:55.76 ID:QwjzxVOm.net
- Kotlin = Scala + Groovy(Rubyも同じ)
Javaでは、nullを除去できない
Javaには、Primitive があるけど、
Kotlinでは、すべてがオブジェクト
Java ←変換可能→ Kotlin
クロージャのデフォルト引数は、it を使う
第2引数のラムダ式を、引数の外に出せる、糖衣構文あり
関数(引数, { it })
関数(引数){ it }
toString, equals, hashCode の3種の神器を、最初から持っている、データクラスがある
- 237 :235:2017/05/28(日) 19:22:45.75 ID:QwjzxVOm.net
- >Javaには、Primitive があるけど、
>Kotlinでは、すべてがオブジェクト
実行速度を上げるため、primitiveを使う方法もある
- 238 :デフォルトの名無しさん:2017/05/28(日) 20:49:50.31 ID:ZXIsROaD.net
- 途中からJavaとの違いからKotlinの特徴になっててイマイチ、、、
とりあえず、Javaとおなじこと出来るでいいんでね
- 239 :デフォルトの名無しさん:2017/05/28(日) 23:18:36.68 ID:IZz0cLMX.net
- 初歩的な質問とかしていい?
ByteArray使いたいときって
val a = byteArrayOf(0x80.toByte(), 0xCA.toByte(), ...)
みたいに.toByte()ってつけなきゃいけないん?慣れるまで見づらいな…
- 240 :デフォルトの名無しさん:2017/05/28(日) 23:55:52.52 ID:C6P4TIAg.net
- いろいろ考え方はあるのだと思うけども
なにかコレクションがあって、それ全てに何か処理をして返して欲しいときはmapが使える
>>> val array = arrayOf("aaa","bbb","ccc").map{ it.toUpperCase() }
>>> array
[AAA, BBB, CCC]
- 241 :デフォルトの名無しさん:2017/05/29(月) 23:11:46.19 ID:Vfa09dL5.net
- >>239
Kotlinは通常キャストはされないが、byteはリテラルがないからかリテラルだけは型推論されて、
val bytes = byteArrayOf(0x01, 0x02)
というのは型検査を通る模様。
- 242 :デフォルトの名無しさん:2017/05/31(水) 22:55:29.26 ID:JH+W+dlz.net
- kotlinでjsってどんな感じ?
typescriptの型情報取り込めると知って
ちょっと気になってきた。
type scriptより関数型が強めだから幸せになれそう
- 243 :デフォルトの名無しさん:2017/06/01(木) 10:14:24.94 ID:2LgcCNqk.net
- hasteやGHCjsじゃ駄目なん?
- 244 :デフォルトの名無しさん:2017/06/01(木) 10:55:02.44 ID:AXJF1Amn.net
- 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() )
- 245 :デフォルトの名無しさん:2017/06/01(木) 22:36:13.65 ID:FF0Uww0g.net
- ファイルの整形処理で少しカジッてみたけど、ファイルIOはJavaのAPIと古い?関数と新しい?関数が混在してて、Googleの海をさ迷ったよw
kotlinのsequenceを返すreadLinesが欲しかったんだけど、見つけきれなかったので自作した。
既存であるのかな?
- 246 :デフォルトの名無しさん:2017/06/01(木) 23:40:24.53 ID:wljaouQ8.net
- lineSequence()とかuseLines()とか?
- 247 :デフォルトの名無しさん:2017/06/02(金) 22:36:46.10 ID:x3ElWORK.net
- androidアプリってscriptの方で作れますか?
kotlinc -script
- 248 :デフォルトの名無しさん:2017/06/04(日) 01:46:21.69 ID:MOnNXU8r.net
- ヘイ親方質問
ファイルをShift_JISで保存してもUTF-8で保存しても
fun main(args: Array<String>){
println("日本語です")
}
が特段のオプションなしのkotlincでコンパイル可能で
特段のオプションなしkotlinでWindowsコマンドプロンプトに無事表示可能なんだけども
これはいったいどのへんが気を遣ってくれてるんですかね
- 249 :デフォルトの名無しさん:2017/06/07(水) 14:34:22.11 ID:SSzPpmQQ.net
- >>145-151
自己レス。データクラスを使った
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)
- 250 :デフォルトの名無しさん:2017/06/16(金) 14:28:27.40 ID:xoha/0nR.net
- C#やってる人にとって凄く扱いやすかったりする?
ちなみに母ちゃんのあだ名がコトリン
- 251 :デフォルトの名無しさん:2017/06/16(金) 14:48:16.06 ID:+s2fXv0/.net
- 母ちゃんモダンな名前なんやね
- 252 :デフォルトの名無しさん:2017/06/16(金) 14:58:47.38 ID:TF51QW3i.net
- 古都りん
- 253 :デフォルトの名無しさん:2017/06/16(金) 14:59:56.64 ID:TF51QW3i.net
- 秋の奈良レンタサイクル“古都りん” - 奈良県自転車利用総合案内サイト
nara-cycling.com/rent-a-cycle/
- 254 :デフォルトの名無しさん:2017/06/16(金) 15:20:11.64 ID:dTWIGOSM.net
- >>248
kotlinじゃなくてJavaの仕様でしょ。
- 255 :デフォルトの名無しさん:2017/06/19(月) 11:01:48.86 ID:heYb3DeP.net
- なんでgoogleはkotlinをアンドロイドアプリの公式言語にしたの?
なんでgolangじゃないの?
オラクルとの訴訟もあるのにjavaを切ったほうがいいんじゃないの?
- 256 :デフォルトの名無しさん:2017/06/19(月) 12:12:39.67 ID:xaFoAOZp.net
- java切ってどうなるか考えればわかるだろう
- 257 :デフォルトの名無しさん:2017/06/19(月) 21:05:24.63 ID:snSfABSo.net
- >>255
オラクルとの訴訟での争点は言語じゃなくてAPI
言語を何にしようが無関係
- 258 :デフォルトの名無しさん:2017/06/21(水) 02:18:15.32 ID:CAzvCkNY.net
- >>255
使ってみればわかるけどgolangってメタプログラミングな部分が弱いから
既存のシステムの置き換えに向いてる言語ではないと思う。
新たに1から構築するなら可能性はあるけど。
- 259 :デフォルトの名無しさん:2017/06/21(水) 02:21:47.43 ID:CAzvCkNY.net
- >>257
これ。でも段階的にjavaに頼らないようにしていくのかもね。
コレクション系がandroid用に別実装になるとかあれは面白い。
あとオラクルにjavaから離れるアピールして圧力をかける政治的意図もあると思う
- 260 :デフォルトの名無しさん:2017/06/21(水) 02:29:38.77 ID:sE0qxZss.net
- JetBrainsうまうまってこと?
- 261 :デフォルトの名無しさん:2017/06/21(水) 02:33:39.09 ID:jljDxrF/.net
- Jetbrains買収あるか?
- 262 :デフォルトの名無しさん:2017/06/21(水) 02:59:48.56 ID:CAzvCkNY.net
- むしろ、なんで買収しないんだろな。
つーかjetbrainが謎すぎて。
なんで一社であんなに幅広くide作れるのかが謎
- 263 :デフォルトの名無しさん:2017/06/21(水) 05:02:56.13 ID:wPEHzi2i.net
- なんか怪しい力働いてるよなjetbrainsって
- 264 :デフォルトの名無しさん:2017/06/21(水) 07:39:22.48 ID:MgLtlgFl.net
- 理解できないことを怪しいって言うのは悪い癖だぞ
- 265 :デフォルトの名無しさん:2017/06/21(水) 07:48:18.50 ID:aInzLc5f.net
- 共通のベースに言語乗せてるだけだし、開発なんかほとんどオフショアだろ
- 266 :あ:2017/06/21(水) 08:05:49.79 ID:iG5W0fvY.net
- Kotlin nativeも頑張ってるしな。
結構そっちにも期待。
- 267 :デフォルトの名無しさん:2017/06/21(水) 10:55:07.74 ID:GDsri7KT.net
- >>266
同意
- 268 :デフォルトの名無しさん:2017/06/22(木) 01:10:45.12 ID:77+4f1XL.net
- >>266
これが本格的に動き始めたらswiftの存在意義が、、、、、無くなるよね
- 269 :デフォルトの名無しさん:2017/06/22(木) 07:18:08.18 ID:Ti1xVgu4.net
- ラットナーがjetbrainsに転職するってマジ?
- 270 :デフォルトの名無しさん:2017/06/22(木) 09:16:59.96 ID:yA4QDZF/.net
- >>268
swiftのが言語仕様は優れてる
- 271 :デフォルトの名無しさん:2017/06/22(木) 09:32:44.22 ID:6k72kRRJ.net
- Swift on Androidが地味に進んでるからそっちも期待
一定量の完成度が見込めたらKotlinから移行するのも良いかも
- 272 :デフォルトの名無しさん:2017/06/22(木) 11:33:55.45 ID:szHtJQ50.net
- >>271
地味に進んでるって、Xamarin Androidのように、SwiftからJavaのAndroid APIを呼び出す仕組みが用意されつつあるの?
それが出来なきゃKotlinの代わりにはならんよ
- 273 :デフォルトの名無しさん:2017/06/22(木) 12:05:57.96 ID:E8iNX+8Y.net
- kotlin/nativeでndkを使いたい
sdk側とndk側で同じ言語使えたら開発楽だと思う
- 274 :デフォルトの名無しさん:2017/06/22(木) 12:16:58.77 ID:szHtJQ50.net
- >>273
それ何のためにNdk使うの?
- 275 :デフォルトの名無しさん:2017/06/22(木) 13:02:54.50 ID:6k72kRRJ.net
- Kotlin.NativeからObjCが叩けるようになるのが先か
SwiftからJavaが叩けるようになるのが先か
どっちも現実的にはないわな
まぁそれでも言語/フレームワークの開発が絶賛進行中のSwiftの方に夢があるかな
- 276 :デフォルトの名無しさん:2017/06/22(木) 13:14:48.12 ID:3yY7lcXH.net
- >>274
画像加工とかはndkで処理したい
- 277 :デフォルトの名無しさん:2017/06/22(木) 14:17:05.90 ID:szHtJQ50.net
- >>276
その用途だとKotlin nativeじゃ多分意味無い
Nativeコードに変換すればc++で書いたのと同じ性能が出るというわけじゃないからね
- 278 :デフォルトの名無しさん:2017/06/22(木) 19:32:17.15 ID:eBYfVtnR.net
- >>277
llvmのコード吐くんじゃないの?
- 279 :デフォルトの名無しさん:2017/06/22(木) 19:42:12.44 ID:wKDRovrw.net
- いやJVMは十分速いよ?
C++でもJavaと同じように書いたらパフォーマンスは大差ない
C++が速くなるのは低レベルな汚いハックができるからで、それができないならあまり意味がないということだろ
- 280 :デフォルトの名無しさん:2017/06/22(木) 19:55:38.89 ID:mgpLFN+F.net
- >>278
kotlinから変換されたllvmコードは、kotlinの言語仕様を満たすために、
例えばメモリ管理はガベージコレクションが前提となるから
その為の少し大きめなランタイム付いてくるはず
境界チェックのようなc++なら省略できるコードも漏れなく付いてくるはず
- 281 :デフォルトの名無しさん:2017/06/22(木) 22:21:35.91 ID:3yY7lcXH.net
- >>277
c++ほどの速度は出ないのね
結構早くなると思って期待したんだけど
>>279
以前画像にブラー処理掛けたときは結構違った
- 282 :デフォルトの名無しさん:2017/06/23(金) 09:47:11.55 ID:hp7X3mpn.net
- それは言語の違いではなくアルゴリズムの違いではなかろうか
もしくはJavaヒープ/Nativeヒープの性能差分ならByteBufferを使う手もある
そこまで考慮するくらいなら素直にC/C++使った方が幸せだけど
ByteBufferはGC走りづらいから性能良いんだけど普通は使わないよねぇ
- 283 :デフォルトの名無しさん:2017/06/23(金) 10:01:06.35 ID:9PTuVR6v.net
- ByteBuffer(もしくはそれと同様の使い方をするプリミティブ配列)がGCの性能に大きな影響を与えるって一体どんな状況?
バッファは長時間使い回すんだからGCなんかほとんど関係ないだろ
GCの負担になるほど頻繁に生成しまくるとかアホなことしてるとしても、その場合はネイティブヒープの方が割当時のオーバーヘッドの分かえって遅くなりそうだし
- 284 :デフォルトの名無しさん:2017/06/24(土) 03:52:32.49 ID:QlqTymbl.net
- メモリ管理とかよりさ
JVMやDEXの中間コードからJITされたコードの場合、SIMDとかの特殊なCPU命令はまず使ってくれない
つまり十分に最適化されたネイティブコードに勝てる見込みはまずない
最適化されたライブラリの一つであるlibjpeg-turboみたいなのをアプリから使うときに
libjpeg-turboのAPIを一つ一つJNIでラップするのと
libjpeg-turboのAPIをNDKで利用してからアプリ固有のAPIだけJNIでラップするのと
どっちがリソース管理が楽かは言うまでもない
この「NDKで利用して」をKotlin Native でより安全に書けるのなら、価値はありそうだな
- 285 :デフォルトの名無しさん:2017/06/24(土) 04:16:45.08 ID:qquEaJ2M.net
- んなこたない。
JITでSIMDぐらい普通に使われるし、
むしろ事前に最低限サポートするCPUを決めてそれに足を引っ張られる事前コンパイルより、実行しているCPUの拡張命令を最大限使えるJITの方が効率的なコードになる事もある。
- 286 :デフォルトの名無しさん:2017/06/24(土) 06:57:58.73 ID:bDbRpy30.net
- どっちなのさ!
- 287 :デフォルトの名無しさん:2017/06/24(土) 09:27:02.16 ID:32e8D3Wy.net
- JITコンパイラの性能次第
- 288 :デフォルトの名無しさん:2017/06/24(土) 09:54:27.72 ID:LXfJ84Bv.net
- Dalvik, ARTどころかOracle JVMですらSIMDは扱うよ
>>283
俺が使った時は、Androidでnew byte[1024]がOutOfMemoryでByteBuffer.allocate(1024)は通るような状況(実際は1KじゃなくM単位
画像加工を試みたんだけどbyte配列のままで処理しようとしたら分割操作が必要になってクッソ重たいのwww
- 289 :デフォルトの名無しさん:2017/06/24(土) 10:51:37.84 ID:iOfeax4r.net
- ByteBufferのAPI嫌いだな
Javaの過剰設計の伝統ここに極まれりって感じ
- 290 :デフォルトの名無しさん:2017/06/24(土) 15:08:57.88 ID:LXfJ84Bv.net
- NIOが出た当初も評判良くはなかったよねー, ないと困ることは確かにあるんだけど必要とする人は少ないし
それでも当時は仮想マシンを謳うくせにこんな基本機能もないのかよって風聞で過剰どころか不足と言われ
1.4は標準ライブラリを大量に追加しようってリリースだったから仕方ない
- 291 :デフォルトの名無しさん:2017/06/26(月) 14:38:34.02 ID:Wfn5YHgL.net
- ByteBufferはdirectがあるからまぁ必要。
- 292 :デフォルトの名無しさん:2017/06/27(火) 08:01:46.32 ID:7qLYNCF8.net
- 間接的にお世話になってることも知らずに文句言ってるアホばっか。
- 293 :デフォルトの名無しさん:2017/06/27(火) 08:19:48.98 ID:p7AYCZKI.net
- エンジン構造も知らずに車に文句付けてるってくらい論点が異なるよ
使う側であれば別に中身を意識しなくていいんだよ
- 294 :デフォルトの名無しさん:2017/06/27(火) 08:45:00.53 ID:+gpX7LUM.net
- >>289とかはエンジンなんて車にいらねーって言ってるんだけどなw
- 295 :デフォルトの名無しさん:2017/06/27(火) 12:59:12.87 ID:thSLzROj.net
- APIに文句言ってるだけじゃね
Javaが使いにくいからとKotlin使ってるお前らにそれを批判する資格はない
- 296 :デフォルトの名無しさん:2017/06/27(火) 14:24:44.78 ID:xkXC4vKS.net
- 実際問題java apiからkotlinを切り離すのはわりと簡単だったりするの?
google内で独自apiを作ってたりして
- 297 :デフォルトの名無しさん:2017/06/27(火) 16:52:29.37 ID:rNyRMSOh.net
- 余裕やろうな
やる価値があるかは別として
- 298 :デフォルトの名無しさん:2017/06/27(火) 17:26:00.35 ID:JXIPCy9a.net
- 技術云々でなく普及のための絡みで難しそうだな
- 299 :デフォルトの名無しさん:2017/06/27(火) 19:50:52.50 ID:GY2ar0Yu.net
- Java APIじゃなくJava Libraryだとするなら、そこを切り離して実用に耐えるにはJava1.4くらいには過剰設計しないと無理じゃね
- 300 :デフォルトの名無しさん:2017/06/28(水) 03:27:10.10 ID:4SuBLGV6.net
- >>297
googleってそういうの不得意な気がする。
なんかいろいろ作りっぱなし感がすごい
- 301 :デフォルトの名無しさん:2017/06/28(水) 03:57:50.54 ID:ULDUfAbu.net
- GoogleとOracleってまだちょっと揉めてるん?
- 302 :デフォルトの名無しさん:2017/06/28(水) 09:52:23.47 ID:1HRXLIL1.net
- >>300
またOracleから技術をパクれは余裕綽々よ
しかし、あれは酷かったよなw
JVMのスポンサー/共同開発に名を連ねたと思ったら
その数年後にAndroid発表してSun JVMじゃなく自前のDalvik VM使うからwwwってSunを切り捨てる暴挙
そりゃ技術をパクられたSun(Oracle)はブチキレるわ
Googleはもうパクらないだろうから、Jetbrainsがパクることを期待しようか
- 303 :デフォルトの名無しさん:2017/06/28(水) 11:09:49.25 ID:fPVyfCmw.net
- >>302
Androidは何もパクってないが
捨てられたApache Harmonyを引き継いだだけやし現時点ではOpenJDKになるってし
元を正せばOSS化を進めてたウンコOracleが突然APIのライセンスだなんだ
- 304 :デフォルトの名無しさん:2017/06/28(水) 11:10:28.02 ID:fPVyfCmw.net
- と喚き散らしたことのほうがどう考えても筋違いや
Oracleはキチガイ集団
- 305 :デフォルトの名無しさん:2017/06/28(水) 12:55:43.96 ID:n0wEK4ez.net
- 当時、Sun JVMはクローズドソースでVMの中の人どころか、Java層のAPIも非公開だったろ...
ノウハウパクっておいてApache JVMから引き継いだだけだからってのは盗人猛々しいわw
- 306 :デフォルトの名無しさん:2017/06/28(水) 13:02:32.04 ID:WVoz31+g.net
- >>305
JavaのAPIが非公開だったってそれまでJavaプログラマは何を見て書いてたんだよ。
- 307 :デフォルトの名無しさん:2017/06/28(水) 13:09:21.41 ID:1HRXLIL1.net
- 面倒な奴だなぁ
APIとLibraryを区別する気はないのかと思ったら、そこは区別するのかよ
- 308 :デフォルトの名無しさん:2017/06/28(水) 13:45:27.56 ID:fPVyfCmw.net
- >>305
sun javaはsunのものだがjavaはsunのものではない
何をぱくったって?
- 309 :デフォルトの名無しさん:2017/06/28(水) 16:04:17.62 ID:1HRXLIL1.net
- だーかーらー、>>302で言っているだろ
クローズドソースのSun JVMに首突っ込んで、自前のJVM実装のリリースに走ったのを悪行と言っている
当時もJVM自体はGNU, Apache, MSと多様に存在してたし、独自のJVMを作る自体は気にしないけど
仲良くしようぜーって近づいて技術を盗み見るのをパクったと表現しているんだ
自前のJVM作ろうが、JVM上で動く別言語作ろうが一向に構わんが、あの時のGoogleの行為は大笑いだったんだぜ
- 310 :デフォルトの名無しさん:2017/06/28(水) 17:10:45.64 ID:woJsJzbY.net
- 結局フェアユースという落ちが付いたろ。判決はどこまで確定したっけ?
- 311 :デフォルトの名無しさん:2017/06/28(水) 17:18:12.30 ID:KUDOoNV3.net
- Googleはライセンス料を回避するためDalvikを作った
Oracleが訴訟起こしたのはGoogleから和解金や継続的なロイヤルティーを得るため
金vs金
GoogleがOracle JVMでなくApache Harmonyをベースに開発したため
OracleはソースコードでなくAPIの著作権という方向からDalvikの権利を押さえに掛かった
今のところ訴訟バトルはGoogle有利に進んでいる模様
- 312 :デフォルトの名無しさん:2017/06/28(水) 17:24:37.74 ID:KUDOoNV3.net
- 訂正
特許とAPIの著作権
- 313 :デフォルトの名無しさん:2017/06/28(水) 19:19:21.21 ID:xWBVVuch.net
- しかし何れにせよ、Androidが無かったらJava(及びそのエコシステム)はもっと廃れてたはずだよね
- 314 :デフォルトの名無しさん:2017/06/28(水) 20:01:24.52 ID:gsVJZ8oO.net
- JDKのライブラリ群は30年ぐらい前の発想で作られた頭が痛くなりそうな
APIも多いのでKotlinでJDKと別にモダンなコアライブラリ
作ってくれるならとても嬉しい
- 315 :デフォルトの名無しさん:2017/06/28(水) 20:13:20.22 ID:R8FO3Rrv.net
- >>313
androidが何に寄与したって?w
- 316 :デフォルトの名無しさん:2017/06/28(水) 20:17:07.79 ID:kl/WEkBu.net
- >>313
Javaの市場はほぼ100%エンタープライズとWebが占めててAndroidなんかカスみたいなもんだぞ
- 317 :デフォルトの名無しさん:2017/06/28(水) 20:20:40.71 ID:woJsJzbY.net
- javaはヌルポ排除できない時点でだめだよな。
- 318 :デフォルトの名無しさん:2017/06/29(木) 00:16:43.10 ID:OxDWNayQ.net
- >>317
だからKotlinが生まれたんだっけな
- 319 :デフォルトの名無しさん:2017/06/29(木) 11:02:50.69 ID:7tq2Nu14.net
- Kotlinでヌルポ起きないってギャグにしては古すぎる・・・
- 320 :デフォルトの名無しさん:2017/06/29(木) 11:39:09.06 ID:FObp9uyg.net
- オプショナルを正しく使ってればヌルポなんて起きようがないんだがw
- 321 :デフォルトの名無しさん:2017/06/29(木) 11:40:38.32 ID:pdm0wtJX.net
- ニュアンスとか前提の差で話が噛み合ってない気が
- 322 :デフォルトの名無しさん:2017/06/29(木) 11:47:39.86 ID:JFxFowh1.net
- ぬるぽは既存のライブラリやフレームワークから飛んでくるからKotlinを使ったところで解決にならないんだよなあ
自分で書いた範囲ならJavaでもぬるぽなんて滅多に出さないわ
- 323 :デフォルトの名無しさん:2017/06/29(木) 12:00:09.83 ID:pdm0wtJX.net
- テストあるからJava1.4でもClassCastExceptionは滅多に出さない的な
- 324 :デフォルトの名無しさん:2017/06/29(木) 12:22:12.95 ID:7tq2Nu14.net
- プリベリファイ要求してたMobileのJava1.3は偉大だったんだなって
- 325 :デフォルトの名無しさん:2017/06/29(木) 12:28:25.79 ID:JFxFowh1.net
- >>323
そういう問題じゃない
Javaのライブラリにおいて引数にnullが渡されそれが不正値であるときに発生する例外は何か? →たいていぬるぽ
Javaのライブラリにおいて属性の値がnullでそれが不正値であるときに発生するエラーは何か? →だいたいぬるぽ
明示的なチェックを怠りランタイムエラーに頼るこの糞習慣がある限りぬるぽは決して無くならない
- 326 :デフォルトの名無しさん:2017/06/29(木) 13:21:35.51 ID:FObp9uyg.net
- >>322
んなことは言わなくても全員わかっとる
- 327 :デフォルトの名無しさん:2017/06/29(木) 14:39:25.51 ID:JUVsJKjr.net
- そもそもテストを書けばぬるぽの9割は生まれる前から死ぬ
しかしそれでもテストをしないできないすり抜けるからこそ静的言語コード本体に「テスト機能」をつけたのだよ
人間とは間違うものなのだ
- 328 :デフォルトの名無しさん:2017/06/29(木) 15:15:09.10 ID:Xwk4Fgx6.net
- Javaのライブラリにおいて引数に配列上限値が渡されそれが不正値であるときに発生する例外は何か? →たいていあれいいんでっくすあうとばうんど
Javaのライブラリにおいて配列の要素値がマイナス値でそれが不正値であるときに発生するエラーは何か? →たいていあれいいんでっくすあうとばうんど
配列操作を安全に操作できないKotlinはJavaと同じレベルで糞だな
ヌルポだけがバグの原因だと思ってるアホは置いといて、やっぱテストフレームワークを充実させたJUnitは偉大だわ
- 329 :デフォルトの名無しさん:2017/06/29(木) 15:20:20.01 ID:W0uOcXiB.net
- なんだこいつw
- 330 :デフォルトの名無しさん:2017/06/29(木) 19:47:56.73 ID:zX+YoTjc.net
- >>328
問題の発生頻度が段違いだろ。
型システムを採用しているにもかかわらず、型無しのヌルポを排除できないjavaはとても古臭い。
- 331 :デフォルトの名無しさん:2017/06/29(木) 20:58:35.28 ID:UEgl5Zip.net
- Sunが死んだ
太陽が死んだ
- 332 :デフォルトの名無しさん:2017/06/29(木) 21:19:35.80 ID:cCrWWcTS.net
- 日本語で書かれた Kotlin に関するいい感じのチュートリアルってない?
- 333 :デフォルトの名無しさん:2017/06/29(木) 21:34:38.83 ID:pdm0wtJX.net
- 書いて覚えろ
- 334 :デフォルトの名無しさん:2017/06/30(金) 00:28:01.26 ID:56/qVjC+.net
- >>332
情熱、自己顕示、小遣い稼ぎ、まあ理由はなんでもいいんだけど自分でちょろっと記事でも書いてみようとするとよくわかる
・Java入門
・Kotlin詳説
・よくわかるIntelliJ
・10日で学ぶAndroidプログラミング
あたりをごっちゃまぜにしたものが必要になる
ぶっちゃけとてもめんどくさい
- 335 :デフォルトの名無しさん:2017/06/30(金) 01:58:55.10 ID:q+HYO1HC.net
- チュートリアルならKotlin Koansやるのが一番じゃない?
Webでも手軽に出来るしIDEAにも専用のプラグインがある
- 336 :デフォルトの名無しさん:2017/06/30(金) 10:50:35.57 ID:TsXJhClE.net
- あれいいんでっくすあうとばうんどは、0除算並みの恥ずかしいミス。
nullpoとは次元が違うわw
- 337 :デフォルトの名無しさん:2017/06/30(金) 11:53:55.60 ID:0zGLF76x.net
- >>335
webのやつってなんか重くないですか?
- 338 :デフォルトの名無しさん:2017/06/30(金) 13:36:42.47 ID:tesV9X+3.net
- そんなんローカルに持ってきてやればよろしいがな
IntelliJ入れてあるならプラグインがある
コマンドラインしかないなら…、まあ、IDEなしは初心者であるからこそ積極的には勧めないんだけども、
コマンドラインしかないならgitで持ってきてテストが通るようにスクリプト本体編集すればいい
えっコマンドラインからテストするやり方がわからない?
- 339 :331:2017/06/30(金) 13:58:27.40 ID:svEzz20W.net
- >>335
本家 (またはそれに近いコミュニティ) にある資料ならここで聞くまでもなく有るのはわかりますがな。
そうじゃなくて「日本語で」あったらうれしいなぁという話で。
- 340 :デフォルトの名無しさん:2017/06/30(金) 14:35:57.92 ID:5/+9iJSz.net
- 自分用でなく他の人用という話だったら
Chromeなどでのページ翻訳+原文で頑張る方法を勧める
- 341 :デフォルトの名無しさん:2017/06/30(金) 14:52:56.61 ID:tesV9X+3.net
- >>332
あるかどうかで言えば「まだないです」
Kotlinは基本的にはただのJavaなので、上にもあるけどJavaの基本知識(を教えるだけの余裕)が必要なのでちゃんとした入門制作はハードルが高い
巷の日本語ページがスタートブックすら超えられてないのはそのへんが理由
そしてスタートブックですら初心者全く掬えてない
助走読本はとても頑張ってるけれど、助走ゴールな気がちょっとしなくもない。これはやっぱりJavaが悪いので仕方がない
ttps://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view
- 342 :デフォルトの名無しさん:2017/06/30(金) 15:08:07.12 ID:svEzz20W.net
- >>341
なるほど。
Java の資産を使えるメリットと引き換えに Java の知識が必要ってことね。
というか、 Java をマシに使える言語って感覚なのかな。
私は Scheme (LISP 系言語) を普段使いしてるので同じく LISP 系言語である Clojure を検討してたんだが、
やっぱり Java の知識が必要で、しかし Java について全然知らないので他の系統はどうなんかなと思って
このスレに来た次第。
やっぱりそう簡単にはいかんか……
- 343 :デフォルトの名無しさん:2017/06/30(金) 15:20:46.15 ID:5/+9iJSz.net
- 何に困ってるのか分からない
その辺の経験あるなら手動かせば身に付くまで大して掛からないだろう
- 344 :デフォルトの名無しさん:2017/06/30(金) 15:38:15.91 ID:O4IQOzV/.net
- googleのやるべきことはFWを全てkotlinに書き換えることやな
- 345 :デフォルトの名無しさん:2017/06/30(金) 16:02:16.24 ID:2Da2vksV.net
- 英語読めない奴がLISPとかすげえな
やってて死にたくならない?
- 346 :デフォルトの名無しさん:2017/06/30(金) 16:17:39.99 ID:O4IQOzV/.net
- >>342
つhaskel
- 347 :デフォルトの名無しさん:2017/06/30(金) 16:43:11.20 ID:svEzz20W.net
- >>345
Scheme は日本語訳あるからそんなにつらくない。
Common Lisp とかみたいに仕様の日本語訳がなくてクソ巨大なのを使いこなすのは大変だと思うけど、
最初からリッチなライブラリがそろっているので実用しやすいという人もいる。
>>343
興味本位なので面倒くさかったらやらないだけ。
ハードルの低い入門があれば見るかもっていう感じ。
- 348 :デフォルトの名無しさん:2017/06/30(金) 17:11:37.52 ID:0PkxBZJ1.net
- >>336
RuntimeExceptionの子クラスの例外は総じて同レベルで恥ずかしいんだが
原則、どれもパラメータチェックしてないから発生する例外だからな
むしろ、ヌルポが一番恥ずかしくて、それが起きないようにオプショナルがあるんだと思ってる
- 349 :デフォルトの名無しさん:2017/06/30(金) 17:59:28.75 ID:2uOE1xo7.net
- Javaがクソなのと、クソの処理をしないプログラマがマヌケなのは別の話。一緒にすんな。
Optionalはその変数がnullでないことをコンパイル時に保証できたっけ?
実行時コストをかけて解決するのは鈍臭い。
- 350 :デフォルトの名無しさん:2017/06/30(金) 18:12:49.54 ID:0PkxBZJ1.net
- そのクソの処理をしないプログラマでも安全にコーディングさせるためにオプショナルがあるんだよ...
オプショナルがあるからヌルポが起きないわけでもないから完全に安全とは言えんがまぁ言及すまい
- 351 :デフォルトの名無しさん:2017/06/30(金) 21:30:17.46 ID:2uOE1xo7.net
- >>350
まともな言語なら(c++でさえ)コンパイル時に済ませられるのを、わざわざ実行時にチェックしなきゃいけないのは鈍臭い、つうこと。
- 352 :デフォルトの名無しさん:2017/07/01(土) 06:09:20.91 ID:v+Q0wrxJ.net
- 全く噛み合ってなくてワロタ
どんだけ崇拝してるんだかwww
- 353 :デフォルトの名無しさん:2017/07/01(土) 12:59:00.78 ID:qNm5JQD+.net
- C++でヌルポが起きないってマジ?w
- 354 :デフォルトの名無しさん:2017/07/01(土) 15:33:59.29 ID:v+Q0wrxJ.net
- Rustだとガチでヌルポが起こせないゾ
オプショナルとかいう中途半端なモノを誇ってるKotlinとは格が違う
まぁ他の面倒が多くて全く勧められるものじゃないけど
オプショナル()だけで素晴らしいとか絶賛してる子は他にメリットを見出してどうぞ
- 355 :デフォルトの名無しさん:2017/07/01(土) 15:53:26.04 ID:KyLBHjPn.net
- トレイリングクロージャ無いと死ぬマン
- 356 :デフォルトの名無しさん:2017/07/01(土) 20:36:50.31 ID:M8KylmXN.net
- ここまで、lazy 初期化の話が出ないw
- 357 :デフォルトの名無しさん:2017/07/01(土) 21:29:59.25 ID:SoXb9Q80.net
- ヌル安全つうのはモダンな言語じゃ標準装備なんじゃろ?
- 358 :デフォルトの名無しさん:2017/07/02(日) 13:51:47.79 ID:RlGcb3P/.net
- >>339
Koansとか英語読めなくても(読まなくても)分かるんだが…
メインはKotlinのソースコードで説明読めないなら問題と答えを比べて見るだけで基本的な構文は勉強出来るし
そもそもプログラミング自体の理解が浅いならJavaとかから始めないと例え日本語の解説あっても分からんと思うよ
- 359 :デフォルトの名無しさん:2017/07/02(日) 23:49:50.72 ID:ynDhLM7Z.net
- Java + Groovy = Kotlin
つまり、Javaに関数型を付けた言語だから、
最初に、オブジェクト指向を学ぶ必要があるから、かなり大変
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
WEB+DB vol.94 の特集が、Kotlin, Electron
Try Kotlin のサイトで、ブラウザからプログラミングできる
- 360 :デフォルトの名無しさん:2017/07/03(月) 00:00:56.60 ID:MkRtof65.net
- ここまで出張して来たか、、、
- 361 :デフォルトの名無しさん:2017/07/03(月) 00:27:08.93 ID://L4zw1o.net
- sageじゃない時点でスルーでいいよ
- 362 :デフォルトの名無しさん:2017/07/03(月) 00:37:26.98 ID:MkRtof65.net
- NGワード:スッキリわかる
- 363 :デフォルトの名無しさん:2017/07/03(月) 06:33:05.51 ID:4ljd5V+p.net
- Kotlin.NativeよりSwiftのが使えるって本当?
Kotlin.Nativexはキーワードばかり散見されて実質何がどこまで完成してるのか分からんのだが
SwiftはWin, *nix, Androidで普通に動くようになってるけど、Kotlinはそこまで至ってないんだよね?
- 364 :デフォルトの名無しさん:2017/07/03(月) 08:38:14.08 ID:mDI6RaMX.net
- swiftって仕様安定したの?
- 365 :デフォルトの名無しさん:2017/07/03(月) 09:06:19.84 ID:8rVktY+j.net
- おおよそ
- 366 :デフォルトの名無しさん:2017/07/03(月) 09:13:44.93 ID:4ljd5V+p.net
- Kotlin/NativeのCとの連携ってJNIを踏襲するんじゃなくて、現在進行形で独自I/F仕様を作ってるっぽいな
一応、Linux, Mac, Winで動くようだけど完成度はSwiftのがまだマシだ
- 367 :デフォルトの名無しさん:2017/07/03(月) 12:50:39.71 ID:v2mMhpE7.net
- いまさらJNIはないだろ。
JVMの方も10か11でJNIに代わるNative対応が予定されているし。
- 368 :デフォルトの名無しさん:2017/07/03(月) 15:28:28.68 ID:BBsEUtpT.net
- なおさら踏襲しとけよと思わなくもないな
Kotlin/NativeのNative I/F
Java9以前, KotlinのJNI
Java10以降のFFI
と仕様が乱立するのか・・・
Kotlinって仕様安定してないのな
- 369 :デフォルトの名無しさん:2017/07/03(月) 18:16:02.56 ID:tIUw+Kxj.net
- JNI踏襲とか無いわ
そうしたいなら普通にJava使っとけば良いと思う
- 370 :デフォルトの名無しさん:2017/07/04(火) 09:13:03.70 ID:ETZVte8W.net
- KotlinがJNIを踏襲していることは知らないのか、知ってて度外視なのか
Kotlin/NativeアゲのためにKotlinを蔑んでちゃどうしようもないな
- 371 :デフォルトの名無しさん:2017/07/04(火) 15:17:21.36 ID:FOvT7Dr6.net
- Kotlin/Javaが使うのは何でもないこと。
もしKotlin/NativeがJNI使うとしたら、それどこのXamarinだよってことだろw
- 372 :デフォルトの名無しさん:2017/07/04(火) 16:48:31.76 ID:E7VHi3Qh.net
- JNIのI/F踏襲して
external fun fgetc(file: CPointer) char;
とかでいいじゃんっつーね
externalの先はわざわざVM/Runtimeかます必要はなくてCに繋げればいい
Kotlin/NativeのNative I/FはC++に対応してないようだし
後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
C++に対応するならまぁアリかと思うけどないんだろうしね
- 373 :デフォルトの名無しさん:2017/07/04(火) 18:27:25.69 ID:kEoD/tXz.net
- >Cに繋げればいい
ならJNI要らないじゃん
JNI踏襲ならJNIEnvの実装必須でしょ
C++対応とか正気かよ
C++同士でさえコンパイラやバージョン違いで
マングリングが異なってリンク不可能だからCリンケージ使うのに
- 374 :デフォルトの名無しさん:2017/07/04(火) 19:45:38.53 ID:E7VHi3Qh.net
- I/Fとランタイムの区別が出来てない
まぁ>>369とかもJavaとKotlinとKotlin/Nativeと区別してないからその程度なんだろうけど
> C++対応とか正気かよ
Rustのアホはbindgenって補完ツールで実現したぞ
他言語では見たことないから当然Kotlinもナイと思ってる, 後発なんだから検討はして欲しいけどねー
- 375 :デフォルトの名無しさん:2017/07/04(火) 19:58:52.39 ID:G1Se2kAk.net
- javaに触らずにkotlinだけでandroid開発できるようになんないかな
- 376 :デフォルトの名無しさん:2017/07/04(火) 19:59:34.67 ID:bn9cQclE.net
- なればいいね
- 377 :デフォルトの名無しさん:2017/07/04(火) 20:44:06.85 ID:kEoD/tXz.net
- >>374
>>366からの一連の流れはKotlin/NativeでのI/Fの話だぞ
区別云々は君が話の前提から混乱しているだけ
>bindgen
見たけどClang 3.9(〜4.0)のマングリングを前提としてるから
ヘッダだけじゃなく実装本体もClangでビルドする必要があるようだが
完全なC++コードがある場合は使えるが、ABIの代わりにはならないだろう
- 378 :デフォルトの名無しさん:2017/07/04(火) 22:22:00.36 ID:A9sYzzwp.net
- >>375
5年後にバージョン3とかになればなんとか…
- 379 :デフォルトの名無しさん:2017/07/05(水) 11:03:55.64 ID:BRC1acOi.net
- スマホアプリの言語ぐらい統一して欲しい
googleとappleで話し合えないのかねぇ
mac以外でもios用のアプリ製作からリリースまで最後まで出来るようにしてほしいよねぇ
- 380 :デフォルトの名無しさん:2017/07/05(水) 11:08:55.38 ID:PFivIsqu.net
- >>379
統一したいならC#
- 381 :デフォルトの名無しさん:2017/07/05(水) 12:07:39.48 ID:Ejf+K2GI.net
- Appleの昔から自分たちのプラットフォームにユーザーを囲いこんで、他のプラットフォームからの鎖国という考え方
Googleは自分たちのサービスを他のプラットフォームでも利用してもらってユーザーを増やし、収益を伸ばしたい考え方
統一でという方向で動く時、どちらがそれを拒んだり我を通した条件を突きつけてくるかは明白
- 382 :デフォルトの名無しさん:2017/07/05(水) 12:09:06.92 ID:NUQ3PgkL.net
- >>379
お互い何のメリットが?
開発者としても何のメリットも感じないが
- 383 :デフォルトの名無しさん:2017/07/05(水) 12:46:52.77 ID:BRC1acOi.net
- 開発者として開発環境を統一できるメリットがあるだろうが
- 384 :デフォルトの名無しさん:2017/07/05(水) 12:51:04.90 ID:XfevCCY3.net
- >>383
開発側からすればwebフロントエンド系のように開発者余りまくりで単価デフレになるデメリットしかない
- 385 :デフォルトの名無しさん:2017/07/05(水) 14:04:19.57 ID:KnxHgcda.net
- >>379
ブラウザですら自分の思い通りに開発できないからってwebkitからblinkフォークさせたのに
- 386 :デフォルトの名無しさん:2017/07/05(水) 16:01:58.60 ID:+yhqIzpS.net
- >>383
androidとiPhoneでフレームワークが違うから無理。
- 387 :デフォルトの名無しさん:2017/07/05(水) 16:10:10.15 ID:KD2VFbty.net
- >>379
react native とtypescriptに期待してる。
typescriptならサーバサイドにも耐えそう。言語仕様もパターンマッチング提案中だったり、
結構格好いい言語になってきた
- 388 :デフォルトの名無しさん:2017/07/05(水) 16:35:02.36 ID:dBZFHwYj.net
- >>386
JVM言語で「iOSとAndroidを統一環境で開発できる」と言うのもなんかがっかりではある
君は一体歴史のどこを見てきたのかと
- 389 :デフォルトの名無しさん:2017/07/05(水) 16:42:58.42 ID:ajye3GRU.net
- >>384
金の話はまた次元の違う話かと思われる
- 390 :デフォルトの名無しさん:2017/07/05(水) 17:00:43.66 ID:XfevCCY3.net
- >>389
別次元?なにが?
ある側面だけみてメリットデメリットの話してもなんの意味もないやろ
- 391 :デフォルトの名無しさん:2017/07/05(水) 18:58:19.44 ID:nAxrn5ol.net
- >>379
GoogleはAndroid開発環境を複数OS向けに出している
iOSアプリの公式開発環境がMac用しかないのはAppleが狭量なだけだし、Googleは無関係
話し合いで進展する問題ではない
- 392 :デフォルトの名無しさん:2017/07/05(水) 18:59:51.81 ID:XfevCCY3.net
- これはアスペ
- 393 :デフォルトの名無しさん:2017/07/05(水) 19:12:52.25 ID:nAxrn5ol.net
- 仮にAppleがiOSの開発環境をWindows向けに出すとして、iOSエミュレータはついてくんのか?っていう
Androidのような大真面目なエミュレータではなく、iOSはMac上でも「シミュレータ」しか動かん
それがWindows上で動かせるようになるとはあまり思わない
- 394 :デフォルトの名無しさん:2017/07/05(水) 21:24:57.18 ID:+yhqIzpS.net
- 技術の問題じゃなくて政治の問題だろ。
- 395 :デフォルトの名無しさん:2017/07/06(木) 07:36:12.02 ID:iYgfgx2U.net
- >>377
JNIEnvが必須とか言い出すからIFじゃなくRuntimeの話を交え始めたと理解したが?
RustがclangでC/C++本体のコンパイルが必要だからNGなら
Kotlin/Nativeがclang等々でC本体のコンパイルを必要とするのもNGになっちまうだろw
他言語を他コンパイラでコンパイルするのは当然で、C++に限ってはその上でKotlin/Nativeが頑張るんだよ
- 396 :デフォルトの名無しさん:2017/07/06(木) 09:16:31.44 ID:Xn+el2UL.net
- どうでもいいけど擬人化ことりんちゃんまだかよ
無能ども
- 397 :デフォルトの名無しさん:2017/07/06(木) 13:03:11.11 ID:A60SyEEL.net
- >>395
>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を使う話も労力に見合うものは得られない
- 398 :デフォルトの名無しさん:2017/07/06(木) 13:14:33.18 ID:A60SyEEL.net
- >>395
追記
そもそも根本的な話として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から呼べる
- 399 :デフォルトの名無しさん:2017/07/06(木) 17:54:27.44 ID:j+3WJv+Z.net
- なんでandroidのために新しい言語覚えなきゃいけないねん
- 400 :デフォルトの名無しさん:2017/07/06(木) 18:08:30.77 ID:vSzC4r/y.net
- 別にいいんじゃない?android使わなくても。
- 401 :デフォルトの名無しさん:2017/07/06(木) 19:00:34.42 ID:/cQIX5Le.net
- 汎用言語が Android では使えないというのは制約だろう。
- 402 :デフォルトの名無しさん:2017/07/06(木) 20:22:03.24 ID:736nPsTD.net
- 不満はあってもJavaよりはずっと良い
- 403 :デフォルトの名無しさん:2017/07/06(木) 23:28:02.58 ID:L8j5rxy6.net
- 呼出規約には、2種類ある
呼び出した方で、引数のスタック領域の確保・解放をするものと、
呼び出された方で、するもの
- 404 :デフォルトの名無しさん:2017/07/06(木) 23:43:32.25 ID:X1Wsv7xS.net
- さらには引数を後ろからスタックに積むもの、前から積むものもってのもある。
- 405 :デフォルトの名無しさん:2017/07/08(土) 16:04:44.48 ID:bEWoCU65.net
- 萌えキャラKotlinたんの誕生まだ?
- 406 :デフォルトの名無しさん:2017/07/08(土) 17:26:45.29 ID:69drE4+r.net
- >>397
なんか長々書いてるけど、結局新規のIF, 文法切っても現仕様はSwift同程度なんだよね
中身がどうあろうがいいけどショボい機能しか載せられないなら、Kotlinの上っ面IFだけはKotlinとKotlin/Nativeで共通化して欲しかったって話だよ
まぁ絶賛開発中の言語仕様だし期待しないで気長に待つわ
- 407 :デフォルトの名無しさん:2017/07/08(土) 19:34:40.80 ID:dvBryjqP.net
- しょっぱいだのショボいだのディスるのは簡単だが
浅い知識と考えでそれを言うのは恥ずかしいことだと少しは自覚しろよ・・・
- 408 :デフォルトの名無しさん:2017/07/09(日) 10:04:20.42 ID:0uIBGQaT.net
- >>399
Kotlinは簡単な言語だからいいでしょ
- 409 :デフォルトの名無しさん:2017/07/09(日) 12:16:36.95 ID:1xYpz64I.net
- 構文糖衣が多くてperlみたいな雰囲気を感じないでもない
- 410 :デフォルトの名無しさん:2017/07/09(日) 12:55:49.42 ID:GAM/5uII.net
- await使えるようになるだけで移行したいわ
- 411 :デフォルトの名無しさん:2017/07/09(日) 14:03:09.85 ID:5jNmidbV.net
- xamalin使えばいいじゃん
- 412 :デフォルトの名無しさん:2017/07/09(日) 22:15:33.42 ID:x/k/RP/C.net
- >>409
>構文糖衣が多くてperlみたいな雰囲気を感じないでもない
カッコとかなしでむき出しで書かれる A keyword B みたいな構文はどうにも慣れないね
A.method(B)やfunction(A,B)と同じはずなんだが、空白という文字で区切られていると脳が一瞬括りを拒否する
- 413 :デフォルトの名無しさん:2017/07/10(月) 13:10:30.69 ID:Y8I/wQdo.net
- >>407
最初(>>368の時点)からKotlin層の文法だけを注視してて、C層は気にしてないからなぁ
Kotlin層の共通化が大変な訳でも無し、わざわざ大変な新規IF切ってしょぼい機能になってるのは恥ずかしいよ
- 414 :デフォルトの名無しさん:2017/07/10(月) 13:34:33.04 ID:gqDySAuG.net
- >>413
何何どういうこと?
まだkotlinは遠くから眺めているだけだから気になる?
- 415 :デフォルトの名無しさん:2017/07/10(月) 23:27:47.39 ID:LuuY8Q0f.net
- >>413
C層を気にしてないんじゃなく知らないだけだろ
だから「わざわざ大変な新規IF」なんて的外れなレスをすることになる
JNIライブラリを書いたことすら無さそうだし
良案と思っているものがあれば↓で提案してみたらどうだ?
https://discuss.kotlinlang.org/
鼻であしらわれるのがオチだが
- 416 :デフォルトの名無しさん:2017/07/11(火) 02:41:16.53 ID:HQt0YaW2.net
- 言語なんて色々あるんだから自分の好きなの選んだらええんやで
Androidに正式採用されてから一気に書き込み増えたな
- 417 :デフォルトの名無しさん:2017/07/11(火) 03:44:11.61 ID:LaLOr5GK.net
- >>415
別にKotlinがそこまで好きなわけじゃないし、ここでKotlin/Nativeの喜劇を鼻で笑ってた方が楽だし・・・
業務でJNIを書いてたのは15年くらい前の1.3の頃だねぇ、あの頃はJNIはC++が使えなくてラッパー層の実装も面倒だった
いつからか知らんけど、JNIEnvにC++ APIが追加されててC層の実装が楽になってて数年前にビビったわ
・・・と老害なレスしとけば、論点ズラして技術論から離れた場外乱闘になって俺が飽きれるだろ
- 418 :デフォルトの名無しさん:2017/07/11(火) 11:50:37.31 ID:HY0nK+zE.net
- >>414
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呼べるようにして欲しいなーって冗談半分で言ったら噛み付かれた
- 419 :デフォルトの名無しさん:2017/07/11(火) 12:19:57.03 ID:UunU8BlR.net
- プログラマの勉強しようとおもってますが、これはジャバとなにがちがいますか?
大差ないようであればこれを勉強しようおおもいます
- 420 :デフォルトの名無しさん:2017/07/11(火) 12:23:20.73 ID:qIknPoW2.net
- >>419
Javaとの大きな違いは、Javaを完全に理解してる人向けで初心者向けの情報がほぼゼロという点
- 421 :デフォルトの名無しさん:2017/07/11(火) 12:38:05.79 ID:TEHQIMDt.net
- ObjCというマイナーで黴の生えた言語がiOS開発入門の障害になっていたところに現れたSwiftとは違い、
Javaは開発者ならはっきり言ってできて当然なので今後も初心者向けの情報の充実は望めない
- 422 :デフォルトの名無しさん:2017/07/11(火) 12:44:27.43 ID:nZ299llH.net
- Android入門は今後kotlinベースになるだろ。
- 423 :デフォルトの名無しさん:2017/07/11(火) 13:43:49.66 ID:6GA6X5kA.net
- それ頼む。javaのライブラリに依存すると言ってもandroid似関係するのはごく一部でしょう?
フルセットのjavaを学ぶ必要ないよね
- 424 :デフォルトの名無しさん:2017/07/11(火) 14:41:08.33 ID:poL23Q4e.net
- >>419
Kotlinは話題になってはいるが「Java言語を使いこなしている人がその知識を使うと楽に書ける」ので好評を得ている
Java言語を全く知らないのであればKotlinはむしろ二重三重の習得障壁があるので勧められない
なにするかもぜんぜんわからないし現実世界で聞ける師匠もいないというのならJavaでいいんじゃないかな
JavaなしでのKotlin学習術というのは数年したら出てくるとは思うがそれはKotlin本体の充実も待たねばならんのでしんどい
- 425 :デフォルトの名無しさん:2017/07/11(火) 15:36:02.36 ID:HBLQ2eVf.net
- >>418
随分トーンダウンしたなw
>Kotlin/NativeのNative I/FはC++に対応してないようだし
>後発で新規に仕様を作り始めてる割にしょっぱいなぁと思う
↓
>頑張ってC++ API呼べるようにして欲しいなーって冗談半分で言った
そもそもKotlin(JNI)との互換性の話にC++は関係無いだろう
JNIでもエクスポートする部分はextern "C"なんだから
- 426 :デフォルトの名無しさん:2017/07/11(火) 17:16:47.08 ID:U4fTHQuQ.net
- おう、そうだなw
それでKotlin/NativeのIFの話はどうした?論点ズレてんよ
- 427 :デフォルトの名無しさん:2017/07/11(火) 18:38:24.21 ID:HBLQ2eVf.net
- >>426
日本語が不自由なのか?
「Kotlin(JNI)との」と書いているんだが
- 428 :デフォルトの名無しさん:2017/07/11(火) 21:08:20.35 ID:k/zCsCNx.net
- 僕Javaはちょっとしか使ったことないLisperだけど、Kotlinサクッと学んでAndroid開発してるよ? 難しくないよ?
- 429 :デフォルトの名無しさん:2017/07/11(火) 21:13:00.00 ID:xWYiv0j+.net
- LISPerが書くコードとか他人が読めなそうやな
- 430 :デフォルトの名無しさん:2017/07/11(火) 23:22:21.14 ID:rvrzGERi.net
- >>424
javaのエコシステムが学習障害なのかな。歴史がある分根深そう
gladleとかいうタスクランナー用に専用言語あるんだっけか
- 431 :デフォルトの名無しさん:2017/07/11(火) 23:23:35.24 ID:rvrzGERi.net
- swift、typescriptと触ってoptionalが無い言語は正直触りたくなくなっとる。
- 432 :デフォルトの名無しさん:2017/07/12(水) 06:26:01.18 ID:HQm2gXhD.net
- >>419
Kotlin = Java + Groovy
Javaのオブジェクト指向に、Groovyの関数型を付けたもの。
クロージャを多用する
まずこの本で、Javaとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、
プログラミング GROOVY、2011
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
- 433 :デフォルトの名無しさん:2017/07/12(水) 06:44:11.99 ID:Tu2UL3Q1.net
- KotlinはGroovyはあんまり関係ないだろ
機能的にはC#をリスペクトしていて、文法はScalaを簡略化したもの
- 434 :デフォルトの名無しさん:2017/07/12(水) 08:03:32.77 ID:LUkpq5Wd.net
- >>433
さわっちゃだめよ
- 435 :デフォルトの名無しさん:2017/07/12(水) 08:14:26.72 ID:Tu2UL3Q1.net
- C#の思想でScalaを再設計した感じだな
- 436 :デフォルトの名無しさん:2017/07/13(木) 00:38:10.55 ID:uHqOeG/1.net
- メソッドの最後の引数にクロージャを書いて、
そのクロージャの中のメソッド呼び出しの最後の引数にクロージャを書いて・・・
って感じの記法でDSLを作れるのが ruby から groovy 経由で kotlin に引き継がれた特徴かね?
gradle の build.gradle みたいな奴ね
これを引き継いでる関係で build.gradle を kotlin で書けるのがもう実装されてる
Androidのレイアウトを kotlin のこの DSL 記法で書けたりもするね
- 437 :デフォルトの名無しさん:2017/07/13(木) 01:28:56.84 ID:JW4C8wb9.net
- >>436
その辺はほぼScalaだよ
- 438 :デフォルトの名無しさん:2017/07/13(木) 10:30:47.12 ID:9URTCQsI.net
- 最近の言語はどれもよく似てるだろ
Swiftにも似てると思ったし
- 439 :デフォルトの名無しさん:2017/07/13(木) 10:37:01.80 ID:FzpRErWm.net
- >>437
そりゃあscalaは何でもてんこ盛りだから同じことできるだろうけど、
公式がGroovy-styleって言ってるんだよね
Type-Safe Groovy-Style Builders
https://kotlinlang.org/docs/reference/type-safe-builders.html
- 440 :デフォルトの名無しさん:2017/07/14(金) 05:04:39.07 ID:SOKcdYDj.net
- >>438
Swiftより古い言語なんだよなぁ…
- 441 :デフォルトの名無しさん:2017/07/14(金) 09:50:43.08 ID:tqlcOT7v.net
- >>427
> そもそも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年の新興言語はお互いにパクリあってるからもう何が大元か分からなくなってるよね
- 442 :デフォルトの名無しさん:2017/07/14(金) 11:53:31.95 ID:JnCMaGHk.net
- >>441
実現していないことに対し「しょっぱいなぁと思う」「ショボい機能」と罵ることと
「けど実現しないだろうねー って笑い話」というのは
お前の中では同程度の表現なのか?
- 443 :デフォルトの名無しさん:2017/07/14(金) 11:59:48.94 ID:JnCMaGHk.net
- >>441
I/Fの話というだけで、JNI踏襲とC++対応は別々の話で関係無いだろ?
だから>>372に対しての>>373は改行で分けている
>>418といい、そのレスといい何故混ぜて話そうとするんだ?
「JNI踏襲するか、しないならC++対応」という思考のようだが
どちらも愚案だと言ってるだけだぞ
外部ツールとしてC++→Kotlinの変換ツールなら否定しないが
- 444 :デフォルトの名無しさん:2017/07/14(金) 20:37:24.56 ID:F62iti5K.net
- >>442-443
> 「JNI踏襲するか、しないならC++対応」という思考のようだがどちらも愚案
うむ、後者は出来ないし、しないだろうからなw
前者は出来なくないだろうけど、仕様乱立(>>368)してでもCをシームレスに呼び出せるのがクールだと思ったんだろうね
「JNIを踏襲せず、C++に対応せず、Cをシームレスに呼び出せる」という現行仕様を両手あげて歓迎しない限り収まりそうにないね
Kotlin/Nativeの微妙な現行仕様を笑ってたけど、あなたの現行仕様に対する信仰が分かったので取り下げるよ
宗教は理屈じゃないと、ObjCでも散々言われているのを知っているのだ
- 445 :デフォルトの名無しさん:2017/07/15(土) 08:38:17.95 ID:HFaGoOZi.net
- 最後まで技術的な話が出来ない奴だったな
>>397-398で説明したのに「C++(ソースレベル)」と「CのABI」が
並べて書けるものでないことも理解されなかったようだし
まぁ取り下げたならそれでいい
- 446 :デフォルトの名無しさん:2017/07/15(土) 13:44:47.75 ID:KAmmMYRz.net
- >>439
そのBuilderだけの話だろ。
ここだけ取り出して、Groovyベースとか言っちゃうのはイカレてる。
- 447 :デフォルトの名無しさん:2017/07/15(土) 23:24:57.48 ID:5uf8kOgL.net
- 第2引数のラムダ式を、引数の外に出せる、糖衣構文あり
関数(引数, { it })
関数(引数){ it }
確か、Groovy, Gradle も同じだったか
- 448 :デフォルトの名無しさん:2017/07/16(日) 00:40:29.56 ID:mqalEvhx.net
- クロージャ以外の実引数を省略して
関数 { it } とかも書けるよね
まあたしかscalaも同じことができるんだが
ruby、groovy では特に好んでこの形式を使ってDSLを作ったり
文法の拡張的な感じに使う
kotlin ではこれをさらに効率的に使い倒すために
上記のように使う関数の定義に inline という指定ができる
https://kotlinlang.org/docs/reference/inline-functions.html
引数にクロージャをとるけど、
実際にはクロージャを使わない形にインライン展開される
- 449 :デフォルトの名無しさん:2017/07/16(日) 06:49:43.02 ID:ZSYh3+ww.net
- あとはコンパイル時処理があるといいな
- 450 :デフォルトの名無しさん:2017/07/18(火) 08:52:46.31 ID:Ttzd9ReG.net
- Java8でもlamda構文はコンパイル時にインライン展開されるよ
- 451 :デフォルトの名無しさん:2017/07/23(日) 20:14:23.56 ID:5U3qvpGz.net
- 一瞬不相応に盛り上がったけど「将来性は高いが現時点ではJava利用者向けのベターJavaである」ということが周知されて落ち着いたな
よかったよかった
- 452 :デフォルトの名無しさん:2017/07/24(月) 10:25:57.37 ID:d8RjP+27.net
- スッゲー上から目線の総括にワロタwwww
- 453 :デフォルトの名無しさん:2017/07/25(火) 02:00:55.92 ID:UzXdgK41.net
- Android公式の言語になって悔しい奴も居るんだろう
- 454 :デフォルトの名無しさん:2017/07/25(火) 06:18:37.30 ID:5XPEt11J.net
- oracleが噛んでる時点で終わりの始まり。
solarisとかね。
- 455 :デフォルトの名無しさん:2017/07/25(火) 07:07:22.80 ID:BBsjcCUe.net
- WorkStation, MySQL, OpenOffice...う、頭が...
- 456 :デフォルトの名無しさん:2017/07/26(水) 10:30:04.80 ID:VR8TYjgB.net
- 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?")
}
- 457 :デフォルトの名無しさん:2017/07/26(水) 11:06:32.93 ID:M5MsN9/+.net
- kotlin -classpath . AKt
ではどう?
- 458 :デフォルトの名無しさん:2017/07/26(水) 11:07:19.20 ID:M5MsN9/+.net
- あーあとjar作ってもいいし
- 459 :デフォルトの名無しさん:2017/07/26(水) 11:40:00.85 ID:VR8TYjgB.net
- できました!どうもありがとうございます
- 460 :デフォルトの名無しさん:2017/07/27(木) 08:44:41.76 ID:ol3Ji14g.net
- KotlinがAndroid Studio公式サポートになって悔しい、ムキー
ってなるのはGoMobileユーザくらいか?実在するか分からんレベルな実用性だけども
- 461 :デフォルトの名無しさん:2017/07/27(木) 09:33:07.79 ID:Spup3DD1.net
- その件で主に煽られてるのは主にScalaユーザーじゃね
彼ら自身はこれまでScalaの筋の悪さと付き合ってきて、なぜKotlinなのかをある意味一番よく理解してるから
反発する奴は少ない印象だけど
- 462 :デフォルトの名無しさん:2017/07/27(木) 09:49:55.47 ID:ol3Ji14g.net
- Scalaって今は亡きJ2EE Servletに対抗する化石ソリューションでKotlinと全く関係ないんじゃないの
流石にあれは関係ないから反発も何もないと思うぞ、関係を探すなら同じJVM言語ってくらいか?
- 463 :デフォルトの名無しさん:2017/07/27(木) 22:48:26.51 ID:q/d1LfH4.net
- 実際にScalaでAndroidアプリ作ってた奴も居るし、Androidが出るまではJVM言語はおろかJavaすらあんまり積極的に使われてなかったしな
もともとKotlinよりはScalaの方が有名だったし、JVM言語としては悔しいだろうよ
- 464 :デフォルトの名無しさん:2017/07/27(木) 22:52:33.46 ID:qe1/bFe6.net
- scalaよりkotlinが優れてるところなんてないやろ
- 465 :デフォルトの名無しさん:2017/07/27(木) 23:36:19.26 ID:ZxLGu3dd.net
- javaなんて覚えられそうにないからkotlin学習しようと思ってるけど
記述量が減るのは優れているとは言えませんかセニョール
- 466 :デフォルトの名無しさん:2017/07/27(木) 23:57:49.40 ID:0y0CpLqK.net
- 小さなソースコードが高レベル言語の目的であり、力がその目的をどれだけうまく達成できるかというものなら、
プログラミング言語の力を測るには、それがプログラムをどれだけ小さくできるかを見ればよいということになる。
逆に、言語がプログラムを小さくしないのなら、それはプログラミング言語の役割をちゃんと果たしていないということだ。
切れないナイフとか、読めない印刷とかと同じだ。
ってポールが言ってた
- 467 :デフォルトの名無しさん:2017/07/28(金) 05:37:58.09 ID:H2JBSSoH.net
- >>463
そりゃScalaはサーバサイドJavaにおいて歴史があって、組み込みJavaはAndroidが出る前は落ち目だったからだろ
お前のレスはKotlinユーザは全く別の土俵のScalaにコンプレックスを持ってんだなって感想しか出ないぞ
- 468 :デフォルトの名無しさん:2017/07/28(金) 13:00:03.02 ID:QPanRF+L.net
- listをfor文で回す処理を書いてるんですが、
for(data in some_data?.datas!!) {
}
ってなって、datasの後の!!を消したいんですがどうするべきなんでしょうか
- 469 :デフォルトの名無しさん:2017/07/28(金) 13:39:12.54 ID:k8WFShoV.net
- some_data?.datas?.forEach { data ->
}
こうかな
- 470 :デフォルトの名無しさん:2017/07/28(金) 13:48:48.64 ID:QPanRF+L.net
- >>469
できました!ありがとうございました!
- 471 :デフォルトの名無しさん:2017/07/28(金) 21:34:18.74 ID:8b7/0WjD.net
- >>467
悔しいのうw悔しいのうwww
- 472 :デフォルトの名無しさん:2017/07/28(金) 21:54:39.65 ID:GOfdf3yM.net
- Javaに挫折したPHPの経験しかない初心者なんですけど
kotlinの勉強する場合の王道の本を教えてください
- 473 :デフォルトの名無しさん:2017/07/28(金) 22:02:07.02 ID:PUrhlE/b.net
- >>472
KotlinはJavaをマスターしてる人がちょっと便利なJavaとして齧るもので、基本的にWebで十分
まずはJavaをマスターしてきなさい
- 474 :デフォルトの名無しさん:2017/07/28(金) 22:17:54.83 ID:zVVm7Ell.net
- なんか勘違いしてるみたいだけど、そもそもKotlinはJavaに沢山の機能が足されていてJavaよりずっと複雑で難解な言語だぞ。
敷居の低い言語というイメージがあるのは、Javaができる人にとってストレスなく入れる言語であり、プログラミング自体の初心者がほぼ皆無だから。
Javaを学べばそれは全てKotlinでそのまま活かせるんだから、幻想は捨ててまずJavaやったほうがいい。
- 475 :デフォルトの名無しさん:2017/07/28(金) 22:23:58.60 ID:z1qsdhOb.net
- 本などで勉強しようとするから挫折する
言語を身に付けるにはコードを書いて読む以外に道はない
- 476 :スッキリ厨:2017/07/28(金) 23:13:12.64 ID:wSdfWqng.net
- まずこの本で、オブジェクト指向をみっちり学ぶ
1. スッキリわかる Java入門 第2版、2014
2. たのしいRuby 第5版、2016
3. Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
この順番が最短。
2を省くと、関数型プログラミングが分からないので、必要
- 477 :デフォルトの名無しさん:2017/07/29(土) 00:10:16.43 ID:W96Wekxi.net
- AndroidStudioでJavaコードをKotlinに変換する機能を使ってKotlinのコードを生成して内容を見てると分かった気になってくる
- 478 :デフォルトの名無しさん:2017/07/29(土) 00:50:30.28 ID:DIZfrj77.net
- むかーしjavaをちょっとやってたけど
そんなに癖がない言語だよねjava自体は。
必ずクラスを挟まないといけないから無駄に書くコードが多いくらいだよね。そんな認識の人間ならkotlin
触り始められます?
- 479 :デフォルトの名無しさん:2017/07/29(土) 03:36:29.97 ID:W96Wekxi.net
- KotlinはどちらかというとJavaよりもC#に似ている
- 480 :デフォルトの名無しさん:2017/07/29(土) 07:41:06.02 ID:sH/xP+7Q.net
- ScalaはKotlinの発展を悔しがるくらいに類似性があるらしいからScalaをやったことあると尚良し
結局どこに悔しがる要素があるのかサッパリ分からんかったけど
- 481 :デフォルトの名無しさん:2017/07/29(土) 12:46:08.39 ID:DY1QEEX5.net
- javaアンチパターンとkotlinベストプラクティスのセットって、どっかに無いの?
- 482 :デフォルトの名無しさん:2017/07/29(土) 13:01:26.70 ID:JySrTbDn.net
- Kotlin自体に関しては、他の現代的で使いでのあるプログラミング言語と比較して何か特別に学びにくいということはない
じゃあどこに壁があるのかというと
・公式の説明やマニュアルですら「Javaでいうところの○○」「動作詳細は以下のJavaプログラムを参照」のようにJavaの習熟者を対象にしている
・現状唯一の日本語本であるスタートブックすらJavaである程度の規模のプログラムを組んだ経験を前提としている
・そんな人たちが作る公開ライブラリはもちろんJavaの(類似ライブラリの)知識が前提の用法・動作説明である
というようなあたりにある
別にこれが非難すべきものだとは全く考えないのだが(これらを部外者に解説しようとすると何冊分ものJava基礎と応用を自前でゼロから解説する羽目になるため)、
単に想定対象者以外には苦難の道であるよとは伝えておきたい
「英語で書かれたマニュアルしかないから英語読めないと辛いよ」と同じような感じで
「Javaで書かれたマニュアルしかないからJavaできないと辛いよ」というやつだ
- 483 :デフォルトの名無しさん:2017/07/29(土) 13:13:06.22 ID:VZ2r/0rx.net
- 解説がJavaだけでなく全体的にC#/ES6(&TypeScript)/Scalaあたりの「C+F系」の経験者を意識してるのも初学者には優しくないポイントだろうな
その辺の経験がある人だとKotlinは非常に素直で分かりやすくて
資料も経験者向けに要点を押さえて作ってあって手早く学べる、とても敷居の低い言語なんだけどね
- 484 :デフォルトの名無しさん:2017/07/29(土) 13:59:26.36 ID:7KFbni30.net
- 初学者向きではないってのはネックですな
- 485 :デフォルトの名無しさん:2017/07/29(土) 16:36:34.64 ID:U9LihKmk.net
- >>72
ガイジ晒しage
- 486 :デフォルトの名無しさん:2017/07/29(土) 17:17:33.51 ID:W96Wekxi.net
- Null安全型はいいよね
- 487 :471:2017/07/29(土) 20:15:51.81 ID:DdYvAide.net
- 2ちゃんのjavaスレが荒れててあんまり回答貰えなかったからkotlin選んだようなものなんですが
心を入れ替えてjavaから勉強します
先輩方どうもありがとう
- 488 :デフォルトの名無しさん:2017/07/29(土) 20:26:38.68 ID:DIZfrj77.net
- 他の言語に精通してたらjavaって何か勉強必要な言語?
interfaceとかわかってればいいんでしょ?
- 489 :デフォルトの名無しさん:2017/07/29(土) 20:43:20.90 ID:W96Wekxi.net
- ライブラリ関係とか周辺知識も必要やな
- 490 :デフォルトの名無しさん:2017/07/29(土) 21:30:26.28 ID:c4yh7S8Z.net
- Kotlinに限らないけど今の言語を使う上ではHaskell界隈由来のflatMapとかも理解しておいた方がいい
別言語のだけど図解部分は支障無いから貼っておく
https://www.slideshare.net/ksc1213/swiftmonad
- 491 :デフォルトの名無しさん:2017/07/29(土) 22:18:06.96 ID:CGKorK5y.net
- むしろ周辺知識の方が覚える事膨大で困る
- 492 :デフォルトの名無しさん:2017/07/29(土) 22:19:42.45 ID:qR/5D+lk.net
- >>490
haskell由来?www
- 493 :デフォルトの名無しさん:2017/07/29(土) 22:34:22.42 ID:DIZfrj77.net
- >>489
ライブラリ系の学習って遅延学習じゃ駄目なの?
- 494 :デフォルトの名無しさん:2017/07/29(土) 22:37:08.86 ID:qR/5D+lk.net
- >>493
いいよ
- 495 :デフォルトの名無しさん:2017/07/29(土) 23:53:54.93 ID:c4yh7S8Z.net
- >>492
何由来だと思ってるの?
- 496 :デフォルトの名無しさん:2017/07/30(日) 00:04:10.80 ID:PpFa/iNU.net
- その手の奴はだいたいLisp由来とか言っとけば当たる
- 497 :デフォルトの名無しさん:2017/07/30(日) 09:16:23.60 ID:AatiOL5G.net
- >>488
主要言語の「Effective 何々」という本を読めば、わかるけど、
すべての言語でほぼ同じ
本では、equals, hashCode, toString の三種の神器を、
最初にオーバーライドしましょうって書いてあるけど、
Kotlin では、データクラスと言って、最初から用意されている
- 498 :デフォルトの名無しさん:2017/07/30(日) 10:13:47.62 ID:1EcJb2Jm.net
- またお前か
ミュータブルなクラスでequalsやhashCodeをオーバーライドするのは多くの場合不適切
- 499 :あ:2017/07/30(日) 15:50:13.09 ID:P5Qwr2jW.net
- Haskell大人気だな。
ただのflattenとmapで、ほんとにlispの頃からある。
- 500 :デフォルトの名無しさん:2017/07/30(日) 18:11:16.75 ID:X+REAxPs.net
- 型システムと共にMonadやFunctorとして整理された経緯を知らないと
そう思うのも無理は無い
Lispやさらに前段の数学も由来として合ってはいるが
関数単体で導入されたわけでなく包括的な概念で導入されている
- 501 :あ:2017/07/30(日) 18:24:32.50 ID:P5Qwr2jW.net
- 包括的な概念で導入された、って、関数型言語なら当たり前の概念を集めて来たって話で、
Haskellで知った、って話をドヤ顔されても、って話なんじゃないの?
- 502 :デフォルトの名無しさん:2017/07/30(日) 22:02:52.21 ID:4pngWMeM.net
- Javaは(意外と)シンブルな言語なんだから、3言語ぐらい精通してる人ならばkotlinなんて難しくないよ。
Javaをマスターしてないとって思う人もいるみたいだけど、Javaの持ってる要素なんて、プログラミングの様々な要素からしたらそんなに多くないから大丈夫だよ
- 503 :デフォルトの名無しさん:2017/07/30(日) 22:16:46.98 ID:W7NHR4pI.net
- >>502
良かった。
typeScriptとswift2とobjcとgo
が使えてる俺はなんの問題もなく使いこなせるって事だね?
- 504 :デフォルトの名無しさん:2017/07/30(日) 22:18:14.70 ID:sGCf83rH.net
- CommonLispやC++に比べれば屁でもない
- 505 :デフォルトの名無しさん:2017/07/31(月) 08:02:41.90 ID:IjzZ4ZfD.net
- >>501
>概念を集めて来たって話
是非ともMonadやFunctorとして整理された経緯を調べてみてくれな
- 506 :デフォルトの名無しさん:2017/07/31(月) 14:27:59.07 ID:luO5NyKL.net
- elixirのパターンマッチに感動したんだけど、バイナリ列にパターンマッチングできるんでバイナリデコーダが簡単にできそうなんですが
kotlinもそういうことできます?
- 507 :あ:2017/07/31(月) 18:32:19.26 ID:/DHTAviI.net
- >>505
知ってるよ。そもそも物理屋、工学屋は圏論自体から入っとる。
- 508 :デフォルトの名無しさん:2017/08/01(火) 00:27:55.71 ID:PARHYe6N.net
- >>482だけがわりと正確な物言いしてるが「解説の大部分がJavaプログラムに依存してる」ことが学習上の問題
自然言語でほとんど書いてないからJavaの動作を斟酌して理解しないといけないのだ
時間と人手が解決する問題ではあるが、今から学びたい人にはあんまり嬉しくなかろうな
理解に必要なのはJavaの文法そのものではなくJavaの個々の動作と実装のされ方なのでJava使ったことない人はしばらく戻ってこれないぞ
ただ、遠回りだけど近道なので頑張ってくれ
- 509 :デフォルトの名無しさん:2017/08/01(火) 01:54:59.02 ID:sayqMREC.net
- >>503
>>476
の順番に読めば、OK
- 510 :デフォルトの名無しさん:2017/08/01(火) 02:05:24.99 ID:A0OBZNC2.net
- >>476
rubyみたいなオワコン勧めるなボケ
- 511 :デフォルトの名無しさん:2017/08/01(火) 02:07:40.68 ID:A0OBZNC2.net
- kotlinってアンチパターンすぎる。
純粋な実装を隠蔽するんだから。
- 512 :デフォルトの名無しさん:2017/08/01(火) 03:56:21.19 ID:sayqMREC.net
- >>506
Byte Stream に変換して、その中から探せば?
- 513 :デフォルトの名無しさん:2017/08/01(火) 09:50:52.12 ID:5VpZIsuu.net
- kotlinやってみたくなったけど
入門者向けの情報がjava前提の物ばかりなので
javaやり始めました
で、思ったんだけど
javaって言語仕様以外の部分で覚えなきゃならない事多すぎ
kotlin入門者向けのライトなjava入門の情報が欲しい今日この頃
- 514 :デフォルトの名無しさん:2017/08/01(火) 14:33:06.94 ID:bOmdPaNn.net
- 何はともあれHello worldよ
色々丸コピでもいいから手持ちのAndroid端末上に画面を出す
そこで登場したよく分からないものを全てググって
その後はやりたいことをベースに調べていけばいい
本読むのはその後でも
- 515 :デフォルトの名無しさん:2017/08/01(火) 19:23:29.20 ID:A6tuVNB3.net
- JavaとKotlinなんて文法以外にさほど違いがないから、覚えることが多いことに変わりない罠
- 516 :デフォルトの名無しさん:2017/08/01(火) 19:34:51.60 ID:HNVJVpAf.net
- 覚えるって発想がよくわからない
調べたらいいと思う
- 517 :あ:2017/08/01(火) 20:43:30.74 ID:ps+Dq31M.net
- >>511
案外bytecodeはjavacより賢いと思う。
kotlin nativeにも期待たし、隠蔽ってのはそこまで深く考えんで良いのでは?
あんまり隠蔽と言い出すと、アセンブラ書くしか無くなる。
- 518 :デフォルトの名無しさん:2017/08/01(火) 23:16:53.17 ID:NbT5I2SP.net
- (´・ω・`)これって、コーリンって読むらしいね
- 519 :デフォルトの名無しさん:2017/08/01(火) 23:25:56.46 ID:WvvXqR8d.net
- じゃあそう読めばいいんじゃない?
伝わらないと思うけど
- 520 :デフォルトの名無しさん:2017/08/01(火) 23:56:00.53 ID:NbT5I2SP.net
- (´・ω・`)いまね、wiki見たらことりんってかいてたー
さっきTwitterみてたらコーリンってよむってウソ情報ながれてたのー
すいません
- 521 :デフォルトの名無しさん:2017/08/02(水) 00:30:22.22 ID:Mrcj6vwl.net
- ここやTwitterのような有象無象発信の情報は一度調べることをオススメする
1次情報や文責のある情報なら話は別だけどね
- 522 :デフォルトの名無しさん:2017/08/03(木) 02:14:23.09 ID:dP8PygxN.net
- コトリチャンって読むんやで
- 523 :デフォルトの名無しさん:2017/08/04(金) 02:49:08.32 ID:C9CuhslM.net
- この言語でiosアプリも開発できるの?
ならSwiftもJavaもいらなくね?
- 524 :デフォルトの名無しさん:2017/08/05(土) 22:07:19.73 ID:q6QkhQr1.net
- 初心者向けの定番本教えて
- 525 :デフォルトの名無しさん:2017/08/05(土) 22:40:45.42 ID:su6WsJEB.net
- まだ出てないだろ?
- 526 :デフォルトの名無しさん:2017/08/05(土) 22:41:57.37 ID:Zex8il51.net
- >>476
に書いてある
定番もクソも、Kotlin の本は、ユーザーグループ代表の本だけ
- 527 :デフォルトの名無しさん:2017/08/05(土) 23:47:57.71 ID:1Q3JuekX.net
- 電子書籍でも出てるよな
- 528 :デフォルトの名無しさん:2017/08/06(日) 08:37:01.72 ID:exhLY8Mw.net
- kotlin自体はそんなに変な仕様じゃないから
androidとの組み合わせで変わるとこが知りたい。
基本的にはimportはjavaの時と同じなの?
andrid全般の学習をする時にjavaで書かれたコードが単純にkotlinのコードに変換すれば動くってことでいいのかな。
- 529 :デフォルトの名無しさん:2017/08/06(日) 11:16:41.83 ID:8894pkNA.net
- その認識だと先にKotlinを数日みっちり勉強したほうが早く理解できる気がするぞ
- 530 :デフォルトの名無しさん:2017/08/06(日) 11:37:11.88 ID:exhLY8Mw.net
- >>529
どうなんだろね。単純にjavaのコードの部分を変換してみて
なんで動かないのか検証したほうが早い気もする(遅延学習)
androidのチュートリアル自体はjavaで書かれてるものが大半だし。
- 531 :デフォルトの名無しさん:2017/08/15(火) 15:45:25.89 ID:qX6sO+hu.net
- Swift, Clang/LLVMの発明者のラットナー がKotlinの開発に参加するってマジ?
- 532 :デフォルトの名無しさん:2017/08/15(火) 19:45:47.28 ID:wxesOBVY.net
- IntellijにKotlinのREPL付いていて便利だろうと思ったけど
REPLは入力途中でけっこう固まってしまう。
あとprintlinが改行しなかったり、まだ不安定なのかな。
- 533 :デフォルトの名無しさん:2017/08/15(火) 20:57:50.46 ID:wYSD0kSw.net
- Kotlin 1.1.4 is out
https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/
- 534 :デフォルトの名無しさん:2017/08/16(水) 15:09:19.71 ID:VrVIPOAA.net
- >>531
GoogleでAI関連の部署に入ったみたいだぞ?
- 535 :デフォルトの名無しさん:2017/08/17(木) 12:41:21.77 ID:Am4yUvQo.net
- >>534
マジかー、まぁ、Googleに入ったならSwiftよりはKotlinよりか
Alloに関わるなら無いこともない?
- 536 :デフォルトの名無しさん:2017/08/17(木) 13:05:10.32 ID:5mQoD0+b.net
- >>531
こマ?
- 537 :デフォルトの名無しさん:2017/08/17(木) 14:10:07.16 ID:P168fr1d.net
- Kotlinに関わるならJetBrainsに行くやろ
あるいはGoogleのなかでも特にBrainsチームに入る意味がない
本人がAIやるって言ってんだからそれ以上でもそれ以下でもない
- 538 :デフォルトの名無しさん:2017/08/17(木) 17:50:59.53 ID:8HfS9wXv.net
- SwiftとKotlin/Nativeはコンセプトや立ち位置が同じだからワンチャンあるで
GoMobileもAndroid Studio C/C++ NDK Pluginも死に体だから、Android + Kotlin/Nativeに期待したいね
- 539 :デフォルトの名無しさん:2017/08/17(木) 20:15:47.27 ID:uHinuZ07.net
- これかな
Apple「Swift」のクリス・ラトナー氏、Teslaを経てGoogle Brain入り
ttp://www.itmedia.co.jp/enterprise/articles/1708/15/news043.html
- 540 :デフォルトの名無しさん:2017/08/18(金) 06:36:54.32 ID:pZRlwMOC.net
- 騒ぐことか?
たかがswift()の開発者なんだろ?
- 541 :デフォルトの名無しさん:2017/08/18(金) 07:47:10.05 ID:ijb+FWu4.net
- 教祖だからしゃーない
- 542 :デフォルトの名無しさん:2017/08/18(金) 10:12:07.26 ID:vRHq3miw.net
- Swiftの開発者だけど、Kotlin/Nativeで使うLLVMの開発者でもあるんだよなぁ
Googleへの転職も短期らしいしApple(Swift)からJetBrains(Kotlin)にすぐに転職したら
倫理的にAppleからクレームが来るのは当然だしお茶濁しかもね
KotlinにLLVMのノウハウ投入してくれることを期待しようじゃないの
- 543 :デフォルトの名無しさん:2017/08/18(金) 10:14:49.37 ID:ReVsiHRv.net
- >>542
brainだから全く関係ないが
- 544 :デフォルトの名無しさん:2017/08/18(金) 10:15:50.49 ID:FWE4C9Nk.net
- 希望的観測
- 545 :デフォルトの名無しさん:2017/08/18(金) 10:35:41.64 ID:+X0+m8dy.net
- googleって20%ルールってまだあるんでしょ?
その20%の中でkotlinに手を出すのは自由なんじゃないの。
ただ、swiftの言語仕様の変遷を見るにkotlinの言語仕様に口出したら
とんでもないことになりそう
- 546 :デフォルトの名無しさん:2017/08/18(金) 10:42:26.32 ID:bO8OoBBY.net
- >>545
会社が大きくなって死んだよ
- 547 :デフォルトの名無しさん:2017/08/18(金) 11:43:17.65 ID:a7R6z0dh.net
- 3秒ルールはないのかな
- 548 :デフォルトの名無しさん:2017/08/19(土) 05:05:31.91 ID:pqlrWbIe.net
- C#から来たけど、C#ではヌル安全もコンストラクタとメンバ定義が一体になってるやつも一向に入らないからKotlinの方がいいと思うようになったね
IDEが少しモッサリしてるのとコンパイルが遅いのが難点だけどね
SwiftはGCがないから論外じゃない?
- 549 :デフォルトの名無しさん:2017/08/19(土) 13:02:36.70 ID:i5Fk1Iv8.net
- >>548
GCないから論外ってそれRustに向かって言えるの?
- 550 :デフォルトの名無しさん:2017/08/19(土) 13:06:40.00 ID:s/Tmv27m.net
- 今どきガベコレは欲しいな
- 551 :デフォルトの名無しさん:2017/08/19(土) 13:13:50.07 ID:yjxWeDHX.net
- Kotlin/Native PreviewはGCじゃなくARCなんだけど?
そして、GCがベストというわけじゃないし今後はどうするかは知らんとも言ってる
- 552 :デフォルトの名無しさん:2017/08/19(土) 13:17:42.75 ID:pqlrWbIe.net
- >>549
Rustはスゴイよな
使いこなせればあれが理想なんだろうな
- 553 :デフォルトの名無しさん:2017/08/19(土) 14:47:09.74 ID:a8QxREVh.net
- rustはどうなんだろうね。
いずれ学習したい言語ではあるけど、今のところ活躍場所がないからなぁ。
- 554 :デフォルトの名無しさん:2017/08/19(土) 14:56:51.77 ID:t3rqEI6U.net
- Kotlin勉強してるけどベターJavaとしてのScalaは相当辛いなあ。
Scalaは何目指せばいいんだろ
- 555 :デフォルトの名無しさん:2017/08/19(土) 15:51:07.03 ID:+F5+cWTJ.net
- Scalaって当時のサーバサイドJava(J2EE)の代替として出たものでしょ
サーバ上で動かすJavaVMに既存資産(ソフト&人員)の再利用以外の価値を見出せるなら使えるんじゃないの
- 556 :デフォルトの名無しさん:2017/08/19(土) 17:29:36.37 ID:9KU7ntuJ.net
- Java EE が、大げさすぎるから、
2001年、Struts
2004年、Ruby の、Rails
2006年、Groovy の、Grails
2006年、Scala の、Play
今は、Kotlin が出たけど、型を書くのが面倒くさいから、
型を書かない、Ruby, Groovy は残るだろう
- 557 :デフォルトの名無しさん:2017/08/19(土) 22:54:27.97 ID:a8QxREVh.net
- >>556
javaばっか触ってる人は型がない方が素敵って思ってるのかね。
俺はTypescriptでかなり幸せだけど。確かにjsよりタイプ量が増えるけど
それ以上に安心感がパない
- 558 :デフォルトの名無しさん:2017/08/19(土) 23:01:53.07 ID:C7hMtZt2.net
- 型がないのと型を書かないですむのを一緒にするなし
- 559 :デフォルトの名無しさん:2017/08/19(土) 23:02:14.25 ID:p9Z5WLWG.net
- 型があろうがなかろうがどうせバグはテストで潰すからな
js界隈にはテスト文化がないのか
- 560 :デフォルトの名無しさん:2017/08/19(土) 23:50:54.57 ID:3LWi1RRc.net
- 直受けの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万台にならなくて済む
- 561 :デフォルトの名無しさん:2017/08/20(日) 00:15:05.28 ID:kaazzj5o.net
- >>556
Railsより長く使われてるTomcat(Servlet)とPHPを忘れてんよ
どっちもRailsに淘汰されるかと思ったらなんだかんだで未だに生き残ってやがるから困る
テスト云々より動的型付け(TypeScript含む)は実行時速度がなぁ
動的型付け+型チェックは苦肉の策で、静的型付け+型推論が今の流行りよな
よってKotlinは素晴らしい
- 562 :デフォルトの名無しさん:2017/08/20(日) 00:37:21.64 ID:C3zH0fui.net
- ひところJIETがネガキャンされてて最近は逆に急にこのありさま
どこに首根っこつかまれたんだ
- 563 :デフォルトの名無しさん:2017/08/20(日) 19:22:23.16 ID:X7HXBqNm.net
- 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')
なんか設定間違ってるのだろうか…
- 564 :デフォルトの名無しさん:2017/08/20(日) 20:28:01.43 ID:X7HXBqNm.net
- ぬーん原因らしきものわかった
「Javaをktファイルに変換する(Ctrl+Shift+Alt+k)」は/app/src/main/javaを選択した状態でやったほうがいいらしい
下手に/appとかプロジェクトルート選択した状態で変換すると余計なのまでkt化されてIDEサポート動作に支障が出るようだ
こんなミスする人そんなにいないと思うけど数文字打つたびIDEエラー出まくるという人は気をつけてみてくれ
- 565 :デフォルトの名無しさん:2017/08/20(日) 21:38:37.79 ID:X7HXBqNm.net
- そうでもなかった
IlligalStateExcptionは別枠らしい
Failed to create expression from text: '<ERROR FUNCTION>'
ターミナルから起動すると標準エラー出力にスタックトレースが出ることがわかったのだが追跡めんどいな
前のと違ってこのエラー出ても補完とかは動くからもう無視したいした
- 566 :デフォルトの名無しさん:2017/08/22(火) 01:05:28.57 ID:hpqXPKX7.net
- ちょっと関係ない話だがKotlinの入門書の最初に説明用のサンプルとして出てきた最大公約数を求める関数のアルゴリズムに驚いた
ユークリッドの互除法なんてものがあることを今まで知らなかった
証明見てもまだよくわからん
よくこんなことに気付いたな
紀元前300年の数学者すげー
- 567 :デフォルトの名無しさん:2017/08/22(火) 01:14:54.99 ID:tq0/mRJT.net
- ユークリッドの互除法って有名で
プログラミングの題材としてもよく出てくるけど
紀元前に生まれてたら自力で思いつかないとは思う
- 568 :デフォルトの名無しさん:2017/08/22(火) 01:47:52.53 ID:hpqXPKX7.net
- 有名だったのか。確かに再帰処理の題材としては丁度いいねこれ。
- 569 :デフォルトの名無しさん:2017/08/22(火) 02:31:08.97 ID:tq0/mRJT.net
- Kotlinなんて最新言語じゃなくて
何十年も前のBASICやCの頃から
互除法の例題はあったよ
- 570 :デフォルトの名無しさん:2017/08/22(火) 02:37:43.49 ID:i38qdLYb.net
- 正直あれは脚注でもなんでもいいから一言解説がついててもいいと思う
どこかで一度でもやったことさえあれば一発で見当がつくが
そうでなきゃ何がなんだかさっぱりわからんはずだ
- 571 :デフォルトの名無しさん:2017/08/22(火) 02:45:00.72 ID:NodutCvj.net
- 別にユークリッドの互除法を教えるのが目的じゃないからなあ
- 572 :デフォルトの名無しさん:2017/08/22(火) 02:49:09.46 ID:tq0/mRJT.net
- Nクイーンとかもそうだけど
使い回されてるアルゴリズムを載せるのって
他言語でもう読み書きしたことがある人が
「この言語だとどう書くの?」ってのを
確認するためにあるようなものだからね
- 573 :デフォルトの名無しさん:2017/08/22(火) 12:09:02.60 ID:IWEK7hu0.net
- 「※ユークリッドの互除法」と一言書いてあるだけで100人単位で手間が救われたはずではある
もともとページ数ギリギリな書籍だから難しいのかもしれんが
- 574 :デフォルトの名無しさん:2017/08/22(火) 12:48:19.23 ID:AcxdB0/s.net
- ま、しかし、少なくとも計算に関しては数学知ってるか否かでかなりプログラムが変わって物凄く効率化できる可能性あるな。
- 575 :デフォルトの名無しさん:2017/08/22(火) 12:53:42.85 ID:NodutCvj.net
- 大体仕事で再起処理とか使わないし
- 576 :デフォルトの名無しさん:2017/08/22(火) 14:14:28.90 ID:IVfvVmbm.net
- ユークリッドの互除法は、中学生レベルだろ。
知らなかったら、最大公約数を求められない
プログラムの本で、素数を求めるのに、√N まで、求めれば良いのに、
それを知らない著者もいる
N = 1,000 なら、32 まで試せば良いのに、1,000 まで試してる著者もいるw
- 577 :デフォルトの名無しさん:2017/08/22(火) 14:21:03.39 ID:IWEK7hu0.net
- >>576
ユークリッドの互除法は4年前から高校の数学Aに記載されるようになった
それ以前では教育課程では学ばない
- 578 :デフォルトの名無しさん:2017/08/22(火) 16:24:42.17 ID:ZXHHpxC4.net
- >>575
使うこともあるよ。使った方が簡単になる場合。
こないだやったのは(Kotlinではないが)XMLの階層構造をRDBの表に入れるとかそこから戻すとかの処理。
XMLって入れ子になってるから再帰で書いた方が楽だ。というか再帰使わないと複雑怪奇なプログラムになるんじゃないか?
- 579 :デフォルトの名無しさん:2017/08/24(木) 02:30:54.84 ID:YbxxOGZ9.net
- 互除法は繰り返しでもわりと自然にコーディングできるが、XMLとかの木構造の処理は再帰が自然だよね。
- 580 :デフォルトの名無しさん:2017/08/31(木) 23:08:32.05 ID:67nUNCV4.net
- operator キーワードの意味が良く分からないんですがこれって何のために必要なんでしょうか
- 581 :デフォルトの名無しさん:2017/08/31(木) 23:18:11.21 ID:pWykFKbQ.net
- >>580
operatorが書かれてない場合はそういう名前の普通のメソッド定義だとみなされる
operatorが書かれてる場合はそれに対応する記号の演算子のメソッド定義だとみなされる
- 582 :デフォルトの名無しさん:2017/09/01(金) 15:48:55.97 ID:yBuOlbxF.net
- ギアパワーの組み合わせで性能が見れるアプリを作ってみようかと思うんだが、
どういう機能があったら嬉しいかね
単に57表記が見れるだけじゃ意味ないよねえ
- 583 :デフォルトの名無しさん:2017/09/01(金) 16:36:37.15 ID:xNWoFI1L.net
- それはプログラミング言語の手法の話ではないと思うよ
そのアプリを使うであろう人たちに直接聞いてみてはいかがかな
- 584 :デフォルトの名無しさん:2017/09/07(木) 03:36:37.46 ID:Ua+ABG0j.net
- 使う
- 585 :デフォルトの名無しさん:2017/09/07(木) 03:43:26.98 ID:Ua+ABG0j.net
- ミスった
引数がIntのメソッドにByteとかShortとかつっこみたいときの賢い方法ってない?
いちいち.toInt()付けるのアホらしくて
…いっそのこと全部Intにしてしまうか
- 586 :デフォルトの名無しさん:2017/09/07(木) 07:38:14.55 ID:hBpoFfSg.net
- java使えば?
- 587 :デフォルトの名無しさん:2017/09/07(木) 07:43:21.26 ID:dJGmlTPD.net
- val b:Byte = 100
f(b+0)
- 588 :デフォルトの名無しさん:2017/09/07(木) 18:23:41.25 ID:dmOyOqaZ.net
- 「引数をとりあえずIntにして当該メソッドを呼ぶ」というメソッドを作ってそっちを使うようにする
具体的にどういうことをしたいときなのか言うと案外別アプローチあるやもしれず
- 589 :デフォルトの名無しさん:2017/09/07(木) 18:50:45.76 ID:dJGmlTPD.net
- 拡張プロパティで短縮
val Byte.i:Int get() = toInt()
fun f(b:Int) {
println(b)
}
fun test() {
val b:Byte = 100
f(b.i)
}
- 590 :デフォルトの名無しさん:2017/09/07(木) 21:28:09.40 ID:wVi6dnoF.net
- >>587は何気にbytecodeにコンパイルすると最速処理に最適化されるのではと悩む
val b:Byteはクラス型じゃなくプリミティブ型intに置換されて、+0は無意味な処理として削除される的なね
toIntoをメソッドとしてコールするようなオーバーヘッドは無いに越したことはないよねー
- 591 :デフォルトの名無しさん:2017/09/07(木) 21:37:35.68 ID:10GmZssK.net
- class MainActivity : AppCompatActivity() {
fun func(value: Int) : String {
}
}
: の前って空白をいれるべきなんでしょうか
入れないでおくべきなんでしょうか
クラスの継承の時だけ入れるべきなんでしょうか
- 592 :デフォルトの名無しさん:2017/09/07(木) 21:52:37.07 ID:La56k81V.net
- >>591
https://kotlinlang.org/docs/reference/coding-conventions.html#colon
interface Foo<out T : Any> : Bar {
fun foo(a: Int): T
}
これ以外の書き方は公式規約に則らないスタイルとなる
むろんそれを押し通してもよいが
- 593 :デフォルトの名無しさん:2017/09/08(金) 10:15:45.38 ID:IL9yY2pX.net
- 関数定義の時はコロン前の空白無しって感じか
- 594 :デフォルトの名無しさん:2017/09/09(土) 05:04:55.71 ID:/lYAOhx7.net
- >>590
それはオーバーヘッドが出ないように最適化されるのかどうかに掛かっている。
- 595 :デフォルトの名無しさん:2017/09/09(土) 18:18:44.00 ID:8E3FMuHj.net
- >>594
後から思い直したけど、メソッドfがByteクラスというクラス型を受け取る以上
val b:Byte = 100
b+0
までをプリミティブ型に最適化する超絶賢いコンパイル処理がなされても
f(100)
でintからByteへのインスタンス生成が必要だからJVM上の最小限コストにはならぬ
小賢しく汚いコードの割に最大効果が得られるわけでもないから微妙だわ
- 596 :デフォルトの名無しさん:2017/09/09(土) 21:51:29.93 ID:fgzL7F9C.net
- >>595
f(100)と書いたならコンパイル時にインスタンス作ってコンスタントプールに入れられるから実行時の無駄はないのでは?
- 597 :デフォルトの名無しさん:2017/09/09(土) 23:45:06.02 ID:8E3FMuHj.net
- # メソッドfが受け取るのはByteじゃなくIntだったorz
>>596
プリミティブ型byte/int 100はコンスタントプールに乗っかるけど
クラス型Byte/Int 100はコンスタントプールには乗っからないから
メソッドf呼び出し時のint to Intのインスタンス化コストは回避できてなくね?
メソッドfが受ける型をJITやクラスローダーが書き換えないと無理ぽ
どうやったってJava相当まで最適化できないんだから
全部Intにするなり拡張プロパティ使うなり、好きなように実装して良いと思った
- 598 :デフォルトの名無しさん:2017/09/10(日) 01:33:16.68 ID:3lFSiHDa.net
- 乗らないか。じゃあダメだな。
まあでもそこまで最適化するようなコンパイラができればできるということでもあるので何とも言えんな。
それとプログラマが最適化を考慮してコード書くってのは、まるで昔のC言語のようで、かなり変な状態だとも思える。
現実問題としては効率を上げるためにはそうせざるを得ないが、本来であればそれはコンパイラがやるべき仕事であり
人間がそういうことから解放されないのはまだ技術力が足りないからだ。
- 599 :デフォルトの名無しさん:2017/09/10(日) 11:34:35.85 ID:tQxxVHdc.net
- 100は例なだけでtoInt云々の文脈では定数でなく変数でしょ
KotlinのByte/Intはオブジェクト型が必要なとき以外はプリミティブ型になる
さらにJVMのスタック上でbyteはintサイズで置かれてる
※例えば引数の2つのbyte型の加算は「iloadでint変数として読み込み x2」「int加算」「i2bでbyte表現に切り捨て」「istoreでintとして保管」になる
なのでtoIntはバイトコードレベルではメソッドコールどころか変換命令すら無く消滅する
+0や拡張プロパティはバイトコードに残るけど多分Dalvik JITやARTが消すんじゃないかな
- 600 :デフォルトの名無しさん:2017/09/10(日) 23:39:27.48 ID:Aa/cPztt.net
- 0〜127 なら、最初から、EXE の静的データ領域に入っているから、
インスタンスも作られないから、何も考えなくてよい
- 601 :デフォルトの名無しさん:2017/09/11(月) 01:06:11.35 ID:TB0SwtSd.net
- やっぱそれなりに最適化されるのでほとんど考えなくて良いということかな
- 602 :デフォルトの名無しさん:2017/09/11(月) 07:19:36.53 ID:RCvV23l8.net
- Javaほどではないが、それなりには最適化されるから考えなくて良いよ
- 603 :デフォルトの名無しさん:2017/09/11(月) 09:40:07.36 ID:vJ3AiMg+.net
- ○次受けが多いほど退場率が早くなる。高くなる
直受けの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) プログラマーズ
- 604 :デフォルトの名無しさん:2017/09/14(木) 14:48:20.23 ID:ZrYTexa1.net
- Kotlinを使えば使うほど、Kotolinってええ言語やなと思う
サーバーサイドでも使われているようだし、この言語はやる価値があるね
- 605 :デフォルトの名無しさん:2017/09/14(木) 14:51:31.85 ID:ZrYTexa1.net
- Kotolinのデメリットって何かある?
全然見当たらないんだけど
- 606 :デフォルトの名無しさん:2017/09/14(木) 15:24:33.82 ID:fvkkQJHv.net
- >>605
マクロがない
- 607 :デフォルトの名無しさん:2017/09/14(木) 15:35:41.46 ID:EfU1+ylv.net
- >>605
動的ではない
どちらも適材適所、釘にはトンカチレベルの話だが、デメリットとして挙げるなら
- 608 :デフォルトの名無しさん:2017/09/14(木) 17:42:44.76 ID:wsl9UgI1.net
- >>607
ランタイム(kotlin.jar)が実行に必要
- 609 :デフォルトの名無しさん:2017/09/14(木) 17:43:11.05 ID:wsl9UgI1.net
- 安価間違えた、スマン
- 610 :デフォルトの名無しさん:2017/09/14(木) 17:48:14.60 ID:fvkkQJHv.net
- 動的言語のメリットってないだろ
型推論あるし
- 611 :デフォルトの名無しさん:2017/09/15(金) 10:44:48.01 ID:VHxNrIHu.net
- >>605
javaの知識が前提
- 612 :デフォルトの名無しさん:2017/09/15(金) 11:20:35.63 ID:t0O3AeYk.net
- >>605
言語自体のデメリットではないかもしれないが、
IDEの選択肢がない・開発補助ツールなどが未発達。
- 613 :デフォルトの名無しさん:2017/09/15(金) 18:58:50.23 ID:Tu1mqslW.net
- >>611
コレはでかい。正直この知識を簡単に獲得する方法あるの?
kotlinからjavaの世界に入る方法を知りたい。
- 614 :デフォルトの名無しさん:2017/09/15(金) 21:05:06.50 ID:iYxiAtrq.net
- そういやJavaの知識なしの人向けの入門書はまだないのかな?
なくても流行ればその内出そうだが。
- 615 :デフォルトの名無しさん:2017/09/15(金) 21:11:43.49 ID:pJQDrUz2.net
- groovyよりは期待できるの?
- 616 :デフォルトの名無しさん:2017/09/16(土) 07:58:31.08 ID:AcW1bn43.net
- Javaって一番メジャー言語だから
情報が溢れてると思うんだが……
マイナー言語の苦しさに比べたらはるかに楽
- 617 :デフォルトの名無しさん:2017/09/16(土) 08:06:32.31 ID:wHRqrpim.net
- Javaを既に知っている者ならそうだろうな
Javaを知らずにKotlinやると、KotlinとJavaを並行して学習することになるから面倒だって話だ
- 618 :デフォルトの名無しさん:2017/09/16(土) 09:13:19.33 ID:dqmaxFWN.net
- kotlinはJavaのスクリプト言語みたいな立ち位置だからな(コンパイル要るけど)
Java入門が巷に溢れているがゆえにKotlin+Javaの書籍は出しにくいかもしれん
それにしたとしても時間が解決していくではあろう
- 619 :デフォルトの名無しさん:2017/09/16(土) 09:53:29.49 ID:64cU0LXO.net
- Kotlinで開発してたとして、具体的にどういうときにJavaの知識が必要になるんだろう?
JVMに関してなら「言語+実行環境」だから他の言語と変わりないし
Javadocのシグネチャくらいで困ることは無さそうだし
多分、解説書く側も「何が分からないのか分からない」状態になってるんじゃないかな
- 620 :デフォルトの名無しさん:2017/09/16(土) 10:25:55.20 ID:7CqADWEJ.net
- >>608
JSもJVMもランタイムがいると思うけど、このランタイムってApache2.0ライセンスなのかな?
だとしたら、同梱した場合、表示が必要になるんだっけ?
- 621 :デフォルトの名無しさん:2017/09/16(土) 10:55:31.44 ID:9wmYZqGr.net
- >>619
こういうことをJVM上でやりたいなぁって思った時に、Javaでの実装手法を調べてKotlinで読み換えるわけだろ?
その時にまずJavaの全般的な知識(文法, ライブラリ)を浅く広く手に入れる所から始まる
次に、JavaからKotlinに読み換えるために文法/ライブラリの在り様を深く理解してから適切なKotlinコードに書き下す
JavaとKotlinの生半可な知識だけでJavaコードを参考にKotlinコード書くと、汚いKotlinコードになるよね
なので、絶賛Javaを再勉強中・・・Java1.5の頃の知識で止まってるからイマドキのJavaが分からない
java.langとかNIO2とかを使ったコードをKotlinでいきなり書こうとしたら何か違う感が酷くてやめちまったよ
- 622 :デフォルトの名無しさん:2017/09/16(土) 11:21:42.95 ID:QlT8cqjN.net
- 他の言語を知ってれば要はリファレンスとjava特有の注意事項があればいいと思うの。
文字列組み立てにはStringBuilder使えみたいなの。
そういうの無い?
- 623 :デフォルトの名無しさん:2017/09/16(土) 11:42:24.85 ID:zsfdrVgC.net
- android studioってkotlinのプロジェクトにjavaのコードを貼り付けたらkotlinに変換してくれる神機能があるから
泥開発する時にネットで拾ったjavaのコードをペタペタコピペプログラミングするだけでも勉強になる
javaもkotlinも知識皆無の状態でkotlinで泥アプリ開発に取り組んだら見様見真似で簡単なアプリ作れた
ある程度コピペしてたらjavaのこの書き方はkotlinではこう書きそうっていうのがなんとなく察せてくるからandroid studioの補完を頼りに写経したりする
javaも知らないけど新しく言語の知識学ぶなんて面倒くさいからヤダ!知識皆無だけどすぐ何か作りたい!hello wordとか練習問題みたいなの書いても面白くないからモチベーションわかない!すぐ作りたい物作りたい!って場合は
ネットのサンプルと強力なIDEの支援を頼りにコピペ写経するのが効率よさそう
(外国語ができなくても海外でしばらく生活したら知識的に習わなくてもだんだん喋れるようになる理論)
- 624 :デフォルトの名無しさん:2017/09/16(土) 12:49:19.86 ID:64cU0LXO.net
- >>621
Kotlinで書かれたサンプルコードが少ないってこと?
それについては自動変換で対応するか、Kotlinが広まってサンプルが増えるのを待つしか無いか
- 625 :デフォルトの名無しさん:2017/09/16(土) 12:50:15.30 ID:64cU0LXO.net
- それと思ったのはKotlin・・というよりプログラム初学者は
言語仕様、ライブラリ、プラットフォームの知識がごちゃ混ぜになってるのかも
「Java言語仕様の知識前提」の場合はデメリットだけど、後者2つはそうではないんだよね
ちゃんと切り分けて教える必要があるのかもしれない
- 626 :デフォルトの名無しさん:2017/09/16(土) 15:17:58.69 ID:iyhV3x2n.net
- >>621
一々Javaで考えてからKotlinに読み替えるのではなく最初からKotlinで考えればいいのでは?それは出来ないの?
- 627 :デフォルトの名無しさん:2017/09/16(土) 15:51:26.67 ID:zchkTGlK.net
- 前途洋々たる人にJavaを教えたいかというとそうでもない、しかし現状kotlinにはjavaの知識がいくらか必要というジレンマ
- 628 :デフォルトの名無しさん:2017/09/16(土) 17:15:31.02 ID:k4zUo1jM.net
- 自動変換はマジで神機能だな
- 629 :デフォルトの名無しさん:2017/09/17(日) 09:11:08.18 ID:e3nYUfGU.net
- kotlin変換はスニペット単位で変換挿入できれば初学者サポートとして文句ないんだけど
まあ高望みしても仕方ないなw
- 630 :デフォルトの名無しさん:2017/09/17(日) 09:16:06.15 ID:s1Tpc6AU.net
- Kotlinを使い始めるのにJavaから始めないといけないのも高望みだから仕方ない
JVMとJava LibraryありきなんだからJavaを知らないで何が始まろうかと理解している
- 631 :デフォルトの名無しさん:2017/09/17(日) 10:57:51.48 ID:iGeioDqi.net
- >>629
騙されたと思ってandroid studioでkotlinを開いてそこにjavaのスニペットをそのまま普通に貼り付けてみ
- 632 :デフォルトの名無しさん:2017/09/17(日) 12:20:57.80 ID:QcEs4Olk.net
- >>629
できるぞ
- 633 :デフォルトの名無しさん:2017/09/17(日) 20:10:21.20 ID:881Zhju6.net
- kotlinというかIntelliJはなにかにつけてUnresolved Referenceで発狂して真っ赤になるのを潰していかんといかん
全部自前のkotlinファイルとパッケージだけで構成すれば絶対に起こらん事象だが、そんなのは稀だ
- 634 :デフォルトの名無しさん:2017/09/17(日) 20:33:40.63 ID:8Aq7R6E2.net
- >>633
あれはライブラリ作者とプラグイン作者が7割くらい悪い
提供されるテンプレートでjavaパッケージのimportの不足(しかもbuild.gradleに依存関係未記述)とか勘弁して欲しい
ていうかこれ作者のとこではどうやって動いてたんだ…
- 635 :デフォルトの名無しさん:2017/09/17(日) 22:18:35.53 ID:hEJjpySw.net
- >>634
TornadoFXでえらい苦労した記憶がある
無論使うのやめた
Androidのほうがまだきちんと動くw
- 636 :デフォルトの名無しさん:2017/09/18(月) 21:46:47.81 ID:KEjrNeQk.net
- 昔のEclipse環境下開発みたいなトラブル起こしてんなw
libs/*.jar と .classpath をコミットしてなくて、ライブラリ実装者とライブラリ利用者で環境が合致しないとかよくあった
build.gradleで依存管理してないなら、libs/*.jar と .idea/ で管理してるんじゃないのかね
ビルドできねーよってIssue発行して、build.gradleで依存管理するように直してもらおうぜ(Kotlinと全く関係ない話題
- 637 :デフォルトの名無しさん:2017/09/19(火) 01:56:04.30 ID:q5GM4Sdx.net
- TornadoFXは面白そうだなと思って手を付けた瞬間
・TornadoFXのDSL記法では思った通りに動作しないがJavaFXでは動く
・JavaFXではうまく動かないがswt直呼びでは動く
・JavaのGUIアプリケーションではあまり得意ではない
の3者が混然一体となってGUI初心者に襲いかかってきた荒野の印象しかない
GUIやるのさぼってきたツケもあるしkotlin関係ないけどな
- 638 :デフォルトの名無しさん:2017/09/19(火) 02:57:40.00 ID:33S+M35U.net
- FXには手を出すなって死んだばっちゃが言ってた
- 639 :デフォルトの名無しさん:2017/09/19(火) 03:13:01.72 ID:NsD/KMp/.net
- HTTPプロトコル受けるようにして、GUIはHTMLとjavascriptでブラウザ任せでやる方がいいんでね?
- 640 :デフォルトの名無しさん:2017/09/19(火) 11:33:34.11 ID:yNuGs4H1.net
- とるねーどFXのDSL記法は初心者の「こうかな?これなら動くかな?」という学習の試行錯誤を念入りに潰してバグに変えるプロ
設定記述手法以外のDSLなんてまあたいていそんなもんだが
どうしてもPCでGUI欲しくてなにもわからない最初ならJavaFXにするのがよいよ
- 641 :デフォルトの名無しさん:2017/09/19(火) 23:03:32.67 ID:yNuGs4H1.net
- >>631
IntelliJではできんことのほうが多いね
完動するJavaのクラスのファイルとかそういうでっかいのか意味のあるわかりやすい小さいやつとかじゃないとまず無理
それでも便利だろうという指摘はもっともだが
- 642 :デフォルトの名無しさん:2017/09/20(水) 00:55:44.49 ID:yi4mI7ko.net
- tornadoFXで丸1日悩んでいたことがJavaFXでは1時間でできたなんていう笑い話が…
別にこれに限った話じゃないけど、今から何か始めたいって人は「kotlin対応新鋭フレームワーク!」みたいな宣伝には騙されずにJava製のでいいからメジャーなやつを選ぼうね
たいていkotlinでの書き方みたいなのが公開されてるからそれで充分さ
- 643 :デフォルトの名無しさん:2017/09/20(水) 12:49:45.18 ID:UnWC6mNR.net
- 画面はWebView(JavaScript連携)でいいよ
- 644 :デフォルトの名無しさん:2017/09/21(木) 00:08:50.00 ID:fijEecfV.net
- そこそこの長さの文字列をわかりよく文字列のリストにする方法ってないですか
"ABCDE".toList()だとCharのリストになってmapとか繋げて変換がいります
"ABCDE".split("")だとなんか7つのリストになります
文字境界の正規表現を指定すればいいような気もしますが探せませんでした
- 645 :デフォルトの名無しさん:2017/09/21(木) 03:27:44.93 ID:AcIIQNEl.net
- >>644
"ABCDE".split("(?=.)") ではどうか?
- 646 :デフォルトの名無しさん:2017/09/21(木) 11:28:55.55 ID:fijEecfV.net
- >>> "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)
- 647 :デフォルトの名無しさん:2017/09/21(木) 13:35:52.21 ID:mLLoqbOf.net
- >>646
"ABCDE".map { it.toString() }
これおすすめ
- 648 :デフォルトの名無しさん:2017/09/21(木) 21:11:04.25 ID:fijEecfV.net
- だからそれだと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とかあのへんのメソッドは空気を読んでて困る(えらい)。じゃあこれにします
- 649 :デフォルトの名無しさん:2017/09/23(土) 03:05:43.18 ID:LuIx8rlF.net
- Kotlinは配列というかリストになんか入れるとエラーで二度と引き出せなくなるのが嫌
何か不都合があって引き出せないのなら最初から弾いてくれ
- 650 :デフォルトの名無しさん:2017/09/23(土) 06:21:39.07 ID:iHkIwIdJ.net
- 意味がわからん
- 651 :デフォルトの名無しさん:2017/09/23(土) 09:46:44.92 ID:X9FmtUo8.net
- つmutableListOf
- 652 :デフォルトの名無しさん:2017/09/23(土) 09:47:52.09 ID:X9FmtUo8.net
- いや意味がわからんな
- 653 :デフォルトの名無しさん:2017/09/23(土) 10:14:30.20 ID:Fr4ObNsJ.net
- あのへんは型とか継承とかの理解きちんとしてないとちょっと複雑なの入れたときものっそいエラーになるよ
適当に書いて適当に使ってると動くと見せかけていざというとき詰まる箇所ベスト3に入ると思う
- 654 :デフォルトの名無しさん:2017/09/23(土) 10:59:53.99 ID:BNc4tUhk.net
- 具体例があると話も広がりそうだけどイメージがわかない
- 655 :デフォルトの名無しさん:2017/09/23(土) 13:45:04.86 ID:HgJ0Nznd.net
- コレクションって色々種類があって、
問題によって適切なクラスを選ぶべきとか言っていたくせに
mutableListはmutableListしか種類ないし、それで別に問題がないってどういうことだよ
フィールドもprivateにしてsetter, getterからアクセスしろとか言っていたくせに
プロパティアクセスは実質フィールドをpublicにしているのと変わりないじゃねえか
その他、継承は良いことだからたくさん使って活用していこうとか言っていたくせに
openをつけないと継承できなくして、実質継承は推奨しないみたいになってるのなんなん
嘘ばっかり言いやがって
- 656 :デフォルトの名無しさん:2017/09/23(土) 14:17:09.35 ID:8bsZ0VcP.net
- >>653
「のっそい」って何処の方言?沢山って意味?
- 657 :デフォルトの名無しさん:2017/09/23(土) 14:32:54.88 ID:Ok7b72Pt.net
- >>655
いろいろ勘違いしててどこから突っ込めばいいのやら
- 658 :デフォルトの名無しさん:2017/09/23(土) 15:29:22.72 ID:vuIl3Vgh.net
- プロパティアクセスは、publicなフィールドへのアクセスと違って、
setを制限してgetだけにできるし、
setするときの値チェックなんかもできるし、
privateフィールドをsetter/getterでアクセスする利点はそのままに、
使うときの表記をシンプルにしてくれる
- 659 :デフォルトの名無しさん:2017/09/23(土) 15:29:38.76 ID:vuIl3Vgh.net
- 継承するよりコンポジションしてアクセスを転送する方がいいっていうのは
もうオブジェクト指向では定説
- 660 :デフォルトの名無しさん:2017/09/23(土) 15:37:14.57 ID:vuIl3Vgh.net
- ミュータブルなコレクションに厳密な静的型チェックを適用としようとするのはいろいろ限界がある
Javaでは厳密な静的型チェックを放棄して使いやすさを優先してる
- 661 :デフォルトの名無しさん:2017/09/23(土) 15:40:52.48 ID:JwqPmi7Z.net
- 今更だけど、StringをStringリスト(配列)にするってクッソ馬鹿っぽいな
Stringをnewするのも重いし、確保したメモリをGCで回収するのも重くなる
「StringをCharにしてからStringにするという手間」とか言うならChar配列で扱えというね
String配列扱うくらいに性能を考えないなら、当初の通りに#toList #map使っててもおkだろ
- 662 :デフォルトの名無しさん:2017/09/23(土) 16:00:34.34 ID:BNc4tUhk.net
- >>655
>mutableListはmutableListしか種類ない
意味がわからない
大枠でList, Set, MapなどがあってLinkedHashMapとSortedMapは順序制御が違うし
ArrayListとLinkedListは追加削除のパターンによって計算量オーダーが異なる
>setter, getterからアクセスしろとか言っていたくせに
構文が理由ではない
>フィールドをpublicにしているのと変わりない
構文が変わりないだけ
- 663 :デフォルトの名無しさん:2017/09/23(土) 16:22:03.12 ID:vuIl3Vgh.net
- >>661
Stringがイミュータブルなら、
Stringの一部分を取り出して新しいStringを作るのはとても軽い処理でできる
その新しStringを作る仕組みで配列を作れば、それも軽い
- 664 :デフォルトの名無しさん:2017/09/23(土) 16:43:59.09 ID:JwqPmi7Z.net
- COW信者乙
さておき、入れ物のStringインスタンスをnewするのはやめたいよな
中身をコピーするかどうか以前にJVM上のインスタンスの確保が重たいんだよ
そして、GCで回収して回る対象個数が増えて重たくなるのは中身のコピー有無は関係ないんだよ
- 665 :デフォルトの名無しさん:2017/09/23(土) 17:42:00.77 ID:8bsZ0VcP.net
- かといって日頃パフォーマンスに影響するような膨大な処理をさせてないので気にならない
- 666 :デフォルトの名無しさん:2017/09/23(土) 20:38:20.82 ID:3qopZopL.net
- 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/
- 667 :デフォルトの名無しさん:2017/09/23(土) 21:43:26.21 ID:Kp7vI9MI.net
- 気に入らないところが、JavaやScalaを使い込んだ人視点で、このスレレベルからみるとむしろズレてるね
- 668 :デフォルトの名無しさん:2017/09/23(土) 22:33:09.90 ID:lJM5VEju.net
- >>663
そういったイミュータブルな文字列を表現するデータ構造として 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 実装は知らない(汗
- 669 :デフォルトの名無しさん:2017/09/23(土) 22:39:08.56 ID:XK13+/v0.net
- >>642
tornadoFXのマニュアル今読んでいるところだけど、tornadoFXだめなのか...
>>643
前やってみたけど、Javascriptとつなぎ合わせるところが、ちょっと面倒だった。
型安全でもないし...
- 670 :デフォルトの名無しさん:2017/09/24(日) 02:01:15.02 ID:GOJB25/b.net
- >>667
文法が気に入らないって言ってるだけでJavaやScalaを使い込んでるようにも見えんがな
JVMの仕様上、JavaやScalaの方が最適化されてるからKotlinが気に入らないって話かと思って読んだらもっと浅い話だった
Kotlinの文法が良いってこのスレは賞賛してるから論点はこのスレと合致してる
ただ、Kotlinの文法がダメって記事と、Kotlinの文法がイイってスレとで感想が真逆なだけだ
- 671 :デフォルトの名無しさん:2017/09/24(日) 02:17:41.07 ID:vbDFNvhm.net
- >>656
ものすごい→ものっそい
- 672 :デフォルトの名無しさん:2017/09/24(日) 09:32:49.28 ID:UrGEC0gh.net
- tornadoFXはDSLのダメなとこ出てるねえってだけだから、それ気にならないならいいんじゃないかな
足りない情報は君が発信するんだ
- 673 :デフォルトの名無しさん:2017/09/24(日) 10:29:34.48 ID:tu0D//Rh.net
- Kotlin は、Groovy, Scala, Ruby の影響を受けている
Ruby を関数型にした、Elixir を意識している。
関数型では、デフォルトが、immutable
- 674 :デフォルトの名無しさん:2017/09/24(日) 14:15:58.51 ID:q8xwt5Nv.net
- ねえねえおにいちゃん
ミュータブルリストの先頭から要素を削除して詰める(戻り値不問)って行為をいちばんうまくできる書き方ってなあに
- 675 :デフォルトの名無しさん:2017/09/24(日) 14:31:53.81 ID:c233uqnI.net
- >>674
removeAt() じゃないの?
- 676 :デフォルトの名無しさん:2017/09/24(日) 14:32:52.09 ID:c233uqnI.net
- コマンドラインでこんな風にできたが
>>> val a = mutableListOf(1, 2, 3)
>>> a
[1, 2, 3]
>>> a.removeAt(0)
1
>>> a
[2, 3]
- 677 :デフォルトの名無しさん:2017/09/25(月) 02:59:33.77 ID:JjTJVibn.net
- kotolinってc#で言うpartial classみたいなことできないのかな?
実装を分けたい
- 678 :デフォルトの名無しさん:2017/09/26(火) 20:47:43.28 ID:fZxiOEU0.net
- 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って表示するようにしたいんですが
- 679 :デフォルトの名無しさん:2017/09/26(火) 20:59:27.36 ID:zAWxdVvk.net
- bodyは () -> T じゃん?つまり body() がTじゃん?
返り値いらないならUnit型でも
- 680 :デフォルトの名無しさん:2017/09/26(火) 21:19:23.18 ID:rflTuAqa.net
- println()って何か返すんだっけ?
- 681 :デフォルトの名無しさん:2017/09/26(火) 21:25:08.76 ID:aozsvlNo.net
- コピペ参考でジェネリクス書いちゃう気持ちはわかる
ネットとかにある高階関数なんかのサンプルはたいていなんか小難しいパターンやってるからな
ちょこちょこ検索してみたけどシンプルなのはなかなかないようだ
というわけで顧客が必要だったもの:
fun main(args : Array<String>){
test(){
println("test!")
}
}
fun test(body: () -> Unit){
println("START")
try{
return body()
}
finally{
println("END")
}
}
超わかりやすい
- 682 :デフォルトの名無しさん:2017/09/26(火) 22:18:45.79 ID:8E9hjYW6.net
- >>681
それ return 書かなくても同じだよね?
- 683 :デフォルトの名無しさん:2017/09/27(水) 00:00:41.38 ID:u5lJ+g1P.net
- 簡素化のためにUnitを返す型をクロージャーにしてるけど任意の型を戻せるようにしたいんじゃないの
>>681は顧客が本当に必要だったものとは別のものが出来上がってる事例な気がする
- 684 :デフォルトの名無しさん:2017/09/27(水) 02:23:01.67 ID:T8WeFZTh.net
- >>678
return body ではなく return body() では?
- 685 :デフォルトの名無しさん:2017/09/28(木) 00:26:24.46 ID:iSh/X78V.net
- 前から思ってたんだけど、Kotlinって
val hogeIsEmpty = hogeが空かどうかのわりと長い1行
if (hogeIsEmpty) {
// then
}
みたいな読み下す優先の変数の名前とか分離定義って推奨されてる?
Javaでやらないようなことはやらんほうがいい? 条件カッコに改行ありで詰め込むべき?
- 686 :デフォルトの名無しさん:2017/09/28(木) 00:37:08.13 ID:ZguEyfSR.net
- そういうのはRubyでやれや!って煽られて終わりな気も致しますよ
- 687 :デフォルトの名無しさん:2017/09/28(木) 00:42:19.80 ID:iSh/X78V.net
- くっ…
- 688 :デフォルトの名無しさん:2017/09/28(木) 01:13:09.11 ID:TXb2X2Zy.net
- えーそれ言語関係なくない?
hogeIsEmptyな関数に抽出するのは
リファクタリングの基本だしJavaでもやるだろ
- 689 :デフォルトの名無しさん:2017/09/28(木) 18:33:31.64 ID:Qp0jWVYU.net
- むしろJavaだとboolean isHogeEmpty()ってメソッドを作るケースだから
Javaの文法が古臭いと仕切り直したKotlinではメソッドを作らないのが正当なんじゃないの
- 690 :デフォルトの名無しさん:2017/09/28(木) 20:41:39.85 ID:DhynOxwg.net
- そうなのか?
うーん。なんだったらgetだけのプロパティ作ってその中でやるという手もあるが。
- 691 :デフォルトの名無しさん:2017/09/28(木) 21:04:34.88 ID:wU4E+DpF.net
- >>685
変数での分離で良い
一見で意味付けが分かり辛いものは変数名で説明していい
局所的なものであれば無意味にメソッド化する必要も無い
その条件式が2度出てきたときに再考する
- 692 :デフォルトの名無しさん:2017/09/29(金) 08:30:52.93 ID:Zb0/fBQl.net
- あー、rubyは変数いきなり定義だし命名規則もsnake_caseで緩いし変数もメソッドも呼び出し方同じにできるし
真偽には?つけてよいという風潮があるからこういうの得意だね
Java/Kotlinは読み下しさせようとするとわりとデコボコするけどそのかわり静的コンパイルだから実行パフォーマンスへの影響が少ない
(だから「ちょっと動かして見やすく名前つけただけで動作的中身的には一緒だから安心して」という説得に向いてるのはKotlinのほうではある)
Kotlinにはスコープ関数とかletとかitとか(あとはbeがあれば完璧だ)あるのでそのへん駆使してもらうしか
- 693 :デフォルトの名無しさん:2017/09/29(金) 09:00:05.56 ID:RLeXl8wr.net
- 一般的には説明変数を追加するのに比べると
メソッド抽出のほうが可読性も保守性も高い
デメリットもあるから状況次第で選択すればいい
いずれにしても言語に依存した話ではないよ
- 694 :デフォルトの名無しさん:2017/10/01(日) 12:07:39.75 ID:l76lJP+R.net
- 言語に関係ない話だと思うんだけどごめん
初心者がゲーム作ってて、たとえばRPGのアイテムみたいなのをクラスで実装したいって考えたとき、
たとえば食べ物アイテムを100個くらい作ろうと思ったら、名前とか重さとか売価とかレシピとかを持ってるクラスが(下手するとktファイルも)それだけで100個あることになるよね
何かアイテムのデータを確かめたいとか書き換えたいとか思ったら100個の中から探さないといけなくなる気がして、とてもしんどいんだけど、なにか便利な管理方法ってあるものなのかしら
- 695 :デフォルトの名無しさん:2017/10/01(日) 12:35:40.87 ID:z+KkZaZ7.net
- データベース…
- 696 :デフォルトの名無しさん:2017/10/01(日) 13:26:09.11 ID:l76lJP+R.net
- でもデータベースはメソッド生えないにゃん…
現状の超でっかいMapオブジェクト
{"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
ビルド時にCSVファイルとかからクラスファイルを生成してもらえばいいのではと思ったけど
書いてるときにアイテムのクラスやメソッドが参照できないとIDEが補完警告出すことに気づいてぐにょーんってなってる
たぶんゲーム特有のなんとかかんとかなんだろうと思うのでなんとかする
- 697 :デフォルトの名無しさん:2017/10/01(日) 13:29:23.37 ID:sf4M11/u.net
- つまり、どういうこと?
- 698 :デフォルトの名無しさん:2017/10/01(日) 13:45:30.71 ID:kJ8csjIE.net
- >>696
アイテムごとに個別のメソッドが必要だと考えるのは抽象化が不足してるから
食べ物アイテム100個作っても食べ物クラス1個で済む場合もあるでしょ
- 699 :デフォルトの名無しさん:2017/10/01(日) 15:01:31.15 ID:OWvF7Xmk.net
- むしろそれぞれクラス化するのはアクションの方で
アイテムなんて1クラスで十分じゃね
- 700 :デフォルトの名無しさん:2017/10/01(日) 15:03:06.78 ID:7TAdAwOu.net
- ゲ制でやれ
- 701 :デフォルトの名無しさん:2017/10/01(日) 15:06:13.80 ID:4trAwtIa.net
- >>696
> {"yakusou" -> {"name":"薬草", "price":10, "weight":2, "action":["EAT","DROP","HEAL","GRIND"]...}}
> の該当アイテム読んでactionで分岐するメソッド構成とあんまし変わらない気がするにゃん…
それの何がいけないの?
- 702 :デフォルトの名無しさん:2017/10/01(日) 15:11:03.14 ID:wO0rh9jl.net
- 色々用途や効果がある個々のアイテムインスタンスが対応するメソッドを持ってて自分に関することは全て知っていて
たとえば砕いたら何になるのかとか、字面に置いたらどのテクスチャになるのかとか、を問い合わせる構造にしたいのはわかる気がする
でもそれ理想っぽいけどお察しの通りデータ増えると破綻するんすよ…
- 703 :デフォルトの名無しさん:2017/10/01(日) 15:24:19.98 ID:z+KkZaZ7.net
- よくわかんないけどデータベース(SQL)から(id,)name,price,weight,actionの(データ)クラスに入れてMapに突っ込むのは普通じゃね
アクションは共通の動作だけハンドラーに直接書いて、固有の動作は個々のアイテムごとにスクリプトファイル作ってそんなかにアクションごとのメソッド書いて、それをハンドラーから実行させる
- 704 :デフォルトの名無しさん:2017/10/01(日) 15:27:41.13 ID:z+KkZaZ7.net
- あ
完全にサーバー<=>クライアント型のゲームを想定してました忘れてください
- 705 :デフォルトの名無しさん:2017/10/01(日) 15:35:03.09 ID:YDbLDpC/.net
- よっぽどドラクエ2みたいなツクールサンプル的な単一用途アイテムでもない限り
「薬草という多用途アイテムを表現するのに薬草クラスのインスタンスを作って保持する」というのは悪手
このへんは個別に考えてもらわなければならないのでまあ結論としては>>700
個々人が下手に作って再発明して失敗して適応適用していかなきゃならんなんてなんて非効率なんだとは思うのだが今のところ光明はない
ぶっちゃけ初心者にゲーム作らせるのこのへんの問題もあってあんま好きではないのだ。ユーティリティアプリが無難
- 706 :デフォルトの名無しさん:2017/10/01(日) 16:36:39.58 ID:IPLbJXkb.net
- 薬草を使った時の処理
薬草を燃やした時の処理
薬草を売った時の処理
…
薬草クラスにまとめようがまとめまいが
いずれはどこかに書かなければならない
だったら最初から薬草クラスに入れとけって話
- 707 :デフォルトの名無しさん:2017/10/01(日) 17:36:02.79 ID:KiopyZMH.net
- じゃあ毒消し草にも同じ処理コピペすんの?
- 708 :デフォルトの名無しさん:2017/10/01(日) 23:16:31.50 ID:aVSvWtqd.net
- アルゴリズムと計算量を知らないのか
千個の中から、1つを見つける際、全(線形)探索なら千回、
2分探索なら、2^10 = 1,024 だから、10回で見つけられる
2分探索なら、データ数が千個でも、探索回数は、1/100 になる
2千個になっても、全(線形)探索なら2千回、
2分探索なら、11回で見つけられる。
探索回数は、1/200 になる
データ数が倍になっても、探索回数は1回しか増えないが、
データを2分木で持っていないと、2分探索はできない
- 709 :デフォルトの名無しさん:2017/10/01(日) 23:32:16.54 ID:kJ8csjIE.net
- >>708
Mapのlookupなんですけど
- 710 :デフォルトの名無しさん:2017/10/01(日) 23:40:51.98 ID:3vO8zSI2.net
- プログラミング向いてなさそう
- 711 :デフォルトの名無しさん:2017/10/01(日) 23:54:27.15 ID:f01mTcSu.net
- 二分探索と二分探索木の探索って違わない……?
- 712 :デフォルトの名無しさん:2017/10/02(月) 00:18:14.35 ID:YWGKtTIQ.net
- >>711
文章を最後まで読んでる偉い子
- 713 :デフォルトの名無しさん:2017/10/02(月) 01:24:21.58 ID:wSRtZd0X.net
- ゲームでマスタ類はID(=index)でアクセスするので計算量はO(1)
そして>>694の話なら探すのは開発者なのでデータ化してメンテ画面作れという話になる
- 714 :デフォルトの名無しさん:2017/10/02(月) 04:26:00.56 ID:/O3TaAQA.net
- 長文で探索語るなら、ZDDの説明ぐらいしなされ
- 715 :デフォルトの名無しさん:2017/10/02(月) 08:35:15.29 ID:fVjCl62I.net
- 一覧で管理したくなる量のデータ(とそれに紐づいた処理)のクラスをいちいち手作業で作るのが面倒大変だけどこれでいいのかなって話なんじゃないの
前が見えなくなる人は迷惑だな
- 716 :デフォルトの名無しさん:2017/10/02(月) 10:28:12.40 ID:o9ncCo8n.net
- JVMにはJAXBとかいう古き良きアーキテクチャがあってだな・・・
XMLだろうが、CSVだろうが、DBだろうが、(データ)クラスだろうが、どこに置くかは好みよね
オブジェクト指向で親クラスにユーティリティ共通メソッド置くか
関数型でユーティリティクラスに共通関数置くかも多分好みの範疇だろうよ
その上で、Kotlinだと何が流行りなの?(データ)クラス+関数型が流行り?
- 717 :707:2017/10/02(月) 23:30:03.61 ID:eOIGvVq/.net
- DB だと、B-tree, B+ tree
計算量は、O(log n)
全(線形)探索なら、O(n)
計算量は、>>708
に書いた通り
n = 100万なら、全探索で、100万回掛かるところが、
2分探索では、2^20 = 100万だから、20回
データを2分探索木で構築していないのなら、DB には勝てない
- 718 :デフォルトの名無しさん:2017/10/02(月) 23:38:58.59 ID:o0D0xmrR.net
- O(1)でやってんだからDBに勝ってるだろ
- 719 :デフォルトの名無しさん:2017/10/03(火) 00:27:03.06 ID:G2lKIaaK.net
- 100個のインスタンスを、生成しただけだろ?
Map(key : value) になっていないだろ?
Map なら、O(1) だけど
- 720 :デフォルトの名無しさん:2017/10/03(火) 01:18:34.37 ID:aqsVlxub.net
- >>717
二分探索木じゃなくても二分探索はできるだろ
>>711の親切なツッコミをスルーして無駄レスすんなよ
- 721 :デフォルトの名無しさん:2017/10/03(火) 10:03:00.11 ID:/m6PSf5w.net
- >>715も無視しないほうがいいような気がする
jarファイル中のクラスファイル検索なんて1万でもさして問題にならん(さすがに作成は人間の仕事ではないが)
そして問題はそこではなかった
理解できなくなっちゃったんだろうけど
- 722 :デフォルトの名無しさん:2017/10/04(水) 02:14:07.85 ID:KVI0o5Io.net
- Kotlinの話しろよ
- 723 :デフォルトの名無しさん:2017/10/04(水) 08:09:18.36 ID:kznoEkrV.net
- JRE8では何ともなかったのにJRE9だとWARNING吐くようになったのは仕様?
Kotlinを最新の1.1.51にしても直らなかった。
- 724 :デフォルトの名無しさん:2017/10/04(水) 08:38:43.69 ID:JPTWWYYO.net
- なんて出てるの?
- 725 :デフォルトの名無しさん:2017/10/04(水) 08:42:20.58 ID:0hGgeKFz.net
- Androidの場合は全参照メソッド数が65536超えるとコンパイル不可能になるという問題が一応あるぞ
つらいMultiDex使う羽目になるので「どうぐぜんぶにめそっどがはえてるおぶじぇくとしこうてきにただしいくらす」以外のアプローチも初期からご検討いただくと幸いだ
- 726 :デフォルトの名無しさん:2017/10/04(水) 09:07:35.93 ID:V3GzLm78.net
- multidexって何が辛いの?
- 727 :デフォルトの名無しさん:2017/10/04(水) 09:54:28.03 ID:cxJCJ2DC.net
- \コットリ〜ン/
- 728 :722:2017/10/04(水) 19:34:08.08 ID:kznoEkrV.net
- >>724
インタプリタにて↓
>>> 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
- 729 :デフォルトの名無しさん:2017/10/04(水) 19:35:36.92 ID:sxpDUYrW.net
- kotlinって自作例外を「アプリ内事象○○のせいで完了できなかったんで3つくらい上の自作catchで捕まえて処置よろしこ」程度のメッセージ的に気軽に使ってもいい?
外部提供APIとかじゃなく、自作のプログラム内での処理依頼のやり取り用
- 730 :デフォルトの名無しさん:2017/10/04(水) 20:44:57.35 ID:+JSlwxf3.net
- String, char[] が異なる型なのかも
文字配列は、C言語の、\0 終端文字列かな?
String型は高機能な、C++のString型かな?
- 731 :デフォルトの名無しさん:2017/10/04(水) 21:19:13.27 ID:1osd033a.net
- kotlinの技術書って、何で未だに日本向けのは一冊しか出てないの?
- 732 :デフォルトの名無しさん:2017/10/04(水) 21:23:31.36 ID:ekjB4cHk.net
- 最近のAndroidはmultidexしなくても動くし、minSdkVersionを低く指定したら勝手にmultidexでバイナリ作られるから考慮するの無駄
というのは置いておいて、Java9のModule(Project Jigsaw)でアクセスコントロールが強化されて不正なリフレクションに対して警告出してるんじゃね
将来的には警告じゃなくエラーになりそうな気がするから、Kotlinのバージョンアップで直るのを待つべ
- 733 :デフォルトの名無しさん:2017/10/04(水) 22:29:29.12 ID:vuQl5P59.net
- 長澤太郎以外は販売できないことになっている
- 734 :デフォルトの名無しさん:2017/10/05(木) 01:07:21.32 ID:ioWgBjMx.net
- >>731
まだあまり流行ってなくて出版社が乗り気じゃないのでは?
- 735 :デフォルトの名無しさん:2017/10/05(木) 04:39:51.99 ID:i/YPJQu8.net
- 今月2冊出るよ
- 736 :デフォルトの名無しさん:2017/10/05(木) 09:20:35.38 ID:qdkn4E5e.net
- おおそうか
- 737 :デフォルトの名無しさん:2017/10/05(木) 21:38:31.29 ID:c5+kzESi.net
- サーバーサイドKotlin明日発売やないか
- 738 :デフォルトの名無しさん:2017/10/05(木) 23:00:14.40 ID:RWFlOlgJ.net
- 流行っているかどうかは、掌田津耶乃が判断する。
このおっさんが本を出す分野は、流行っていると言える
このおっさん1人で、プログラミングの約半分の分野を、網羅しているw
- 739 :デフォルトの名無しさん:2017/10/05(木) 23:19:11.04 ID:c5+kzESi.net
- そいつが出す本自体は糞だけどな
- 740 :デフォルトの名無しさん:2017/10/05(木) 23:21:16.13 ID:XUc7C4CE.net
- 別に流行り廃りでプログラムするわけじゃないしな
- 741 :デフォルトの名無しさん:2017/10/06(金) 01:37:01.01 ID:x0C9073k.net
- これか。10月6日発売。
Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/aQkmPNJ
- 742 :デフォルトの名無しさん:2017/10/06(金) 04:09:03.86 ID:tqIbkLAn.net
- Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
Kotlin Webアプリケーション 新しいサーバサイドプログラミング、長澤 太郎、2017/10/6
- 743 :デフォルトの名無しさん:2017/10/06(金) 05:25:11.21 ID:dm5GZqP5.net
- http://kotlin.hatenablog.jp/entry/2012/12/10/093018
このコードエラーになるんだけど、情報古くて今はラムダで引数に()使えなくて
戻り値の型を指定することができないという理解でいいんですかね?
- 744 :デフォルトの名無しさん:2017/10/06(金) 05:39:21.03 ID:tqIbkLAn.net
- Try Kotlin のサイトで、そのソースコードを入力して、エラーメッセージを見れば?
- 745 :デフォルトの名無しさん:2017/10/06(金) 09:08:25.48 ID:NqBQU0ep.net
- それは答を教えてくれるわけじゃないからなあ
>>743
関数リテラルの戻り値の指定はこうしてくだされ
val result: (Int, Int) -> Int = {a, b -> a * b }
2012アドベントカレンダーの結果はもう検索で出なくしたほうがいいと思うんだよねえ
- 746 :デフォルトの名無しさん:2017/10/06(金) 10:14:22.41 ID:dm5GZqP5.net
- >>745
なるほど。ということは即時関数だと
val result: String = {a: Int, b: Int -> a.toString() + b.toString()}(3, 4)
みたいな感じにすればいいのね
- 747 :デフォルトの名無しさん:2017/10/06(金) 11:25:26.06 ID:oni6PLk4.net
- val old = aaa.value
aaa.doValueMayChange()
if (old != aaa.value) aaaActionIsSuccess()
これなんかステキな感じに書けたりしませんかね
実際には長い処理してるだけのdoValueMayChange()の戻り値をこのためだけに真偽値にしてチェックするのってなんかキモくないですかね
if ( aaa.doValueMayChangeAndReturnTrueIfInnerTargetValueIsChanged() ) aaaActionSuccess()
- 748 :デフォルトの名無しさん:2017/10/06(金) 17:16:40.52 ID:X4PDhaWR.net
- 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)
...
- 749 :デフォルトの名無しさん:2017/10/06(金) 19:04:09.88 ID:X4PDhaWR.net
- >>748
動いた。最後のほうの独立した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タブ表示
書かなくても動いてる人はどっかで設定してるんだろうな
- 750 :デフォルトの名無しさん:2017/10/06(金) 21:33:44.02 ID:tqIbkLAn.net
- プログラミング GROOVY、2011
Gradle 徹底入門、2014
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応、掌田津耶乃、2017
Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集、2012
- 751 :デフォルトの名無しさん:2017/10/06(金) 22:27:21.32 ID:tSMXLmVc.net
- >>749
同じ苦労したことある。ドキュメントに書いてよ…。
- 752 :デフォルトの名無しさん:2017/10/07(土) 05:51:08.18 ID:dZntJrcK.net
- >>747
aaaに押し込みなさい
- 753 :デフォルトの名無しさん:2017/10/07(土) 14:33:30.45 ID:tYMANlqN.net
- SPekはBDDだし難しいよね
作ってるぶんにはメソッドの引数と戻り値が間違いなく動きます下手に中身変えたらREDですテストのほうがいいんだけどなー
- 754 :デフォルトの名無しさん:2017/10/07(土) 14:36:59.78 ID:lxJ0Yf9D.net
- kotlinはJavaわかんなくても他言語やってたらイケル?
- 755 :デフォルトの名無しさん:2017/10/07(土) 14:53:56.94 ID:tYMANlqN.net
- >>754
言語仕様の理解においてはJavaの経験は不要
ただし事例のWeb検索に関して
「Javaでこう書いてるってことはKotlinだとこう書くんだろうな」
「欲しいJavaの処理はだいたいこのへんだろうからここをコピペしてIDEで自動変換しよう」
というようなことができる程度の「Javaプログラムを読める力」が実際には必要
でもまあネットでJava入門を3日かけて最後まで読んで身につく程度があれば充分なのでそれこそ他言語経験があれば問題はないね
- 756 :デフォルトの名無しさん:2017/10/07(土) 14:59:26.09 ID:lxJ0Yf9D.net
- >>755
ありがとうございます
kotlinがandroidの開発言語としてサポートされることになったので試してみたいなーと思ってたんでアプリ作ってみます
- 757 :デフォルトの名無しさん:2017/10/07(土) 18:31:13.36 ID:b4KK/o19.net
- javaは1日でマスターできるので実質java未経験でも問題ないよ
- 758 :デフォルトの名無しさん:2017/10/07(土) 19:18:53.56 ID:rBYfi2xH.net
- 変数に入れた文字列でメソッドやプロパティを呼ぶことはできますか
val mes = "toUpperCase"
someString.callMethod(mes, null)
これでsomeString.toUpperCase()のかわりになるみたいなやつです
- 759 :デフォルトの名無しさん:2017/10/07(土) 19:29:23.45 ID:+RQU5E5j.net
- ことぅりんだからなお前ら
ことりんとかいってたら数す
- 760 :デフォルトの名無しさん:2017/10/07(土) 19:33:19.97 ID:+RQU5E5j.net
- それにしてもAppleがObjective-CにSwiftを追加したと思ったらGoogleがJavaにKotlinを追加してどいつもこいつもまったく...
- 761 :デフォルトの名無しさん:2017/10/07(土) 19:41:49.21 ID:XbHkmFTG.net
- ことりんかわいい
- 762 :デフォルトの名無しさん:2017/10/07(土) 22:16:30.42 ID:f9dDdlSq.net
- ことりん(*´ェ`*)ポッ
- 763 :デフォルトの名無しさん:2017/10/07(土) 22:18:46.44 ID:iveAgMmn.net
- 人間だったら絶対美少女
- 764 :デフォルトの名無しさん:2017/10/07(土) 22:55:16.08 ID:LDd+/z40.net
- ちょまどが漫画書いてくれないかなあ
- 765 :デフォルトの名無しさん:2017/10/07(土) 23:13:31.53 ID:X09Q1vcV.net
- ちょまど(笑)
- 766 :デフォルトの名無しさん:2017/10/07(土) 23:16:52.81 ID:+RQU5E5j.net
- お前ら...
https://www.hi-jax.com/namiaki/wp-content/uploads/2016/05/81C582BB-243A-4636-B3E4-DFD58ED4D17C.jpg
- 767 :デフォルトの名無しさん:2017/10/07(土) 23:38:16.22 ID:f9dDdlSq.net
- >>758
君の言いたいことがよくわからない。
- 768 :デフォルトの名無しさん:2017/10/07(土) 23:51:42.16 ID:2fKU1//d.net
- 何言語からやってきたかは知らんが動的系のevalがほしんだろ
Reflectionするしかないかな
- 769 :デフォルトの名無しさん:2017/10/08(日) 01:04:04.02 ID:bhcsmcAx.net
- あざとい名前つけやがって
- 770 :デフォルトの名無しさん:2017/10/08(日) 01:14:02.14 ID:93IJP3PA.net
- >>758
KFunctionのcall
val kclass = YourClass::class
val function = kclass.functions.find { it.name == "method_name" }
val instance = YourClass()
function?.call(instance, args)
- 771 :デフォルトの名無しさん:2017/10/08(日) 01:22:31.02 ID:93IJP3PA.net
- >>768
Objective-Cだと結構普通に使うんよ
- 772 :デフォルトの名無しさん:2017/10/08(日) 01:57:15.44 ID:32PQUixn.net
- 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"]
- 773 :デフォルトの名無しさん:2017/10/08(日) 02:41:05.63 ID:c+/m9riq.net
- あ、ようやっと何言ってるかわかったw
- 774 :デフォルトの名無しさん:2017/10/08(日) 21:54:57.44 ID:32PQUixn.net
- IntelliJとSpekでSpecファイルひとつのテストってできないのかな
なんかできそうだけどいまいちよくわからんエラーが
これってそもそもできるもんなの? 俺がなんか悪いだけ?
- 775 :デフォルトの名無しさん:2017/10/09(月) 19:59:00.68 ID:3clxx/P9.net
- リストを先頭からN個に分割というのを一発でできたりしない?
["a","b","c","d","e"] を2つずつ分割して [["a","b"], ["c","d"] ,["e"]] にしたい
- 776 :デフォルトの名無しさん:2017/10/09(月) 20:53:05.90 ID:sCOU7I7y.net
- >>741
その本さっき紀伊国屋で買った
- 777 :デフォルトの名無しさん:2017/10/09(月) 21:17:44.65 ID:bvkIQjV4.net
- その本もさ、Kotlin本の選択肢がないから仕方なく買うってレベルの本だよな
あの初心者向けの無駄にポップなレイアウト、なんとかなんねえのかな
内容の割に無駄に重いし分厚いし、技術書なんて無地の紙でいいんだよ
- 778 :デフォルトの名無しさん:2017/10/09(月) 21:55:29.10 ID:4WiIHmfQ.net
- >>775
既存の関数一つで、ということなら知らないけど
関数追加して良いのなら
http://rextester.com/JSYB15250
- 779 :デフォルトの名無しさん:2017/10/09(月) 22:00:53.70 ID:4WiIHmfQ.net
- Try Kotlinだとコード共有にアカウントが必要なのでKotlin対応の別のを探した
長めの実行可能なコード貼るのに便利だと思う
アカウント無しでsave出来るオンラインコンパイラ
http://rextester.com/l/kotlin_online_compiler
- 780 :デフォルトの名無しさん:2017/10/09(月) 22:34:41.54 ID:c41RoAYB.net
- 言語は道具であってそれを使って何を作るのかが重要なわけだがKotlinによって何か革命が起きる見込みでもあるのか?
それともモダンな何かをいじってる自分が好きなだけ?
- 781 :デフォルトの名無しさん:2017/10/09(月) 23:58:04.80 ID:tFlwnlNI.net
- >>780
同じことやるのでもJavaより記述が楽そうな感じがするからだ。
更にこれまでのJavaの資産を使えるのが良い。
- 782 :デフォルトの名無しさん:2017/10/10(火) 00:00:43.01 ID:jM5sd94/.net
- どんどん高級度が増して行ってそのうち人間はなぜソフトウェアがCPU上で動いているのかその仕組みを知る人がいなくなるのですね
そしてAIと対峙しなければならなくなったとき誰も対応できなくなる
そういう未来が待っているのでしょう
- 783 :デフォルトの名無しさん:2017/10/10(火) 04:02:27.77 ID:Q5yhaeDv.net
- >>777
ま、今後に期待だな。
一応 Google が Android 用として採用したんだから入門書は他にも出てくると思う。
ネットの情報も増え続けるだろう。
- 784 :デフォルトの名無しさん:2017/10/10(火) 10:24:21.67 ID:8V61cfLq.net
- いままでひらがなだけのぶんしょうだったのがかんじがつかえるようになったというかんじだ
そりゃ最終的な音としては漢字があっても無くても変わらないかもしれないが、漢字を理解していれば読みやすく書きやすい
長文を書きやすくもなるだろうし、そこから生まれるものもあろう
個人的にはスクリプト言語のような立ち位置だと思っている
- 785 :デフォルトの名無しさん:2017/10/10(火) 21:49:29.43 ID:VPwnJAPN.net
- 今月末に出るKotlin in actionの方は上級者向けのような気がする
- 786 :デフォルトの名無しさん:2017/10/10(火) 22:21:41.00 ID:FWHsF53j.net
- >>785
なんだ、日本語訳でるのか。頑張って洋書の方読んでるけど、理論だてて書いてあるのでわかりやすい。ところどころJavaとの比較があり、Javaの知識がないとちょっと苦しいとこあるかも。あとTry Kotlinでサンプルもあるよね。
- 787 :デフォルトの名無しさん:2017/10/10(火) 23:01:05.11 ID:Z3ZusD4X.net
- in action は上級じゃないよ
プログラミング初心者向けじゃないけど
最初の1冊に選んでいい本
- 788 :デフォルトの名無しさん:2017/10/10(火) 23:25:19.52 ID:VPwnJAPN.net
- 日本語の技術書とかネットの情報でも日本語のものだと実務に使えるレベルに達しなくなってきてるよね
日本はIT後進国になってしまったんだと常々感じる
- 789 :デフォルトの名無しさん:2017/10/10(火) 23:37:43.52 ID:ZTVh7Eud.net
- >>788
テクノロジーの移り変わりが早すぎて、一次リソースを参考にした方が効率的だし、わざわざ日本語に訳す必要もないから
- 790 :デフォルトの名無しさん:2017/10/10(火) 23:38:33.00 ID:sNdI8sqC.net
- >>788
先進国だった時なんてあったか?
- 791 :デフォルトの名無しさん:2017/10/10(火) 23:42:30.50 ID:gasOXxRr.net
- 一昔前はtronとかあったやん
今の日本はなにもない
- 792 :デフォルトの名無しさん:2017/10/11(水) 00:08:24.55 ID:YuycjJaM.net
- 最速だからいいということばかりでもない
周回遅れでも構わない情報のほうが世の中には多い
Kotlinスタートブックは1年以上前の刊行だけど使えないゴミだと言う人はまともな人にはおるまい
- 793 :デフォルトの名無しさん:2017/10/11(水) 00:09:08.60 ID:T++UmApy.net
- ハードはともかく
ソフトは先進国だった事はない
- 794 :デフォルトの名無しさん:2017/10/11(水) 00:18:15.85 ID:EN0HNRmd.net
- これからなればいい
- 795 :デフォルトの名無しさん:2017/10/11(水) 00:23:02.14 ID:JdWo4X1f.net
- Androidの技術書見ても現在主流の
RxJava, databinding, MVVM, flux, redux辺りの解説をしている本が全然ない
Androidだからまだネットで日本語の情報多いけど、
iOSになると本当に英語の情報しかなくなってくる
本当に駄目な国になってきている
ニュージーランド辺りに脱出した方がいいんじゃないかと思ってくるレベル
あっちはプログラマーの年収1000万らしいし
- 796 :デフォルトの名無しさん:2017/10/11(水) 00:30:16.27 ID:LhuJ4eZA.net
- >>795
英語の情報があればいいやろ
- 797 :デフォルトの名無しさん:2017/10/11(水) 00:31:11.36 ID:JfiRQ2Rl.net
- むしろ英語を使うようになったからでは
日本語の書籍は高いし遅いし
- 798 :デフォルトの名無しさん:2017/10/11(水) 00:31:53.22 ID:V+6zovsu.net
- >>795
お前と違って、英語の情報だけで充分なエンジニアが増えているという見方もできる
- 799 :デフォルトの名無しさん:2017/10/11(水) 00:33:36.19 ID:EN0HNRmd.net
- そしてみんなが苦もなく英語が読めるようになった頃、完璧な自動翻訳が完成する。
- 800 :デフォルトの名無しさん:2017/10/11(水) 01:16:39.94 ID:OvZKAieI.net
- >>797
msのxamarin本なんか、原本はePubなら無料だが、日本語訳したとたんに6000円になるぜ!
- 801 :デフォルトの名無しさん:2017/10/11(水) 01:19:17.66 ID:YuycjJaM.net
- >>800
安心しろ
日本の技術書を英訳してもだいたい1冊40ドルくらいにはなる
固定化されて訂正できない翻訳には人件費がかかるのだ
- 802 :デフォルトの名無しさん:2017/10/11(水) 14:21:15.86 ID:WJBR6sLF.net
- 英語、ちゃんと理解できるようにならんと、これからはだめなんだろうなぁ
なんとなくでしか読めんし、結局分からん事は日本語で探して解決するから、英語だけで完結できん
一年かけて英語習得するか!
- 803 :デフォルトの名無しさん:2017/10/11(水) 14:48:59.07 ID:YuycjJaM.net
- 高卒くらいの英語力は保持してるつもりなのにネットの記事がぜんぜん読めんという場合
・スラングがめっちゃ入ってる
・ネット文法が入ってて正規寄りではないので読み取れない
・専門用語が専門的すぎる
のだいたいどれかで、プログラミングの記事は最後の比率が大きい
これは英語本体をどんだけ勉強しても専門用語の日本での意味や技術的意味がわかるわけではないので役に立たない
パブリックメソッドを行政手法と訳してたら絶対わからんわけでな
- 804 :デフォルトの名無しさん:2017/10/11(水) 16:03:19.52 ID:hhJP1zLS.net
- プログラマで英語弱い人はTry Kotlinのサンプルをちょこちょこ試してみたほうがより効率的かもね
- 805 :あ:2017/10/11(水) 18:19:59.78 ID:Q0CgrKbU.net
- >>803
逆にしばらくエンジニアやってりゃ、技術文書は読めるようになったりするけどな。
仕事でやるなら翻訳自体、翻訳メモリ使って翻訳することの方が多いし。
翻訳メモリで完全新規な文書の翻訳はたまに手伝う。
- 806 :デフォルトの名無しさん:2017/10/11(水) 18:21:22.65 ID:AVBsiIwy.net
- >>802
おお。そうだ。このスレはこれから英語で書こう。
- 807 :デフォルトの名無しさん:2017/10/11(水) 18:22:16.37 ID:AVBsiIwy.net
- i have a pen
- 808 :デフォルトの名無しさん:2017/10/11(水) 20:28:51.56 ID:qqbN54VH.net
- >>807
文頭は大文字にしなきゃ
- 809 :デフォルトの名無しさん:2017/10/11(水) 20:39:22.12 ID:M3+oH0ZC.net
- Iは文頭でなくても大文字にしなきゃ
- 810 :デフォルトの名無しさん:2017/10/11(水) 20:56:44.06 ID:PtNlY4pv.net
- have じゃなくて am でしょ
- 811 :デフォルトの名無しさん:2017/10/11(水) 21:23:33.96 ID:JdWo4X1f.net
- I am a pen
- 812 :デフォルトの名無しさん:2017/10/11(水) 23:47:37.98 ID:9t+rVGQp.net
- me too
- 813 :デフォルトの名無しさん:2017/10/12(木) 07:16:44.81 ID:OX/pZMRS.net
- 人間はいねぇのかここは...
- 814 :デフォルトの名無しさん:2017/10/12(木) 08:54:42.09 ID:Pi/VQsL7.net
- 高卒レベル英語力(英検2級)と辞書があれば、読めるだろうに。
- 815 :デフォルトの名無しさん:2017/10/12(木) 09:09:03.89 ID:tSTw7rai.net
- は?英語なんて知らなくても全部グーグル先生に突っ込めば読める
- 816 :デフォルトの名無しさん:2017/10/12(木) 09:18:29.99 ID:AXWM+xbo.net
- I am fool.
You are fool.
We are fool.
- 817 :デフォルトの名無しさん:2017/10/12(木) 09:46:23.80 ID:o8TlX9Z0.net
- >>816
you fool
you are a fool
you are dead foolish
article required
- 818 :デフォルトの名無しさん:2017/10/12(木) 10:15:06.41 ID:7rfu7aua.net
- You is a big fool man.
Hahahaha.
- 819 :デフォルトの名無しさん:2017/10/12(木) 11:44:05.54 ID:6DbuDLdk.net
- me too
- 820 :デフォルトの名無しさん:2017/10/12(木) 12:17:18.61 ID:jZh2ph1X.net
- lol
- 821 :デフォルトの名無しさん:2017/10/12(木) 12:40:17.85 ID:LPj/TZWs.net
- It is useless. I can not communicate at all in English.
- 822 :デフォルトの名無しさん:2017/10/12(木) 13:56:58.96 ID:3A6lsKEo.net
- Kotlin is so cute;-)
- 823 :デフォルトの名無しさん:2017/10/12(木) 16:54:50.54 ID:irZYU/94.net
- pls, say fool just another...
- 824 :デフォルトの名無しさん:2017/10/12(木) 17:44:23.32 ID:cYyBZWxu.net
- all your base are belong to us
- 825 :デフォルトの名無しさん:2017/10/12(木) 18:33:55.37 ID:o8TlX9Z0.net
- >>824
All your bases belong to our country.
中卒レベル
- 826 :デフォルトの名無しさん:2017/10/12(木) 18:38:55.59 ID:W4Y9jhaF.net
- >>825
https://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us
- 827 :デフォルトの名無しさん:2017/10/12(木) 20:17:00.25 ID:o8TlX9Z0.net
- 知らんかったわ
「ワレワレハ…」的なノリね
- 828 :デフォルトの名無しさん:2017/10/12(木) 21:43:09.54 ID:5ILt7KpA.net
- Engrish
- 829 :デフォルトの名無しさん:2017/10/12(木) 22:43:44.31 ID:OX/pZMRS.net
- >>816
Hey, don't include me in foolish people!
- 830 :デフォルトの名無しさん:2017/10/12(木) 23:58:19.05 ID:IILQSMTY.net
- */
- 831 :デフォルトの名無しさん:2017/10/13(金) 00:42:44.70 ID:JcXjubca.net
- こぉっとぅりんっ
- 832 :デフォルトの名無しさん:2017/10/13(金) 00:43:15.89 ID:JcXjubca.net
- こぉとぅりん
- 833 :デフォルトの名無しさん:2017/10/13(金) 00:49:55.72 ID:neFZx4WS.net
- >>829
I am your friend.
- 834 :デフォルトの名無しさん:2017/10/13(金) 19:18:19.17 ID:/02if2W5.net
- いますぐJavaをやめてKotlinに移行すべき10の理由↓
- 835 :デフォルトの名無しさん:2017/10/13(金) 19:28:52.37 ID:WJkFRsiD.net
- 1. I love kotlin.
- 836 :デフォルトの名無しさん:2017/10/13(金) 19:30:46.10 ID:WJkFRsiD.net
- 2. We love kotlin.
- 837 :デフォルトの名無しさん:2017/10/13(金) 20:13:20.58 ID:Gc4qJwYJ.net
- 3. We are Kotlin.
- 838 :デフォルトの名無しさん:2017/10/13(金) 21:17:09.35 ID:snGniETu.net
- このスレもう要らないな
- 839 :デフォルトの名無しさん:2017/10/14(土) 00:02:55.04 ID:UTsnHwgS.net
- >>838
Are you pen?
- 840 :デフォルトの名無しさん:2017/10/14(土) 00:07:29.38 ID:F+wwiVHB.net
- 碌に移行する理由がないんじゃJavaの天下は続くな。
- 841 :デフォルトの名無しさん:2017/10/14(土) 00:24:30.10 ID:lMgWewwv.net
- 理由ならある
呼び名がかわいい
- 842 :デフォルトの名無しさん:2017/10/14(土) 05:04:47.87 ID:rkGKts9o.net
- これから流行るんじゃねえか? まずは Android 用アプリ作成に使うのが流行ると思うぞ。
- 843 :デフォルトの名無しさん:2017/10/14(土) 06:05:23.13 ID:Ls8C6+0E.net
- AndroidStudio3.0のベータ版だと、アプリとテストの雛形のデフォルトがKotlinになってるから
特にこだわりがない人は Kotlin 使うようになるだろね
- 844 :デフォルトの名無しさん:2017/10/14(土) 08:54:09.10 ID:UTsnHwgS.net
- Null安全だけでも以降するのに十分な理由になると思うが
- 845 :デフォルトの名無しさん:2017/10/14(土) 09:23:07.84 ID:mCAw9QQf.net
- >>839
No, it is an apple.
and Swift
- 846 :デフォルトの名無しさん:2017/10/14(土) 09:34:03.59 ID:22PxWoNo.net
- ぬる安全で動かなきゃletとかwithとかalsoとか見せればイチコロだと思うにゃん
さほど変態的でない記述でJavaコードが更に短くなるというだけで訴求力はあるはず
- 847 :デフォルトの名無しさん:2017/10/14(土) 09:37:33.59 ID:A2JBGmbK.net
- スクリプト動作モードは遅すぎて使い物にならないな
- 848 :デフォルトの名無しさん:2017/10/14(土) 14:20:16.21 ID:mpqXFZeP.net
- >>844
Going.
- 849 :デフォルトの名無しさん:2017/10/14(土) 14:26:02.66 ID:ocOTfHdi.net
- withは要らんわ
大してメリットが無く紛らわしいだけだからとC#が意図的にVBから削ったゴミを
なぜ今更復活させてしまったのか
- 850 :デフォルトの名無しさん:2017/10/14(土) 14:28:24.42 ID:UTsnHwgS.net
- let, with, alsoの使い分けがよくわからん
- 851 :デフォルトの名無しさん:2017/10/14(土) 14:55:18.93 ID:xdbq9lHZ.net
- letは「これnot nullのif文代わりに使えるじゃん!」って置き換えるもその後にelse節が必要になって泣く泣く書き換える羽目になるトラップとして使う
- 852 :デフォルトの名無しさん:2017/10/14(土) 16:45:54.36 ID:UTsnHwgS.net
- valで変数を書き始められるのが楽
Javaに戻ると型名書かないといけなくて脳に負担がかかる
- 853 :デフォルトの名無しさん:2017/10/14(土) 16:59:08.57 ID:F+wwiVHB.net
- Javaがどんどん軟派化仕様を取り入れてるときに、軟派言語出されても競合するなぁ。
- 854 :デフォルトの名無しさん:2017/10/14(土) 17:32:07.97 ID:UTsnHwgS.net
- Javaの件でOracleがGoogleを訴えたりしてなかったっけ?
あれが関係しているような気がするんだが
- 855 :デフォルトの名無しさん:2017/10/14(土) 17:46:40.03 ID:F+wwiVHB.net
- MSは訴えられてWindowsからMS製Javaを排除したが、
AndroidからGoogle製Javaを排除したらただのLinuxじゃん。
- 856 :デフォルトの名無しさん:2017/10/14(土) 17:52:02.81 ID:iaPiK/ZP.net
- Googleが訴えられたのはJVMとAPIだから言語を変えたところで何の意味もないよ
- 857 :デフォルトの名無しさん:2017/10/14(土) 18:08:25.27 ID:+XwGR1nT.net
- 言語がモダンになってIDEが必須になってどんどん人間がバカになっていくぅ
- 858 :デフォルトの名無しさん:2017/10/14(土) 19:31:44.98 ID:zWnjpaDB.net
- >>851
?: run {} が使える
- 859 :デフォルトの名無しさん:2017/10/14(土) 21:25:44.86 ID:Ls8C6+0E.net
- >>849
withは言語機能として組み込まれてるわけじゃなくて、
他のrunとかapplyでも使ってるレシーバ付き関数リテラルの一番簡単な使い方
このレシーバ付き関数リテラルがあれば、withみたいな関数は簡単に定義できるんで、
withがダメっていうならレシーバ付き関数リテラルもダメってことになる
でもKotlinは意図的にレシーバ付き関数リテラルを用意して活用する気満々なんだよ
- 860 :デフォルトの名無しさん:2017/10/15(日) 01:36:56.98 ID:ZgJv24or.net
- with ってこれなのな。
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e
- 861 :デフォルトの名無しさん:2017/10/15(日) 01:57:24.53 ID:1JZd3G1s.net
- withってほとんどの場合副作用使うからなあ
現代的なプログラミングにはそぐわないよ
- 862 :デフォルトの名無しさん:2017/10/15(日) 02:28:15.35 ID:fk/JYaTL.net
- Kotlinのwithは値を返すから副作用を利用するかどうかは使う人次第だ
- 863 :デフォルトの名無しさん:2017/10/15(日) 03:09:10.81 ID:ps8be+yY.net
- 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)
}
}
- 864 :デフォルトの名無しさん:2017/10/15(日) 03:38:27.73 ID:rZYksuR6.net
- Iterable.groupBy()があるよ
やってることは結局その例とかわらないけど
- 865 :デフォルトの名無しさん:2017/10/15(日) 04:01:40.27 ID:fk/JYaTL.net
- こんな感じか
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]
- 866 :デフォルトの名無しさん:2017/10/15(日) 17:12:21.76 ID:sVOncOOl.net
- >>865
itのままでいいなら二番目のパラメータ省略できるよ。
- 867 :デフォルトの名無しさん:2017/10/15(日) 18:32:02.26 ID:fk/JYaTL.net
- >>866
なるほど、ならばこんな感じに
val result = group.groupBy {it.run{when{isHoge()->0; isHage()->1; else->2}}}
- 868 :デフォルトの名無しさん:2017/10/15(日) 19:18:47.56 ID:WbabBMh3.net
- さっき本屋行ったらこんなの売ってた。工学社の I/O BOOKS のやつだ。
https://i.imgur.com/UHC2KT1.jpg
ぱらぱらめくって見た感じでは全体が簡単にまとめられているようではあった。
小さいサイズの本の方がいい人向けかな。
まあしかし買うなら立ち読みして確認してからにするとよい。
- 869 :デフォルトの名無しさん:2017/10/15(日) 19:22:52.08 ID:g+9Qt1e8.net
- 電子書籍で出してくれ
- 870 :デフォルトの名無しさん:2017/10/15(日) 23:30:21.51 ID:9R+c2v2L.net
- 本屋で写真取ると捕まるぞ。
- 871 :デフォルトの名無しさん:2017/10/15(日) 23:38:59.63 ID:YqfACteL.net
- 長澤太郎以外でも出せるんだな
- 872 :デフォルトの名無しさん:2017/10/16(月) 01:10:50.17 ID:K3bUm04o.net
- >>870
ああ。中身撮影してると思われたら捕まるだろうな。w
しかし少し離れた所から表紙しか撮影してないから誤解されることはないと思うがな。
- 873 :デフォルトの名無しさん:2017/10/16(月) 02:03:12.91 ID:8vIi4A+y.net
- >>872
店舗内での書影撮影に関してはわりと明確なルールがあるよ
・ 書店が入っている商業施設が無断撮影禁止なら無断撮影者は退去対象である
明瞭だ
著作権とかどうでもいい
出禁だ出禁
- 874 :デフォルトの名無しさん:2017/10/16(月) 02:12:21.73 ID:1RgvFhx3.net
- >>873
店内で本をスマホにかざすとアクションが起こるみたいなアプリがまずぶつかる障壁だな
本屋主導の電書アプリでついてる機能でプレスリリースまで出したけど立ち消えになったりもする
kotlinでシチュ限定スマホアプリ作ってる人もいるだろうけどスマホ使用制限エリアとの兼ね合いには注意だ
- 875 :デフォルトの名無しさん:2017/10/16(月) 19:28:21.38 ID:hogQmxQx.net
- これを皮切りに
kotlinの本が続々出て今年から来年にかけて
爆発的に売れる予感。
- 876 :デフォルトの名無しさん:2017/10/16(月) 21:34:34.38 ID:8lVe0990.net
- とりあえずはインアクションがあればいいな
やっとまともな本が出る
- 877 :デフォルトの名無しさん:2017/10/16(月) 21:37:31.83 ID:7CHwAcHs.net
- まともに移行する理由がひとつも挙げれなかったから爆発しない。F#ぐらいの立ち位置だな。
- 878 :デフォルトの名無しさん:2017/10/16(月) 21:38:36.04 ID:nm/6hD9y.net
- Null安全はでかいだろ
プログラミング初心者か
- 879 :デフォルトの名無しさん:2017/10/16(月) 21:53:29.09 ID:7CHwAcHs.net
- なるほど。Null安全か。よしJavaに追加しよう。
- 880 :デフォルトの名無しさん:2017/10/16(月) 21:53:40.26 ID:TAj2pYDL.net
- >>878
そうだよ
http://mevius.5ch.net/test/read.cgi/tech/1492843013/978
- 881 :デフォルトの名無しさん:2017/10/16(月) 22:04:58.29 ID:nm/6hD9y.net
- プログラミング初心者がF#とか言ってんのか
- 882 :デフォルトの名無しさん:2017/10/16(月) 22:12:56.85 ID:7CHwAcHs.net
- この人は人の話を聞かず妄想で話を進める人だな。
頭に蛆でも沸いてるのか?
- 883 :デフォルトの名無しさん:2017/10/16(月) 22:49:58.86 ID:snZUUJVe.net
- 今爆発が始まったばかりなんだよ。
- 884 :デフォルトの名無しさん:2017/10/17(火) 03:13:52.64 ID:hVetZd8l.net
- Javaで困ってねーからな。Javaで困ってる案件をKotlinなら解決できるわけもなく。
中にはNull例外で困ってる初心者もいるようだが。
- 885 :デフォルトの名無しさん:2017/10/17(火) 04:17:41.05 ID:NmuLnA8X.net
- Java自体Android開発以外であんまり使わないからKotlin Nativeに期待してる
仕事だとWebはPHP、PCはexe形式のWin用の案件ばっかりなんだよね
- 886 :デフォルトの名無しさん:2017/10/17(火) 08:01:28.76 ID:7/LKBs88.net
- 未だに手続き型の泥臭いコードが主流の日本じゃ流行らないでしょ
日本はCOBOLとstatic Javaが正義
- 887 :デフォルトの名無しさん:2017/10/17(火) 08:17:08.08 ID:gQ4z+/LN.net
- どうして自分で使ってもいない言語のスレにやってきて書き込むのかまったく意味不明
- 888 :デフォルトの名無しさん:2017/10/17(火) 09:12:43.23 ID:dhvYHJws.net
- Kotlinできないやつは仕事がなくなる
- 889 :デフォルトの名無しさん:2017/10/17(火) 09:31:20.86 ID:4QIDkuyk.net
- 「Javaで作ってます(実際にはKotlinですが)」というパターンが増えると思う
Javaのボイラープレートコードを
・IDEが自動生成してソースに直書きする
・Kotlinがコンパイル時に追加書きする
という程度の違いしかないわけだし
見る必要のないものは見えないほうが能率的にも好ましい
- 890 :デフォルトの名無しさん:2017/10/17(火) 10:54:09.69 ID:hVetZd8l.net
- >>888
Java以上に難解な言語だからな。
- 891 :デフォルトの名無しさん:2017/10/17(火) 11:27:44.11 ID:onQ9Ahkh.net
- >>890
Kotlinからプログラミングに入った人が、数年経ってからJavaに手を出したとして、Javaの方が簡単だと思うかな
- 892 :デフォルトの名無しさん:2017/10/17(火) 12:21:38.68 ID:H+HUM8Ad.net
- まだ学習中ではあるが、Java より Kotlin の方が簡単なのではないかという感じがしている。
少なくとも同じことやろうとしたら Java では記述が面倒になるものがある。
- 893 :デフォルトの名無しさん:2017/10/17(火) 12:48:53.61 ID:dhvYHJws.net
- 型名から書き始めるのがだるく感じるようになってしまった
- 894 :デフォルトの名無しさん:2017/10/17(火) 13:37:15.76 ID:gQ4z+/LN.net
- >>892
簡単だよ、「教科書」の範囲を脱するとJavaの知識は絶対に必要だからちょっとアレだけど
所要時間の7割くらいはKotlinでざくざく書ける
残り3割は
・ 事例をKotlinでググったがJavaのしか出てこなかったので諦めてJavaを読んでいる
・ IntelliJでJavaコードを変換してもらったらジェネリクスやコンパニオンオブジェクトやアノテーションだらけになりしかも動かないので泣きながら修正している
・ IntelliJに変換してもらおうとしたらどうやらスニペットらしく何度ペーストしてもうんともすんとも言わないので吐きながら手作業でひとつひとつ置き換えている
のだいたいどれかだ
- 895 :デフォルトの名無しさん:2017/10/17(火) 18:57:01.82 ID:hVetZd8l.net
- ビット演算子とかすでに普及したC系の書法あるのになんで変えるんだろう?
- 896 :デフォルトの名無しさん:2017/10/17(火) 19:18:36.93 ID:30A/rDEh.net
- AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
http://news.mynavi.jp/news/2017/10/17/044/
- 897 :デフォルトの名無しさん:2017/10/17(火) 19:47:17.34 ID:hVetZd8l.net
- イライラするな、そのグラフ。クリックしても全然拡大できねー。
- 898 :デフォルトの名無しさん:2017/10/17(火) 20:36:40.86 ID:H+HUM8Ad.net
- >>897
スマホやタブレットなら拡大するを押した後はピンチできると思うよ。
- 899 :デフォルトの名無しさん:2017/10/17(火) 20:39:30.41 ID:dhvYHJws.net
- お前ら時代についていけなくてプログラミングの仕事ができなくなるぞ
Kotlin以外にもRxとかdatabindingとかMVVM, flux, MVIとか
新しい技術がどんどんでてきてんのにどうすんだ
- 900 :デフォルトの名無しさん:2017/10/17(火) 20:50:31.20 ID:H+HUM8Ad.net
- え?全部覚えればいいだけでは?
- 901 :デフォルトの名無しさん:2017/10/17(火) 20:55:29.61 ID:y2IFefmv.net
- 調べ方さえ知っときゃいいのよ
基本はアルゴリズム
- 902 :デフォルトの名無しさん:2017/10/17(火) 20:58:55.12 ID:O+BDW8Aj.net
- >>899
え?新しい?
どれのこと言ってんの?
- 903 :デフォルトの名無しさん:2017/10/17(火) 20:59:12.42 ID:GiRVoeFb.net
- AndroidのKotlin、2018年にはシェアでJavaを上回る可能性
ttp://news.mynavi.jp/news/2017/10/17/044/
- 904 :デフォルトの名無しさん:2017/10/17(火) 21:27:02.26 ID:kRPJAKch.net
- アセンブラに回帰するから大丈夫
- 905 :デフォルトの名無しさん:2017/10/17(火) 23:21:34.71 ID:A1W0Ufl3.net
- >>900
無理だよ
お前が天才なら話は別だが
- 906 :デフォルトの名無しさん:2017/10/17(火) 23:26:52.13 ID:hVetZd8l.net
- Kotlinは最新鋭の言語だからな。ついていくにはかなりの勉強が必要。
オブジェクト思考なにそれじゃとても無理。
- 907 :デフォルトの名無しさん:2017/10/17(火) 23:38:47.28 ID:psnU0zFe.net
- Kotlinが分からないお前ら全員失業www無職ざまあwwwwww
- 908 :デフォルトの名無しさん:2017/10/18(水) 00:26:22.06 ID:AVtT/z6f.net
- >>899
あなた「が」その技術を作って売っているのでないのなら、アタラシイギジュツというのは業務としては無視してよい
それの半数は1年で話題にならなくなり、2年でその半数が消える
3年経っても話題になり生き残っているのなら、そこで初めて検討すればいい(たとえばKotlinのように)
まあそれの多くは技術というよりは概念だからわりと生き残ってる部類だが
家のプログラミングで追いかけてりゃ十分じゃないかな
- 909 :デフォルトの名無しさん:2017/10/18(水) 09:11:29.05 ID:rBz0muCO.net
- Kotlinの定数ってどう書くのが正しいんですか
全部大文字にしてアンダースコアで繋げる、
じゃないですよね
- 910 :デフォルトの名無しさん:2017/10/18(水) 09:38:16.58 ID:96L4BFY0.net
- >>909
companion object{
const val hoge
}
Javaライブラリから定数だと思ってもらう必要がないならcompanion object{}はいらないはず
hogeの名前部分は好きに書け
仰る通り全部大文字アンダースコア区切りが普通ね
- 911 :デフォルトの名無しさん:2017/10/18(水) 12:26:44.80 ID:iXMhk9b6.net
- >>905
そうか。じゃあ問題ないな。
- 912 :デフォルトの名無しさん:2017/10/18(水) 15:49:53.65 ID:ZPgodlCt.net
- >>905
idiot savant なら話は別だが
の誤記だよね
- 913 :デフォルトの名無しさん:2017/10/18(水) 20:53:45.43 ID:9Hfah7Rk.net
- ねえコトリン^^
- 914 :デフォルトの名無しさん:2017/10/19(木) 13:53:40.95 ID:kzg66C9N.net
- こっち向いて
- 915 :デフォルトの名無しさん:2017/10/19(木) 14:09:52.81 ID:ZSJg0roA.net
- ☆ ∬ ∬
|\ r;ェ、c3 シュンシュン
∴∴∴ _(_'フ__
(´・ω・`) |l三三三||¬|
( _ つ .|l三旦三|| |
(_(__ノ 「目 「:_]
- 916 :デフォルトの名無しさん:2017/10/19(木) 22:05:31.14 ID:zAbDVwTY.net
- >>914
ロシアが攻めて来たのよ
- 917 :デフォルトの名無しさん:2017/10/19(木) 23:19:09.40 ID:v9LYhYCi.net
- ロ、ロ、ロ、ロシアン
- 918 :デフォルトの名無しさん:2017/10/20(金) 09:23:09.66 ID:cIqzCW7A.net
- Kotlinのスキルを持たないAndroid開発者は恐竜のようになるリスクに直面。モバイルアプリプラットフォームのRealmが予測
ttp://www.publickey1.jp/blog/17/kotlinandroidrealm.html
- 919 :デフォルトの名無しさん:2017/10/20(金) 10:33:28.19 ID:ogaeHTAB.net
- それはKotlinのスキル有無の問題ではなくて、
Kotlin程度、まともにJavaできる人なら適当に一日触ったら十分使いこなせるようになるんだから
それができないレベルの人には仕事はないという当たり前の話だと思う
- 920 :デフォルトの名無しさん:2017/10/20(金) 11:04:30.15 ID:q2wuGssb.net
- kotlinはjavaの唯一最大の参入障壁「やりたいことに対して無意味にも思える記述が多すぎる」を解消した
あとはちょっと変わった記述の適用広範囲Javaライブラリみたいなもんだからな、そりゃ使われるわ
実はKotlinよりもプログラミング言語的に素晴らしいScalaさんという一つ上くらいの先輩がいるのだが
Scalaさんは初動に集まった人がアカデミックだった上に記号魔術で遊び過ぎて印象悪くして失敗してしまったのだ(初動大事)
- 921 :デフォルトの名無しさん:2017/10/20(金) 12:09:50.84 ID:+lt7TopC.net
- Javaオンリーな人が付け焼き刃でKotlin使うようになってほぼJavaなKotlinコードが量産されるんだろうな
- 922 :デフォルトの名無しさん:2017/10/20(金) 12:36:09.65 ID:q2wuGssb.net
- >>921
たとえば??
- 923 :デフォルトの名無しさん:2017/10/20(金) 12:45:02.92 ID:p6j5lSQw.net
- 何を今更
ジェットブレインが開発した時点でそういう言語だろ
- 924 :デフォルトの名無しさん:2017/10/20(金) 12:53:16.47 ID:4LtGa96p.net
- ジェットブレインってなんだろう…
- 925 :デフォルトの名無しさん:2017/10/20(金) 12:53:54.91 ID:PCOS2CdI.net
- >>921
え?例えばどんな?
クラスはみんなopenとか?
- 926 :デフォルトの名無しさん:2017/10/20(金) 12:55:55.90 ID:q2wuGssb.net
- >>924
正直なところ、該当プログラミング言語を使ってないような人が言語のスレに書き込む理由がさっぱりわからん
自分の知らないことばかり話してるスレだぞ…
- 927 :デフォルトの名無しさん:2017/10/20(金) 12:56:22.84 ID:cIqzCW7A.net
- ジェット脳
- 928 :デフォルトの名無しさん:2017/10/21(土) 08:55:05.79 ID:SwYl7d2P.net
- バグだらけのWebアプリケーションをKotlinで実装してみました
https://qiita.com/tamura__246/items/ce2932809b9e4ec0297e
- 929 :デフォルトの名無しさん:2017/10/21(土) 08:56:18.39 ID:uavAERV8.net
- 言語を変えたらバグがなくなりす。Javaのときも言ってた気がします。
- 930 :デフォルトの名無しさん:2017/10/21(土) 10:49:40.33 ID:uVD587X2.net
- >>929
バグの一部はなくなった。もちろん全部はなくならない。
- 931 :デフォルトの名無しさん:2017/10/21(土) 14:07:32.75 ID:DUYo3YXD.net
- 見てないけど、kotlinにしたら、世の中のプログラムのバグがなくなるのか
kotlin最強だな
- 932 :デフォルトの名無しさん:2017/10/21(土) 15:57:07.83 ID:pTq+5yjM.net
- プログラム言語の進化の歴史の基本パターンだしな
- 933 :デフォルトの名無しさん:2017/10/21(土) 22:52:03.68 ID:l0C30vmt.net
- >>931
だから全部はなくならないってw
- 934 :デフォルトの名無しさん:2017/10/21(土) 23:05:33.46 ID:uavAERV8.net
- ヌルポがなくなるらしい。でもちゃんとテストしたらヌルポのバグって全部修正できるよね。
つまりkotlinにすればテストしなくていいということ。
結果さらにバグあり納品が増えてデスマーチ。いつかみた風景。
ポインタがなくなれば〜、GCがあれば〜
オープンソースにすれば〜ってのもあったね。最近多いのがAIにすれば〜
- 935 :デフォルトの名無しさん:2017/10/22(日) 03:25:09.30 ID:e1gng41K.net
- Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い
- 936 :デフォルトの名無しさん:2017/10/22(日) 03:25:51.40 ID:GA495a0M.net
- Null非許容型も知らずヌルポがなくなるらしいとか言ってる奴が何言っても全然説得力が無い
- 937 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 09:06:20.22 ID:AhvojsY+.net
- 世の中のプログラムのバグがなくなるとかテストしなくていいとか
脳内の飛躍が半端ないなw
- 938 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 09:51:20.46 ID:ThKraGOL.net
- >>934
それはヌルポをテストしなくていいを、ヌルポ以外のテストもしなくていいにすり替えたから。
つまり>>934の脳内にバグがある状態。
- 939 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 10:39:38.28 ID:Aud0wCrn.net
- >>929
りす?
n_n
/ ・ \
/ヽ__・
/Ξミヽ/ (゚Д゚)
( ―、| (ノ |つ
\_人人__)_)
∪ ∪
- 940 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 10:43:40.96 ID:Aud0wCrn.net
- >>937
その辺は何れ何とかなるんじゃないかな。AIが発達して人間が何かする必要は特に無くなる。
もちろんAIはプログラミングなんかしない。自身が既にプログラムだしね。単に人間が望むであろう動きを自分がすればいいだけ。
- 941 :デフォルトの名無しさん:2017/10/23(月) 01:55:41.23 ID:abHVYf4D.net
- Pythonじゃダメなの?
- 942 :デフォルトの名無しさん:2017/10/23(月) 01:58:47.60 ID:u5IDZl2p.net
- だめなの
- 943 :デフォルトの名無しさん:2017/10/23(月) 09:12:33.70 ID:dbUGXOGc.net
- そういやPythonやったことないな。いつもLinuxいじってて目の前に既に使える環境があったんだがなぜか覚える気にならずPerlばかり使っていた。
いい加減学習するか。
- 944 :デフォルトの名無しさん:2017/10/23(月) 09:16:27.95 ID:q13VoyIh.net
- ぱいそんなんて勉強が必要なものでもないがな
- 945 :デフォルトの名無しさん:2017/10/23(月) 09:49:53.15 ID:dbUGXOGc.net
- いや、ほら、何も知らないからさ。
ファイル名の拡張子が .py ってことぐらいしか知らない。
- 946 :デフォルトの名無しさん:2017/10/23(月) 10:00:47.84 ID:QKnEuIrp.net
- 常用するLinuxBoxがあるのならPython/Rubyは良い選択肢
自分のために楽しくやりたいならRubyを、皆と一緒に便利にやりたいならPythonを選ぶといい
どっちか覚えたら片方はすぐなんで初期用途で選んでいいよ
- 947 :デフォルトの名無しさん:2017/10/23(月) 19:00:30.13 ID:puhk/g9t.net
- 未だにkotlinだとヌルポがなくなるとか言ってるやつがいるのか
- 948 :デフォルトの名無しさん:2017/10/23(月) 19:15:07.45 ID:YIhcz2Te.net
- ひねくれた複雑な事やらなければだいたいはなくせないか?
- 949 :デフォルトの名無しさん:2017/10/23(月) 19:39:06.53 ID:o6L3q82d.net
- Kotlin使ってもぬるぽ連発してんのか
- 950 :デフォルトの名無しさん:2017/10/23(月) 22:51:45.52 ID:QKnEuIrp.net
- >>948
ああ、こいつに構わなくていいよ
いつも同じことしか書かないんだ
説得しようとしても無駄
- 951 :デフォルトの名無しさん:2017/10/23(月) 23:04:44.08 ID:zzY32qse.net
- 器用なことやるな
- 952 :デフォルトの名無しさん:2017/10/24(火) 02:21:21.48 ID:IbgCT9FR.net
- 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
で良かったけ?なんか、情報が閑散としてて判らん
- 953 :デフォルトの名無しさん:2017/10/24(火) 03:06:11.96 ID:PSxxe1n/.net
- 全角で言語名書く奴の意見は参考にしない事にしている
- 954 :デフォルトの名無しさん:2017/10/24(火) 08:04:25.98 ID:s8DNo2te.net
- 全角と半角が混じって気持ち悪いことこの上ない
プログラマーとは思えない美的感覚
- 955 :デフォルトの名無しさん:2017/10/24(火) 08:20:05.29 ID:kOLVT7kL.net
- Javasript
Javaspit
という新しい言語が生まれたようだな
- 956 :デフォルトの名無しさん:2017/10/24(火) 08:54:24.56 ID:EMAIs2aC.net
- >>953-955
なんでそうやって構うの
- 957 :デフォルトの名無しさん:2017/10/24(火) 08:54:33.53 ID:rijisBQi.net
- spit = つばを吐く
ということだから、
Javaspit = Javaにつばを吐く
つまり熱狂的なKotlin信者ということ
- 958 :デフォルトの名無しさん:2017/10/24(火) 09:09:32.53 ID:Y1f+CDs0.net
- Window10
新しいOS
- 959 :デフォルトの名無しさん:2017/10/24(火) 09:51:43.85 ID:99TFwYv/.net
- キッズプログラマー
- 960 :デフォルトの名無しさん:2017/10/24(火) 10:24:42.63 ID:rImCj7mr.net
- SRIPT
Shanghai Research Institute of Petrochemical Technology
- 961 :デフォルトの名無しさん:2017/10/24(火) 10:28:35.28 ID:YiJuDl3B.net
- >>956
プログラミングできなくても参加できるからね
自分たちは何もできないって人前で叫んでいるようなものだ
正直お帰り頂きたいのだが
- 962 :デフォルトの名無しさん:2017/10/24(火) 12:32:17.01 ID:ILn03nC/.net
- >>949
どこにヌルポ連発すると書いたのか。アスペかおまえは。
>>950
おまえみたいなゴミカスエンジニアは何言っても否定するんだろうな
- 963 :デフォルトの名無しさん:2017/10/28(土) 13:15:37.00 ID:cK0+9veY.net
- ぬるぽ
- 964 :デフォルトの名無しさん:2017/10/28(土) 14:38:12.64 ID:cK0+9veY.net
- 何気なくAmazon見てたらこんなの見つけた。無料。
Kotlin Programming Tutorial https://www.amazon.co.jp/dp/B074FXTTKL/ref=cm_sw_r_an_am_at_ws_jp?ie=UTF8
- 965 :デフォルトの名無しさん:2017/10/28(土) 14:39:54.99 ID:0x9+D/xv.net
- EclipseのエディタがJavaと同じぐらいKotlinサポートしてくれてるなら乗り換えてもいい
- 966 :デフォルトの名無しさん:2017/10/28(土) 14:44:54.44 ID:Ng05dLeH.net
- KotlinはIntelliJ開発元のJetBrainsが作ってるからEclipseプラグインに期待するのは間違い
もしサードパーティによってIntelliJより使いやすいEclipseプラグインが出てきて開発者がそっちに流れそうになったりしたら
JetBrainsは法的手段を使ってでも全力で潰しに来るはず
- 967 :デフォルトの名無しさん:2017/10/28(土) 14:58:11.85 ID:ZGNKF2eF.net
- 極めて単純に「Eclipseは20年以上Javaをサポートしアプデし続けてきたので最強である」というだけなので
今のJava+EclipseをKotlinで再現するにはあとやっぱり20年くらい必要だと思われる
あれは年季の問題であって、NetBeans+Javaとか(困ったことに)IntelliJ+Javaも同じようなものだ
IDEサポートの分厚さという点ではKotlinはどの組み合わせにも及んでいない
とりあえずバックスペースで消していくだけでKotlinプラグインがクラッシュすることがあるのを直さんといかんレベル
- 968 :デフォルトの名無しさん:2017/10/28(土) 15:54:42.82 ID:LaChF7dA.net
- MSがVSCodeのプラグイン作ったら1年でJava超えるだろうけどね
- 969 :デフォルトの名無しさん:2017/10/28(土) 15:57:39.28 ID:0x9+D/xv.net
- なんてこったい
Oracleはjava9でvar採用して
innullablejre.jarを別途提供すべき
- 970 :デフォルトの名無しさん:2017/10/29(日) 03:51:42.38 ID:0yKrkLYC.net
- すばらしい使い捨て言語だ。
- 971 :デフォルトの名無しさん:2017/10/29(日) 09:51:25.77 ID:nF8jP4ar.net
- >バックスペースで消していくだけでKotlinプラグインがクラッシュする
あれは繊細過ぎると思う
どっかでチェック開始間隔の設定がありそうだけどな
- 972 :デフォルトの名無しさん:2017/10/29(日) 09:56:52.64 ID:0yKrkLYC.net
- kotlinでプラグインを書かないからヌルポになるんだよ。
- 973 :デフォルトの名無しさん:2017/10/29(日) 19:11:11.42 ID:6hfILvPI.net
- さっき新宿の紀伊國屋書店行ったらKotlinイン・アクションもう置いてあったよ。
ということは多分大きい本屋ならもう売ってると思う。
- 974 :デフォルトの名無しさん:2017/10/29(日) 21:42:48.27 ID:Gu+Q8xiz.net
- 感想は?買いなん
- 975 :デフォルトの名無しさん:2017/10/29(日) 22:04:20.61 ID:oFRxn/Jf.net
- >>974
まだパラパラめくって見ただけなので何とも言えないが、詳しく一通り書いてあるように見える。
- 976 :デフォルトの名無しさん:2017/10/30(月) 00:56:22.26 ID:/vdlmG2A.net
- 初めてのまともな日本語の本でしょ
あのクソみたいなエバンジェリスト本(笑)をやっと駆逐できるな
- 977 :デフォルトの名無しさん:2017/10/30(月) 02:59:15.21 ID:nQXUW6Dj.net
- エバンジェリスト本?
ああ、まあ、 Technology evangelist か?
- 978 :デフォルトの名無しさん:2017/10/30(月) 08:46:43.80 ID:stDQ/FyB.net
- 長澤太郎もかかわっている
- 979 :デフォルトの名無しさん:2017/10/30(月) 21:53:49.20 ID:pVIch9qW.net
- 今日から始めます。
今インストール中。
よろしくお願いします。
- 980 :デフォルトの名無しさん:2017/10/30(月) 22:37:30.38 ID:OufZdVP7.net
- ここは!
あなたの!
日記帳!
Javaを読めないとしんどいから、もしまだ知らないなら並行作業でちょっとずつやるといいよ
今からやっておくとだいたいKotlinわかったころに何かやりたくなっても「あっこれ進研ゼミでやったやつだ!」となって捗ること請け合い
- 981 :デフォルトの名無しさん:2017/10/30(月) 23:00:21.71 ID:pVIch9qW.net
- >>980
応援ありがとうございます。
Javaは少しだけやりました。
一応C#は使えるので、
kotlinやりながらJavaも覚えたいと思います。
- 982 :デフォルトの名無しさん:2017/10/31(火) 20:53:53.80 ID:mFIgmMeH.net
- data?.let {
...
}
でdataがNULLじゃないときだけ処理を実行できることは分かりました。
これにdataがNULLのときの処理も追加したい場合はどう書いたらいいんでしょうか
data?.let {
...
}?: {
}
みたいに書けないです。
- 983 :デフォルトの名無しさん:2017/10/31(火) 21:01:44.57 ID:mFIgmMeH.net
- ファイル入力の処理などの以下の処理が
while((line = br.readLine()) != null)
Kotlinだと、Assignments are not expressions, and only expressions are allowed in this context
のエラーになるんですが、Kotlinだとどう書いたらいいんでしょうか
- 984 :デフォルトの名無しさん:2017/10/31(火) 21:38:42.83 ID:kBfCDZdZ.net
- >>982
let{ ... } が null を飛ばしてラムダ式を実行することができるのはあくまで副次作用に過ぎない
条件分岐させたいのなら素直に when か if で書くべき
>>983
File(path).forEachLine { line -> println(line) }
- 985 :デフォルトの名無しさん:2017/10/31(火) 21:39:06.81 ID:cTxMPZq4.net
- >>982
普通に if 使って書けば良いのでは?
- 986 :デフォルトの名無しさん:2017/10/31(火) 21:55:55.33 ID:7/FAMo7N.net
- >>982
?: run {}
- 987 :デフォルトの名無しさん:2017/10/31(火) 22:06:34.40 ID:mFIgmMeH.net
- data?.let {
...
}?: {
...
}.invoke()
というのを見つけたんですが、?: run {}の方がいいんでしょうか
- 988 :デフォルトの名無しさん:2017/10/31(火) 22:10:44.21 ID:BGaLFLkz.net
- 癖のある言語ですね・・・
- 989 :デフォルトの名無しさん:2017/10/31(火) 22:16:51.16 ID:kBfCDZdZ.net
- >>987
だから条件分岐は条件分岐として書いてくれ
letはもともと
val hoge = Hoge()
hoge.mes1()
hoge.mes2()
と書く代わりに
Hoge().let{ it.mes1(); it.mes2() }
と書くことができるという構造だ
条件分岐の代わりに使っていいものじゃない
ネット上で観測される彼らは「間違っている」
参考にしてはならない
- 990 :デフォルトの名無しさん:2017/10/31(火) 22:20:26.16 ID:mFIgmMeH.net
- えー。letってNULLチェック代わりに使うものじゃなかったの
- 991 :デフォルトの名無しさん:2017/10/31(火) 22:28:56.76 ID:kBfCDZdZ.net
- nullチェックは ?. の部分だ
letの中身が長くなればなるほど、それはletで書くべきではないということになる
今ここでこれ使うと1行で書けて変数に入れられるぜえ、とかだとapplyとか使うの考えるがまあその程度
letをnull回避として紹介してた人が今どんだけそれを日常的に使ってるかは個人的に興味があるよ
最初の紹介で使っただけなんじゃないかと思うんだよねえ
>>991超したので新スレおねがいします
- 992 :デフォルトの名無しさん:2017/10/31(火) 22:29:35.46 ID:6MYbZ/26.net
- Wikipediaとか参考文献にしてそう
- 993 :デフォルトの名無しさん:2017/10/31(火) 22:47:55.01 ID:wyGoJvua.net
- そもそものもともととして.?じゃ本当にnullが来たとき対処できないじゃないか
checkNotNull(value){ "valueがnullです" }
とかしないと不安にならないの
- 994 :デフォルトの名無しさん:2017/10/31(火) 23:34:28.34 ID:E21Np2eC.net
- それならKotlin使うのやめろよ
- 995 :デフォルトの名無しさん:2017/10/31(火) 23:39:23.74 ID:u3Drl61J.net
- >>993
何言ってんの
- 996 :デフォルトの名無しさん:2017/10/31(火) 23:49:38.22 ID:BBLfUUwS.net
- >>990
https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e
- 997 :デフォルトの名無しさん:2017/11/01(水) 00:08:55.25 ID:jxmKQQAl.net
- 次スレ
http://mevius.5ch.net/test/read.cgi/tech/1509462463/
2ch.net でないとうまく開かない専ブラの人は以下のURL
http://mevius.2ch.net/test/read.cgi/tech/1509462463/
- 998 :デフォルトの名無しさん:2017/11/01(水) 00:46:22.34 ID:1EENXbRG.net
- x.?let {} ?: run {} は letのとこのブロックがnull返すと x がnullじゃなくても run のブロック実行しちまうだろ
x.?also {} ?: run {} にしとけよ
- 999 :デフォルトの名無しさん:2017/11/01(水) 00:52:45.72 ID:pp6VRjc6.net
- >>993
?. を書いてメソッドチェーンを繋げなければならない状況自体、なにかおかしいからな
とっとと非nullを確定させるのが妥当
しかもわざわざスコープ内で覚えててくれるんだから、利用しない手はない
- 1000 :デフォルトの名無しさん:2017/11/01(水) 02:02:04.51 ID:x/3omok5.net
- 999
- 1001 :デフォルトの名無しさん:2017/11/01(水) 02:02:35.06 ID:x/3omok5.net
- 1000
- 1002 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1002
243 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★