14 comments

  • nikolatt 25 minutes ago
    DetachHead (maintainer of basedpyright) has criticized the TSP before:

    - https://docs.basedpyright.com/v1.40.2/type-server/

    - https://github.com/microsoft/pylance-release/discussions/718...

    Ty (the type checker maintained by astral) however will apparently support the TSP: https://github.com/astral-sh/ruff/discussions/23432

  • rjbwork 35 minutes ago
    It's such a shame python got such mindshare. It's a disaster of a language and ecosystem that people keep bolting and hacking things that much better thought out languages have had for decades.
    • chuckadams 9 minutes ago
      I remember falling in love with Python when I first learned it at version 1.5, liked it even more with 2.0, but when 3.0 came around, that's when I noticed the ecosystem falling apart. Not for the obvious incompatibility schism: I do think most of 3.0's changes were good ones, and it finally is the standard default version now, but in many other ways it feels like the ecosystem has still never really recovered. Virtualenv is still the same grotesque hack, where rather than doing what other languages like Perl and Ruby do and making some wrapper around setting PYTHONPATH, it relies on python's behavior of locating the library path relative to the install, thus hardlinking a whole python installation in and making you "activate" it first. That nothing has managed to replace it in 20 years speaks volumes.
    • YuechenLi 3 minutes ago
      At this point, Python is less of a programming language by itself but more of an interop protocol between various C/C++/Fortran/Rust binaries. But again, it's just part of the cycle, Python was a breath of fresh air 10 years ago when academia is still dominated by Matlab, but now it is mostly a mess of a language that's good for throwaway scripts but not very convenient for large software projects compared to statically typed languages.
    • benrutter 17 minutes ago
      I work in python daily, it's not necessarily my favourite language, but I'd say it's mostly fine.

      What languages are you thinking of specifically when you mention better thought out ones?

    • lijok 27 minutes ago
      Fascinating take.

      What do you attribute Python's success to, in spite of being a disaster of a language and ecosystem?

      • johnfn 23 minutes ago
        It's incredibly easy for new engineers to pick up. On the spectrum between "features easy for beginners but nightmarish for experienced engineers" and "features complex for beginners but great for experienced engineers" it always makes the tradeoff for the former.
        • dude250711 21 minutes ago
          Yes, just like Go, it's a junior developer onboarding language, that somehow managed to overstay its welcome.
          • bheadmaster 15 minutes ago
            If Go is a junior developer onboarding language, then I proclaim myself a perpetual onboarding junior.
          • theplumber 18 minutes ago
            Go is awesome and has great ecosystem. I think if you want to just deliver Go is one of the best language out there. Of course as long as the project makes sense(I.e no client side/GUI stuff, there it gets messy)
            • konart 1 minute ago
              Some people live to shit on Go since you can't really do "crazy cool shit" as someone I knew put it.

              Apparently you can't be a senior dev unless you "just here to deliver"

      • kingstnap 12 minutes ago
        Probably the batteries included Standard Library.

        Cross platform interpreter.

        NumPy and SciPy really set the stage.

        • chuckadams 4 minutes ago
          It's definitely a better language than Matlab, and Numpy made it actually fast for that purpose. AI research really took advantage of that even before LLMs hit the scene.
      • stronglikedan 10 minutes ago
        well, for one, my boss can use it and kinda understand it, so it must be dead simple
      • rsalus 12 minutes ago
        Definitely ease of use...
      • aaabbbbb 18 minutes ago
        Marketing in academia, decent C-API that led to use in scientific Python.

        The language is a disaster since it deviated from its original purpose. The community is ruled by insane, mediocre narcissists who drove away all reasonable people.

      • avaer 22 minutes ago
        - Math + visualization libraries (which ironically have to break out of Python to do their job)

        - Reasonable ergonomics for describing data flows, as long as you never run the code, which you often don't care about if you're a mathematician

        - Adoption by people who optimize pumping citations, not reproducible results -- non-working code is a feature when you're trying to BS

    • loeg 16 minutes ago
      I’m not a fan either, but it doesn’t bother me at all. Who cares? Let the python people do their thing.
    • brcmthrowaway 21 minutes ago
      The packaging is a nightmare thats for sure.

      Venvs, activate, deactivate, shitty scripts hacking on $PATH. How did this ever ship? Then there was poetry, `uv`, and maybe something in else in $CURRENT_YEAR.

      Try to set it up on a new macOS, go on. Install a package from pip, and there's a bunch of garbage that won't let you do it.

      It's horrible. Python packaging engineer is now an FTE, maybe that's what they wanted.

    • risyachka 11 minutes ago
      I will take Python over typescript every second of every day. TypeScript is just so unreadable compared to Python.
    • Toutouxc 16 minutes ago
      As a Ruby dev I'm kind of primed to hate on Python a little bit, but I have to agree. I've written some Python over the years, I've tried to like it, but it just doesn't feel good to me. There are things that are really great about Rust, Elixir, C#, Swift, Java, Common Lisp... Sometimes it's the standard library, sometimes the package manager, sometimes a feature (borrow checker, pattern matching), sometimes a principle (everything is an object, the code is just data). In Python, everything is kind of meh. Like they came up with the list comprehension syntax and that was it for cool things.
    • mi_lk 28 minutes ago
      OTOH I don't want to live in a universe where Haskell wins
    • esafak 29 minutes ago
      Worse is better. Avoid using it yourself and tell others; that's the best you can do.
    • Quitschquat 16 minutes ago
      I blame Perl 6
    • theplumber 19 minutes ago
      it could be worse like …PHP
    • quotemstr 20 minutes ago
      Python is pretty decent. What are you talking about?
      • pphysch 0 minutes ago
        They are a heavy C# user. Coke/Pepsi situation.
    • mathisfun123 14 minutes ago
      > It's a disaster of a language and ecosystem

      "unhinged" take

  • anonymous908213 1 hour ago
    This should be called Python Type Server Protocol, no? Seems weird to mine the generic protocol namespace for a protocol that only supports Python. Especially coming from the company behind LSP, which actually is generic.
    • rzzzt 37 minutes ago
      Type Server Subsystem for Python
    • wolttam 1 hour ago
      It is namespaced under the pylance project. I also don't see any announcement here, just a markdown file.

      Perhaps the post title could use a tweak

    • pantsforbirds 1 hour ago
      I do wonder if it generalizes outside of python similar to how LSPs do.
    • Blackarea 1 hour ago
      100% - it would make more sense if they also supported elixir or other dynamic languages
  • tobz1000 11 minutes ago
    As someone with minimal knowledge of LSP specifics, I'm a bit confused about why this exists. Is it the case that LSP alone does not provide adequate functionality for Python type queries?
  • pipes 15 minutes ago
    Can someone explain what this is to someone like me that doesn't know python very well, but programs a lot in c#?
  • Tarean 1 hour ago
    So basically adding machine readable type-at-point queries as an lsp extension so Pylance and Pywright can be separated?

    The 'result types'format is super python specific, like not having a for all binder. I don't think this specific schema will be used for any non-python languages.

  • 0cf8612b2e1e 53 minutes ago
    It kept with UTF-16. New protocol is a chance to correct that poor decision.
  • rmzs0711 43 minutes ago
    Is there any application for that, except python?
  • ChrisArchitect 14 minutes ago
    Blog posts:

    Pylance + Pyrefly: bring your preferred type checker to Visual Studio Code

    https://devblogs.microsoft.com/python/announcing-tsp/

    Pyrefly + Pylance Integration in VS Code

    https://pyrefly.org/blog/pyrefly-pylance/

  • ahgrta 1 hour ago
    Type-shed, type-server. When can this Python madness stop? How about using CORBA to make it even more enterprisey?

    Why don't you spend your resources on F# instead of this nonsense?

  • paaloeye 1 hour ago
    Interesting, LSP, DAP, MCP, and TSP now...
    • intrasight 47 minutes ago
      TSP : TriSodium Phosphate. Very good for cleaning up a mess.
  • beaconflint 49 minutes ago
    [flagged]
  • wetpaws 1 hour ago
    [dead]