<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments for Seeking to Understand</title>
	<link>http://blog.bigzaphod.org</link>
	<description>Huh?</description>
	<pubDate>Thu, 09 Sep 2010 12:40:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>Comment on Birth of a Platform by sakudelo.com</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5430</link>
		<dc:creator>sakudelo.com</dc:creator>
		<pubDate>Thu, 27 May 2010 10:25:28 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5430</guid>
		<description>&lt;strong&gt;Seeking to Understand  » Blog Archive   » Birth of a Platform...&lt;/strong&gt;

Seeking to Understand  » Blog Archive   » Birth of a Platform...</description>
		<content:encoded><![CDATA[<p><strong>Seeking to Understand  » Blog Archive   » Birth of a Platform&#8230;</strong></p>
<p>Seeking to Understand  » Blog Archive   » Birth of a Platform&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by JulesLt</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5429</link>
		<dc:creator>JulesLt</dc:creator>
		<pubDate>Wed, 26 May 2010 09:40:26 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5429</guid>
		<description>I think you can infer this by looking at the way OS X / Cocoa has developed over the years (think about the way that OpenCL, GCD and blocks can be combined to distribute work over potentially different CPU/GPU architectures), and as other commenters have suggested, by looking at MacRuby and Clang. 

I also have a feeling that MacRuby is being lined up as the official 2nd language for Cocoa development (compared to other choices like PyObjC) - the particular point being that unlike other Rubies it can be compiled down to native code. (Etoile's Smalltalk is interesting too, as that also uses LLVM and the GnuStep Obj-C back end, to make Smalltalk a seamless choice for Obj-C developers).

Ultimately, I can see a point where we should be able to write individual methods using the language of our choice, provided they support a compatible object model (which Obj-C, Smalltalk, Ruby and Python do).

But this is unlikely to be soon, and resource constraints suggest it would be much longer before it arrived on mobile (even Android is having to give native access for games).

Games will also remain a sticking point - most of them are mostly C++, not Obj-C - and games developers will keep them that way. C++ and OpenGL are relatively portable.

&#62; It would be wonderful to see the progress of the web platform as a whole no longer 
&#62;hindered by the lowest common denominator browser

But surely it will remain so. IF HTML 6, say, defines a new JavaScript API for sound, similar to CoreAudio - you're not going to use it until it's commonly implemented (or there is a Flash-enabled shim). 

It will certainly be a great day when we can depend on the lowest common denominator to actually implement standards in a consistent way - SVG in particular.

Then again, I'm not wholly convinced by 'the web as application platform' anyway. The App Store tells us that consumers still buy software, and watching non-techy friends with their iPhones I am reminded that it's data that is the most important part of the web - URLs and HTTP are the most important layer, on which we can build many presentation layers.

Which is why it's interesting to see people complaining that the App Store is about creating a proprietary web - I think the people who have that view think that the most interesting thing about the web is that it's created a 'standard client', not the web of information.

Cappuccino is very clever, but using Cappuccino apps I am reminded of the huge disadvantage of the web - 280 Slides takes an age to load - even after resources are cached locally - and uses up far more resources than Keynote to do the same work.

I can't see any rational reason why anyone would choose to use Google Docs slideshow software over Powerpoint or Keynote, for instance, other than collaboration.

&#62;Ultimately, I think the entire web may transition from HTML/Javascript/CSS to a kind of standardized &#62;instruction format like a bytecode

There is talk of standardising an intermediate bytecode for JavaScript VMs - although this may be difficult as the different VMs take different approaches to optimising JavaScript - and older versions of IE don't even use a VM.

I'd also like to see something that would allow us to use different programming languages, other than JavaScript, and a VM bytecode should make this feasible - although it may require a more flexible underlying VM to support other language features.

However, I don't see the W3C backing anything that would damage the 'web model' of strictly separating data (XML), content (HMTL), style (CSS) and behaviour (JavaScript).

TBL's bigger concern is with the bottom layers (semantic data tagging) rather than application development, which is one reason why the WHATWG went off on it's own. I think he's actually right on that one - the latter is an attempt to standardise application programming itself, while ignoring some of the important lessons we've learnt over the last few decades.

Another way of categorising it - it's a bit like having the Cocoa APIs without AppKit to give a fundamental definition of what an application is.</description>
		<content:encoded><![CDATA[<p>I think you can infer this by looking at the way OS X / Cocoa has developed over the years (think about the way that OpenCL, GCD and blocks can be combined to distribute work over potentially different CPU/GPU architectures), and as other commenters have suggested, by looking at MacRuby and Clang. </p>
<p>I also have a feeling that MacRuby is being lined up as the official 2nd language for Cocoa development (compared to other choices like PyObjC) - the particular point being that unlike other Rubies it can be compiled down to native code. (Etoile&#8217;s Smalltalk is interesting too, as that also uses LLVM and the GnuStep Obj-C back end, to make Smalltalk a seamless choice for Obj-C developers).</p>
<p>Ultimately, I can see a point where we should be able to write individual methods using the language of our choice, provided they support a compatible object model (which Obj-C, Smalltalk, Ruby and Python do).</p>
<p>But this is unlikely to be soon, and resource constraints suggest it would be much longer before it arrived on mobile (even Android is having to give native access for games).</p>
<p>Games will also remain a sticking point - most of them are mostly C++, not Obj-C - and games developers will keep them that way. C++ and OpenGL are relatively portable.</p>
<p>&gt; It would be wonderful to see the progress of the web platform as a whole no longer<br />
&gt;hindered by the lowest common denominator browser</p>
<p>But surely it will remain so. IF HTML 6, say, defines a new JavaScript API for sound, similar to CoreAudio - you&#8217;re not going to use it until it&#8217;s commonly implemented (or there is a Flash-enabled shim). </p>
<p>It will certainly be a great day when we can depend on the lowest common denominator to actually implement standards in a consistent way - SVG in particular.</p>
<p>Then again, I&#8217;m not wholly convinced by &#8216;the web as application platform&#8217; anyway. The App Store tells us that consumers still buy software, and watching non-techy friends with their iPhones I am reminded that it&#8217;s data that is the most important part of the web - URLs and HTTP are the most important layer, on which we can build many presentation layers.</p>
<p>Which is why it&#8217;s interesting to see people complaining that the App Store is about creating a proprietary web - I think the people who have that view think that the most interesting thing about the web is that it&#8217;s created a &#8217;standard client&#8217;, not the web of information.</p>
<p>Cappuccino is very clever, but using Cappuccino apps I am reminded of the huge disadvantage of the web - 280 Slides takes an age to load - even after resources are cached locally - and uses up far more resources than Keynote to do the same work.</p>
<p>I can&#8217;t see any rational reason why anyone would choose to use Google Docs slideshow software over Powerpoint or Keynote, for instance, other than collaboration.</p>
<p>&gt;Ultimately, I think the entire web may transition from HTML/Javascript/CSS to a kind of standardized &gt;instruction format like a bytecode</p>
<p>There is talk of standardising an intermediate bytecode for JavaScript VMs - although this may be difficult as the different VMs take different approaches to optimising JavaScript - and older versions of IE don&#8217;t even use a VM.</p>
<p>I&#8217;d also like to see something that would allow us to use different programming languages, other than JavaScript, and a VM bytecode should make this feasible - although it may require a more flexible underlying VM to support other language features.</p>
<p>However, I don&#8217;t see the W3C backing anything that would damage the &#8216;web model&#8217; of strictly separating data (XML), content (HMTL), style (CSS) and behaviour (JavaScript).</p>
<p>TBL&#8217;s bigger concern is with the bottom layers (semantic data tagging) rather than application development, which is one reason why the WHATWG went off on it&#8217;s own. I think he&#8217;s actually right on that one - the latter is an attempt to standardise application programming itself, while ignoring some of the important lessons we&#8217;ve learnt over the last few decades.</p>
<p>Another way of categorising it - it&#8217;s a bit like having the Cocoa APIs without AppKit to give a fundamental definition of what an application is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by llamatron</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5390</link>
		<dc:creator>llamatron</dc:creator>
		<pubDate>Sun, 23 May 2010 23:02:09 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5390</guid>
		<description>Forcing developers to use documented APIs as policy, and the trajectory of the C/Obj-C environment are two separate things, but there is _some_ merit to the claim that Apple would want to push development to a managed environment of some sort.

However be very clear that the managed environment has nothing to do whether the language is C, C++ or Obj-C, that's the magic of LLVM.  What it means  is that potentially, the compiler can generate intermediate bytecode which is processor independent as is now the case with Java / CLR and thus make distributing binaries to different targets easier than it is now... not that it's all that difficult now, but it could get messier as time goes on.  The analysis dimension means that Apple could use metrics from it's static analysis suite to refuse dodgy code, and that's probably a good thing, and I might add totally in the hands of the developers since they have the same tools.

There will never be a day when Apple say to developers they can't develop in C.  This is just silly - The Obj-C runtime is incredibly flexible and cool to develop with, but it's just crazy slow for things that require tight optimization (i.e. any tight game code, DSP, image processing etc - there's a good reason why most of the stuff on Mac/iPhone that needs to go fast is done in C or C++.  The message passing interface generates a page full of assembly, whereas a c function call is just two instructions (if not one!!), and a C++ vtable is marginally slower.  C (and occasionally C++) is the language for system internals and backend engines, Obj-C is the language for applications and frontends, both play to their strengths in those areas.

But that doesn't mean there won't be a day when C isn't generated into an intermediate bytecode... technically, that day could be today.  The question for Apple engineers is whether the tradeoff for developers who require bare metal access to the cpu for performance reasons will get the same performance from a JIT or target hosted compiler... it's too early to say yet whether that will be acceptable to those engineers.

Forcing developers to use documented APIs really has nothing to do with this, that's just common sense from a quality control perspective.  As John Gruber keeps pointing out, if you want an API public, file a radar bug for it, apple listens to that kind of stuff, and you'd be amazed how much code gets opened up as part of the normal development cycle... just look at the camera APIs in 4.0 ;)</description>
		<content:encoded><![CDATA[<p>Forcing developers to use documented APIs as policy, and the trajectory of the C/Obj-C environment are two separate things, but there is _some_ merit to the claim that Apple would want to push development to a managed environment of some sort.</p>
<p>However be very clear that the managed environment has nothing to do whether the language is C, C++ or Obj-C, that&#8217;s the magic of LLVM.  What it means  is that potentially, the compiler can generate intermediate bytecode which is processor independent as is now the case with Java / CLR and thus make distributing binaries to different targets easier than it is now&#8230; not that it&#8217;s all that difficult now, but it could get messier as time goes on.  The analysis dimension means that Apple could use metrics from it&#8217;s static analysis suite to refuse dodgy code, and that&#8217;s probably a good thing, and I might add totally in the hands of the developers since they have the same tools.</p>
<p>There will never be a day when Apple say to developers they can&#8217;t develop in C.  This is just silly - The Obj-C runtime is incredibly flexible and cool to develop with, but it&#8217;s just crazy slow for things that require tight optimization (i.e. any tight game code, DSP, image processing etc - there&#8217;s a good reason why most of the stuff on Mac/iPhone that needs to go fast is done in C or C++.  The message passing interface generates a page full of assembly, whereas a c function call is just two instructions (if not one!!), and a C++ vtable is marginally slower.  C (and occasionally C++) is the language for system internals and backend engines, Obj-C is the language for applications and frontends, both play to their strengths in those areas.</p>
<p>But that doesn&#8217;t mean there won&#8217;t be a day when C isn&#8217;t generated into an intermediate bytecode&#8230; technically, that day could be today.  The question for Apple engineers is whether the tradeoff for developers who require bare metal access to the cpu for performance reasons will get the same performance from a JIT or target hosted compiler&#8230; it&#8217;s too early to say yet whether that will be acceptable to those engineers.</p>
<p>Forcing developers to use documented APIs really has nothing to do with this, that&#8217;s just common sense from a quality control perspective.  As John Gruber keeps pointing out, if you want an API public, file a radar bug for it, apple listens to that kind of stuff, and you&#8217;d be amazed how much code gets opened up as part of the normal development cycle&#8230; just look at the camera APIs in 4.0 <img src='http://blog.bigzaphod.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by pligg.com</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5389</link>
		<dc:creator>pligg.com</dc:creator>
		<pubDate>Sun, 23 May 2010 20:22:00 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5389</guid>
		<description>&lt;strong&gt;Seeking to Understand  » Blog Archive   » Birth of a Platform...&lt;/strong&gt;

Seeking to Understand  » Blog Archive   » Birth of a Platform...</description>
		<content:encoded><![CDATA[<p><strong>Seeking to Understand  » Blog Archive   » Birth of a Platform&#8230;</strong></p>
<p>Seeking to Understand  » Blog Archive   » Birth of a Platform&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by Carrying Out Public Record Verification Duties &#124; Tactics to Get Your Ex Back Blog</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5380</link>
		<dc:creator>Carrying Out Public Record Verification Duties &#124; Tactics to Get Your Ex Back Blog</dc:creator>
		<pubDate>Sun, 23 May 2010 15:06:16 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5380</guid>
		<description>[...] Seeking to Understand » Blog Archive » Birth of a Platform [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Seeking to Understand » Blog Archive » Birth of a Platform [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by Mourinho &#124; Aquarian Advertising Network</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5357</link>
		<dc:creator>Mourinho &#124; Aquarian Advertising Network</dc:creator>
		<pubDate>Sat, 22 May 2010 23:54:15 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5357</guid>
		<description>[...] Seeking to Understand » Blog Archive » Birth of a Platform [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Seeking to Understand » Blog Archive » Birth of a Platform [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by John Yanarella</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5349</link>
		<dc:creator>John Yanarella</dc:creator>
		<pubDate>Sat, 22 May 2010 16:11:18 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5349</guid>
		<description>@Rain

Each of those technologies certainly do have a set of vocal detractors with valid complaints.  And, sure, it is undeniably fashionable within the Mac community to scoff at Flash right now.  However, neither the transient implementation flaws nor the disgust that web standards advocates might have for those proprietary platforms discount the fact that web-deployed managed bytecode applications are already a part of the web ecosystem.  We can only hope they improve or replaced with better solutions.

Re: Sean's notion of the browser as a container for Canvas with an HTML/CSS layout engine implemented and deployed as a JavaScript library is an interesting scenario where an web standards architecture might achieve what these other technologies have already attempted to varying degrees of success.  It would be wonderful to see the progress of the web platform as a whole no longer hindered by the lowest common denominator browser.

To bring it back to Sean's post, specifically to the idea of the evolution of Apple's application deployment model - my original point was simply that it wouldn't be the first time Apple watched others flounder at delivering quality and usability, and come along with a more focused and elegant solution.</description>
		<content:encoded><![CDATA[<p>@Rain</p>
<p>Each of those technologies certainly do have a set of vocal detractors with valid complaints.  And, sure, it is undeniably fashionable within the Mac community to scoff at Flash right now.  However, neither the transient implementation flaws nor the disgust that web standards advocates might have for those proprietary platforms discount the fact that web-deployed managed bytecode applications are already a part of the web ecosystem.  We can only hope they improve or replaced with better solutions.</p>
<p>Re: Sean&#8217;s notion of the browser as a container for Canvas with an HTML/CSS layout engine implemented and deployed as a JavaScript library is an interesting scenario where an web standards architecture might achieve what these other technologies have already attempted to varying degrees of success.  It would be wonderful to see the progress of the web platform as a whole no longer hindered by the lowest common denominator browser.</p>
<p>To bring it back to Sean&#8217;s post, specifically to the idea of the evolution of Apple&#8217;s application deployment model - my original point was simply that it wouldn&#8217;t be the first time Apple watched others flounder at delivering quality and usability, and come along with a more focused and elegant solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by Sei</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5346</link>
		<dc:creator>Sei</dc:creator>
		<pubDate>Sat, 22 May 2010 15:52:24 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5346</guid>
		<description>As the focus of personal computing becomes ever more personal, it will increasingly receive the unwanted attention from malware authors. 
A significant degree of happenstance and luck has kept the Mac malware free but inevitably it will fall.
I believe a major goal in the design and evolution of the iPhone OS is to not be the smartphone platform that needs antivirus, this is way way more important than winning the marketshare race, or making devs happy.</description>
		<content:encoded><![CDATA[<p>As the focus of personal computing becomes ever more personal, it will increasingly receive the unwanted attention from malware authors.<br />
A significant degree of happenstance and luck has kept the Mac malware free but inevitably it will fall.<br />
I believe a major goal in the design and evolution of the iPhone OS is to not be the smartphone platform that needs antivirus, this is way way more important than winning the marketshare race, or making devs happy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by Will walking outside barefoot help detox your body? &#124; HowToCleanseYourBody</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5345</link>
		<dc:creator>Will walking outside barefoot help detox your body? &#124; HowToCleanseYourBody</dc:creator>
		<pubDate>Sat, 22 May 2010 15:19:12 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5345</guid>
		<description>[...] Seeking t&#38;#959 Understand » Blog Archive » Birth &#38;#959f a Platform [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Seeking t&amp;#959 Understand » Blog Archive » Birth &amp;#959f a Platform [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Birth of a Platform by Charlton</title>
		<link>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5340</link>
		<dc:creator>Charlton</dc:creator>
		<pubDate>Sat, 22 May 2010 12:43:41 +0000</pubDate>
		<guid>http://blog.bigzaphod.org/2010/05/21/birth-of-a-platform/#comment-5340</guid>
		<description>With the original Mac, Apple said the same thing -- this is the official API, and things not guaranteed in the API are simply not guaranteed to remain true with the next computer or the next OS.  But it was a wild and woolly time then, and people wrote to the machine they had in front of them instead of writing to the spec.  And then Apple introduced another model, or upgraded the OS, and things broke, and people screamed holy hell and blamed Apple.

This kept on happening, over and over again.  Microsoft's apps broke badly when the OS went from using 24 bits in 32-bit pointers to using all 32 bits, because Microsoft, knowing that there would never be 32-bit pointers, used the other 8 bits for their own purposes.  Many apps broke badly when System 7 rolled around, because System 7 had large chunks rewritten from the ground up according to the spec.  And the same thing happened with the PowerPC transition, and the Intel transition.

In short, Apple have learned the hard way that developers will prefer "it works, ship it!" over "it complies with the spec, ship it!" in 99 out of 100 development shops.  They have also learned the hard way that when Apple changes things that it never committed to in the first place (such as undocumented APIs) that they get blamed even though it's the developers' fault for doing something that they should have done.  So Apple's stepping up and enforcing this.</description>
		<content:encoded><![CDATA[<p>With the original Mac, Apple said the same thing &#8212; this is the official API, and things not guaranteed in the API are simply not guaranteed to remain true with the next computer or the next OS.  But it was a wild and woolly time then, and people wrote to the machine they had in front of them instead of writing to the spec.  And then Apple introduced another model, or upgraded the OS, and things broke, and people screamed holy hell and blamed Apple.</p>
<p>This kept on happening, over and over again.  Microsoft&#8217;s apps broke badly when the OS went from using 24 bits in 32-bit pointers to using all 32 bits, because Microsoft, knowing that there would never be 32-bit pointers, used the other 8 bits for their own purposes.  Many apps broke badly when System 7 rolled around, because System 7 had large chunks rewritten from the ground up according to the spec.  And the same thing happened with the PowerPC transition, and the Intel transition.</p>
<p>In short, Apple have learned the hard way that developers will prefer &#8220;it works, ship it!&#8221; over &#8220;it complies with the spec, ship it!&#8221; in 99 out of 100 development shops.  They have also learned the hard way that when Apple changes things that it never committed to in the first place (such as undocumented APIs) that they get blamed even though it&#8217;s the developers&#8217; fault for doing something that they should have done.  So Apple&#8217;s stepping up and enforcing this.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
