TrustRadius Insights for Scala are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Intuitive and Easy-to-Navigate User Interface: Users have praised Scala's user interface, stating that it is intuitive and easy to navigate. Many reviewers have found the labeling of fields to be logical, which enhances their overall experience with the platform.
Stability and Perfect Playback: Scala is highly regarded for its stability and perfect playback of content. Numerous users have expressed satisfaction with the seamless performance of Scala, ensuring a smooth viewing experience for their audience.
Great Content Management System with Advanced Features: Reviewers appreciate the advanced features provided by Scala, making it a great content management system. The platform offers tiered permission levels, enabling users to efficiently manage and control their content.
Scala is used by the Marketing Department to manage the customer-facing TV content at all of the bank's branches. Photo and video content is added to each playlist regularly and scheduled out to run for as long as needed. We mostly utilize it to promote local events and help illuminate certain products or services that customers may be interested in.
Pros
Organizing different playlists.
Coordinating content schedule and running time.
Cons
The social media feed is not editable.
The social media feed cuts off link previews in posts, which can hurt posts that rely on visual context.
Likelihood to Recommend
For simple messaging to customers, Scala is a great tool to have in your arsenal. Banks, especially, have a need for players like these that rotate and can hold the attention of an in-branch customer who's waiting in line and looking to be occupied by something before a banking specialist is ready to serve them. It would also work really well in schools and act as a bulletin board to keep students and faculty notified of upcoming schedules, events, lunch menus, etc.
We use Scala as the main backend language. So this includes everything from the API, to the web app, to the deeper backend services such as for scheduling tasks, running data-workflows, and storing and saving data from our datastores. Our data science team also uses Scala with our Spark architecture. The idea, when the original engineers picked Scala, was that it would be a better version of Java and make our Engineering teams more productive.
Pros
Compatibility with Java: if you are switching off of Java onto a new language, one reason to pick Scala is that it is about 99% compatible with Java, so any Java libraries or code you were using before can be called from Scala (not vice-versa though).
Great built-in features for managing concurrency (e.g. Futures, Actors, and Akka). Making the most of every single thread on the machines your Scala code is running on is much easier and safer than doing it with Java. Scala abstracts away thread pools and threads quite well with Futures. I wouldn't say Futures are easy to learn though....but they are definitely safer to use than pure threads.
Null-pointer safety: In Scala, null pointers are rare because most libraries pass around a class called Option when whatever you are referencing could possibly be null. Options are first-class and the functional nature of Scala combined with Options means you can almost always avoid referencing a null directly using Option.map or Option.flatMap (see here for what they do https://www.scala-lang.org/api/current/scala/Option.html). That means you'll almost never encounter another null-pointer exception unless you do something quite stupid and avoidable. Java has Options for helping with this now, but it's not widely used and not nearly as powerful.
Cons
The built-in compiler, scalac, is sssssssssslllllooooowwwwww. I mean like, if you thought the Java compiler was slow, try Scala! The default compiler on my 12k line codebase takes 4 minutes to compile from scratch on my i7 quad-core machine. This can be mitigated through the paid solution of Hydra which compiles your code in parallel. Unfortunately, it's quite expensive and your legal department or finance department may not approve of it. But if they do, for me, it reduced my compile time down to 80 seconds, much more manageable.
Scala is not going anywhere and support for it is slowly dying. This is the main reason I would not choose Scala for my next company or project. Important Scala libraries such as secure social (which is used for OAuth, a major requirement of every web app) are hardly maintained. Another library that suffers from lack of updates is Slick, the database mapper. There aren't enough engineers working on it to even provide support for the new features that came out in Postgres 9.0 (e.g. JSONb). There is simply not enough of a community to drive Scala forward and keep 3rd party libraries up to date as Java world does it.
As a corollary of a stagnant community, hiring Scala developers is hard as well. Of the 30 backend engineers we've hired, only 3 came in already knowing Scala. And as I will mention below, this is a BIG problem because learning Scala is really tough.
The learning curve for Scala is very, very steep. Anecdotally, I came into my current company with strong Java experience. Java is the closest language to Scala but it took me 6 months before I stopped needing to pair program on easy tickets. It doesn't help that Scala has some weird syntax like Map[A, +B] and that it forces you to do functional programming.
Likelihood to Recommend
If you are in the data science world, Scala is the best language to work with Spark, the defacto data science data store. I think that is really the main likely reason I would ever recommend Scala. Another reason is if you already have a team of programmers familiar with functional programming, e.g. they all have years of Haskell experience. In that case, I definitely think Scala is a superior and faster-growing language than Haskell and that picking up Scala after Haskell should be quick.