Can Microsoft kill Python?

by Jeremy Jones

First of all, let me say that I am not a Microsoft hater. I will say that I am not fond of the majority of products I have used which bear the Microsoft label. They tend to leave me feeling as though my hands are tied and my options are limited and that I'm being "guided" by a paternalistic entity who feels that he knows what is best for me...but rarely ever really knows what is best for me. Whatever my experience, Microsoft creates products which are great for the majority of people out there. That is why Microsoft is such a successful company. Further, I believe that Microsoft has done more to push the computing world forward more than any other single company. So, I am by no means anti-Microsoft.

Next, let me say that I am not a conspiratorial person by nature. I'm a simple person and I tend to believe that the simplest explanation for something is typically the most plausible. This "Occam's razor" principle causes me to become skeptical when I hear speculations about a group of people (or company) engaging in covert activity with the intent of duping, subverting, or harming another group of people. While this may sound overly optimistic, I'm really quite realistic. I recognize that there are rare occasions where regular people do engage in dubious, subversive, harmful activity. I also recognize that there are regular occasions where rare people also engage in dubious, subversive, harmful activity. Maybe it is my optimism, but I sincerely believe that nefarious behavior is not the norm across society as a whole. And I believe that most people and groups who have obtained a negative reputation probably have a worse reputation than they deserve.

So where am I going with all this? How can Microsoft kill Python? As I mentioned in the lead-in to this blog entry, when I say "kill", I mean "seriously damage the relevance of Python". Let me first outline what I don't mean. I don't mean that Microsoft, as some have suggested, will work on IronPython for a while, get people using it, then hijack the language by seriously changing the syntax of it and thereby breaking compatibility with CPython. I really don't believe that Microsoft is going to do that nor do I believe that they have had secret meetings to conspire to such an end. I find such suppositions entertainingly absurd.

What I do mean is Microsoft's emphasis of Python as one of many potential "dynamic and scripting languages". The type of wording that I keep hearing to describe Python's place in the overall .Net framework seems to keep it very separate from "real" languages like C#. It is true that Python is a very dynamic language. It is also true that Python makes a fantastic scripting language. But it is more than that. I believe that there is no reason to shy away from offering Python as an alternative to C# for application development. Sure, its dynamic nature can be emphasized, but I would market that dynamism as a selling point rather than a liability. It could just be me, but I get the feeling that Microsoft doesn't want to encourage people too strongly to use IronPython for "real" application development.

So, how does this damage the relevance of Python? If Microsoft, who is investing considerable time and money to create a .Net implementation of Python, only refers to IronPython as a "dynamic language" and only pushes it as a "scripting language", many people will begin to assume that that's all that it is good for. If this causes more people to think of Python only as a scripting language (which many do, already) or a dynamic language to be used only when they can't accomplish something in a static language, that will reduce the situations which IronPython might have been used for otherwise. If people limit what they use Python for, its relevance for a whole realm of programming tasks has been diminished.

And I think that would be a terrible shame. From what I have seen, Jim Hugunin and crew have done a fantastic job of integrating Python into .Net. I was really excited about this project when I heard about it. I'm still excited about the technology. And I'm more excited still about the overall possibilities and what it could do for Python. I'm just concerned that the current marketing words might cast Python in a limited light. Microsoft has the opportunity to promote Python as a full-blown viable alternative programming language with tremendous productivity benefits to its customers. I hope I'm wrong with my concerns. But more than that, I hope that Microsoft will begin to encourage Python usage for a broad range of programming tasks. Why shouldn't they?

24 Comments

dkurman
2005-11-29 20:54:46
Not Microsoft I'm worried about
It's pretty cool how Jim Hugunin showed how the .net platform _could_ support dynamic scripting languages...especially after what they did to VB.net
I'm a bit worried though that it might put the Python language on the radar to be over hyped and poisoned by the connection to Microsoft. Some folks are not a gracious as yourself and treat anything connected with MS as bad.
I like Python as my "secret weapon".
ps. Ruby is almost as cool too :-P
simon_hibbs
2005-11-30 05:47:16
Python will shine through in the end
On the flip side, promoting Python as a 'simple' language could turn out to give it a big boost by making it seem unintimidating to average users. This worked for VB, I don't think that in the early days MS ever expected VB to be used for the scale and complexity of projects it has been.


