

Ask YC: AIR or HTML/JS or Obj-c for visualizing data? - confused

I'm developing an app which is going to have a visualization component. The data will be shown in a graphical manner, somewhat like Gapminder.<p>I'm confused about which platform to choose for development of the client. Html/javascript, Flash/AIR or Objective-C.<p>I like the idea of using objective-c as I think it's quite responsive, and will break me into the Mac/iPhone world. But I'm worried about reducing my market.<p>I'm unsure about AIR capabilities. Finally I think working with HTML/JS for a graphical project will cause problems as stuff won't work on different browsers.<p>Can anyone help, by providing some insight from their experience of doing something similar?<p>I do know html/js/css and python. I was planning to use pyobjc.
======
lethain
I use PyObjC, and it's makes Cocoa development quicker and less painful, but
it isn't a replacement for knowing Objective-C. Especially when you get into
the CoreGraphics stuff and occasionally crash through the floor into OpenGL,
Python isn't going to save you (much to my regret).

Despite the negative hype against HTML/JS, it isn't hard to create cross-
browser code using that combination. I wrote a project called sparklines.js a
while back, which uses the canvas element and it renders appropriately on all
major browsers (including IE using <http://excanvas.sourceforge.net/>). The
speed of javascript is going to be sufficient as well for anything except the
most extreme projects (I also wrote ptdef.com, which is a tower defense game
in html/javascript. It plays poorly on I.E. but fine in more modern browsers,
and its far more complex (pathfinding, etc) than the JavaScript you'll
probably be dealing with).

Beyond that, using an html/javascript combination you can create content that
renders correctly on the iPhone, in desktop applications (well, at least on
OSX you can use the WebView to render arbitrary html/css/javascript), and on
the web. It's also an open stack, which is my largest complaint against AIR.

In the end, though, I think the hard part should be developing the underlying
algorithm to display the visualizations you are interested in, and
transplanting it to another platform later shouldn't be impossible. Where you
start out really depends on what you want to build. ;)

------
apgwoz
I think it depends quite a bit on what your end goal is. If your end goal is
to make a desktop application that have a visualization component that runs on
the mac, then using objective-c, cocoa and the graphics frameworks in OSX will
be great.

If you want the application to be on the web, have a look at Flex for the
visualization stuff. It uses Flash to render everything so it works pretty
well across platforms.

