<?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: A True Pluggable Look-and-Feel</title>
	<atom:link href="http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/</link>
	<description>The neighbourhood of 7</description>
	<lastBuildDate>Wed, 12 May 2010 16:29:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Vassili Bykov</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1331</link>
		<dc:creator>Vassili Bykov</dc:creator>
		<pubDate>Thu, 06 Nov 2008 19:38:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1331</guid>
		<description>Markus--

I&#039;m not sure what you mean by reaching out. Native Brazil windows are native, meaning they are independent from the one Squeak window. In fact, when the image starts you don&#039;t see the squeak window. You get whatever Brazil windows were open when you saved the image, all separate like any other windows on the system desktop. You can open the Squeak window if you need it, like I did for this screencast to demo the remapping.

Carl--

&quot;Brazil&quot; is after the movie, continuing the totalitarian naming trend started by Newspeak. 

Torsten--

Brazil is Newspeak-only in the sense that it&#039;s written in Newspeak, which is not backward compatible with Smalltalk. Of course, one could write a framework with a similar architecture in classic Smalltalk, or perhaps even convert the code automatically--though it wouldn&#039;t be pretty. Also, it relies on the FFI that&#039;s not available for Squeak yet. Two FFI layers, in fact--the low-level Alien mechanism which should find its way into Squeak one day, and a higher-level Newspeak-specific wrapper which would have to be redesigned or replaced for classic Smalltalk.

Matthias--

That&#039;s a good question. We considered that option and no, it wouldn&#039;t make more sense. There are several reasons why. 

One, native widgets are the way to go, which rules out something like Gtk (other than on Linux where it could be proclaimed as native). With OS X for a while, and with Vista now, the visual pizzazz plank is high these days, and emulated solutions are a dead end. (And a resource black hole).

Second, while we want cross-platform support, we don&#039;t want platform insulation. Brazil will allow a window open on one platform to migrate to another, and to write code that runs on any without changes, but it will also allow special-casing for non-portable features (say, if a button on platform A has an attribute not available on platform B). If you want a Windows-only app that relies on something only Windows can do, you should be able to build it. That&#039;s crucial to avoid the lowest common denominator problem that all insulating frameworks suffer from. So, we don&#039;t want another framework to create an illusion for us that it&#039;s all the same world out there. It&#039;s not, and we want hooks to deal with it.

Third, we don&#039;t want a dependency on a large opaque body of foreign language code with other people&#039;s bugs in it.  The way things are now, everything beginning from the OS call back to a window procedure happens inside the image (we don&#039;t rely on any plugins or primitives) and available for debugging, inspecting and changing in a civilized live environment. Some people may enjoy chasing pointers in gdb, but we are not among them.</description>
		<content:encoded><![CDATA[<p>Markus&#8211;</p>
<p>I&#8217;m not sure what you mean by reaching out. Native Brazil windows are native, meaning they are independent from the one Squeak window. In fact, when the image starts you don&#8217;t see the squeak window. You get whatever Brazil windows were open when you saved the image, all separate like any other windows on the system desktop. You can open the Squeak window if you need it, like I did for this screencast to demo the remapping.</p>
<p>Carl&#8211;</p>
<p>&#8220;Brazil&#8221; is after the movie, continuing the totalitarian naming trend started by Newspeak. </p>
<p>Torsten&#8211;</p>
<p>Brazil is Newspeak-only in the sense that it&#8217;s written in Newspeak, which is not backward compatible with Smalltalk. Of course, one could write a framework with a similar architecture in classic Smalltalk, or perhaps even convert the code automatically&#8211;though it wouldn&#8217;t be pretty. Also, it relies on the FFI that&#8217;s not available for Squeak yet. Two FFI layers, in fact&#8211;the low-level Alien mechanism which should find its way into Squeak one day, and a higher-level Newspeak-specific wrapper which would have to be redesigned or replaced for classic Smalltalk.</p>
<p>Matthias&#8211;</p>
<p>That&#8217;s a good question. We considered that option and no, it wouldn&#8217;t make more sense. There are several reasons why. </p>
<p>One, native widgets are the way to go, which rules out something like Gtk (other than on Linux where it could be proclaimed as native). With OS X for a while, and with Vista now, the visual pizzazz plank is high these days, and emulated solutions are a dead end. (And a resource black hole).</p>
<p>Second, while we want cross-platform support, we don&#8217;t want platform insulation. Brazil will allow a window open on one platform to migrate to another, and to write code that runs on any without changes, but it will also allow special-casing for non-portable features (say, if a button on platform A has an attribute not available on platform B). If you want a Windows-only app that relies on something only Windows can do, you should be able to build it. That&#8217;s crucial to avoid the lowest common denominator problem that all insulating frameworks suffer from. So, we don&#8217;t want another framework to create an illusion for us that it&#8217;s all the same world out there. It&#8217;s not, and we want hooks to deal with it.</p>
<p>Third, we don&#8217;t want a dependency on a large opaque body of foreign language code with other people&#8217;s bugs in it.  The way things are now, everything beginning from the OS call back to a window procedure happens inside the image (we don&#8217;t rely on any plugins or primitives) and available for debugging, inspecting and changing in a civilized live environment. Some people may enjoy chasing pointers in gdb, but we are not among them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthias Kleine</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1330</link>
		<dc:creator>Matthias Kleine</dc:creator>
		<pubDate>Thu, 06 Nov 2008 16:36:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1330</guid>
		<description>I&#039;m a bit surprised that you chose Windows as the first external UI framework. Wouldn&#039;t it have made more sense to support something which already is cross-plattform (e.g. Qt, GTK, ...)?</description>
		<content:encoded><![CDATA[<p>I&#8217;m a bit surprised that you chose Windows as the first external UI framework. Wouldn&#8217;t it have made more sense to support something which already is cross-plattform (e.g. Qt, GTK, &#8230;)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Pennell</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1329</link>
		<dc:creator>David Pennell</dc:creator>
		<pubDate>Wed, 05 Nov 2008 16:04:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1329</guid>
		<description>Let me know if you want a volunteer to do the Cocoa support.</description>
		<content:encoded><![CDATA[<p>Let me know if you want a volunteer to do the Cocoa support.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torsten</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1328</link>
		<dc:creator>Torsten</dc:creator>
		<pubDate>Wed, 05 Nov 2008 15:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1328</guid>
		<description>Is Brazil a &quot;Newspeak&quot; only thing or will it also be possible to use it from Squeak/Pharo later?</description>
		<content:encoded><![CDATA[<p>Is Brazil a &#8220;Newspeak&#8221; only thing or will it also be possible to use it from Squeak/Pharo later?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carl Gundel</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1327</link>
		<dc:creator>Carl Gundel</dc:creator>
		<pubDate>Wed, 05 Nov 2008 13:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1327</guid>
		<description>Cool.  Mac widgets now, pretty please?  :-)  By the way, why do you call it Brazil?</description>
		<content:encoded><![CDATA[<p>Cool.  Mac widgets now, pretty please?  :-)  By the way, why do you call it Brazil?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Markus</title>
		<link>http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/comment-page-1/#comment-1326</link>
		<dc:creator>Markus</dc:creator>
		<pubDate>Wed, 05 Nov 2008 11:21:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3plus4.org/?p=48#comment-1326</guid>
		<description>Very cool. Any chance to include sth. along the lines (or stolen from) &quot;Areithfa Ffenestri&quot; [1] for creating native windows reaching _out_ of the  one squeak/ns window?

Markus

[1] http://wiki.squeak.org/squeak/3862</description>
		<content:encoded><![CDATA[<p>Very cool. Any chance to include sth. along the lines (or stolen from) &#8220;Areithfa Ffenestri&#8221; [1] for creating native windows reaching _out_ of the  one squeak/ns window?</p>
<p>Markus</p>
<p>[1] <a href="http://wiki.squeak.org/squeak/3862" rel="nofollow">http://wiki.squeak.org/squeak/3862</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
