GSoC/GCI Archive
Google Summer of Code 2010

École Polytechnique Fédérale de Lausanne, Scala team

Web Page: http://www.scala-lang.org/node/5542

Mailing List: http://www.scala-lang.org/node/199

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive. Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application.

 

The Scala community consists of highly competent enthusiasts who willingly take time to share their knowledge and experiences. There are number of Scala blogs, a very active set of mailing lists, a number of Scala enthusiast meetings worldwide, and Scala-related research conference publications. Scala development is supported by the state-of-the art build management (Hudson), issue tracking (Trac), version control system (SVN, Git), and an extensive test-suite.

Projects

  • ASTSIE - Advanced Semantic Tools for the Scala IDE for Eclipse The Scala programming language has a number of features which would benefit from additional feedback in programming tools and IDEs. It would be very desirable to have support in the Scala tooling for Eclipse for kinds of advanced semantic analysis tools to make the Scala IDE for Eclipse more productive.
  • Collaborative Scaladoc Scala is new programming language allowing to build new systems faster and easier. During last months, Scala started to gain more and more attention in the programmers community. Therefore, it is important to provide quality documentation as this is the part that many new Scala programmers heavily rely on. Collaborative way of creating documentation can improve its quality and improve its comprehensibility.
  • ENSIME, a new Scala development environment for Emacs Emacs modes usually lack sophisticated IDE functions such as type checking, type inspection and method completion. Since the introduction of the Scala Presentation Compiler, it is now possible for an IDE to interact directly with the Scala compiler, leveraging the core type checking and type inference support. The ENSIME project aims to expose the Presentation Compiler to Emacs in a client/server architecture similar to SLIME, in order to provide advanced Scala IDE functionality to Emacs users.
  • Hardware Accelerated 2D Graphics Aim for this project is to build hardware accelerated kind of engine for 2D drawing system for Scala. Using advantage that Scala is compatible with Java, in this case JOGL which is Java bindings for OpenGL would be use. To achieve possible high performance with well-look and "fancy" effect I plan to use great innovation for graphic libraries - shaders. That 2D engine will be API which will lets users customise shaders for all rendered objects (primitives, images, figures etc).
  • Lift and SBT Template engine This idea has been taken from the ideas-list so I won't include an abstract. Although this proposal is from the ideas-list I’ve been part of the group of people from the Lift google group that created this idea.
  • Scalable Remote Actors This proposal identi fies Java serialization and blocking IO as the two main potential performance bottlenecks in the current implementation of remote actors in Scala, and suggests separate, but relevant summer projects to deal with each issue. Other relevant existing open source projects are discussed, and while some ideas are borrowed, the main idea is that these projects do not address both of these issues together, which makes this particular summer project proposal unique.