Skrivet av orp:
Nej det är inte snabbare än C och det är väl på ungefär samma hastighet som C++ men alla sådana här mätningar ska man ta med en nypa salt eftersom de oftast inte kan appliceras på ditt use-case.
Varför är det så som hävdar det?
Ja, jag tar dessa mätningar med en nypa salt, men det måste väll ligga någon sanning bakom varför vissa mätningar så är det Rust som är snabbare?
Citat:
Om du vill framtidssäkra dig så är det bästa att välja en portfolio med språk som löser olika typer av problem olika lätt. Språk är enbart en liten del det viktigaste är att ha en förmåga att anpassa sig.
Någonstans måste jag börja.
Citat:
Nej, det gör du inte. Ditt första inlägg är kritiserande och inte utforskande. Utöver detta när folk bemöter din kritik så kommer du med omogna inlägg som:
Du tolkar fel. Jag är mycket nyfiken att diskutera olika teknologier.
Nu när Microsoft har sagt att dom väljer Rust framför C och C++ när nya icke GC-projekt ska byggas. Då drar jag slutsatsen att Rust är ett bättre språk helt enkelt.
Citat:
Där du kommer med påstående som ingen gjort om att Rust skulle lösa alla problem. Detta är än en gång ett bevis på att det inte är en utforskande mentalitet.
Jag har inte fått bevisat vad Rust inte kan. Som jag har hört så verkar Rust kunna allt det C++ kan, plus att Rust har högre säkerhet och snabbheten är antingen likadan eller bättre.
Citat:
Jag tror det är här skon klämmer. Du har läst rubriker om att X skulle vara en C- eller C++-killer. Jag skriver både C och Rust och jag gillar båda språken och jag anser _inte_ att stora etablerade projekt ska skrivas om från exempelvis C.
Ja, jag har läst många rubriker och läst vissa debatter på Reddit där vissa hävdar att Rust är bättre än C++ på alla möjliga sätt. Typ som ett "C++ done right". Ungefär som Kotlin-användare säger att Kotlin är ett "Java done right". Då drar jag slutsatsen att dessa programmeringsspråk är bättre.
Citat:
Zig är ett alternativ till C och Rust. Du kan transpilera(transpiler/transcompiler) C-kod till Zig och vise versa. Carbon är introducerad som alternativ till C++ och erbjuder inline-stöd för C++ dvs den har inget med Rust att göra.
Jo, det vet jag.
Men alla dessa språk som kommer upp som ska göra in princip samma sak som C och C++, måste väll vara bättre trots allt?
Jag menar, du uppfinner inte ett C++ liknande språk, om språket är sämre?
Skrivet av Erik_T:
Vad får dig att tro att det inte gjorts?
Problemet är att analysverktyg som Valgrind, oavsett hur avancerade de är, inte kan upptäcka alla fel.
En viktig skillnad mellan Rust och C är att det är fler typer av fel i Rust som är möjliga att upptäcka med statisk analys, och som en kompilator för Rust skall upptäcka.
Jag kör Microsoft Visual Studio Community och jag har inte sett ett sådant verktyg som kan analysera minnet t.ex. överindexering eller glömde frigöra dynamiskt allokerat minne. Detta skulle jag uppskatta för jag har behov utav sådant, faktiskt väldigt mycket. Jag lägger ned timmar på att få till indexeringen korrekt då jag håller på med machine learning i C. Jag vet...det är tokigt. Men det är sjukt snabbt.
I Linux brukar jag köra Valgrind där jag kollar om jag överindexerar. Detta tycker jag är smidigt. Jag saknar sådant verktyg i MSVSC-IDE:n.
Skrivet av orp:
Jag känner till valgrind och address sanitizer osv. Hur tror du valgrind fungerar?
Den kollar hur mycket allokerat minne jag deklarerar och kollar hur mycket jag förbrukar?
Skrivet av Curik:
Förutom att Valgrind (och liknande lösningar såsom PurifyPlus) inte ser alla fel så är det dessutom ett verktyg som körs under runtime, så det är inget du kan använda när du skriver din kod. Du måste även se till att provocera fram felindexeringen eller hoppsa att den alltid sker, annars säger inte Valgrind något.
Det är klart att ifall du skapar ett jätteförenklat exempel med hårdkodade index så borde en smart kompilator kunna varna dig för det. Men det är ju inte sådana småfel som erfarna utvecklare fastnar i timtal på utan det är ju just när indexeringen/storleken är dynamisk.
Du kan inte stoppa felindexering med hjälp av en smart IDE. Som flera skrivit tidigare så finns det inte tillräcklig information för att avgöra det.
Har du något exempel på sådant verktyg i Microsoft Visual Studio Community?
Skrivet av Alling:
Förutom alla andra missförstånd, felslut och bakvända resonemang* du ger uttryck för som redan pekats ut gång på gång av andra verkar du helt ha missförstått vad en IDE är.
En IDE är inte ett orakel. Den förkrossande majoriteten av all information du får i en typisk IDE kommer från kompilatorn. I den mån en IDE (eller ett tillägg till den) tillhandahåller mer information än kompilatorn gör den det i regel heuristiskt.
En IDE är inte auktoritativ. Andra utvecklare i samma projekt sitter i allmänhet med en helt annan miljö, och du kan i praktiken inte ens dra nytta av en IDE i CI. Det enda som faktiskt räknas är vad kompilatorn säger.
Jag vet vad en IDE är.
Citat:
* Det genomgående temat i dina inlägg i tråden låter ungefär så här:
Du: "[C och C++] är bökigt och omständigt och jag måste ha kontroll på allt. Minsta lilla fel på indexeringen och ALLT blir fel. Det kan ta timmar att felsöka då jag får inget fel om jag överindexerar. […] Helst vill jag få förvarning [om null pointer exceptions] innan jag ens debuggar koden. […] Jag har mycket problem med överindexering hos C […]. Så det tar tid för mig att faktiskt programmera. Jag har stort behov av någon som kan ge mig en varning på […]. […] Att ha en gnällig kompilator skulle jag vilja ha när jag programmerar C."
Andra: "Rust löser de problemen du har."
Du: "Jag har aldrig kört Rust, bara C och C++. […] Personligen är jag lite skeptisk till Rust. […] Språket attraherar folk som ofta kommer från webbutvecklingssidan(vad jag har sett). […] Jag ogillar att man använder massa tecken. […] Jag märker ingen skillnad mellan Python och MATLAB [så prestandaskillnaden mellan Rust och C är alltså jätteviktig för mig]. […] Nej, det är inte skoj med flera språkalternativ - Det är religion. […] Borde inte [egenskaper som går tvärtemot allt som C står för] vara enkelt fixat hos dom som utvecklar C? Jag menar, dom behöver ju inte röra bakåtkompatibiliteten? Det är väll bara lägga till en funktion som granskar koden när man kör den?"
Du verkar störa dig på att jag undersöker olika fördelar och nackdelar?
Citat:
Som tidigare nämnt: om du har tid och möjlighet att skriva en kompilator – eller bara en typcheckare – för ett litet, påhittat leksaksspråk, kan jag varmt rekommendera det. Det är extremt lärorikt och ögonöppnande! När du har lärt dig grunderna kan du göra ett försök att utöka GCC eller Clang med statiska garantier motsvarande Rusts. Lyckas du kommer du göra miljoner utvecklare världen över evigt tacksamma.
Nej, jag har inte sådan kunskap. Jag tänkte bara att det borde vara möjligt idag, med tanke på att det är möjligt i alla andra språk? Jag menar, man behöver väll inte röra språkets struktur om man t.ex. låter kompilatorn granska koden innan den kompileras?
T.ex. låt oss säga att jag ska kompilera en C kod som överindexerar. Min kompilator kompilerar koden, och sedan granskar min kompilerade applikation med t.ex. Valgrind och säger åt mig att denna kod som jag har skrivit är fel på, och felet är här. För överindexering kan Valgrind faktiskt känna igen.