
Shortchanging Your Business with User-Hostile Platforms - ssclafani
http://al3x.net/2011/01/15/user-hostile-platforms.html
======
aditya
This is a fascinating question. AIR and the new mobile app frameworks are
great for prototyping and getting an app out there really quickly, and perhaps
then you can make the decision to either build native apps for your biggest
platforms; or not.

Alex is obviously pointing to the verbal minority (of which he is a part),
because for every person out there that speaks out against, say, the Tweetdeck
AIR app; there are probably _millions_ that are satisfied with it and in fact
prefer it to the native alternatives (that don't have columns, even though
they might be native).

The problem with listening to the verbal minority is that you're then building
for the verbal minority, and not the bulk of your true user base.

Startups are all about priorities, right? And logically you should prioritize
things that will materially affect your business (such as stability) over
things that aren't real problems but get written up anyway. EDIT: I mean, he
did leave Campfire because of a stability issue, even though there's a native
app for it ;-)

~~~
al3x
You can dismiss the "verbal minority", or you could treat them as leading
indicators. Personally, I'll err on the side of building something that's up
to my standards rather than seeing if I can get away with mediocrity.

It's entirely possible to focus on both stability and, say, a quality desktop
application. If you're under-resourced to accomplish both goals, maybe you
didn't plan correctly.

~~~
patio11
It is also possible that both moving to a native app and achieving five nines
of uptime (from four nines) will do less for the business than changing the
call to action on the pricing page. Luckily, God gave us AB testing.

~~~
gruseom
How is this an argument against making a native app? Don't you have to make
the native app before you can AB test it?

~~~
patio11
It is an argument about competing priorities when resource constrained: try
the cheap stuff prior to dropping six figures of dev time on a feature to
rescue business which all available evidence says is one account worth $20 a
month. (You could go try to find evidence that users actually want to download
native apps. For example, put a download button on your page, then see if
anyone clicks it. If nobody does, send me half of your six figure dev budget
and you're now strictly better off. It is downright disturbing how many _very
expensive_ features fail to change user behavior because business processes
optimize for the satisfaction of people other than the people who actually pay
money for stuff.)

~~~
gruseom
I agree with your last sentence, but not the one before it. Alex isn't arguing
that users _consciously_ prefer native apps; most don't even know what "native
app" means. He's arguing that native apps _feel_ better to users and that this
feeling is worth something. How much it's worth is hard to quantify. The test
you describe wouldn't answer that. As for this:

 _which all available evidence says is one account worth $20 a month_

... surely you haven't reviewed _all_ available evidence on this question? Or
did God give it to us when he gave us AB testing? I'm joking, but I think
you're trivializing a nontrivial question. I'd like to know how to find "all
available evidence"; my experience is that this kind of thing can be very hard
to measure.

Edit: it's worth remembering that Steve Jobs made almost an identical argument
to Alex's in his critique of Flash last year, even emphasizing that it was his
most important point: "We know from painful experience that letting a third
party layer of software come between the platform and the developer ultimately
results in sub-standard apps" (<http://www.apple.com/hotnews/thoughts-on-
flash/>). Sub-standard apps are exactly what the OP is about.

------
patio11
I think developers frequently suffer from "This doesn't flatter my
sensibilities, so it must be crap. There is a sense of cosmic justice, so this
will hurt the business."

I was told, repeatedly, that Mac owners are Jobs-loving HIG fascists who look
down on Java apps. Separately, their conversion rate was double PC owners. Who
am I supposed to believe, the experts or my lying eyes?

~~~
necubi
I don't think your criticism is entirely fair; for one, you can only compare
OS X users to Windows users, which isn't at issue. Perhaps if you had a native
version of your application the conversion rate would be 4x that of Windows.
Furthermore, I would suggest that Bingo card applications have a different
target audience than developer chat applications and that the former is less
bothered by platform inconsistencies.

~~~
patio11
It was telling to me at the time that actual business results directly
contrary to hypothesized outcomes identified in advance are treated as having
no informational value with regards to the original claim.

~~~
irons
So, your new working hypothesis is what, that Mac users secretly prefer Java
UIs? That might prove too much.

