<?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: More Thoughts About FXRuby API Changes</title>
	<atom:link href="http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/feed/" rel="self" type="application/rss+xml" />
	<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/</link>
	<description>Covering Software Development with Ruby and FXRuby</description>
	<lastBuildDate>Fri, 27 Aug 2010 13:01:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: FXRuby 1.6 pre-release testing at Lovable Lyle</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-133</link>
		<dc:creator>FXRuby 1.6 pre-release testing at Lovable Lyle</dc:creator>
		<pubDate>Thu, 27 Apr 2006 18:32:27 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-133</guid>
		<description>[...] When I say that I&#8217;ve finished the first wave of development, what I mean is that I&#8217;ve made all of the necessary updates to make FXRuby compatible with FOX 1.6. I have not yet begun work on any of the new features that I&#8217;d like to introduce in the FXRuby 1.6 line, but some of those features include: As previously discussed, there are some global API changes that I&#8217;d like to make to the naming of classes and methods in FXRuby. [...]</description>
		<content:encoded><![CDATA[<p>[...] When I say that I&#8217;ve finished the first wave of development, what I mean is that I&#8217;ve made all of the necessary updates to make FXRuby compatible with FOX 1.6. I have not yet begun work on any of the new features that I&#8217;d like to introduce in the FXRuby 1.6 line, but some of those features include: As previously discussed, there are some global API changes that I&#8217;d like to make to the naming of classes and methods in FXRuby. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Volkmann</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-106</link>
		<dc:creator>Mark Volkmann</dc:creator>
		<pubDate>Mon, 03 Apr 2006 15:45:33 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-106</guid>
		<description>Coming to this thread late ... I really like all the suggestions here ... no FX prefixes, underscores instead of camelcase in method names, and more default arguments.</description>
		<content:encoded><![CDATA[<p>Coming to this thread late &#8230; I really like all the suggestions here &#8230; no FX prefixes, underscores instead of camelcase in method names, and more default arguments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henon</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-73</link>
		<dc:creator>Henon</dc:creator>
		<pubDate>Thu, 16 Feb 2006 21:59:02 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-73</guid>
		<description>Lyle, 

ok, i will submit the suggestions as feature requests.

a completely new API in a different module would not only be more robust than the method_missing hack (which slows down old camelcased code with an extra indirection for each method call) - it also brings the chance to do a more sophisticated redesign. i.e. resolve the &quot;create issue&quot; and much more.

if you finally deside to code up a new API module i would like to volunteer to join the project ;)
as you might know i have quite some experience because i actually did the same thing for foxguib. well, back then i was more of a hacker than a software engineer so i would like to do it again and well this time. also i would like to work together with a even much more experienced guy like you. and finally, i have a lot of ideas for improvements and simplifications based on usage experience of fxruby.

-- henon</description>
		<content:encoded><![CDATA[<p>Lyle, </p>
<p>ok, i will submit the suggestions as feature requests.</p>
<p>a completely new API in a different module would not only be more robust than the method_missing hack (which slows down old camelcased code with an extra indirection for each method call) &#8211; it also brings the chance to do a more sophisticated redesign. i.e. resolve the &#8220;create issue&#8221; and much more.</p>
<p>if you finally deside to code up a new API module i would like to volunteer to join the project <img src='http://lylejohnson.name/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
as you might know i have quite some experience because i actually did the same thing for foxguib. well, back then i was more of a hacker than a software engineer so i would like to do it again and well this time. also i would like to work together with a even much more experienced guy like you. and finally, i have a lot of ideas for improvements and simplifications based on usage experience of fxruby.</p>
<p>&#8211; henon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eljay</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-72</link>
		<dc:creator>eljay</dc:creator>
		<pubDate>Thu, 16 Feb 2006 21:06:50 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-72</guid>
		<description>Lyle,

Having used a lot of FXruby code in FreeRIDE, I&#039;d say that I can live with the FX prefix. If you include Fox you don;t have to specify Fox:: anyway and I would even argue that, on the contrary, having the FX prefix and even the camel case makes it easy to distinguish method names that deal with UI stuff from others like standard libraries.</description>
		<content:encoded><![CDATA[<p>Lyle,</p>
<p>Having used a lot of FXruby code in FreeRIDE, I&#8217;d say that I can live with the FX prefix. If you include Fox you don;t have to specify Fox:: anyway and I would even argue that, on the contrary, having the FX prefix and even the camel case makes it easy to distinguish method names that deal with UI stuff from others like standard libraries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Willson</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-71</link>
		<dc:creator>Scott Willson</dc:creator>
		<pubDate>Thu, 16 Feb 2006 16:53:27 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-71</guid>
		<description>Lyle,

Thanks again for FXRuby. It&#039;s a great help for my main Ruby project.

FWIW, I think underscores instead of camel case is a great idea. The camel case bothers me more than it probably should.

I also like your namespace proposal. Since we have to live with a Fox-Ruby &quot;bridge&quot; no matter what, we may as well take advantage of it and make the names clearer. I don&#039;t think it will make it any harder to use the API docs.</description>
		<content:encoded><![CDATA[<p>Lyle,</p>
<p>Thanks again for FXRuby. It&#8217;s a great help for my main Ruby project.</p>
<p>FWIW, I think underscores instead of camel case is a great idea. The camel case bothers me more than it probably should.</p>
<p>I also like your namespace proposal. Since we have to live with a Fox-Ruby &#8220;bridge&#8221; no matter what, we may as well take advantage of it and make the names clearer. I don&#8217;t think it will make it any harder to use the API docs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lyle</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-70</link>
		<dc:creator>Lyle</dc:creator>
		<pubDate>Thu, 16 Feb 2006 16:14:18 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-70</guid>
		<description>*Henon*, thanks for the encouragement and the suggestions. Please use the &quot;Bugs&quot;:http://rubyforge.org/tracker/?atid=1223&amp;group_id=300&amp;func=browse and &quot;Feature Requests&quot;:http://rubyforge.org/tracker/?atid=1226&amp;group_id=300&amp;func=browse trackers at the RubyForge project page to record those suggestions so that they don&#039;t get lost in the shuffle!

*Jim*, I had wondered if the proposed approach was an &quot;abuse&quot; of @method_missing@ and @const_missing@, or if there were other complications that I hadn&#039;t considered. I will also consider just coding-up an add-on library that provides aliases and renames for the class and method names, per your suggestion.</description>
		<content:encoded><![CDATA[<p>*Henon*, thanks for the encouragement and the suggestions. Please use the &#8220;Bugs&#8221;:http://rubyforge.org/tracker/?atid=1223&#038;group_id=300&#038;func=browse and &#8220;Feature Requests&#8221;:http://rubyforge.org/tracker/?atid=1226&#038;group_id=300&#038;func=browse trackers at the RubyForge project page to record those suggestions so that they don&#8217;t get lost in the shuffle!</p>
<p>*Jim*, I had wondered if the proposed approach was an &#8220;abuse&#8221; of @method_missing@ and @const_missing@, or if there were other complications that I hadn&#8217;t considered. I will also consider just coding-up an add-on library that provides aliases and renames for the class and method names, per your suggestion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Weirich</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-69</link>
		<dc:creator>Jim Weirich</dc:creator>
		<pubDate>Thu, 16 Feb 2006 14:11:52 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-69</guid>
		<description>Another possibility is to put the new API in a different require file, and then have the current require files do something like this:

   require &#039;fox/newapi/whatever&#039;

   module Fox
     FXButton = Button
   end

Method aliasing could do the same for the camelcase issue.  The advantage is that you don&#039;t need const/method_missing (which can be fragile is not done carefully).  The downside is a lot of explict renaming and aliasing that would need to be maintained (but remember, automation is your friend).

Just some thoughts.</description>
		<content:encoded><![CDATA[<p>Another possibility is to put the new API in a different require file, and then have the current require files do something like this:</p>
<p>   require &#8216;fox/newapi/whatever&#8217;</p>
<p>   module Fox<br />
     FXButton = Button<br />
   end</p>
<p>Method aliasing could do the same for the camelcase issue.  The advantage is that you don&#8217;t need const/method_missing (which can be fragile is not done carefully).  The downside is a lot of explict renaming and aliasing that would need to be maintained (but remember, automation is your friend).</p>
<p>Just some thoughts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henon</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-67</link>
		<dc:creator>Henon</dc:creator>
		<pubDate>Thu, 16 Feb 2006 08:00:52 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-67</guid>
		<description>Jacob, there _is_ a standard for method naming in Ruby: the convention the ruby core and most of it&#039;s standard libraries are following. 

lyle, i am glad you decided to make fxruby more a ruby-style library as opposed to a authentic copy of the c   API with all it&#039;s flaws. i fully respect and support this decision!

there is annother thing which i want to suggest: please add default arguments for all constructor parameters with index &gt; 0.
i mean: a default text for Button, default settings for Mainwin, etc. this would make the API even more easy to use:

include Fox
app=App.new
MainWin(app){&#124;mw&#124;
    Button.new(mw){&#124;button&#124;
        button.text = &quot;Click Me&quot;
        ...
    }
}

the motivation for this is: i often get confused with the different sets of parameters in widget constructors. Some have a message target in the constructor, some don&#039;t. to quickly code a gui it is most annoying to look up the parameterlist for every constructor in the docs. the problem is not their quantity (there are 1-4 parameters that don&#039;t have default values in every widget constructor) - it is the inconsistency that makes it hard to remember.
apart from that it makes automatic code generation hard. for foxguib i decided to subclass every foxwidget to provide uniform constructors and to resolve some other inconsistencies in the API. since then i have allways used the simplified API (the fx library that is required by all foxguib-generated code) when i wrote gui-code by hand, because it was faster. would be great if fxruby provided uniform constructors.

annother thing that i often miss: a visible=(bool) method for Fox::Window. it is inconvenient to map a boolean variable to show / hide.

there are much more suggestions which i currently fail to recall. i will tell you later if you are interested.

-- henon</description>
		<content:encoded><![CDATA[<p>Jacob, there _is_ a standard for method naming in Ruby: the convention the ruby core and most of it&#8217;s standard libraries are following. </p>
<p>lyle, i am glad you decided to make fxruby more a ruby-style library as opposed to a authentic copy of the c   API with all it&#8217;s flaws. i fully respect and support this decision!</p>
<p>there is annother thing which i want to suggest: please add default arguments for all constructor parameters with index &gt; 0.<br />
i mean: a default text for Button, default settings for Mainwin, etc. this would make the API even more easy to use:</p>
<p>include Fox<br />
app=App.new<br />
MainWin(app){|mw|<br />
    Button.new(mw){|button|<br />
        button.text = &#8220;Click Me&#8221;<br />
        &#8230;<br />
    }<br />
}</p>
<p>the motivation for this is: i often get confused with the different sets of parameters in widget constructors. Some have a message target in the constructor, some don&#8217;t. to quickly code a gui it is most annoying to look up the parameterlist for every constructor in the docs. the problem is not their quantity (there are 1-4 parameters that don&#8217;t have default values in every widget constructor) &#8211; it is the inconsistency that makes it hard to remember.<br />
apart from that it makes automatic code generation hard. for foxguib i decided to subclass every foxwidget to provide uniform constructors and to resolve some other inconsistencies in the API. since then i have allways used the simplified API (the fx library that is required by all foxguib-generated code) when i wrote gui-code by hand, because it was faster. would be great if fxruby provided uniform constructors.</p>
<p>annother thing that i often miss: a visible=(bool) method for Fox::Window. it is inconvenient to map a boolean variable to show / hide.</p>
<p>there are much more suggestions which i currently fail to recall. i will tell you later if you are interested.</p>
<p>&#8211; henon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeroen van der Zijp</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-66</link>
		<dc:creator>Jeroen van der Zijp</dc:creator>
		<pubDate>Thu, 16 Feb 2006 04:42:33 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-66</guid>
		<description>Lyle, when I introduced namespaces in FOX, I went to similar considerations as you are now proposing.  I decided to leave things the way they were, because it would require a lot of extra documentation work [keep in mind that that I while of course I *can* change my own documentation, I don&#039;t know how to propagate such a change across the world where people have done translations and additional wiki pages and so on].  In the case of C  , elimination the prefix would introduce possible name-collisions in existing programs and it is not always clear that these will be detectable.

In fact, my new project, Lumos, does not rely on any any prefixing, and while this gives somewhat more reasonable code, I&#039;ve already found quite a number of cases where the namespace must be explicitly used to disambiguate symbols.  

Even though that&#039;s exactly what namespaces are for, of course, it still looks a bit inelegant compared to the alternative, and it makes it less transparent to determine which library a symbol comes from in larger software projects using several libraries.

I&#039;m not sure to what extent the arguments above apply to [FX]Ruby, but I&#039;m sure at least some of them do.

Jeroen</description>
		<content:encoded><![CDATA[<p>Lyle, when I introduced namespaces in FOX, I went to similar considerations as you are now proposing.  I decided to leave things the way they were, because it would require a lot of extra documentation work [keep in mind that that I while of course I *can* change my own documentation, I don't know how to propagate such a change across the world where people have done translations and additional wiki pages and so on].  In the case of C  , elimination the prefix would introduce possible name-collisions in existing programs and it is not always clear that these will be detectable.</p>
<p>In fact, my new project, Lumos, does not rely on any any prefixing, and while this gives somewhat more reasonable code, I&#8217;ve already found quite a number of cases where the namespace must be explicitly used to disambiguate symbols.  </p>
<p>Even though that&#8217;s exactly what namespaces are for, of course, it still looks a bit inelegant compared to the alternative, and it makes it less transparent to determine which library a symbol comes from in larger software projects using several libraries.</p>
<p>I&#8217;m not sure to what extent the arguments above apply to [FX]Ruby, but I&#8217;m sure at least some of them do.</p>
<p>Jeroen</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joao Pedrosa</title>
		<link>http://lylejohnson.name/blog/2006/02/15/more-thoughts-about-fxruby-api-changes/comment-page-1/#comment-65</link>
		<dc:creator>Joao Pedrosa</dc:creator>
		<pubDate>Thu, 16 Feb 2006 04:08:23 +0000</pubDate>
		<guid isPermaLink="false">http://lylejohnson.name/blog/?p=133#comment-65</guid>
		<description>Even though these changes might be a little painful in the transition period, I think they are worth the consideration. Personally, I find it hard the &quot;camelCaseStyle&quot; of the methods as they are very unusual in Ruby and it makes the &quot;context switching&quot; of writing with_underlines and withoutUnderlines very bothersome in my opinion. I remember when I first converted from Java to Ruby and how my code had many Java conventions rather than Ruby conventions. Nowadays I prefer the Ruby conventions all the way. Between FXButton and Button it does not affect me as much, but I&#039;m afraid that some &quot;include Fox&quot; could cause some kind of confusion between a custom class Button and the default Fox::Button one.

Anyway, I think it&#039;s a bold move, and it&#039;s worth the problems. The only notable difference will be to know how to search for the right method or class in Google if you want to search the Fox documentation rather than the FXRuby one.

I think you have many variables and I hope people will help to decide on this. :-) 

Cheers.</description>
		<content:encoded><![CDATA[<p>Even though these changes might be a little painful in the transition period, I think they are worth the consideration. Personally, I find it hard the &#8220;camelCaseStyle&#8221; of the methods as they are very unusual in Ruby and it makes the &#8220;context switching&#8221; of writing with_underlines and withoutUnderlines very bothersome in my opinion. I remember when I first converted from Java to Ruby and how my code had many Java conventions rather than Ruby conventions. Nowadays I prefer the Ruby conventions all the way. Between FXButton and Button it does not affect me as much, but I&#8217;m afraid that some &#8220;include Fox&#8221; could cause some kind of confusion between a custom class Button and the default Fox::Button one.</p>
<p>Anyway, I think it&#8217;s a bold move, and it&#8217;s worth the problems. The only notable difference will be to know how to search for the right method or class in Google if you want to search the Fox documentation rather than the FXRuby one.</p>
<p>I think you have many variables and I hope people will help to decide on this. <img src='http://lylejohnson.name/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p>Cheers.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
