Portraits : Colin Moock
/* About Flash */ <Francis> What do you find so attractive in Flash universe ? <Francis> Actually with which work do you earn money? <Francis> Have you got enough time to continue to make paintings ?
/* About Programming */ <Francis> Do you practice other languages except ActionScript ? <Francis> Which external tools do you use to work, editor, unit tests, CVS, project? <Francis> I saw you were MVC's addicted, am i right and if yes, what do you love so much in this pattern ? <Francis> Which patterns do you most often use in your work ? I also like Java’s Delegation Event Model. I like the principles of Observer, though I use event broadcasting in practice more often than raw Observer. I find Abstract Factory and Singleton useful sometimes too. Again, my upcoming book has several chapters on design patterns. You’ll get a more detailed response there. On a more general level, I actually find quite a few patterns to be overkill for Flash. In Flash, you’re just not faced with as many industrial situations as you are in, say, C++ or Java. Patterns really pay off when you’re managing the logic and data of a massive system, like Photoshop or amazon.com’s shipping back-end. In the smaller applications that are common in Flash, the overhead of a pattern can sometimes be more work than it’s worth. That said, I think there are many good principles to be learned from most patterns, and it makes sense for the developer community to adapt those principles to the Flash platform. <Francis> I am really obsessed these
days by "clean encapsulation vs speed coding and speed process". What's
the deal for you when you make choice ? Despite all that, I must admit I love seeing flasm-heads squeezing every last bit of speed out of Flash to make some crazy app really sing. And, more generally, if an optimization doesn’t compromise code readability and structure too much, I’m all for it. <Francis> Another classical concept is "inheritance vs composition", could you explain your vision about it? Of course, the question of inheritance vs composition goes beyond movie clips. I actually deal with it head-on in my upcoming book. I might as well just cut’n’paste from the draft manuscript rather than paraphrase: “How do you choose between composition and inheritance? In general, it's fairly easy to spot a situation where inheritance is inappropriate. An AlertDialog in an application "has an" OK button, but an AlertDialog, itself, "isn't an" OK button. However, spotting a situation where composition is inappropriate is trickier because, any time you can use inheritance to establish the relationship between two classes, you could use composition instead. If both techniques work in the same situation, how can you tell which is the best option? If you're new to OOP, you may be surprised to hear
that composition is often favored over inheritance as an application
design strategy. In fact, some of the best known OOP design
theoreticians explicitly advocate composition over inheritance (p 20,
Design Patterns, Gamma et al, Addison-Wesley, 1995). Hence,
conventional wisdom tells us to at least consider composition as an
option even when inheritance seems obvious. That said, here are some
general guidelines to consider when deciding whether to use inheritance
or composition: For more advice on choosing between composition and
inheritance, read Bill Venner's excellent JavaWorld article, archived
at his site: http://www.artima.com/designtechniques/compoinh.html. Mr. Venner offers compelling evidence that, generally speaking: In ActionScript, the composition vs inheritance debate most frequently appears when using the MovieClip class. The debate is simply, should one subclass MovieClip or store a MovieClip instance as a property? Both approaches are acceptable, though MovieClip inheritance is more complicated and requires use of a Library symbol in a .fla file. For an example of MovieClip composition, see Chapter 5, Authoring an ActionScript 2.0 Class, where the ImageViewer class uses a MovieClip to display an image on screen. For an example of MovieClip inheritance, see Chapter 13, Custom MovieClip Subclasses. When working with the MovieClip class, the above guidelines can help you determine whether to use inheritance or composition.”
/* About ActionScript essentials */ <Francis>
What's the main goal of this new book, will you cover high level design
concepts or will it be just for oop or as2.0 beginners? “This book wants you to use object-oriented programming in your daily Flash work. It wants you to reap the benefits of one of the most important revolutions in programming history. It wants you to understand ActionScript 2.0 completely. And it will stop at nothing to get what it wants. Here’s its plan… First, in Part 1, The ActionScript 2.0 Language, this book will teach you the fundamentals of object-oriented concepts, syntax, and usage. Even if you have never tried object-oriented programming (OOP) before, Part 1 will have you understanding and applying it. If you already know lots about OOP because you program in Java or another object-oriented language, this book will use that prior experience to your advantage. It will draw you in to Flash-based OOP with abundant comparisons to what you already know. Along the way, it will introduce OOP into your regular routine through exercises that demonstrate real-world Flash OOP in action. Next, in Part 2, Application Development, this book will teach you how to structure entire applications with ActionScript 2.0. In Chapter 11, An OOP Application Framework, you’ll learn best practices for setting up and architecting an OOP project. In Chapter 12, Using Components with ActionScript 2.0, and Chapter 13, Custom MovieClip Subclasses, you’ll learn how user-interface components and movie clips fit into a well-structured Flash application. In Chapter 14, Distributing Class Libraries, you’ll see how to parcel up and share code with other developers. All this will help you build more scalable, extensible, stable apps. It’s all part of this book’s plan. Finally, in Part 3, Design Pattern Examples in ActionScript 2.0, you’ll explore a variety of approaches to various programming situations. You’ll see how to apply internationally accepted object-oriented programming strategies—known as design patterns—to Flash. The design patterns in Part 3 cover two key topics in Flash development: event broadcasting and user interface management. Once you’ve tried working with the patterns presented in Part 3, you’ll have confidence consulting the larger body of patterns available online and in other literature. You’ll have the skills to draw on other widely recognized object-oriented practices. You see, this book knows it won’t be with you forever. It knows it must teach you to find your own solutions. This book doesn’t care whether you already know the meaning of the words “class,” “inheritance,” “method,” “prototype,” or “property.” If you have no idea what OOP is or why it’s worthwhile, this book is delighted to meet you. If, on the other hand, you’re already a skilled developer, this book wants to make you better. It wants you to have the exhaustive reference material and examples you need. This book is determined to make you an adept object-oriented programmer. And it’s confident it will succeed.” <Francis> Will it be 100% new or will there be some ASDG2 chapters included ?
/* About Flash Mx 2004 and hot stories */ <Francis> What do you think about the
new v2.0 components architecture and have you been disappointed like
Tom Muck was in his oop sacrilege article (http://www.flash-remoting.com/articles/oopsacrilege.cfm) ? <Francis> What do you think about
Branden Hall's position when he wrote : "As for AS 2.0 - I really don't
use it much yet. It's nice, but for the most part just syntactic sugar
- it all compiles to the same bytecode." What's your point of view
about the discussion which happened few months ago on his blog : http://www.waxpraxis.org/archives/000133.html and http://www.waxpraxis.org/archives/000134.html? <Francis> Are you interested by the
JFSL format and Flash extensions developpement,do you think we can
seriously hope in the future to get "xtras-like" with dlls hacking ? <Francis> What do you think about EULA's story thrown by Grant Skinner during GDispatcher developpement (http://www.gskinner.com/blog/archives/000034.html)? <Francis> Another hot story, how do you feel about Eolas story?
/* About Unity */ Later, after Flash 5 was released, Derek Clayton and I wrote several little chat apps as tests in Flash. Out of those tests which grew a paid contract for the CBC (Canada’s national television network), where we built a voting system to coincide with a television quiz show. But every time we built something new we realized we were using the same basic techniques. So for our own sanity, we started building up a generic library of code to use both on the client and server side. Eventually we decided that there was enough to turn our work into a commercial product, which would help pay for some of the time we put into it. <Francis> What was the challenge and which were the difficulties that you had to overcome during the development? <Francis> Do you earn enough money with Unity to pay your and Derek's dev time? <Francis> What do you think about the other technnologies like Oregano, Electroserver or Fortress, any comments? <Francis> Could you give us a scoop
about the next features of Unity 3.0, when do you plan to release it
and does true http tunneling stills to be on your list ? We’re also planning more ready-made app packs, such as the recently released avatar chat (www.moock.org/unity/uchatavatar/). On top of that, I have some personal experimentation I’m going to return to as soon as my next book is done. With any luck, that will be ready to show at Flash in the Can (www.flashinthecan.com). <Francis> What's your position on open-source, can we expect one day to see Unity in open-source? Right? Back to painting. Thanks for the questions! ps. Atomic Boarder is incredible! Congratulations on such a nice app.
/* AddOn */ <Colin> Yo i had a few people ask what this 'composition' thing we talked about in the interview was. i figured it was worth posting a bit more of the excerpt... |