X



Kotlin 2
レス数が1000を超えています。これ以上書き込みはできません。
0535デフォルトの名無しさん
垢版 |
2018/02/13(火) 10:09:44.20ID:ek2wpFVO
Xamarinって確かライセンス買わないと使える機能に制限あるんじゃなかったっけ
0536デフォルトの名無しさん
垢版 |
2018/02/13(火) 11:48:52.36ID:i1aJT757
使った事がないのでわかりません
0540デフォルトの名無しさん
垢版 |
2018/02/13(火) 19:15:59.91ID:KJxSXl65
>>535
XamarinのライセンスはVisual Studioライセンスに統合されてる
Communityライセンスの条件内なら無料
そうでなければ年間サブスクリプションが必要(約6万円 / 年・開発者)
0542デフォルトの名無しさん
垢版 |
2018/02/13(火) 21:10:26.79ID:RM6vxbUw
安いと感じるか高いと感じるかはあなたしだいです。
0543デフォルトの名無しさん
垢版 |
2018/02/13(火) 23:22:43.96ID:7sc/QqUb
でここはKotlinスレでいいんだよな?
0544デフォルトの名無しさん
垢版 |
2018/02/14(水) 00:51:14.52ID:71Om1Biy
Kotlin だって
いいじゃないか
JavaVM だもの
0546デフォルトの名無しさん
垢版 |
2018/02/14(水) 12:55:24.11ID:EGLxgTrP
kotlinは好きだけどJVMがなぁ・・・
て思ってる人はかなり多いと思うよ

kotlin nativeに頑張ってもらって
さっさとJVMから足洗ってほしい
0549デフォルトの名無しさん
垢版 |
2018/02/14(水) 13:35:25.05ID:QwasDp2D
俺もとりあえずはJVMで良い。
気になるのはJavaScriptの方かな。
0550デフォルトの名無しさん
垢版 |
2018/02/14(水) 17:38:51.85ID:D3O9gfhg
Kotlinに移行しようかとしばらく触ってみたけど、C#の方が痒いところに手が届くいい言語だな、、、
0551デフォルトの名無しさん
垢版 |
2018/02/14(水) 18:38:51.02ID:8PtXrtN7
なんだかんだで膨大のJavaのライブラリとそれらのノウハウを使えるってのが大きいわな
0552デフォルトの名無しさん
垢版 |
2018/02/14(水) 19:57:38.83ID:oF080CGK
Javaの腐ったライブラリよりC#の洗練されたライブラリの方が有り難いんだけど
0556デフォルトの名無しさん
垢版 |
2018/02/15(木) 12:27:28.16ID:GqN6d9KA
イミフ
0558デフォルトの名無しさん
垢版 |
2018/02/15(木) 18:18:01.31ID:CMBfD/sb
COBOLとは全然状況違うよな
分散処理のフレームワークとかミドルとか活発に開発されてるし
言語としては最先端ではないかもしれないけど、逆に最先端の言語でも優れたプロダクトを生み出してないなら大して存在価値ないし
0560デフォルトの名無しさん
垢版 |
2018/02/15(木) 18:54:22.05ID:skblyvdp
JavaVMの上でCOBOLが動くようになったりして・・・
0564デフォルトの名無しさん
垢版 |
2018/02/15(木) 22:34:41.26ID:2kJoQloU
>>560
いつだか覚えていないくらい昔にマジメにそれを開発しようとしてた会社があったような
COBOLしか書けないおじさんを救済するためだけの代物ですぐ頓挫したけど
0565デフォルトの名無しさん
垢版 |
2018/02/15(木) 22:40:34.93ID:2kJoQloU
まあでも確かにJava言語は使われなくなっていくだろうね。
うちもJavaで作ってるシステムの機能追加なんかはkotlinでやってるし、JVMで動かすのが要件な新規のプログラムももうほぼkotlinに移行してる。
スマホは知らんけどandroid開発はもうkotlinが多いのかな?
0567デフォルトの名無しさん
垢版 |
2018/02/15(木) 23:59:58.64ID:9umHg1OB
Kotlinを推しつつもJavaはまだ現役だと考えている

しかしJava8でラムダが入ったときと
AndroidがJava8に対応したときは正直「余計なことしおって」と思ったな
Java6のままだったら今以上にKotlinが推されてただろうからw
0568デフォルトの名無しさん
垢版 |
2018/02/16(金) 03:16:32.96ID:RsIE9z2G
しかしJavaのラムダはやりすぎだろって感じがした。
0569デフォルトの名無しさん
垢版 |
2018/02/16(金) 05:43:13.28ID:shLmPi2M
確かに
レガシーJavaおじさんと現代人Kotlin使いで棲みわけた方が平和だったかもしれないね
0570デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:37:35.95ID:br7rfOfj
kotlinでandroidの説明してるところなんか全然ない
先進的な一部が勝手に使い始めてるだけで普及の段階ではない、いつもながら日本は遅れてる
0575デフォルトの名無しさん
垢版 |
2018/02/16(金) 09:19:32.40ID:OW1usLwi
実務経験って、そもそも実務で使われてる所がまだ少なかろう。
0576デフォルトの名無しさん
垢版 |
2018/02/16(金) 10:41:09.40ID:FgGKrURU
実際DroidKaigiのセッションスライドのコードはほぼKotlinだったし、実務もKotilnである割合はかなり増えてるでしょ。
自分も実務ではもう1年くらい使ってるし。
0577デフォルトの名無しさん
垢版 |
2018/02/16(金) 10:58:35.59ID:OW1usLwi
そりゃAndroidだから増えてて当然な感じするが、世の中にはAndroidしかないわけではないからなあ。
0578デフォルトの名無しさん
垢版 |
2018/02/16(金) 11:06:50.68ID:e2WRvV7P
俺は逆にandroidまったくやらんけどkotlinめっちゃ使ってるよ
ローカルのプログラムでもサーバーサイドでも

まだこういうのは少数派だろうけど
0579デフォルトの名無しさん
垢版 |
2018/02/16(金) 12:46:25.84ID:6HTN9r9U
ああ。俺は趣味では使うよ。というか学習中なので敢えて使う感じ。Kotlinだとどう書けるかを調べながら書いてる感じ。
0581デフォルトの名無しさん
垢版 |
2018/02/16(金) 12:58:29.56ID:6HTN9r9U
ながらというか、CやPerlなら仕事で何十年も使ってて間が働くからどう書くかはすぐ想像できる(Javaも趣味で20年ぐらいやってるのでなんとなくわかる)んだが、
Kotlinはそれと似たようにも書けるしKotlinならではの書き方もできるわけで、その辺のKpylin的な書き方を学習してる感じ。
0582デフォルトの名無しさん
垢版 |
2018/02/16(金) 12:59:00.48ID:6HTN9r9U
間がじゃない、勘がだ。
0583デフォルトの名無しさん
垢版 |
2018/02/16(金) 13:01:00.94ID:6HTN9r9U
うう。やはりスマホだと変なタイプミス増えるな。orz
0586デフォルトの名無しさん
垢版 |
2018/02/16(金) 15:00:09.56ID:WR2/4984
どこかで聞いたことがあるようなないような・・・
0590デフォルトの名無しさん
垢版 |
2018/02/16(金) 20:40:30.87ID:YSXjevvC


知らない
0593デフォルトの名無しさん
垢版 |
2018/02/16(金) 22:11:32.26ID:kk8fZRd1
今分かったんですけど、プライマリコンストラクタ宣言せずに
セカンダリコンストラクタって宣言できるんですね。

プライマリコンストラクタの主な用途ってコンストラクタのパラメータの宣言とプロパティの宣言を
一緒にできるぐらいですか??用途は。
class Test(val p1: String)とか
0596デフォルトの名無しさん
垢版 |
2018/02/17(土) 00:19:37.32ID:1ji1uAN3
>>594
でも、空のプライマリコンストラクタを明示的に宣言するのと省略するのでは厳密には同一ではないですよね??

だから、言葉の定義の問題にもなっちゃうけど、initブロックはinitブロックであってプライマリコンストラクタと同一視
しない方がいいとか。プライマリコンストラクタはあくまでclass Test(val p1: String)のval p1: String部分だけで、
プライマリコンストラクタはボディは持てない。
初期化はinitブロックで行うとか?
0598デフォルトの名無しさん
垢版 |
2018/02/17(土) 00:37:46.91ID:1ji1uAN3
Note that code in initializer blocks effectively becomes part of the primary constructor.
Delegation to the primary constructor happens as the first statement of a secondary constructor, so the code in all initializer blocks is executed before the secondary constructor body
まぁ、ここにはプライマリコンストラクタの一部になるって書いてあるね。
0599デフォルトの名無しさん
垢版 |
2018/02/17(土) 00:43:30.54ID:vJDAw5Ja
>>596
そうね暗黙の場合と違いあるから省略という表現は不正確だったごめん

セカンダリコンストラクタが無い場合、暗黙のプライマリコンストラクタはpublicになる
セカンダリコンストラクタが有る場合、暗黙のプライマリコンストラクタは未初期化メンバを残せる
0601デフォルトの名無しさん
垢版 |
2018/02/17(土) 09:11:07.08ID:cSouIKOJ
Kotlin使いがJava使いにマウント取ってる様を見てまたこの繰り返しかと思いそっ閉じ
0602デフォルトの名無しさん
垢版 |
2018/02/17(土) 11:37:12.55ID:EWYfJ6l0
マウント取ってるように見える?そりゃなんていうか、劣等感強すぎでは?
てか一々そんなこと考えてないで自分でも使えばいいじゃん。禁止されているわけでもなし。
Java が使える状態になったことのある人が Kotlin 使えるようになれないわけがないと思うが。
0603デフォルトの名無しさん
垢版 |
2018/02/17(土) 19:20:37.06ID:MOg6+5DY
ていうかkotlin使いって99%Java使いも兼ねてるだろうからマウントとるも何もないのでは
0604デフォルトの名無しさん
垢版 |
2018/02/17(土) 22:06:51.34ID:QsKtGr9g
今使ってる人はそもそもJavaできるからな
より使いやすくても、対立構造にはならないよな
0605デフォルトの名無しさん
垢版 |
2018/02/18(日) 01:22:27.54ID:5P/pcqvC
>>557
モバイル開発は違うかもだが、業務系は極端に言っちまうとjava要員集めるっつたら使い捨て兵隊集めだよ。
0607デフォルトの名無しさん
垢版 |
2018/02/18(日) 13:07:28.97ID:hkjnjusX
Kotlin, RxJava, MVVMは基本的な必須スキルだからな
未だに実務経験ないやつは失業確定ざまああwwwwwww
0609デフォルトの名無しさん
垢版 |
2018/02/18(日) 13:24:23.64ID:R7wrwf8X
Android系の技術スレは失業だの兵隊だの低いところでマウント争ってるんだな。稼いでるやついなそう。
0610デフォルトの名無しさん
垢版 |
2018/02/18(日) 13:56:19.84ID:D295fkqM
そういやKotlinはまだ求人数は少ないけど給与は良いって調査結果があったな
中途半端だと仕事にありつけないかもしれないな
0611デフォルトの名無しさん
垢版 |
2018/02/18(日) 14:56:03.30ID:oDDrqbus
しかしKotlinってKotlinらしくない従来のJavaっぽい書き方をしても動いてしまうからな。金を多く払う意味があまりないかも知れないぞ。
0612デフォルトの名無しさん
垢版 |
2018/02/18(日) 16:12:24.98ID:nyTLTr1m
Kotlinで単価が高いのは、チームが今後Kotlinでやってけるように導入の面倒見れる人だよ
>>611が言ってるレベルの奴なんてそもそも高い単価で雇われないから
0613デフォルトの名無しさん
垢版 |
2018/02/18(日) 16:20:57.25ID:JlUJeRgg
面倒みなきゃならんほどのものじゃないでしょ
プログラム初心者じゃあるまいし
0616デフォルトの名無しさん
垢版 |
2018/02/18(日) 17:24:17.84ID:JlUJeRgg
>>614
確認だけど職業としてプログラマやってる人たちの話って前提だよね?
小学校のプログラムの授業とかじゃなくて
0617デフォルトの名無しさん
垢版 |
2018/02/18(日) 19:36:30.68ID:nyTLTr1m
>>616
もういいよめんどくさい
じゃあKotlinできればそのレベルに関わらず誰でも単価高いってことでええわ
0618デフォルトの名無しさん
垢版 |
2018/02/18(日) 22:46:31.63ID:mRumiIcD
ラムダ式から式の外側のthisを参照するにはどうすればいいでしょうか?現状、
val this_ = this
async {
 this_
}
とかしてますけど、これ以外方法ない?
0624デフォルトの名無しさん
垢版 |
2018/02/19(月) 12:46:45.80ID:8HhXX1j3
どう書いても最適化されて同じコードになったりして・・・
0630デフォルトの名無しさん
垢版 |
2018/02/19(月) 17:39:35.65ID:UjHZ69on
val 式の外側のthis = this

async {
式の外側のthis.method()
}

これが1番わかりやすいな
0634デフォルトの名無しさん
垢版 |
2018/02/19(月) 23:50:04.20ID:bFR3uyhH
ラムダに束縛したいのはthisだけとは限らないしネストも有り得るので
クラス外の関数として分離した場合の引数名のイメージで変数名付けてる

val view = this
val cal = activeCalculator
async {
  cal.recalc()
  transaction {
    val tran = this
    check(cal, tran)
  }
  view.notifyUpdate()
}
0638デフォルトの名無しさん
垢版 |
2018/02/20(火) 10:02:36.87ID:pltRTpB+
>>636
フォントが違うと見え方が変わりそう
0640デフォルトの名無しさん
垢版 |
2018/02/20(火) 12:57:02.91ID:DWBDu+Jk
ま、しかし、あまりにもネストが深くなるようならロジック考え直した方が良いかも
0641デフォルトの名無しさん
垢版 |
2018/02/20(火) 20:10:18.67ID:xSX01qXm
メソッド参照とか別クラスとか。
0642デフォルトの名無しさん
垢版 |
2018/02/20(火) 20:29:10.81ID:qXSQ9QV9
ネストは三段ぐらいまでにしといた方がいいだろうな。
その辺が迷宮の入り口だ。

Cのポインタとかも同じ。3段以上先には魔物が住んでいる。
0644デフォルトの名無しさん
垢版 |
2018/02/20(火) 22:17:03.69ID:/iBGk+pN
androidでデータバインディングしようとして
class Foo {
 @Bindable
 val bar get() = hoge.bar
}
とかできないの??・・・
0645デフォルトの名無しさん
垢版 |
2018/02/20(火) 22:18:25.44ID:/iBGk+pN
エラー内容はThis annotation is not applicable to target 'member property without
backingField or delegate'です。
どうしたらいいでしょかね
0646デフォルトの名無しさん
垢版 |
2018/02/20(火) 22:30:04.18ID:/iBGk+pN
Javaでは
class Foo {
 @Bindable
 String getBar() { hoge.getBar() }
}
で、hogeはFooのフィールド変数です。
0648デフォルトの名無しさん
垢版 |
2018/02/21(水) 00:01:54.65ID:CION/kfn
また、アノテーションだけど。遅延初期化ではアノテーションつけれんの?しょぼーん。
@field:Transient
val lazyVal by lazy {}
だめか・・
0649デフォルトの名無しさん
垢版 |
2018/02/21(水) 14:48:51.57ID:aopUu534
いま触れてないけどkotlin-Nativeってどんな感じ?
ほとんどなんでもコンパイルかけれる?
見たところLLVM通すから行けそうだけど
0650デフォルトの名無しさん
垢版 |
2018/02/21(水) 15:35:13.89ID:HWbyxxJS
実用で使うのはまだ怖いけど、遊びで触る分にはちゃんと動くよ。
javaの標準パッケージが全く使えないから、jvmで動かす前提で作ってあるクラスだのライブラリだのが動かないという辛さはある。
0651デフォルトの名無しさん
垢版 |
2018/02/21(水) 16:03:44.92ID:wwQ+gY6z
javaのパッケージ使えないんならわざわざJVM言語使う価値なんかないわwさよなら〜
0652デフォルトの名無しさん
垢版 |
2018/02/21(水) 16:13:56.98ID:4d1xezjM
うん。はっきり言って現状ではこれを使うメリットが何一つ思い浮かばないよ俺も。
0653デフォルトの名無しさん
垢版 |
2018/02/21(水) 17:59:59.69ID:ftdNQJg9
地味にアップデートされてるからJBが飽きなければそのうち実用レベルになるかもねえ
0654デフォルトの名無しさん
垢版 |
2018/02/21(水) 18:05:11.04ID:2C7myRiq
それなりの標準ライブラリはあるんでしょ?まだないの?(ないわけないか。なければ Hello world も出せないもんな)
0655デフォルトの名無しさん
垢版 |
2018/02/21(水) 18:28:14.61ID:aopUu534
ありがとう。
なるほどまだ様子見しとくわ
Javaの標準パッケージ動かないの辛いね
0658デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:15:48.38ID:CION/kfn
この言語意味不明になってきた。
class Test {
 var str: String
  get() = field
  set(value) { }
 constructor() {
  str = "あいう"
 }
}
val t = Test()
普通にstrがnullになる
0659デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:17:58.58ID:CION/kfn
セカンダリコンストラクタでstrのbakcingFieldにアクセスできないの??
 constructor() {
  str = "あいう" // これはsetter経由のプロパティアクセス
 }
0662デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:30:46.29ID:CION/kfn
>>661
意図はないけど、null安全とかいっておきながらkotlin側だけでnull入るコード書けるのまずいような気がする。
いや、プロパティの初期化方法がうざくて色々調べてたら気づいただけ。
0663デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:35:19.91ID:CION/kfn
プロパティ宣言すると初期値与えろってうるさいんだけど、うるさいのはいいんだけど初期値の与え方が
val str: String = プロパティイニシャライザ
プロパティイニシャライザ以外、bakcingFieldに直接与える方法ないの??
>>659だって、初期値与えろってコンパイルエラーでるから、セカンダリコンストラクタに
str = "あいう" // これはsetter経由のプロパティアクセス
書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるって初期値実際与えられてないし・・
0664デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:38:04.92ID:CION/kfn
>書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるって初期値実際与えられてないし・・

>書いたんだけど、setter経由のプロパティアクセスだとsetterが>>658のようになってるいじわるコードだと初期値実際与えられてないし・・
に修正
0665デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:44:04.71ID:ftdNQJg9
そういうことね
確かにこれならsetterの部分でコンパイルエラー出て欲しい気がするな
帰ったらドキュメント舐め回してみるか
0667デフォルトの名無しさん
垢版 |
2018/02/21(水) 22:24:25.01ID:mU+xwBkv
>>666は勘違いでした。申し訳ない。
>>658
多分あまりにも悪意に満ちた常人なら間違え内容のない契約プログラミング違反だから、
そこまでは面倒を見られないということかも。
0668デフォルトの名無しさん
垢版 |
2018/02/21(水) 22:33:20.79ID:A2iqRMA5
悪意の無い初心者がめちゃくちゃ書いてもちゃんと面倒見てくれるべきだと思う
0669デフォルトの名無しさん
垢版 |
2018/02/21(水) 23:05:16.86ID:CION/kfn
null安全の導入とともに変数は宣言時に初期値を与えなきゃいけなくなって、
ローカル変数は宣言時に与えなきゃいけないけど、インスタンス変数は宣言時または
コンストラクタ内で与えればOKなんだけど、
backingFieldを持つプロパティと相性悪かった?ってことかな。

backingFieldを持つプロパティはプロパティイニシャライザを与えるか、
コンストラクタ内でbackingFieldに直接初期化するという条件を付けくわえないとだめ?

field:str = "あいう" // コンストラクタ内でのみ使えるbakckingFieldにアクセスする専用構文の導入が必要 か
str = "あいう” // コンストラクタ内でのプロパティへの代入はsetterは経由しないとかの条件が必要
0670デフォルトの名無しさん
垢版 |
2018/02/22(木) 00:40:47.03ID:P3OwyHQx
バグ相当だと思う

初期化(setter呼び出し)の有無は判定出来ているのだから
コンパイルエラーにするのが難しいなら
その直後にそのプロパティのBacking Fieldがnullだったら
KotlinNullPointerExceptionを投げる処理を暗黙的に追加すべき
0672デフォルトの名無しさん
垢版 |
2018/02/22(木) 01:34:10.26ID:2g+h2XZc
null安全の導入->非nullableのクラス型のデフォルト値なんてないから、変数は必ず初期化する
必要がある->(この再、nullable、非nullable関係なく全変数初期化するように)

未初期化の変数がコンパイラエラーにならないんて、これが言語仕様なら
仕様がクソだったってことだな(さすが、適当に作った言語ってことに)。
コンパイラのバグであることを祈ろう。
0673666
垢版 |
2018/02/22(木) 06:49:37.65ID:W5l1Fr+S
>>658は、Test()でconstructor()が呼ばれないことについて
エラーも警告も出ないことも問題かもしれない。
>>672
Javaで1回しか代入できないフィールドを作るのにsetterに渡された値を捨ててしまうことは
手法としては考えれられなくはないから、バグではなく仕様かも。
逆にチェックを厳しくし過ぎると出来そうなことができなくなる罠も出てくるから
完璧は無理かと。
Kotlin自体「実用的な」範囲でバランスをとったというコンセプトだし。
0674666
垢版 |
2018/02/22(木) 06:57:22.88ID:W5l1Fr+S
>>673
の一つ目は勘違いでした。
Kotlinは便利だけど、いくつかの規則は言語仕様でなく契約に基づいていて
契約違反のコードは勘違いを起こさざるを得ないと言い訳する...orz
0677デフォルトの名無しさん
垢版 |
2018/02/22(木) 07:44:53.50ID:HpXxCMc4
一回しか代入したくないならセッターの中にそういう処理を書けばいいだけだし、
非NullableなのにNullが入る状態でコンパイルできるのはどう考えてもバグでしょ
0678デフォルトの名無しさん
垢版 |
2018/02/22(木) 07:45:17.47ID:P3OwyHQx
>>673
そういう手法のときは内部フィールド側はNullableになっているべきじゃないかな
通常ケースの一つとしてnullがあるパターンなわけだから

private var strF: String? = null
var str: String get(){return strF ?: ""} set(value) { }
0679デフォルトの名無しさん
垢版 |
2018/02/22(木) 09:29:54.25ID:tZO46ghF
setterを空にしたらバッキングフィールドへの代入は永遠にされないのでは?
外部からバッキングフィールドへの代入ってできないよね?
(getterで値を変更するカウンターみたいなやつは別として)。
0680デフォルトの名無しさん
垢版 |
2018/02/22(木) 21:30:53.59ID:MQzOZIuj
Nullableでないプロパティのsetterがnullの状態で呼ばれることがあるって考えるとなんか気持ち悪いな
俺の感覚だとsetterが呼ばれた時点でフィールドは初期化されていて欲しいしフィールドの初期化にsetterは使って欲しくない
0682デフォルトの名無しさん
垢版 |
2018/02/23(金) 00:50:16.39ID:U4AoY/IO
>>658の var str : String の部分を var str = "aaa" みたいに書くと var なのに str に何を代入しても
中身が"abc"のまま変化しないプロパティが完成w
0684デフォルトの名無しさん
垢版 |
2018/02/23(金) 07:49:04.02ID:bsuGQjVb
>>682
ワロタ
嫌な会社を辞めるときにテロとしてそういうコード残しておくイタズラとかできそう
それはそうとnullableじゃないのにnullになりうるセッターがコンパイル通るのはやっぱおかしいよな
そんなんする奴がいるのかって話ではあるが
0685デフォルトの名無しさん
垢版 |
2018/02/23(金) 08:31:33.24ID:nqFe2RWJ
githubにあるkotlinのプロジェクトはissuesのリンクがないや
どこに報告すればいいんだ
0690デフォルトの名無しさん
垢版 |
2018/02/23(金) 20:44:31.66ID:Py5a3myD
>>688
C#はこういうこと起きないの?
てか、そもそも同じような形式のプログラム作れるの?
0692デフォルトの名無しさん
垢版 |
2018/02/23(金) 21:26:34.63ID:i7MOfoRF
8.0ではoptinでnull安全にできるようになるんじゃなかったけ。まあ、でもmicrosoftはこんなポカしないと思うけど。
0696デフォルトの名無しさん
垢版 |
2018/02/23(金) 22:46:50.15ID:ZKkKvK7/
完全に趣味でSwift触り始めたんだけど、ことりんと似すぎてて脳の切り替えが大変
0702デフォルトの名無しさん
垢版 |
2018/02/24(土) 08:17:33.01ID:vmshfWHt
引数や戻り値の属性(アノテーション)としての出自でNullable (@Nullable)
型引数を持つデータ構造として出自でOptional (Optional<T>)
0711デフォルトの名無しさん
垢版 |
2018/02/24(土) 23:25:19.26ID:QE7g/pJn
神は糞である。
0715デフォルトの名無しさん
垢版 |
2018/02/25(日) 11:44:58.69ID:XjF3qDop
こんな本が出てたんだな。

Androidアプリ開発の教科書
http://amzn.asia/59lxVwl
0716デフォルトの名無しさん
垢版 |
2018/02/25(日) 11:46:33.02ID:XjF3qDop
あ、Kotlin で検索したら出てきた本だけど Kotlin とは限らないみたいだな。すまん。
0718デフォルトの名無しさん
垢版 |
2018/02/25(日) 12:40:42.33ID:pcyqC+jB
Kotlinイン・アクション、2017

Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016

せっかく太郎が、イン・アクションを参考にして、わかりやすく書いたのだから、
日本人は、太郎本を読んだ方がよい
0719デフォルトの名無しさん
垢版 |
2018/02/25(日) 13:02:41.55ID:OHKw3fir
情報量はインアクションの方が多いから、わざわざ薄めた本を買う必要なんてないよ
0721デフォルトの名無しさん
垢版 |
2018/02/25(日) 14:16:36.00ID:4s22ePtw
Kotlin本といえば今のところインアクションとスタートブックの2択だと思うけど、
「難しい」って理由でレビュー評価下げるのはどうよ?と思ったんで、難しい以外に
インアクションで問題点ある?
バージョンが古いとか?
0722デフォルトの名無しさん
垢版 |
2018/02/25(日) 14:31:03.18ID:VQCl2C19
※716
Androidの入門本なんてAndroid搭載機種の種類と同じくらい大量に出てるのになぜわざわざそれを貼ろうと思ったのか
0725デフォルトの名無しさん
垢版 |
2018/02/26(月) 08:03:23.98ID:RZjRtr5i
知らんけどkotlinのandroid入門書なんてもう山ほど出てるんちゃうの?まだjavaばっかなの?
0726デフォルトの名無しさん
垢版 |
2018/02/26(月) 08:23:30.09ID:t40oU2wX
まだ一冊しかないのでは?
0729デフォルトの名無しさん
垢版 |
2018/02/26(月) 09:20:17.57ID:G+urRbGd
細切れ情報を探すのはやだな。レベルも方針もバラバラだし。
良書があるなら本がいい。
0731デフォルトの名無しさん
垢版 |
2018/02/26(月) 09:43:22.22ID:CZmy/XEe
本は中古やで何冊かあったよ、まだ高かったけど
正直Pythonは失敗だったと思う
0734デフォルトの名無しさん
垢版 |
2018/02/26(月) 13:51:07.53ID:Mu1MCm3E
>>732
流行った言語は自動的にそうなる。
0739デフォルトの名無しさん
垢版 |
2018/02/26(月) 18:51:59.91ID:3Mt4XsWV
買わない買わない
0740デフォルトの名無しさん
垢版 |
2018/02/26(月) 19:46:08.16ID:FSYyOpBd
>>721
本を読んだけどどっちもよかったよ。
ただ読み手のスキルで理解力に差があるからそこで評価が分かれてるのかも。
0741デフォルトの名無しさん
垢版 |
2018/02/27(火) 10:02:27.46ID:GEmGj4yT
IntelliJの変換機能使ってシコシコKotlinに変換してるけどstatic無いのがウザくなって来た
Swiftにはあるのにー
0747デフォルトの名無しさん
垢版 |
2018/02/27(火) 23:39:03.53ID:oVWfwCMw
Core i7、メモリ32GBだけど、コーディングに支障があるほど重いとは感じないかな
0750デフォルトの名無しさん
垢版 |
2018/02/28(水) 04:32:16.89ID:ifAjmiIg
Android stuios...
0756デフォルトの名無しさん
垢版 |
2018/02/28(水) 09:34:38.82ID:3IEGD0z0
そういやエミュレータは遅いな。あれ速くならんもんかね?実機に繋いじゃうしかないか?
0762デフォルトの名無しさん
垢版 |
2018/02/28(水) 15:59:23.70ID:/fCVXMT7
やっぱ金掛けてゲーミングPCにしないといかんかね
0764デフォルトの名無しさん
垢版 |
2018/02/28(水) 17:05:13.06ID:Dh2+122Q
IntelliJファミリーのIDEが不自然に重い時はプラグインを疑った方が良い
もしくは単純にindexingか何かをしてるだけか

とりあえず2013年モデルでメモリ8GBのMBPでもサクサク動く
0767デフォルトの名無しさん
垢版 |
2018/03/01(木) 06:15:15.24ID:uqwlFRYM
いや、あの会社がプログラミング言語を開発するのは趣味みたいなもんだから。
0773デフォルトの名無しさん
垢版 |
2018/03/01(木) 17:02:42.69ID:SIvaL2Ua
なんかgoogleって統一感無いよなー。
dart捨てたと思ってたのに、このタイミングで復活させるとかさ。ならchromeに予定通りvm載せろや
0775デフォルトの名無しさん
垢版 |
2018/03/01(木) 18:09:19.76ID:cE1p2NGM
>>773
それが望ましいな。まぁ、Flutter+Dartが成功したらchromeにもDartVM搭載復活とかあるかもね。
それで、JavaScript絶滅に追いやってほしいわ。
今どきの言語ならなんえり好みしないからフロントエンドからJavaScriptを絶滅に追いやってほしい。
0779デフォルトの名無しさん
垢版 |
2018/03/01(木) 18:48:56.63ID:cE1p2NGM
つか、あれ、ラムダ式の中で値返すときretrunとかキーワードつけないのかー
ふーんって思ったけど、制御までreturnするんじゃないのか・・
{
 if (条件式) 値1
 その他の文
 値2
}
で、if文の条件式が真の時、値1が返ってreturnするのかと思ったらその後も実行されるのか・・
0783デフォルトの名無しさん
垢版 |
2018/03/01(木) 19:23:41.14ID:cE1p2NGM
コンパイルエラーがでるからそこらへん適当にやっててもなんとかなったけどww。
真面目に考えるとどうなってんだこれww
今までコンパイルエラーが消えるように適当に例えば、
fun testAsync(): Deffered<String> {
 return async {
  lock.withLock {
   "ABC"
  }
 }
}
むしろ、retrunを付けると怒られたからこのままにしたけど。return@asyncってラベルつけるればいいのか。
ラベルつけない場合はどうなってんだこれ。
0786デフォルトの名無しさん
垢版 |
2018/03/02(金) 19:55:39.45ID:UK6+GFm3
>>785
ありがとう。ちょっと前に話題になってたのね。
つか、前に教えてもらったhttp://jetbrains.github.io/kotlin-spec/
にそれに関する事のってねぇな?

