At the risk of venturing into an un-mute-able eventual flame war, i’ll add:
I’m surprised that no one has brought up Bazel yet.
While it’s not in wide use currently, there’s some decent work being done by Oscar and friends to make it easier, and once this progresses a bit more, i think the benefits it provides could really become quite compelling.
I agree with you, bazel is really exciting. I hope that bloop will support it soon. In my opinion, it just still needs time and UX polish so that normal Scala developers that are not exposed to the scaling challenges of big companies consider using it.
There is a big misunderstanding of compatibility between SBT and major IDEs.
From theoretical view it is almost impossible to achieve such compatibility. SBT has a dynamic nature, it could be programmed in any desired way and switch dependencies and sources in each run. All IDEs has their own build format which is static: number of string properties specifies dependencies, sources and destinations.
So it should be expected that SBT is incompatible with both Idea and Eclispe in practice. IDE could not import SBT project if it is too simple (and use root folder to hold .Scala files) or if it is too complicated and has lot of dynamic content.
The issue could be solved with IDE discarding own static configuration format and using dynamic proxy. But they would never dare.
To fix this problem in a generic way, we created bsp together with JetBrains https://github.com/scalacenter/bsp. I recommend you watch my talk with Justin at Scalasphere 2018 https://youtu.be/Ppj0EFns59M
Repl is a bit complex for me i don`t know why I would always go for Scala !
Developer - Apps4Rent
Could you summarize if we’re not able to watch the video?
You can read the motivation section in the bsp specification, hosted in the bsp repo linked above
There’s also Fury to look out for.