When comparing Scala vs Idris, the Slant community recommends Scala for most people. In the question“What are the best (productivity-enhancing, well-designed, and concise, rather than just popular or time-tested) programming languages?”Scala is ranked 14th while Idris is ranked 27th. The most important reason people chose Scala is:

Pros

Pro

Immutable values

The immutable values make it perfect for working with concurrency

Pro

Multiparadigm

Scala supports both Functional and Object Oriented styles of programming. Beginners can learn both paradigms without having to learn a new language, and experts can switch between the two according to what best suits their needs at the time.

Pro

Type inference

Scala offers type inference, which, while giving the same safety as Java's type system, allows programmers to focus on the code itself, rather than on updating type annotations.

Pro

Compiles to JVM bytecode

Aside from Java itself, Scala is by far the most popular of the many JVM languages. If you're developing for Android, or a similar JVM-only platform, or otherwise need out-of-the-box cross-platform compatibility, but the performance of a compiled language, Scala is the way to go.

Pro

Very good online courses

On coursera you can find great introduction to Scala by Martin Odersky.

Pro

Type inference leads to a simpler syntax

Pro

Pro

Full dependent types

Idris not only has support for type classes, but is a fully dependently typed language, giving you the full power to statically verify your code.

Pro

Domain driven design and type driven development

Because of full dependent types in Idris, the programmer can focus more on modelling the domain with types and waste less time fixing common bugs that the type checker will catch. Dependent types help apply type driven development and a lot of code auto generation, making the compiler and type checker an ally in developing working software instead of just getting in the way.

Cons

Con

Can be intimidating for beginners

Scala is an industrial language. It brings functional programming to the JVM, but not with a "start small and grow the language" perspective, but rather a very powerful language for professional programmers.

Con

Static type system inherits cruft from Java

The type system is too complicated yet still less powerful than Haskell's.

Con

Way too complex for beginners

Even for seasoned programmers it's a difficult language.

Con

Weaker type inference

As type inference is undecidable for dependently-typed languages, Idris cannot offer the full type inference that Haskell supports, and so more type annotations will be needed.

Con

Different semantics from Haskell

Idris, while similar to Haskell, has strict semantics, which may cause some confusion if your backend is done in Haskell. If using Idris, it would make sense to do the backend in Idris as well, if not for the fact that Idris currently has fewer libraries available for web development than Haskell.