DartだってECMAでしっかりした仕様書になってるのに、
仕様書がいまだにこんなレベルなのにAndroidのFirst Class Languageにするなんて
Google何考えてんだか・・
0787デフォルトの名無しさん
垢版 |
2018/03/02(金) 20:38:44.95ID:UK6+GFm3
後、
https://ideone.com/RIMEHi
で、
val t = Test()
t.update()
にすると、propertyが変更されないっぽいんですけど、なんででしょうか??
Android環境でコルーチンを使ってます
よろしくお願いします。
0791デフォルトの名無しさん
垢版 |
2018/03/03(土) 00:14:44.42ID:xuTznB0o
>>787
Androidやコルーチンであることは直接の関係が無く
インラインでないラムダとprivate setの組み合わせが影響しているようだ

https://ideone.com/aLit2X
↑これの「4」が出力されるケースと同じでsetの処理を通らずに
バッキングフィールドに直に代入されてると思う

バグか仕様か断言はしないけど、多分コンパイラのバグじゃないかな
0792デフォルトの名無しさん
垢版 |
2018/03/03(土) 00:41:15.44ID:AQTy3jz6
>>791
うぉぉ。ありがとう。コルーチン関係なかったのか。
まだ、インラインとか勉強してなくてさっぱりだけどw
この前の>>658も俺だし、
真面目にkotlinで開発しようと思って2週間ぐらいでこのザマとか
なんなのkotlinの品質。笑えないな。
0794デフォルトの名無しさん
垢版 |
2018/03/03(土) 01:02:48.20ID:AQTy3jz6
そうだよね。俺もちょっと前というか昨日もそうだけど、>>787のまた変な動きに出くわして
さすがにうんざりしてIssue Trackerのぞいたけど、前のも報告されてないっぽいよねww

つか、前のやつは単なるコンパイラのバグですまされない仕様修正とか入りそうな予感してるんだけど。
まぁ、現状の仕様ってのがなんだかよくわからんけど。
0796デフォルトの名無しさん
垢版 |
2018/03/03(土) 09:31:08.45ID:xuTznB0o
コンパイラのバグはバグとして直すのが当然だけど

この前のバッキングフィールドの初期化回避や
setter内のインラインでないラムダからバッキングフィールドにアクセスするのを
普通のアプリ開発として書いているのなら止めた方が良いと思う

個人的な感覚では動作以前に「コンパイルが通るべきでは無いコード」だと思うので
0798デフォルトの名無しさん
垢版 |
2018/03/03(土) 20:31:37.81ID:AQTy3jz6
kotlinで3000行くらいすでに書いちゃったけど、とりあえず、private setをpublic setに直して回避・・
しばらくflutterで遊んでくるか
0799デフォルトの名無しさん
垢版 |
2018/03/03(土) 20:32:59.01ID:usZqppoC
しようがないなあ
0803デフォルトの名無しさん
垢版 |
2018/03/04(日) 14:48:36.99ID:D9lK5f2H
これからプログラミング初心者がkotlinを触るようになったらそこらへんも色々見つかるだろうね
今はまだほぼ他の言語で経験のある人しか触ってないでしょ
0806デフォルトの名無しさん
垢版 |
2018/03/05(月) 12:20:24.87ID:qx4LEZCO
他の言語っていうか、java本業の人しか触ってないでしょ
Androidの入門書もまだほぼjavaばっかだし
0807デフォルトの名無しさん
垢版 |
2018/03/06(火) 10:59:36.24ID:do1rqvuo
コマンドラインから何も引数付けずに kotlinc 実行するとRPELで動くけどこの時に :help で出てくる :dump bytecode ってなんなの?
名前からしてバイトコードをダンプするであろうことはわかるけど、いつやっても何も出ないんだよね。
0808デフォルトの名無しさん
垢版 |
2018/03/06(火) 11:00:47.10ID:do1rqvuo
タイプミスった。rpelじゃねえ。replだ。
0809デフォルトの名無しさん
垢版 |
2018/03/07(水) 22:44:21.36ID:hoG4dIXg
C#のnameof演算子だと、コンパイル時に評価されますけど。
kotlinのプロパテイ参照は結構オーバーヘッド高いですかね??
when (propertyName) {
::property1.name ->
::property2.name ->
}
結構頻繁に評価されるコードなんですよね
0810デフォルトの名無しさん
垢版 |
2018/03/07(水) 22:49:50.60ID:hoG4dIXg
今は定数でやってんですけど、まだ書き換えるべきが保留してるんです。
when (propertyName) {
"property1" ->
"property2" ->
}
リフレクション絡みのオブジェクトも普通にGC対象?で、その都度生成されたり破棄されたりすると予想しますが。
もちろんアプリ全体のボトルネックになるぐらい影響はないですけど、うーん。踏ん切りがつかん。
0812デフォルトの名無しさん
垢版 |
2018/03/08(木) 00:35:53.57ID:c/6ZktFW
>>810
ありがとうございます。そうですね。プロパティ増やすたびにEnumの定数も定義する必要がありますが、
パフォーマンス的にはいいですよね。

で、今ちょっと見たことなかったんですけど、Javaのバイトコード見てみたんですけど最適化されてるのか??
メソッド呼び出しされてるのかと思ったら、定数値に置き換えられてました。
最適化のせいなら将来のコンパイラでどうなるかわかりませんけど、とりあえず、普通にプロパティ参照使って
置き換えてます。

ありがとうございました。
0814デフォルトの名無しさん
垢版 |
2018/03/10(土) 08:59:29.43ID:sfqxq7fN
でもそれ結局今日も同じメニューになるよな
たまにはやよい軒行きたいわ、遠いけど
0819デフォルトの名無しさん
垢版 |
2018/03/10(土) 11:07:21.06ID:TTti/WSS
それは残念
0820デフォルトの名無しさん
垢版 |
2018/03/10(土) 11:15:49.69ID:McxjgaUo
waitとかマルチスレッド機能ぐらい用意しとけよー
結局java.lang.Objectから離れれられんじゃないか
0822デフォルトの名無しさん
垢版 |
2018/03/10(土) 19:55:04.16ID:Uyf8EqGw
逆に言えばJavaの機能で出来ることをわざわざKotlinで独自に作り直す必要ってあるかね
0823デフォルトの名無しさん
垢版 |
2018/03/10(土) 20:16:52.67ID:MudN2Ixk
クロスプラットフォーム押していくなら、Javaからある程度離れて開発できないとな。
Kotlin=JVMなら別にいいけど。
0825デフォルトの名無しさん
垢版 |
2018/03/10(土) 20:34:05.66ID:MudN2Ixk
それが一番だけど、そうなるにはそうなるにはJetBrainsの対応待ってると時間かかりそうだから、
Google買収しないと。IDE全体抱えてもあれだからkotlin部門だけでも
0826デフォルトの名無しさん
垢版 |
2018/03/10(土) 23:43:23.18ID:MSLQ1fUp
>>822
機能的に同じでも、より簡潔に書けるなら価値ある
0827デフォルトの名無しさん
垢版 |
2018/03/11(日) 16:57:48.79ID:WkTMJw5e
ゆくゆくはそうなっていくかもしれないけど、まずはJava完全互換を徹底して開発者を集めないとKotlin自体終わっちゃうし
0831デフォルトの名無しさん
垢版 |
2018/03/13(火) 17:21:36.75ID:UOahYQi3
超初心者で申し訳ありません。
Kotlinスタートブックを購入しました。
REPLを多用してるのでAndroid Studio3.01のREPLで進めたいのですが、
単純に、Kotlin REPLパネル内に、書籍のコード〜 じゃ無いようで、今一つ、Android StudioのREPLの使い方が分かりません。

Android Studio3.01のREPLで、「Kotlinスタートブック」をスターと部分だけでも紹介してる情報なありますでしょうか?
0832デフォルトの名無しさん
垢版 |
2018/03/13(火) 18:59:50.25ID:UOahYQi3
あれこれして
書籍 P28の最初の一発目

class Rational(val numerator: Int, val denominator: Int)
val half = Rational(1,2)
half.denominator
  と、打ち込んで 実行させたら、2って出来ました〜

Android Studio3.01のREPLを使って、読みすすめそうです。
0833デフォルトの名無しさん
垢版 |
2018/03/14(水) 10:24:21.09ID:lhJp7l4Q
解決したみたいだからいいけど、
技術書を写経するときはREPLよりもコードをファイルとして残しておいた方がいいと思うよ

