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

Python isn't for people that care about performance, and Rust has still lots of work to do to provide any GUI, game engine or GPU framework as ergonomic as C++.

Backwards compatibility is what keeps C and C++ relevant, for better or worse.

All major languages value backwards compatibility to certain extent.

Python was lucky that after Python 2 to Python 3 mess, being the AI scripting language, has turned things around.



> Rust has still lots of work to do to provide any GUI, game engine or GPU framework as ergonomic as C++.

Slint, Bevy and no idea what a GPU framework is (even search engines are stumped; they keep recommending Framework laptops). Is it just CUDA?

Not gonna lie, what exactly is this mismatch of stuff? How to be C++ in 3001 steps?

Ergonomic as C++? That sounds as oxymoronic as "musical as nails on a chalkboard or a cat drowning in porridge." Having had the displeasure to read some relatively complex C++ codebase (SIMD json), has left me in deep appreciation of Java.


Unreal, Godot, and being on the console devkits are the minimum bar to match.

Followed by being integrated into RenderDoc, Pix, Instruments, NSights, for debugging purposes and instrumentation.

GPU frameworks is having matching CUDA, Open API, Metal Shading Language, ROCm feature parity, in IDE tooling, graphical debuggers, industry and academic support.

Having a seat at the table when Khronos and its partners are discussing the next GPU standards, so far only C, C++ and most recently Python, have a seat allocated.


Well according to your definition only one language could have ever fit the description.

It had to have a commercial game engine: so C++ or C#. It had to have cross platform GUI with Qt features - so C++, maybe Delphi. And it had to have seat at GPU standards so C, C++ and Python.

Forget Rust. C doesn't fit your criteria. Or Java. Or C#...

By cherry picking your criteria you can create an argument that pre selects one language.


There are several commercial game engines that were C before being C++, same applies to industry standards in the graphics and games industry.

Console devkits included.

Also the fact that C89 (minus one or two things) is a subset of C++ is still a reality that many studios take advantage of.

Java is indeed not used at all in the commercial games industry, unless the authors only focus on desktop or Android.

There is a reason why the very first thing Microsoft did after Mojang's acquisitions was to rewrite Minecraft into C++ for mobile platform and game consoles. They only don't get rid of Java version due to the modding community.

C# is only used thanks to Unity and even that is powered via C++ engine, and a compiler that translates MSIL bytecode into C++.

Yes, Rust still has a lot to catch up in this GUI and games industry.

On VFX, it isn't even part of the reference platform for the industry,

https://vfxplatform.com/


> Slint

Where is its equivalent of QGraphicsView? Or QTextDocument?

And Slint is probably more mature than any other pure Rust GUI. They, as of now, are little more than toys.

Look, I enjoy Rust as well, but be realist.


> Where is its equivalent of QGraphicsView

I wasn't aware having feature parity with <INSERT FRAMEWORK FOR INSERT LANGUAGE> was necessary for language to beat C++. I could have sworn Java did it without half of those.

Ultimately it depends what you want to do? Cross platform GUI or winning pointless debates.

If you really want cross platform GUI you pretty much have to use Web based UI. Because Apple is extremely hostile to anything that tries to be native on its platform.


Not on desktop, it didn't.

IDEs are the only surviving Java desktop applications, and a few outliers like Bitwig DAW.


It didn't except for programs that did?

Well by that measure neither did C/C++. Only few survivors in the deluge of Electron apps.

Chrome and Firefox also use JavaScript/CSS for their GUI.


Or Qt Design Studio for that matter, and integration with designer tools.


Really? I have found the UX stuff with egui to be super ergonomic. It's not "native", though. Trying to do macOS UX with it, I have found, generally sucks (curious if anyone knows of any good libraries). Then again C++ probably sucks for native macOS too. So I really don't think Rust is far off.


Yes really, because it is nothing like Qt, in IDE integration, tools for designers, or ecosystem from 3rd parties components.

C++ sucks for macOS, because it was never a first party language, unless using it via Objective-C++.

The only role of C++ in macOS is for drivers, LLVM and being the Metal Shader Language (C++14 with extensions).


Aren't apps, core system components et al built in C++? That was my impression.


Objective-C, the main difference to NeXTSTEP is that DriverKit changed from Objective-C into C++ with IO Kit, that uses Embedded C++ in a COM like approach.

In an homage to NeXTSTEP, the userspace version of IO Kit is named DriverKit.

There are some frameworks that might use C++ in their implementations, like Core Audio, however they are exposed to userspace as C APIs and Objective-C frameworks.

Hence why Apple nowadays mostly cares about LLVM, clang is good enough for their limited uses of C++.

https://developer.apple.com/xcode/cpp/

https://cppreference.com/w/cpp/compiler_support.html




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

Search: