Rust codebases extend in size and scale to larger teams fundamentally better than C++ / C. Rust offers more leverage in building ambitious system software.
Since you mention Qt, imagine writing all of Qt in x86 assembly, vs. C++. "There's not particular reason this isn't doable." C++ to Rust is a similar jump. No silver bullets; just leverage.
Cross-platform toolkits — especially those aiming to abstract over native UI/UX patterns — are an ambitious, if not Sisyphean domain. Qt was about the best we could do in the C++ era, but a new era has dawned.
> Qt was about the best we could do in the C++ era, but a new era has dawned.
Based on the way the Rust community has been spinning its wheels for years in getting something even within a light year of feature parity with Qt, if a new era has truly dawned you might need to wait for the next one.
> Rust codebases extend in size and scale to larger teams fundamentally better than C++ / C. Rust offers more leverage in building ambitious system software.
I like Rust - but this is classic RSF/RIIR copypasta.
> And you can non-ironically say the same about non-Qt toolkit written in C++.
Maybe. Gtk and its related libraries don’t cover everything Qt does, but they’re not small either. It’s also fair to include the native toolkits themselves on their respective platforms that are written in a mixture of C++/C/Objective C.
I also will point out that one of the cross platform toolkits with some traction in the Rust world is amusingly fltk.
> What grandparent probably means something that leverages parallelism and/or GPU acceleration.
You mean like QtQuick/QML, skia (basically this is the effective underpinning of electron and flutter) or Dear Imgui, etc.
There are a handful of widely used GPU based GUI libraries.
The above examples are all C++.
> leverages parallelism
The memory model of Rust is still whatever C++ does. I get that Rust has some nice features and C++ makes it easy to fuck your self but people have been doing large scale parallel software development for years in C++.
> Qt is also old as Jesus, and making a cross OS GUI is extremely hard.
The claim was we are in a new era of “leverage” that will make the hard very easy (that’s what it sounded like at least). I found the claim at best vague and low on specifics or evidence - hence the mention of RESF.
> Maybe. Gtk and its related libraries don’t cover everything Qt does
And therein lies the problem. Qt is semi-open (the parent company tried to close source it[1]). If a commercial company has no interest in maintaining it, there is even less hope for other open source approaches.
Best cross OS system are almost always backed by a commercial supporter. See Skia - Google, Java Swing - Oracle, Qt - QtCompany, etc.
OSS offerings were always runner ups (e.g. Gtk - Gnome).
> The memory model of Rust is still whatever C++ does. I get that Rust has some nice features and C++ makes it easy to fuck your self but people have been doing large scale parallel software development for years in C++.
Memory model of Rust is undefined[2]. It might be anything Rust does to accomodate C++ bindings, but I don't think they really settled on one.
I'd like to add - people have been doing large scale parallel software development for years in C++, in spite of C++. What is a line of comment in C++ in Rust is a type system constraint.
It's a difference between having a seatbelt (Rust) and holding a piece of seatbelt (C++).
Rust was literally made to address C++ shortcomings when it comes to parallelism.
> You mean like QtQuick/QML, skia (basically this is the effective underpinning of electron and flutter) or Dear Imgui, etc. There are a handful of widely used GPU based GUI libraries. The above examples are all C++.
No. I mean like WebRenderer[3], Lyon[4]. Most things should be parallelized and done on GPU/SIMD. Layout, font shaping, etc.
Also neither of your examples do any text shaping on the GPU. Lyon doesn’t do text and Webrender (which depends on freetype) does regular old glyph cache built in CPU texture rendering. Neither involve GPU shaping.
Still trying to understand what earth-shattering, "leverage" levering feature this brings compared to Skia.
> Memory model of Rust is undefined[2]. It might be anything Rust does to accomodate C++ bindings, but I don't think they really settled on one.
> I'd like to add - people have been doing large scale parallel software development for years in C++, in spite of C++.
Do you not see at least some level of contradiction to these statements?
This is probably the more relevant explanation:
https://doc.rust-lang.org/nomicon/atomics.html.
"At very least, we can benefit from existing tooling and research around the C/C++ memory model."
> Sorry, font rendering. I thought font shaping is part of it. Pathfinder and Lyon were libs.
They don't do GPU font rendering either.
Pathfinder isn't widely used -- see my original post about "spinning wheels".
GPU font rendering hasn't demonstrated much real world value for GUIs. Where it does get used a bit is games - an industry that is overwhelmingly C++ for the foreseeable future.
> No? They are discussing Simd and generic interactions.
I was responding to this: "I'd like to add - people have been doing large scale parallel software development for years in C++, in spite of C++."
Regardless, Rust still depends entirely on the years of research and development in C++ for a memory model which is a core underpinning of parallel programming.
Ofc. Servo was shut down before anything could happen with it. Making production-ready GPU font rendering is hard.
It's not spinning wheels anymore than OSS life cycle is spinning wheels (author needs functionality X author makes a useful lib for X -> it becomes popular -> amount of work increases -> due to pressure/changes in life author abandons lib -> another author has needs functionality X -> ...)
> I was responding to this: "I'd like to add - people have been doing large scale parallel software development for years in C++, in spite of C++.
Saying Rust has issues doesn't negate C++ having massive issues but also a bigger mindshare.
> Rust codebases extend in size and scale to larger teams fundamentally better than C++ / C
There are about 3-4 orders of magnitude more large C++ projects developed by large teams compared to Rust projects as of now.
This might change in future, but your claim seems a bit premature.
In a previous company I worked at, we were forced to rewrite a greenfield project in C++ because it was going too slow with Rust. The team managed to ship the thing in a few months, compared to spending a month getting nowhere with Rust.
Rust codebases extend in size and scale to larger teams fundamentally better than C++ / C. Rust offers more leverage in building ambitious system software.
Since you mention Qt, imagine writing all of Qt in x86 assembly, vs. C++. "There's not particular reason this isn't doable." C++ to Rust is a similar jump. No silver bullets; just leverage.
Cross-platform toolkits — especially those aiming to abstract over native UI/UX patterns — are an ambitious, if not Sisyphean domain. Qt was about the best we could do in the C++ era, but a new era has dawned.