Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Microsoft Python Open Source Programming

How Microsoft Embraced Python (medium.com) 163

Steve Dower, a Python developer at Microsoft, describes how the language become popular internally: In 2010, our few Pythonistas were flying under the radar, in case somebody noticed that they could reassign a few developers to their own project. The team was small, leftover from a previous job, but was chipping away at a company culture that suffered from "not invented here" syndrome: Python was a language that belonged to other people, and so Microsoft was not interested. Over the last eight years, the change has been dramatic. Many Microsoft products now include Python support, and some of the newest only support Python. Some of our critical tools are written in Python, and we are actively investing in the language and community....

In 2018, we are out and proud about Python, supporting it in our developer tools such as Visual Studio and Visual Studio Code, hosting it in Azure Notebooks, and using it to build end-user experiences like the Azure CLI. We employ five core CPython developers and many other contributors, are strong supporters of open-source data science through NumFOCUS and PyData, and regularly sponsor, host, and attend Python events around the world.

"We often felt like a small startup within a very large company" Downer writes, in a post for the Medium community "Microsoft Open Source Stories."
This discussion has been archived. No new comments can be posted.

How Microsoft Embraced Python

Comments Filter:
  • by MikeDataLink ( 536925 ) on Saturday December 15, 2018 @10:39PM (#57810800) Homepage Journal

    that give them a competitive edge. The second they get the marketshare they want in an area support for other competing products is eliminated.

    • by arglebargle_xiv ( 2212710 ) on Sunday December 16, 2018 @05:37AM (#57811604)
      I'd rather a Python embrace Microsoft... and squeeze... and squeeze... and squeeze...
    • Re: (Score:2, Offtopic)

      Microsoft has also been known to _steal_ technologies that had a competitive edge. It may be difficult prove the theft of the GUI from Xerox, but the theft of VMS source code and technologies to create the NT kernel was clear. David Cutler and his team took a great deal of copyrighted code and patented technologies and trade secrets with them, from their work on VMS and it's canceled followup projects Mica designed to run on the new Prism hardware. While Intel was stealing Alpha technologies to create th

      • Interesting, let's just hope that this "embracement" is more a "hug" then a "squeeze".
    • Re: (Score:3, Funny)

      that give them a competitive edge.

      You meant a competitive chrome?

  • Oops. (Score:2, Funny)

    by msauve ( 701917 )
    "In 2018, we are out and proud about Python"

    Careful, or some SJW will accuse you of cultural appropriation.
  • ... wrapped themselves around it squeezed real tight?

  • The good part about using your own internal code and products is that the smart people have to use their own products.
    The first real test should not be end users and paying customers.

    Find top experts to create a new method to code and create an OS.
    Why cant staff learn the new code quickly and to a good standard?

    Hire staff who can learn and understand how to code on company time and let them do internal quality control.
    Workers learned all kinds of different code at university, they should have the sk
  • by Locutus ( 9039 ) on Saturday December 15, 2018 @11:16PM (#57810920)
    I thought they first took python and hooked it into a bunch of Microsoft One Way products and called it iron python or something like that.

    Most likely the only reason why Microsoft might now accept and embrace standard Python now is because, like Linux, they can't ignore what the rest of the world is doing any more. The desktop control doesn't have the power it once wielded.

    LoB
    • Yes, they had Iron Python. Then they decided to drop it and eliminate that team. Last I checked some of the developers still worked on it in their free time but it was way behind.

      Which is a little annoying because if you're mixing languages the integration between Python and C# is nonexistant.

    • by Actually, I do RTFA ( 1058596 ) on Sunday December 16, 2018 @12:19AM (#57811076)

      IronPython sounded great. It used the same .NET virtual machine as C#, F#, etc. So it was designed for interoperability with other MS languages. It's great if your team is already using C# and you want to write python to integrate various modules (like if you had a bunch of C libraries and wanted to use regular python.)

      The guy in charge of the project got let go like a decade ago and now it's OSS on GitHub.

  • In jungle (Score:5, Funny)

    by Kohath ( 38547 ) on Saturday December 15, 2018 @11:28PM (#57810958)

    Python embraces you.

  • Microsoft (Score:3, Insightful)

    by sit1963nz ( 934837 ) on Saturday December 15, 2018 @11:30PM (#57810964)
    Embrace, Enhance, Extinguish.
    • Re: (Score:2, Funny)

      by Anonymous Coward

      Dear Microsoft,

      Please, please, please extinguish Python.
      It's not dead yet, but it should be.

      -Signed,
      AC Representing People Who Hate Whitespace-Sensitive Programming Languages

    • by alexo ( 9335 )

      Python is not directly competing with any Microsoft products, so the EEE strategy would not apply.

      Besides, they haven't been doing it for decades.
      Not that the corporation has suddenly become moral, it just doesn't make business sense for them to try without the market dominance they once had.

  • Reads like a paid infomercial.

  • Why Python? (Score:3, Insightful)

    by guruevi ( 827432 ) on Sunday December 16, 2018 @12:16AM (#57811070)

    I just don't see what other people see in the hype of Python. It has poor backwards compatibility (Python 3 != Python 2), it is single-threaded like JavaScript and it's pretty slow all around unless you code all your libraries in C (and throw away all the stuff that makes it Python)

    Sure it's easy to learn, but then so is JavaScript, PHP and Perl.

    • Re:Why Python? (Score:5, Insightful)

      by Actually, I do RTFA ( 1058596 ) on Sunday December 16, 2018 @12:21AM (#57811078)

      Unlike JS, PHP or Perl, I actually know people who make C libraries and hook them into Python. It's a great way to do small, high-level things that tie together many components quickly.

      • That's because you're old. If you were a millennial you might know Node coders who compile C to Webassembly.
        Also PHP has inline C now, not that it's probably ever a good idea to use it.
        • If you were a millennial you might know Node coders who compile C to Webassembly

          First, bullshit. I know people who use node.js. And I know people who use C. Do you perhaps mean C++? Or Rust? Because the only people who use C are working on embedded systems or legacy systems.

          Second, Python has prewritten libraries to bring in. Node.js, not so many (yet, eventually maybe). Your confusing "can use as a glue language among things I write" and "can use as a glue language among things I write and preexis

          • C, C++ and Rust can all be compiled to Webassembly. Whether or not it's a good idea to do so is another matter.

            Look, my point is that there is nothing special about Python that makes it more suitable to write C library bindings vs any other scripting language, and it might be old-fashioned to actually try to do that.
      • by gweihir ( 88907 )

        Indeed. Python is great for glue-code and great for prototyping those C libraries. In particular, you can code almost anything really fast, if speed matters little. Once the code works, you can port the critical parts over to C pretty easily and can use the Python code as the basis for some nice randomized testing or as "contracts" in addition.

        • by guruevi ( 827432 )

          Then again, you can do that for pretty much any language, even JavaScript. I'm working with a NodeJS library right now that has a huge chunk of it written in C. Sure, the result only works on ARM and MacOS but that's the same issue Python has.

          • by gweihir ( 88907 )

            You can. The question is how difficult it is and how nice the language you get in addition is. For Python, it is very easy. The only language I know where it is easier is Lua. I will not touch JavaScript with a 10-foot pole...

      • Unlike JS, PHP or Perl, I actually know people who make C libraries and hook them into Python.

        I don't personally know anyone who does that for other languages, but CPAN was chock-full of examples of that for Perl before PHP even existed. I believe that if mod_perl wasn't such a PITA, PHP probably wouldn't even exist today.

      • by thrig ( 36791 )
        Yep, do that in Perl for C libraries (or also in TCL (haven't had a need to do FFI in Common LISP (yet))). I have heard that Python is apparently a good language, but on account of certain members of its community...yeah, no. Maybe when those pythonistas can resist "The Two Minutes Hate" when Perl is mentioned, and stop reaching back down behind where their legs meet for stuff to throw... (such behavior might also help explain your anecdote).
      • by kris ( 824 )

        So I made two C components for PHP, almost 20 years ago now, and they are still part of standard PHP. Pushing C-stuff into PHP was comically trivial already 20 years ago, and more recent versions of PHP made it even easier. Some people do argue that PHP is a glue language that was built to absorb C libraries (I have heard Rasmus himself argue that, and it made a lot of sense at that time).

    • it is single-threaded like JavaScript

      Asynchronous > multithreading, but you're right that Python sucks at concurrency.

      • Asynchronous > multithreading

        I think that goroutines or erlang processes (both are essentially threads with very cheap context switches) are a much preferrable to async programming.

      • yes. fork/exec works. Using multiple independent processes and trying to keep them as independent as possible will often result in higher performance than trying to keep a single application and applying mult-threading to it. We replaced a C application that used semaphores and IPC with a python one that just used the file system, and it ran between 10x and 100x faster. Things that were slowing the C version down: They wanted a single log to read, so they made a log process and every body had to post to t
    • Re: (Score:2, Flamebait)

      by SuperKendall ( 25149 )

      I'm not sure either but there's no question that Python has gained massive popularity - and not from Microsoft especially, but all over. Microsoft is simply following the trend here.

      I honestly think a large part of the adoption is the tooling, specifically Jupyter notebooks that let you kind of run code mixed with documenting what you are doing, leaning on a wide range of libraries for various things, along with modules of your own code. Yes there are other things that kind of do that but it's done reall

    • by nagora ( 177841 )

      It's something of a mystery to me too but it seems to be about the libraries available. Of course that just begs the question of why anyone bothered to write those libraries in the first place but there's certainly a snowball effect from that.

      The idea of making whitespace significant in the way Python does is a useful bell-weather, however. If someone defends the idea then you instantly know they're an idiot and you can move on to the next interview candidate. No one wants to work with someone who's respons

    • Re:Why Python? (Score:5, Insightful)

      by roskakori ( 447739 ) on Sunday December 16, 2018 @04:48AM (#57811560)

      It has poor backwards compatibility (Python 3 != Python 2)

      This is mostly an issue if you mix Python versions. These days reasonably modern shops tend to solely use Python 3.

      (It is definitely annoying though if you never got the budget to migrate your legacy project from Python 2 to Python 3 or if you do operations work on some ancient box that only includes Python 2.)

      it is single-threaded like JavaScript and it's pretty slow all around unless you code all your libraries in C (and throw away all the stuff that makes it Python)

      Many classic Python usage scenarios simply use Python libraries that wrap C libraries. Most important everything related to data science and machine learning. There Python is used to express business logic and C libraries do the actual computation.

      Apart from that, there are plenty of scenarios where Python is "fast enough" and you don't really care if you get the result in 0.001 seconds or 0.005 seconds.

      It's really about picking the right tool for the right job. And sometimes faster development time is more important than faster execution time.

      • by PPH ( 736903 )

        This is mostly an issue if you mix Python versions.

        So what do you do if you have many millions of lines of code released under strict configuration control* in the old language version?

        *Developed and tested per DO-178 [wikipedia.org] as required by the FAA. Not cheap to re-certify.

    • by piojo ( 995934 )

      I just don't see what other people see in the hype of Python. It has poor backwards compatibility (Python 3 != Python 2), it is single-threaded like JavaScript

      I see the draw as the REPL (for testing single lines of code), and being able to run short scripts with nothing more than a text editor. The only thing that can compete is Perl, and let's face it, Perl has a lot more gotchas than Python. (Perl has better threading for sure, even if the only fast technique is to pass tasks in work queues.)

      Python can do a lot, and there's a good compromise between ease of writing and ease of running. I would not use Python for a medium to large program until the static type-c

      • Fleshing out what people are saying about python for prototyping. Figuring out how to do the right thing, or how to do the thing right, is the hardest part of programming. The hardest part of that is understanding what code does, especially over the longer term, when it is handed off between people. Python code is usually 5x to 10x smaller than code in other languages for the same purpose, and a real focus is to be readable. It's optimizing the right thing, human cognitive load.

        If, after you have figu

        • by piojo ( 995934 )

          As an aside, I find C# to be way more expressive than Python, because it has all the same advantages, plus more syntax like ref and out as well as a type system that can help you in so many ways. Performance and debugging are really good. The async API is a dream. But it's just not as easy to write or run, so I use Python for scripts where it is a better fit. And the third party Python libraries are potentially better, but the .NET standard library and NuGet are pretty damn good. Project configuration is s

    • by tlhIngan ( 30335 )

      Sure it's easy to learn, but then so is JavaScript, PHP and Perl.

      Actually, Microsoft uses Perl a lot internally. You won't see it on a lot of their customer-facing products (including Visual Studio), but internal test tools are often implemented using Perl. You run into this when you're using their more specialized toolkits like the DDK and others where their tools have self tests.

    • I just don't see what other people see in the hype of Python.

      same reason why a racist doesn't see good in other people. When you don't want to see xyz, you will not see xyz. It's the seer effect.

  • by Anonymous Coward
    Whoever thought it was a good idea to use whitespace as a language construct needs to be taken out back and shot. Python can be the greatest language in the world but until that horseshit goes away it's dead to me and most other not-shit programmers.
    • Re: (Score:2, Funny)

      by slashdice ( 3722985 )
      It was Guido Von Rossum. Former BDFL. Yeah, he repented and is using Ada, of all things, now.
    • by gweihir ( 88907 )

      If that even matters to you, then you are not a programmer, but just an amateur with a keyboard.

  • WSOD (Score:3, Funny)

    by Tablizer ( 95088 ) on Sunday December 16, 2018 @02:54AM (#57811370) Journal

    White space of death

  • I'd be deeply concerned about Python's support for installing quite random dependency chains from https://www.pypi.org/ [pypi.org] to satisfy a need for a Python module. Much as ant, gradle, and maven install untested Java modules from the Internet, and as CPAN installed Perl modules, they brought dependency chains with them that could displace and break cricical functioning code. I recently had to help recover a critical system where a release engineer ran "pip install" as a root user and wound up upgrading critical

  • by Barny ( 103770 )

    Over the last eight years, the change has been dramatic.

    I would bloody well hope that any change would be dramatic after eight years of changing.

  • But it has horrendous maintainability characteristics. So many hours I have spent reverse engineering someone else's Python just to determine what kind of object a method returned in different situations.

    Python is important today because machine learning folks use it - but that's because they don't know any better - they are scientists and tend to work on very small teams and are not concerned with software engineering best practices. If you want to build something that is part of a much larger whole, and t

  • Microsoft's culture has historically been several grades beyond mere NIH, something more akin to "not warheaded here syndrome".

    With Java, Microsoft was neither slow nor reluctant to slip in the payload package, and pretty soon Java was reduced to a "write once, debug everywhere" programming language that Microsoft could truly count as one their own.

  • No, I don't like them, either; in 2017 I finally managed to move everything to Linux except three or four apps still living under Wine or in a Virtualbox VM, and it was the best decision regarding my home/homeoffice IT I ever made.

    I'm still surprised, though, that so many intelligent people see the evil in Microsoft (or Google, Facebook, Oracle, Amazon, eBay, IBM, ...) as a specific property of Microsoft (and Google, Facebook, Oracle, Amazon, eBay, IBM), Microsoft (Google, etc.; you get the lyrics) as a par

  • python is the new basic, basic was invented by microsoft.
    in the spirit of basic, it only makes sense to embrace it.

"When the going gets tough, the tough get empirical." -- Jon Carroll

Working...