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?
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?