1
1
---
2
2
layout : blog-detail
3
3
post-type : blog
4
- by : Jorge Vicente Cantero
4
+ by : Jorge Vicente Cantero, Justin Kaeser and Ólafur Páll Geirsson
5
5
title : " Announcing the Build Server Protocol v1.0.0"
6
6
---
7
7
8
- I've always been convinced that the choice of an editor, IDE or build tool is
9
- personal and, therefore, asking you to go out of your way to learn a new tool
10
- to write Scala is not a viable solution. First, because changing people's
11
- habits is difficult and takes time. Second, it frustrates beginners who just
12
- want to learn the language. Last, it distracts seasoned developers from
13
- writing good Scala code until they master their toolchain. In the worst case,
14
- people will give up and not learn the language because the "cognitive
15
- overhead" would be too high.
8
+ The choice of an editor, IDE or build tool is personal and, therefore, asking
9
+ you to go out of your way to learn a new tool to write Scala is not a viable
10
+ solution. First, because changing people's habits is difficult and takes time.
11
+ Second, it frustrates beginners who just want to learn the language. Last, it
12
+ distracts seasoned developers from writing good Scala code until they master
13
+ their toolchain. In the worst case, people will give up and not learn the
14
+ language because the "cognitive overhead" would be too high.
16
15
17
16
Instead it is much better if we, tooling developers, can bear the burden of
18
17
shipping tools that integrate with your existing workflow and you, as a user,
19
18
can just install them with a quick search and a single click.
20
19
21
- Today, I introduce the Build Server Protocol, a project that I believe plays
20
+ Today, we introduce the Build Server Protocol, a project that we believe plays
22
21
a fundamental role in bringing us closer to making this vision a reality.
23
22
24
23
## Any IDE, Any Build Tool
@@ -81,20 +80,18 @@ alongside LSP.
81
80
82
81
## The Build Server Protocol v1.0.0
83
82
84
- Today I'd like to announce ` v1.0.0 ` of the Build Server Protocol. This
85
- version has been the result of a fruitful collaboration between the Scala
86
- Center (me and [ Ólafur Páll Geirsson] [ olafurpg ] ) and [ Justin
87
- Kaeser] [ jastice ] , the [ JetBrains] developer responsible for sbt support in
88
- [ IntelliJ IDEA] .
83
+ Today we have released ` v1.0.0 ` of the Build Server Protocol. This version has
84
+ been the result of a fruitful collaboration between the Scala Center ([ Jorge
85
+ Vicente Cantero] [ jvican ] and [ Ólafur Páll Geirsson] [ olafurpg ] ) and JetBrains
86
+ ([ Justin Kaeser] [ jastice ] ).
89
87
90
- Justin and I have spent the past months implementing a prototype of the Build
91
- Server Protocol between [ IntelliJ IDEA] (client) and [ Bloop] (server). Bloop
92
- is a build-tool-agnostic compilation server that integrates with build tools
93
- such as [ sbt] , [ mill] or [ Maven] to allow you [ to compile, test and run your
88
+ We have spent the past months implementing a prototype of the Build Server
89
+ Protocol between [ IntelliJ IDEA] (client) and [ Bloop] (server). Bloop is
90
+ a build-tool-agnostic compilation server that integrates with build tools such
91
+ as [ sbt] , [ mill] or [ Maven] to allow you [ to compile, test and run your
94
92
applications much faster and outside of your stock build
95
- tool] ( https://www.scala-lang.org/blog/2017/11/30/bloop-release.html ) . Bloop
96
- has a client-server architecture, so it is the perfect project to implement
97
- BSP.
93
+ tool] ( https://www.scala-lang.org/blog/2017/11/30/bloop-release.html ) . Bloop has
94
+ a client-server architecture, so it is the perfect project to implement BSP.
98
95
99
96
The goal of this prototype was two-fold. On the one hand, we wanted to
100
97
experience first-hand the challenges of implementing BSP and learn new
@@ -174,7 +171,7 @@ IntelliJ's BSP import for Bloop and other build tools. The goal is to bring
174
171
BSP import to a production-ready level where users can benefit from a
175
172
build-tool-agnostic import project that is both faster and more reliable.
176
173
177
- Second, I 'd like to invest some resources in creating a better synergy
174
+ Second, we 'd like to invest some resources in creating a better synergy
178
175
between build tool authors and IDE implementors. The [ Scala Tooling Protocols
179
176
Working Group] ( https://github.com/scalacenter/tooling-working-groups/ )
180
177
created by [ Jon
@@ -183,18 +180,17 @@ ago will help us discuss and refine the protocol so that all tooling
183
180
developers in our community can implement the protocol at scale and gain more
184
181
experience from this process.
185
182
186
- Third, I 'd like to collaborate more closely with developers working on Scala
183
+ Third, we 'd like to collaborate more closely with developers working on Scala
187
184
language servers like [ Metals] or [ Dotty IDE] to bring Scala support to all
188
185
editors. There is a big chunk of Scala developers that don't use IntelliJ and
189
- I 'd like to make sure that they benefit from a smooth developer experience
186
+ we 'd like to make sure that they benefit from a smooth developer experience
190
187
too.
191
188
192
-
193
- Last but not least, I'd like to reach out to folks in other programming
189
+ Last but not least, we'd like to reach out to folks in other programming
194
190
language communities to find out ways we can pull our efforts together.
195
191
The Build Server Protocol is ** a language-agnostic protocol that can be
196
- modified to add support for any programming language** and I would love to
197
- see other communities improving the future of the build tools and IDE
192
+ modified to add support for any programming language** and we would love to see
193
+ other communities improving the future of the build tools and IDE
198
194
communication.
199
195
200
196
## How to get involved
@@ -211,17 +207,6 @@ like to help test the integrations, join our
211
207
[ ` scalacenter/bsp ` ] ( https://gitter.im/scalacenter/bsp ) Gitter channel and
212
208
let's discuss ways we can work together.
213
209
214
- ## Acknowledgements
215
-
216
- I'd like to thank my colleague at the Scala Center, Ólafur Páll Geirsson, for
217
- being the co-author of the Build Server Protocol. His help and insights, as
218
- well as his detailed understanding of [ LSP] , have been fundamental in
219
- designing BSP and focusing on the ergonomics of the clients (IDEs) first.
220
-
221
- Finally, I'd like to thank Justin Kaeser and, more broadly, JetBrains for
222
- being part of this initiative. I am optimistic our collaboration can lead to
223
- better and faster developer tools for the broad of the Scala community.
224
-
225
210
[ sbt ] : https://www.scala-sbt.org/
226
211
[ Maven ] : http://maven.apache.org/
227
212
[ Bazel ] : https://bazel.build
@@ -237,4 +222,4 @@ better and faster developer tools for the broad of the Scala community.
237
222
[ Metals ] : https://github.com/scalameta/metals
238
223
[ Dotty IDE ] : https://dotty.epfl.ch/docs/usage/ide-support.html
239
224
[ olafurpg ] : https://github.com/olafurpg
240
- [ bloop-instructions ] : https://scalacenter.github.io/bloop/docs/installation/#generate-configuration-files-for-your-project
225
+ [ bloop-instructions ] : https://scalacenter.github.io/bloop/docs/installation/#generate-configuration-files-for-your-project
0 commit comments