Hacker News new | past | comments | ask | show | jobs | submit login

> That's pretty much what I said - it's a problem that Adobe, Mono, Unity etc. are hoping they can solve for us.

It's a problem that companies have been trying to solve, in one form or another, since the advent of the microcomputer.

I'm highly sceptical that a solution is ever going to appear. There is no silver bullet that will allow you to paper over the significant differences in platforms in a transparent, non-clunky manner.

It's a problem that HTML5 is promising to solve too, and that HTML/CSS/JS in general did a pretty good job at in many use cases.

Francisco Tolmasky (of 280 North / Cappuccino fame) had an insightful blog post about this subject:

But let’s get to the real issue here, because this is once again a misunderstanding of design vs. programming. HTML, JS, and CSS do not magically create wonderful experiences on every platform they are run. As you can see from the above screenshot, they certainly have the nice side effect of working on said platforms, but if you’re expecting HTML to somehow handle the subtle and explicit differences between a handheld multitouch peripheral and a desktop application, well then you’re doing it wrong. These are completely different environments and they require completely different designs and often implementations.


HTML/CSS/JS don't solve the problem at all. As they are used today, they target a small set of viewers which happen to go out of their way to provide a fundamentally similar presentation on different platforms. If the viewer happens to deviate from how the most commonly used viewers render, they tend to break horribly (see, for instance, a heavy javascript site viewed via lynx). It's easy to do "write once, view on most viewers" when most viewers try to act more-or-less the same and freely break underlying OS conventions because users have learned to expect that web sites will look and behave the same regardless of the underlying OS conventions.

On the other hand, when you're natively targeting several platforms with radically different UI conventions outside of the browser, it's a lot harder to provide a single language and library set that can cover up those differences. You could go for the browser strategy and attempt to convince users that your application is exempt from the underlying OS conventions because it's special, but that's a steep uphill climb (especially with users bases known to be hostile to applications which deviate from expected conventions, like the Apple community; god help you if you're trying to sell an Adobe Air app on OS X).

Like I said, there is no silver bullet here. You can't get polished interfaces on multi-platforms if you're not willing to polish your interface separately for each platform.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact