Adobe Gets in the Labs Mix

There is a new Adobe Beta called Adobe Lightroom at the labs. It’s nice to see Adobe so quickly adapt adopt the Macromedia lab mindset.

The front-page picture is really nice and soothing, but I get nervous when that giant eye stares at me at 1:00am…

W3C Starts New Groups for Web API’s & RIA Standards

I’m glad Flash will be shielded from this. The words “standards” and “Rich Internet Application” feel like oil and water to me. While I believe usability standards are of the utmost need right now, I disagree on standardizing MXML; it’s already follows the XML schema, is well formed, and it validates against its DTD (which was shoe-horned into a DTD which is no fault of Macromedia’s, just the odd combination of a rich markup representing containers combined with a strict tag definition)… what really needs to be standardized about it? More so, why must MXML validate against the standard the W3C sets when it’s already valid XML? The last hypothetical question, “What defines a web application that uses markup to build it?” will hopefully answer all, and spawn (and answer) many other fundamental & important questions.

In all fairness, I am jumping the gun pre-judging deliverables on an initiative that has barely gotten started.

Anyway, snippet from the first deliverable.

This deliverable should be based on an existing application/UI format, such as Mozilla’s XUL, Microsoft’s XAML, Macromedia’s MXML or Laszlo Systems’ LZX, provided the owners of the format are willing to contribute. The format should allow embedded program code. This format, combined with the deliverables below and existing technologies including XHTML, CSS, XForms, SVG and SMIL, should provide a strong basis for rich client application development.

Web Application Formats

Programming Interfaces (AJAX/XMLHttpRequest)

Via Manish Jethani.

Widget Forge Website Launches Today

Back at BellSouth, we were creating alternatives to Central to get Flash on users’ desktops to enable us to provide them with our services and BellSouth’s branding. It was pretty fun, and I got to explore a wide array of technology during some R&D phases.

One of the alternatives to Flash + mProjector, or Flash + Custom C wrapper was Kapsules. Kapsules is a runtime that allows the creation of desktop widgets that all run in a common runtime engine, much like Konfabulator. Developing for it, however, coming from a Flash background, sucked. While it supported a plethora of scripting languages (JScript, JScript.NET, Python, PHPScript, PerlScript, RubyScript, VBScript), writing ActionScript 1 style code in JScript, while familiar, blew when you were used to ActionScript 2.

You were also starting from ground zero. While the API is nice in terms of tools to draw and utilize interactivity, there is no framework, and no set of components. Additionally, while PNG’s render really nice with transparency, boilerplate drawing code makes it extremely diffucult to do anything cool looking animation wise without a lot of scripting; either a quick and dirty “git r done” mentality, or a “create an animation engine” endeavor.

Either way, they have a pretty cool, and lasting community. While I think the system requirements will put a lot of people off (Windows 2000/XP only, must have .NET 1.1 runtime installed), it’s still a great place to get inspiration from, and see a comparison of how different scripting languages are written to do the same thing if you read the developer documentation.

Developing this way certainly makes you appreciate Flash.

Widget Forge

haXe Programming Language, Neko, & The Fall of FAME (FAHE?)

Nicolas Cannasse, creator of MTASC, the open source Flash compiler, has just released a public preview of his haXe programming language & compiler. It has a full working parser with type checking, as well as a complete language reference. The language looks a lot like ActionScript 3, but has different datatypes, namely enumerators.

The goal of the haXe programming language is allow you to have a good compiler and a good language that output to many client & server formats. Flash Player 6, 7, 8, 8.5, JavaScript for use in AJAX/DHTML, and Neko. Having 1 language that can output to a SWF, a JS file for later inclusion, a server-side application, or to be run in a standalone EXE is really nice; ActionScript currently can do the SWF and EXE, but not export out JavaScript (why would you want to?), nor utilizing ActionScript on the server-side.

NekoVM is a commandline tool meant mainly for server-side usage & development. It is basically a command line virtual machine, and uses the higher level Neko language (more loosely typed), which can either run on the server, and even comes with a mod_neko to plug into Apache. You can generate Neko code from haXe, or apparently just have the NekoVM run your haXe code (maybe it’s implied you have to convert which is ok). Finally, NekoVM can be exetended via C DLL’s, or embedded in your own standalone binary application.

While I think it’s a great idea to have “1 language to control them all” LODR style (Lord of the Rings), both on the Flash & AJAX front, it’s also neat to have that same language work on the server-side too.

For JavaScript developers, I think they’ll dig the ECMA ‘esque language with true classes, and features most other seasoned programmers are used to. Strong type-checking I’m sure will lessen weeks of debugging time on larger web applications.

For Flash Developers, it is another alternative language & way to output SWF. Additionally, that same investement in a slightly different language allows your skills & effort to port to a nicely outputted JavaScript file as well as a server-side solution vs. using PHP or ColdFusion for example.

FAME apparently now becomes FAHE (like fey, or Fay)… I guess. I mean, the site says Neko is fast, and I’m sure whatever compiles haXe is fast as well. The draw to FAME for me originally was the speed at which MTASC compiled vs. the Flash IDE. Now, however, I do mostly Flex development, and when FlexBuilder 2 is officially released, I’ll be using that as my primary development environment. With incremental compilations, and the really nice IDE utilizing Eclipse, haXe’ compiler could be as fast as possible, and I still wouldn’t switch.

I have no desire to output JavaScript, PHP works just fine on the server, and mProjector/SWFStudio works just fine on the desktop. Therefore, learning a new language for speed alone would not help my ActionScript 3 skills, nor improve my employability.

While this adds another push to the fall of FAME for me, it is a big win for the Open Source Flash world, and open source in general.