C rühma keelte areng ja tänapäev

C++ on levinuim programmeerimiskeel, mis on laialdaselt kasutuses süsteemiarenduses, mängumootorites ja mikrokontrollerite programmeerimisel. Võimalus optimeerida koodi mälukasutust ja riistvaraga ühilduvust pakub teiste sarnaste keeltega oluliselt laiemaid võimalusi kiiruse, jõudluse ning programmeerija seisukohast olulise abstraktsioonitaseme saavutamiseks.

C rühma keelte areng ja tänapäev

C, C++ ja C# on kolm olulist ja omavahel seotud programmeerimiskeelt, millest igaühel on oma eripära ja kasutusvaldkonnad.

 

Keele kasutussevõtt ja ajalugu

 

KeelArendajaKasutussevõtu aegMärkused
CDennis Ritchie (Bell Labs)Umbes 1972Loodi operatsioonisüsteemi UNIX arendamiseks. Sai mitteametlikuks standardiks 1978. aastal (K&R C). Esimene ametlik standard (ANSI C) võeti vastu 1989. aastal.
C++Bjarne StroustrupUmbes 1980ndate algusLoodi C keele laiendusena, lisades objektorienteeritud programmeerimise (OOP) kontseptsioone (klassid, pärimine jne). Algselt kutsuti "C with Classes".
C# (C Sharp)Microsoft (peamiselt Anders Hejlsberg)Umbes 2000Loodi Microsofti .NET platvormi osana, ühendades C++ arvutusvõimsuse Java ja Visual Basicu programmeerimislihtsusega.

 

Peamised kasutusvaldkonnad

 

C-rühma keeled on laialdaselt kasutusel erinevates valdkondades, kus on oluline jõudlus, stabiilsus ja riistvaralähedus.

  • C:

    • Operatsioonisüsteemid (nt Linuxi ja Windowsi tuumad)

    • Manustatud süsteemid ja riistvaraline programmeerimine (nt mikrokontrollerid)

    • Komponendid ja teegid (paljud suure kiirusega teegid on kirjutatud C-s)

  • C++:

    • Mänguarendus (suured ja keerukad mängumootorid nõuavad kiirust ja madalat latentsust)

    • Kõrge jõudlusega rakendused (nt kauplemissüsteemid, teaduslik simulatsioon)

    • Süsteemitarkvara (brauserid, andmebaasisüsteemid, operatsioonisüsteemide osad)

    • Riistvaradraiverid ja püsivara (firmware)

  • C#:

    • Ettevõtterakendused (.NET platvormil, enamasti Windowsis)

    • Veebiarendus (ASP.NET)

    • Lauaarvutirakendused (Windows Forms, WPF)

    • Mänguarendus (eriti Unity mängumootoris)

    • Pilverakendused (Azure'i ökosüsteemis)


 

Programmeerimiskeelte omavaheline seos

 

Need kolm keelt moodustavad arenguahela, kus iga järgmine keel laiendab või lihtsustab oma eelkäija kontseptsioone:

  1. C on ahela alus. See on protseduraalne keel, mis annab programmeerijale otsese ligipääsu mälu ja riistvara haldamisele, kuid nõuab suurt tähelepanu (nt mälu käsitsi haldamine).

  2. C++ on C laiendus. See lisas C keelele objektorienteeritud programmeerimise (OOP) ja generatiivse programmeerimise (templates) võimalused, muutes keerukate rakenduste haldamise lihtsamaks. C++ säilitab C riistvaraläheduse ja jõudluse. See on kompileeritav keel.

  3. C# on inspireeritud nii C++-st kui ka Javast. Süntaksilt sarnaneb see C++-ga ("C-perekond"), kuid erinevalt C-st ja C++-st töötab C# peamiselt virtuaalmasinas (.NET Runtime / CLR). See pakub automaatset mäluhaldust (Garbage Collection) ja muid "turvalisemaid" ja mugavamaid arendusvõimalusi (nt eemaldab C++ keerulised mälunäitajad), muutes selle arendaja jaoks lihtsamaks ja vähem veaohtlikuks, kuigi see toimub sageli jõudluse arvelt (võrreldes C/C++).

Lühidalt: C++ on C-le OOP-i lisamine ja C# on C++-st tuletatud, mäluhaldusega ja .NET-platvormi külge seotud keel.


 

C-rühma keelte tänapäevane kasutus ja tulevikuarengud

 

 

Tänapäevane kasutus (Kõige rohkem)

 

C-rühma keeled domineerivad valdkondades, kus jõudlus ja efektiivsus on kriitilise tähtsusega:

  • Süsteemikood ja infrastruktuur: Operatsioonisüsteemide tuumad, draiverid, virtuaalmasinad (JVM, Pythoni interpretaator jne) – suuresti C ja C++.

  • Kõrge jõudlusega arvutamine: Mängumootorid, 3D graafika, teaduslikud simulatsioonid – peamiselt C++.

  • .NET ökosüsteem: Ettevõtte rakendused, pilveteenused ja Unity mänguarendus – peamiselt C#.

 

Tulevikuarengud

 

C-rühma keeled jäävad veel pikaks ajaks asendamatuks, kuid nende areng keskendub peamiselt:

  1. Turvalisus ja Töökindlus (Eriti C/C++): Arendatakse uusi standardeid (C++23, C23) ja arendustööriistu, mis aitavad programmeerijatel vältida C-le ja C++-le omaseid mäluturvalisuse vigu (nt puhvri ületäitumine). Uus keel Rust on tõusev konkurent, pakkudes sarnast jõudlust, kuid sisseehitatud mäluturvalisust.

  2. Multitegumtöö ja Paralleelsus: C++ areneb pidevalt, lisades paremaid keeleomadusi paralleelse ja asünkroonse programmeerimise haldamiseks, et kasutada ära kaasaegsete protsessorite mitmetuumalisust.

  3. Cross-Platform (C#): C# ja .NET ökosüsteem on muutunud avatud lähtekoodiga ja toetavad nüüd ametlikult Linuxi, macOS-i ja mobiiliplatvorme (Xamarin/MAUI). See suurendab C# levikut väljaspool traditsioonilist Windowsi.

  4. Integreerumine riistvaraga ja AI/ML: Nii C++ kui ka C on olulised masinõppe (ML) ja tehisintellekti (AI) teekide aluskihtides (nt TensorFlow, PyTorch), kus jõudlus on eluliselt tähtis.

C rühma keelte areng ja tänapäev

Monteeri lihtsalt ja kiiresti

Riistvara montaa¾ on jaotatud etappideks ja toetatud õppevideodega. Vaata lähemalt.

 

Tarkvaratugi

Loe riistvaralist portide lugemist ja muutujate defineerimist toetava tarkvarateegi kohta