I don't think it's a secret that Mac users are, by and large, more comfortable
than Windows users at paying for and installing software. The paradox of
choice is in less egregious effect, and they have fewer scars from past
attempts.

~~~
tptacek
No, that's clearly not his new working hypothesis.

~~~
stcredzero
How about: Users prefer "good" UI. Users evaluate "good" partly in terms of
expectations.

------
keyle
He has a point. I'm an ex-air developer. I moved to WPF. So yes, ok there are
heaps of bad air app out there, because the learning curve is so low.

That being said I think AIR can be very close to native. It takes that extra
mile of programming that most don't do. In the end, you might as well make it
native.

But think about this for a moment. An AIR app can and does run well on both
Mac and PC. I understand native is better, but it's not a simple matter of
money and time. You need to find the skills for a decent mac developer. Most
of them are gone crusading in the world of iOS and too busy to make a mac
client. .NET developers are plentiful though. my 5c.

~~~
Jach
I figure Flex and AIR are just becoming the new PHP. People love to hate, but
I really like programming in both even though my favorite languages are Python
and Scheme.

When people say programming in Flex is annoying.. have they ever done SWT
development, or Swing? GUI work in general usually bugs the crap out of me,
but MXML with AS and HTML with JS are fantastic.

------
jrockway
Indeed. These group chat businesses should support open standards like XMPP or
IRC. Yes, XMPP and IRC _suck_ , but there are tons of clients available that
work with each. If you support one of these, the user can use your "beautiful"
web or AIR client, or they can bring their own real client. You get happy
users without having to write any code.

I've worked at several jobs with distributed teams, and the one that used IRC
was the easiest. (I've also used Outlook Communicator, which is, as you'd
guess, the worst fucking software product of all time. Except for Windows and
Outlook, of course.)

~~~
X-Istence
The company I work at currently uses a XMPP server to do internal chat which
allows us to communicate between members.

------
nestlequ1k
Ditched Balsamiq a long time ago for this very reason. Would have been a good
app if he didn't decide to build it on such a terrible foundation.

Still, he seems to be doing fine business wise. Maybe it's not as big a deal
as al3x makes it out to be.

------
damoncali
It takes some Enron-level hand waving to dismiss the cost of developing a
native OSX app. Just hire a contractor, indeed. Would we prefer it? Yes. Would
we pay for it? Don't be so sure.

------
stephen
Funny--he started out "after another Campfire outage this week", I thought the
post was going to be about the unreliability of Campfire, its platform (ruby,
dash of C, AFAIK), and the uptime issues causing user-hostility amongst
37signal's customers.

Which was going to be (and still is) ironic since BankSimple is likely using
the same technology stack.

After being down voted: so Alex can call all AIR developers lazy because they
don't want to leave their comfort zone and write native apps, but I can't
insinuate the same thing about 37signal's not wanting to leave their Ruby
comfort zone to make a reliable messaging app? Oh, right, we hate AIR, but
love Ruby. Sorry, I missed that there was a double standard. :-)

~~~
al3x
We're using a bit of Ruby, but not C, and mostly Scala and Clojure. Either
way, I think reliability is a process thing, not a technology thing.

~~~
aaronblohowiak
I meant to up vote you, but missed (iPad.)

Can you elaborate on heat you mean by process and not technology?

