<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Adding custom properties to GUI objects	</title>
	<atom:link href="https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects/feed" rel="self" type="application/rss+xml" />
	<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adding-custom-properties-to-gui-objects</link>
	<description>Professional Matlab consulting, development and training</description>
	<lastBuildDate>Wed, 20 May 2020 12:49:06 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.3</generator>
	<item>
		<title>
		By: Jan Kappen		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-508678</link>

		<dc:creator><![CDATA[Jan Kappen]]></dc:creator>
		<pubDate>Wed, 20 May 2020 12:49:06 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-508678</guid>

					<description><![CDATA[@Eric, I&#039;m just curious, is the new chart container class (&lt;a href=&quot;https://de.mathworks.com/help/matlab/ref/matlab.graphics.chartcontainer.chartcontainer-class.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://de.mathworks.com/help/matlab/ref/matlab.graphics.chartcontainer.chartcontainer-class.html&lt;/a&gt;) the approach you mentioned?

Thanks.]]></description>
			<content:encoded><![CDATA[<p>@Eric, I&#8217;m just curious, is the new chart container class (<a href="https://de.mathworks.com/help/matlab/ref/matlab.graphics.chartcontainer.chartcontainer-class.html" target="_blank" rel="nofollow">https://de.mathworks.com/help/matlab/ref/matlab.graphics.chartcontainer.chartcontainer-class.html</a>) the approach you mentioned?</p>
<p>Thanks.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jan		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-420818</link>

		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Wed, 21 Mar 2018 09:03:02 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-420818</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419230&quot;&gt;Yaroslav&lt;/a&gt;.

I agree on pushing on that sealing issue. What can we do? It would be great to subclass some graphics elements.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419230">Yaroslav</a>.</p>
<p>I agree on pushing on that sealing issue. What can we do? It would be great to subclass some graphics elements.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michelle Hirsch		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-420470</link>

		<dc:creator><![CDATA[Michelle Hirsch]]></dc:creator>
		<pubDate>Thu, 15 Mar 2018 20:23:48 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-420470</guid>

					<description><![CDATA[Yair, 
Thanks as always for openly sharing your two cents - always worth way more than just a few pennies! 


I totally understand where you are coming from - the benefits to users of subclassing are clear, as you&#039;ve articulated. That said, I still believe we need to proceed very carefully if we intentionally open up parts of MATLAB that we aren&#039;t committed to keeping as compatible as possible over time. You refer to the risk as &quot;potentially making life a bit harder for MathWorks developers one day&quot;. I see it very differently - I see the primary risk to our users, not MathWorks developers. Our developers evolve the product to meet demand from our users; constraints on changing underlying implementation and architecture can significantly hinder our ability to keep up with user demands. Of course, nothing is black-and-white - you know better than almost anybody about the trade-off between getting capabilities now and code potentially breaking in the future. 


I&#039;m intrigued by your notion that developers have a different expectation of compatibility when subclassing than they might have when calling documented programing interfaces directly. I&#039;ve long been interested in figuring out &quot;safe&quot; ways for us to give advanced users more flexibility while still managing release compatibility expectations, so maybe this points in a fruitful direction. I could imagine a world where we set expectations that subclassing is not guaranteed to work in the future. I can see this working in a direct conversation with the developers who subclass, but I really worry about the downstream user who relies on this subclassed code who doesn&#039;t know why their code broke with a new release, has no idea how to fix it and potentially no ability to get the author to fix it, either. This reflects the nature of how a majority of MATLAB code spreads in the wild today.


As always, I encourage other readers to jump in with their perspectives. Yair and I could discuss more next time we meet.]]></description>
			<content:encoded><![CDATA[<p>Yair,<br />
Thanks as always for openly sharing your two cents &#8211; always worth way more than just a few pennies! </p>
<p>I totally understand where you are coming from &#8211; the benefits to users of subclassing are clear, as you&#8217;ve articulated. That said, I still believe we need to proceed very carefully if we intentionally open up parts of MATLAB that we aren&#8217;t committed to keeping as compatible as possible over time. You refer to the risk as &#8220;potentially making life a bit harder for MathWorks developers one day&#8221;. I see it very differently &#8211; I see the primary risk to our users, not MathWorks developers. Our developers evolve the product to meet demand from our users; constraints on changing underlying implementation and architecture can significantly hinder our ability to keep up with user demands. Of course, nothing is black-and-white &#8211; you know better than almost anybody about the trade-off between getting capabilities now and code potentially breaking in the future. </p>
<p>I&#8217;m intrigued by your notion that developers have a different expectation of compatibility when subclassing than they might have when calling documented programing interfaces directly. I&#8217;ve long been interested in figuring out &#8220;safe&#8221; ways for us to give advanced users more flexibility while still managing release compatibility expectations, so maybe this points in a fruitful direction. I could imagine a world where we set expectations that subclassing is not guaranteed to work in the future. I can see this working in a direct conversation with the developers who subclass, but I really worry about the downstream user who relies on this subclassed code who doesn&#8217;t know why their code broke with a new release, has no idea how to fix it and potentially no ability to get the author to fix it, either. This reflects the nature of how a majority of MATLAB code spreads in the wild today.</p>
<p>As always, I encourage other readers to jump in with their perspectives. Yair and I could discuss more next time we meet.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-420354</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Tue, 13 Mar 2018 09:23:28 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-420354</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419723&quot;&gt;Eric Sargent&lt;/a&gt;.

@Eric - I really appreciate the fact that you took the time to post your comment and state MathWorks&#039; position on this matter publicly. This is not taken for granted at all. 

However, I have to tell you that I find your reasoning for sealing Matlab classes perplexing to say the least. Please correct me if I&#039;m mistaken, but I believe that Java, C++, C# and VB.Net -- to name just a few well-known object-oriented programming languages/environments, all of which have far greater following than Matlab -- have not seen fit to seal their classes in the general case (GUI/graphics included), and I do not think that this has ever hampered their growth. The same can be said for many if not all of the numerous commercial and open-source libraries that MathWorks uses within Matlab. 

Any user who extends a built-in class, in *any* programming language, knows full-well that this might break &lt;i&gt;in the future&lt;/i&gt;. This is still much better than not being able to accomplished the requested functionality &lt;i&gt;today&lt;/i&gt;. Such users might tell themselves that since the other platforms are not as limiting, it might make sense to drop Matlab in their favor.

Limiting users&#039; ability to use Matlab today, under the vague notion that this might possibly make life a bit harder for MathWorks developers one day in the far future, is IMHO plain nearsightedness. On the contrary - let the user community extend the built-in Matlab classes, and then you could incorporate the best of these extensions in future Matlab releases (at no expense to MathWorks!). &lt;i&gt;Just my personal &#162;2, please don&#039;t kill the messenger...&lt;/i&gt;]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419723">Eric Sargent</a>.</p>
<p>@Eric &#8211; I really appreciate the fact that you took the time to post your comment and state MathWorks&#8217; position on this matter publicly. This is not taken for granted at all. </p>
<p>However, I have to tell you that I find your reasoning for sealing Matlab classes perplexing to say the least. Please correct me if I&#8217;m mistaken, but I believe that Java, C++, C# and VB.Net &#8212; to name just a few well-known object-oriented programming languages/environments, all of which have far greater following than Matlab &#8212; have not seen fit to seal their classes in the general case (GUI/graphics included), and I do not think that this has ever hampered their growth. The same can be said for many if not all of the numerous commercial and open-source libraries that MathWorks uses within Matlab. </p>
<p>Any user who extends a built-in class, in *any* programming language, knows full-well that this might break <i>in the future</i>. This is still much better than not being able to accomplished the requested functionality <i>today</i>. Such users might tell themselves that since the other platforms are not as limiting, it might make sense to drop Matlab in their favor.</p>
<p>Limiting users&#8217; ability to use Matlab today, under the vague notion that this might possibly make life a bit harder for MathWorks developers one day in the far future, is IMHO plain nearsightedness. On the contrary &#8211; let the user community extend the built-in Matlab classes, and then you could incorporate the best of these extensions in future Matlab releases (at no expense to MathWorks!). <i>Just my personal &cent;2, please don&#8217;t kill the messenger&#8230;</i></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Eric Sargent		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419723</link>

		<dc:creator><![CDATA[Eric Sargent]]></dc:creator>
		<pubDate>Mon, 05 Mar 2018 18:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-419723</guid>

					<description><![CDATA[Hello Yair,
Thank you for your comments about how unsealing classes would be beneficial for you and other users.  
At present, we have not unsealed these because doing so could limit our ability to change the implementation strategy in future releases. That being said, we have heard this request in the graphics area as well (not just UI) and we are researching how this might be possible in the future.  To help us in doing this, would you be willing to share additional specific use cases that you’re thinking about?  If so, please send me an email with your thoughts and I will share with the development teams, as I’m sure they would love to hear your input.  
Thank you!
Eric Sargent
Product Manager at The MathWorks]]></description>
			<content:encoded><![CDATA[<p>Hello Yair,<br />
Thank you for your comments about how unsealing classes would be beneficial for you and other users.<br />
At present, we have not unsealed these because doing so could limit our ability to change the implementation strategy in future releases. That being said, we have heard this request in the graphics area as well (not just UI) and we are researching how this might be possible in the future.  To help us in doing this, would you be willing to share additional specific use cases that you’re thinking about?  If so, please send me an email with your thoughts and I will share with the development teams, as I’m sure they would love to hear your input.<br />
Thank you!<br />
Eric Sargent<br />
Product Manager at The MathWorks</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yaroslav		</title>
		<link>https://undocumentedmatlab.com/articles/adding-custom-properties-to-gui-objects#comment-419230</link>

		<dc:creator><![CDATA[Yaroslav]]></dc:creator>
		<pubDate>Mon, 19 Feb 2018 21:36:50 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=7324#comment-419230</guid>

					<description><![CDATA[Hi Yair,

Kudos for bringing up this &lt;b&gt;Sealed&lt;/b&gt; issue; I couldn&#039;t have agreed with you more.  It is indeed a perplexing decision that hampers one&#039;s work. 

I have first encountered this problem while updating the &lt;a href=&quot;http://undocumentedmatlab.com/blog/undocumented-cursorbar-object&quot; rel=&quot;nofollow&quot;&gt;old &lt;code&gt;Cursorbar&lt;/code&gt;&lt;/a&gt; to the new &lt;a href=&quot;https://www.mathworks.com/matlabcentral/fileexchange/49612-cursorbar&quot; rel=&quot;nofollow&quot;&gt;HG2 engine&lt;/a&gt;.  Since &lt;code&gt;Cursorbar&lt;/code&gt; needed -- on top of a plethora of new properties -- events and methods with arguments, and since it had to be &quot;real time,&quot; the simple solution of &lt;b&gt;&lt;i&gt;addprop&lt;/i&gt;&lt;/b&gt; just wouldn&#039;t suffice.  It would have been &lt;i&gt;much&lt;/i&gt; easier to subclass either &lt;code&gt;Group&lt;/code&gt; or some other handle graphics class; alas, being not the case, I had to wiggle myself around to keep the desired behavior and compatibility with handle graphics.  As you can imagine, it came with some cost, and some things still don&#039;t work properly as a result.  

I believe the Matlab community should press strongly on this matter. Maybe, a shared &quot;new functionality&quot; request between many people or a petition of some sort will do the trick. In any case, it would help to hear a clarification from Mathworks about this decision; perhaps, they have some reasons we&#039;re unaware of.

Cheers and keep up the good work.]]></description>
			<content:encoded><![CDATA[<p>Hi Yair,</p>
<p>Kudos for bringing up this <b>Sealed</b> issue; I couldn&#8217;t have agreed with you more.  It is indeed a perplexing decision that hampers one&#8217;s work. </p>
<p>I have first encountered this problem while updating the <a href="http://undocumentedmatlab.com/blog/undocumented-cursorbar-object" rel="nofollow">old <code>Cursorbar</code></a> to the new <a href="https://www.mathworks.com/matlabcentral/fileexchange/49612-cursorbar" rel="nofollow">HG2 engine</a>.  Since <code>Cursorbar</code> needed &#8212; on top of a plethora of new properties &#8212; events and methods with arguments, and since it had to be &#8220;real time,&#8221; the simple solution of <b><i>addprop</i></b> just wouldn&#8217;t suffice.  It would have been <i>much</i> easier to subclass either <code>Group</code> or some other handle graphics class; alas, being not the case, I had to wiggle myself around to keep the desired behavior and compatibility with handle graphics.  As you can imagine, it came with some cost, and some things still don&#8217;t work properly as a result.  </p>
<p>I believe the Matlab community should press strongly on this matter. Maybe, a shared &#8220;new functionality&#8221; request between many people or a petition of some sort will do the trick. In any case, it would help to hear a clarification from Mathworks about this decision; perhaps, they have some reasons we&#8217;re unaware of.</p>
<p>Cheers and keep up the good work.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
