Kotlinって簡単にいうと、どんな言語なの?
アプリ開発してみたいからKotlinを勉強してみたい!
おすすめの方法は?
結局KotlinとJavaどっちを勉強すればいいの?
こんにちは。文系出身でプログラマになり早8年、最近はライターとしても活動中の佐藤です。
皆さんはKotlinという言語をご存知ですか? かなり最近に開発された言語ですが、アプリ開発という点でご存知の方も多いかもしれません。
ですが、初学者向けの情報はまだまだ少ないですよね。
Kotlinも、今非常に注目されているの新言語のひとつです。この記事では、Kotlinを知らない人も良く分かるよう「Kotlinとは何か?」を基礎の基礎から解説していきます。
また、他の言語との比較や、おすすめの学習方法なども合わせて紹介していきますので、ちょっとKotlinに興味がある方も是非ご覧になってください。
それではさっそく、Kotlinがどんな言語なのか見ていきましょう!
Kotlinとは?
この章ではKotlinはどんな特徴を持った言語なのかを紹介していきます。
Javaをもっと簡潔にしたオブジェクト指向言語
Kotlin(コトリン)は2011年ごろに発表されたプログラミング言語です。JVM上で動作する静的型付けのオブジェクト指向で、静的なnull安全が保証されているのが特徴としてよくあげられます。
また、Scalaなどの現代的な言語からも影響も受けており、Javaに比べてコードの記述量が少なく済むといわれています。Javaとの相互利用も出来るように配慮されている最新のプログラミング言語なんです。
2017年にAndroid公式開発言語に追加された事で、知名度がぐんと上がりました。
専門用語が多くて分からない……と思った方も安心してください。次の項目で「超」簡単に特徴をまとめます!
超簡単に一言で言うと
わかりやすい言葉でKotlinの特徴をまとめていきます。
Javaと同じオブジェクト指向言語!
オブジェクト指向はクラスなどの部品を作って、それを組み合わせて作るプログラミングです。すでに、プログラミングを勉強したことがある方には馴染み深いかもしれませんね。
オブジェクト指向について詳しく知りたいと思った方は、ぜひ次の記事をご覧ください。
Javaと相互利用できる!
JavaのコードをKotlinで呼び出したり、その逆もできます。すでにJavaで作られている資産を活用することができちゃうんです。
引っ掛かりやすいエラーを未然に防いでくれる!
KotlinはNullPointerExceptionを防いでくれる仕組みになっています。NullPointerExceptionってなんだろう? と思った方は、この記事をご覧ください。
Kotlinの特徴を簡単につかむことが出来たでしょうか? 次の章ではKotlinと他の言語を比較していきます。
Kotlinと他の言語を比較
この章ではKotlinと、Kotlinが影響を受けた言語について比較していきます。結局どっちを学習すればいいのか? と迷っている方は是非ご覧になってください。
Kotlin vs Java
KotlinとJavaは相互利用もできるので、どちらから学習しようか迷っている方も多いでしょう。先程の特徴紹介でもありましたが、Kotlinは
- Javaよりもコードが短く簡潔
- Javaで陥りがちなNullPointerExceptionを防ぐ仕組みがある
- Javaのコードを呼び出せる(逆も可能)
とJavaをより進化させた最新の言語となっています。
ですが、困ったときに確認できる情報や入門書籍などはJavaに比べればまだまだ少ないです。求人の数などもまだまだJavaには劣ります。
あなたがアプリ開発以外を行っていきたいと思うならまずはJavaを学習するほうが良いかもしれません。サーバーサイドエンジニアとしてはまだまだJavaプログラマが求められています。
結論をまとめましょう。
- Androidアプリ開発を目標にするならKotlin
- サーバーサイドエンジニアを目標とするならJava
もちろんどちらを先に学習しても、2つの言語は相互利用できます。似ている部分も多いため無駄にはなりません。自分の目標に合わせて、学習する言語を選択することをお勧めします。
次は、同じくJavaの影響を受けて生まれたScalaとの比較です。
Kotlin vs Scala
KotlinとScalaはJavaの影響を受けて生まれた言語ですが、基本の特徴がちょっとだけ異なります。
- Kotlinは「オブジェクト指向」
- Scalaは「オブジェクト指向+関数型プログラミング」
関数型プログラミングというのは、関数を組み上げてプログラミングする言語のことです。代表的な関数型言語としては「Haskell」などがあります。
どちらもJavaより短く簡潔なコードを記述でき、JVM上で動作します。
Scalaについてもっと詳しく知りたい方は、紹介している記事がありますので是非ご覧ください。
ですが、Javaとの相互利用が保証されているのはKotlinだけです。もしJavaで作られたものとの相互利用を考えているならKotlinを選ぶほうが安全でしょう。ScalaはJavaとの相互利用を一番に考えて作られたものではありません。
KotlinはJavaをより進化させ良いところを伸ばすことを目標に、ScalaはJavaを超える新しい言語になることを目標にしていると言われています。また、Scalaは学習コストが高いともいわれます。
初めて触れる言語なら、Kotlinのほうが適しているかもしれませんね。
結論をまとめます。
- Javaと行き来し、相互的に使いたいならKotlin
- Javaでは出来なかったことをしたいと思うならScala
この2つの言語も文法が似ているので、どちらかを先に学習しても無駄になることはありません。自分がどんなものを作りたいのかを考えて選ぶことをお勧めします。
なお、初心者向けのおすすめプログラミング言語については、次の記事で詳しく紹介しています。合わせてご覧ください。
さて、次の章ではKotlinでなにができるのか?について解説していきます。また、実際に使用されている例も紹介していきます!
Kotlinで作れるもの、作られたもの
Kotlinで作れるものといえばやはり「Androidアプリ」です。Androidの公式ではキャラクターがこのようにKotlinでの開発を後押ししています。
もちろんサーバーサイドで利用している企業も徐々に増えてきています。
海外企業ではUber、Evernote、NetflixがKotlinを使用しています。日本企業でも取り入れる企業は増えてきています。Kotlinで作られたアプリは「Yahoo!ニュース」や「LINE」などがあります。身近なアプリで使われているんですよ。
日本でKotlinを使っている企業
- Yahoo!(Android版 Yahoo!ニュースアプリ、GYAO!など)
- LINE(Android版 LINEアプリ、LINE LIVEアプリ)
- サイバーエージェント(Abemaなど)
- Retty
- トクバイ etc…
この先、更に採用される企業やアプリは広がる見込みです。もちろんアプリ以外にサーバーサイドの開発でも使用されているので、今後は使用範囲が広がっていくかもしれません。
さて、そんな将来性のあるKotlinですがどのようなメリット・デメリットがあるのでしょうか? 一緒に見ていきましょう。
Kotlinのメリット、デメリット
ここまでで多くのKotlinの良い部分を紹介してきましたので、先にメリットについてまとめます。
Kotlinのメリット
- Javaより短く簡潔なコードが書ける
- Javaとの相互利用が出来る
- NullPointerExceptionにならないような仕組み
- Androidアプリ開発を公式がサポートしてくれている
- 学習コストが低め(そこまで難しい言語ではない)
採用している企業も増えてきているので、将来性がありメリットも多いですよね。
Kotlinの言語自体のデメリットとしては特にありませんが、まだまだ日本語で読める情報が少ないという点には注意が必要です。頼れる情報がまだ少ないので、例えば分からないことや困ったことがあった場合に調べる手間がかかる可能性があります。
ですが、この問題もKotlinが浸透していくにつれ解消されることでしょう。初心者だし情報が少ないならまだ……ということであればJavaから学習するのも一つの方法かもしれません。
このように、Kotlinはメリットが多く取り入れる企業も多くなっています。そんなKotlinエンジニアの需要や市場価値はどのようになっているのでしょうか?
実際の求人情報を見ていきましょう。
Kotlinエンジニアの需要
この章ではKotlinが必要とされる実際の求人と年収などを紹介していきます。
Kotlinの実際の求人を見てみよう
Kotlinを扱うことが出来れば、具体的にどのような仕事をすることができるのでしょうか? 実際に求人サイトで検索してみましょう。レバテックフリーランスで「Kotlin」と検索してみました。
現時点では(2019/4)では61件の求人があるようです。ちなみに、「Scala」だと31件、「Go」だと61件がヒットしました。
「Java」は345件ヒットしました。さすがにJavaの案件は多いですね。
さて、次は具体的にどのような求人があるのか見てみましょう。やはりスマホアプリの求人が多い印象です。
Kotlinを使ったアプリ開発の経験があれば、月収最大100万円のお仕事に就くことも可能なようです。
実際に自分が使うかもしれない、身近なアプリ開発に携わることもできます。
このように、現在ではほとんどがアプリ開発の求人でした。いろいろな企業でKotlinの導入が進んでいる証拠ですよね。
アプリ開発以外の求人が増える可能性もあり、とても需要が高まってきている言語になっています。そんなKotlinエンジニアの年収はいったいどのくらいなのでしょうか?
Kotlinエンジニアはどのくらいの年収?
Kotlinエンジニアの年収はGoやScalaと比べると順位が下ですが、それでも中央値が575万円とかなり高額になっています。Javaエンジニアの年収中央値は500万円で14位ということなので、結構な差があるのが分かります。
Kotlinは現時点でもGoと同じくらいの求人数があり、今後Javaに代わる開発言語となればもっと求人数が増える可能性があります。今から学習しておいて損はない言語といえますよね。
さて、ここまでKotlinの紹介をしてきて興味が湧いた方もいらっしゃるかと思います。次の章からはKotlinで実際にコードを書いてみたり、おすすめの学習方法について紹介します。
Kotlinを勉強しようと思ったら
Kotilnを勉強しよう!と思ったら、大きく3つの選択肢があります。
- 書籍などを使って独学で勉強する
- 勉強会に行って教えてもらう
- スクールで教えてもらう
この章では、この3つの選択肢について簡単に紹介していきます。
まずは、独学で勉強する方法についてです。
独学で学ぶ
開発環境を構築してみよう
独学で学ぶために、まずはさっそく開発環境を構築してみましょう。
今回は統合開発環境として「Android Studio」を使うことにします。
こちらからダウンロードします。
「DOWNLOAD ANDROID STUDIO」のボタンからダウンロードします。ちょっと時間がかかると思いますので、終わるまでゆっくり待ちましょう。
ダウンロードが終わったら起動し、インストールを始めます。保存先などを変更しないなら「Next」で進んでしまって構いません。
公式のインストールガイドもありますので、こちらも合わせて確認してみてください。
次のような画面がでたら、初回設定を行います。
こちらも基本的に「Next」を選んで問題ありません。最後に「finish」を押下して、初回起動を済ませましょう。
ダウンロードが終わり、改めてAndroid Studioが起動したら「Start a new Android Studio project」を選択します。こちらも、Nextやfinishを押して進んでしまって問題ありませんがKotlinで開発する時には次の画面でKotlinを選択するようにしましょう。
この画面が表示されたら、準備は完了です。
さっそく実践ということで、動かしてみましょう。
実践! 簡単に動かしてみよう
今回も「hello world」をコンソール表示させてみようと思います。
fun main() { println("hello world") }
hello world
とっても短いコードですよね、そしてJavaっぽさもあります。経験者の方なら違和感なく学習を進められるかもしれません。開発中の実際の画面は次の通りです。
ここまで動かせるようになれば、あとは書籍やサイトで学習あるのみです! 次の項目ではお勧めの書籍や入門用サイトについて紹介していきます。
現役エンジニアお勧めの書籍
まず、Kotlinについて学びたいなら次の一冊をお勧めします。
Kotlinスタートブック| Amazon
日本Kotlinユーザグループ代表である長澤太郎さんの書籍です。とても分かりやすくKotlinについて書かれています。実践もありますので初心者の方にお勧めです。2016年初版のため少し情報が古いかもしれませんが、Kotlinを初めて勉強するには最適な書籍になっています。
次は、KotlinでAndroidアプリを開発したいと考えている方へお勧めの一冊です。
Androidアプリ開発のためのKotlin実践プログラミング| Amazon
Kotlinでのアプリ開発を実践的な内容をもとに解説しています。基礎の学習が済んで、アプリ開発をしてみようと思っている方はこの書籍で実践してみることをお勧めします。
次に、アプリ開発ではなくサーバーサイドでKotlinを使ってみようと考えている方へお勧めの書籍です。
Kotlin Webアプリケーション 新しいサーバサイドプログラミング| Amazon
こちらも長澤太郎さんの書籍です。サーバーサイドでKotlinを使用することに関しての書籍は、まだまだ数が少ないのが現状です。こちらの書籍はその中でもわかりやすく、Web アプリについての知識もつけることが出来る一冊です。
次に、参考になるWebサイトについて紹介します。
参考になるKotlinの無料入門サイト
Kotlinに関する入門サイトはまだ数が少ないですが、この二つは必ずチェックすることをお勧めします!
[Kotlin入門までの助走読本(PDF)]
https://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view
日本Kotlinユーザーグループの方々がPDFで入門知識についてまとめてくれています。まずはこれを読み、Kotlinに関する基礎知識を付けましょう。
公式のリファレンスには最新の情報が載っていますので、こちらも必ず確認するようにしましょう。
[リファレンス]
https://kotlinlang.org/docs/reference/
また、有志が公式のリファレンスを日本語訳してくれたものもあります。英語が苦手だ…と思う方はこちらだけでも確認しながら学習を進めましょう。
[リファレンス(日本語訳版)]
http://dogwood008.github.io/kotlin-web-site-ja/docs/reference/
勉強会に行って学ぶ
Kotlinの勉強会は年に数回行われているようです。
IT勉強会や、イベントを検索できる「connpass」で日本Kotlinユーザグループをフォローして勉強会情報を見逃さないようにするのをお勧めします。
また、「connpass」でKotlinと検索して、勉強会情報を検索するのもお勧めです。
勉強会に行くのは勇気がいるかもしれません。ですが、同じようなレベルの初学者、もっと高いレベルのエンジニアなどいろんな人と情報交換できる非常に有意義な時間になること間違いなしです。行ける機会があるなら、参加をお勧めします。
スクールを検討してみる
ここまで紹介した方法は、すべて自力で学習する方法でした。
実は一度、独学で勉強してみたけど挫折してしまった……
一人で勉強すると、さぼってしまったりして結局習得できないんじゃないかと不安……
と思う方もいらっしゃるかもしれません。
そんな方は、スクールを検討してみることをお勧めします。
スクールでの学習なら、一人での学習は不安という方もサポートを受けることが出来るので安心です。
学習のモチベーションになる目標を、プロが一緒に考えてくれ適切なレベルで設定できるという点もお勧めです。
とはいえ、スクールに通うといきなり決めるのは不安しかありませんよね。
侍エンジニアでは、「無料カウンセリング」を行っています。業界屈指のコンサルタントがあなたの悩み・不安をしっかり聞いて、解決へ導いてくれますので、お悩みの方は一度無料カウンセリングを受けてみることをお勧めします!
お急ぎの方はこちらからお問い合わせください。
読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。
再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。
カウンセリングはオンラインにて実施しております。
※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します
1.ご希望の日時を選択してください
2.必須事項を入力してください
ご予約ありがとうございます!
予約が完了しました。ご予約情報とご参加前の準備をご確認ください。
【ご予約情報】○月○日(△) ○○:○○〜
カウンセリング参加に向けてのご準備
※記入いただいたメールアドレスに確認用メールをお送りしておりますのでご確認ください。
※オンラインカウンセリングはGoogle Meetにて実施します。URLが発行したら別途ご案内いたします。
※メールが届かない場合は、SAMURAI ENGINEERサポート(support@sejuku.net)までご連絡ください。
まとめ
この先が非常に楽しみな言語「Kotlin」に関して解説を行いました。かなり新しい言語なのにも関わらず、非常に注目されていることがお分かりいただけたでしょうか?
この記事をよんで興味が湧いた方は、ぜひ書籍などを使って「Kotlin」に実際に触れてみてくださいね。
それでは、また次の解説で!