読み進めた後にちょっと前に見たところを戻って書き換えたりとかしたくなることが多いと思う
0838デフォルトの名無しさん
垢版 |
2018/03/14(水) 13:03:14.15ID:BC3u9Cri
ちょこちょこバージョンアップしてるみたいだけど、リリースノートってあるのかな?
0839デフォルトの名無しさん
垢版 |
2018/03/14(水) 13:30:40.55ID:+tq877Bs
Swiftのバージョンアップは破壊的変更が多くてダルいらしいけどKotlinはどうなの?
0842デフォルトの名無しさん
垢版 |
2018/03/14(水) 14:27:37.09ID:qG6o0CFM
>>835
Android studio使ってるならファイルをデバッグ実行してEvaluate Expressionするのが1番フィードバックが早くて使い勝手も良い
0844デフォルトの名無しさん
垢版 |
2018/03/14(水) 16:57:41.33ID:OPcLX1QE
>>843
ごくごく初期はなんか色々あったらしいけど、最近は既存のコードが動かなくなるような変更は記憶にないな。
そこらへんはJavaのカルチャーかも
0854デフォルトの名無しさん
垢版 |
2018/03/18(日) 00:15:28.10ID:JCaBc1o3
ぶっちゃけ、PythonとKotlin覚えときゃ十分だよな
ソース見られてもいいようなちょっとした内部処理はPythonでやって、それ以外はKotlinでやればいいし
0855デフォルトの名無しさん
垢版 |
2018/03/18(日) 08:08:21.52ID:ewv3muP4
REPLの使い方の説明ないんだよねあの本
ぶっちゃけ最初からいきなりファイル書いたほうがいいと思うわ
0856デフォルトの名無しさん
垢版 |
2018/03/18(日) 17:30:16.63ID:lc8puhwP
REPL の :dump bytecode が未だにわからん。
分かるやつは居ないのか?
0857デフォルトの名無しさん
垢版 |
2018/03/18(日) 19:44:41.94ID:9zPyp0Eq
githubで検索してmasterブランチのソース見たけど :dump bytecodeの対象は
ReplFromTerminal 経由で ReplInterpreterが直に持ってるReplClassLoaderで
ReplClassLoaderはaddClassされたものをdumpするみたい

それで addClass探したら HistoryActionsForNoRepeat で
ReplClassLoaderを新たに生成してaddClassしてるのしか見当たらなかった

読み間違いでなければ、addと列挙を異なるReplClassLoaderインスタンスでやってるので
dump bytecodeは常に何も出ないのでは
0858デフォルトの名無しさん
垢版 |
2018/03/18(日) 19:58:20.59ID:9zPyp0Eq
HistoryActionsForNoRepeatで作られるReplClassLoaderは
topClassLoaderと合わせて3重にネストしてるように見える

ReplClassLoader (HistoryActionsForNoRepeatのメソッド内のclassLoader)
→親 URLClassLoader
→親 ReplClassLoader (状態によってはGenericReplEvaluatorStateのtopClassLoader)
→親 URLClassLoader
→親 ReplClassLoader (ReplInterpreterのclassLoader)
→親 URLClassLoader

makeReplClassLoaderは引数のbaseClassloaderがReplInterpreterだったら
newせず引数をキャストして返した方がいいような気が
0860デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:52:30.43ID:R4d/cKLT
>>856
わからないことがあったらコードを読む習慣がある奴と乞食するだけのお前
どんどん差は開いていくんだろうなぁ
0861デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:20:50.45ID:z+wS9hu5
>>860
ちょっと意地悪だなあ
0864デフォルトの名無しさん
垢版 |
2018/03/19(月) 09:59:38.75ID:fKuRgkEG
まー、わからないことがあればコード読むのが一番だけど、読まなくても質問の仕方ってもんがあるよな
0870デフォルトの名無しさん
垢版 |
2018/03/19(月) 12:44:20.63ID:/OLYcrDu
この一言を添えるべきだったな。

「わからない人は書かないでください。」
0872デフォルトの名無しさん
垢版 |
2018/03/19(月) 14:44:57.52ID:/OLYcrDu
3E 00
0873デフォルトの名無しさん
垢版 |
2018/03/19(月) 14:51:05.74ID:G/+G0Iaz
18 FC
0877デフォルトの名無しさん
垢版 |
2018/03/19(月) 19:46:11.90ID:ahbMAcYG
>>874
機械語にハンドアセンブルしなきゃ…
0879デフォルトの名無しさん
垢版 |
2018/03/19(月) 21:42:58.40ID:t8aO/EAD
にやーず
0881デフォルトの名無しさん
垢版 |
2018/03/20(火) 00:35:07.47ID:J0Id73NT
まぐまぐドライだろ普通。
0882デフォルトの名無しさん
垢版 |
2018/03/21(水) 09:14:27.60ID:hFmBEg63
Graalって今年のJava11に間に合うのか?
Kotlin/Native(LLVM)なんかよりずっと期待できそうだが。
0883デフォルトの名無しさん
垢版 |
2018/03/21(水) 10:59:02.18ID:X+3O/rSH
GraalとKotlin/Nativeって用途もコンセプトも被ってないと思うんだけど
LLVMの使い方も逆方向だし
0884デフォルトの名無しさん
垢版 |
2018/03/21(水) 11:48:06.15ID:mE2iQj+B
Graalがどうとかいう以前に、JVMがないプラットフォームがあるのを何とかして欲しい。
ライブラリも含めてコードをそのまま持ち込んでも動くならともかく、Graalで多言語をサポートしても、
各言語の基本仕様だけでは大したことは出来ない。
0886デフォルトの名無しさん
垢版 |
2018/03/21(水) 12:51:58.11ID:lHxXP1st
Graal

世界大百科事典内のGraalの言及
【聖杯伝説】より

…12世紀末ヨーロッパで顕在化したキリスト教の色濃い伝説だが,起源には諸説あり,
ケルト説話を源とする考えが有力。聖杯Graal(英語はGrail)を扱った最初の作品は
フランスの詩人クレティアン・ド・トロアの《ペルスバルまたは聖杯物語》(1185ころ)。
主人公が漁夫王の城で目にしたふしぎな行列,血の滴る槍と光り輝く聖杯について,
心に抱いた質問を口に出さなかった失敗がすべての発端であった。…

https://kotobank.jp/word/Graal-1233958
0887デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:19:20.83ID:v2KUYd83
JavaのコードをKotlinにIntteliJさん使って変換すると

