<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Not yet another language</title>
	<atom:link href="http://abstratt.com/blog/2008/08/06/not-yet-another-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/</link>
	<description>A company obsessed with one single goal: stopping people from writing so much code</description>
	<pubDate>Thu, 09 Sep 2010 10:39:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Ersin ER</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-806</link>
		<dc:creator>Ersin ER</dc:creator>
		<pubDate>Sun, 19 Apr 2009 19:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-806</guid>
		<description>Hi,

Lots of things can be said on the topic (and I think we should do so) but to put it as simple as possible I can explain the difference as follows:

TextUML is just another representation for the UML concepts but JRuby has nothing to do with being a representation for JMV bytecode. A machine microcode is at the bottom of the abstration layer chain and almost anything can be built on top of it. On the other hand TextUML (or any concrete syntax) does to add anything to or does not build a really new abstration level on top of UML (or to a abstract syntax/metamodel). So it's important to distinguish a metamodel and a microcode.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Lots of things can be said on the topic (and I think we should do so) but to put it as simple as possible I can explain the difference as follows:</p>
<p>TextUML is just another representation for the UML concepts but JRuby has nothing to do with being a representation for JMV bytecode. A machine microcode is at the bottom of the abstration layer chain and almost anything can be built on top of it. On the other hand TextUML (or any concrete syntax) does to add anything to or does not build a really new abstration level on top of UML (or to a abstract syntax/metamodel). So it&#8217;s important to distinguish a metamodel and a microcode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-772</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 15 Feb 2009 18:15:12 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-772</guid>
		<description>Hi Patrick,

Yes, UML is a language. But TextUML per se is not a real language, instead being just a shallow notation built on top of the UML semantics and abstract syntax. 

Re: Java or Ruby serving as modeling languages - well, if you limit yourself to simple concepts such as classes, their structural features, and inheritance, yes, Ruby or Java can make do as modeling languages. But for sound OO modeling, you need much more: associations (with composition/aggregation semantics), multiplicities, and things from other modeling aspects such as states and transitions. You can try to mimic that with hacks in Java and Ruby, but a modeler will be better served if those features are natively supported by the modeling language. 

