Scalaとは、プログラミング言語の一つである。
Scalaとは、Javaの開発者の一人であるMartin Odersky氏が開発したオープンソースの静的型付けプログラミング言語である。Java仮想マシン上で動作するプログラムを生成できるいわゆるJVM言語である。かつては.Net Framework上でも動作したらしいが、その機能はなくなった。
導入事例としては、TwitterのインフラがScalaで書かれているというのが最も有名だが、ニコニコ動画のシステムにも一部Scalaで書かれている部分があるとのこと。
命名の由来は2つあり、一つはscalable languageに由来する。関数型プログラミングとオブジェクト指向の融合により、小さなプログラムの作成から、大規模開発にまで対応できるというコンセプトを表す。
もう一つの由来はイタリア語の階段を意味する単語である。これは開発者Martin Odersky氏が所属していたスイス連邦工科大学 (EPFL)にある螺旋階段にちなんだものらしい。Scalaのロゴはこの螺旋階段がモチーフになっている。
公式ではないがScalazというライブラリがある。モナドをはじめとする圏論由来のクラスや関数などをScalaで使用可能にするもので、多くはHaskellから移植されている。定義する記号演算子もHaskellと共通しているので、このライブラリとScalaの省略記法を使用するとかなりHaskellっぽいコードが書ける。
Java仮想マシン用にHaskellのコードを書きたい場合のHaskell実装についてはHaskellの記事を参照のこと。
言語設計者のMartin Odersky氏が新規に作りなおしたScalaのコンパイラで、2015年10月23日にDotty自身のコードをDottyでコンパイルするBootstrapに成功。2021年5月14日リリースのScala 3.0以降でコンパイラに採用されている。
名前の由来はScalaの中核をなす型システムに関する理論であるDOT Calculus(DOTはDependent Object Typesの略で"."とは関係ない)だと思われる。余談だがDOT Calculusによる型の健全性についてはCoqによる定理証明がなされている。
Scala 2.x系のコンパイラscalacより高速に動作するとのことだが、2.x系の言語仕様とは一部互換性がない。また、Pythonのようにブロックを中括弧でなくインデントで表現する記法が導入されるなど、コーディングスタイルにも変更が行われている。
Scalaの後援企業にMartin Odersky氏が2011年5月に設立したTypesafe社がある。同社は2015年5月に社名変更を発表し、2016年3月から社名がLightbendとなった。
どうしてもJavaとの比較になってしまいがちにはなるが、言語仕様上の長所と短所を(やや細かいが)もう少し具体的に記述してみる。総じていうと、毎日コードを書く人には便利な機能が備わっている一方で、たまにしか使わない規則でも忘れてしまうとコードが読めなくなる、という感じ(個人の感想です)。
掲示板
6 ななしのよっしん
2020/09/08(火) 04:12:56 ID: zzG1Jsq4D/
>>3
すっごい亀レスでもう見てないと思うが
sbt assemblyが凖標準みたいな立ち位置だからそれ使えば良いと思う
7 ななしのよっしん
2021/01/23(土) 19:07:19 ID: Hync37YQNb
Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由
https://
スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点
https://
Scala で書いたマイクロサービスを Go で書き直した話
https://
Goは本当に1980年代の言語みたいなのか。
https://
それぞれ設計思想が違って面白い
入門するならRuby、運用するならGo、雇用するならScala、かな?
安置ながらドラクエ職業に例えてみた
Ruby→戦士(装備がすごい)
(省略しています。全て読むにはこのリンクをクリック!)
8 ななしのよっしん
2022/11/22(火) 17:41:43 ID: /7XOIixOOz
scalazはやや古びていてcatsを使う人が増えてるよ 内容はだいたい一緒
急上昇ワード改
最終更新:2024/04/24(水) 13:00
最終更新:2024/04/24(水) 13:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。