<?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: The Sun Also Sets</title>
	<atom:link href="http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/</link>
	<description>On Mac OS X programming</description>
	<lastBuildDate>Wed, 21 Oct 2009 16:05:08 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: rankin</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-2230</link>
		<dc:creator>rankin</dc:creator>
		<pubDate>Thu, 10 May 2007 04:32:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-2230</guid>
		<description>How difficult is it to port a fully function os2 application to osx / cocoa?</description>
		<content:encoded><![CDATA[<p>How difficult is it to port a fully function os2 application to osx / cocoa?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mr_noodle</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-538</link>
		<dc:creator>mr_noodle</dc:creator>
		<pubDate>Fri, 26 Jan 2007 20:44:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-538</guid>
		<description>Hi, thanks for the responses. I&#039;ve been a bit busy so sorry if I&#039;m a bit late with this.

Jim: I appreciate your points though I think you are reading a bit too much into my motivations. I&#039;m not really sulking about the loss (I had time enough back then to do so) so much as trying to show some of the factors which led to Sun&#039;s failure on the desktop and that much of that was in their control. I&#039;m not sure where you are going with your marketing point. This was internal politics and it didn&#039;t matter how it was marketed. The mere fact that it was not their (JavaSoft&#039;s) idea cemented the decision. The main thing I am lamenting now is that my Sun stock is still stuck in single digits.

And things are much better now. These better ideas still exist and have been expanded upon in the Cocoa frameworks which I have been happily using since Apple revived them by buying NeXT. I think the quality of the apps built on the respective frameworks tells a lot of the story.

Also, I don&#039;t hate Java (not that you implied that at all; just trying to head off any such notions). I have been coding servers in Java for quite a number of years and Objective-C could learn a few things from Java on the language level. I just feel that the frameworks leave much to be desired when it comes to GUIs.

Ulrich: There are significant differences in how they operate. They are not items that appear on a check list. Hopefully, we can go beyond the notion that having the same list of features somehow makes them equivalent. Execution is everything. Also, read Jens Alfke&#039;s article (it is linked up top).

A quick example of how they fundamentally differ: Sun avoids dynamism. Though it can be achieved via reflection in Java, they avoid it at all costs. One of the areas where this becomes apparent is the huge class bloat when using Java. You end up coding tons of &quot;glue&quot; classes just to connect objects since you are stuck with a very specific method signature/interface. Inner/anonymous classes make it a tad more palatable but it&#039;s still tedious. A whole class just to have one method call another method on another object. To me, that sounds like a workaround for a bad decision. Compare that to the use of selectors (method pointers for those that don&#039;t know Objective-C) and you can see how cumbersome the Swing way is.

Frameworks and APIs should not just be ways to access functionality. &quot;Adequate&quot; is not enough. The framework should inspire, encourage the good things and discourage the bad. It should allow you to express what you want to program and not get in the way. If all that matters to you is whether it has the widgets you want and has the requisite tools, then there&#039;s probably little I can say that will sway you.</description>
		<content:encoded><![CDATA[<p>Hi, thanks for the responses. I&#8217;ve been a bit busy so sorry if I&#8217;m a bit late with this.</p>
<p>Jim: I appreciate your points though I think you are reading a bit too much into my motivations. I&#8217;m not really sulking about the loss (I had time enough back then to do so) so much as trying to show some of the factors which led to Sun&#8217;s failure on the desktop and that much of that was in their control. I&#8217;m not sure where you are going with your marketing point. This was internal politics and it didn&#8217;t matter how it was marketed. The mere fact that it was not their (JavaSoft&#8217;s) idea cemented the decision. The main thing I am lamenting now is that my Sun stock is still stuck in single digits.</p>
<p>And things are much better now. These better ideas still exist and have been expanded upon in the Cocoa frameworks which I have been happily using since Apple revived them by buying NeXT. I think the quality of the apps built on the respective frameworks tells a lot of the story.</p>
<p>Also, I don&#8217;t hate Java (not that you implied that at all; just trying to head off any such notions). I have been coding servers in Java for quite a number of years and Objective-C could learn a few things from Java on the language level. I just feel that the frameworks leave much to be desired when it comes to GUIs.</p>
<p>Ulrich: There are significant differences in how they operate. They are not items that appear on a check list. Hopefully, we can go beyond the notion that having the same list of features somehow makes them equivalent. Execution is everything. Also, read Jens Alfke&#8217;s article (it is linked up top).</p>
<p>A quick example of how they fundamentally differ: Sun avoids dynamism. Though it can be achieved via reflection in Java, they avoid it at all costs. One of the areas where this becomes apparent is the huge class bloat when using Java. You end up coding tons of &#8220;glue&#8221; classes just to connect objects since you are stuck with a very specific method signature/interface. Inner/anonymous classes make it a tad more palatable but it&#8217;s still tedious. A whole class just to have one method call another method on another object. To me, that sounds like a workaround for a bad decision. Compare that to the use of selectors (method pointers for those that don&#8217;t know Objective-C) and you can see how cumbersome the Swing way is.</p>
<p>Frameworks and APIs should not just be ways to access functionality. &#8220;Adequate&#8221; is not enough. The framework should inspire, encourage the good things and discourage the bad. It should allow you to express what you want to program and not get in the way. If all that matters to you is whether it has the widgets you want and has the requisite tools, then there&#8217;s probably little I can say that will sway you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim deVos</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-537</link>
		<dc:creator>Jim deVos</dc:creator>
		<pubDate>Fri, 26 Jan 2007 19:26:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-537</guid>
		<description>Ulrich has some good points.   Could you be identify some of the key areas where Swing differs from Cocoa?  I&#039;m not trying to come off as cynical -- I&#039;m relatively ignorant of both frameworks and I&#039;d  geniunely like to know.

Every programmer I know has a story of a superior idea losing out to an inferior idea.  You see it all over the place.   CP/M losing to DOS,  OS/2 losing to Windows,  Objective C losing to C++, Smalltalk losing to Java,  you name it.

However, the thrust of all of these stories always boils down to &quot;life is so unfair&quot;  or &quot;things were better back then&quot;.   I think this is a bitter oversimplification.   The truth is that ideas don&#039;t thrive on their brilliance alone.   And it&#039;s a cop out to say that an idea is &quot;before it&#039;s time&quot; or that people &quot;just don&#039;t get it&quot;.  

Even good ideas need to be sold.  It&#039;s ironic that programmers think that marketing is worthless.   Most of these sob-stories are testaments to the value of marketing.</description>
		<content:encoded><![CDATA[<p>Ulrich has some good points.   Could you be identify some of the key areas where Swing differs from Cocoa?  I&#8217;m not trying to come off as cynical &#8212; I&#8217;m relatively ignorant of both frameworks and I&#8217;d  geniunely like to know.</p>
<p>Every programmer I know has a story of a superior idea losing out to an inferior idea.  You see it all over the place.   CP/M losing to DOS,  OS/2 losing to Windows,  Objective C losing to C++, Smalltalk losing to Java,  you name it.</p>
<p>However, the thrust of all of these stories always boils down to &#8220;life is so unfair&#8221;  or &#8220;things were better back then&#8221;.   I think this is a bitter oversimplification.   The truth is that ideas don&#8217;t thrive on their brilliance alone.   And it&#8217;s a cop out to say that an idea is &#8220;before it&#8217;s time&#8221; or that people &#8220;just don&#8217;t get it&#8221;.  </p>
<p>Even good ideas need to be sold.  It&#8217;s ironic that programmers think that marketing is worthless.   Most of these sob-stories are testaments to the value of marketing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ulrich Hobelmann</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-530</link>
		<dc:creator>Ulrich Hobelmann</dc:creator>
		<pubDate>Thu, 25 Jan 2007 10:42:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-530</guid>
		<description>Would you care to elaborate what&#039;s so groundbreakingly different about Cocoa vs Swing?

The two GUI toolkits I happen to know are Swing and Cocoa, and I wouldn&#039;t say they&#039;re fundamentally different.  Both are MVC, both have GUI builders (Apple IB, NetBeans Matisse), both support object instantiation (IB, JavaBeans).  Maybe the only real difference is that in Swing, a menubar is always part of a window (conceptually; I know about the Apple hack that puts in its real place).

Well, no key-value coding or bindings for Swing (so far), but that&#039;s not really a killer for me.</description>
		<content:encoded><![CDATA[<p>Would you care to elaborate what&#8217;s so groundbreakingly different about Cocoa vs Swing?</p>
<p>The two GUI toolkits I happen to know are Swing and Cocoa, and I wouldn&#8217;t say they&#8217;re fundamentally different.  Both are MVC, both have GUI builders (Apple IB, NetBeans Matisse), both support object instantiation (IB, JavaBeans).  Maybe the only real difference is that in Swing, a menubar is always part of a window (conceptually; I know about the Apple hack that puts in its real place).</p>
<p>Well, no key-value coding or bindings for Swing (so far), but that&#8217;s not really a killer for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Lee</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-528</link>
		<dc:creator>Andy Lee</dc:creator>
		<pubDate>Thu, 25 Jan 2007 06:20:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-528</guid>
		<description>Sun&#039;s cluelessness in this story reminds me of my early experiences with Smalltalk.

In the 90&#039;s when Smalltalk was trying to break into the mainstream, some colleagues and I went to PARC to look at their windowing toolkit.  I had high expectations, because these were the people who had invented object-oriented programming *and* GUIs.  But I was flabbergasted at how crude their visual tools were.  I don&#039;t remember specific flaws.  I just remember thinking it was clear these guys had never seen NextStep.  All the power and elegance and *history* of Smalltalk, and that was the best they could do?

One of my colleagues wanted to mock up a simple IB-like thing, and asked if there was any way to draw a connecting line between two windows, like IB does when you connect an outlet.  They said no, it couldn&#039;t be done.  Well, my colleague sat down and showed them it *could* be done, the way NextStep did it, by making &quot;lines&quot; out of windows one pixel wide.

It&#039;s a testament to Smalltalk&#039;s other great qualities that on balance I still loved it.  NextStep and Smalltalk *both* spoiled me.</description>
		<content:encoded><![CDATA[<p>Sun&#8217;s cluelessness in this story reminds me of my early experiences with Smalltalk.</p>
<p>In the 90&#8217;s when Smalltalk was trying to break into the mainstream, some colleagues and I went to PARC to look at their windowing toolkit.  I had high expectations, because these were the people who had invented object-oriented programming *and* GUIs.  But I was flabbergasted at how crude their visual tools were.  I don&#8217;t remember specific flaws.  I just remember thinking it was clear these guys had never seen NextStep.  All the power and elegance and *history* of Smalltalk, and that was the best they could do?</p>
<p>One of my colleagues wanted to mock up a simple IB-like thing, and asked if there was any way to draw a connecting line between two windows, like IB does when you connect an outlet.  They said no, it couldn&#8217;t be done.  Well, my colleague sat down and showed them it *could* be done, the way NextStep did it, by making &#8220;lines&#8221; out of windows one pixel wide.</p>
<p>It&#8217;s a testament to Smalltalk&#8217;s other great qualities that on balance I still loved it.  NextStep and Smalltalk *both* spoiled me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mr_noodle</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-527</link>
		<dc:creator>mr_noodle</dc:creator>
		<pubDate>Thu, 25 Jan 2007 05:37:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-527</guid>
		<description>Tim: Great links. Terrence updated his post with a screenshot. (http://talblog.info/archives/2007/01/sundown.html).</description>
		<content:encoded><![CDATA[<p>Tim: Great links. Terrence updated his post with a screenshot. (<a href="http://talblog.info/archives/2007/01/sundown.html)." rel="nofollow">http://talblog.info/archives/2007/01/sundown.html).</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mr_noodle</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-526</link>
		<dc:creator>mr_noodle</dc:creator>
		<pubDate>Thu, 25 Jan 2007 04:48:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-526</guid>
		<description>Thanks for the responses. It&#039;s always great to see an outpouring for Lighthouse.

Unfortunately, getting the Lighthouse apps back is not really an option. Reasons:

- It&#039;s very possible the code has disappeared beyond the ken of man. Sun didn&#039;t seem to care about it and the Lighthouse people left so it&#039;s unclear if anyone kept it somewhere safe.
- As noted by Terrence, a lot of the code was pre-Openstep. It would require some work. In addition, the Cocoa APIs have diverged a bit since then. Not as much an issue if the work was done when all this was fresh in people&#039;s minds but it&#039;s been almost 10 years.
- I&#039;ve heard rumors that various parties (including Apple) have tried to negotiate for the code to no avail.

Fortunately, others have come in to fill the void.

Diagram: OmniGraffle (Omni Group)
Concurrence: Keynote (Apple) / OmniOutliner (Omni Group)
TaskMaster: OmniPlan (Omni Group)
Quantrix: no Cocoa equivalent but Pete Murray, one of the original authors, has re-written it from the ground up in Java (and it runs on OS X). Check it out at www.quantrix.com.

Of course, I think it&#039;s more than a coincidence that ex-Lighthouse people are involved with the above apps. In addition, the Omni guys had a close relationship with Lighthouse (OmniWeb on NEXTSTEP was sold by Lighthouse) and were considered kindred spirits. I even recall some Quake matches with Wil Shipley.

If you find that somehow the OS X versions above don&#039;t quite satisfy your itch, I recommend contacting the authors and letting them know what it is you want. The torch has been passed and a new foundation has been established. I think the best thing now is to build upon that.

Leo: Haven&#039;t read that before. Thanks for the link. Most of it seems to be after my time at Sun but from my perspective their angle on Swing is a bit off. It could just be the perspective of someone seeing it afterwards and from the outside who was fed different info from different people at Sun.</description>
		<content:encoded><![CDATA[<p>Thanks for the responses. It&#8217;s always great to see an outpouring for Lighthouse.</p>
<p>Unfortunately, getting the Lighthouse apps back is not really an option. Reasons:</p>
<p>- It&#8217;s very possible the code has disappeared beyond the ken of man. Sun didn&#8217;t seem to care about it and the Lighthouse people left so it&#8217;s unclear if anyone kept it somewhere safe.<br />
- As noted by Terrence, a lot of the code was pre-Openstep. It would require some work. In addition, the Cocoa APIs have diverged a bit since then. Not as much an issue if the work was done when all this was fresh in people&#8217;s minds but it&#8217;s been almost 10 years.<br />
- I&#8217;ve heard rumors that various parties (including Apple) have tried to negotiate for the code to no avail.</p>
<p>Fortunately, others have come in to fill the void.</p>
<p>Diagram: OmniGraffle (Omni Group)<br />
Concurrence: Keynote (Apple) / OmniOutliner (Omni Group)<br />
TaskMaster: OmniPlan (Omni Group)<br />
Quantrix: no Cocoa equivalent but Pete Murray, one of the original authors, has re-written it from the ground up in Java (and it runs on OS X). Check it out at <a href="http://www.quantrix.com" rel="nofollow">http://www.quantrix.com</a>.</p>
<p>Of course, I think it&#8217;s more than a coincidence that ex-Lighthouse people are involved with the above apps. In addition, the Omni guys had a close relationship with Lighthouse (OmniWeb on NEXTSTEP was sold by Lighthouse) and were considered kindred spirits. I even recall some Quake matches with Wil Shipley.</p>
<p>If you find that somehow the OS X versions above don&#8217;t quite satisfy your itch, I recommend contacting the authors and letting them know what it is you want. The torch has been passed and a new foundation has been established. I think the best thing now is to build upon that.</p>
<p>Leo: Haven&#8217;t read that before. Thanks for the link. Most of it seems to be after my time at Sun but from my perspective their angle on Swing is a bit off. It could just be the perspective of someone seeing it afterwards and from the outside who was fed different info from different people at Sun.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-525</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Thu, 25 Jan 2007 04:11:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-525</guid>
		<description>The Archive still has the IFC 1.1 distribution, as well as Constructor:

http://web.archive.org/web/19970615200826/http://developer.netscape.com/library/ifc/

and a screenshot:

http://web.archive.org/web/19970615123220/developer.netscape.com/library/ifc/constructor/screens.html

If you download the code and copy the 3 folders under ifc11/netscape/ from the IFC distribution into constructor10b3/Constructor.applet/netscape in the Constructor distribution, then open index.html with Safari, Constructor will actually run.  It also works with the Mac OS X Applet Launcher.</description>
		<content:encoded><![CDATA[<p>The Archive still has the IFC 1.1 distribution, as well as Constructor:</p>
<p><a href="http://web.archive.org/web/19970615200826/http://developer.netscape.com/library/ifc/" rel="nofollow">http://web.archive.org/web/19970615200826/http://developer.netscape.com/library/ifc/</a></p>
<p>and a screenshot:</p>
<p><a href="http://web.archive.org/web/19970615123220/developer.netscape.com/library/ifc/constructor/screens.html" rel="nofollow">http://web.archive.org/web/19970615123220/developer.netscape.com/library/ifc/constructor/screens.html</a></p>
<p>If you download the code and copy the 3 folders under ifc11/netscape/ from the IFC distribution into constructor10b3/Constructor.applet/netscape in the Constructor distribution, then open index.html with Safari, Constructor will actually run.  It also works with the Mac OS X Applet Launcher.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo Richard Comerford</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-524</link>
		<dc:creator>Leo Richard Comerford</dc:creator>
		<pubDate>Thu, 25 Jan 2007 04:10:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-524</guid>
		<description>There&#039;s an &lt;a href=&quot;http://www.zefhemel.com/archives/2003/12/29/java-swing-history&quot; rel=&quot;nofollow&quot;&gt;older (and pretty bilious) account&lt;/a&gt; of Swing&#039;s history out there, allegedly by an anonymous SWTeer. Would you like to comment on its accuracy?</description>
		<content:encoded><![CDATA[<p>There&#8217;s an <a href="http://www.zefhemel.com/archives/2003/12/29/java-swing-history" rel="nofollow">older (and pretty bilious) account</a> of Swing&#8217;s history out there, allegedly by an anonymous SWTeer. Would you like to comment on its accuracy?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cjwl</title>
		<link>http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/comment-page-1/#comment-523</link>
		<dc:creator>cjwl</dc:creator>
		<pubDate>Thu, 25 Jan 2007 03:36:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.noodlesoft.com/blog/2007/01/23/the-sun-also-sets/#comment-523</guid>
		<description>This must have been frustrating, thanks for sharing more of the history. Java _did_ have a chance on the desktop, a lot of people from the NeXT arena were jumping all over it with significant experience and technology, IFC was a huge improvement over AWT. Jonathan S. told me at the time that I would be able to port OpenStep based code to Java easily, they (Sun/Lighthouse) had everything that was needed. I kept waiting for what he told me about to hit daylight, but as you tell and we all know, it didn&#039;t happen.

For a while there it seemed like Objective-C was headed for complete obscurity, odd that in some ways Sun ended up saving it by screwing up Java&#039;s total potential.

It is unfortunate they don&#039;t even open source the Lighthouse apps and the apps that Lighthouse acquired, a lot of stuff there...</description>
		<content:encoded><![CDATA[<p>This must have been frustrating, thanks for sharing more of the history. Java _did_ have a chance on the desktop, a lot of people from the NeXT arena were jumping all over it with significant experience and technology, IFC was a huge improvement over AWT. Jonathan S. told me at the time that I would be able to port OpenStep based code to Java easily, they (Sun/Lighthouse) had everything that was needed. I kept waiting for what he told me about to hit daylight, but as you tell and we all know, it didn&#8217;t happen.</p>
<p>For a while there it seemed like Objective-C was headed for complete obscurity, odd that in some ways Sun ended up saving it by screwing up Java&#8217;s total potential.</p>
<p>It is unfortunate they don&#8217;t even open source the Lighthouse apps and the apps that Lighthouse acquired, a lot of stuff there&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