That, assuming your creating models to support model-driven development. Totally agreeing with "choosing the right language for the right task", the best language will be the one that better supports your modeling needs.</description>
		<content:encoded><![CDATA[<p>Hi Patrick,</p>
<p>Yes, UML is a language. But TextUML per se is not a real language, instead being just a shallow notation built on top of the UML semantics and abstract syntax. </p>
<p>Re: Java or Ruby serving as modeling languages - well, if you limit yourself to simple concepts such as classes, their structural features, and inheritance, yes, Ruby or Java can make do as modeling languages. But for sound OO modeling, you need much more: associations (with composition/aggregation semantics), multiplicities, and things from other modeling aspects such as states and transitions. You can try to mimic that with hacks in Java and Ruby, but a modeler will be better served if those features are natively supported by the modeling language. </p>
<p>That, assuming your creating models to support model-driven development. Totally agreeing with &#8220;choosing the right language for the right task&#8221;, the best language will be the one that better supports your modeling needs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-767</link>
		<dc:creator>Patrick</dc:creator>
		<pubDate>Sat, 14 Feb 2009 14:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-767</guid>
		<description>Gee, it's been some time since this thread started, but seems still a recurring subject. I dare disagree with Raphael in stating that TextUML in fact, just like UML itself -- a language (alas, it even says so in its name). My point (http://mygoodlife.ch/wp/?p=44) was that there is not much difference except in syntax between capturing design in TextUML v.s. say Java or Ruby. Let's look at an example, for brevity using TextUML and Ruby:

[Ruby]
class Car
 def drive(speed); end
 def stop; end
 def accelerate; end
end

[TextUML]
class Car
 operation drive(speed:Integer);
 operation stop();
 operation accelerate();
end;
  
See what I mean? That is why I dare question the notion of using UML, if you can use the implementatino language directly, without loosing semantics. Of course, there are features of one language over another that let you express "semantically rich" elements more easily than in another language -- but that IMHO is merely a matter of choosing the right language for the right task.</description>
		<content:encoded><![CDATA[<p>Gee, it&#8217;s been some time since this thread started, but seems still a recurring subject. I dare disagree with Raphael in stating that TextUML in fact, just like UML itself &#8212; a language (alas, it even says so in its name). My point (http://mygoodlife.ch/wp/?p=44) was that there is not much difference except in syntax between capturing design in TextUML v.s. say Java or Ruby. Let&#8217;s look at an example, for brevity using TextUML and Ruby:</p>
<p>[Ruby]<br />
class Car<br />
 def drive(speed); end<br />
 def stop; end<br />
 def accelerate; end<br />
end</p>
<p>[TextUML]<br />
class Car<br />
 operation drive(speed:Integer);<br />
 operation stop();<br />
 operation accelerate();<br />
end;</p>
<p>See what I mean? That is why I dare question the notion of using UML, if you can use the implementatino language directly, without loosing semantics. Of course, there are features of one language over another that let you express &#8220;semantically rich&#8221; elements more easily than in another language &#8212; but that IMHO is merely a matter of choosing the right language for the right task.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-282</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Fri, 08 Aug 2008 05:45:55 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-282</guid>
		<description>Thanks for your comment, Manfred, keep them coming.

I am really glad you brought that up. There is a big difference between multiple notations for UML and multiple languages on common runtimes such as JVM or the CLR, and the difference is exactly that for UML we talk about "notations" and for the JVM or CLR we say "languages". 

Notations for UML are just a thin layer of user interface for the language abstract syntax and semantics, no existing semantics changed, no new semantics added. 

Languages for the CLR or JVM are true languages, and in many cases, the fact they run on the CLR or the JVM is just an implementation detail, i.e., they could be (and frequently are) implemented on other runtimes. Even for Java there is a considerable gap in abstraction level between the language and the JVM.

That is not to say that it does not make sense to support other even richer/more abstract &lt;strong&gt;languages&lt;/strong&gt; on top of UML as you suggest. Model transformation (across metamodels) is one of the key mechanisms in model-driven development. But that is a totally different discussion (which I would be glad to have, btw).

Cheers,

Rafael</description>
		<content:encoded><![CDATA[<p>Thanks for your comment, Manfred, keep them coming.</p>
<p>I am really glad you brought that up. There is a big difference between multiple notations for UML and multiple languages on common runtimes such as JVM or the CLR, and the difference is exactly that for UML we talk about &#8220;notations&#8221; and for the JVM or CLR we say &#8220;languages&#8221;. </p>
<p>Notations for UML are just a thin layer of user interface for the language abstract syntax and semantics, no existing semantics changed, no new semantics added. </p>
<p>Languages for the CLR or JVM are true languages, and in many cases, the fact they run on the CLR or the JVM is just an implementation detail, i.e., they could be (and frequently are) implemented on other runtimes. Even for Java there is a considerable gap in abstraction level between the language and the JVM.</p>
<p>That is not to say that it does not make sense to support other even richer/more abstract <strong>languages</strong> on top of UML as you suggest. Model transformation (across metamodels) is one of the key mechanisms in model-driven development. But that is a totally different discussion (which I would be glad to have, btw).</p>
<p>Cheers,</p>
<p>Rafael</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manfred Moser</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-281</link>
		<dc:creator>Manfred Moser</dc:creator>
		<pubDate>Thu, 07 Aug 2008 19:12:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-281</guid>
		<description>I am split between agreeing and disagreeing. A parallel example is all the different languages running on the JVM. They all represent java byte code so they all have a common target, but man are they different as well. In a similar manner I think that UML notations could be VERY different, yet still talk about the same model. And looking at the multiple languages on the JVM that might not be bad either...</description>
		<content:encoded><![CDATA[<p>I am split between agreeing and disagreeing. A parallel example is all the different languages running on the JVM. They all represent java byte code so they all have a common target, but man are they different as well. In a similar manner I think that UML notations could be VERY different, yet still talk about the same model. And looking at the multiple languages on the JVM that might not be bad either&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
