6 ms·
Basically I think it boils down to the fact that the c/cpp tooling is actually really sophisticated at this point and developers have already learned how to dea
by jfaucett 9y ago
Basically I think it boils down to the fact that the c/cpp tooling is actually really sophisticated at this point and developers have already learned how to deal with the pain points of c/c++ so there is little incentive to change. Especially, since it means swapping out a highly advanced ecosystem i.e. UnrealEngine for the chance to spend the next 5 years building your own not-as-good system to then be able to start to program your own game. And its like this in every C/C++ industry I'm aware of (embedded devices / games / desktop apps).
I'm a rust fan, even more so of cargo (wish C/C++ had a cargo). But at the end of the day it almost always boils down to transition costs vs. benefits, and the benefits currently don't outweigh the transition costs IMHO.
- hackits 9y agoYou only need a some major players and big names to get behind rust and I would bet it would surpass C/C++ code-base within a couple of years. It wouldn't replace major frameworks or libraries written in C/C++ but I it wouldn't take much work to write the wrappers around them anyway.
- eej71 9y agoWhile such support might be helpful, the majority of systems in C++ that I've seen are significantly larger than the libraries they are consuming. In other words, such library wrappers are but a scratch on the surface of the system. I often wonder - how big does a code base have to be before an advocate of these ideas (ie: "rewrite it in X cause X is abstractly better") might be inclined to backpedal and reconsider their advocacy?
- hackits 9y agoI found working with Operation Flashpoint/VBS2/Arma 2 that the code base being so large and so many edge case conditions that it will never re-written. One example from the VBS2/Armed Assault 1/2 they replaced the way arrays references are handled. Previously array's assignment was a copy. They changed it so array's assignments would mirror java's references and only the pointer to the buffer would be copied eg.. copy on write. They had so many idiotic edge case conditions that they reverted back to the old method. So when I say they just need some major backers it would be for new system and applications that would take advantage of the new language. Re-writing most game engines today doesn't have a strong business case. Writing new games/software and shipping faster is more important.
- memracom 9y agoI think you are correct in regards to the people who are currently using C/C++. They already have done the hard work to make it usable for their systems. But newer developers will look at the complexity of C/C++ development and choose anything but. Maybe it is like politics, rather than attacking your opponents you should offer something that they do not. Then you will build your own constituency and gain influence. It will take a long time, but if you keep on providing benefits to users, then attrition might take you to the top. When someone attacks your camp, ignore them. You do not need a better way to attack them, you just need to stick to the knitting and make your offer provide benefits to users. External forces will likely decide whether or not you overwhelm your opponents.
- AstralStorm 9y agoThe problem with this approach is that you would really have to offer something groundbreaking to displace C and C++ while also matching portability (only matched by Java variants) and performance (often unmatched). The about only languages that could compete right now are extended Ada for high assurance environments and Fortran variants for HPC. They are old but not dead and quite usable if you have the dollars to buy proprietary or invest time. Microcontrollers and constrained environments are another critical niche for C and C++, especially given proprietary compilers. Rust does not go far enough in safety to displace Ada (or Spark variant) while not offering improved performance and comparable portability with all the pains of a new language. It also does not do build once deploy everywhere stuff Java and JS attempt. Rust is neither here nor there. A good effort but not a solution.
- smt88 9y ago> you would really have to offer something groundbreaking to displace C and C++ while also matching portability If you offer something groundbreaking, you don't need to match portability. Many people will be willing to make the tradeoff. > Microcontrollers and constrained environments are another critical niche for C and C++ Why do you assume Rust can't be used for these niches? I understand the potential issues with old environments, but what about modern/future ones? > It also does not do build once deploy everywhere stuff Java and JS attempt. Rust compiles to JS today. It will eventually compile to WebAssembly.