初识Scala
Posted 聊聊云的那些事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Scala相关的知识,希望对你有一定的参考价值。
今天又结识了一位新朋友,Scala,一种基于函数的编程语言。
最早接触的计算机语言,是BASIC,在苹果机系统上的,那时编程就是一行一行的写代码,还要大概计算一下计算机的内存,有个同学不知从哪找来一段程序代码,执行后,计算机的蜂鸣器会发出长短的声音,一段乐曲。那是我上高一的时候。
后来上了大学,是计算机科学与技术专业,我们学习PASCAL语言,而其他非计算机专业的学习C语言。问别人为什么我们不学C,回答说是C语言太简单,计算机专业的学生自学就可以了。PASCAL好像是为了纪念一个叫做帕斯卡的人,我们现在的大气压强单位帕,也是为了纪念这个人。PASCAL语言那时还挺流行的,其于它的可视化编程语言叫做PowerBuilder,就是PB,我工作了之后,那语言还用过几年,不过在不之不觉中,这语言就被淘汰了。
在大三那年,学习了html语言,纯用记标本来写,感觉很神奇,因为别的语言一般要先编译,编译没错误了,生成中间代码,然后再执行,执行的结果显示在一个终端里,看着很呆板。而HTML不需要编译,直接解释执行,而且显示在浏览器里,看着很亲切。
工作后先学过了阵VB,挺好上手的,又学了VC,再后来,学了JAVA。对JAVA我有着深厚的感情,因为我在学习的时候,别的同事几乎还都不会,当我明白了什么是面向对象,什么是类,什么是重载,什么析构函数,对别人说看着他们迷茫的眼神时,感觉挺有成就感的。JAVA语言我应该学的比较深入了。javascript、Applet、各种架构、JSP,理论基础各种概念都比较清楚。唯一比较缺憾的是,没有用JAVA完成过实际工程项目。
做真正的工程项目,用的是.net,虽然感觉它比JAVA低一个等级,但是它的可视化开发环境和丰富的类库、可用的源代码,还是让人用它入手比较快。用.net完成过天津职业大学教工考评系统。
再后来,为了学习大数据,接触了Python和R语言。R语言感觉很棒,用它调试了几个程序,说它是为了数据分析和科学计算的,资源包编写要求特别严格,没有深入的学习。
Python开始有点难入手,因为有过别的语言的一些概念,如果你什么语言也没学过,直接上手Python,可能更容易一些。Python的一些开发工具真的很棒,Spyder,notebook等。要想真正用好Python,其实,要掌握的是它的那些人家开发好的包,像numpy、Matplotlib等等。
今天,了解了Spark ,也顺便就结识了Scala。
程序语言要遵循编程范式,常见的编程范示包括命令编程和函数式编程。
以前用的编程语言,基本都j命令式编程,像C、JAVA等都是。
函数式编程,又称泛涵编程,它将计算机的计算视为数学上的函数计算。典型的函数式语言包括:Haskell、Erlang和Lisp等,我都没用过。不过Scala也是函数式编程。
有了命令式编程,为什么还需要函数式编程呢?因为命令式编程涉及多线程之间的状态共享,需要锁机制实现并发控制,这样就会影响程序的并发性,也不利于分布式计算。函数式编程不会在多个线程之间共享状态,不需要用锁机制,可以更好并行处理,充分利用多核CPU并行处理能力,也利于分布式计算的实现。
test.scala源代码:
object test{
defmain(args:Array[String]){
println("Welcome toTianjin")
}
}
编译执行效果如下:
以上是关于初识Scala的主要内容,如果未能解决你的问题,请参考以下文章