Aikの技術日記

技術的な進捗とか成果とかを細々と投稿するブログです。時々雑記も。

CODEPREPで勉強しよう その10

その1(CODEPREPとは/学習予定ブック紹介)はこちら
その2(Sass,Bootstrap,Fontawesome編)はこちら
その3(HTML&CSS実践編 前編)はこちら
その4(HTML&CSS実践編 後編)はこちら
その5(JavaScript編 前編)はこちら
その6(JavaScript編 後編)はこちら
その7(Three.js,moment.js,Canvas編)はこちら
その8(React,Vue.js編)はこちら
その9(Rust,GoogleMap,Webカメラ編)はこちら
その10(Ruby,Scala編)はこちら
その11(CODEPREPやってみた感想等)はこちら

CODEPREP勉強中です

CODEPREPさんで勉強する予定だったブックも、残すところわずかになってきました。
これまでブックを黙々とこなしていき…本当に色んな事を学ぶ事が出来てるなぁと感じています。

まぁそんなしんみり話は置いといて…。
今回はRubyScalaにまつわるブックをやっていこうかなと思います。
具体的には下記のブックを…。

※最初はRubyのブックも1つやろうと思ってたのですが、Ruby on Railsとかやってるのでそっちでも学べるなぁってのと、時間なかったってのでやめました

  1. Ruby実践 コマンドラインアプリ編
  2. はじめてのScala(前編)
  3. はじめてのScala(後編)

早速学んだブックの感想やらまとめをば!

各ブックの感想など

いつもの様に、各ブックで学んだことのまとめや感想などを書き連ねていきたいと思います。

はじめてのScala(前編)

今回はScalaという言語に触れていくブックでした。
「はじめての」とあるように、ブック内容的には基本的な文法を抑える(四則演算とか)のみでした。

さて、Scalaに触れてみた感想を書いていこう、と思いましたが…。
まだ序盤の…Scalaの書き方だけしか学べてないので、「Scalaのココがいい!」とかいった部分には全然触れられておりません。ぐぬぬ

ただ、次のブック「はじめてのScala(後編)」で、Scalaの主立った部分を学べそうなので…。
Scalaの感想は、次のブックの方に書いていきたいと思います。
(ついでにScalaとは?とかの方もそちらに書いていこうと思います。)

それではさっさか次のブックに行きましょう。

はじめてのScala(後編)

先ほどのブック「はじめてのScala(前編)」に引き続き、Scalaに触れていくブックでした。
後編ということもあり、前回やったブックよりも難しい部分に触れていきました。

※参考までに、前編で学んだことと後編で学んだ事をまとめてみました

  • 前編
    • 変数宣言/四則演算/論理演算
    • 文字列の扱い方
    • Tuple
    • if/for
    • 関数定義/関数リテラル
  • 後編
    • クラス
    • import文
    • Option
    • List
    • パターンマッチ/例外
    • その他高度な機能(sealed class/implicit parameter/implicit conversion/implicit conversionの実例)

また、後編のブックでは特に「Javaとの比較」が随所にありました。
(Javaだとこんなに難しく書かないといけないけど、Scalaでは〜みたいな感じで比較されてありました)

というのもScalaJVM上で動く言語とのこと。
このためJavaライブラリも使用することができるみたいです。ほわぁいいっすねぇ。

ともあれ、この辺で一度Scalaについて詳しく見ていこうと思います。

Scalaとは

Scala(スカラ)はオブジェクト指向言語関数型言語の特徴を統合したマルチパラダイムプログラミング言語である。
名前の「Scala」は英語の「scalable language」に由来するものである。
※参考(Wikipedia): Scala - Wikipedia

Scalaは2003年にスイス連邦工科大学ローザンヌ校(EPFL)のMartin Odersky教授によって開発されたプログラミング言語です。
Scalaではオブジェクト指向関数型プログラミングの両方を行えるところに特徴があります。
また、処理系はJVM上で動作するため1、Java言語のライブラリのほとんどをシームレスに利用することができます。
ただし、Scalaはただのbetter Javaではないので、Scalaで効率的にプログラミングするためにはScalaの作法を知る必要があります。
※参考: https://dwango.github.io/scala_text/introduction-to-scala.html

概要としてはこんな感じの記述が見られました。
さて、さらに詳しく調べよう…と思いましたが、筆者のやる気が風邪により尽きかけてるので、参考になりそうなサイトのリンクを貼るにとどめておきたいと思います。
(というか面白い記事がいっぱいありすぎて見るだけで満足してしまった)

Scala使用歴5年のプログラマが、この言語とその環境に関する神話を解き明かす | POSTD
https://qiita.com/kmizu/items/cfaabdbfe3d3b4ef0640
https://www.slideshare.net/daichimashima/2013jjug-spring

また、探していると「ドワンゴオリジナルの新卒エンジニア向けの研修資料(Scala)」も発見しました。
(引用元にもちょいちょい用いています)
Scalaについて実に様々な事が掲載されているので、これからScalaを始める際にも非常に有用かと。
https://dwango.github.io/scala_text/

あとScalaには一切関係ないですが…。
上記URLを辿ると「ドワンゴエンジニアの活動日誌」にもたどり着きました。
ニコニコ動画の裏側に関することも書かれてるそうです。
筆者はニコニコ動画大好きなので、めっちゃ気になります…後で見てみよう、そうしよう。
dwango.github.io

また、色々調べていくとやっぱりと言う感じですが…。
JavaScalaを比較した記事も沢山出てきました。
こちらに関しても、記事のリンクを貼るにとどめておきます。

JavaエンジニアにScalaの話を聞いてみたい@ScalaMatsuri2017
Scalaに関する誤解と事実を語る - kmizuの日記
JavaからScalaへの継続的なマイグレーション
Scala選定の理由と移行の方針 - Qiita

にしてもこうして色々見ていくと、「なかなかいいんじゃないかなScala」とか思い始めてきました。もー影響されやすいんだからー。
せっかく以前Javaで括弧対応プログラムを作りましたし、アレのScala版を作ってみるのもいいかもですね。

次回の記事について

次回記事では、Javaに関するブックを見ていきたいと思います。
Java自体は学校で学びましたので、入門編ブックではなく応用編ブック等を中心にやっていこうかなと思います。

ではでは|д゚)