The end of the hype: What awaits the Scala language next


There have always been a lot of hype and ambiguous judgments around the Scala language.


Now the debate has subsided, but there were messages on Twitter about the departure of some significant participants from companies actively developing the Scala language ecosystem. In this connection, once again there was talk that Scala is everything.


In response to this, one of the very active members of the community (Li Haoyi) described his vision of the future path of the Scala language.


He got an interesting article, so I decided to translate it.


, .
. , .

, Scala, , , , . , , , , Scala Scala.


:


, Typesafe/Lightbend, , , .

Scala . " Clojure", , , Scala 2016 . , .

Jamie Allen


, Scala, , : , .. . , , Scala, , - ( , COVID19 ), , , Scala.


, , , «Hype Cycle», :



Scala , : , , , Apache Spark. , . , , .


:


Scala 2004 , 2010- :


~2009: Twitter


~2010: Scalaz


~2011: Lightbend, Scala


~2014: Apache Spark Scala


~2015: Cats


Scala , , . , , , Apache Spark, . :



Scala : , , / ( ), . , - , .


, HTTP- Databinder Dispatch, Scala-Graph SBT:


// Making a HTTP request and processing the output in Databinder Dispatch
executer(:/(host, port) / target << reqBody >- { fromRespStr })

// Constructing a simple directed graph with labelled edges in Scala Graph
val flights = Graph(
    (jfc ~+#> fra)(Flight("LH 400" ,10 o 25, 8 h 20)),
    (fra ~+#> dme)(Flight("LH 1444", 7 o 50, 3 h 10))

// Append the contents of a URL to a File after filtering through grep using SBT
url("http://databinder.net/dispatch/About") #> "grep JSON" #>> file("About_JSON") !

// Search for uses of null in the source directory using SBT
"find src -name *.scala -exec grep null {} ;"  #|  "xargs test -z"  #&&  "echo null-free"  #||  "echo null detected"  !

Scala API . , >- ~+#> #&& , . , , Scala - Scala.



, Lightbend Akka Actor, . , «» , , .


Akka Actors , Scala: , API . Akka , Scala, , .


, Typed Actors Reactive Streams, , Scala. , : , , . .



Scala Scalaz Cats. Haskell Scala: , , - .


, . , Scala.


Apache Spark


, Scala, Apache Spark. , Apache Spark Scala , map, filter reduce, , . Apache Spark API Hadoop — .


Apache Spark Scala. Scala Scala , - Spark.


Apache Spark API- : SQL, R, Python. Python . API, API , API SQL, , , Apache Spark. , Apache Spark Scala.



, . , . , : , , .


, , 2016-2018 .


. , , . , , , , . , .


2010-, . , . , , : Scala , .


, « ».


:


Scala 2010-, - 2010-. ?




, Scala . , IP-, Maven Central, 2 . , .


, , , : Scala . , , Scala .


Redmonk Tiobe, , Scala , 13 28 . , .


, Scala , , . , Scala , .



, Scala , :


  • SBT , .
  • SBT, : Bazel Pants Scala, Mill .
  • , Coursier, : Ammonite SBT Mill
  • Metals Scala VSCode, Sublime Text .
  • Intellij Scala : , , Ammonite Mill.
  • Scala 2.13 API (, 25-40% Sjsonnet)
  • «» , , .
  • , , .


, , , . 2017 , , Scala, !


Scala, , .



, - Scala. , , , , , , . , , .


, : , .


Scala : , , , . Scala Haskell, Python, Java Go. , , Scala , , , - .


Actors, , . , , Free Applicatives, . , : , , , Scala.



, , , Scala?


Scala . Java- , , «» , , () Python (, Azure-CLI!).


, Scala , . , :



Scala : . , , FP-Cats / Scalaz: - .


?


- Python : « », . Python. Python. , Python. , Python , , , .


Scala , Python?


— , . , Python. :



, Scala , Python. Python — , , — Scala . Scala Python, Java Go, -, . !


, , , , Scala, , .


Scala Native


Scala.js Scala : Javascript, JVM, , Scala , .


Scala-Native : Scala . Scala , JVM Javascript .
Scala.js Scala , Scala-Native Scala :


  • , git, ls, rsync .., JVM.
  • , - JVM Scala .
  • iOS iPhone iPad, .
  • , JVM JVM .
  • , Tensorflow.

, C C ++. Rust Go, -C , Nim, Zig Crystal, . Scala-Native , .


Scala-Native , Scala.js. , Scala.js , Javascript, Scala-Native : , , . . , Scala.



Scala , , , , . , , , , , . Scala , , -, Scala.


, .


, , . , . , . , . 2 !


, Scala , - , . , , : , , , iOS . Jetbrains 2019 Python, , Python:


Scala / Spark, , Scala . Scala , , / , Scala , , , Scala .


: (Haoyi) — -, Scala.js Scala , Ammonite REPL FastParse.


If you liked this blog, or liked using other Haoyi open source libraries, please connect (or have your company join!) Through Patreon so that it can continue its open source work.


All Articles