- Scala for Data Science
- Pascal Bugnion
- 262字
- 2021-07-23 14:33:03
When not to use Scala
In the previous sections, we described how Scala's strong type system, preference for immutability, functional capabilities, and parallelism abstractions make it easy to write reliable programs and minimize the risk of unexpected behavior.
What reasons might you have to avoid Scala in your next project? One important reason is familiarity. Scala introduces many concepts such as implicits, type classes, and composition using traits that might not be familiar to programmers coming from the object-oriented world. Scala's type system is very expressive, but getting to know it well enough to use its full power takes time and requires adjusting to a new programming paradigm. Finally, dealing with immutable data structures can feel alien to programmers coming from Java or Python.
Nevertheless, these are all drawbacks that can be overcome with time. Scala does fall short of the other data science languages in library availability. The IPython Notebook, coupled with matplotlib, is an unparalleled resource for data exploration. There are ongoing efforts to provide similar functionality in Scala (Spark Notebooks or Apache Zeppelin, for instance), but there are no projects with the same level of maturity. The type system can also be a minor hindrance when one is exploring data or trying out different models.
Thus, in this author's biased opinion, Scala excels for more permanent programs. If you are writing a throwaway script or exploring data, you might be better served with Python. If you are writing something that will need to be reused and requires a certain level of provable correctness, you will find Scala extremely powerful.
- Extending Jenkins
- 區(qū)塊鏈架構(gòu)與實(shí)現(xiàn):Cosmos詳解
- C語(yǔ)言程序設(shè)計(jì)(第2版)
- Cassandra Design Patterns(Second Edition)
- Java:Data Science Made Easy
- Java:High-Performance Apps with Java 9
- Visual Basic程序設(shè)計(jì)習(xí)題與上機(jī)實(shí)踐
- 測(cè)試架構(gòu)師修煉之道:從測(cè)試工程師到測(cè)試架構(gòu)師
- 基于GPU加速的計(jì)算機(jī)視覺(jué)編程:使用OpenCV和CUDA實(shí)時(shí)處理復(fù)雜圖像數(shù)據(jù)
- C語(yǔ)言程序設(shè)計(jì)與應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)(第2版)
- Test-Driven iOS Development with Swift
- 計(jì)算思維與Python編程
- HTML5+CSS3+jQuery Mobile+Bootstrap開(kāi)發(fā)APP從入門(mén)到精通(視頻教學(xué)版)
- 生成藝術(shù):Processing視覺(jué)創(chuàng)意入門(mén)
- 你也能看得懂的Python算法書(shū)