エンジニア3年目のブログ

Javaエンジニア3年目のブログです。

Kotlinを使ってみる

どうもShZgZです。

 

非常に暑く、我が家付近では雨が続いております。

皆さんはいかがお過ごしでしょうか?

 

私は普段Javaエンジニアとして働いていますが、今回はちょっと遅くなりましたが、Kotlinを触ってみようかと思ってます。

 

発表されたのは2011年7月20日とのことですが、その頃は全然知りませんでした。

(そもそもその頃はエンジニアですらありませんでした。)

とはいえ、一昨年くらいからちょいちょい話は聞いていて、今回GoogleさんがkotlinをAndroidの公式言語に追加するということがありました。

 

そのため、ちょっくら触ってみようというわけです。

仕事ではAndroidには全く関わりがありませんが、どうにもJavaとの互換性が高く、Javaよりもコード量が少なくて済むとかなんとか。期待に胸が膨らみます。

 

それではまずはやはりコンパイラを入れるところからやっていきます。

因みにOSはMac OS Xです。

 

インストールですが、MacでHomebrewが入ってれば以下のコマンドで一発です。Homebrew — macOS 用パッケージマネージャー

(因みにですが、ココでブラウザでも実行できます。)

brew install kotlin

 

簡単に文法とか確認するだけならREPLが一番 ♪

ただJava(Version 1.8)にはありません。1.9で追加されるとのことですがまだありません。

しかしKotlinにはREPLがあるということなので以下のコマンドよりREPLを実行

$ kotlinc-jvm

Welcome to Kotlin version 1.0.1 (JRE 1.8.0_60-b27)

Type :help for help, :quit for quit

>>>

それではいつものやつやってみます。

Javaならこんなんですね。

System.out.println("こんにちわ。Javaの世界 !!");

 Kotlinではこんな感じらしいです。

println("こんにちわ。Kotlinの世界!!") 

 お分かりでしょうか?

そうです!!

とうとう標準出力メソッド(println)がデフォルトで使えるようになりました。

もう一つ比較で、

Javaならこんな感じ(注:ソースはイメージです。)

>>> static void test(String str){

... System.out.println("Hello, " + str + "!!");

... }

>>> test("TEST");

 Hello, TEST!!

Kotlinだとこんなのになります。

>>> fun test(str : String){

... println("Hello, $str!!")

... }

>>> test("TEST")

Hello, TEST!!

ここまでのぱっと見の相違点として

・ まずメソッド定義がfunになった。楽しそう!!

・返り値の型がいらんくなった。あえて書くならvoidじゃなくてUnitにするらしい、↓みたいに。

fun test(str : String): Unit {

 ・printlnの中で引数を引用する際に"$引数名"でよくなった。JavaでもString.formatとか使えばいけたけど、これがデフォルトのprintなのは結構助かりそう

・そして、セミコロンがいらん。セミコロンがいらん。

 

とりあえず今回はこれくらいで。

 

 今回は簡単な出力しか試さなかったけど、他の方々が書いてるコードを見るとJavaで書くよりも結構短くなってる印象です。

Javaとの完全互換(Javaで作ったクラスをKotlinで呼べて、Kotlinで作ったクラスをJavaで呼べるとかとか)であることから平行した開発も出来る。Kotlinへの移行を考える際も最悪Javaに戻れるっていう安心感もある。

ただ、今日までエンジニアで出向いた現場でJavaのバージョンは大体1.7以下だった。(今の現場は1.8だけど、1.8で追加されたStreamとか使いまくるとあまり周りから良い顔はされない。まぁ悪い顔されるわけでも無い)

それから考えると、もうすぐJavaは1.9が出て(今のところ2017年9月まで延期っぽい)、Kotlinも盛り上がってきてるけど、SESで出向く先のちょっと大きめの会社の下請けでは採用されるのには結構時間が掛かりそう。

とりあえず個人的にはもうちょっと使ってってみようかと思います。

Rust1日目

どうもShZgZです。

 

普段の仕事ではまず使うことは無いんですが、

最近Rustが熱い

 

全く触ったことの無い言語で

(とは言っても私はJava以外は殆どまともに触ったこと無いんだけど)

とりあえずJava以外も触っていってみようということで触っていきます。

 

ちょっとWikiさんを参照したところ

  • 作った人・・・Graydon Hoare(グレイドン・ホアレさんって読むらしい、最初はホーア論理の人なのかと思ってしまった、恥ずかしい)
  • 特徴・・・安全性、メモリ管理、並列性

そもそも最初にRustに対して興味を持ったのはヴァルちゃんが使ってたからどっかの記事でRustは早い・安全・並行的な部分を押していたからです。

後は、そもそもRustはOCamlで書かれてたらしいんですが、数年前にML系の言語を使っていたためちょっとした懐かしさもあり、Rust使ってみようかなと。是枝くんも綺麗だって言ってたし。

 

とりあえずお勉強するにあたってテキスト的なものはあるかなと探したところバッチリ公式にThe Bookなるものがあると。

日本語版もあるのですが、ちょっと更新が遅いっぽいのと英語だけど結構読み易い感じがするので、英語版のほうを参考にしていきます。まぁこのドキュメント訳していくよって話では無いですが、軽い要約くらいな感じにはなっちゃうかもしれません。悪しからず。

 

全然言語の導入に行けませんでしたが、次回から入っていきます。でわ。

Hello, World

どうも始めましてShZgZと言います。

 

Javaエンジニア3年目になるということで、

そろそろエンジニアらしくはてブDebutしてみようかと思い、始めました。

 

はてブでできることを手探りしつつ書いていこうかと思っているので、

宜しくお願いします。