2023-08-02, 20:49
  #121
Medlem
Citat:
Ursprungligen postat av Bromskloss
Vet du hur det fungerar, det där med no_std? Om man använder bara någon liten del av standardbiblioteket, kan man inte då få den lilla biten inkompilerad och vara utan resten? Varför fästs det så mycken vikt vid att vara helt utan standardbiblioteket?

Kortfattat:

nostd innebär att du inte får något av standard biblioteket, utan kan bara använda core, du får använda tredjeparts crates eller skriva din egna implementation för det du behöver.

Tyvärr får du med en massa skit som du inte vill ha om du har begränsade resurser och länkar mot standardbiblioteket, LTO kan hjälpa lite men det får inte bort allt men framförallt förväntar sig standard biblioteket viss funktionalitet och framförallt att det finns ett OS underliggande vilket inte alls är en självklarhet om du skriver programvara för inbyggda system.
Citera
2023-08-03, 00:59
  #122
Medlem
Bromsklosss avatar
Citat:
Ursprungligen postat av JohnnyMnemonic
Kortfattat:

nostd innebär att du inte får något av standard biblioteket, utan kan bara använda core, du får använda tredjeparts crates eller skriva din egna implementation för det du behöver.

Tyvärr får du med en massa skit som du inte vill ha om du har begränsade resurser och länkar mot standardbiblioteket, LTO kan hjälpa lite men det får inte bort allt men framförallt förväntar sig standard biblioteket viss funktionalitet och framförallt att det finns ett OS underliggande vilket inte alls är en självklarhet om du skriver programvara för inbyggda system.

Det måste väl ändå finnas saker i std som inte bygger på att det finns ett operativsystem, tycker jag. Man måste ju kunna få använda något så enkelt som en Option, till exempel, utan att behöva dra in något stort bagage.
Citera
2023-08-03, 03:59
  #123
Medlem
Citat:
Ursprungligen postat av Bromskloss
Det måste väl ändå finnas saker i std som inte bygger på att det finns ett operativsystem, tycker jag. Man måste ju kunna få använda något så enkelt som en Option, till exempel, utan att behöva dra in något stort bagage.

Option ingår i core https://doc.rust-lang.org/core/option/
Citera
2023-08-03, 11:45
  #124
Medlem
Problemet som ska lösas än att ingen minnesallokering får ske utan att det explicit ger sätt att hantera detta direkt. T.ex. i kod som hanterar interrupter från hårdvaran, eller i kod som är minneshanteringen själv, där måste minnesallokering vara explicit.
Citera
2023-11-19, 15:04
  #125
Medlem
QuackyDucks avatar
Jag har varit sugen att hoppa på Rust. Ser ut att vara ett väldigt trevligt språk!
Citera
2025-03-31, 22:47
  #126
Jag har börjat kika på Rust nu Verkar vara ett intressant språk med features jag inte är bekant med sen tidigare som t.ex.
ownership, borrowing och lifetimes. En hel del nytt att lära sig med andra ord.

Jag laddade ner Jetbrains RustRover som får fungera som utvecklingsmiljö. Såg att det finns en Rust-plugin till Visual Studio 2022 också men den har jag inte testat ännu.
Citera
2025-04-01, 11:46
  #127
Citat:
Ursprungligen postat av abcabc
Jag har tidigare jobbat med programmering av inbyggda system på 90-talet, då med främst C men även lite C++ och Java. Även om C kändes gammalt redan då var C++ och Java ok, men idag känns de gamla.

Jag har varit på jakt efter ett programmeringsspråk som ersätter dessa, dels för mina husbehov, men främst för att försöka förutsäga vad branchen behöver.

C++ är föråldrat, dålig säkerhet, ingen vettig range control av arrayer, ingen inbyggd hantering av moderna typer som dynamiska mänger av blandade typer.

Jag har nog kommit fram till att Java ej är lösningen, dels är den föråldrad, och att den ej producerar maskinkod som nog visat sig vara fatalt.

Jag har kollat in Swift, jag hoppades mycket på den, den är kompilerande och producerar maskinkod. Fokus på säker och stabil kod. Bra objektorientering. Dock en normal garbage collector som gör den svår för inbyggda system, gör att prestanda blir för dålig. En mycket stor run-time-system som krävs att den finns för att kunna köra Swift över huvud taget, jag har hört 500k byte, vilket är mycket, det begränsar andvändningen rejält. Tafflig support för att hantera låg-nivå för att accessa minne. Annars ett modernt och trevligt språk. Kontrollerat av Apple, och även om det är öppet är de oklart om de verkligen vill sprida de utanför Apple-världen.

