Announcement

Collapse
No announcement yet.

GCC Is Working On An Implementation Of Microsoft's Language Server Protocol

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GCC Is Working On An Implementation Of Microsoft's Language Server Protocol

    Phoronix: GCC Is Working On An Implementation Of Microsoft's Language Server Protocol

    David Malcom of Red Hat today published an interesting patch series that includes an implementation of Microsoft's Language Server Protocol (LSP)...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    That's quite interesting! Language servers are the future.

    Comment


    • #3
      Originally posted by oleid View Post
      That's quite interesting! Language servers are the future.
      In principle yes but I wonder what is the copyright / patent status of this particular protocol. Don't forget we are talking about Microsoft.

      Comment


      • #4
        I don't get the point. Clients have enough processing power to do that without the need of a server... It all sounds like a good idea, but why does it need to be distributed? I could just just software running locally doing the same thing. Using servers for this, just adds a dependency nobody really wants to rely on.

        Or I think I just miss something important here.

        Comment


        • #5
          Originally posted by karolherbst View Post
          I don't get the point. Clients have enough processing power to do that without the need of a server... It all sounds like a good idea, but why does it need to be distributed? I could just just software running locally doing the same thing. Using servers for this, just adds a dependency nobody really wants to rely on.

          Or I think I just miss something important here.
          The client and server run on the same machine and the server is designed to be launched by your IDE as needed.

          The LSP website explains it more visually, but the idea is that, instead of having to write a "<language>-<ide>" plugin for every combination of IDE and language (M * N plugins), you just write one "LSP client" for each IDE and one "LSP server" for each language (M + N plugins).

          No more waiting for your favourite IDE to get a plugin for <new favourite language> just because all the really productive developers favour <some other IDE> instead.

          It's a server rather than a plugin API so you don't have to worry about things like "The only good Haskell parser is written in Haskell, but my IDE is written in Java and their GCs don't get along within the same process". (Disclaimer: I just pulled those names out of a hat without doing any research.)
          Last edited by ssokolow; 24 July 2017, 07:35 PM.

          Comment


          • #6
            Originally posted by ssokolow View Post

            The client and server run on the same machine.

            The LSP website explains it more visually, but the idea is that, instead of having to write a "<language>-<ide>" plugin for every combination of IDE and language (M * N plugins), you just write one "LSP client" for each IDE and one "LSP server" for each language (M + N plugins).
            ohh, yeah true, I wasn't commenting on the functionality thing though. Just a matter of how easy it will be to actually run it locally. But I guess even Microsoft changed and it actually will be okay.

            Comment


            • #7
              Originally posted by karolherbst View Post

              ohh, yeah true, I wasn't commenting on the functionality thing though. Just a matter of how easy it will be to actually run it locally. But I guess even Microsoft changed and it actually will be okay.
              Well, how easy it is to run your favorite IDE on iOS or Android?

              Comment


              • #8
                Originally posted by jacob View Post
                In principle yes but I wonder what is the copyright / patent status of this particular protocol.
                copyright on a protocol? so you have your tinfoil hat ready?

                Comment


                • #9
                  Originally posted by karolherbst View Post
                  I don't get the point. Clients have enough processing power to do that without the need of a server... It all sounds like a good idea, but why does it need to be distributed?
                  it doesn't
                  Originally posted by karolherbst View Post
                  I could just just software running locally doing the same thing. Using servers for this, just adds a dependency nobody really wants to rely on.

                  Or I think I just miss something important here.
                  yes. server is running locally. it adds a "dependency" to a compiler, but you already have that dependency. and it removes dependency on implementing every language parser in every ide. you have compiler, it already has parser. now it exports data to ide

                  Comment


                  • #10
                    Originally posted by ssokolow View Post

                    The client and server run on the same machine and the server is designed to be launched by your IDE as needed.

                    The LSP website explains it more visually, but the idea is that, instead of having to write a "<language>-<ide>" plugin for every combination of IDE and language (M * N plugins), you just write one "LSP client" for each IDE and one "LSP server" for each language (M + N plugins).

                    No more waiting for your favourite IDE to get a plugin for <new favourite language> just because all the really productive developers favour <some other IDE> instead.

                    It's a server rather than a plugin API so you don't have to worry about things like "The only good Haskell parser is written in Haskell, but my IDE is written in Java and their GCs don't get along within the same process". (Disclaimer: I just pulled those names out of a hat without doing any research.)
                    As David Wheeler once said,

                    All problems in computer science can be solved by another level of indirection... Except for the problem of too many layers of indirection.

                    Comment

                    Working...
                    X