Monday, October 1, 2007

Adobe's Macromedia Director MX 2004™

Macromedia Director™ is a powerful multimedia authoring tool. It has been around since the eighties and it is obvious that they put a lot of thought into creating a clean and intuitive user interface. It is easy to learn once you understand the underlying movie metaphor. It comes with a choice of two scripting languages, Lingo (the original Director language) and JavaScript. Even though it was originally intended for applications that use things like movies, sprites, sounds and animations, there is no reason that it cannot be used for general purpose application development. It has support for most common user interface functions like buttons, menus, lists, windows, textboxes, etc… Director applications can be played either in Windows™ or the Macintosh™ or directly within a web browser with the use of Adobe’s Shockwave technology. In addition, there is a sizeable supply of third party extensions (many are free) that add to its functionality. In sum, I think it is a pretty awesome all-around software development tool. Why isn't everybody using it?

My take is that Director is ideal for creating complex graphical user interfaces that involves displaying and manipulating graphical objects on the screen. So it is certainly well-suited for developing a COSA Editor. Since third-party extensions can be used for database access, it should not be too hard to create a keyword-browsable object repository for COSA modules/components. I am not sure how a Director application can send and receive messages to other running applications but I suspect it can be done. I’m thinking that the COSA Editor should have the ability to communicate directly with a running COSA virtual machine (CVM). This way, a COSA developer could easily modify a running COSA application on the fly. There should be no need for compiling or saving the app to a file, in my opinion. Visually tracing signal flow within a running application would be nice as well.

Having said that, I think that writing a COSA Editor and a CVM is a major undertaking, regardless of the chosen tool. I had intended to start a dev project and let others finish it but, the more I think about it, the more I realize that it’s not going to work out. A lot of thought must go into designing, not only the user interface, but also the underlying data structures for each and every COSA effector and sensor. So I am back to where I started: I can’t do it. I just can’t devote the time to it. Unless somebody or some organization is willing to dump some serious money into this project, I am afraid that Project COSA will continue to be just an idea whose time has not yet arrived. And by serious money, I am talking about at least ten million dollars because, in my opinion, design and development of a COSA-compatible, fine-grain, multicore CPU and a COSA embedded operating system must happen more or less concurrently.

So this is how it stands, for now. The world will just have to continue to make do with crappy multicore CPUs, crappy operating systems and crappy programming languages, not to mention all the bug-infested software. Oh well. No need to despair, though. COSA is getting a fair share of publicity, these days. Sooner or later, something is bound to happen.

2 comments:

Manuel Wudka-Robles said...

Doubtless the day for COSA will some day come. I'm confused about why you suggest Director, though. It hasn't been updated in years (though there have been rumors of a major update for years). Also there's no good player for crappy Mac OS X or crappy Linux, only crappy Windows. Plus it's old, so its support for crappy multicore processors is pretty crappy.

It also has big issues as a major development platform. Developers hate it with the power of a thousand burning suns because of the absurd Lingo language. Javascript is difficult for vast undertakings because few people know it well and it doesn't have much OOP goodness.

Also, Director has no unit tests, no revision control integration, and projects are one massive file, so revision control systems are pretty useless anyway.

Also, Director applications cannot really talk to other applications: like Flash movies they're heavily sandboxed. In short, using Director to design the interface for COSA is, well, a pretty crappy idea.

But I have larger questions about the whole "COSA" thing. Is it serious? I've been following the whole thing like you follow a train wreck. All you do is make personal attacks against the people you need behind you to make such a thing, define nothing concrete about this COSA of yours, and say nothing to suggest that it's feasible, useful, or worthwhile. I mean, you even score over 150 on the UCR Crackpot index (http://www.math.ucr.edu/home/baez/crackpot.html). Granted it's intended for physics crackpots, but I think it applies. Anywho, I wish you good luck with either your practical joke or your quest to defeat crappy geeks everywhere (by the way, did I mention that you overuse the word "crappy" to an absurd degree?).

Louis Savain said...

Manuel wrote: Anywho, I wish you good luck

Yeah, sure. Anyway, I'll leave your crappy comment on my blog for historical purposes only. Don't bother writing any more crappy comments, though. I'll trash them. I just don't like crap, that's all. LOL.