2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2016.03.16
プログラミングトレンドな言語 Scalaの魅力をご紹介
はじめまして、入社2年目のRTです。
さて、先日3月3日に社内でScalaの勉強会を行いました。
弊社社員のKSさんが講師となり、Scalaの入門・魅力について語ってくれました!
最近、トレンドとしてよく耳にします。
私はScalaを初めて触りますが、オブジェクト指向型と関数型を融合させたような、そんな言語なのだとか。
Javaの豊富なライブラリも使用でき「ポストJava」として定評があるようです。
エンジニアにとって見逃せない言語ですね。
導入は非常に簡単でした。
以下、macでの導入方法を紹介します。
まずはjdkが必要なので公式サイトよりダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
そしてインストール。
次に公式サイトより、Scala本体最新版をダウンロードします。
http://www.scala-lang.org/download/
解凍し、任意のディレクトリに格納します。
すると以下のような構成になっています。
フォルダ名にバージョンが入っていると少し気持ち悪いので、「scala」とします。
mv scala-2.11.7 scala
binディレクトリのPATHも通します。
vim ~/.bash_profile export PATH=$PATH:scala/bin
「scala」と入力し、以下のように実行できればOK!
scala Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_73). Type in expressions to have them evaluated. Type :help for more information. scala>
勉強会では、JavaとScalaを比較していきながらScalaの便利さに触れていただきました。
例えば・・・、
Javaではおなじみのカプセル化。
class Sample { private int hoge; private String fuga; public Sample(int hoge, String fuga) { this.hoge = hoge; this.fuga = fuga; } public int getHoge() { return hoge; } public void setHoge(int hoge) { this.hoge = hoge; } public String getFuga() { return fuga; } public void setFuga(String fuga) { this.fuga = fuga; } }
Scalaでは以下で実装できちゃいます。
class Sample(var hoge: Int, var fuga: String)
簡単すぎますね~。
val s = new Sample(100, "abc") println(s.hoge)
とかで簡単に出力できます。
また、↑のコードからもわかる通り、セミコロンも省略できちゃうんですね~。
そう考えると、セミコロン付けていたり付けていなかったり…
コーディング規約があれば別ですが、ソースコードの統一感がなくなってしまったり、
潜在的なバグが出てしまうのではないか…などなど不安になったりしそうですが、
しっかりとチーム内で共有していくことで回避していきたい感じですね。
また、案件によっては開発はスピード勝負!なところもあるので、Javaで煩雑なコードを書くよりはScalaでサクッと書けたほうがメリットが大きい部分がありそうです。
他にも、
戻り値に複数の値を戻したい。。というときがありますが、Javaではこんな感じで実装したりします。
public class Sample { int x; int y; public Sample(int x, int y) { this.x = x; this.y = y; } public Sample getObj(int i) { return new Sample(i * 10, i * 20); } }
Scalaではこれだけ!
def Sample(i: Int) { (i * 10, i * 20) }
このように、他にも便利な構文がたくさんあります。
興味がある人は、どんな便利な構文・手法があるか調べてみるといかがでしょう?
テクノモバイルでは、このようなトレンドな情報・知識を蓄積していくために勉強会を随時開催しています。
勉強会は毎回好評で、エンジニアとしてのスキルもどんどんアップしています。
これからもこの調子で成長を続けていきたいですね~。
それでは、また素敵な情報を掴んだ日にお会いしましょう!
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索