If Python is seen as being easy to learn, those people who do learn it will quickly be able to see for themselves how powerful it can be.


As for 'poisoning' Python by it's association with Microsoft, Python is already very well accepted in the Unix world. I don't see how Iron Python can change that - the fact that C++, Perl and many others are available on Windows doesn't seem to have hurt their acceptance elsewhere. The MS connection might put people off Iron Python in particular, but since it only runs on Windows anyway what's that got to do with the price of bananas?


Simon Hibbs

jmjones
2005-11-30 06:03:23
Python will shine through in the end
Great points. I did have the thought to include that my fears may be inversely recognized, but failed to do that when I was blogging this. That could actually come to be. I hope it is the case.


As to "poisoning" Python by association, I don't think that'll happen either. I glanced back through my blog and didn't see anwhere that I posited such. I thought of stating the opposite, in fact, but you've stated the case very well.

PatrickGemmell
2005-11-30 09:04:51
IronPython will not harm Python.
I don't think so.


I think IronPython will only popularize Python by making it relevant to more people e.g. people who want to write programs that run on Windows desktops, use authentic Windows APIs (especially WinForms and Avalon) and integrate with other .Net software. For developers it will be clear that an investment in Python as a language pays dividends because itís easy to target so many platforms through various implementations (rather like C, totally unlike VB.Net).


Also, those developers who work in conservative organizations who might already use CPython for tasks on a server, a dev box, or at home can now sneakily begin to deploy IronPython code or assemblies (when the compiler is finished) without the grief that trying to use CPython might bring. To many, targeting the .Net runtime will feel a lot safer than targeting an open source byte-code interpreter (especially in a few years time when the percentage of Windows machines with .Net gets higher).


I actually wouldn't be surprised if MS did its own fully supported dynamic language (they seem to be working on "pimping" VB too - but I don't think that's enough). I think a lot of what Microsoft says and does merely reflects opinion. As favourable opinion on dynamic languages becomes more widespread so favourable sounds and actions will become more common at Microsoft.


I guess it's questionable whether Microsoft will productize IronPython itself, Microsoft hasn't done so with the functional languages its research teams have been working on, however I think gradually people are waking up to dynamic languages and as the commercial demand rises Microsoft will respond in some way or another. Python, the language, will win from that.


kollivier
2005-11-30 11:43:56
MS is walking a thin line here
I think the core issue is that MS doesn't want to actively promote a language that would make it easier for programmers to move away from MS tools should they feel the need to, but, at the same time, they realize that they risk alienating developers by not offering .NET versions of OSS innovations like Python, and thus, keeping Python developers further away from MS technologies.


As such, I think IronPython is both a positive and negative thing, but in the end result I think it will be a positive thing. Choice doesn't hurt, and even if MS tries to play it down as just a scripting language, this is not really any worse than all the "forced indenting is teh eViL" kneejerk reactions in terms of hurting Python support. The software development community is slowly coming around to the technology, and even if people first see and try it as a 'scripting language', they'll quickly realize it is much more.

EdDaniel
2005-11-30 15:29:48
IronPython will not harm Python.
I agree with Patrick and the others here who acknowledge that the more visibility Python gets the better it will be.


At present most IronPython devs (I guess) are existing Python devs and spend time cross-platform.


It's crucial for a community to grow - a factor which fuels growth is the 'applicability' of a community's existence - in this case the value a language like Python delivers.


A while back one of my contacts, in the ISP game providing mission critical hosting on both Linux and .NET servers in Brazil, was chatting with me and mentioning it was a shame there was not a .NET python implementation - when I mentioned IronPython he was overjoyed to hear about it as they'd invested a fair bit in python for the Linux farm.


