Hacker News new | ask | show | jobs
by throwaway2037 1084 days ago
Holy shit this GUI framework looks good. I am a Qt fanboi, but this looks great. Normally, I skip all the "X for Rust" posts as a bunch of fanaticism. Could it really be different this time???

The feature list is really impressive: https://github.com/iced-rs/iced

Plus, here is the road map with many things already done: https://github.com/iced-rs/iced/blob/master/ROADMAP.md

Wow, wow, wow: Keep up the great work.

One of the rendering engines is Skia by Google. This library is sneaking up fast on us...

8 comments

iced is a really weird one. It has a lot of widgets and lots of really advanced features... but clipboard support is almost non-existant (basically you can only copy small strings and nothing else). (I also think drag-and-drop is not possible either)

I've wanted to work on a few tiny tools in Rust, but so much of my workflow relies on proper clipboard support that it's never worked out.

Maybe some day I'll have time and energy to work on this, but the issue seem to come from underlying libraries providing abstractions that just don't allow properly inter-operating with the clipboard.

Of course, this isn't a problem for an IRC client, since you can't send images or anything like that anyway.

> I also think drag-and-drop is not possible either

This seems to have a form of drag and drop in the demo gif.

It is looking good, but I'm still waiting for a "table" (they do have a "grid" now) and "tree" widget to give it a try
To be fair, in any GUI toolkit, the "table" is abolutely the most complex general purpose widget. People really under estimate the difficult of an efficient implementation. Qt spents YEARS improving their QTableWidget class. The implementation is mind-bogglingly complex. I am sure many very smart summer interns (PhDs!) have tried to tweak that class to squeeze every bit of performance possible. The table class in GTK+ and MSFT DotNet's WPF are equally, freakishly insane.

Consider this idea: Most people who use a table class in a GUI framework assume it is essentially infinitely scalable (myself included!). I am talking about millions of rows or thousands of columns with all kinds of silly widgets injected into individual cells. It is a crazy hard computer science problem to solve. I would not doubt there are many PhD thesises written on the topic of fast, scalable table widgets.

Beyond desktop GUI toolkits, people have tried to do the same in a browser (HTML/CSS/JS). Have you seen AG-Grid? Woah, it is unbelievable how much goddamn data you can squeeze into that widget. Most Wall Streets web-based trading apps use it one way or another. It's just so hard to beat. Ref: https://www.ag-grid.com/ There must be 1,000 person years of optimisation sunk into that implementation.

I've got a table widget you can give a try

https://github.com/tarkah/iced_table

As a fellow Qt fanboi I admit this looks damn good, maybe this once we'll permit a "rewrite it in Rust" moment?
They're also using it for the new Cosmic DE for Pop! OS
There's a more recent iced Roadmap here: https://whimsical.com/roadmap-iced-7vhq6R35Lp3TmYH4WeYwLM
First thing I look at when checking out a new shinny GUI toolkit of the month is whenever it has support for a11y features. In this case, it's not even on the roadmap.
My guess: a11y work always needs to be sponsored (indirectly) by gov't consulting contracts, similar to new cipher suites in OpenSSL. Why is a11y a deal-breaker for you?
Are they still backed by kraken?
Who or what is "kraken"? Sounds exciting. Can you share more details?
Thanks!