On “M”
I wanted to clarify a couple of things related to “M” and respond to some questions that were posed in response to my From “Oslo” to SQL Server Modeling and On DSLs and a few other things… posts.
First, the “M” language is not tied to any Microsoft implementation. Not SQL Server. Not Windows. Not anything.
We have committed to publish the “M” language specification under the OSP. There is already a JavaScript implementation. You are free to write your own.
Second, the Microsoft implementation of the “M” language will ship with SQL Server. It could also ship with a number of other Microsoft products, but of all the things in this uncertain world, the most certain thing I know is that “M” is going to ship with a future version of SQL Server.
BTW: When I mean SQL Server, I do not mean the engine. I mean the broader SQL Platform that you may have heard called the Data Platform or Information Platform. SQL Server Express is part of that. SQL Azure is part of that. Note that we don’t charge a dime for SQL Server Express. We have not made any decisions about how we are going to license our implementation, but I will tell you – I know that history is kind to technologies that are broadly available to developers.
Let’s recap. “M” is an open language that anyone can implement. Our implementation of that language will at least ship in SQL Server (the broader definition) and be available in products that use SQL Server (the broader definition).
BTW: Did you know that SQL Server Express is available for free, right inside the Web Platform Installer. Easy to install. Easy to use.
Lastly, as I have stated in lots of comments and posts, the core DSL capabilities we have in “M” remain. Sells just posted an entry that shows more of the new capabilities available in the CTP.
One thing I am committed to doing is answering every single comment, tweet and email that I can until I think we have been absolutely clear on what we are doing with SQL Server Modeling and “M” in particular.
So if you still have questions, keep them coming…
Question: Will we be able to use Microsoft’s “M” implementation in our products? Put another way, will we be able to ship “M” with third party products, without the use of any other component in the greater SQL Server platform?
Thanks!
Jordan Terrell
14 Nov 09 at 03:42
Jordan: Caveat that things can change up until you ship the signed bits, but yes, you will be able to use our “M” implementation in your products. As for what dependencies that implementation will have when we ship, I don’t know. I can tell you what dependencies our compiler has today: Windows & .NET Framework 4.0 Beta 2.
douglasp
14 Nov 09 at 07:09
Here is what I think you should do. Think about shipping the M part via the “MVC shipping model” and the repository and Quadrant part with SQL. Use PDC to ask people whether they would like this better than what you seem to plan right now.
M and your M implementation seems fairly well progressed. Why don’t you do the following: pull it out, make it a small download and RTM it VERY quickly. The download would have the M binaries + Intellipad + VS integration, nothing else. Ship a v1 as quickly as you can, with no dependency on anything but .Net FX. In particular, RTM within the next year, WAY before the next version of SQL ships that you might be part of with your plan. People will love you for this. v2 of M can then ship simultaniously with SQL and Quadrant and the repository.
You would gain two things: M would not have a dependency on SQL. I think there is absolutley no good technical reason to have that dependency and I think most of the negative feedback on your anouncement is based on this. You would also signal to us that M WILL ship. With your new plan things just look incredibly shakey. What if the SQL group finds that quadrant is not ready to ship? There is a problem with the repository? It does not fit into one of their crazy/grand WinFS-like plans? Right now, for no reason, as an outsider these risks trickle through to M. So the barrier for me to adopt M have dramatically increased. Previously I thought that if your team thinks M is ready, you ship, via the MVC-shipping-model. Now I have the impression that strategic decisions on how quadrant and the repository fit into the overall SQL strategy have an impact on the likelihood of M shipping. VERY BAD, given the track record of the SQL group, quite frankly. Who on earth is going to be crazy enough to invest ANY time/effort into developing something based on Oslo with this amount of uncertainty?!?
Also, quite frankely, if you really think that because SQL Express can be downloaded for free such a dependency would not hinder the adoption of M, then please also ask around next week. People absolutely hate it when they have to take dependencies that are technically not needed and are due soley to some strange MS internal politics that no one outside understands.
And also, I felt a tendency that you tried to sell this as “oh, we just changed the name”. I don’t think this is a smart move. You changed a dependency. This is a MAJOR change, because it means that M is essentially out for anyone who doesn’t want to take on the same dependency, for whatever reason.
davidacoder
14 Nov 09 at 12:56
Excellent! Please do what you can to keep it that way. Thanks for addressing all the questions you’ve been getting on this subject.
Jordan Terrell
14 Nov 09 at 13:44
@davidacoder – completely agree, very well said.
Steve Strong
14 Nov 09 at 21:01
[...] [Updated: another follow-up post: On “M”] [...]
From “Oslo” to SQL Server Modeling at Douglas Purdy
15 Nov 09 at 07:29
We have to empathize with MS; they don’t actually have unlimited resources.
They embarked on an ambitious project with MGrammar and failed to deliver within the quality constraints that would befit them in an economically justifiable timeframe.
One of the quality metrics is performance; try to write a simple tokenizer in MGrammar that would just tokenize a 10K file into letters, digits, spaces and punctuation; it does not deliver yet, especially when compared with a now defunct product “ProGrammar” that I happened to be testing against.
But they cannot spend the next 5 years to optimize an amorphous non-product without justification.
They justify their existence by maximizing shareholder revenue; and they have to do it on a yearly basis.
MS is not an autonomous government that can make 5-10-15 year plans with national priorities; they have to deliver every year.
And the shareholders want a, say 10%, revenue growth every year out of a, say $50 billion company (I don’t know the figures).
And at that size a 10% increase is a trivial $5 billion.
Even SQL Server is not a $5 billion product.
Can MGrammar generate even a miserly $100,000,000 two years down the road?
But SQL Server (like Exchange) is a multi-billion dollar product; if you were managing MS would you prioritize MGrammar over the colors of squiggles in the T-SQL editor? (This is by no means to belittle user studies; they are as important as any other facet of these products; we owe the goodness of our everyday database and VS experience to these deceptively simple and free! nuances).
What would you prefer? That MS go out of business by pursuing nebulous goals by satisfying the needs of a handful of grammar geeks like me (I spent the last year to write utilities for MGrammar & MGraph) or that they continue to provide reliable software on this platform. (Just imagine you were condemned to use IBM products).
So, given the short-term non-viability of MGrammar, they opted to restrict the delivery to a modeling proposition only (again, for the short-term); even though MGrammar will certainly exist therein, it is much easier for them to manage because because it is just another DSL written with a DSL tool (namely, MGrammar) and they don’t have to wholly commit to the whole DSL story right now.
Very logical business-wise, I should say.
Don’t flame at the engineers with a sales perpective, because they bring-in the bread that feeds [SQL|VS]Express & SQLCompact.
Ceyhun Ciper
15 Nov 09 at 15:14
[...] [Update: I address more “M” specific questions: On “M”] [...]
On DSLs and a few other things… at Douglas Purdy
16 Nov 09 at 18:19
davidacoder – this makes sense to me. ‘M’ should be like ECore is to Eclipse. A community can be built around it and its technology can be used by SQL Modeler.
If not as a product, then maybe under codeplex?
Joe Wood
16 Nov 09 at 19:08
Ceyhun,
They could have shipped MGrammar under Visual Studio .Net umbrella and make the rest under SQL Server and everybody would have loved it (and I can assure you there are tons of paying customers for VS.Net).
Remember that SQL Server has CLR runtime in it – it doesn’t mean that .Net framework is now under SQL Server Group.
Dody Gunawinata
18 Nov 09 at 14:39
Yes, they could have and I would have loved it greatly; I have spent the best part of this year developing utilities and libraries for Oslo: mgrammar debugger, mgraph visualizers, intellipad plugins etc that you can see for yourself @ http://www.sixpairs.com .
But they didn’t…
…not just for financial reasons.
Maybe more developer pressure is needed.
During the past few months developers did not show much interest in MGrammar nor have been active thereon (e.g. on the Oslo forum); and a lot of people were active on Quadrant issues.
Come on, not 1 person inquired about my “MGrammar Debugger”!
I can’t blame MS for their decision.
Ceyhun Ciper
20 Nov 09 at 09:50
MS really listened to customers; all you have to do is look at the Oslo forum archives; you will see that people were much more interested in data modeling and Quadrant than in MGrammar.
Ceyhun Ciper
20 Nov 09 at 09:54
Doug
I was just tasked with writing a DSL, and was allset to start using “M”, but now I see it requires vs2010. Are there any plans for a vs2008/codeplex version of “M” and it’s object interface? I need to start soon on this, but now it looks like I have to find another tool for a textual DSL.
Thanks
-Mark
Mark Cunningham
17 Dec 09 at 18:17
Sorry. Our “M” implementation requires .NETFX4.0 and VS.
douglasp
18 Dec 09 at 00:35
Hi!
I am wondering what happened to the mg.exe tool! I’ve just dowload he SQL Server Modeling CTP Nov (V3) and it is not there!
Can you help me with this?
Thanks
Felipe
Felipe
23 Jul 10 at 23:14