Kotlin 3
レス数が1000を超えています。これ以上書き込みはできません。
じゃあちょっと質問の仕方を変えますね
なぜnull不許容が必要なのか教えてください
これならわかるかな? そもそも、nullを代入しなければいいのでは?
もしくは初期化しておけばいいと思います
違いますか? COBOLとかFORTRANはそういうコンセプトだねぇ
kotlin止めるの推奨 >>634
1人で全て開発するならそれでいいと思うよ。 つまり、null不許容型は人的ミスのためであって他意はないと? >>634
初めたばっかで良く分かって無いが、null使わないなら許容する意味が無くね-か
寧ろnullを使う意味が分からない 例えばSwiftは言語仕様でnullを抹殺しているが、わざわざOptionalというnullでないものでnullを表現してる。nullがない世界など何処にもないのだ。 例えばファイルが読み込めなかった場合、どうなると思いますか?
答えられますか?
答えられるようになったら質問してください。
今はそういうレベルの話ではないです。 >>630
> なぜnull不許容が必要なのか教えてください
あなたの言う意味では不要。null許容にすることによってプログラミングが不可能になることはない。
nullによって発生する凡ミスが減るというメリットを必要とする人がいる。それだけ。
>>640
> 今はそういうレベルの話ではないです。
わからないで聞いているというより、わかってて煽ってるわけだ。
> 例えばファイルが読み込めなかった場合、どうなると思いますか?
ここでnullを許容する必要があるのではないかと言いたいんだと思うけど、
Kotlinがそうしているかどうはかは別にして、「ファイルが読み込めなかった」という
nullでない値を返すという考え方もある。
null許容のJavaだと例外を投げるところかな。 >>639
おっしゃる通りで、結局不正なデータのチェックは必要なわけで、null不許容だから安心して使えるわけでもなく、寧ろ何気にうまく動いている状態が一番怖いです null不許容のクラスを作るとして
そこではあらゆるケースに対処を強いられるわけで、チェック項目は膨大になります
しかしそれを利用する側は単純にファイルが読めるか否かだけ知れればいいとします。
null不許容を取り入れるということは、開発コストが上がることを示唆しているのではないかと
どうですか? Optionalは中身取り出すのにアンラップが要る。Kotlinはnullにならないようにコンパイラがチェックしてるだけ。よってアンラップ不要。副作用としてnullを許容してないのに場合によってはnullが入ってしまうこともある。。 >>644
それは実行時の動的なnullですよね。
私が質問しているのは、null不許容型(言い換えれば静的なnullに関して)の必要性についてです。 ていうか日本語の文章おかしいし、確実に酔っ払いかただのキチガイじゃん おおかた大学のレポートなり試験なりでその質問をされて回答を探しにきたんだろ
ネットで煽りっぽく聞けばムキになった人が答えてくれるからね、君は賢いね、偉い偉い 高圧的に質問すれば、逆に皆反応してくれる良い例だね >>624
コンパイルする言語なのかインタープリタなのかという問題ではなくて、そういう仕様の言語というだけのこと。
というのはコンパイルしようがしまいが同じような言語は作れるから。 >>625
それによるバグをコンパイル時にエラーを出すことによって防げる。 今ちょっと前にAmazon見たらこれのKindole版の方だけ1361円だった。55%offかな。だいたい半額ぐらい。
短期間のセール価格なのかも知れない。
Androidアプリ開発のためのKotlin実践プログラミング 現場で求められる設計・実装のノウハウ
http://amzn.asia/iM5AGQY
紙の本はもう持ってるのにうっかり押しちゃうところだったw >>655
宣伝にはなっちゃうが他に知らせる方法ないよな。 >>648
だろうな
煽り質問は無視しとけば良い
世の中nullっとしてないと入るものも入らないんだよ null安全に文句つけるひとほどnull安全を大袈裟に捉えてる現象 本人あっさり逃げたな
マジで>>648が図星だったのかw とするともう大学で教えてる所があるということになるな null安全な言語はもうずっと前からあるから、それに触れる授業くらいはいくらでもあるでしょ >>657
【審議中】
. ∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u’. `u-u’ KotlinのターゲットJVMは、Java8の次はOracleJDK 11になるんだろうか、OpenJDK 11になるんだろうか。 絶対に必要なのはJVMでJDKは要らなくする方向になるんだろな nativeはやく整備しよ?
jetbrainとgoogle様ならわけないっしょ? nativeっておもちゃとしては楽しいだろうけど、現実的にそこまでニーズあるかね 明日JBの中の人が来日してkotlinイベントあるね
何か面白い話聞けるかな >>671
まずはおもちゃとして使って楽しんで、それから何かに使えないか考えれば良いのではないかな。
その内なにか丁度良い用途が見つかると思うよ。 趣味で何か作るなら是非使いたいね。
ビジネスプロダクトを作るならまたちょっと話が変わるけど。 クロスプラットフォームって、出始めの頃のhtmlベースのそび糞達のせいで普及が5年は遅れてると思う。
いまだにあの頃のイメージは抜けきれてない Kotlinを選ぶ時点で、既に自分の得意な特定の言語に固執する低レベルな段階を卒業してる人が多いだろうから
無理にKotlin使うよりプラットフォームに合わせた適切な言語を使うべきと考える人が多数派だろうね うちもいくつかアプリ作ってるけど、結局それぞれのネイティブで並行開発が1番間違いないって感じになってるな。
Xamarin使ってるのもあるけど、やっぱり色々辛い。RNはもっとアレだったからプロダクトに使う前にやめた。 そうそう
クロスPFなんてもうunityくらいしか使われていない >>678
Unityって触ったことないけど、ゲーム以外にも使えんの? 単純にプラットフォームのバージョンアップに加えて、Xamarinの更新や仕様変更にもついていかなくちゃいけないのが割と大きいんだよね。
レイヤーが1枚増えるぶんこちらの意思とは無関係にメンテしなくちゃいけないものが増える。 ネイティブでクロスコンパイルだとgoがいい感じなんだがいかんせん言語仕様がアレじゃん?
rustもつらみが深いし。
kotlinがそこ狙ってくれないかなー Googleがgo諦めてKotlin推しになったんだと思ってるんだが Google的にはTypeScriptとPWAでしょ GoはGoogleAppEngineとセットで推されてる感じ
Dartはモバイルアプリに使えるようになったけど、PWAにも対応されるのかな Google A 「KotlinはAndroid開発の第一級言語」
Google B 「Dartならクロスプラットフォーム開発出来るよ」
Google C 「社内ではTypeScriptが標準開発言語ですけどね」
Google D 「Goはさらに進化する」 そういうカオスなのがGoogleっぽくて嫌いじゃない
Googleはインド系
Appleは中国系 Google的にはWebAssemblyはどの言語なんだろ
Kotlin/Nativeを推してくれたりしないものか GoogleはSEO最強だからどんなものでもそれなりに凄いもののように見えるけど、
実際にはGoogle自身も全く本気でやってないお遊びレベルのゴミが多いでしょ
Googleって社内的には非常に一貫性の高い独自のプラットフォームがあって、世間のOSSベースな開発とはかけ離れた世界になってるらしいし googleのソースリポジトリへのコミット要件が割と厳し目なのは有名かな。
その割にgithubにあげてるのはそもそもまともに動かないものもたまにある。 この前のHadi Haririのイベント行った奴いないの? すみません、どちらに質問させて頂けるのか分からなくてこちらで教えていただければと考えてます。よろしくお願いします。 1 fun func(x:int,y:(Int)->Int)=L(x)
2 func(1,{it*5})
1行目のL(x)は何を意味しているのでしょうか?
また、var y:(Int)->Int={x:Int->x*2}をfunc関数に代入するために
1行目にy:(Int)->Intを引数にして
2行目で、{x:Int->x*2}を実行しているという理解でいいのでしょうか? >>681
Unityの「だってお前らこれではゲームしか作らんだろ」という割り切りっぷりは清々しい
ゲーム的文法で作る以外のルートがねえw >>697
1行目はLという名前の関数にxを渡してるだけ
fun func(x:int, y:(Int)->Int) {
return L(x)
}
の省略表記
ただ、引数のyが無視されているので
L(x) じゃなくて y(x) の間違いなんじゃねって気がする
2行目は代入云々はその理解で合ってるけど
「実行している」のではなく「定義して渡している」
実際そのコードではyが呼ばれてないのでその掛け算は実行されない なんで、宣言のとき型と変数名逆にしたんだろうなあ、苛つくわあ >>700
省略したいときウルトラ面倒になるのでやりたくなかったのだろう >>700
型が省略されてるものとされないものが混在したら可読性ウンコになるだろ 以前はPASCAL, ML, Haskell、最近なら Scala, Go もこういう形で、
「型 変数」っていう順序のCスタイルの方が本来異色なんだけど。 >>703
val a=0
int b=1
みたいな感じじゃだめだったのか気になる val name : String = " 名前"
" String "に代入してる感覚があるから、わかりにくのは事実だわなw >>706
これよこれ
Aをhogeという型で代入
hogeという型のAに代入
好みかな… >>705
それだと
val int a = 0
val b = 1
になるやん 文芸的プログラミングというやつで、
val name: String
はname of Stringと見えるから英語の順序的にはこのほうが自然 てゆーか>>702の例の時点でさくっと英語理屈を出してあげたほうが混乱がなかったと思う
じゃあなんでC族がそうなってないかって?
Cだからそんな面倒なことしねーんだよお前側が機械に合わせろw 日本語話者の一般的な認知様式は
鳥の模型>模型の鳥
名前を表す文字列>文字列で表された名前
だし、日本語でも 変数名:型 の方が言語的には自然では 言葉的にはそうかもしれないが
抽象度の順じゃないつうのがねー
これがモヤっとする原因
哺乳類>人間>山田 >>712
それも大抵の日本人は
nは数字の42
sは文字列の"42"
と表現すると思うよ 単純に慣れだと思うんだけどなぁ
コード読むときに
>>712
>>714
みたいな考えいちいち経由しないでしょ kotlinの基本に慣れる為に
val name : String = " 名前"
"定数"の"name"には"String型"の"値"を入れる
と言う解釈がすんなり行けるかな val name: String = "..."
"name" is a string: "John Smith"
「名前」は文字列、"山田花子"
打ってる時はだいたいこういう感じの思考の流れがある >>717
define a variable "name" as a string and assign a value "名前" to it って読むんだよそれ 昔々PascalというかDelphiをよく使っていたので変数名、形の順でも違和感なし。
Oracle の PL/SQL も確かそうだったな。
Cも昔からよく使ってるけどね。Javaは趣味で使う程度かな。 そういやKotlinは val a, b, c : Int みたいに書いてまとめて宣言できないんだっけ?できた? >>725
エラー出ないから言語としては良いのでは?
関係ないが>>722で書いたやつは試したらダメだった。 >>725
IntelliJのCode Style設定ではどちらも選べるようになってるから、どちらでもいいんでない >>726,727
そーなのか
なんとなく型はスペース無しで継承はスペース有りかと
ありがとりん そうそう型と継承が同じ記法だからごちゃごちゃするよな
どうせならすべて動的型付けにすればよかったのに 動的型付けだと、存在意義全否定だろ。
Groovyでも使っとけ。 >>699
お礼が遅れてすみません。
仰る通り、記載ミスで、y(x)です。
ご解説ありがとうございます。
すっきりしました。ありがとうございます。 慣れたら型が後の方が可読性高く感じる
それと構文解析しやすくなるのもあるんじゃね
Kotlinでの
(T1,T2)->R
はJavaでは
BiFunction<T1,T2,R>
型が先だと関数型(function type)が他の構文と衝突しないよう識別子やジェネリクス型を置くことになる 関数の返値の変数の型も指定できるから、そっちのほうはわかりやすいんじゃないかな
fun hoge(): String = "ぬるぽ"
関数型プログラミングだと、そういう形式のほうがわかりやすいんじゃないかと思う
val hoge: () -> String = fun(): String = "ぬるぽ" >>738
人間歳をとると新しいものに慣れるのに時間がかかるようになる
そしてこのスレはおっさんのすくつだ このスレの人たち、今だにガラケー使ってそうだな
いつまで慣れの問題でギャーギャー言ってんだよ >>739
「い」の入力失敗率はあじょう。
人間工学的におかしあ。
あちばん遠あからな。 >>741
幸か不幸かどこぞの板と違って末尾で判断できない kotlinのコロン( : )ってどんな働き・役割なのですか? もう一つ質問させてください
1. class chiba{ }
2. class chiba(){ ]
3. class chiba(city:String="--"){ }
1はコンストラクタは持たない
2は自動でパラメータのないコンストラクタが生成される
3は( )内でパラメータを初期化し{ }がコンストラクタになる
という理解でいいのでしょうか? >>744
単独では何の働きも役割もない
ただの区切り文字 >>745
以下4行は同一、下に行くほど省略表記なだけ
コンストラクタは自動的に作られる
class chiba constructor() { }
class chiba() { }
class chiba { }
class chiba
コンストラクタ(プライマリコンストラクタ)の中身は
初期化ブロック( init{...} )とインスタンス変数の初期化
具体的にコードで
https://ideone.com/KpwsQl
リファレンス
https://kotlinlang.org/docs/reference/classes.html ObservableFieldの説明を見ていたら、
https://developer.android.com/reference/android/databinding/ObservableField
public final ObservableField<String> first = new ObservableField<String>();
public final ObservableField<String> last = new ObservableField<String>();
public final ObservableField<String> display = new ObservableField<String>(first, last) {
@Override
public String get() {
return context.getResources().getString(R.string.name, first.get, last.get());
}
};
既存のObservableFieldを組み合わせて新しいObservableFieldを作るようなコードが載っているので、
そのままコピペして試してみたんですが、コンパイルが通らないんですがどうしたらいいですか >>748
コンパイルエラーのエラーメッセージを読む Kotlinに変換しても同じだった
エラーメッセージは以下だが、何を治したらいいのか
Cannot resolve constructor 'ObservableField(...)' >>751
だからKotlinで書けよ
自動変換は完璧じゃない 基礎からやっていくか、状況をちゃんと説明出来るようになるか 初心者でせっかくだらjavaよりも新しいkotlinでやろうと勉強中なんだけど、結局javaも知らんといかんのね… 「こんぱいるとおりません」は実際なんも説明してねーからな
で、「ほんとうに」全部自分でゼロから作るならJavaの知識は不要なのだけど
実際はJavaの内部ライブラリやJava製の外部ライブラリを利用するorさせられることが多いので
Javaは少なくとも読めて呼び出し法くらいは知っておかないと現状余裕で詰まる 普通に、コンストラクタの引数がちがうか、importしてないか、importするための設定をbuild.gradleに書いてないかだろ ああそのレベルならimportしてないが有力だな、確かにw importしてないならその前でコケるだろjk
sdkのバージョン違いじゃないの? build.gradleのandroid {} のなかに dataBinding { enable = true } 書いて、ObservableField のとこで Alt + Enter すれば、必要なimport が追加されたよ return context.getResources().getString(R.string.name, first.get, last.get();
ここの行のfirst.getもfirst.get()のはずだし、公式のサンプルコードがおかしいんじゃねえの kotlinはネット投稿越しの説明デバッグが面倒くさい… >>722に書いたやつはできないがこういうのはできるのな。
val (a, b, c, d, e) = listOf(1, 2, 3, 4, 5)
ただし5つまで。理由は component1() 〜 component5() を使うため。 >>765
kotlin はテキストのコピペで説明できるから簡単じゃね?
VS使ってるとスクリーンショット使わないと説明できないこと多くて大変 >>769
>VS使ってるとスクリーンショット使わないと説明できないこと多くて大変
たとえば? それもまたスクリーンショットを使わないと説明できないのです。 JVM系でのことりんのポジションって.Net系だと何になるの? すみません。ラムダ式について質問させてください。
純粋にkotlinじゃなくてすみません。
import kotlin.concurrent.*
fun main(args:Array<String>){
var a1=Pn("A")
var a2=Pn("B")
var a3=Pn("C")
thread{a1.en()}
thread{a2.en()}
thread{a3.en()}
}
class Pn(nm:String){
fun en(){
for(i in 1..5){
println("${nm}:${i}")
}
}
}
thread{a1.en()}の波括弧内はラムダ式ということなのですが、
もともとの関数の記述って、どんな記述になりますか?
a1:Pn->a1.eat()
とかですか? >>775
いや、そのラムダは引数に何も受け取ってないよ
クロージャになってて外側のa1とかの変数をキャプチャしてるだけ
JavaScriptとかの書き方で言えば
() => { a1.en() }
みたいな感じ 【審議中】
∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u’. `u-u’ >>775
fun lambda1() {
return a1.en()
}
thread( lambda1 ) コチン星は他に転用できないでしょ
Javaは何にでも使える
コチン星がそうなったら移住してやんよ 現実には逆だね
Kotlin使ってるような奴はJavaはもちろん他にも複数の言語使える 今kotlin使ってるやつはJavaとSwiftは書けそうだよな
あと聞くところによるとずっとRuby使ってたweb系の人たちの間でkotlinの人気があるらしい KotlinとSwiftは似ているから
iOSとAndroidでお互いのコードを参考にしやすいという点でも
Kotlinを使ったほうが良いよね >>777
>>780
ありがとうございました!
納得できました。またよろしくお願いします!感謝です >>785
うちはまさにそれでやってる。
細かい違いはあれど、両者で大体同じ感じに作れるからだいぶ生産性が上がる。 「あれをああいうふうにつくりたい」で片方が概念から違うコード塊だとめげるものね
せめて見る方向は一緒でないと困る Kotlin, Swift, TypeScript, C#あたりはいいかげん合体して一つになれよとは思う
似たような言語増えすぎ アーキテクチャもMVVMで統一しておくとさらにいいね >>784
ruby の特徴が groovy 経由で kotlin にとりこまれてるからねぇ まあHello Worldレベルならどれも大差ないよね >>788
一度作って終わりなら何でもいいけど、機能追加やらメンテやら考えたら極力設計レベルで近づけておきたいからね。
俺は経験ないけどObjectiveCとJAVAでこれやってた人たちほんとすごい。 Ruby由来の特徴って?
Pythonから取ってきたようなのはちらほらあるけど。 >>795
なんでもかんでもそれで実装しようとして一応作り上げ公開はするもののメンテできず放置するムラ気の情熱 kotlin配列めんどくさすぎwwwwワロタwwwww Kotolinて変数にプリミティブ型が無いけど、
画像処理とか大量にデータ処理すると、Javaより遅くならない? >>803
配列はDoubleArrayとかあるのね
bit演算はushrがあるから、Javaより見易そう(Javaの>>>と>>が見辛過ぎ)なのがいいな
そろそろ切り替える踏ん切りがつきそうになった、ありがとう >>802
プリミティブに出来るものは勝手にプリミティブになる
Kotlinの
fun f1(a:Int, b:Int?, c:List<Int>){}
はJavaでの
void f1(int a, Integer b, List<Integer> c){}
になる
https://kotlinlang.org/docs/reference/basic-types.html#representation プリミティブ型がなくてもうまいこと最適化されてだいたいは問題なくなるのではないかな? >>805-806
Javaのラッパー型とか考え無くていいのか
上手く出来ているんだな ByteArrayとかIntArrayはJavaの呪い data classのcopy()というメソッドは
新しいインスタンスを作るの?
それともインスタンス変数を書き換えるの? >>813
新しいインスタンスを作るよ
その際に新しいインスタンスに対してプロパティの差し替えを指定できる >>814
そうですかコピるんですね、インスタンスはイミューダブルだから
ところでデリゲートって何ですか? >>816
繊細とか壊れやすいとか、そういう意味だよ >>816
?
data class のインスタンスはイミュータブルに作ることもできるけど
別にイミュータブルな保証ないよ
普通に var プロパティ宣言できるし >>818
デリケートだろとつっこむところ?
>>816
クラスAを継承したクラスBを作るときに、継承を使う代わりに、クラスB内にクラスAのインスタンスを持たせて、
クラスBにおけるクラスAのAPI実装をそのインスタンスに丸投げすること。
インターフェースしか定義されておらず、インスタンスはヘルパークラスからしか作れないような場合に便利。 >>816
デリゲートは手動で書く手間を減らす機能だし
動作分かってないと初学者にとって混乱の元だから
「委譲書くの面倒」と思うようになるまで使わなくていい
仕様を知っておきたいならbyキーワードの具体例をググって読むべき よくあるのは破壊的操作だけ決まった手順でやりたい可変リスト
内部に可変リストを持たせてListインターフェースをこの可変リストに委譲しつつ、
破壊的操作をするメソッドは自分で実装する 2次元配列てどうやって作るの?
ググっても、一次元配列の説明しかないんだけど 「Kotlin 多次元配列」とかでググれば出てくるけど、もっと簡単に作れるようにしてほしいよな
Kotlinはコレクション周りが面倒 ありがとう!多次元配列ででました
リストの中のリストみたいな作り方しかできないんですね Java11で多次元配列が追加されるっぽいし
そのとき一緒にKotlinにも追加されるんじゃないかな >>828
でもそれは多次元配列ではないからな
全世界から激しくツッコミ入るからな
「ネストした配列」とかきちんと表現しよう 本当の多次元配列とネストした配列の違いってなんなの >>831
配列の配列: n個入る内箱をm個並べて入れた外箱、実際には内箱に入る数はそれぞれ違うこともある
二次元配列: 最初からn*mで仕切られた箱
得意なこと、苦手なことも、箱を入れた箱と最初から全部仕切られた箱の関係と似ている
Java自体が真性の多次元配列ないからKotlinにもないんじゃね
ScalaとかGroovyにも真性の多次元配列はないのだろう それって、メモリは所詮一次元だけど
n×mの連続領域確保して[][]でアクセスできるインターフェース提供できれば二次元配列って言えるってこと?
ポインタの配列にしなければいいってことかな?? 多次元配列みたいにアクセスできるクラス作って中で一次元配列を全容素数作ってアクセスする時に n * y + x のように計算してアクセスするの作れば、まあなんとなく気分を味わう事はできるな。
あとはうまいこと最適化されて効率よくなる事を祈るのみ。 うう。リロードしてなかったらなんとなく内容が被った。orz >>834
おおむねそういうこと
配列の配列は縦方向と横方向でアクセスのコストが違うとか
多次元配列は、行をまるごと取り出そうとすると新規に配列を作る必要があるとか、違いがいろいろある
Kotlinに真性の多次元配列はないけど、仮にあったらイテレーションする時も変わってくるはず。
for (item in twoDimesionalArray) { println(item) }
for (innerArray in arrayOfArray) {
for (item in innerArray) { println(item) }
} 普通のプログラミングよりPythonのnumpyとかMATLABとか科学技術計算やってた人はイメージしやすいかもね ほとんどの言語は、配列の配列(jaggy 配列)だろ
表で言えば、同じ行内の列データは連続しているけど、
各行のデータは連続していない
1行目の各列は連続しているけど、
1行目と2行目は、別の場所にある 計算コストを度外視すれば多次元配列でできることは大抵配列の配列で実現できるから、そこまで気にする必要はないんだけどね まあよっぽどカリッカリのパフォーマンスを求められるシビアな要件じゃない限りいらんわな
もしその差がそんなに重要ならとっくに色々な言語で実装されてる >>834が言ってる通りで
糖衣構文的なものがあるかどうか程度の差
パフォーマンスが必要な部分はハードウェアアクセラレーションのため
java.awt.imageみたいにAPI経由するからDSL表現力さえあれば後はライブラリの役割 配列は一次元、嫁は二次元だからそれぞれ1つずつ次元が上がって欲しい。 オンデマンドで呼び出せるんじゃね
呼び出し料金かかるけど Kotlinで書けるSPAフレームワークって無いの?
JSとかTS面倒なんだけど TSなら面倒というほど大した差はないだろ
むしろVSCodeで鬼のように補完が効く分、フロントでの生産性は圧倒的にTSのほうが上 補完に関してはKotlin+IntelliJIDEAのほうが上だろ
TSのフロントでの生産性が圧倒的なのには同意だが え?
VSCodeが糞かはともかくそれ以上の糞なんかJava系に限ってもeclipseとかNetBeansとかいくらでもあるだろ Netbeansはひどいよなあ
あれMPLABのベースに使われててクソイライラする
ファイルの管理周りがとくにひどい
microchipはatmel買収したんだからatmelスタジオに追加すればいいのに糞が >>856
このスレのお約束フレーズだからマジレスすんな そういやeclipseにもkotlinプラグインあるらしいけど、わざわざeclipse使ってる奴いるのだろうか >>859
他のプロジェクトも色々やっててそうしないと切り替えるのが面倒とか、あるいは会社でそれしか使っちゃ駄目って事になってるとか。 >>859
一度使おうとしたけど、インテリさん使ったらインテリすぎて戻れなくなった
ただ、インテリさんはWeb関連の便利機能が有料なんで、そこらへんは月食さんの方が良いな Androidで連続計測アプリを作るなら、
RxKotlinがいいの? >>859
1年以上前に使ってみたことがあるが、Javaのプロジェクトにまでエラーが頻発して使い物にならなかった。
なお、KotlinがAndroid公式に採用されて以降、この1年でほとんど開発は進んでいない模様。
釣った魚に餌はやらない、みたいな。 >>861
IDEAの年額って、どう考えても払うだけの価値はあるほどエクリプスンより生産性上がるだろ
少なくともツール自体を動かすために余計な苦労は要らなくなる 大量のプラグインのバージョン管理とか設定調整とかどう考えても時間の無駄だからなー 30日試用もあるけどひとまず1年分買って試すのも良いと思うな >>865
年間通したらそれだけで数万円分の工数はとられるよな Vimとかも自分で育てていく楽しさはあるんだけど、道具として割り切るなら箱出してほぼ何もせずとも全て揃ってるIDEAさんが最強なんだよなあ。
AndroidとiPhoneもそんなイメージだけど。 VSCodeはJava開発環境としてはMS自身によるプラグイン開発によって既に普通に使えるレベルに達してる
さすがにKotlinはJBとガチ喧嘩になるからMS自身は手を出さないだろうけど、
IntelliJが死んだらKotlinも当然自動的に消えるわけで、MSを調子に乗らせないためにもJBにはなんとか頑張ってほしい マジレスすると、
MS嫌いだけどVScodeは使いやすいよね
昔はEmacsとか使ってたけど、VScode使い始めて戻れなくなった Emacsはマジで瀕死みたいだな。Atomに食われてVSCodeでとどめを刺された。 むかしむかし使い古しpcにDebianいれてゴニョゴニョ設定してxemacsを起動できたときめっちゃ感動した ま、vimは軽いし何も考えなくて良いのがいいよな。
ただしサンプルプログラムのようなとても短くて小規模なプログラム作る時なw vimは単体で使うだけでなく、
プラグインという形で各種エディタ, IDEに組み込まれている
もはやコードを書くという行為はvimを使うことと同等
vimも使いこなせないようなやつはエンジニア向いてないね VSCodeはVimプラグインもクソ優秀なんだよな
IDEとしての機能性とVimらしい快適性をこれほど高い次元で両立できるエディタは10年煮詰めたVimを除けば他にない VSCodeのプラグインが優秀過ぎて他に移れない
シーケンス図とか描くのもすげー便利だし IntelliJで開いたときに、赤も黄色も出ないコードを書くものだけが、Vimを使いなさい。 シーケンス図なんて作らせるようなところでもkotlinだのvscodeだの使わせてくれるものなのか intellijよりvsのほうがコード補完優秀だよね
頻繁に使うものが上位に来るし
intellijだとcって打つとCamera()とか一度も使ってないものががいきなり候補に出るし intellij+補完で検索すると、わりと多機能で驚く VSの補完は機能とかそういう段階をとっくに卒業してる
ついに機械学習を使って文脈を理解する超補完を搭載するらしいな みんなインテリとVSCどう使い分けてんの?
Kotlinはインテリで、それ以外の言語はVSCって感じ? jsだけVSで他はインテリんだな
正直Rubyとかどちらで書いても大差ないから、わざわざ乗り換えてない cだけでCameraとかでてこないぞ?
Camまで打つとCameraクラスが候補の二番目に出てくるが
小文字のcじゃ下まで見てもCameraが候補に無い >>881
「彼らはそれを聞くと、年長者たちから始めて、ひとりひとり出て行き、
そしてvimを使う者は誰もいなくなった。」 >>888
何が候補にでるかマチマチ
Colorが出てきたりもするし
とにかく直前に入力したやつが出てこなくてイライラするわ >>893
日本語入力じゃないんだから直前に入力したのに優先的に出てこられても困る
Android Studio kotlin は文法的に入力可能なものがだいたい順番変わらず出てくるんで、候補がまちまちってことは無いと思うぞ?
直前に入力したやつが文法的に正しくて、その名前を文法的に正しい位置に再度挿入しようとするなら、普通2〜3文字入力すれば出てこない? あと俺の環境じゃ、小文字 c で、Camera や Color は絶対でてこない感じ まあCameraが出るかはライブラリによるんだけど
頼むからまず変数名優先してほしい
すぐ上にval cellがあるのに…
使ったこともないメソッドやクラスが第一候補になるんだよ だから普通のAndroidのプロジェクトだとCameraはimportすれば使える状態なんだってば
だからCameまで入力すれば候補の一番に出てくる
でも小文字cだと候補全部見ても出てこない
大文字小文字区別するから
あと、関数内のローカル変数は候補の一番上にでてくるよ?
val cell がある関数内なら、cell が候補の最初にでてくる
アルファベット順みたいだから val ccc があればそっちが先になるけど いま気が付いたけど補完候補のウィンドウの右下のアイコンで順番変更できるね
Aとπを切り替えられる
Sort by relevance がπで、これはローカル変数が先に出てくる
Sort lexicographically がAで、種類に関係なくアルファベット順にソートされて出てくる >>898
お前神かよ
ご褒美にXamarinのライセンス買っていいぞ >>898
大文字小文字は設定で区別しないようにしてるよ IntelliJでUML書いたらKotlinのコード吐き出したり
逆にKotlinのコードからUML作ったり出来ないかな 売ってるソフトでJava用があるから何れはできるんだろうな。IntelliJ用のプラグインができるかどうかはわからないが。 UMLって久しぶりに聞いたな
まだ作ってるところあるのか いや普通に使うけど。
設計書に貼り付けたり他人への説明に利用したり。 UML自体は普通に有用だと思うけど
コードと同じくらいの粒度で使うのは無理があると思う
プログラマくらいにしか分からんような複雑なUMLが出てきたり
時間掛けた割にはしょぼいコードが生成されるだけ プログラマ以外に理解してもらうツールじゃなくね?
プログラマ以外に使ったらクラス図で「矢印の方向は逆だろ!常識で考えろ!」とか言われそう… 「UMLを理解してるプログラマ」と「UMLを理解してるプログラマ以外の人」とのコミュニケーションの為の共通言語 >>910
まあその程度だな
学術分野におけるドイツ語くらいの需要 >>914
ああしっくりきた。
新卒で入ったSIerではたまに使ったけど、転職してからは見たことないわ。
基本的に大規模開発のドキュメントくらいでしか使わんかもね。 自分がお堅い受託やってたの5年くらい前だけど、その頃にはUMLってすでにあまり聞かなくなってたな。
上に挙げられてるような用途では有用なんだけど、だいたいあれを使って説明したい相手がUMLを知らないから作る意味がなかった。
あとドキュメントのメンテで死ぬ。 UMLに限らないけど、あまり実装の中身に踏み込んだドキュメントは作るべきじゃない
何もいいことはないし、第1大抵は誰も見ない クラス図、コミュニケーション図、シーケンス図あたりは日常的に使うわ。
ソフトウェアの静的&動的構造を図示したかったらUML以外を選ぶ理由がないもの。
機械生成や詳細設計まで踏み込んで使用するのはまったくおすすめしないね。要約してppt一枚に収まり切るくらいが丁度いい。
あくまで人に見せる&説明する用。 お遊びならppt一枚でいいかもしれないけど
仕事では何百、何千ページの要件定義、基本設計、詳細設計を書かなければならないんだぜ
そのページ数に比例する枚数のUML作図コストはあまりにも高すぎる 古い体質の会社で働いてるんだな
秀丸エディタとか使ってそうw プログラミングに図は不要、グローバル変数ぐらいevil ×仕事では
○自分の会社では
この世の99%のプロジェクトでは数千ページに及ぶドキュメントとか不要 小規模のショボいシステムしか知らないのだろうけど
そういう人たちは気楽でいいよねぇ
典型的なカジュアルプログラマって感じ
遊び半分って表現がピタリ 日本でドキュメントが多くなるのは承認したいからだろ そりゃ大変だよ
でもそれが無かったら大変どころか完成すらできない
行き当たりばったりのライブコーディングで完成まで持っていけるオモチャじゃないんだからさ UML要るか要らんかで揉めてるけど、結局のところ作ってるソフトの規模の違いじゃね?
趣味とか社内で使うもんとかなら要らんだろうし、そこそこの規模になったら必要だろうし むかし現場にいたころは何か問題あったときのためにいちいちドキュメント作ってたな
テスト仕様書なんてものもあって、誰でもわかるようにテストケースごと図示して承認もらってた
そして心が病んだ >>926
全部網羅しようとするから使わなくなるんだよ。使いどころが間違ってる。 小学生でも理解できるようにって言葉を使うやつは大抵悪だったな
むかしの話 Linuxのような大規模オープンソースプロジェクトでもgithubでソースコード共有だけで成長していけてる
ドキュメントやUML作成してから開発してるかと
ソースコードの読めない無能が仕事してる振りするためにやってるだけで無くなっても誰も困らない うちはドキュメントは最低限のものしか作らんな
なんでもかんでもドキュメント化してしまうと、それをメンテするだけの無駄すぎる人間が必要になってしまうから
あんなのは何をするにもスタンプラリーの必要な多重下請け開発のためのものだ 今なら、Markdown 使ってドキュメント書くみたいに、PlantUML 使って UML を書く
IntelljIDEA 上で書くためのこんなツールもある
https://qiita.com/ot-aoyagi/items/d2bfbff219c592822d53 >>938
Linuxカーネルリポジトリの Documentation ディレクトリ程度のメモは残してほしいものだよ まあ、納品するためにはそれなりのドキュメントは必要だけどな
若いころはその辺の扱いが不器用だったかもな このスレがたまに伸びてる時はkotlinとまったく関係ない話題の時だけだな 仕様書はあった方がいいけど設計書は無い方がいいな
大抵メンテされなくて実装と違ってくるもんだろ アジャイルで開発してるのになぜかWFの納品時と同じドキュメントをリリースごとに作成することになって担当者をうつ退職に追い込んだプロジェクトは見たことある >>945
仕様書とテストコードがあればいいと思うわ >>947
同感。設計書なんてどうせメンテしなくなる。仕様とテストコードがあれば十分 >>949
十分具体的と思うけど、どんな回答期待してるん? >>950
いやいや全く具体的じゃねーだろwww
なんのために設計書に貼り付けるの?他人に何をどう説明するために使うの? >>930
この世の99%のプロジェクトはその"小規模のショボいシステム"とやらなんで
というよりもひとつひとつが小規模になるように問題を分割するのがまともな開発だからなー
ぶくぶくに膨れ上がったプロジェクトは大変そうですね >>951
具体的な質問ありがとう。
あとは>>913よろしく 詳細設計なんて必要になるのはプログラマーですらないコーダーだけだからな コーディング作業自体が設計
コンパイルが仕様
以上 管理しかしないでコードの読み書きしないやつほどの糞はない 詳細なUMLを書くことなんてもうないが
シーケンス図いらないと言ってるのは自己完結してるショボいコードしか書いたことない奴だろ UML書かないと趣味レベルとか、どんだけ狭い世界で仕事してたらそういう発想になるのよ
自分の人生のために転職を勧める まあサーバとクライアントと別の人が実装するような場合はシーケンス図で仕様検討したりするかな マ板と真逆の反応でわろた
あっちはドカタしかいないから設計書なんて要らんと言ったらリンチされる 実装と完全に同期するように設計書をメンテできているものだけがそのリンチに参加しなさい。 プログラムがドキュメントのようになっているのが良い、なんて言われてた時代もあったな。
まあしかし設計書読ませてそのまんま動くようなのはその内AIできたりして、そこで大半のプログラマーは終了。
プログラミングは職業ではなくなり趣味と老人のボケ防止のための頭の体操になる。 それよく聞くけど、そんなレベルのAIがもし出来たらプログラマに限らず大抵のオフィスワーカーは要らなくなるわ UMLの話題でこんなにスレが荒れるとは思わなんだ
それだけことりんが大規模開発から趣味レベルまで幅広く使われてるってことかもしれんが 単に他に話題がないところにみんなが一見識持ってる話題が投下されただけな気がする 次はエディタやIDEで大論争になってあっという間に3スレぐらい消費か なお、俺は規制で次スレ立てられないので誰か作ってくれ。よろしく。 ということでおまえらはやっぱりIntelliJなの?っと 今のゲームて説明書薄いよね
昔のゲームは分厚くて読んでてワクワクしたもんだけど
これは流れとは関係なかったか >>972
KotlinをIntelliJ以外で書く意味がなさすぎる >>976
intelijって無料で使えるの?
pycharmみたいに >>978
community editionあるんですね!
サンクス >>984
それはIntelliJに数えていんてりじぇー デフォルトでvarに下線がつくのは、不快な見た目にすることでなるべく使わないようにするためだってJBの中の人が言ってた fun main(args:Arrey<Strings>){
println("うめる")
} class Xamarin {
fun toString(): String = "糞"
} package Kotlin 3
import android.content.Intent;
import android.net,Uri
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class UMeinActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var レスCount : Int =>>1000
if(1000 == レスCount ){
val url: String = "http://mevius.5ch.net/test/read.cgi/tech/1531818027/"
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(url)
startActivity(intent)
}
} このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 121日 20時間 52分 13秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。