关于Scala的一些感想(一)

简介:

最近在完成自己的开源项目Application-center的时候,使用了Scala编程语言。

在使用了一段时间下来以后,有一些不是很“清晰”的感受,说实话我自己还没有很好的整理清楚,所以就先记录下来,不保证一定正确,只是个人的在现有经验下的看法而已

框架的选择

Java之所以这么繁荣很大的程度上是因为第三方开源社区的支持,当我们使用Java完成一些项目的时候,我往往都是先求助于开源社区,看看是否存在现有的解决方案,绝大多数时候我们都能找到合适的框架,然后直接用或者稍微修改一下就好了。

而且由于Java毕竟已经在企业开发领域活了许久了,因此很多领域中,业界往往都已经选择出了“佼佼者”,比如我们使用Spring来管理Bean的生命周期,使用Spring MVC作web框架,Mybatis作持久层的框架使用,AOP使用Spring AOP或者更强大的Aspectj等。

而由于Scala也是近几年“流行”起来的,虽然使用Scala编写的开源框架很多,但是在很多领域中,往往都还没有选择出其中的“佼佼者”,因此对于我们这些初学者来说,往往都会存在:「不知道该用什么框架」的疑惑。

虽然有Awesome Scala 但是我们也开源发现很少有一家独大的情况。不过好在Scala基于JVM,可以使用Java的框架,这样我们的选择面也更加的多了起来。

我最初在完成Application-center的时候,调研了下面的几组方案:

  • Play framework + Slick 3.0.3
  • Spray-can + Slick
  • Spring MVC + Mybatis
  • scalatra

Play Framework从目前来看在Scala编写的web框架中处于稍微“领先”的地位,但是对于之前一直使用Spring Mvc的Java开发者来说,在使用习惯上差别太大了。还有Slick,感觉这个框架是像整合hibernate和Mybatis的优良属性,但是目前感觉有点“四不像”,而且对事务的支持感觉太低级了,完成没法和Spring的事务管理器相提并论。也由很多开发者,包括我也使用Scala基于JDBC的风格编写过一个Scala JDBC小工具来和关系型数据库打交道。但是说实话都不是太好用。Spray的那一套东西,基于Akka,性能很不错,但是那套东西不是为了web开发而弄的,更多的是为了后端数据接口弄的。而且对于不熟悉Akka的开发者来说,学习成本简直不要太高太高。

项目初期我都使用新的工程尝试了前两种解决方案,可能是因为我对Scala和Akka还不是很熟练,所以感觉学习成本高了很多,尤其是Spray那玩意,让我一度怀疑我的智商。

因此为了「不折腾」为了加速开发进度,我最终还是选择了Spring Boot + Mybatis来完成开发。之所以这么选择主要还是因为没有学习成本,而且进度,可能出现的问题我都可控制。

编程语言的定位

此处建议大家看看紫杉的回答,说的非常的好

后记

暂时只想到了这么多,后续有更多的想法的时候,我再更新这个文章。

目录
相关文章
|
Scala
176 Scala 项目案例(项目实现)
176 Scala 项目案例(项目实现)
105 0
|
安全 JavaScript 前端开发
SCALA程序设计 第一章:scala简介
Scala是一门静态类型语音,是一门以Java虚拟机为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。
208 0
|
分布式计算 JavaScript 前端开发
Scala学习系列(一)——Scala为什么是大数据第一高薪语言
Scala学习系列(一)——Scala为什么是大数据第一高薪语言
475 0
Scala学习系列(一)——Scala为什么是大数据第一高薪语言
|
Java 编译器 Scala
Scala学习系列(三)——入门与基础
Scala学习系列(三)——入门与基础
220 0
Scala学习系列(三)——入门与基础
|
分布式计算 Java 大数据
《Scala入坑笔记》一、Scala简介
Scala 是 Scalable Language 的简写,网上没有发现谁问 Scala 怎么读,你是按 Scalable 的发音读作 ['skeɪlə] 还是喜欢读作斯卡拉? Scala 是一门多范式的能够运行于JVM和.Net平台之上的编程语言,一种类似java的编程语言 ,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。
1450 0
|
分布式计算 Java Scala
带你走进Spark编程之Scala入门
写在前边的话: 1:什么是Scala?      Scala是一门多范式的编程语言,类似于Java,并集成了面向对象编程和函数式编程的各种特性,具体可参考知乎上的一个帖子 2:本篇博客包含哪些内容?      Scala中变量的声明与函数定义      Scala中的控制结构  ...
1178 0