News for hackers. Stuff that matters.
Re:Go team adding a Go language server to core by dev_dull on Friday September 21, 2018 @06:11PM (#18043040)
> Tooling is so important to the developer experience for any language, and a language server is one of the most important kinds of tooling there is (because the user interacts with it on virtually every keystroke in their editor).

Here’s how languages backed by large corporations win. They have the resources and the optics to know why these non-fun features are important.

Re:Go team adding a Go language server to core by int_19h on Saturday September 22, 2018 @02:58AM (#18044873)
The irony is that the popularization of the language server protocol made it easier for small languages to get good tooling. Where before you had to either write your own IDE, or pick an existing one (of which all had upsides and downsides, so better pick wisely) and write an extension for it - often requiring learning a completely new language and framework to do so - now you can write a straightforward out-of-proc server implementation in the language itself (and likely reusing the existing parser etc that you already have) against a standard protocol, and have several popular IDEs and editors light up immediately.
Re:Go team adding a Go language server to core by oblio on Saturday September 22, 2018 @05:57AM (#18045326)
The ironic thing is that the LSP was started by a corporation.
Re:Go team adding a Go language server to core by int_19h on Saturday September 22, 2018 @10:17PM (#18049038)
To some extent; but there's solid reasoning behind this. By coming up with LSP, Microsoft achieved two important goals.

First, and most importantly, its languages (esp. TypeScript) can be used by people who already have an established workflow around an existing editor or IDE. It's much easier to sell a new language that plays well with an existing ecosystem, than it is to sell a whole new ecosystem (and Microsoft knows that full well from experience with .NET!). And higher adoption of TypeScript across the industry means that more people eventually come through it to the larger Microsoft ecosystem, as well, even if it's a small percentage of the larger crowd.

At the same time, it's also a way to recruit the open source community to extend Microsoft IDEs. If you're making a new PL or templating framework or something else that needs editing support, and your audience is primarily people on Vim and Sublime, then LSP is an obvious choice to minimize code duplication. But once you have it, you might as well package it for the VSCode extension gallery as well (and if you won't, someone else probably will).

So I think it's a win-win for everyone, except for companies that sell integrated all-in-one tooling solutions where the main benefit to the user is derived from only one part of it (because users can now mix and match as they see fit, and bundling becomes harder).

Re:Go team adding a Go language server to core by georgewfraser on Friday September 21, 2018 @07:12PM (#18043370)
As someone who has worked on a Java language server [1] on-and-off for 2.5 years, for fun, I disagree that tooling is not fun :)

[1] https://github.com/georgewfraser/vscode-javac

Re:Go team adding a Go language server to core by skybrian on Friday September 21, 2018 @10:13PM (#18044091)
You can generalize this by saying that as production values go up and user expectations rise, it takes more work and a larger organization with more people to succeed.

This is true of programming languages, but just as true of movies, games, mobile apps, and so on. It's the result of competition in a creative endeavor where it's possible to scale by adding more people.

One way to avoid this is to come up with a different "indy" aesthetic where traditional production values aren't so important. Another way is to figure out how to build on the work of others instead of starting from scratch.

Re:Go team adding a Go language server to core by colemickens on Friday September 21, 2018 @07:23PM (#18043407)
I don't see how it stands to reason that this is a function of large corporations. Rust has been further along this path given their relative ages and Mozilla is no where near the size or scope of Google. Likewise with a number of other languages that have official or otherwise LSs. Same story with Cargo out of the gate, vs Go modules after nearly 5 years of pain without them, etc.

Edit: I sound more negative than I meant. I am excited about this. It was cool that Sourcegraph and the VS Code extension pioneered here, but it's exciting to have official support and a place for everyone to rally for improvements. I look forward to seeing this used in things like Theia, VS Code, etc.

Re:Go team adding a Go language server to core by nemothekid on Friday September 21, 2018 @08:38PM (#18043785)
The reason Go took so long with modules is another function of large corporations. Google doesn’t use modules internally (they have the monorepo) so having a module system wasn’t important.

Rust may have been further along on this path, but in the grand scheme of things Go 1.1 feels far more “complete” than Rust 2015 - and a large part of that is Go’s huge standard library that Google could fund to develop.

Re:Go team adding a Go language server to core by gameswithgo on Friday September 21, 2018 @07:54PM (#18043564)
Rust has a lot of great tooling. Cargo is top notch. The RLS implementation is not good yet though, and there is no good news in the near term for it.
Re:Go team adding a Go language server to core by nicoburns on Saturday September 22, 2018 @07:59AM (#18045655)
There's a thread on rust internals where planning is taking place for a long-term strategy for RLS. It looks like end of 2019 might be a realistic time frame for a compiler-backed RLS. The good news is that it looks like this work might have some significant benefits for incremental compile times too :)
Re:Go team adding a Go language server to core by Boulth on Saturday September 22, 2018 @04:23AM (#18045083)
> Cargo is top notch.

I agree Cargo is good but there are some issues that bug me (e.g. no support for docker layers with cargo --dependencies-only, xargo is not merged in, is there a support for custom repositories yet?).

Re:Go team adding a Go language server to core by baq on Saturday September 22, 2018 @07:07AM (#18045502)
Kinda sorta for custom repos - you can use the replace option with a proxy like artifactory, but it isn't the real deal yet.
Re:Go team adding a Go language server to core by frou_dh on Saturday September 22, 2018 @04:11AM (#18045048)
> Here’s how languages backed by large corporations win. They have the resources and the optics to know why these non-fun features are important.

Getting started on an official autocompletion story 6+ years in, is a demonstration of this corporate-backed might?

Something like C# and VisualStudio going hand-in-hand from the outset is a demonstration of corporate-backed tooling might.

Re:Go team adding a Go language server to core by Loic on Saturday September 22, 2018 @07:22AM (#18045549)
Microsoft has always been very supportive of the developers in all the technologies they put on the market (Remember the "Developers!" from Ballmer?). They have the expertise in tools and company long-term requirements. Now that they are combining all that with a more open approach, we get Visual Studio Code, the Language Server Protocol, the buying of GitHub, etc. Interesting times for the developers!
Re:Go team adding a Go language server to core by dev_dull on Saturday September 22, 2018 @12:37PM (#18046667)
Microsoft is perhaps the very best example of this.
Re:Go team adding a Go language server to core by taeric on Friday September 21, 2018 @07:58PM (#18043587)
This is ironic, in that tooling is exactly what large mainframe systems had early on. With extensive tooling can come lack of agility, which can be its own death sentence.

That said, an advantage of being backed by a large corporation is mind share. Having corporate spending on effectively propaganda helps. A lot.

Re:Go team adding a Go language server to core by bmurphy1976 on Friday September 21, 2018 @09:45PM (#18044008)
>With extensive tooling can come lack of agility, which can be its own death sentence.

What do you mean by this? Without tooling you can get stuck in the muck doing everything by hand. Tools enable you to do more with less, so I don't really understand what you are getting at here.

Re:Go team adding a Go language server to core by cwyers on Friday September 21, 2018 @10:20PM (#18044109)
I think he means that it's harder to grow/innovate with the language, not that it makes coding _in_ the language harder.
Re:Go team adding a Go language server to core by taeric on Friday September 21, 2018 @11:26PM (#18044291)
Indeed I did.
Re:Go team adding a Go language server to core by stcredzero on Friday September 21, 2018 @06:12PM (#18043049)
Since when is tooling non-fun? This depends on a lot of factors.
Re:Go team adding a Go language server to core by asdkhadsj on Friday September 21, 2018 @06:16PM (#18043075)
Exactly. Hell, I consider tooling to be some of the most fun (and often difficult) things I work on in my free time.

If I can make something easier for my normal dev environment I see huge gains ~40 hours a week. That's pretty damn awesome and flashy to me. It's definitely not easy, but imo it's well worth my time.

Re:Go team adding a Go language server to core by kjeetgill on Friday September 21, 2018 @07:07PM (#18043347)
I'd say tooling is so much fun it derails most of my pet projects. This is why there are 500 different static site generators produced a week.
Re:Go team adding a Go language server to core by ehsankia on Friday September 21, 2018 @06:31PM (#18043162)
I agree that tooling can be fun. What probably many more people would agree is non-fun is good documentation.
Re:Go team adding a Go language server to core by hayden592 on Friday September 21, 2018 @11:50PM (#18044346)
I actually prefer to write dev tools. Implementing my product manager next feature will always be less satisfying than helping a co-worker.
Re:Go team adding a Go language server to core by mi_lk on Friday September 21, 2018 @07:22PM (#18043404)
I'll be more than happy if someone pays me to implement language server.
Re:Go team adding a Go language server to core by dmoy on Friday September 21, 2018 @08:49PM (#18043826)
Google does hire for these sorts of roles.
Re:Go team adding a Go language server to core by wpdev_63 on Friday September 21, 2018 @07:49PM (#18043520)
You're saying this as if their package manager isn't still garbage.
Re:Go team adding a Go language server to core by saturn_vk on Saturday September 22, 2018 @05:25AM (#18045238)
It's not?
Re:Go team adding a Go language server to core by gameswithgo on Friday September 21, 2018 @07:53PM (#18043556)
they are fixing that too
Re:Go team adding a Go language server to core by stouset on Friday September 21, 2018 @07:59PM (#18043600)
They have been “fixing that” since like 2012.