Python at Microsoft

devblogs.microsoft.com/python · Company blog · on HN since 2019

Microsoft's Python team posts about Python tooling in VS Code, Windows support, Pylance, and CPython performance work.

What HN saysHN commenters cite it for the Faster CPython team, which Microsoft funded with Guido involved and disbanded in June, and for Microsoft's role in the Python community.
71HN people shared it
29linked it in comments
59stories submitted
756story points
6 months agolast shared
2019people per year2026

Most-shared posts

  1. 1
    Python in the Windows 10 May update
    10 people · 348 points · first shared 2019 · 219 comments on HN
  2. 2
  3. 3
    Remote Python Development in Visual Studio Code
    7 people · 40 points · first shared 2019 · 6 comments on HN
  4. 4
    The Faster CPython Team
    6 people · 33 points · first shared 2022 · 3 comments on HN
  5. 5
  6. 6
    Our Support for the Python Community
    3 people · 5 points · first shared 2021 · discussion on HN
  7. 7
    Idiomatic python eafp versus lbyl
    3 people · first shared 2021
  8. 8
    Python in Visual Studio Code – February 2019 Release
    2 people · 29 points · first shared 2019 · 2 comments on HN
  9. 9
  10. 10
    Python in Visual Studio Code – May 2019 Release
    2 people · 12 points · first shared 2019 · discussion on HN
  11. 11
  12. 12
  13. 13
    Notebooks Are Getting Revamped
    2 people · 4 points · first shared 2020 · discussion on HN
  14. 14
    Data science with python in visual studio code
    2 people · first shared 2019
  15. 15
    Python in Visual Studio Code – April 2019 Release
    1 people · 112 points · first shared 2019 · 39 comments on HN

What HN people wrote when they linked it

mburns · 2026-01-09
A developer wrote a paper in 2020 about how to make Python substantially (5x) faster. Microsoft then funded a 'Fast CPython' team that included Guido, to realize that goal. They disbanded the team in June. https://devblogs.microsoft.com/python/python-311-faster-cpython-team/
CharlieDigital · 2025-03-17
Microsoft themselves ship on a variety of platforms. It's more about right tool for the right job. Good example is Azure CLI; it's Python. Microsoft is also a big contributor in the Python scene[0] I don't think it's surprising at all that they didn't use C# to write a compiler for TS. They have internal champions for Rust[1] I'd say Microsoft is possibly one of the most diverse shops when it comes to tech selection. [0] https://devblogs.microsoft.com/python/supporting-the-python-community/ [1] https://www.theregister.com/2022/09/20/rust_microsoft_c/
stevesimmons · 2024-10-10
What's really wrong with try/except here other than it's not to your personal taste? Brett Cannon, one of the Python core devs, wrote a blog post using exactly this dict KeyError example in 2016 [1]. It concludes: "The key takeaway you should have for the post is that EAFP is a legitimate coding style in Python and you should feel free to use it when it makes sense." [1] https://devblogs.microsoft.com/python/idiomatic-python-eafp-versus-lby…
ya3r · 2024-01-09
Maybe relevant blogpost is https://devblogs.microsoft.com/python/python-311-faster-cpython-team/ dated Oct 2022. The team behind this and some other recent improvements to Python are at Microsoft.
matsemann · 2022-04-05
Scramblejams · 2021-10-06
exceptions are supposed to be exceptional, darn it This feeling is at odds with what is generally considered idiomatic Python, for better or worse. Upthread BiteCode mentioned EAFP. See, for example: https://devblogs.microsoft.com/python/idiomatic-python-eafp-versus-lby… (It's certainly not unanimous. Guido himself is on the record as saying EAFP isn't better than LBYL, but in most of the Python I've cruised through these last umpteen years [that wasn't some other language written in Python], I've certainly seen an overall preference for EAFP. Naturally YMMV.)
ghshephard · 2021-10-06
This covers it very well: https://devblogs.microsoft.com/python/idiomatic-python-eafp-versus-lby… In particular, this is not idiomatic python: if "key" in dict_: value += dict_["key"] But this is: try: value += dict_["key"] except KeyError: pass I too hate using the exception handling in this way, and if you aren't careful, you end up papering over other unexpected exceptions in your code, so you have to be (A) very specific in the exception you catch, and (B) keep it in as small a portion of code as possible. I just think it makes for clumsy code - which of the two look better: try: value = dict_["key"] except KeyError: pass else: do_something(value) OR if "key" in dict_: do_something(dict["key"]) But it might just be me.
411111111111111 · 2021-01-31
There are ide plugins to use the jupyter kernels thought. Atoms hydrogen[1] or vscodes Python Support [2] comes to mind. Jetbrain IDEs have similar plugins. They enable pretty much both package managers and scm without any overhead to speak of. > 1: https://blog.nteract.io/hydrogen-interactive-computing-in-atom-89d291b… > 2: https://devblogs.microsoft.com/python/data-science-with-python-in-visu…
aidos · 2021-01-17
I use it, but MS have forked pyright with some features now locked just to vscode without support in the LSP. https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-…
ssivark · 2021-01-10
They plan to deprecate the open source server, and move everyone over to the Pylance server under discussion. See their own announcement https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-…
Xavdidtheshadow · 2021-01-10
This title is inaccurate. The language server _is_ open source, and is available here: https://github.com/microsoft/python-language-server. This is the default one VSCode ships with. This issue is filed on Pylance, a new (released June 2020) language server that's currently still in beta (announcement: https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-… Also, like the contributor notes, a lot of the "secret sauce" in Pylance is part of the open source Pyright typechecker: https://github.com/microsoft/pyright.
RMPR · 2020-09-10
> But on Windows, for example, python may not be installed Actually Python is not a very good example since Windows now includes python and python3 commands by default[0] 0: https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
pjmlp · 2020-05-04
Yes, it was even presented at PyCon. https://devblogs.microsoft.com/python/come-meet-microsoft-at-pycon-201… "Steve Dower - Python on Windows is Okay, Actually - PyCon 2019" https://www.youtube.com/watch?v=uoI57uMdDD4 And is part of official Python documentation, as mentioned by others on this thread.
nojito · 2020-05-04
the Windows Store is the official way to install Python on windows. https://docs.python.org/3.7/using/windows.html#windows-store Original Blog post from last year https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
llampx · 2019-10-10
Very cool. I've been working with the existing Jupyter-like support for interactive programming in VS Code[0] but this is so much better. [0] https://devblogs.microsoft.com/python/data-science-with-python-in-visu…
jperry · 2019-07-05
>Please note, python is not available out of the box on Windows machines as in macOS, most of Linux distros. It (almost, kind of) is now, actually. Running python on a recent Windows 10 box without python installed will prompt you to install it. https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
kuu · 2019-06-07
Maybe it's better to link to the original Microsoft blog announcement? https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
noname120 · 2019-06-07
It looks like this update breaks already-installed Python execution if its position in the PATH environment variable is after the WindowsApps folder. [1] [1] https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
bdcravens · 2019-06-07
Strictly speaking though, it's not out of the box. From MS's blog about this: "While Python continues to remain completely independent from the operating system, every install of Windows will include python and python3 commands that take you directly to the Python store page" https://devblogs.microsoft.com/python/python-in-the-windows-10-may-201…
geekraver · 2019-05-08
The way this is implemented in VS Code on the desktop may change your mind. See for example https://devblogs.microsoft.com/python/remote-python-development-in-vis…
smortaz · 2019-05-03
Check out Python remote support as well which was announced today at PyCon: https://devblogs.microsoft.com/python/remote-python-development-in-vis…
infamia · 2025-05-24
> Pyright was released first and was and continues to be open source. Pylance was built on Pyright but has never been open source. No, the first Python extension that shipped with vscode 1.0 in 2016 was called the "Microsoft Python Language Server" and was based on the Jedi LSP. Below is the deprecation announcement of the Jedi language server in the Pylance launch post below. > In the short-term, you will still be able to use the Microsoft Python Language Server as your choice of language server when writing Python in Visual Studio Code. > Our long-term plan is to transition our Microsoft Python Language Server users over to Pylance and eventually deprecate and remove the old language server as a supported option. https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-… > But they are probably worried about Windsurf and Cursor, the latter of which (a billion-dollar company) was caught violating MS's TOS around the plugin ecosystem. If that were so, I would certainly understand. However, MS started closing vscode and the extensions years before Windsurf and Cursor (initial release in 2023). This was their business model all along get adoption in partly by leveraging the open source community, and then close things off slowly once they have a choke hold (similar to Android/AOSP). I could scarcely agree more that Windserf and Cursor are supremely sketchy…
thesuperbigfrog · 2022-07-21
>> All things considered, it's well past time to stop being so harsh on Redmond. Stop judging Microsoft on what it did a decade ago and judge it by what it's doing today. You mean like closed sourcing previously open source VS Code extensions? They recently announced that they are closed sourcing the C# VS Code extension: "Once the “LSP Tools Host” is complete, this will become the default experience for the C# for VS Code extension. Existing users will be able to choose between the open-source OmniSharp powered system that exists today, or the new “'LSP Tools Host” which will provide access to additional experiences. The “LSP Tools Host” will not be open-sourced, but we plan to communicate with the community along the way to help guide our future plans."[1] The same thing was done with PyLance which was "extended" from PyRight.[2] Why would they do this? Because VS Code can't get good enough to compete with Visual Studio. If it did, they would lose revenue by not selling enough copies of Visual Studio. It's the same Microsoft, they've just had to adapt since they lost a lot of the power they had in the past. [1] https://github.com/omnisharp/omnisharp-vscode/issues/5276 [2] https://devblogs.microsoft.com/python/announcing-pylance-fast-feature-…
dragonwriter · 2021-02-13
It's important to understand that the type systems for Python are not really an inherent feature of Python, but the systems enforced by each of the static checkers (which tend to adopt each other's advancements and drive syntactic support into the core system of annotations, so there's a common baseline advancing with the individual systems). A recent advancement in one of those type systems would be pylance (actually pyright, since that's the typechecker for the pylance language server) support for higher-kinded type variables [0]. Mypy, I believe, has identified this as a thing to support, too. An example of an improvement in annotations specifically to enable type system improvements that require supporting syntax improvement is PEP 646 support for Variadic Generics. [1] Even though it is in draft, pyright has already landed support for it for the type system improvements motivating it. [2] [0] item #4, https://devblogs.microsoft.com/python/pylance-introduces-five-new-feat… [1] https://www.python.org/dev/peps/pep-0646/ [2] https://github.com/microsoft/pyright/releases/tag/1.1.107
swagonomixxx · 2021-02-12
> Having a half way decent type system solves so many problems What problems does it solve for you? When building ML applications I mean. Because that's what S4TF was supposed to be. ML researchers produce models that are used by ML applications for a particular purpose. The code to train the model _could_ be statically typed, sure, but I really don't see what the improvement would be. It would be more verbose, less readable, have significantly more noise. Just try reading some TensorFlow C++ code equivalents of their Python API. From the "WhySwiftForTensorFlow.md" document (https://github.com/tensorflow/swift/blob/main/docs/WhySwiftForTensorFl… .. static types: * can catch bugs at compile time instead of runtime. People get very frustrated when a silly type error brings down a long training run hours into it. * directly improve tooling experience like code completion/intellisense, jump to definition, etc. * make it easy to know what operations are Tensor operations. > can catch bugs at compile time instead of runtime. OK, but what bugs? For most use cases of TensorFlow that I've seen, if there is a type error somewhere, you will catch it long before it hits production, and if you only catch it 100hr into training, your training code is either non-deterministic or there's some other issue that is not type related. Unless we're talking about dependent types a-la Idris, I don't see how Swift's type system can help catch these kinds of…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close