We’re working towards the next major release of LightSpeed – LightSpeed 6. LightSpeed was the first product that Mindscape ever created and thus has quite a history to it now. We’ve had fans from day 1 who are still with us but as LightSpeed continues to grow in popularity I thought the newer users might enjoy a trip down memory lane.
When we started Mindscape in early 2007 we only knew we would be a products company with a focus on developer tools that didn’t suck. We bootstrapped meaning that we didn’t raise a pile of money — we had to do some contracting at the time to pay the bills.
Andrew always had an interest in ORMs. At the time I didn’t personally think the world really needed a new ORM and they equally weren’t all that popular in the .NET space (remember, this was pre LINQ to SQL and Entity Framework). I was happy to have Andrew scratch his own itch because I saw it as an opportunity to put the wheels on our product development process.
What we needed to do to deliver LightSpeed as a product:
A lot of this was new to all of us — we had a services background where we rarely needed to do more than build the product. I figured that even if LightSpeed was a market failure we would at least learn a lot. Furthermore, many of the product development stages were re-usable: the online store functioning and being able to handle nightly builds.
We went through a beta phase with developers. This was a bit of a waste of time to be honest – we got a little bit of a feedback however awareness of Mindscape was relatively low and interest in object relational mappers was even lower.
We released LightSpeed 1 in August 2007 and started picking up a few customers – that was good, end to end, the system worked. We could take money online, our users could understand the product. Great.
Around this time Microsoft announced LINQ to SQL and Entity Framework. I won’t lie, my heart sank. Some sales had been coming in for LightSpeed and was picking up some faith that we could actually make some money from it.
In my initial panic about this I discussed with the team the possibility of doing various things:
Thankfully (in retrospect!) the team decided we should stay the course. There were several challenges with this strategy. We knew we’d need to invest much more effort & time (read: money) into LightSpeed to make it a viable competitor.
LightSpeed 2 shipped on June 4th 2008 with a fancy new Visual Studio integrated designer and something resembling a LINQ provider. We had also added some cool core features that users had been asking for.
The Designer allowed for full bi-directional updates (e.g. make changes to your design file and you could push changes to the DB automatically, or, if you preferred changing the database, you could and have the designer update from the database). This is still one of my favourite features of LightSpeed – and it absolutely hammers the competitors out there now for their database syncing.
The LINQ provider. Well. Let me tell you – it’s bloody hard to write a good LINQ provider. Doubly so when you’re one of the first teams in the world to actually write one and the documentation was little more than a couple of blog posts.
LightSpeed 2 sales increased, we started getting more companies on board. We had to deal with a lot of questions about why somebody should use LightSpeed over L2S or EF, which were free. In particular, LINQ to SQL was a pretty good product in my opinion. Entity Framework significantly less so – it was slow, lacked even basic features and was a bit of a dog.
Our LINQ provider wasn’t that powerful yet but it did have one great advantage – it worked over all the databases that LightSpeed worked with (MySQL, SQLite, Oracle, SQL Server, PostgreSQL etc). This was a pretty solid selling point.
In December 2009 we released LightSpeed 3. This was huge for us – and really was the version that started generating significant sales for the company in the 2010 calendar year.
The LINQ provider got significant love, the visual designer started supporting advanced refactoring features and the core engine got a lot more capability.
We also shipped a visual migrations framework which we thought would be a big draw card for the product since nobody else was doing a good job of database migrations in 2009. It supported several of the databases that LightSpeed supported, could generate scripts and even had a command line utility if you wanted something for your server.
It never took off. It’s still in LightSpeed and is used a bit but it seems that .NET developers never fell in love with database migrations to the same degree that our friends using Rails did. Oh well, the other features still made for an impressive release. Our users loved it.
About this time it became apparent that Microsoft was killing LINQ to SQL. This was a really big deal to a lot of developers. Frankly, my opinion at the time (and still is) was that Microsoft killed the wrong baby. LINQ to SQL was fast, it worked, it was easy to understand. Entity Framework was getting bloated and still missed basic features that we had shipped in LightSpeed 1.
Microsoft actually did a great service for Mindscape – they educated the .NET masses that an object relational mapper was a better way of working with data for line of business apps. That was huge – our small company never could have educated that many developers on why they should use one.
They also lacked focus by shipping two products that competed with each other and that confused the market.
Furthermore, their products were pretty woeful for serious apps.
Looking back on when I was so panicked about Microsoft entering the market, I could now see that it was a hugely useful thing to Mindscape.
In mid 2011 we shipped LightSpeed 4. This was also a big release for Mindscape and LightSpeed 4 sold a lot of licenses.
You will note however that by this stage we were shipping a new major version about every 18 months. That was quite slow in the eyes of many developers. The truth was that we were drinking our own Kool Aid. Ever since LightSpeed 1.0 shipped we had been shipping nightly builds that included every new bug fix, feature and enhancement. To be honest, sometimes we didn’t realise just how much work we had poured into a product until I went to write the release notes.
You’ll see from our change log that every major version has ended up with a longer and longer list of changes. I’m personally not a fan of arbitrary quarterly releases but perhaps one day we should change our approach — we don’t want users thinking the product isn’t being updated!
LightSpeed 4 added distributed data support (clients, servers, distributed LINQ, only sending change sets over the wire — all the stuff the cool kids wanted). We also further improved the querying engine, added a meta data API and auditing support, to name but a few key features.
In March 2013 we released LightSpeed 5. We had the core object relational mapping and design time experienced pretty much nailed by now so this was a big polish release.
LightSpeed 5 added internal improvements for compiled queries, support for new data types in SQL Server 2012 and designer improvements to boot.
LightSpeed 5’s performance further widened the gap between LightSpeed and Entity Framework. Raw performance wise, LightSpeed could get you your data more than 14x faster than Entity Framework at the time! LightSpeed was so fast that it was only marginally (few %) slower than the anaemic micro-ORMs that had become the flavour of the month in data access.
That’s the history of LightSpeed – from the first product at the start of Mindscape’s life, through to now. We’re working on LightSpeed 6 and seeing if we can’t continue to make data access even better.
I’m very proud of LightSpeed, it’s served the company well and, just as importantly – our customers have been served well. While the core product is very mature and very fast, there is always more we can do and we’re looking at that for LightSpeed 6.
This has been quite a long post. I haven’t written a post like this before on the Mindscape site but I thought those of you who use LightSpeed might enjoy a walk down memory lane with me :-)
Comments always appreciated below, and if you’re a .NET developer then be sure to grab the free edition of LightSpeed.