Thursday, June 04, 2009

2009-06-04 Thursday - Bay Area Scala Enthusiasts at Twitter HQ

I'm deep in the heart of Twitter country tonight: Bay Area Scala Enthusiasts meeting.

Martin Odersky, the creator of the Scala programming language, is giving a talk tonight.

Alex Miller, from St. Louis, announced he is organizing a conference to be held in St. Louis later this Fall

Martin's Talk: What's New in Scala 2.8

Next version will be 2.8

Some extended & modified libraries: swing, collections

New Language Features: named args, specializations, generics, package objects

Optional plugins, continuations

Redesigned compiler/IDE interface

New Language Features:

Named and default arguments:
- Defaults can be arbitrary expressions, not just constants
- Default evaluation is dynamic

Copy Method
Defining a copy
Using a copy

Nested annotations
- annotations can now be nested
- named arguments syntax is re-used

Package Objects
implemented to deal with collection libraries
refactored the class space

Package objects make packages more like objects

Old Scala Collections (pre 2.8): grew over time, gradually, lacked a uniform structure

New Scala Collections: Uniform structure, every operation is implemented only once, selection of building blocks now in package scala.collection.generic

Generics cause a performance hit if you are dealing with primitive types - because they require a uniform representation - everything needs to be boxed...@specialized can be used to avoid the boxing/unboxing problem.

Better Tools
- REPL with command completion
- Newly designed IDE/Compiler interfaces

New control abstractions
- Continuations plugin

More Features:
- extended swing library
- performance improvements
-- structural type dispatch
-- actors
-- vectors, sets and maps
- standardized comopiler plugin architecture

How to get it
- available now via /trunk (bleeding edge)
- final version planned for September/October

Beyond 2.8
- common focus: parallelism and concurrency
- developing a rich library of concurrency abstractions
-- actors
-- transactions
-- data parallelism
-- stream processing
- work with Doug Lea on concurrency datastructures
- advanced tyhpe systems to gurantee isolation and effect tracking
- Goal: in 5 years, Scala should be language of choice for the creation of concurrent and parallel systems.

Breaking News: The meeting organizer mentioned that he just had a phone conversation with Joshua Bloch tonight - and that he said he may finally have to take a look at Scala.

No comments: