The Scala Programming Language for your Windows PC

Scala

Scala

  -  68.6 MB  -  Open Source
  • Latest Version

    Scala 3.6.3 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 / Windows 8 / Windows 10 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    Scala Team / External Link

  • Filename

    scala3-3.6.3.msi

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. Download Scala for Desktop today!

Scastie is Scala + sbt in your browser! You can use any version of the app, or even alternate backends such as Dotty, Scala.js, Scala Native, and Typelevel Scala. You can use any published library. You can save and share Scala programs/builds with anybody.

The Library Index (or Scaladex) is a representation of a map of all published libraries. With Scaladex, a developer can now query more than 175,000 releases of libraries. Scaladex is officially supported by Scala Center.

Features and Highlights

SEAMLESS JAVA INTEROP
It 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 of system. Let the type of 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 a guaranteed type of safety. Use them anywhere, pass them to anything.

Note: Make sure you have the Java JDK installed.

Also Available: Download Scala for Mac

  • Scala 3.6.3 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Scala 3.6.3 Screenshot 1

What's new in this version:

Highlights of the release:
- Scala 2 forwardport: -Yprofile-trace

Other changes and fixes:
Annotations:
- Fix Java parsing of annotations on qualified types
- Consider all arguments in Annotations.refersToParamOf

Backend:
- Flag class file collision as error

Compiler Phases:
- Fix
- Limit exposure to ConcurrentModificationException when sys props are replaced or mutated

Experimental: Explicit Nulls:
- Improve warning for wildcard matching only null under the explicit nulls flag (scala#21577)
- Fix warning message for matching on redundant nulls

Experimental: Capture Checking:
- Fix
- Consolidate CC
- Add path support for capture checking

Experimentals:
- Replace symbol traversal with tree traversal when finding top level experimentals

Extension Methods:
- Nowarn extension matching nonpublic member

Implicits:
- Apply implicit conversion from derived Conversion instance defined as implicit rather than given

Imports:
- Allow imports nested in packagings to shadow

Inline:
- Avoid using the current denotation in NamedType.disambiguate
- Drop phase.isTyper use in isLegalPrefix/asf
- Fix for macro annotation that resolves macro-based implicit crashing the compiler
- Allow macro annotations to recover from suspension

Linting:
- Disallow open modifier on objects
- Allow discarding "Discarded non-Unit" warnings with : Unit

Opaque Types:
- Fix pkg obj prefix of opaque tp ext meth

Parser:
- Fix: don't consider into as a soft-modifier

Pattern Matching:
- Drop inaccessible subclasses from refineUsingParent
- (Re-)Drop inaccessible subclasses from refineUsingParent
- Fix use of class terms in match analysis
- Don't project nested wildcard patterns to nullable
- Fix provablyDisjoint handling enum constants with mixins
- Do not consider uninhabited constructors when performing exhaustive match checking

Presentation Compiler:
- Update mtags to 1.4.1 and backport remaining changes
- Backport changes for the presentation compiler from Metals

Pickling:
- Avoid orphan param from default arg
- Make sure definition tree has the defined symbol

REPL:
- Allow top-level opaque type definitions in REPL
- JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0)

Scaladoc:
- Fix scaladoc TastyInspector regressions
- Bring back the fix for scaladoc TastyInspector regressions
- Fix scaladoc graph highlight background color in dark mode

Standard Library:
- Combine cases of Tuple.Zip disjoint from (h1 *: t1, h2 *: t2)

Quotes:
- Fix

Reporting:
- Do not warn about expected missing positions in quotes.reflect.Symbol
- Add missing error messages to asserts in QuotesImpl
- Don't point to the compiler backlog when a compiler plugin phase crashes
- Better error message for polytypes wrapping capturing types
- Pretty-print lambdas
- Nowarn extension matching nonpublic member
- Refactor: Improve Given search preference warning

Runner:
- Fix: update scala-cli.jar path

Releases:
- Fix layout of released SDK archives, restore intermiediete top-level directory

Scala.js:
- Shade scalajs.ir under dotty.tools

SemanticDB:
- Extract semanticDB for lifted definitions

Transform:
- Fix enclosingClass from returning refinement classes
- Attempt to beta reduce only if parameters and arguments have same shape
- Drop copied parent refinements before generating bytecode

Tooling:
- Ensure to escape characters before constructing JSON profile trace

Tuples:
- Fix tupleTypeFromSeq for XXL tuples

Typer:
- Do not crash when typing a closure with unknown type, since it can occur for erroneous input
- Revert SAM condition to what it was before
- Fix ctx implicits under case unapplySeq
- Avoid erasure/preErasure issues around Any in transformIsInstanceOf