<?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 Advantage Of ActionScript</title>
	<atom:link href="http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/</link>
	<description>Actionscript3, Flash, Scala, Java, C#, C++, Algorithms &#38; Imageprocessing</description>
	<lastBuildDate>Sun, 05 Feb 2012 21:26:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: jase21</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-200162</link>
		<dc:creator>jase21</dc:creator>
		<pubDate>Mon, 06 Sep 2010 10:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-200162</guid>
		<description>Yes, ActionScript 3 is really a wonderful language. And I vote for the fact that if implementing multi-threading, there must not be shared state or data or varaibles, just like Erlang. Everything must be via message passing. I&#039;m waiting to see such a innovative feature to be added to ActionScript. I wanted to see Erlang features added to AS.

Next Adobe needs to improve its Virtual Machine.
Can Adobe work with hardware vendors like ARM to incorporate the improved AVM into the hardware just like Jazelle?

Flash is a wonderful platform to work with. :)
--
Jaseem V V</description>
		<content:encoded><![CDATA[<p>Yes, ActionScript 3 is really a wonderful language. And I vote for the fact that if implementing multi-threading, there must not be shared state or data or varaibles, just like Erlang. Everything must be via message passing. I&#8217;m waiting to see such a innovative feature to be added to ActionScript. I wanted to see Erlang features added to AS.</p>
<p>Next Adobe needs to improve its Virtual Machine.<br />
Can Adobe work with hardware vendors like ARM to incorporate the improved AVM into the hardware just like Jazelle?</p>
<p>Flash is a wonderful platform to work with. :)<br />
&#8211;<br />
Jaseem V V</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joa</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185632</link>
		<dc:creator>joa</dc:creator>
		<pubDate>Fri, 12 Feb 2010 09:17:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185632</guid>
		<description>Nicolas, I did not want to say that we should use the EventDispatcher class and just make it multithreaded. I doubt that we will reach the elegance of Scala anytime soon.
But if Adobe would provide some syntactic sugar for an ActionScript actor-like implementation the good thing is that a lot of developers are already used to that. That is what I want to say.

I know that saying bad performance is good is a bold statement. But think about it. You do not have to reinvent the wheel all the time. For a lot of stuff performance is good enough. Java however which was suffering from &quot;poor&quot; performance as well made a jump with a high cost. The VM startup and warmup time. I think that this is one of the biggest reasons why noone uses Java applets any more. Starting an applet takes still so much time. One effort of JavaFX is to reduce that time of course. But that was one tradeoff for better performance. 
We can improve the performance of Flash applications a lot by improving the compiler without touching the VM at all.  Isn&#039;t that fantastic? And we can get much better performance by fixing simple (and complex) things in the Flash Player. This is great; stagnation is not great. And we have suffered from stagnation in the past two years at least. 2010 will be (hopefully) the year of Flash Player performance improvements.</description>
		<content:encoded><![CDATA[<p>Nicolas, I did not want to say that we should use the EventDispatcher class and just make it multithreaded. I doubt that we will reach the elegance of Scala anytime soon.<br />
But if Adobe would provide some syntactic sugar for an ActionScript actor-like implementation the good thing is that a lot of developers are already used to that. That is what I want to say.</p>
<p>I know that saying bad performance is good is a bold statement. But think about it. You do not have to reinvent the wheel all the time. For a lot of stuff performance is good enough. Java however which was suffering from &#8220;poor&#8221; performance as well made a jump with a high cost. The VM startup and warmup time. I think that this is one of the biggest reasons why noone uses Java applets any more. Starting an applet takes still so much time. One effort of JavaFX is to reduce that time of course. But that was one tradeoff for better performance.<br />
We can improve the performance of Flash applications a lot by improving the compiler without touching the VM at all.  Isn&#8217;t that fantastic? And we can get much better performance by fixing simple (and complex) things in the Flash Player. This is great; stagnation is not great. And we have suffered from stagnation in the past two years at least. 2010 will be (hopefully) the year of Flash Player performance improvements.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicolas</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185601</link>
		<dc:creator>Nicolas</dc:creator>
		<pubDate>Thu, 11 Feb 2010 21:34:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185601</guid>
		<description>Sorry for the double post.

I also definitely disagree that poor performances is a good thing. Whatever the performances of a language/VM, you will have to find tricks to push it further. Having good performances from the beginning is better than having to reinvent the wheel in order to build a car...</description>
		<content:encoded><![CDATA[<p>Sorry for the double post.</p>
<p>I also definitely disagree that poor performances is a good thing. Whatever the performances of a language/VM, you will have to find tricks to push it further. Having good performances from the beginning is better than having to reinvent the wheel in order to build a car&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicolas</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185599</link>
		<dc:creator>Nicolas</dc:creator>
		<pubDate>Thu, 11 Feb 2010 21:30:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185599</guid>
		<description>I&#039;m not sure that we can compare Erland actors and AS3 events. Actors have been designed to be able to process operations in parallel. Events are just ignoring the parallelism issue because Flash is single threaded.

Events are just a way to implement asynchronous notifications, but are actually not very elegant since you need to deal with all the listeners while actors offer a way to write async code as much easily as you would write synchronous code. Look at Scala actors for an example ;)</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure that we can compare Erland actors and AS3 events. Actors have been designed to be able to process operations in parallel. Events are just ignoring the parallelism issue because Flash is single threaded.</p>
<p>Events are just a way to implement asynchronous notifications, but are actually not very elegant since you need to deal with all the listeners while actors offer a way to write async code as much easily as you would write synchronous code. Look at Scala actors for an example ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TK</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185574</link>
		<dc:creator>TK</dc:creator>
		<pubDate>Thu, 11 Feb 2010 17:34:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185574</guid>
		<description>+1 for parameterized types. We&#039;re desperately needing them.</description>
		<content:encoded><![CDATA[<p>+1 for parameterized types. We&#8217;re desperately needing them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Fabb</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185570</link>
		<dc:creator>Matthew Fabb</dc:creator>
		<pubDate>Thu, 11 Feb 2010 15:44:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185570</guid>
		<description>Has anyone noticed the new project in Adobe&#039;s Bug and Issue Management system called Sherlock?
Here&#039;s a link:
https://bugs.adobe.com/jira/browse/SHERLOCK
This is the description of the project:
&quot;Sherlock is the cross team collaboration to improve the Flex and ActionScript compilers. Bugs in this project will eventually be transfered to either the Flex SDK or ASC project as the code is committed back to the working trunk.&quot;

Looks like this project only started this February and I think something like this is long overdue. That said, because it&#039;s new it unfortunately won&#039;t be ready until next release cycle (CS6? Flex 5?) that we see any gains, as I don&#039;t imagine there&#039;s time to add any improvements to Flash CS5 or Flex 4.</description>
		<content:encoded><![CDATA[<p>Has anyone noticed the new project in Adobe&#8217;s Bug and Issue Management system called Sherlock?<br />
Here&#8217;s a link:<br />
<a href="https://bugs.adobe.com/jira/browse/SHERLOCK" rel="nofollow">https://bugs.adobe.com/jira/browse/SHERLOCK</a><br />
This is the description of the project:<br />
&#8220;Sherlock is the cross team collaboration to improve the Flex and ActionScript compilers. Bugs in this project will eventually be transfered to either the Flex SDK or ASC project as the code is committed back to the working trunk.&#8221;</p>
<p>Looks like this project only started this February and I think something like this is long overdue. That said, because it&#8217;s new it unfortunately won&#8217;t be ready until next release cycle (CS6? Flex 5?) that we see any gains, as I don&#8217;t imagine there&#8217;s time to add any improvements to Flash CS5 or Flex 4.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wonderwhy-er</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185569</link>
		<dc:creator>wonderwhy-er</dc:creator>
		<pubDate>Thu, 11 Feb 2010 14:51:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185569</guid>
		<description>Honestly I don&#039;t find Events system a strong side of AS3. No they are good but kind of far from perfect... I find that they bring problems often with some things. 
For example in large projects with Flash pretty often problem is that one object A uses object B that was used by object C before. And object C have registered some listener on B and haven&#039;t cleaned it properly. Then when A does something with B C gets event. Usually it is caused by bad programming where some event listener was not removed but it is pretty common problem. Solving it by just AS3 event system looks like a lot of lines of code of adding listeners and removing them which makes it hard.

Currently am playing with different ideas of writing my custom Event managers that have different function for adding and cleaning groups of listeners. For example like that:
addEventListener(listenerOwner, listenerFunction, dispatcher, eventType)

Then I have methods like cleanOwnerEvents(owner) which removes all listeners from all objects to which owner had added listeners. Or cleanDispatcherEvents(dispatcher) that cleans all event listeners that were added to this dispatcher. But those two add opposite problem of removal of listener that should have not been removed in some other context this code does not know of. Well for that I have cleanOwnerEventsOnDispatcher(owner,disaptcher) which removes all events added by owner from dispatcher. Also I have methods that take in array of owners, dispatchers, event types and listeners in different ways. Makes code a lot smaller and easier to manage but it is still not perfect. But that&#039;s something I learned trough recent years to use. New developers will use original functions, and they will make mistakes, and I will be looking for a bug that was caused by that. 

There are other problems with Flash Events too though they are less problematic, like they are little bit not versatile in some cases and they are not really that fast.

On other hand I think only language I was using much in recent years was C#(though a lot less then AS3) and their events model is not really that better. It probably performs better and has less problems in some cases but brings their own set of compromises and tricky situations as far as I can tell.</description>
		<content:encoded><![CDATA[<p>Honestly I don&#8217;t find Events system a strong side of AS3. No they are good but kind of far from perfect&#8230; I find that they bring problems often with some things.<br />
For example in large projects with Flash pretty often problem is that one object A uses object B that was used by object C before. And object C have registered some listener on B and haven&#8217;t cleaned it properly. Then when A does something with B C gets event. Usually it is caused by bad programming where some event listener was not removed but it is pretty common problem. Solving it by just AS3 event system looks like a lot of lines of code of adding listeners and removing them which makes it hard.</p>
<p>Currently am playing with different ideas of writing my custom Event managers that have different function for adding and cleaning groups of listeners. For example like that:<br />
addEventListener(listenerOwner, listenerFunction, dispatcher, eventType)</p>
<p>Then I have methods like cleanOwnerEvents(owner) which removes all listeners from all objects to which owner had added listeners. Or cleanDispatcherEvents(dispatcher) that cleans all event listeners that were added to this dispatcher. But those two add opposite problem of removal of listener that should have not been removed in some other context this code does not know of. Well for that I have cleanOwnerEventsOnDispatcher(owner,disaptcher) which removes all events added by owner from dispatcher. Also I have methods that take in array of owners, dispatchers, event types and listeners in different ways. Makes code a lot smaller and easier to manage but it is still not perfect. But that&#8217;s something I learned trough recent years to use. New developers will use original functions, and they will make mistakes, and I will be looking for a bug that was caused by that. </p>
<p>There are other problems with Flash Events too though they are less problematic, like they are little bit not versatile in some cases and they are not really that fast.</p>
<p>On other hand I think only language I was using much in recent years was C#(though a lot less then AS3) and their events model is not really that better. It probably performs better and has less problems in some cases but brings their own set of compromises and tricky situations as far as I can tell.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joa</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185562</link>
		<dc:creator>joa</dc:creator>
		<pubDate>Thu, 11 Feb 2010 12:22:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185562</guid>
		<description>I agree with you David. Maybe I should have stated more clearly that I see those as advantages because they are design principles. Other problems like poor performance can be fixed by the VM and compiler in the (near) future for you. Missing concurrency is one of my biggest complaints as well. But the fact that IO is (nearly) always non-blocking is great. Yes, &quot;while(true) {}&quot; will freeze any Flash application but that is not the point.

Having an STM is great but you would have to decide very careful how it is implemented. Blocking or non blocking, pure or not?</description>
		<content:encoded><![CDATA[<p>I agree with you David. Maybe I should have stated more clearly that I see those as advantages because they are design principles. Other problems like poor performance can be fixed by the VM and compiler in the (near) future for you. Missing concurrency is one of my biggest complaints as well. But the fact that IO is (nearly) always non-blocking is great. Yes, &#8220;while(true) {}&#8221; will freeze any Flash application but that is not the point.</p>
<p>Having an STM is great but you would have to decide very careful how it is implemented. Blocking or non blocking, pure or not?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Arno</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185560</link>
		<dc:creator>David Arno</dc:creator>
		<pubDate>Thu, 11 Feb 2010 12:07:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185560</guid>
		<description>I&#039;m not at all convinced that &quot;an advantage of ActionScript (AS) is that its rubbish and so can only improve&quot; is a particularly compelling argument for AS. And the lack of optimisation and performance problems are not the fault of AS, they are the fault of a poorly implemented compiler and the Flash player.

Also it is easy to write unresponsive AS, despite there being no blocking features. The lack of concurrency adds to the problems of that unresponsiveness. If I load a large file and want to parse it in some way, I can&#039;t do it in a background thread. So to parse the file without impacting performance, I have to construct an asynchronous multi-stage parsing scheme, which greatly increases the chances of bugs.

If/ when the flash player supports multiple threads, I don&#039;t want to have to use events, actors, rendezvous etc. I want transactional memory. Forget functions as first class objects, closures and real properties as advantages over Java: transactional memory would really give AS a genuine advantage.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not at all convinced that &#8220;an advantage of ActionScript (AS) is that its rubbish and so can only improve&#8221; is a particularly compelling argument for AS. And the lack of optimisation and performance problems are not the fault of AS, they are the fault of a poorly implemented compiler and the Flash player.</p>
<p>Also it is easy to write unresponsive AS, despite there being no blocking features. The lack of concurrency adds to the problems of that unresponsiveness. If I load a large file and want to parse it in some way, I can&#8217;t do it in a background thread. So to parse the file without impacting performance, I have to construct an asynchronous multi-stage parsing scheme, which greatly increases the chances of bugs.</p>
<p>If/ when the flash player supports multiple threads, I don&#8217;t want to have to use events, actors, rendezvous etc. I want transactional memory. Forget functions as first class objects, closures and real properties as advantages over Java: transactional memory would really give AS a genuine advantage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: uberVU - social comments</title>
		<link>http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/comment-page-1/#comment-185559</link>
		<dc:creator>uberVU - social comments</dc:creator>
		<pubDate>Thu, 11 Feb 2010 11:55:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=530#comment-185559</guid>
		<description>&lt;strong&gt;Social comments and analytics for this post...&lt;/strong&gt;

This post was mentioned on Twitter by joa: The Advantage Of ActionScript http://bit.ly/dxiGUr...</description>
		<content:encoded><![CDATA[<p><strong>Social comments and analytics for this post&#8230;</strong></p>
<p>This post was mentioned on Twitter by joa: The Advantage Of ActionScript <a href="http://bit.ly/dxiGUr.." rel="nofollow">http://bit.ly/dxiGUr..</a>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

