#ことりん
やるといいらしいので、やってみる。ミーハーだから。
学んだことをここに書いてみる。
#自分
とりより頭が悪いエンジニア。
よく分からん奴が作文書いてるだけなので、ツッコミは歓迎ですが、決して参考にはしないでください\(^o^)/
#Kotlinとはなんぞ。
とりの仲間かなんかかと思って生きてた。
ことりんはJVM言語とかいうらしい。
JVM言語ってなんだろう?
#JVMってなんだっけ?
Javaの仮想マシン。
Javaのプログラムを動かすためにあるもの。
参考になりました。
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb
#Java仮想マシンって何?
https://ja.wikipedia.org/wiki/Java%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3
大好きWikipediaさんの図だと
いつも人間が書いてる.javaにJavaのコード書きます。
↓
javacコマンド打ちます。
↓
.classになりました。
↓
JVMがなんかします。
流れはわかったけどなんかがなんだろうって。
Java仮想マシン (JVM) のアーキテクチャ概要。ソースコードは一旦Javaバイトコードへとコンパイルされ、さらにインタプリタまたはJITコンパイラによりネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境 (JRE) を構成する。
説明見ても何がなんだかわからない。
アーキテクチャ?
アーキテクチャ #weblio https://www.weblio.jp/content/%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3
コンピューターを機能面から見たときの構成方式。記憶装置のアドレス方式,入出力装置の構成方式などをさす。一般に,同じアーキテクチャーのコンピューターには,ソフトウエアの互換性がある。
構成??
この図の文章だとこういう仕組みになってます、ということかな?
参考になりました。
【Java入門】JVMとは?わかりやすく解説!
https://www.sejuku.net/blog/19871
JVMがあればJavaプログラムを解釈し、対象のOSで実行可能な形式のコードに変換して動かすことができます。
昔教わったメモも引っ張り出したところ、
「例えばwindowsとかmacとかOSなどが違っても、どんな環境でも動かせるようにするためのもの」
「OSに指示している」
「基本はOSに直接指示は出せない。(例外はあるけど)」
とそういえば教わった。
.netとかも同じでOSが違っても動く、とか。
違うOSの環境下であっても動かせるようになるものということか。
ここら辺はもうちょい詳しく知りたいところ。
しかし、Javaプログラムは前述したようにプログラムとOSの間にJVMを仲介させて動作します。
そのため、Javaのコンパイルは他のプログラミング言語と違い、JVMが理解できるJavaバイナリコードと呼ばれるマシン語に変換されます。
(Javaバイナリコードは、中間的なコードという意味で中間コードとも言います)
バイナリコードが0と1で表す2進数のコードのことか。
#JVM言語って?
参考になりました
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb
Kotlinで書かれたコードはJVM(Java Virtual Machine:Java仮想マシン)で動作するJavaバイトコード(おなじみのclassファイル)へコンパイルされます。
このようなプログラミング言語をJVM言語と呼ぶことがあります。
JavaはJVM言語じゃないの?
参考になりました。
Jvm言語とJava、切っても切れないその関係 https://www.slideshare.net/yyyank/jvmjava-69784006
「JVMの上で実行できるプログラム言語」
いつもJavaを書くときはJVMの上では書いてないのか?
#それでことりんだと何がいいの?
参考になりました。
【Kotlin】【Java】Kotlin Javaの比較メモ https://qiita.com/farman0629/items/f959a4ff791f26b33fc3
メリットとして両者はコードの書き方が違うみたいです。
参考になりました
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb
Java互換
Javaとも、相性がいい模様。互換のしやすさがあるみたい。
#Kotlin以外のJVM言語はないの?
調べたら、あるらしい、あるらしい。
#それでどうすればいいの?
参考になりました。
はじめよう、Kotlin(導入編) https://qiita.com/SYABU555/items/25b1e81a2437d6a2559f
Androidstudioからプラグイン入れるようです。