在還沒開始之前有些稍微找了一些 scala 的資料.scala 基本的核心概念或許就是名字的本身 scalable(sca) language(la),感覺這語言就是要讓它的擴充性很強大.而且很有意思的是發現它還可以用來實作 functional programming,但 scala 是基於 JVM 的語言,Java 卻是 object oriented programming,這樣看起來的意思是 scala 可以跨越 functional programming 及 object oriented programming 的一種語言.但由於本身只會一點點 java,也不太了解 functional programming.所以無法很宏觀的來看待 scala.不過相信一種語言用久了一定會漸漸了解它的好與不足的地方.所以還是別想太多一天一天的來認識 scala 吧~
1.下載scala-2.12.4版本(需要jdk1.8),這邊使用的是scala-2.12.4.tgz
2.下載後解壓縮,設定環境變數(vi ~/.bash_profile)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
export SCALA_HOME=/Volumes/Transcend/scala-test/scala-2.12.4
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH:~/bin
修改完後,重新讀取設定檔:
source ~/.bash_profile
確認java版本
daniel@Danielde-MacBook-Pro > java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
daniel@Danielde-MacBook-Pro > scala
Welcome to Scala 2.12.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111).
Type in expressions for evaluation. Or try :help.
scala> val msg = "Hello World"
msg: String = Hello World
scala>
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello World!")
}
}
直接執行scala程式
daniel@Danielde-MacBook-Pro > scala HelloWorld.scala
Hello World!
#!/usr/bin/env scala
object HelloWorld extends App {
print(args(0) + " ")
print(args(1) + "\n")
}
val args = Array("Hello","World!")
HelloWorld.main(args)
val msg="This is by shell"
println(msg)
執行HelloWorld.sh
daniel@Danielde-MacBook-Pro > ./HelloWorld.sh
/Volumes/Transcend/scala-test/./HelloWorld.sh:8: warning: Script has a main object but statement is disallowed
val args = Array("Hello","World!")
^
one warning found
Hello World!
This is by shell
scala 安裝時需要安裝jdk.
執行scala有三種方式:
scala主要開發什麼用的?
基本上Java可以開發的,Scala都可以開發,因為Scala最後也是在JVM上面執行。
是這樣 因為現在大數據最紅的是SPARK,而SPARK是SCALA寫的
scala主要開發什麼用的?
scala 可以運用在許多領域,不管 Web 或 Batch 程式都可以開發,我目前主要是要用在 Big Data 的 Spark 上面.至於主要開發什麼用的 ? 我認為語言應該只是我們開發應用程式上的工具,所以應該先思考想開法哪種領域的東西,像是web、手機、物聯網、AI、Big Data 之類的,再來決定要用哪種語言來實作.希望有幫到你.
想回答卻貼錯地方了 ~~
麻煩請見下方.
Scala 可以像 Java 一樣運行在 JVM 之上, 同時擁有 OOP 及 FP 的特性, 因此 Java 能做的範圍,基本上 Scala 都可以做.
目前在分散式運算以及大數據這二大領域算是 Scala 主要發揮的地方,像 Apache Spark, Apache Kafka(core), Akka 等都是 Scala 開發出來的.
另外, 也有 Scala.js, 可以用 Scala 開發前端 javascript 程式,讓你可以在開發前端時, 同時享受 Scala 帶來的優勢.
Reference:
ITHOME - 【大資料2016趨勢分析】超夯Big Data新架構SMACK崛起
InfoQ - Scala.js:将Scala编译为JavaScript的编译器