[HN Gopher] SixtyFPS v0.0.6 GUI Toolkit: Now with IDE Support
___________________________________________________________________
SixtyFPS v0.0.6 GUI Toolkit: Now with IDE Support
Author : adamnemecek
Score : 99 points
Date : 2021-04-27 16:30 UTC (6 hours ago)
(HTM) web link (sixtyfps.io)
(TXT) w3m dump (sixtyfps.io)
| IceWreck wrote:
| This looks pretty awesome, wish they had more language bindings
| (like Go or Python)
| tronical wrote:
| Python should be fairly straightforward to do.
|
| Golang with the interpreter we well, but the RealThing(tm)
| would be a full code generator and binding to the runtime
| library. That would be awesome, but a little bit more work.
|
| I quite like Go, it's simplicity and GC is really convenient.
| nyanpasu64 wrote:
| > This release also includes new Rust and C++ APIs to dynamically
| load .60 files, with the sixtyfps-interpreter crate in Rust, and
| the sixtyfps::interpreter library in C++. This also allows
| embedding a component as a QWidget in a Qt application.
|
| in case Widgets and QML and HTML in one app wasn't bad though
| tronical wrote:
| Maybe it could be brought over the top by compiling Qt to wasm
| and mixing that in. A bit tricky with the emscripten runtime vs
| wasm32-unknown-unknown target mixing of Rust though ;-).
|
| Jokes aside, we added this embedding because of a specific user
| need.
| nyanpasu64 wrote:
| I was joking and didn't intend hostility. Sorry if it sounded
| like it did.
| lalaithion wrote:
| This is pretty cool, and it probably works very well on other
| platforms, but the compiled-to-WASM isn't great. For one, text
| boxes don't actually focus while capturing input, so my keyboard
| shortcuts kept firing while I was trying to type into their text
| box.
| adamnemecek wrote:
| Note that the project is in v0.0.6 so adjust your expectations
| accordingly.
| nicebyte wrote:
| considering that they use qt as (one of) their backends, why
| would i use this over qt?
| ogoffart wrote:
| The use of the Qt backend is only temporary to get native style
| quickly on every platform. In the future, we would use a native
| windows and mac bckend.
| tronical wrote:
| Lsp can be used with any IDE, better markup language (static
| typing, proper module concept), rust and JS APIs, markup
| compiled to proper C++/Rust AOT, compiler can do asset
| optimizations (todo) - for example:).
|
| In short: we try to do one thing (UI) and do it well :)
| cookguyruffles wrote:
| A few hot takes:
|
| - Library is under the GPL 3, vastly more restrictive than most
| existing GUI toolkits
|
| - WebAssembly rendering in Firefox most certainly not living up
| to the name. I think the slide animations on the print example
| are managing around 5-10 fps
|
| - Keyboard input / control focus seems absent in the demos. This
| would also suggest the much more important detail of
| accessibility also missing
|
| - Compiles layouts to code. Is this really necessary? Visual
| cortex places severe restraint on how much complexity can go into
| a UI. Code generation on the other hand says a lot about how
| painful the dev-build-debug cycle is likely to be.
| Zolomon wrote:
| There is more to read about the commercial license:
| https://github.com/sixtyfpsui/sixtyfps/blob/master/FAQ.md#li...
| tronical wrote:
| Sad to hear that it's not fluent for you :(
|
| We went for dual licensing (GPL / commercial) in hope of
| creating a sustainable project.
|
| We do have basic focus handling but the demos don't really try
| to show that off - that's more tailored towards touch based
| input at the moment. But we'd love to have a17y, full desktop
| like tab focused etc.
|
| Regarding the compilation: the ability to live preview
| individual components or the entire design and seeing changes
| being applied on the fly (we have an interpreter for that)
| speeds the ui dev cycle a lot. Give it a try :)
| tormeh wrote:
| 25-54FPS here. Firefox Nightly 84.0a1 (2020-10-23) (64-bit)
| on Linux Wayland with AMD GPU.
|
| EDIT: Profiler says CPU-wise the page is 95% idle.
| adamnemecek wrote:
| SixtyFPS is a project started by Simon Hausmann and Olivier
| Goffart who previously worked on Qt at Trolltech.
|
| SixtyFPS is the first project with a company behind it which uses
| femtovg, a Rust nanovg port. https://github.com/femtovg/femtovg
| for rendering. SixtyFPS added WebGL support which lets you run
| femtovg in the browser
| https://tronical.github.io/femtovg/examples/index.html.
|
| Recently, femtovg added an experimental wgpu backend which is for
| now in my fork of the project
| https://github.com/adamnemecek/femtovg.
|
| Join the femtovg discord https://discord.com/invite/V69VdVu.
| MegaDeKay wrote:
| The Qt influence shows: their markup language is very QML-ish.
| And I think that is a good thing.
|
| https://github.com/sixtyfpsui/sixtyfps#the-60-markup-languag...
| ognarb wrote:
| Yeah qml is awesome, so I wouldn't mind seeing a rusty qml
| version.
| IshKebab wrote:
| I hope they solved the spaghetti code nature of QML
| (basically everything can refer to anything else; you end up
| with children that have dependencies in the internals of
| their parents).
| ogoffart wrote:
| Yes, we use static typing and everything is statically
| known within a single file. This allows to preview each
| control on its own since they don't depends on their
| parents.
| tronical wrote:
| We try hard to avoid that. No magic context properties,
| good modularity across files (js module concept). Easy to
| write components. But there is more work to be done.
| lurkerasdfh8 wrote:
| off topic, but the example (printer panel showing ink levels)
| took me down a rabbit hole looking for open source printers.
|
| and sure enough, i was right back in HN after a few clicks.
| https://news.ycombinator.com/item?id=24786721
___________________________________________________________________
(page generated 2021-04-27 23:02 UTC)