fun hogehoge(value: String): Int? {
var value = value

みたいなコードでName shadowedってワーニングがでる
仕方ないのでvar_value = valueみたいに名前変えてんだけど、どうするのがベストかな?これ以外に良い方法あったら教えて
0888デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:21:46.97ID:MTE55bx9
ウォーニング
0889デフォルトの名無しさん
垢版 |
2018/03/21(水) 15:34:51.57ID:lHxXP1st
ぅおー
0890デフォルトの名無しさん
垢版 |
2018/03/21(水) 17:15:46.16ID:F1sATeyh
>>887
Analyze>Inspect Code
結果窓で気に入らないインスペクションを選択しスパナアイコンから設定画面でdisableする
0891デフォルトの名無しさん
垢版 |
2018/03/21(水) 20:14:30.97ID:v2KUYd83
Inspect Codeをどこをどういじったら変わるのか分からない
プロファイルってやつ?
名前の通りインテリすぎて使いこなせてない・・・orz
0892デフォルトの名無しさん
垢版 |
2018/03/22(木) 00:14:47.99ID:tdHViWJs
def initialize (number)
@number = number
end

Ruby のクラス内の、インスタンスメソッドの引数を、インスタンス変数に代入するなど、
@ の有無で、判別できるなら良いけど、

関数の引数と、関数内の変数は、共にローカルスコープで、
完全に、変数名もスコープも一致しているから、明らかな間違い
0893デフォルトの名無しさん
垢版 |
2018/03/22(木) 06:52:19.77ID:cNCV2D+g
>>887
Inspectionを切れば出なくなるしなんなら無視してもいいけど、そのコードは明らかに書くべきでないからコードを直した方が良い。
引数が変数の名前を変えるべき。
0894デフォルトの名無しさん
垢版 |
2018/03/22(木) 11:14:05.99ID:65GKgG7q
受け取った値に何かしらの加工を加えて返却する関数だと推測するけど
それなら引数の方をrawValueにするとか、変数の方をnewValueにするとか
なんでもいいけどとりあえずそのコードは俺がコードレビューするなら絶対指摘する
0895デフォルトの名無しさん
垢版 |
2018/03/25(日) 18:43:29.93ID:xXe3d6X4
Javaで
a instanceof CharSequence[]
してた部分はKotlinではどう置き換えたらいいでしょうか?
a is Array<CharSequence>
だとcannot check for instance of erased typeでエラーがでて型チェックができません。
0898デフォルトの名無しさん
垢版 |
2018/03/25(日) 21:41:32.67ID:sH0z9dIi
ああ、aが実際にArray<CharSequence>のときはエラーにならないぽい
Array<*>にするしかないのかなあ
0900899
垢版 |
2018/03/26(月) 09:17:35.12ID:NJeKHnKt
途中で送っちゃった

JavaのコードからAnyでくる何かの配列を扱いたいときに確かこんな感じで書いた記憶が
0901デフォルトの名無しさん
垢版 |
2018/03/26(月) 18:15:27.91ID:edzRf7Rx
勉強しようと思いリファレンス読みつつ Koans をやり始めた
最初は var, val や if, for とかかなと思ってたから面食らった
0912デフォルトの名無しさん
垢版 |
2018/03/29(木) 18:57:11.92ID:xJeXOp0s
Googleが一兆円払ったら今までと同じようにAndroid使っていけるんですかね
Androidがなくなるみたいな話じゃないんですかね
0913デフォルトの名無しさん
垢版 |
2018/03/29(木) 20:16:40.50ID:5psyvZry
長期的にはAndroidはJavaから離れてSwift化していくと思う
Kotlinはそれまでの繋ぎだろう
構文似てるし
0914デフォルトの名無しさん
垢版 |
2018/03/29(木) 20:31:18.17ID:UssF7XvX
問題になっているのはAPI仕様なんで、kotlinに変えただけじゃ解決しないよ。
googleは企業間摩擦で割と子供っぽい対応をするところがあるので、神託を敵対買収とか糞味噌展開を期待。
0916デフォルトの名無しさん
垢版 |
2018/03/29(木) 20:42:47.29ID:yhEgq3Dh
また控訴してひっくり返らないか?
0918デフォルトの名無しさん
垢版 |
2018/03/29(木) 21:08:11.75ID:yhEgq3Dh
しかしGoogleがフェアユースとか言い出さなければよかっただけなんじゃないかという感じがする。
0919デフォルトの名無しさん
垢版 |
2018/03/29(木) 22:43:45.47ID:rCpsVAyI
つうかAndroidもOpenJDKに移行するんだからもうその訴訟自体どうでも良くなるんじゃねーの
0921デフォルトの名無しさん
垢版 |
2018/03/30(金) 02:07:24.18ID:RNuPdbRv
俺も今のところkotlin。かといってswiftほとんど知らないわけだが。Apple関係に手を出さない限り必要性がほとんどないよなあれ。
まあ今後変わるかも知れないが。
0922デフォルトの名無しさん
垢版 |
2018/03/30(金) 03:13:29.93ID:quPTDKQd
フェアユースの方はまだ上告できるけど
ひっくり返る望みはほぼ無いようだから諦めて払うか別の弾持ち出してさらに粘るかだろうね
払うにしても時間たってるから賠償請求額上乗せしてくるんだろうけど
損害賠償だけで使用差し止めは要求してないからAndroidからJavaAPIが消えるという事は無い
はず
0925デフォルトの名無しさん
垢版 |
2018/03/30(金) 09:25:44.59ID:z9J7NVX/
Swiftはよくできてると思うが、毎年変更があるのがいけてないな
まぁー、Javaもついこないだ9出たと思ったら、もう10が出てたりするけど
0926デフォルトの名無しさん
垢版 |
2018/03/30(金) 09:34:51.66ID:MX8csIcp
javaが全部Kotlinに置き換わる
今プログラミング言語で一番使われてるのがjava
つまりKotlin最強になるということだ
0929デフォルトの名無しさん
垢版 |
2018/03/30(金) 09:53:15.88ID:TlFsJGTt
Nativeがあるといいけどライブラリどうなるのって問題があるな
0930デフォルトの名無しさん
垢版 |
2018/03/30(金) 10:10:19.33ID:fmoCCzNn
>>927
JAVAでできることならなんでもできる。サーバーサイドのことでも。
Kotlin/Nativeが1.0になれば、応用範囲はさらに広がる。こっちはいつになるかわかんないけど。
0933デフォルトの名無しさん
垢版 |
2018/03/30(金) 10:58:26.37ID:QjhurjtM
つまり、動かすにはJavaランタイムのインストールが必須ってことですかね
デフォルトでJREが入ってないMacのアプリを作るのはきついかな
ちなみに、SwiftでもWebアプリのサーバサイド書けるし、コマンドラインで手動コンパイルなしで実行するスクリプト的な使い方もできます。REPLもついてくるし
0934デフォルトの名無しさん
垢版 |
2018/03/30(金) 11:21:20.20ID:iNu2Do3a
>>931
もともと、Javaを拡張するのが大変だから、突破口として、Kotlinという新しい言語を作ったといういきさつなので、Javaでできないこともできる。
最近だとコルーチンとか。
0937デフォルトの名無しさん
垢版 |
2018/03/30(金) 12:27:18.25ID:TlFsJGTt
そういやKotlinはOpenJDKのJREがあれば動くからAndroid以外ではライセンス気にする必要がないね。
0939デフォルトの名無しさん
垢版 |
2018/03/30(金) 13:51:03.25ID:zGaUw9Ep
>>911
理解が違ってたらすまんけど記述言語がKotlinだとしても中身はJavaにコンバートしてAndroid上で動いてるんじゃないの?という意味。
0941デフォルトの名無しさん
垢版 |
2018/03/30(金) 15:46:14.27ID:dI/ml2BM
>>939
コンバートはしてないのでは?直接JVM用のバイトコード出してると思うが。
まあ、それができるならコンバートもできる筈だとは思うけどね。
0942デフォルトの名無しさん
垢版 |
2018/03/30(金) 16:20:58.01ID:zGaUw9Ep
>>941
ググってみた。ORACLEの特許はJava APIに対してなんだな。
ORACLEの特許はJava全般に渡ると思ってたのでバイトコードに変換しても(俺はこれをコンバートと言ってた。理解出来てなくてすまない)JMVで動いてる事自体が特許にひっかかるんじゃないかと思ってた。
Android OSのソースの特許で揉めてる部分をKotlinに置き換えれば大丈夫って事になるのかな。
0943デフォルトの名無しさん
垢版 |
2018/03/30(金) 17:31:12.32ID:+3QUYcgW
apple傘下のものをメインにするのはやっぱちょっと怖い
G様なら飽きたら放置だからそこは安心
0945デフォルトの名無しさん
垢版 |
2018/03/30(金) 20:49:12.14ID:5zcIzVPR
>942
androidで使ってたdalvikはレジスタマシンじゃん。
素のjvmならスタックマシンだからそこで特許は無理じゃね?
あとAPIだってそれだけじゃ特許とれんだろ。オラクルも特許侵害は言ってなかったような。
0946デフォルトの名無しさん
垢版 |
2018/03/30(金) 21:17:15.04ID:5ShTLiJo
プログラミング言語なんて適材適所だからな
少なくとも現時点ではサーバーサイドSwiftなんて選択肢としては悪手の中の悪手だわ
言語機能云々じゃなくて、エコシステム全体で見た時にあえてSwiftを選ぶ理由が本当に何もない
0949デフォルトの名無しさん
垢版 |
2018/03/30(金) 21:34:00.99ID:NMcWpz2k
>>936
かつてそれと全く同じ理屈でなんでもかんでもJavascriptで作ろうといわれた時代があってだな
0951デフォルトの名無しさん
垢版 |
2018/03/30(金) 23:33:20.26ID:z9J7NVX/
かつてじゃなくて今もNode.jsはそこそこ流行ってるじゃん
Electronで作ってるVSCodeとかかなり使いやすいぞ

まー自分は使う気になれんが
0952デフォルトの名無しさん
垢版 |
2018/03/30(金) 23:58:51.51ID:5zcIzVPR
googleはkotlinやってるのにflutterでdartとか、一つに絞らんのかね?
0953デフォルトの名無しさん
垢版 |
2018/03/31(土) 01:24:09.27ID:6wN5DSYc
絞ってるだろ
なんか勘違いしてるようだが、Google自身はKotlinもDartも一切使ってないぞ
0954デフォルトの名無しさん
垢版 |
2018/03/31(土) 02:20:18.15ID:N28z9/rW
結局、ちんこが勃つか勃たないかが重要なんだ
人を見た目で判断してはいけないと理屈で考えたとしても
ちんこが勃つか勃たないかまでは理性でコントロールはできない
だから男の方から女を選ぶ必要がある
女の方からいくら好きだと言って男に言い寄ってもちんこが勃たなければそこで終わりなのだ
男の方から女の方に言い寄る分には問題ない。ちんこが勃つということを表明しているのと同じだからだ
従って、肉食系女子、草食系男子というのはありえないということ
0955デフォルトの名無しさん
垢版 |
2018/03/31(土) 08:01:27.00ID:xq+IiG37
>>922
アメリカだと巨額な賠償命令が出るときは青天井のことはあるけど、
賠償請求額ってふっかけることが多いから、賠償額の審理が終わったら
「8年も引っ張ってこれだけかよ!」みたいな額だったというオチもありえなくはない。
0958デフォルトの名無しさん
垢版 |
2018/03/31(土) 16:49:26.44ID:4s7VNOk8
しかしAPIが著作権の問題で使ってはいけないとなると、その他のOSやライブラリもそうなりかねんわけで、
コンピュータ業界全体が大混乱に陥るのではないか?

以前 Linux でも似たような点が問われたことがあったように思うが、Linux に UNIX と同じシステムコールを
作った場合に関数名が同じとか関連する定数の定義が同じとか、呼び出し方や機能が同じになるわけで、
その部分に著作権があると言われて使用不能になったら互換OSや互換ライブラリは全滅になる。
同じ機能があっても違う呼び出し方しなければいけなくなってしまうからな。同じファイルオープンなのに
open() が使えないなんてなったらかなりアホらしいしもはやそんなもん障害でしかなかろう。
(変換すればいいのでその内なんとかなるだろうが、とても面倒だ)。
0960デフォルトの名無しさん
垢版 |
2018/03/31(土) 17:45:23.01ID:jIkIgkDE
>>958
・Wineは使えなくなってしまい、もはや、Windowsの互換OSは未来永劫作れない。
・mingw32 の windows.h ヘッダも著作権的にダメなのかい。
・こうなったのは、アメリカの法制度が悪いから。

世界中のみんなが、アメリカの法律は無視しよう。
0961デフォルトの名無しさん
垢版 |
2018/03/31(土) 18:17:57.80ID:0VxPNd/B
いやヘッダの著作権は普通にあるぞ
著作権の利用許諾に反するかどうかの問題
0963デフォルトの名無しさん
垢版 |
2018/03/31(土) 19:29:14.09ID:qrmwmyS1
  ∧_∧  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< オマエモナー
 (     )  \_____
 │ │ │
 (__)___)
