Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We are in the odd position where HTML + JS + UI framework (Vue/React) is just by far the best way to create good user interfaces. The performance hit is not going to stop anyone from using or developing software like this. There is NO good alternative.


I'm sorry, but the way the web stack is typically is the opposite of good user interfaces. It's not that the web can't be used to create good UIs, it's just I've never seen it used in this way, and I find that the less of web technologies you use, the better.

A good user interface will, among other things, be consistent with its environment, efficient wrt. to its purpose and performant.

Consistency with the environments using similar interface primitives to other applications at all levels - not just looking like other applications (to facilitate knowledge transfer/principle of least surprise), but also supporting universal idiosyncrasies - like the context menus in text field, copy-paste, integration with system-wide settings, etc. Looking the same is anathema to web designers, and reconstructing anything else than basic functionality of an UI component is something webdevs usually can't be bothered with.

UIs that are efficient for purpose happen on the web, as long as people do not follow popular UI/UX guidelines. Efficiency for purpose usually means denser interfaces, less bells and whistles, more data on screen, more features and functionality, and a bit of learning curve - all of these are actively hated in the current web ecosystem. All the efficient interfaces I see on the web these days are of those products that didn't get the "web 2.0" memo and are stuck in early 2000s.

Performance. They say V8 is heavily optimized and all, but for some reason the modern web is still fucking slow. Might have something to do with ads and tracking, but it also might have something to do with trying to be first-to-market, and putting in lots of pretty looking bells and whistles. The end result is that I say the data table might need to display 10 000 rows, and I see the UI team cringe at the thought of slowdown. Well, why on Earth would 10k rows in a 4-column table be a problem? Oh, you used lots of JS magic to make that table pretty and "reactive" and shits, that's why.

--

TL;DR: The web is the opposite of good UIs. I'm not really sure if the problem is technological - it seems to be almost entirely cultural.


For certain values of good user interfaces perhaps.

There has got to be a better way forward for mobile UI.

For desktop creating UI on something like QT designer or XAML on WPF is way more pleasant than HTML+JS+UI framework .

Even Actionscript was less convoluted that this mess.

I love writing React code but these abstractions are getting too elaborate.

I had high hopes for WebComponents but support for those seems to be stagnating.


Xaml and Wpf? Qt? I am honestly asking you, have you worked with React before? XAML has a learning curve of 2 years and more to get to expert level. I developed with it for more or less 5 years and i still have nightmares. Qt and the others are all imperative layout inflaters. React was a revolution, maybe the first cross platform paradigm that actually made sense. A learning curve that doesn't span more than a day. In all my years as a frontend developer i haven't seen a simpler way to create user interfaces. And sure as hell i would prefer React on the desktop or mobile over aged native toolkits that still struggle with obsolete oop-mvc-templating semantics, especially wpf and xaml, which in my opinion where the sole reason why i started hating my job.


I love writing React code and it is easy to get up to speed there.

I abhor the mix of HTML/CSS for UI design. I'd rather code UIs in Actionscript.

The web browser as an abstraction for general use UIs is just not ideal.

XAML might be a company induced mess underneath but my point is that you don't have to be XAML expert to make nice interfaces. I made CRUD apps on WPF and rarely did I have to touch XAML directly. I had a big thick book on XAML and it sat unopened on my shelf.

I am forced to do front-end webdev work and I hate it. I need to worry about UI breaking instead of worrying about business logic.

Let's say client needs a dropdown menu added at a certain location. On desktop this is cake on most toolkits.

On web the problem is that there is no certain location, there is no absolute. You have to delve deep into CSS abyss to figure out how the component will behave.


Well i give you that, css is what it is, but even with basic css knowledge, making a dropdown appear anywhere you want is not hard: https://codesandbox.io/embed/w7499vxrzk

It could be better, but it's even got a proper grid system now, close to wpf's. From what i remember though, wpf's styles also had some rough spots.


Uh, there is in fact, an absolute(position:absolute). It has caveats, but doesn't XAML? The 'certain location' bit is actually quite complex:

- how is it supposed to adapt to different resolutions?

- is an inner absolute component allowed to escape its container?

- how does it layer with other components?

The CSS required to position an element at an absolute location must take all of these into consideration, and I'm not sure how much better a native toolkit can make it.


Compared to vue, qt and all its reincarnations are a nightmare to work with.


Maybe. But it boils down to where you want to put the crap - contain it within the dev team, or drop it on your users? Obsessive trading of developer time on your end for compute use on users' end is a big part of what makes web UIs suck. Also, for keeping some of the crap on your end, native-native toolkits give you consistency and performance for free.


I'm almost at a loss for words. The web stack is frankly one of the worst ways to create a good UI. The best UI's typically have three key area's:

- It's easily discoverable by the user - The web is typically horrible at this. Custom controls, look and feel's, and a severe lack of common UI patterns. Native app's have this in spades.

- It's performant - Native wins this hands down everytime. The web stack lacks threading and one of the major keys is to NOT do work on the main thread for a great UI. The vast majority of web dev's have never even thought about threading.

- The design puts features in a place the user can easily and quick get to. This has little to do with the technology platform.

Bottom line is the web stack is at a MAJOR disadvantage for building a UI. The only use for it on mobile is that developers refuse to put in the work to learn how to do the platform justice.




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

Search: