PDC 2008: Don Box stars as 'M,' the minister of sensibility
By Scott M. Fulton, III | Published October 28, 2008, 7:29 PM
During another overflowing demonstration here at PDC, long-time Microsoft developers Don Box and David Langworthy (two of the most popular presenters every year) introduced developers to M, the new modeling language for data.
The term modeling is being introduced here in more than one context, and for the realm of enterprise application developers, it refers to the ability to produce a workable schema that may or may not be populated with explicitly typed data. The need for more direct modeling has been known for long enough, though perhaps not understood; it hasn't occurred to people that the task could be approached through the use of another language.
"XML is great for transmitting data and exchanging data," Box told one questioner toward the end of his talk, "but once I try to run a query against it, I run against some walls."
Using M -- the language used by the modeling platform "Oslo" -- a developer explicitly models the structure of a database. M is not an object-oriented language -- a fact that, in and of itself, almost made Box giddy with glee. But it's a more appealing system for defining type and structure for veteran programmers who prefer C++ or C# to XML. And it's an alternative to, or perhaps a complement to, other tools that use more diagrammatic methods for structuring data.
"I don't see text replacing diagrams," Box said. "I see both existing until the end of mankind."
During the talk, Langworthy demonstrated (or, more accurately, tried to demonstrate...he ran into a few hitches) how a simple data modeling process works. He created a test module that represented People. Into that module he added extents which define the boundaries and types of the data.
What's the point? The M compiler generates a binary image of the database, in a very small file size. In so doing, M generates the SQL code that produces the actual tables and type definitions for the database, often consuming what appeared to be six or seven times more lines of T-SQL code. M thus becomes a way to textually, not diagrammatically, produce a live database that's more abstract than T-SQL, and more approachable than XML, for purposes that XML does not adequately serve.
Extents add constraints and limits to data, defining its type (text, integer, floating-point) and conceivably including its contents. These are the values and constraints that are principal elements of M. Then a developer may generate views, which from the perspective of the M compiler are actually functions, and from the perspective of the T-SQL the compiler may generate are actually queries. Running those functions by name triggers the SQL transactions in the query.
Wow. This makes me want to get back into databases.
Score: 0
|