Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

3 redenen om over te stappen van C naar C++

Decennialang is er een discussie geweest onder embedded software-ingenieurs over de vraag of ze C of C++ zouden moeten gebruiken. De software van microcontrollerfabrikanten wordt voor het grootste deel geleverd in C en in feite is 56% van de embedded software geschreven in C volgens de 2019 Embedded Market Survey. C++ wint echter langzaam aan populariteit en ongeveer 23% van de nieuwe embedded softwareprojecten wordt in C++ geschreven. Met C nadert zijn 50 e verjaardag, is het misschien tijd om over te stappen van C naar C++. Hier zijn drie redenen waarom ontwikkelaars zouden moeten overwegen om de wijziging door te voeren.

Reden #1:Verbeterde architectuurimplementatie

De programmeertaal C biedt ontwikkelaars inkapseling en enkele basispolymorfismemogelijkheden via functiewijzers. C is echter echt een proceduretaal en biedt niet zonder extra inspanning mechanismen zoals overerving of compositie. Dit kan het algehele architecturale ontwerp van het systeem minder ideaal maken, wat vervolgens van invloed kan zijn op hoe de software zal worden hergebruikt en onderhouden en zelfs de flexibiliteit ervan kan beperken.

C++ biedt ontwikkelaars de mogelijkheid om echt objectgeoriënteerde ontwerppatronen te implementeren, echte abstracties te ontwikkelen en ontwerppatronen te implementeren die niet alleen kunnen worden hergebruikt van de ene toepassing naar de andere, maar ook de flexibiliteit van de architectuur verbeteren. Hierdoor kan de software opnieuw worden gebruikt, wat op zijn beurt kan resulteren in een snellere productontwikkeling, kortere aanpassingstijden voor klantapplicaties en vele andere voordelen.

Reden #2:C++ is een evoluerende moderne taal

In de complexe en innovatieve ontwikkelomgeving van vandaag hebben ontwikkelaars niet alleen geavanceerde hardwareoplossingen nodig, maar ook geavanceerde software- en taaloplossingen. Dit betekent dat de talen die worden gebruikt om software te schrijven up-to-date moeten zijn om ontwikkelaars de nieuwste tools te bieden die nodig zijn om hun systemen te implementeren. De laatste update van de C-taal was in 2018, wat klinkt alsof deze onlangs is bijgewerkt. Als je echter naar de standaard kijkt, zijn er geen nieuwe functies toegevoegd en de enige wijzigingen waren het oplossen van problemen van de vorige release die in 2011 was! Ja, het duurde zeven jaar om een ​​herziene norm uit te brengen die de problemen van die laatste oploste!

Kijkend naar C++, is de normcommissie vastbesloten om de norm elke drie jaar te actualiseren! De volgende revisie wordt dit jaar, 2020, verwacht, waarbij de laatste versie in 2017 wordt uitgebracht. In tegenstelling tot C zijn de nieuwe revisies niet alleen bugfixes, maar voegen ze in plaats daarvan nieuwe functies en functionaliteit toe aan de taal, zodat deze actueel kan zijn en de tools die nodig zijn om te concurreren met andere talen zoals Python. De nieuwe standaarden verwijderen zelfs verouderde functionaliteit zoals trigraphs.

Reden #3:C++ is een rijkere taal

De meeste embedded software die ik voor microcontrollers heb geschreven, heeft tot misschien 3-4 jaar geleden de programmeertaal C gebruikt. C++ heeft altijd een rijkere set functies geboden dan C, maar het leek erop dat de compilers rond die tijd een punt hadden bereikt waarop de gecompileerde code gelijkwaardig of beter was. Dat was het moment waarop ik me in C++ begon te verdiepen en ontdekte hoe rijk de taal was geworden en hoeveel meer ik over de taal kon leren.

Met C++ kunnen ontwikkelaars profiteren van functies zoals:

  • Sjablonen – waarmee code onafhankelijk van een specifiek type kan worden geschreven
  • Dynamisch polymorfisme – hiermee kan een implementatie tijdens runtime worden toegewezen
  • Afhandeling van uitzonderingen – die fouten opvangen (schokkend voor elke C-ontwikkelaar)
  • Tijd statische if-statements compileren
  • Virtuele functies

Dit zijn slechts enkele voorbeelden en er is nog veel meer! Al deze tools maken het programmeren van een embedded systeem gemakkelijker.

Conclusie

C++ is een moderne en evoluerende taal waarin C statisch lijkt te zijn en veel langzamer evolueert. In feite wordt C de spreekwoordelijke dinosaurus in een tijd waarin programmeertalen snel evolueren. Omdat ontwikkelaars worden geconfronteerd met een steeds toenemende complexiteit binnen hun systemen, hebben ze een taal nodig die hen in staat stelt flexibel te zijn en hergebruik te maximaliseren. Veel klachten uit de "oude tijd" zijn gewoon niet meer van toepassing op C++, vooral gezien hoe efficiënt C++-compilers zijn geworden. Als er ooit een tijd was om over te stappen naar C++, dan is dit het misschien wel.

In de volgende artikelen gaan we dieper in op C++ en hoe ontwikkelaars het kunnen gebruiken om stuurprogramma's voor microcontrollers te ontwerpen en te bouwen.


Ingebed

  1. C++-operators
  2. C++ Opmerkingen
  3. Vijf tips om over te stappen van AOBRD naar ELD-compliance
  4. C++-overzicht
  5. C++-constanten/letters
  6. Operatoren in C++
  7. Getallen in C++
  8. C++-referenties
  9. C++-sjablonen
  10. C++ Preprocessor
  11. 5 redenen waarom uw industriële rem van Svenborg Brakes zou moeten komen