Skrivet av heretic16:
Varför kan inte C++ ta alla dom bra sakerna som Rust har? Typ Cargo har jag hört ska vara bättre än CMake. Enklare och mera...framtid. CMake förväntar sig att alla manuella inställningar ska vara rätt. Jag misstänker att Cargo är automatiserat på en nivå som Maven eller Gradle i Java? Dessa är också mycket fina verktyg som jag djupt uppskattar. Java med.
Ni som säger "Nä, det kan inte C++". Nähä? Vi landade på månen ju!?
Är ju exakt det diskussionen inom ISO-C++ handlar om i nuläget m.a.p. saker som safe-c++.
Av allt att döma skulle det som föreslås i safe-c++ ge språket det mesta av de säkerhetsgarantier som finns i Rust, men samma låga runtime-kostnad.
Men det är inte självklart att det är rätt väg att gå. Kolla exemplen som finns i förslaget, det ser inte riktigt ut som C++ längre utan som Rust skrivet med C++-syntax. Då det är opt-in (det måste vara det annars pajar man bakåtkompat.) är det ändå inte samma sak som att skriva om saker i Rust, utan man måste då skriva om saker i ett i praktiken nytt språk "safe-C++". Då infinner sig frågan: vad är poängen?
Vad det gäller Cargo (och motsvarande i t.ex. Go där det är helt integrerat i standardmiljön, Cargo är rent tekniskt ett externt verktyg som "alla" i praktiken använder) är ju det bara något man under många år av "pain" i C, C++, Java, C# m.fl. insåg att man borde integrera i miljön.
Problemet för "gamla" miljöer är att det bara blir riktigt bra om "alla" kan enas om ett sätt att göra det, vilket C och C++ har nära noll sannolikhet att lyckas med. Enda som i någon mening lyckats göra en retro-fit på ett sådan system där det initialt saknades som jag känner till är .NET med NuGet (som nog gynnades en hel del av "omstarten" av .NET i form av .NET Core).
CMake är inte ens ett byggsystem och det är definitivt inte en pakethanterare. CMake är ett meta-byggsystem, dess input är en högnivåbeskrivning av vad som ska byggas, dess output är ett makesystem (GMake, NMake, Ninja, VS Proj, X-code Proj etc).
Cargo är i första hand en pakethanterare likt Conan, Vcpkg, m.fl. Sen kan Cargo också bygga resultatet då det har ett byggsystem. Men går att bygga Rust-program med t.ex. GMake om man har för lite andra saker att lägga tid på, borde gå att använda CMake också om man verkligen vill "utmana sig själv"