I think that unlike the concerns the community have regarding Microsoft's enthusiasm for RSS, which I share, in this instance there is little to worry about and in fact I feel the article is 'sensationalist' in the attempt to provide some 'hard news' that we'll all pay attention to - certainly that's why I arrived at this page to learn more - and all I've found out is sheer speculation and posturing that is launched from a clumsy intro by the author about not being a Microsoft hater in order to set the tone for the rest of the piece.


Frankly, if Microsoft is wasting money on python-killing strategies they should be given a good spanking by their shareholders ;-) There are bigger concerns they ought to be addressing.

ChadCrabtree
2005-11-30 15:51:12
Python in Danger?
I am not a professional developer however I aspire to be one. I was turned on to Python by the article http://www.catb.org/~esr/faqs/hacker-howto.html. I have since spent a fair amount of time working with VBScript and VB.net C#. All of which I find inferior.


Python makes many things very easy that just fit my head, Python is just smarter. Why do we need method overloading when we can just have keyword arguments? Why does it need to be hard to really tinker with a classís behavior? Why does it *HAVE* to be object oriented? Etc....


VBScript is a scripting language and has a huge mindshare. In its own way I like it but I would never consider composing a largish program with it. I think anyone who spends some time with Python will like it. Also considering the large number really important infrastructural programs written in python (yum, mailman, bittorrent, MoinMoin) anyone who does any research may find that the dotNet framework will not get a specific job done as quick as python with some third party library.


My point is there is no way that an increase in mind share will in any way hurt Python. This is an excellent way for Python to virally infect organizations. How many little tools are Python powered now? I would guess itís a lot. Python is such a versatile language and itís readable. These features I think are universally likeable.

jmjones
2005-11-30 16:47:04
IronPython will not harm Python.
Quite frankly, I hope I'm dead wrong about this. Maybe I am. Maybe even probably so. Everyone who has chimed in here with a contrary position to my own, including yourself, have offered excellent reasons for disagreeing. I think all the points being made here have a lot of validity. Maybe I'll even change my mind about this topic.


But I still have some concern that Microsoft (or, anyone, really) pushing Python merely as a "scripting language" or a "dynamic language", while both are obviously true, can de-legitimize Python in the eyes of programmers who use more static languages. That was the whole point of the blog entry. That was what I meant by "killing". I even defined my terms pretty early on in the post. Heck, I even gave a really, really strong foreshadowing of such in the lead-in before anyone had a chance to click on the post itself.


Which leads me to the topic of being "sensationalist". I am sorry you see it that way. I hope you can see in retrospect that was not my intent. First, I sincerely believe (still) that there is reason for concern that the "dynamic and scripting" promotion that Python is receiving may be to its detriment. Next, I haven't gone so far as to be Pythonically Apocalyptic about the matter. Next, I've refused to engage in a conspiratorial and reverse-FUD Microsoft campaign. Finally, I really tried hard to not draw people in based on sensational headlines or description tags. I know you'll probably find that hard to believe given the title of the blog entry, but it's true. That's why I spelled out as much as I did in the lead-in. That's why I defined my terms early. That's why I made the rather clumsy introduction proclaiming that I am not a MS hater.


Which leads me to my reason for the post, in case you're still reading. I wrote it because I had a legitimate concern about Python. I love this language. I love the community. I love the projects that arise based on it, even using technologies, such as Microsoft techs, which I am not particularly fond of. I hear programmers frequently hold Python in derision because it isn't statically typed. Or because it's "just a scripting language" and not a "real language". I fear that their attitude will be exacerbated by Microsoft's inadvertent proclamation that Python is only good for scripting and that others will follow suit. So, that's my heart in all this. If I have sinned by being "sensationalist", I assure you that it was with caution trying to prevent it.


Anyway, thank you all for your well-thought out arguments, reason, and graciousness in discussing this. Others who disagree with me have not been so kind.