0964デフォルトの名無しさん
垢版 |
2018/04/01(日) 02:39:43.21ID:t+tZ7rq3
>>958
linuxの場合は参考にしてるのがposixだからまたちょっと事情が異なるんじゃない?
著作権問題でゴタゴタしてたのはBSDですな。
あれはBSD失速の要因の一つだったと思う。
0965デフォルトの名無しさん
垢版 |
2018/04/01(日) 08:56:07.46ID:h55dGxCd
以前の会社にBSDを好んで使ってる人が結構いたけど、まだ使ってるんだろうか
そんな心配してる私はMacユーザーw
0966デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:44:08.65ID:GUPc3ba+
>>961
「コメント」などには著作権はあるけれど、関数のプロトタイプ宣言や構造体定義にまで
著作権を認めてしまうと、互換ライブラリ、互換言語処理系などを作ることが全くできなく
なってしまい、人々は困る。
0967デフォルトの名無しさん
垢版 |
2018/04/01(日) 10:24:40.55ID:x6ZL87kc
>>966
お前は関数のシグネチャを見ただけで互換実装を書けるエスパーなのか?
APIリファレンスや元のソースコードを読んで実装したら、やってることは実質的に盗作だよ
0968デフォルトの名無しさん
垢版 |
2018/04/01(日) 10:30:02.87ID:GlQ4Mmqm
MacというかNeXTはどちらかというとBSD系だろ
0969デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:10:03.37ID:GUPc3ba+
>>967
料理本に書いてあるやり方を真似て、別の本を出しても、著作権侵害にはならない判例
がアメリカでは基本になっている。

だから、リファレンスを理解して同じ機能のAPIを作っても著作権侵害にはならないと言うのが
原則だとされる。
0972デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:15:41.61ID:e1UC7+4i
>>970
だからflutterで仕切り直しをしたいんかな。
ついでにosもlinux辞めて全部自分仕切りにしようってことかね
0973デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:29:57.78ID:CcB7Toli
だからJavaとかいう臭い言語なんか最初から使ってなきゃよかったんだよ
オラクルとかいう臭い企業が牛耳ってる言語なんか使わないでも
もっと良い言語作れる能力あるのに
使用者が多いからと開発者に媚びた結果がこれだよ
0974デフォルトの名無しさん
垢版 |
2018/04/01(日) 16:01:17.13ID:6Umx8Fig
DroidKaigi 2018 - コードで見るFlutterアプリの実装 / konifar [JA]
ttps://www.youtube.com/watch?v=sRV_bSdyDjw
0976デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:15:05.92ID:2oobpuBw
2003年時点のAndroid社が今の状況を予想できるわけがない
0981デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:39:15.00ID:EwuQ9U5u
>>980
駄目だよ。
問題になっているのはjava APIの著作権なので、それがclassライブラリを指しているのかvm仕様を指してるのかわからんが、いずれにしてもkotlinでも状況は一緒。
ただandroidは神託が自らgpl化したopen jdkに移行したから、今後はjavaを使い続けても問題ない、はず
0982デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:40:21.31ID:F6+rL4W6
>>973
元は臭く無かったよ
ただSunが弱った結果、Oracleに訴訟用の道具として買収されてそうなった
0983デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:50:46.74ID:zXYiYzGh
>>981
やっぱり駄目なのか
Kotlinに完全移行する覚悟しようかと思ってたけど
OpenJDKで生きながらえるなら考え直そうかな
0984デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:52:52.55ID:R0oJ/MH9
個人で作るならコトリンのが作りやすいやろ
仕事だとなかなか採用できんね
0987デフォルトの名無しさん
垢版 |
2018/04/01(日) 23:48:12.01ID:rXkEVdGw
>>982
サンもJAVAの言語自体で儲からんかゴニョゴニョしていたせいで
(ISOなどに渡してしまうなどできただろうに拒んだ)オラクルが
滅茶苦茶やれるようにしてしまったという面もある。
0992デフォルトの名無しさん
垢版 |
2018/04/02(月) 08:44:47.98ID:UWLzNtKZ
なんらかの理由でgoogleの足を引っ張りたかっただけだろ
下手したらITの世界全体に致命的なダメージを与えかねないクソ前例を作りやがった
0995デフォルトの名無しさん
垢版 |
2018/04/02(月) 09:50:00.80ID:NWmlauvJ
>>993
お前何にも理解してないんだな。
J++は互換実装を作ったことが問題になったんじゃねえよ。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 152日 10時間 52分 32秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

ニューススポーツなんでも実況