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.

7 Comments

Comments

Philip Coupar

2007-06-07T11:10:09Z

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

2007-06-07T12:19:46Z

Ciao,
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

2007-06-07T12:30:34Z

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

Paolo Pialorsi

2007-06-07T13:06:12Z

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

Luca Quintarelli

2007-06-09T10:13:39Z

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

2007-06-15T11:24:53Z

Luca,
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.
Ciao,
--rj
http://oakleafblog.blogspot.com/2005/09/language-integrated-query-linq-project.html and
http://oakleafblog.blogspot.com/2007/03/entity-framework-updates.html

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.