En annan språk är go från google, ok men saknar objektorientering vilket är mycket tråkigt, men är modernt med dynamiska typer enligt ovan, har dock en traditionell garbage-collector, vilket kan ge problem.

Min faforit och hopp nu är Rust, har moderna dynamiska typer, är modernt språk med de saker vi är vana vid från tex python, har viss objektorientering utan att gå till överdrift (så ej polymorft arv), tycks på något sätt klarat sig utan garbage collector, är helt öppet och det tycks finnas intresse av att det kanske skall ersätta C/C++ som arbetshästen för inbyggda system och hela os. Språket är fokuserat på att bygga stabil och säker kod, vilket är mycket bra.

Vad jag förstår så skrivs fortfarande linux i C, windows i C/C++ och macOS i C och Objective C, hela MS Office i C/C++, så C/C++ är fortfarade arbetshäsyen. Så om vi räknar in alla mobiltelefonet, tv-apparater, smarta klockor och kärnvapenmissiler, så kanske 98% av all maskinkod i värden som exekveras är C just nu. En filosofisk fråga blir hur man skall bedöma all PHP och javascript som i sin tur resulterar i C/C++ i slutändan

Jag har läst att USA militärindustri tidigare haft krav att använda ADA, men på senare år i ökande grad gått över till C (somär ett mycket äldre språk).

Vad tror ni? Kommer vi få leva med C/C++ i 20 år till för inbyggda system, operativsystem och liknande?

C# är standard i de allra flesta system, så C/C++ lär nog klara sig i >20 år till. Det är bara i vissa mycket speciella tillämpningar man behöver något annat. Däremot kan man ju ha känslomässiga skäl att använda ett visst språk. Eftersom jag är svag för RPN, så gillar jag Forth ...men jag skulle inte vilja göra några större projekt i det språket.
Citera
2025-04-02, 09:17
  #128
Medlem
Citat:
Ursprungligen postat av Bossebrutal
C# är standard i de allra flesta system, så C/C++ lär nog klara sig i >20 år till.

På vilket sätt menar du att c# och c++ har specifikt med varandra att göra utöver att de börjar med "C"?
Citera
2025-04-02, 13:32
  #129
Citat:
Ursprungligen postat av RoyBatty
På vilket sätt menar du att c# och c++ har specifikt med varandra att göra utöver att de börjar med "C"?
C# och c++ bygger på C, men C# har utvecklats väldigt mycket mha Microsofts gedigna kunskap inom området.
Citera
2025-04-03, 09:05
  #130
Medlem
Citat:
Ursprungligen postat av Bossebrutal
C# och c++ bygger på C, men C# har utvecklats väldigt mycket mha Microsofts gedigna kunskap inom området.

Heh. C# är från början mycket av en klon-version av Java. Deras syntax var i det närmaste det samma i början.

Microsoft tog Java och la till ett gäng egna bibliotek så att det bara gick att köra på Windows. De blev stämda av Sun (https://en.wikipedia.org/wiki/Micros...irtual_Machine) , och vips så blev C# deras "nya" språk.
Citera
2025-04-03, 09:13
  #131
Medlem
Det är det bästa programmeringsspråket på samma sätt som en hammare är det bästa verktyget
Citera
2025-04-03, 09:33
  #132
Medlem
Jag tror att Rust kommer att ersätta flera andra språk, speciellt när man ändå gör det med hjälp av AI så finns liksom ingen anledning längre behålla språk som var lätta att prototypa med eller lätta att komma igång med.

AI kommer att snabba upp processen och då får man fördelarna också utan extra kostnad.

Jämför t.ex python som är populärt för det är lätt komma igång med men som är ganska segt och långsamt när man ska köra pythonprogrammet. Visserligen finns det flera förbättrade versioner även inom python, men när man jämför med C, C++, Rust så är det onödigt. I framtiden vill man ha maximalt optimerade program och kanske inte ens c, c++ eller rust räcker till utan det blir assembler eller ren maskinkod.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in