---
created_at: '2016-07-22T02:11:32.000Z'
title: Microsoft Ships Python Code in 1996 (2009)
url: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?m=1
author: adamnemecek
points: 72
story_text: 
comment_text: 
num_comments: 21
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1469153492
_tags:
- story
- author_adamnemecek
- story_12141311
objectID: '12141311'

---
[Source](http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?m=1 "Permalink to The History of Python: Microsoft Ships Python Code... in 1996")

# The History of Python: Microsoft Ships Python Code... in 1996

#  [ The History of Python ][1]

A series of articles on the history of the Python programming language and its community.

## Wednesday, January 28, 2009

###  Microsoft Ships Python Code... in 1996 

My thanks go to Guido for allowing me to share my own history of Python!  
  
I'll save my introduction to Python for another post, but the end result was its introduction into a startup that I co-founded in 1991 with several people. We were working on a large client/server system to handle Business-to-Consumer electronic shopping. Custom TCP protocols operating over the old X.25 network, and all that. Old school.  
  
In 1995, we realized, contrary to our earlier beliefs, that more consumers actually _were_ on the Internet, and that we needed a system for our customers (the vendors) to reach Internet-based consumers. I was tasked to figure out our approach, and selected Python as my prototyping tool.  
  
Our first problem was moving to an entirely browser-based solution. Our custom client was no longer viable, so we needed a new shopping experience for the consumer, and server infrastructure to support that. At that time, talking to a web browser meant writing CGI scripts for the Apache and Netscape HTTP servers. Using CGI, I connected to our existing server backend to process orders, maintain the shopping basket, and to fetch product information. These CGI scripts produced plain, vanilla HTML (no AJAX in 1995!).  
  
This approach was less-than-ideal since each request took time to spin up a new CGI process. The responsiveness was very poor. Then, in December 1995, while attending the Python Workshop in Washington, DC, I was introduced to some Apache and Netscape modules (from Digital Creations, who are best known for Zope) which ran persistently within the server process. These modules used an RPC system called ILU to communicate with backend, long-running processes. With this system in place, the CGI forking overhead disappeared and the shopping experience was now quite enjoyable! We started to turn the prototype into real code. The further we went with it, the better it looked and more people jumped onto the project. Development moved **very** fast over the next few months (thanks Python!).  
  
In January 1996, Microsoft knocked on our door. Their internal effort at creating an electronic commerce system was floundering, and they needed people that knew the industry (we'd been doing electronic commerce for several years by that point) and somebody who was nimble. We continued to develop the software during the spring while negotiations occurred, and then the acquisition finalized in June 1996.  
  
Once we arrived at Microsoft with our small pile of Python code, we had to figure out how to ship the product on Windows NT. The team we joined had lots of Windows experience and built an IIS plugin to communicate over named pipes to the backend servers, which were NT Services with our Python server code embedded. With a mad sprint starting in July, we shipped Microsoft Merchant Server 1.0 in October, 1996.  
  
And yes... if you looked under the covers, somewhat hidden, was a Python interpreter, some extension DLLs, and a bunch of .pyc files. Microsoft certainly didn't advertise that fact, but it was there if you knew were to look. 

[ Greg Stein ][2] at  [6:40 AM][3]

#### 5 comments:

1. ![][4]

[Asim][5][January 28, 2009 at 2:29 PM][6]

Interesting story. Do you know what the Merchant Server got renamed to? Is it still part of their server stack?

[Reply][7][Delete][8]

2. ![][4]

[test beta blog][9][January 28, 2009 at 6:55 PM][10]

It was discontinued in 1998. Replaced by Commerce Server and SharePoint. For more: http://en.wikipedia.org/wiki/Microsoft_Site_Server

[Reply][7][Delete][11]

3. ![][12]

[Aleksandr Sugard][13][January 29, 2009 at 12:05 AM][14]

Reading all Your posts in printed version while going to University =) Thanks.  
I sure You will print Big Book about all that! =)  
Aleksandr, Estonia.

[Reply][7][Delete][15]

4. ![][4]

[Kaushik][16][January 29, 2009 at 9:18 AM][17]

Does Commerce Server also uses Python code underneath some where??

[Reply][7][Delete][18]

5. ![][4]

[Juanjo Conti][19][March 16, 2009 at 5:48 PM][20]

Spanish version at [la-historia-de-python-microsoft-distribuye-codigo-python-en-1996/][21].

[Reply][7][Delete][22]

[Add comment][7]

[Load more...][7]

Note: Only a member of this blog may post a comment.

‹

›

[Home][1]

[View web version][23]

## About Me

![My photo][24]

[ Guido van Rossum ][25]
: Python's BDFL

[View my complete profile][25]

[ ![][26] ][27]

Powered by [Blogger][28]. 

[ ![][26] ][29]

[1]: http://python-history.blogspot.com/?m=1
[2]: https://plus.google.com/102722482248467575904 "author profile"
[3]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?m=1 "permanent link"
[4]: http://lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA%3Ds35
[5]: https://www.blogger.com/profile/14141500729962703817
[6]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?showComment=1233181740000&m=1#c8021651320241425588
[7]: javascript:%3B
[8]: https://www.blogger.com/delete-comment.g?blogID=8699431508730375743&postID=8021651320241425588
[9]: https://www.blogger.com/profile/18385372690520577647
[10]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?showComment=1233197700000&m=1#c7803408116045822372
[11]: https://www.blogger.com/delete-comment.g?blogID=8699431508730375743&postID=7803408116045822372
[12]: http://soswow.planet.ee/am_photo.jpg
[13]: https://www.blogger.com/profile/07399289955297941231
[14]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?showComment=1233216300000&m=1#c5750061775759562414
[15]: https://www.blogger.com/delete-comment.g?blogID=8699431508730375743&postID=5750061775759562414
[16]: https://www.blogger.com/profile/16102492035459675464
[17]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?showComment=1233249480000&m=1#c8296201989729117261
[18]: https://www.blogger.com/delete-comment.g?blogID=8699431508730375743&postID=8296201989729117261
[19]: https://www.blogger.com/profile/00311238789779841975
[20]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?showComment=1237250880000&m=1#c8349556157516666689
[21]: http://www.juanjoconti.com.ar/2009/03/11/la-historia-de-python-microsoft-distribuye-codigo-python-en-1996/
[22]: https://www.blogger.com/delete-comment.g?blogID=8699431508730375743&postID=8349556157516666689
[23]: http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html?m=0
[24]: http://2.bp.blogspot.com/_FG9t5W1SJ14/SO0aRdEpTAI/AAAAAAAACvw/sQy2btDo2DI/S220-s80/IMG_2192.jpg
[25]: https://www.blogger.com/profile/12821714508588242516
[26]: https://resources.blogblog.com/img/icon18_wrench_allbkg.png
[27]: //www.blogger.com/rearrange?blogID=8699431508730375743&widgetType=Profile&widgetId=Profile2&action=editWidget&sectionId=footer-3 "Edit"
[28]: https://www.blogger.com
[29]: //www.blogger.com/rearrange?blogID=8699431508730375743&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer-3 "Edit"

  [*[6:40 AM]: 2009-01-28T06:40:00-08:00