------
fauigerzigerk
I always appreciate a quality call, but I can't agree that native is a good
proxy for good UI or even just for the principle of least surprise. We use so
many different UIs nowadays. Various OSs, crazy web UIs, different phones,
games, vim, etc. So for me, the question is not so much "is this app native?"
but rather "am I a native of the app's UI? (or let's say naturalized :)". iCal
doesn't feel native to me, even though I use a Mac. It feels awkward after
having used Google Calendar for a while. (I would even say iCal has a horrible
UI but that's another matter)

I happen to think that a good UI is not just a matter of getting used to it,
although that's a big part of it. There are some things I do hundereds if not
thousands of times a day, and I want them to be very fast, regardless of what
is native. I want them to be the same in that particular app on all platforms
I use. I don't want the keyboard shortcuts of gmail or vim to change depending
on what machine I happen to use.

------
hightowk
I have built some pretty impressive AIR apps for our customers (5 apps, 40
KSLOC or so total). It takes a good level of software discipline to make apps
that perform, can be reused and are maintainable (like any good desktop app).
We chose AIR because of Linux / Window cross compatibility and its beautiful
appearance.

------
yesimahuman
I'm sorry but I just don't see what the big deal is. Alex names mog as an
example of users wanting native desktop support, yet most are just fine using
the flash version. It's difficult to draw conclusions based on a developer's
perspective (which I've often been guilty of)

------
antimatter15
I've never liked AIR and QT/WebKit apps (or even the Opera web browser)
because there's this feeling similar to that of Uncanny Valley, where
something just doesn't feel right. The scroll bar doesn't work well, something
happens too fast or too slow, selection doesn't behave as it should, the
buttons look weird. Something along those lines.

~~~
ambirex
I think "Uncanny Valley" is exactly right. It was something we faced when
building an AIR app, we could mimic the look of the each OS pretty closely but
it never felt quite right.

In the end we opted to a stylize feel of each OS but not an attempt to
recreate the look and feel exactly.

~~~
petervandijck
I second that, Uncanny Valley is exactly it. It was the same a few years ago
on the web when web apps tried to duplicate native functionality (think
filebrowsers etc.), it never worked right. In fact, Dropbox (however much I
love it) still has that problem in their web UI.

------
StavrosK
Am I the only one who wants a JS-HTML combo app that will be both cross-
platform and fast, and not one native app for each platform for most of the
apps?

~~~
cdr
A webapp is not a replacement for a desktop app. There are very legitimate
reasons for wanting a desktop app, more for some types of apps than others.

~~~
StavrosK
I'm somehow not familiar with _any_ of the apps he's referencing. Is he
talking about mobile apps or desktop?

~~~
spooneybarger
desktop

~~~
StavrosK
I see, thanks. My comment above doesn't apply, then. However, I think you can
get very nice-looking, cross-platform, native apps with python and QT, GTK or
other toolkits.

~~~
al3x
Examples? I've seen okay looking GTK and QT apps running under a specific OS
or distribution, but usually when you try to run them on a different OS they
fall apart.

~~~
moondowner
Qt supports different native styles, Qt looks - and behaves - native in
Windows, OS X, GNOME, KDE, ... Try QtCreator for example, or VLC, or
VirtualBox, or any other application made in Qt.

Check out their whitepaper "Qt Cross-Platform Application Framework":
<http://qt.nokia.com/files/pdf/qt-4.4-whitepaper>

------
grantheaslip
I think what it comes down to is that as a developer, you've lost your way if
you're creating a product you personally wouldn't want to use. Even if it were
the case that the average user might not be that turned off by AIR (and I'm
not convinced that's the case), if you've decided to base your product on a
platform that's basically a deal-breaker if you're shopping around for apps
(as AIR is for me), then I think you've set a really bad tone for your future
enthusiasm for what you're making.

A frequent drum-beat on HN is having passion for what you create. Even if it
saved me time in the short run and got me some degree of free platform
support, I think having to work on an AIR app that I would probably never use
in real life would probably doom the project in the long run.

When I think about the independent software projects that I love, it's obvious
that the developers behind them love them as well. I (and I don't want to
speak for everyone) can't see myself loving an AIR app.

~~~
jarek
I think what it comes down to is minimum viable product. Perhaps even
budgeting. Maybe an assumption that since you don't like AIR, you can't see
anyone else liking it.

------
jwr
Very good article. We use Yammer and their AIR client is a constant source of
frustration. Bloated, CPU-eating, inconsistent and annoying.

I use Balsamiq Mockups when I have to, but I always find the experience
annoying. If there was a Mac-native app with similar functionality, I'd switch
in an instant.

~~~
LiveTheDream
I thought this article's unnamed product was Yammer.

------
myth_drannon
It's all about getting shit done and bringing value to clients. Design
fetishism affects very small percentage of both users and builders (which are
also sophisticated users)

~~~
gruseom
"Design fetishist", by all accounts I've read, is an excellent description of
Steve Jobs and Apple. Therefore design fetishism does not affect a small
percentage of users.

~~~
nhangen
The first Apple computer was shipped as a barebones circuit board...even Apple
had to work their way to excellent UX.

------
wladimir
In my experience there is a difference between applications that feel 'a bit
off' (in that they don't completely honor the platforms interface guidelines
but aren't opposed either), and really user-hostile platforms.

In the first, the user interface is fast, stable, and does its job on every
platform. The developers didn't have time to make a real native application,
but have made sure of usability on every platform. Widget kits like QT allow
to get very close to native look&feel. In this case, the usefulness of the
software _can_ make up for the non-nativeness.

On the other hand, really horrifying user-hostile platforms also exist. I've
frequently experienced these in "enterprise software". Makers of such products
seem to think that user experience doesn't matter at all. The interfaces, feel
bulky and slow and generic, sometimes based on 80s screen scraping, and live
in a world of their own, ignoring any user friendliness guideline since the
same era. Not even starting about the web-applications that only support
IE6... This is not the uncanny valley, this is stuff straight out of
nightmares.

------
jarek
Would he have considered the product at all if it was Windows-native only?

~~~
al3x
Nope.

~~~
jarek
Do you think an AIR application will result in less users overall than a
Windows only application?

edit: make that less "paying users", by whichever standard the application in
question uses

~~~
powdahound
Keep in mind that although 60% of our AIR client users are on Windows, 0% of
the teams use Windows exclusively. Targeting a single OS would be a fatal
decision for us.

------
ojbyrne
Arggh. There's this thing called IRC. Problem solved.

------
dools
" _It seemed like a decision that had everything to do with what’s in the best
interests of the business, and nothing to do with what’s good for the
customer._ "

They already told you they're a small team, with mostly windows users and AIR
allowed them to offer a cross platform solution. This is a polite way of
saying "you're an outlier, you're not our target user, please go away and stop
bothering us".

" _People seem to hate AIR. Wherever you see AIR apps, there are support forum
threads opened by customers begging for a native alternative_ "

I've personally never noticed this, got any examples?

Let me say here: I'm not a fan of AIR - I'm completely indifferent to it as a
technolgoy - but so far you're just bitching about your personal experiences
with one application and wishing the world were different from how it is so
you'd find it more enjoyable.

" _a moderator sheepishly explaining that they just don’t “have the time”_ "

What's to be sheepish about!? There's no shame in not having the time to build
native apps for every platform. I don't have the time to write all of my code
in assembly so I use high level languages. If you tried to run a modern
operating system on 1980s hardware you wouldn't get particularly far.
Technologies are built and adopted to improve productivity and get products to
market faster - AIR is one of these. Whether or not it is the best choice for
one application or another, or whether you happen to enjoy it or not has no
bearing on how much actual time a company or individual has to develop
software! They make a choice about a technology based on their goals and the
information at their disposal. Why should they be feeling sheepish?

" _The fact that some subset of users are willing to shell out for these
native apps should be a wake-up call. That’s money that those service
providers are letting slip away._ "

No, it's money they're _making_ by opening their product using an API and not
trying to be all things to all people. By allowing 3rd party developers to
build on their platform they still get your money, but they just don't have to
do any extra work for it building a native app for your platform.

" _In a nutshell, what you’re communicating with an AIR app is that your
business priorities (saving time and money) are more important than what your
customers want._ "

Or maybe you're just trying to build a minimum value proposition, make some
money, test the market, receive feedback, learn something, iterate and
improve. You seem to think these guys are dishing up an AIR application in an
afternoon then taking your hard earned cash and throwing it onto a gigantic
"Scrooge McDuck" style money bin, then taking the yacht out for an afternoon
spin to laugh at their sucker customers. You don't like the product, don't
bloody buy it! That's what the free market is there for.

" _“We don’t have time” is the common excuse for delivering an AIR app instead
of a good native app. Money, though, can buy someone else’s time. For a price,
you can find a great contractor to build a native app for any platform under
the sun._ "

Okay then why don't _you_ build this app that you're after? Just learn to
program, then build it yourself. Oh, don't have time? Well just pay someone
else to do it for you. If you have the money, fantastic, compete and make a
better product. What makes you think that these people are any different from
you? That they don't exist in the same world of limitations and constraints
that we all do every single day of our lives?

" _Humans are gifted with extremely sensitive bullshit detectors._ "

Yeah mine started going fucking bonkers about paragraph 2 ...

You could have made this article about how flawed you think AIR is as a
technology, cited examples of applications that have vocal user communities
looking for a native app etc.

Instead you've just made outlandish claims that people building technology and
working to create products are _lazy_ , that they're somehow compelled to
produce mediocre products (rather than settling for the best they can afford
to produce and shipping _something_ in the hopes that some people will get
good use out of it).

Software is a constant process of settling for mediocrity. Nothing is ever
_finished_. No software developer has ever typed one last semi-colon, sit back
and said "you know what? There's nothing else I'd add to that, it's perfect".

Who keeps upvoting this!?

~~~
gyardley
_"People seem to hate AIR. Wherever you see AIR apps, there are support forum
threads opened by customers begging for a native alternative"_

 _I've personally never noticed this, got any examples?_

In the post you're quoting, he linked to four forum threads for four separate
products, along with a couple of blog posts.

~~~
Sujan
Won't there be even more complaining how shitty a native software is?

~~~
gyardley
Probably. However, that's not what the parent asked for.

------
nhangen
Am I the only one that enjoys using Air apps? I found the post to be a bit
whiny for my tastes, and furthermore, I wonder if the OP is happy with any
service at all.

Seems more like an issue of a problem customer than a problem service.

------
jcsalterego
There's a lot to be said about the potential of the WebKit HTML/JS portion of
AIR that's far less used than the Flash or Flex counterparts.

In my experience, the lack of a sane garbage collector burned me in the end. I
believe the reasoning was that Flash apps were ephemeral, from page load to
page load, and definitely not meant for a desktop application with a long
life.

It was very hard to ever really free memory, and I remember writing a fairly
straight-forward AIR app which would start at 70MB RSS, and balloon to 1GB the
next morning.

------
mmcdan
I've used AIR apps(as a consumer, not a developer) and there are times when I
get a little frustrated with the experience. Still, I use the software because
it saves me time and makes my life 10x easier. Overall if customers are
criticizing your use of AIR as a platform rather than praising you for solving
their problem, then you have bigger problems than the AIR vs. Native debate.
Many users will tolerate even the crappiest of experiences, see IE6-IE8, so
long as it solves their needs.

------
laujen
This is exactly the reason I have been rethinking the way my company develops
apps. As the world splits and there isn't one standard technology like there
used to be with Windows, I feel it is imperative to be thinking about how to
go cross platform as quickly and easily as possible without cross platform
tools. I think it means lighter native apps, simpler in design to do one
specific task, and then more sophisticated tasks in the browser.

------
iamclovin
I guess the same applies for apps in the mobile space too. iOS Apps built
using frameworks such as Titanium and PhoneGap always seem a little off.

There is an interesting discussion about this in Dan Benjamin's latest episode
of the 'Build And Analyze' series with Marco Arment.
<http://5by5.tv/buildanalyze/8>

~~~
ianhawes
PhoneGap apps feel very off because they're simply HTML/JS wrapped in a WebKit
component, but Titanium is far different. Titanium makes native controls. Its
virtually impossible to tell the difference between an app created in Titanium
versus some JS crap wrapped in PhoneGap.

------
bad_user
So what should I take away from this? That businesses should focus on
customers using Windows first?

If the team is small and the product has some value to you, it only means the
team focused on the right featureset.

Personally I'm grateful if an AIR client is available, because that means I
can use it on Linux, my OS.

------
arpit
I really need to write a post on "Shortchanging your blog readers by spewing
opinion but disabling comments". Whats with this? DaringFireball is the worst
of the lot. Is this some new trend?

~~~
al3x
It's not a new trend. I haven't allowed comments on my blog for years. I want
people to post thoughtful responses on their own turf. If someones care
enough, they can respond on their own blog.

~~~
arpit
But how does one find those follow up posts? I don't see any pingbacks on your
blog either.

Its an interesting problem though, I actually find a lot of value in comments,
especially when the topics aren't too sensational and the people aren't
entrenched in their camps. I actually come to HackerNews and Reddit
specifically for comments but not every story gets there.

------
JoeAltmaier
Try Sococo teamspace. Window sharing, chat, voice, doc, really neat presence
indicators. Its built exactly for a distributed development team.

Runs on Windows, Mac, Linux.