mailtop.sunil@gmail.com
2005-11-30 20:42:11
Ironpython cannot harm python
I don't think Ironpython can kill or harm python. Since python has already number of users and it successfully proved as dynamic language. Infact Microsoft understood the real power of Python and wanted to make it as a CLS complaint. I feel Ironpython is just an enhancement in some other director for Python language. Scripting language has its own existences in software world.
jwenting
2005-12-01 00:54:19
who needs to kill anything?
Python as a language is pretty much irrelevant in the Windows environment as it is, so there's nothing to kill even if that were the intention.

The best way to kill anything in this world is to simply ignore it, especially something as marginal to most of your users as a programming language.

We as programmers might sometimes think customers buy our product because we wrote it in Java instead of C++ or in C# instead of VB but most of those customers couldn't care less as long as it gets them to do their job efficiently.
christopherR
2005-12-01 06:09:08
MS will not promote Python
Microsoft wants other languages to work with Windows but that doesn't mean that they actively promote application development in languages other than C/C++,C#, VB, VB.NET. Microsoft wants to be able to point to a rich set of tools and languages that support Windows but that doesn't mean the they are going to actively encourage their use.


Microsoft has always supported language independant development on the Windows platform. Microsoft's APIs were always developed so that they could be bound to other languages.


In the past this meant developing significant amounts of API bindings between a given language and the Windows API. The .NET platform changes this in that now the effort is to port the langage to the CLR and eliminate having to create large amounts of binding / glue code.


The IronPython work is key to Microsoft in that it provides them with direct experience / expertise in getting other languages to run on the .NET platform.


I doubt Microsoft will ever adopt / encourage Python development. There is little reason for them to do this.


I use Python on Windows and I think Python is great. The traffic on the Python Win32 email list suggests that a lot of other people are using it to.


What I want to know is what is the future of Python on Windows as .NET become the primary development platform / APIs for Windows.


Does anyone do real development in IronPython right now? Is anyone integrating .NET with CPython? What about Boo? Is Boo more mature than IronPython? Does anyone do real development in Boo?



webmaven
2005-12-01 07:55:45
IronPython not only on Windows
You may not be aware of this, but IronPython runs (sort, currently, and well, eventually) on Mono as well, not just .Net.
jmjones
2005-12-01 08:05:28
IronPython not only on Windows
Actuallly, that's pretty much the only way I've run it. I tinkered a bit with it on Windows, but mostly I've tried it under Mono on Linux. I've had mixed success with it in that configuration, though.
webmaven
2005-12-01 11:49:54
IronPython not only on Windows
I expect the IronPython-on-Mono story to get better over time. It's a matter of credibility for both projects.
xmlhacker
2005-12-03 23:28:02
This late in the game?
It took MS a while to realize there was interest enough in Python to sink money into its development by seeking out the person in whom had already proven with Jython he was capable of producing a quality product. In fact it wasn't until the Python community "spoke up" suggesting that the IronPython project [which as you know, was spearheaded by Jim Hugunin after finishing up Jython] was "Dead." I personally don't believe this was the case, but it certainly got the attention of the right people as it didn't take long bfore the project sprung back to life with one release after another. The project sits at 0.95 now and is well on its way to passing the entire CPython test suite.


I can understand your view point as in years past MS has been EXTREMELY guilty of "Language Loyalty." But the CLI, while supported by Microsoft wtih only a handful of "offical" language products, obviously opens things up quite a bit. I doubt their primary loyalty to C# and VB.NET will be changing anytime soon. But yet you do see them putting money into "alternative" languages implementations such as IronPython, something you would be hard pressed to find as a "quality" amongst the other major language/platform [obviously Java] providers -- theres plenty of research but not much real world implememation as of yet... I think that will change though as well... the signs seem to be point that way as of late --


The fact that MS has put forth the effort to hire the right talent, and to push this project into a 1.0 release as quickly as possible I believe to means only one thing -- the customer spoke-up, the customer explained what s/he wants, the customer has the checkbook, the customer gets what s/he's willing to fill out and sign one(or more ;) of those checks for.


It is about the money, yes. But that's not evil, that's business.

