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

Scalaの良さ(メリット)とは?

More than 1 year has passed since last update.

Scalaとは

プログラミング言語の一種
JVM上で動作し、Javaをシームレス(違いを意識しなくて良い)に利用できる
Scalaのコンセプトはオブジェクト指向関数型の統合
Javaをベースとしたオブジェクト指向言語の上に、関数型の機能を表現している

オブジェクト指向

オブジェクトはモノ
クラスは設計図(分類)
モノに要素(データ,プロパティ)と機能(処理,メソッド)が付いているというイメージ

三大要素

継承

特徴を共有すること

カプセル化

意味:機能とデータの範囲を明確にすること

ポリモーフィズム

使い分け

関数型

「データに何らかの処理を加えていく」の連続で組み立てていくもの

特徴

immutable(不変)

値が不変(val)

副作用がない

本来するべきことを作用とすれば、作用に伴って別のことをしてしまうのが副作用
つまり、特定の処理は同じことをしてくれる

関数はファーストクラス(第一級)

ファーストクラス(第一級)とは、関数を型として扱える
文字列型とか数値型とかと同じにみなせる

おまけ

関数とメソッドの違い

関数:引数に依存する。引数が同じなら常に同じ値を返し、引数が変わったら別の値を返す。
メソッド:オブジェクトと関連づいている。オブジェクトの操作をメソッドという

Scalaのメリット

Javaとの互換性

ScalaはJavaとの互換性を第一に考えられた言語
ScalaからJavaのAPIを呼ぶことができる

非同期プログラミング、並行・分散プログラミング

Future

非同期の計算を実現するライブラリが標準である
非同期プログラミングにより、スレッド数を超えるようなクライアントの大量同時のアクセスに対応

非同期とは

送信側と受信側のタイミングの一致(同期)を気にせずにデータをやり取りすること。つまり、はやい。

Akka

並行・分散プログラミングのためのライブラリ
Akkaにはアクターというスレッドより小さい単位の実行コンポーネントがあり、このアクター間の通信により並行・分散プログラミングをおこなえる。

並行・分散とは

1度に複数の手続きが実行される

パターンマッチ

Scalaのパターンマッチにはフォールスルーがない
フォールスルーはメリットよりも、バグであると考える方が多数

フォールスルーとは

switch文においてbreakを省略した書き方。
以下のような処理があった際に

switch (value) {
    case 0:
        System.out.println(“0″);
    case 1:
        System.out.println(“1″);
        break;
    default:
        System.out.println(“-1″);
        break;
}

value = 0 なら
0
1

value = 1 なら
1

value ≠ 0 ≠ 1 なら
-1

のように本来ならvalue = 0 なら0と返したい所でであるが、0 1を返していまう。

今のところはこのくらい
もうちょっと勉強していきたい

参考

ドワンゴオリジナルの、新卒エンジニア向けの研修資料

taigamikami
大学生 自分の勉強・メモとしてQiitaに投稿しています。おかしいと思う部分は遠慮なくご指摘いただければと思います。 Ruby/Rails/Swift/iOS/Python
https://taigamikami.github.io/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした