Scala tooling development introduction
We'd like to convince more people to start working on the Open Source projects and, especially, on the quite niche but satisfying domain which is the tooling and libraries development. Sometimes it may be hard to start, set up everything, learn how to work with a given codebase and so on. It's better to learn from more experienced people and that's why we'll organise the practical meetings with the core libraries contributors and maintainers.
It's not supposed to be a super advanced hackathon so it will take just a couple of hours (6PM - 10PM max). We'll start with a brief introduction to a couple of tools (what they do, what's the project structure, how to build them) and after that you can choose what you want to work on, set up the environment with a help of our mentors, see how to work with a chosen tool, ask questions and, eventually, start working on some task.
In this pilot (depending on the interest we plan more such meetings) you can start a journey with the following projects:
Scala Center's projects:
- Metals (a Language Server Protocol implementation for Scala language maintained by Scala Center together with VirtusLab)
- Bloop (a Scala build server)
- Scalameta (a library to read and analyze Scala programs)
And Jon Pretty's Fury (a new, revolutionary dependency manager and build tool working with source dependencies).
During this meeting, you have a chance to learn how to work with codebases of the mentioned projects and help to improve the tools which you can use, but also which will improve lives of many other developers worldwide!
There will be some pizza and drinks provided.
The venue is to be confirmed as it may depend on the interest. :) Anyway it's supposed to be close to the city center / main square.
The meeting will be conducted by:
- Tomasz Godzik
Tomasz is one of the main Metals maintainers and works in close cooperation with Scala Center to improve Metals so that it can become a valuable tool for the Scala community. Mainly a Scala developer with a tooling background, he sharpened his skills trying to improve tooling for one of the largest Scala codebases in the world.
- Jon Pretty
Jon has been having fun riding the bleeding edge of Scala for over a decade, and he’s not finished yet.
While he’s not travelling the world attending Scala conferences or organizing Scala World, Jon spends his time working on a variety of open-source Scala libraries and providing professional Scala training services.
- Myroslav Golub
Myroslav is the maintainer of Fury and one of its main contributors.
In the past, there were a couple of development environments for Scala: IntelliJ IDEA, Scala IDE for Eclipse and ENSIME (a server which could be used with plenty of editors). Only IntelliJ IDEA has stood the test of time and is still being developed, but some time ago a viable alternative has born. Metals has constantly growing base of the satisfied users and gets more and more features.
It can be used with various editors like Visual Studio Code, Atom, Vim, Sublime Text, Emacs and turn them into powerful but still fast and lightweight IDE. It can work also with Eclipse and it filled a gap which appeared after aforementioned Scala IDE for Eclipse has been abandoned.
Fury is an experimental dependency manager and build tool for Scala and (potentially) other JVM languages, designed and implemented by Jon Pretty with support from VirtusLab. It is still under active development, and is in private beta.
Bloop is the Build Server Protocol implementation which provides the fast compile, test and run functionality. It integrates with most of JVM build tools.
Scalameta helps to work with Scala syntax trees which allowed to create many useful tools like Metals, Scalafmt or Scalafix.