xmlhacker
2005-12-03 23:53:36
IronPython will not harm Python.
But Python *IS* a dynamic scripting language. Its an extremely versatile and powerful dynamic scripting languages that, as I am beginning to learn for myself, has been very well adapted for web application development. As such, it gets used for such purpose more often than other languages for both obvious and good reasons.


I guess my question to you is whats so bad about being a dynamic scripting language. I don't have any exact figures, but I would venture to believe that between Python, Perl, the various ECMA Script implementations(including JScript.NET), VB/VB.NET/VBS/VBA, and Ruby a significantly higher percentage of web applications are built using dynamic scripting languages than with all of the classic OOP-based languages combined.


Enterprise application development of course is different. Is your concern that Python will not be given a fair shake in this arena? If so, why would that be a concern? As great as Python is, there's reasons people choose C, C++, SmallTalk, Java, and C#, etc... for these types of applications and its for the same reason a majority of the legacy(although the term "Legacy" is proving to take on more of its "enduring" characteristics side than its "old and in need of replacement" side -- but legacy none-the-less) enterprise infrastructure runs on COBOL-built applications. These languages seem to be better suited for build enterprise-level applications. There could be a million reasons for this (tool support, etc...) beyond being the best language/platform for the job, but that doesn't really change the fact that this is what people choose to use. I have no doubt that if Python were truly the end all, be all language of the now and of the future, people would have already realized this and would have been builting more of these types of applications with it.


Or am I misunderstanding why you see being termed a dynamic scripting is a bad thing?

ramdaz
2005-12-05 09:37:26
Ironpython cannot harm python
Well, IronPython has less than 600 active memebers who is following the development. Python has thousand times. Matter closed
jmjones
2005-12-07 14:03:09
IronPython will not harm Python.
I would argue that Python is well suited for enterprise development. That's the point. If it's being termed exclusively as "dynamic" and "scripting" (both of which are true, but exclusively is the key word), then it might limit its adoption for enterprise projects. If a project needs a part of it written in another language for whatever reason, Python can be easily extended to call that component. Hope this addresses your question.
AdSR
2005-12-14 08:14:54
IronPython not only on Windows
Especially if IronPython is used as a test suite for Mono.
AdSR
2005-12-14 11:20:50
"Unintimidatingness" may help indeed
Many years ago when I was a student and a beginner at programming, I used mostly C and QBasic for simple data processing. QBasic was simpler and not as dangerous when my programs crashed, and the code-(build)-run cycle was shorter. So, whenever I could, I used QBasic instead of C, and didn't care what others said.


Many years later, already making a living by coding, I found out about Python (thanks, Mr. Eckel). My first thought was "looks a bit like QBasic", which was a positive association for me. Three years later, I know that almost the only things these two have in common are ease of use and the print statement :) but if not for the apparent simplicity, I might have dismissed Python ("another Perl" or "not better than Java").


So the lesson is, you can attract a lot of extra people if you make your tool seem more accessible. And if you make it right, you may get a bonus - you can help users improve their skills, like in my case.

Paddy3118
2005-12-16 11:59:33
I know one sure way...
If they make a better dynamic language then they should be applauded (and copied).


... but I don't think its likely to happen... except
I did read about that new command line shell that passed objects around rather than files. That was
innovative.


- Cheers, Pad.

jmjones
2005-12-16 17:48:41
I know one sure way...
I've heard little bits and pieces about this. I totally agree that this is an innovative idea. I wonder how hard it would be in UNIXland to create other types of process input and output in addition to STDIN and STDOUT and call it, say, STDOBJIN and STDOBJOUT and be able to read in and write out serialized objects...


Of course, there's nothing preventing unmodified processes from doing that now by reading/writing serialized objects from/to STDIN/STDOUT. Plus, I don't know what the benefit would be of another process input (and output) file descriptor.

sunil
2006-05-23 22:26:08
Ironpython Beta 7 Released
tim_mak
2006-06-05 08:16:02
I was just looking at the Python Success Stories page (http://www.python.org/about/success/) and no matter how much microsoft want to downplay python, the stories there is proof enough that python is indeed one of the most powerful programming languages around.