As promised, I spent some time talking to Tal Weiss, Senior Software Development Manager for AutoCAD WS, to understand a little more about this technology and how it’s evolving. Many thanks to Tal for taking the time to share this interesting information with this blog’s readership.
[I’ve formatted the below discussion as a Q&A, but with extensive editing and paraphrasing.]
What is AutoCAD WS?
The goal for AutoCAD WS is to extend the AutoCAD experience to the web as well as to emerging platforms and devices – mobile, tablets, etc.
We already had Project Butterfly working in the browser and the most recent efforts have been about getting it onto iOS (iPhone, iPod Touch, iPad).
How did your team get it working on iOS? Project Butterfly uses Flash, which clearly isn’t supported on iOS.
During our preliminary efforts to get Project Butterfly onto iOS we were part of Adobe’s pre-release program for CS5, which allowed us to quickly get the application working on the iPhone. Unfortunately we found the iPhone’s processor (with a clock speed of around 1GHz) to be too slow when running our code. A key part of our product strategy is to develop the best overall experience for each device, so we knew that approach was simply not going to work.
So by the time Steve Jobs’ open letter to Adobe with his thoughts on Flash hit the news, we were already well into our porting efforts to create a C++ kernel for Project Butterfly that could be used to build a native iOS application.
Does this mean you agree with Apple’s assertion that the use of middleware impacts customer experience?
I wouldn’t go as far as to say that: I expect the vast majority of apps on the AppStore would work just fine with the overhead of middleware, but in our case we needed to be closer to the hardware to maximize its usage. Running inside a managed environment – with little fine-grained memory management possible – just doesn’t make sense for us on lower-powered devices.
How difficult was it for your team to port the application to C++?
It was actually very straightforward. As our previous ActionScript codebase was designed to be platform independent and highly portable in its architecture, it took a matter of a few short months to get it across to C++.
So we now have two codebases for AutoCAD WS?
For now. We have the ActionScript codebase for the browser-hosted application – which may in time become HTML5, depending on how the support for that standard progresses – and the C++ codebase where a native experience is needed. 95% percent of the C++ codebase is cross-platform, so it should be relatively straightforward to also support other platforms, in time.
I can see this move to C++ might have an impact from an extensibility perspective.
Yes, it does. It’s causing us to step back a little from our previous ActionScript-focused extensibility plans, to make sure we make the right decision, long-term, around extensibility support. From a product perspective it’s much easier to add features than to take them away, and this is even more true when it comes to platforms, so we want to make sure we get it right.
What about supporting 3D?
The number one request we had for extending Project Butterfly was supporting iOS. Number two is 3D. :-)
That said, we’re not going to move on to 3D until we’ve really completed what we want to do for 2D. It is something we’re thinking about, though.