ObjectSpaces early days - Luca Bolognese

ObjectSpaces early days

Luca -

☕ 3 min. read

Matt has a very good post on the his­tory of ob­ject re­la­tional frame­work in­side Microsoft. He and I started the whole ObjectSpaces thing to­gether very many years ago (about six and a half). I thought I should add my two cents.


You might be won­der­ing how a pro­ject starts in­side Microsoft (or you might not). In this case, I was hired in the ADO.NET team to build an ob­ject re­la­tional frame­work. That was my as­sign­ment. The prob­lem was that I had no dev or tester to work with. I also had just ar­rived in the US from Italy and my English was ter­ri­ble (that has­n’t changed much). My only qual­i­fi­ca­tions for the job were that I was in­cred­i­bly pas­sion­ate about the topic; I had built a cou­ple of small ones in my spare time and have used many more in var­i­ous pro­jects. But still I had no idea on how to make things hap­pen in this big com­pany. Hell, I could barely un­der­stand what peo­ple were talk­ing about at lunch.


Anyhow, my boss told me that there was a guy who was rel­a­tively free, but I had to come up with an idea, con­vince him that the idea was a good one and that he should go ahead and pro­to­type it. That guy was Matt Warren, al­ready one of the best de­vel­op­ers in the SQL team and the dev lead of plenty of our .NET stack.


The first time I en­tered his of­fice and started talk­ing, he im­me­di­ately told me: Not now, I’m de­bug­ging”. A good start … But af­ter that, we hit it off im­me­di­ately. We talked about what an OR frame­work is, what it should be, how we could in­no­vate in the space and so on. After a while, Matt started work­ing on the very first ObjectSpaces pro­to­type. Our modus operandi was pe­cu­liar. I would go to Matt’s of­fice and we would dis­cuss a par­tic­u­lar fea­ture or sce­nario. He would tell me: Ok, we are on the same page, I’ll see you to­mor­row”. The next day the fea­ture would be im­ple­mented. If he told me: It is go­ing to take me 5 days to code it” I knew he did­n’t like the fea­ture and I had some more con­vinc­ing to do. Sometime we would agree, some­time we would­n’t. Sometime I came up with staff to im­ple­ment, some­times Matt did. We fig­ured out a lot of stuff in those days.


Also I learned how to work with dif­fer­ent cat­e­gories of pro­gram­mers. If you work with a bad pro­gram­mer you have to tell him how to im­ple­ment some­thing. If you work with a good pro­gram­mer you have to tell him what you want the fea­ture to look like. If you work with an ex­cel­lent pro­gram­mer, you just have to tell him what your fi­nal goal is. I quickly re­al­ized that the lat­ter was the most pro­duc­tive strat­egy with Matt. I had just to con­vince him of the busi­ness need for some­thing. Implementing it ended up to be a de­tail.


That ini­tial pro­to­type grew to be­come ObjectSpaces (it was called Cheops ini­tially). The team grew to be about 25 peo­ple, grow­ing and stretch­ing me per­son­ally. We went through two painful rounds of uni­fi­ca­tions with big­ger prod­ucts. In the end ObjectSpaces was cut. Matt moved to the C# team to work on LINQ. Dinesh and I fol­lowed af­ter a short while. The whole ObjectSpaces team scat­tered in var­i­ous places around the com­pany. The ob­ject re­la­tional thing started again in the C# team as part of the LINQ pro­ject. This time around we also had a com­piler to play with. Plus Anders was on board to sprin­kle his de­sign magic over the whole thing.


As Roland would say, the world has moved on. Matt is now a big shot ar­chi­tect and I lead a team of amaz­ingly smart in­di­vid­u­als (they are forced to act as if my words make sense, imag­ine that …). We are ship­ping a game chang­ing prod­uct in LINQ and a won­der­ful ob­ject re­la­tional frame­work in LINQ to SQL. Things turned out for the best (even if five years too late).


Still it is a plea­sure to think back at those early days (and nights) of figuring out stuff’ six years ago. A lot of that stuff’ is in­side our prod­ucts to­day, and that is some­thing to be proud of.



Philip Coupar


I remember seeing Object Spaces at PDC in 2001 ,I think.  It is great to see that good ideas eventually make it into the mainstream products.

stefan demetz


finalmente c'e' linq ...
cmq, c'e' una societa' italiana (di un mio amico) che ha un' ORM da una dozzina d'anni ....
con versioni in SmallTalk, Java e .NET
il tutto antecedente/derivante da tecnologia TopLink (che Oracle ha comprato qualche anno fa)
funziona una meraviglia altro che Hibernate, e' in produzione da anni in grosse banche ed assicurazioni a Milano
cmq, state facendo un' ottimo lavoro su .NET, e' fenomenale rispetto a Java

The Wayward WebLog


Luca has a blog post that says some kind words about me in regards to our work together on ObjectSpaces.

Paolo Pialorsi


Segnalo un post di Luca Bolognese, nostro connazionale e Lead PM di LINQ, che ripercorre gli ultimi 6

Luca Quintarelli


E' da un p&#242 che leggo il tuo blog, fare l'architect in Microsoft penso sia il sogno di  molti, anche il mio quando avevo 20 anni, cos'&#236 ora ti leggo cercando di immaginare l'atmosfera :)
Ho apprezzato molto la frase sui bad,good and excellent programmer condivido al 110%

Roger Jennings


You mention that ObjectSpaces was code-named "Cheops", but I recall the first preview from PDC was called "Orca." If so, did Orca stand for "Object Relational Component Architecture?"
Just checking facts.
http://oakleafblog.blogspot.com/2005/09/language-integrated-query-linq-project.html and

Orcas was the codename for the whole Visual Studio release. The code name for the objectspaces project was Cheops (I know because I came up with it :-) )

0 Webmentions

These are webmentions via the IndieWeb and webmention.io.