<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx</link><description>I was a bit surprised about the large scale of the positive hype around 'M' in Oslo. Fortunately, Roger Alsing wrote a 'Back to reality' post about M which stood out as a single critical remark against the sea of positivism. I like it when someone chooses</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6748524</link><pubDate>Thu, 20 Nov 2008 16:52:32 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6748524</guid><dc:creator>Clemens Szyperski</dc:creator><author>Clemens Szyperski</author><description>&lt;p&gt;Oh, I forgot to address your first question -- &amp;quot;so the DSLs creatable with M are really more in the category of data transformation languages and not for example really suitable for defining rule logic and the like?&amp;quot;&lt;/p&gt;
&lt;p&gt;A key idea behind M is that specific semantics, such as rule logic or workflow etc., is not part of or defined in M. It is defined by the runtime you choose to interpret/execute your models. Any given runtime will &amp;quot;understand&amp;quot; only a subset of your models, of course. And any given model may be interpreted by multiple runtimes for multiple purposes. This decoupling is fundamental to the Oslo approach - there isn&amp;#39;t the one semantics baked into a model.&lt;/p&gt;
&lt;p&gt;Therefore, DSLs are truly just syntactic sugar over your domain models and, thus, no more than, as you put it, data transformers: the DSL definition maps any valid DSL instance to the desired model instance(s).&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6748524" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6736248</link><pubDate>Fri, 14 Nov 2008 19:35:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6736248</guid><dc:creator>Clemens Szyperski</dc:creator><author>Clemens Szyperski</author><description>&lt;p&gt;@Frans:&lt;/p&gt;
&lt;p&gt;I think we agree - designing a DSL is not easy and a parser generator, as such, doesn&amp;#39;t make it easier. The details of the meta language do make a big difference (and we hope to make MGrammar a really good one), but it doesn&amp;#39;t as such address the issue you bring up.&lt;/p&gt;
&lt;p&gt;At that level, integrating MGrammar into the &amp;quot;M&amp;quot; story serves one purpose: _if_ you know how to think about and design DSLs that are essentially data transformers, _then_ we aim to offer a smooth story for how to do that in the context of &amp;quot;Oslo&amp;quot;. (So, MGrammar is not targeting the scenarios of existing parser generators that are all far more general than MGrammar, with mechanisms such as arbitrary code actions on the RHS of productions.)&lt;/p&gt;
&lt;p&gt;Something better, like &amp;quot;define DSLs by example&amp;quot; could likely be build on top, once we understand how to do that in the first place. (Ok, I shouldn&amp;#39;t say &amp;quot;we&amp;quot; here, just because I don&amp;#39;t understand how that could be done. :))&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6736248" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6733510</link><pubDate>Thu, 13 Nov 2008 17:29:41 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6733510</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@Clemens: &lt;/p&gt;
&lt;p&gt;so the DSLs creatable with M are really more in the category of data transformation languages and not for example really suitable for defining rule logic and the like? &lt;/p&gt;
&lt;p&gt;My main point is that the route towards a grammar which reflects what the language has to be about is really a long route, despite the extra tooling: the main hurdle isn't addressed: how to get to the point that one can formulate a non-terminal (or M's equivalent) and it fits the goal of the language. &lt;/p&gt;
&lt;p&gt;Imagine someone who wants to write a DSL for a narrow domain. How would that person start? Probably with writing out some example texts which represent valid input for the DSL. But then the problem starts: how to create grammar which is able to parse these inputs properly so an AST which is usable to interpret the input as it was meant and also how to make sure inputs which are wrong aren't accepted? That's a big step. Once that step is taken, the rest is 'easy': whatever tool you're using, writing the grammar out in the tool of choice isn't that hard compared to that initial step, and IMHO that step isn't addressed at all in oslo, so what's there is really just what's already available (perhaps more fancier and with more bells/whistles) with other parser generators/toolkits. It's that first step that counts. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6733510" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6731248</link><pubDate>Wed, 12 Nov 2008 17:46:34 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6731248</guid><dc:creator>Chris Sells</dc:creator><author>Chris Sells</author><description>&lt;p&gt;Saber, what were you looking for in the Oslo SDK CTP that you didn&amp;#39;t find? Feel free to drop me a line so I don&amp;#39;t miss your response: csells@microsoft.com.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6731248" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6729446</link><pubDate>Tue, 11 Nov 2008 16:16:53 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6729446</guid><dc:creator>Clemens Szyperski</dc:creator><author>Clemens Szyperski</author><description>&lt;p&gt;Thanks all for providing useful feedback. Please allow us to listen in. :)&lt;/p&gt;
&lt;p&gt;MGrammar is used to transform expressions made in a custom language (a DSL) into MGraph/MSchema definitions. As such, M DSLs are _not_ general languages. You do not define semantic actions - all semantics is derived from the meaning of the data schema you are translating the DSL to. This has two consequences in practice: (i) such DSLs compose much more easily, because, in the end, they either target shared schema or they don&amp;#39;t; (ii) such DSLs are typically easier to design, because they are less demanding than intricate programming languages, especially from an exceptions/error-handling point of view.&lt;/p&gt;
&lt;p&gt;We are still working hard on tooling and error diagnostics for MGrammar to ease the experience of defining your own DSL as much as we can. However, I&amp;#39;d still expect far more folks to be using rather than designing DSLs. There is no question that it takes skill to model a domain. There is also no question that it takes (different) skill to design a DSL.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6729446" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6729204</link><pubDate>Tue, 11 Nov 2008 10:03:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6729204</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@come again (real names would be great for a discussion, don't &amp;nbsp;you think? ;))&lt;/p&gt;
&lt;p&gt;I think it's a matter of definition then, because I see grammar as one of the founding pillars of a language design. So if you want to design a language, the grammar is one big part of it. I still find defining grammar as being hard, despite the fact that people claim it not to be, that was the point of my article. &lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6729204" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6728762</link><pubDate>Mon, 10 Nov 2008 21:02:22 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6728762</guid><dc:creator>come again</dc:creator><author>come again</author><description>&lt;p&gt;@frans: You the whole sentence. I didn&amp;#39;t quite understand your comment.&lt;/p&gt;
&lt;p&gt;Anyway, your entire article is about how M doesn&amp;#39;t make parsing much easier. That is missing the point, since grammars and parsing is the easiest part design and implement (when you write a compiler or interpreter). If you had rounded it off by, say &amp;quot;and since parsing is the easiest part of a compiler/interpreter, qed&amp;quot;, it would have made more sense.&lt;/p&gt;
&lt;p&gt;But I agree language design is the hard part. Your article just doesn&amp;#39;t mention it.&lt;/p&gt;
&lt;p&gt;(btw, I&amp;#39;m not come on)&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6728762" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6728718</link><pubDate>Mon, 10 Nov 2008 20:24:30 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6728718</guid><dc:creator>FransBouma</dc:creator><author>FransBouma</author><description>&lt;p&gt;@come on: I don't you understand what I meant: the parsing is done by their parser, so yes, that's the easy part, as you (the user) don't deal with that. It's the language design which is the problem.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6728718" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6728614</link><pubDate>Mon, 10 Nov 2008 19:07:09 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6728614</guid><dc:creator>Come On</dc:creator><author>Come On</author><description>&lt;p&gt;You&amp;#39;re really missing the point. Parsing is the easiest part.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6728614" width="1" height="1"&gt;</description></item><item><title>re: Designing a language is hard, and M won't change that</title><link>http://weblogs.asp.net/fbouma/archive/2008/11/05/designing-a-language-is-hard-and-m-won-t-change-that.aspx#6725018</link><pubDate>Fri, 07 Nov 2008 07:24:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6725018</guid><dc:creator>Saber Karmous</dc:creator><author>Saber Karmous</author><description>&lt;p&gt;I share the same feeling as you Frans, but on a whole other level. I&amp;#39;m not a parser specialist, I know what they do, know how &amp;quot;hard&amp;quot; it is to make them. But it&amp;#39;s not my daily job to create parsers, nor do I have the illusion that I&amp;#39;m able to create a new and sexy language.&lt;/p&gt;
&lt;p&gt;What disappointed me is that Microsoft is taking this DSL thing in the wrong way. Microsoft is good at making easy and productive tooling. And I liked they what they were doing with their first DSL toolkit. Nice and easy DSL&amp;#39;s for the masses.&lt;/p&gt;
&lt;p&gt;Then it became very quiet, and all of a sudden Oslo pops ups. And in my eyes it&amp;#39;s as if they were working on something nice, and then they had to go all &amp;quot;academicy&amp;quot;. From my understanding it&amp;#39;s suppose to be more flexible, but I really don&amp;#39;t see whether this is gonna make my job easier or more productive.&lt;/p&gt;
&lt;p&gt;When I saw people cheer about Oslo, I thought let&amp;#39;s give it a look. I downloaded the current CTP and I what I found wasn&amp;#39;t the same stuff they used @ the PDC.&lt;/p&gt;
&lt;p&gt;So for me, when creating a DSL it&amp;#39;s back to using GME again: No nonsense DSL model development that I understand, and which has proven to me in practice to be very productive and manageable. No Microsoft Don Box style hype, no marketing... Just stuff that works.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6725018" width="1" height="1"&gt;</description></item></channel></rss>