Help us understand the problem. What is going on with this article?

ことりんにミーハーだから便乗してみる。

More than 3 years have passed since last update.

:hatched_chick:ことりん

やるといいらしいので、やってみる。ミーハーだから。
学んだことをここに書いてみる。

:hatched_chick:自分

とりより頭が悪いエンジニア。
よく分からん奴が作文書いてるだけなので、ツッコミは歓迎ですが、決して参考にはしないでください\(^o^)/

:hatched_chick:Kotlinとはなんぞ。

とりの仲間かなんかかと思って生きてた。
ことりんはJVM言語とかいうらしい。
JVM言語ってなんだろう?

:hatched_chick:JVMってなんだっけ?

Javaの仮想マシン。
Javaのプログラムを動かすためにあるもの。

:point_up:参考になりました。
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb

:hatched_chick: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がなんかします。:frowning:
流れはわかったけどなんかがなんだろうって。

Java仮想マシン (JVM) のアーキテクチャ概要。ソースコードは一旦Javaバイトコードへとコンパイルされ、さらにインタプリタまたはJITコンパイラによりネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境 (JRE) を構成する。

:sweat_smile:説明見ても何がなんだかわからない。
アーキテクチャ?

アーキテクチャ #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

コンピューターを機能面から見たときの構成方式。記憶装置のアドレス方式,入出力装置の構成方式などをさす。一般に,同じアーキテクチャーのコンピューターには,ソフトウエアの互換性がある。

構成??:no_mouth:
この図の文章だとこういう仕組みになってます、ということかな?

:point_up:参考になりました。
【Java入門】JVMとは?わかりやすく解説!
https://www.sejuku.net/blog/19871

JVMがあればJavaプログラムを解釈し、対象のOSで実行可能な形式のコードに変換して動かすことができます。

昔教わったメモも引っ張り出したところ、
「例えばwindowsとかmacとかOSなどが違っても、どんな環境でも動かせるようにするためのもの」
「OSに指示している」
「基本はOSに直接指示は出せない。(例外はあるけど)」
とそういえば教わった。
.netとかも同じでOSが違っても動く、とか。
違うOSの環境下であっても動かせるようになるものということか。

:rolling_eyes:ここら辺はもうちょい詳しく知りたいところ。

しかし、Javaプログラムは前述したようにプログラムとOSの間にJVMを仲介させて動作します。
そのため、Javaのコンパイルは他のプログラミング言語と違い、JVMが理解できるJavaバイナリコードと呼ばれるマシン語に変換されます。
(Javaバイナリコードは、中間的なコードという意味で中間コードとも言います)

バイナリコードが0と1で表す2進数のコードのことか。

:hatched_chick:JVM言語って?

:point_up:参考になりました
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb

Kotlinで書かれたコードはJVM(Java Virtual Machine:Java仮想マシン)で動作するJavaバイトコード(おなじみのclassファイル)へコンパイルされます。
このようなプログラミング言語をJVM言語と呼ぶことがあります。

:eyes:JavaはJVM言語じゃないの?

:point_up:参考になりました。
Jvm言語とJava、切っても切れないその関係 https://www.slideshare.net/yyyank/jvmjava-69784006
「JVMの上で実行できるプログラム言語」
いつもJavaを書くときはJVMの上では書いてないのか?

:hatched_chick:それでことりんだと何がいいの?

:point_up:参考になりました。
【Kotlin】【Java】Kotlin Javaの比較メモ https://qiita.com/farman0629/items/f959a4ff791f26b33fc3
メリットとして両者はコードの書き方が違うみたいです。

:point_up:参考になりました
プログラマに優しい現実指向JVM言語 Kotlin入門:第1回 Kotlinを勧める理由 http://bit.ly/2j4PIQb

Java互換

Javaとも、相性がいい模様。互換のしやすさがあるみたい。

:hatched_chick:Kotlin以外のJVM言語はないの?

調べたら、あるらしい、あるらしい。

:hatched_chick:それでどうすればいいの?

:point_up:参考になりました。
はじめよう、Kotlin(導入編) https://qiita.com/SYABU555/items/25b1e81a2437d6a2559f

Androidstudioからプラグイン入れるようです。

スクリーンショット 2017-11-05 19.52.55.png
ちゃくちゃく。

スクリーンショット 2017-11-05 19.53.58.png
ざわっ
スクリーンショット 2017-11-05 20.03.10.png
拡張子がKotlinになったけど、これは・・・導入 できたのかな!?

berukokoko
あほの🐥エンジニア。SIerで、Androidアプリを勉強中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away