We stand with Ukraine to help keep people safe. Join us
Free
FreeAbsolutely Free

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.1.2

Updated on Apr 12 2022

  • Enable generation of TASTy files readable for older compilers #14156
  • Add eval (-e) expression evaluation to command line #14263
  • Format compiler crash stack traces #14269
  • Improve typer traces #14270
  • Add -Xmacro-settings option and API #14234
  • Add reflect TypeRepr.substituteTypes #13166
  • Expand compiletime.ops #13400
  • Cache isSubspace for a 3000% speedup #13637
  • lint trivially self-recursive extension methods #13709
  • add printTypesAndErasure test main method to compare typer and erasure #13745
  • Warning for infinite recursive lazy vals #13749
  • Provide scala.home setting for scripts #13759
  • Improve message when -Xmax-inlines limit reached #13783
  • Add append operator to Tuple #13786
  • Allow passing any JMH option to scala3-bench #13787
  • Warn on lossy conversion of literals & constants #13792
  • Consider minTargetVersion as always supported #13811
  • Add -Xmacro-check for Block constructors #13824
  • Navigate the AST within AnnotatedType and ImportType #13834
  • Refine handling of CanThrow capabilities #13866
  • Indicate name of classfile where leaky mapping of existential type happens #13879
  • Refine treatment of TypeBounds in patterns #13881
  • Impose implicit search limit #13886
  • Better handling of multiple exceptions for saferExceptions #13914
  • Complete when importing same symbol multiple times #13972
  • Implement :settings in the REPL #13982
  • Fixes and improvements to trace logging #13984
  • Fail compilation of attempting a 0-arity product extraction #14029
  • Traverse the types to find experimental references #14047
  • Retain HasDefaultParams flag on export. #14051
  • Also consider private symbols in implicit scope of type #14054
  • Allow return in tailrec position #14067
  • Make outer references Java-synthetic #14084
  • Add Reflect TypeRepr.typeArgs #14088
  • Reject empty target names #14090
  • Use =>> instead of => for printing a LambdaTypeTree #14107
  • REPL: Add compiler options to :reset #14139
  • Add hint on -Xcheck-macro scope extrusion failure #14203
  • Support quoted PolyFunction #14222
  • Update wording of uninitialized value error to be grammatically correct #14292
  • Rename -Yscala-release, -release and -Xtarget settings to make them more consistent #14606
  • Fix missing known subtypes #13794
  • Markdown preprocessor #13140
  • Add source position for errors from doc-root-content file #13908
  • Fix double implicit modifier #13909
  • Fix links to unexisting types sites #13917
  • Add support for tables in wiki syntax #13933
  • Improve features parity with old scaladoc/docs.scala-lang #13954
  • Add missing styles to snippets that are not Scala #13959
  • Fix filtering extensions. Better support for exports #14125
  • Add annotations #13818
  • Support TypeApply Synthetic #13481
  • Fix #13855: Chaining Match Types fails at value level #14354
  • Fix #12260: Add underscore to match type syntax #12261
  • Fix #11861 - hash nested calls to inline definitions #12931
  • Avoid shadowing of name 'name' #13442
  • Fix #13633: Can't reduce match types inside a type alias #13635
  • Fix erased context function types #13736
  • Widen qualifier skolems #13748
  • Change order of proxy evaluation when inlining #13755
  • Fix init checker on secondary constructor parameter access #13776
  • Add missing @experimental in Tuples #13778
  • Fix improper usage of constrained breaking type inference #13779
  • Fix error message when deriving an obstract type #13812
  • Handles Nothing when synthesizing CanEqual #13828
  • Fix #13026: No longer print VBAR and padding in the middle of the message #13829
  • Solves dotc assertion error on (non-sensical?) parameter type. #13769 #13830
  • Fix missing code-completion on standalone annotations #13831
  • Fix comparing AnyVal | Null to Null and selecting in UnsafeNulls #13837
  • Fix error summary printed twice #13843
  • Detect opaque aliases in inline val types #13857
  • Fix @experimental @main methods #13858
  • Fix #13860: Ignore bridges when looking for a default getter's attached method. #13870
  • Add missing position when expanding error #13872
  • Try to instantiate type variables in tryInsertImplicitOnQualifier #13884
  • Fix crasher for missing integer argument on command line #13894
  • Fix messages leaking via suspended messages #13911
  • Don't lift try-catch statements that are already in local functions #13944
  • Initialize quote cache on tasty inspector run #13953
  • Tighten product match logic in irrefutable check #13962
  • Fix Mirror.Product for type lambdas #14003
  • Sound type avoidance (hopefully!) #14026
  • Fix REPL clashing with CWD artefacts #14021
  • Don't retypecheck erroneous arguments when fixing function #14043
  • Fix #13994: initialise inline ctx in lateEnter #14050
  • Inline inlined private methods before checking accessibility #14049
  • Handle hoisted super arguments correctly in elimByName #14057
  • Check variance of RHS of opaque type #14058
  • Don't insert INDENT/UNINDENT without anything in between #14066
  • Don't generate illegal types when clarifying implicit errors #14068
  • Allow import to show completions #14069
  • Bypass eligible caches for implicit search under GADT constraints #14072
  • Fix passing jvm options #14073
  • Harden erasure of PolyFunction apply's #14075
  • Test for non-open classes warning #14079
  • Avoid field/field clashes #14081
  • Fix reachability of unapplySeq of non-List sequences #14112
  • Check for splices in quoted macro parameters #14117
  • Fix reachability by retaining spaces of Prod params #14118
  • Extract GADT constraints from wildcard type arguments #14132
  • Fix derivedPolyProto to use the correct result type #14148
  • Remove reflect TypeApply TypeVars #14201
  • Clear temp var for captured var expr to permit GC #14205
  • Re-type implicit candidate if expected type is context function #14219
  • Adapt generic tuples to be able to access members #14242
  • Fix Scala.JS source map URIs #14243
  • Disallow erased inline definitions #14250
  • Fix #7512: Normalize type arguments before instantiation #14259
  • Disallow bottom types in erased implementations #14267
  • Fix checkNoModuleClash & avoid types with less precision loss #14274
  • Parse splices inside quoted patterns as patterns #14277
  • Make initialization checker see through synthetic applys #14283
  • Fix byte code generation for by-name parameters #14310
  • Avoid misleading error message #14331
  • Set context when reporting summonInline errors #14405
  • Fix #14541: Problem running @main methods with command line arguments #14543
  • Check defined in src for cache in companion #14557
View older Scala updates

Information

License

Free

Size

35.1 MB

Developer’s website

https://www.scala-lang.org/

Downloads

83

App requirements

  • Intel 64
  • Intel 32
  • Mac OS X 10.4.0 or later
Try our new feature and write a detailed review about Scala. All reviews will be posted soon.
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 )
There are no reviews yet
Help the community
There are no reviews yet, be the first to leave one
Free
FreeAbsolutely Free
How would you rate Scala?
Similar apps
Python
Object-oriented programming language.
Is this app is similar to Python? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Logtalk
Object-oriented logic programming language.
Is this app is similar to Logtalk? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Agena
Procedural programming language.
Is this app is similar to Agena? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes