We stand with Ukraine to help keep people safe. Join us
When you purchase through links on our site, we may earn an affiliate commission

Scala for Mac

The Scala Programming Language.

Free
In English

Scala overview

Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

Seamless java interop

Scala runs on the JVM, so Java and Scala stacks can be freely mixed for totally seamless integration.

Type inference

So the type system doesn’t feel so static. Don’t work for the type system. Let the type system work for you!

Concurrency & distribution

Use data-parallel operations on collections, use actors for concurrency and distribution, or futures for asynchronous programming.

Traits

Combine the flexibility of Java-style interfaces with the power of classes. Think principled multiple-inheritance.

Pattern matching

Think "switch" on steroids. Match against class hierarchies, sequences, and more.

Higher-order functions

Functions are first-class objects. Compose them with guaranteed type safety. Use them anywhere, pass them to anything.

What’s new in version 3.7.4

Highlights of the release
  • Bump Scala CLI to v1.9.1 (was v1.9.0) #23962
  • Make coverage more similar to the one in Scala 2 #23722
Deprecations for removal
  • Deprecate scala_legacy/MainGenericRunner/scalac -run/scalac -repl for removal #24267
Other changes and fixes
  • Context Functions
    • Explain no expansion of ContextFunction0 #23844
  • Experimental: Capture Checking
    • Fix #23737: Update superCallContext to include dummy capture parameters in scope #23740
    • Fix separation checking for function results #23927
    • Simple enhancement for pattern matching with capturing types #23524
    • Don't check bounds in match type cases at CC #23738
  • Experimental: Explicit Nulls
    • Add warnings for inferred flexible types in public methods and fields #23880
  • Exports
    • Refine isEffectivelyFinal to avoid no-owner crash #23675
  • Implicits
    • Fix LiftToAnchors for higher-kinded type applications #23672
    • Fix implicit scope liftToAnchors for parameter lower bounds #23679
  • Linting
    • Invent given pattern name in for comprehension #23121
    • Unused var message mentions unread or unset #23719
    • Lint function arrow intended context function #23847
    • Always traverse Inlined.call in linter #24043
    • Ignore warnings when compiletime.testing is imported #24036
    • Lint avoids revisiting Inlined.call #24277
    • Register no elements for lint after inlining #24279
    • Use enclosing enclosingInlineds for empty call #24281
    • Exclude synthetic opaque proxy from lint #24264
  • Match Types
    • Fix derivesFrom false negative in provablyDisjointClasses #23834
  • Parser
    • Improve message for nested package missing braces #23816
    • Fix: Allow postfix setters under language.postfixOps #23775
    • Fix Java record varargs field accessor #24172
  • Pattern Matching
    • Fix: do not transform Ident to This in PostTyper anymore #23899
    • Call inhabited for AppliedType recursively #23964
    • Fix false unreachable case warning #23800
    • Add subtype-based fallback in inferPrefixMap and recalculate constraints after application #23771
  • Presentation Compiler
    • Additional completions for using clause #23647
    • Completions - do not add [] for ... derives TC@@ #23811
    • Improve symbol order in completions provided by the presentation compiler #23888
    • Porting XRayModeHints #23891
    • Go to definition and hover for named args in pattern match #23956
    • Fix parameter untupling for named tuples (#23440) #24152
    • Fix possible SuspendException thrown when using macros #24174
    • Fix completions for named tuples #24169
  • Reporting
    • Do not discard amended format when f-interpolator warns #23697
    • Mention named givens in double def explainer #23833
    • Compute the right span for abstract error messages #23853
    • Add quick fix to add .nn #23598
    • Add addendum to private val parameter variance error message #23876
    • Fix compiler crash with -Ymagic-offset-header #24124
  • Rewrites
    • Deduplicate patches before applying them to sources #24215
  • Scaladoc
    • Indicate optional parameters with = ... #23676
    • Scaladoc Support for Capture & Separation Checking #23607
    • Capture Calcuclus: don't eagerly drop caps on parameters #23759
    • Fix rendering of function-type aliases #24042
  • SemanticDB
    • Add context parameters to SemanticDB synthetics #23381
    • Include synthetic apply in semanticdb #23629
  • Tuples
    • Fix: make vals created in desugaring of n-ary lambdas non-synthetic #23896
  • Typer
    • Prevent crash in SAM conversion with mismatched arity #23877
    • Handle assertion error in TyperState #23665
    • Correctly require a ClassTag when building a multidimensional Array #23902
    • Make isExactlyNothing and isExactlyAny work for And/OrTypes #24016
View older Scala versions

Scala for Mac

Free
In English
Version 3.7.4
Write a detailed review about Scala

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
0.0

(0 Reviews of Scala)

There are no reviews yet
  • Comments

  • User Ratings

Help the community
There are no reviews yet, be the first to leave one
Help the community
There are no ratings yet, be the first to leave one

How would you rate Scala?