License: New and Simplified BSD licenses
Web Page: http://scala-lang.org/gsoc/2015.html
Mailing List: http://scala-lang.org/community/
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.
Many existing companies who depend on Java for business critical applications are turning to Scala to boost their development productivity, applications scalability and overall reliability.
The Scala team was participating in GSOC from 2010 to 2014, and we had many successful projects that were involved in extending the main language compiler, improving IDE support and working on external open-source projects that were written in Scala (like Akka or Lift or Kojo).
We look for motivated students are who are good in object- and functional-oriented programming (preferably have some familiarity of Scala itself or at least took the Coursera online course). Apart from the projects proposed on the ideas page we are interested in supervising any projects as long as they are written in Scala.
- Automated refactorings for scala.meta Metaprogramming is about creating code that manipulates code. It has proven to have useful applications in many areas, one of them is code refactoring – the technique to improve the internal structure of a program. The goal of this project is to create an automated refactoring framework for scala.meta and to demonstrate its capabilities. This includes: organizing existing scala.meta infrastructure, binding to popular IDEs, and developing some proof-of- concept refactorings.
- Continue work on MongoDB support for Slick My proposal is to update and improve previous implementation of MongoDB driver and make missing piece, hence support for nested documents, arrays and DBRefs which are essential in mongo databases and in practice most of mongo documents use it. To do that it is necessary to make some changes in Slick internals. My idea is to provide more flexible type system in slick and make mongo driver use it.
- Data migration tool The goal of this project is creating a tool for managing data migration scripts based on Slick. The idea is roughly similar to migrations/evolutions in Ruby on Rails or Scala Play 2. We will need to significantly improve (or re-write) the code of a proof of concept implementation to make it production ready, extend it by futher features and explore some exciting ideas like reliable migrations in a development scenario with branches (like git branches).
- Data migration tool Hi there! First of all I want tell thanks all scala team because I think it is one of the (how to say) most comfortable programming language for development. Based on a list of ideas I think I can help you with "Data migration tool". I have experience with different migration tools such as Ruby's ActiveRecord::Migration, and Liquibase.In general I think I have all skillі that is required for developing this tool at the front of Slick.
- Improving the Scala interpreter The project's goal is to improve Scala’s utility as a scripting language. A new interpreter will be crated based on Scala’s REPL. The overhead of starting a new JVM and a new compiler for running each script will be removed by keeping a single interpreter instance alive. The memory management of the interpreter will be improved. Compilation times for script files will be amortized by caching. Dynamically loading Maven artifacts with built-ins from script files will be made possible.
- ScalaMeter – JMH Frontend and Binary Compatible Benchmark Data Format ScalaMeter is a performance testing tool for JVM. With concise and simple DSL it allows to focus on benchmark code and handles automatically noise from GC or JIT. The plan is to extend it with JMH support, which is a new but quite well-known framework for benchmarking on JVM. Next thing to do is to write binary compatible data format for benchmark results. Moreover, additional performance metrics should be added, and existing ones should produce more generic results not limited only to Double's.
- TASTY support for Scala TASTY is a typed AST pickling format implemented in the Dotty compiler. The main goal of this project is to provide an implementation of TASTY for the Scala ecosystem. Such implementation for Scala will facilitate the use of typed ASTs as an interchange format for compiler interactions, enable powerful optimizations based on additional information from persisted trees, and enable several advanced features of scala.meta.
- Type Specialization and JVM compatibility in Dotty Developed as “a platform to try out new language concepts and compiler technologies for Scala”, the Dotty compiler has been growing fast. However, it still lacks some key components, including Type Specialization. While I am already working on implementing it in the context of a semester project at the Federal Institute of Technology (EPFL), Google Summer of Code would be the opportunity to : 1) finish implementing type specialization, and 2) consider compatibility issues with the JVM