#16unConference| C++ ekosustav jučer/danas/sutra | Powered by IT zajednica Rijeka

 In Articles

Autor: Deborah Brakus Kršul

🎤 PREDAVAČI:

👱🏻‍♂️Vedran Miletić

Vedran radi kao docent na Fakultetu informatike i digitalnih tehnologija, na kojem je voditelj Grupe za aplikacije i usluge na eksaskalarnoj istraživačkoj infrastrukturi. Bavi se znanstvenim istraživanjem u području računalne biokemije, razvija softver za superračunala te predaje kolegije iz područja IT infrastrukture i web aplikacija

👦🏻Marin Jurjević

Marin Jurjević radi kao softverski inženjer u GlobalLogicu, gdje razvija rješenja u programskom jeziku C++. Zanimaju ga ugradbeni softveri u automobilskoj i srodnim industrijama, a specifično razvoj višeplatformskih grafičkih korisničkih sučelja korištenjem okvira Qt.

🏢Domaćin: Fakultet informatike i digitalnih tehnologija Sveučilišta u Rijeci.

Nekadašnji Odjel za informatiku, a danas Fakultet informatike i digitalnih tehnologija Sveučilišta u Rijeci bavi se znanstvenim istraživanjima u područjima informatike i računarstva te održavanjem nastave informatičkih kolegija na svim razinama studija, za studente informatike i drugih studijskih programa. Nalazi se na adresi Radmile Matejčić 2 na Kampusu na Trsatu.

Uronit ćemo u fascinantni svijet C++ ekosustava

Kroz prošla desetljeća, C++ je ostao jedan od najvažnijih i najutjecajnijih programskih jezika u svijetu tehnologije. Svestran i moćan, C++ nastavlja privlačiti programere i oduševljavati entuzijaste. U ovom članku, uronit ćemo u fascinantni svijet C++ ekosustava, prateći njegovu evoluciju od skromnih početaka do trenutne popularnosti, te istražujući kako se može razvijati u budućnosti.

Od njegovih prvih dana kao proširenje jezika C, C++ je uvijek težio unapređivanju, postavljajući temelje za brojne inovativne tehnologije koje danas uzimamo zdravo za gotovo. Proučavajući prošlost ovog dinamičnog jezika, osvijetliti ćemo ključne trenutke u njegovom razvoju i istaknuti njegov doprinos u oblikovanju modernog softverskoga svijeta.

U današnje doba, C++ ekosustav je raznolikiji nego ikad prije, s brojnim alatima, bibliotekama i zajednicama koje pridonose njegovoj živosti. Ovaj članak će vas provesti kroz trenutačne trendove i resurse, ističući kako C++ ostaje relevantan u suvremenim programerskim izazovima.

I na kraju, zavirit ćemo u budućnost C++ ekosustava, razmatrajući kako se može prilagoditi novim tehnologijama i zahtjevima. Bilo da se radi o umjetnoj inteligenciji, Internetskim stvarima (IoT) ili igricama, C++ će i dalje imati ključnu ulogu u oblikovanju tehnološkog sutrašnjeg dana.

Zaronite s nama u ovu uzbudljivu priču o C++ ekosustavu, i zajedno istražimo kako je ovaj nevjerojatni programski jezik ostao relevantan i neophodan – jučer, danas i sutra.

Zašto je C++-programer uvijek zbunjen u supermarketu?

Zato što mu se sve čini kao niz referenci! by AI

Zanimljivi podaci o stanju ekosustava u 2021. godini

Iako je C++ stariji programski jezik, njegov ekosustav se i dalje razvija i prilagođava potrebama modernog doba. U 2021. godini, ekosustav je pokazao nekoliko zanimljivih trendova i podataka koji nam pomažu razumjeti stanje C++ programiranja:

Velik broj developera ne koristi alate za statičku analizu / oblikovanje koda

Unatoč dostupnosti alata za statičku analizu i oblikovanje koda, mnogi C++ programeri još uvijek ne koriste ove korisne resurse u svojim projektima. Statička analiza pomaže otkrivati greške u kodu prije nego što one uzrokuju probleme, dok oblikovanje koda osigurava konzistentan stil i čitljivost. Korištenje ovih alata može poboljšati kvalitetu koda i smanjiti vjerojatnost grešaka, ali ipak ostaju nedovoljno iskorištene u praksi.

Stara verzija standarda C++98/03 je i dalje u upotrebi (12% korisnika)

Iako su prošle gotovo dvije dekade otkako je C++98/03 standard uveden, 12% korisnika i dalje ga koristi u svojim projektima. Ovo upućuje na to da su neki programeri ili tvrtke spori u prihvaćanju novijih standarda, možda zbog kompatibilnosti sa starijim sustavima ili zbog nedostatka resursa za obuku i ažuriranje.

Nova verzija standarda C++20 se brzo prihvaća (18%), iako nije potpuno podržana u kompajlerima

Unatoč tome što nije potpuno podržana u svim kompajlerima, nova verzija standarda C++20 već je prihvaćena od strane 18% korisnika. Ovaj podatak pokazuje da C++ zajednica i dalje teži inovacijama i usvajanju novih tehnologija, čak i ako implementacija nije potpuna. Brzo prihvaćanje C++20 standarda naglašava želju developera da iskoriste poboljšanja i novosti koje nudi.

Stanje C++ ekosustava u 2021. godini pokazuje da je C++ i dalje relevantan i dinamičan programski jezik, s raznolikom zajednicom koja teži inovacijama i rješavanju izazova. Iako postoje područja na kojima se može poboljšati, poput korištenja alata za statičku analizu

FORTRAN II – Sljedeći korak u evoluciji programiranja

FORTRAN, skraćenica za “Formula Translation”, bio je prvi visoko-nivo programski jezik koji je razvio IBM u 1950-ima. FORTRAN II, nastavak ovog revolucionarnog jezika, donio je važne promjene i unapređenja koja su dodatno oblikovala budućnost programiranja. U ovom članku, istražit ćemo kronologiju razvoja FORTRAN-a II, njegove ključne značajke i utjecaj na računalnu industriju

FORTRAN II objavljen je 1958. godine, nekoliko godina nakon izvornog FORTRAN-a. Razvoj FORTRAN-a II uslijedio je zbog potrebe za poboljšanjem i proširenjem funkcionalnosti izvornog jezika. Neki od najvažnijih unapređenja uključuju:

1.1. Podrška za neovisne potprograme

FORTRAN II uveo je mogućnost korištenja neovisnih potprograma, što je omogućilo programerima da pišu i ponovno koriste kod u različitim dijelovima programa. Ovo je značajno poboljšalo modularnost koda i omogućilo programerima da pišu čišće i efikasnije programe.

1.2. Unaprijeđeni uvjetni skokovi

FORTRAN II donio je poboljšanje u upravljanju tokom izvršavanja programa, omogućujući programerima da koriste uvjetne skokove. Ovo je omogućilo složeniju kontrolu tijeka programa i veću fleksibilnost u pisanju koda.

1.3. Poboljšana obrada grešaka

U FORTRAN-u II, obrada grešaka postala je efikasnija, s poboljšanom dijagnostikom i prijavom grešaka. Ovo je omogućilo programerima da brže i lakše identificiraju i rješavaju probleme u svojim kodovima.

Utjecaj FORTRAN-a II na računalnu industriju

FORTRAN II imao je značajan utjecaj na računalnu industriju, a njegove inovacije postavile su temelje za mnoge kasnije programske jezike. Neki od najvažnijih utjecaja uključuju:

2.1. Razvoj visoko-nivo programskih jezika

FORTRAN II bio je preteča mnogim drugim visoko-nivo programskim jezicima koji su se razvili u kasnijim godinama. Njegove inovacije u modularnosti, uvjetnim skokovima i obradi grešaka pomogle su oblikovati budu

će programske jezike i postavile temelje za daljnji razvoj u području programiranja.

2.2. Unapređenje znanstvenog i tehničkog programiranja

FORTRAN II, kao i njegov prethodnik, bio je posebno usmjeren na znanstveno i tehničko programiranje. Unapređenja koja je donio omogućila su znanstvenicima i inženjerima da pišu složenije i efikasnije programe za rješavanje tehničkih problema. Ovo je ubrzalo razvoj na mnogim područjima znanosti i tehnologije, uključujući aeronautiku, meteorologiju, nuklearnu fiziku i mnoge druge.

FORTRAN II bio je ključni korak u evoluciji programskih jezika, donoseći važne inovacije i unapređenja koja su oblikovala budućnost programiranja. Njegov utjecaj na računalnu industriju, znanstveno i tehničko programiranje, kao i na razvoj alata i kompajlera, ne može se zanemariti. Iako su danas mnogi programski jezici napredniji od FORTRAN-a II, važno je priznati njegovu ulogu u stvaranju temelja na kojima su kasnije generacije programskih jezika izgrađene.

Zašto se programeri uvijek smiješe na posljednjoj zabavi prije godišnjeg odmora? Zato što znaju da će idućih nekoliko dana svi bugovi biti problem nekog drugog! by AI

Kronologija razvoja programskih jezika: C-asti C++ kakav se podučava na osnovama programiranja

Programski jezici C i C++ imaju bogatu povijest i predstavljaju temeljne alate u svijetu programiranja. Razvoj ovih jezika započeo je 1970-ih godina s nastankom jezika C, koji je kreirao Dennis Ritchie u laboratorijima Bell. C je brzo postao popularan zbog svoje efikasnosti i fleksibilnosti, što ga je učinilo izborom broj jedan za razvoj operativnih sustava, poput UNIX-a.

C++ je nastao 1980-ih godina kao proširenje jezika C, zahvaljujući radu Bjarne Stroustrupa. On je dodao objektno orijentirane značajke, što je rezultiralo većom modularnošću i ponovnom upotrebom koda. C++ je postao jedan od najvažnijih programskih jezika u industriji i koristi se za razvoj raznih aplikacija, od video igara do softvera za financijske usluge.

Na tečajevima osnova programiranja, studenti se često upoznaju s C i C++ jezicima jer pružaju čvrste temelje za razumijevanje drugih programskih jezika i koncepta. Učenjem C-a i C++-a, polaznici stječu vještine potrebne za rješavanje složenih problema, optimizaciju koda i razvoj robusnih softverskih rješenja.

Novosti u C++17

C++17 je donio značajna poboljšanja i nove značajke za ovaj popularni programski jezik. Nekoliko ključnih novosti u C++17 uključuje:

  1. If constexpr: Ova značajka omogućava kompajleru da odluči o izvršavanju određenog dijela koda na temelju konstantnog izraza u vrijeme kompilacije, čime se poboljšava performansa koda.
  2. Structured bindings: Ovaj koncept omogućava jednostavnije i čitljivije deklariranje i inicijalizaciju više varijabli iz složenih objekata, poput parova i tupleova.
  3. Uvođenje std::optional: Omogućava predstavljanje opcionalnih vrijednosti, što olakšava rad s potencijalno nedostajućim vrijednostima i smanjuje potrebu za posebnim pokazateljima ili sentinel vrijednostima.
  4. Parallel Algorithms: C++17 je uveo podršku za paralelnu obradu algoritama u standardnoj biblioteci, omogućavajući programerima da jednostavno iskoriste višestruke procesorske jezgre za ubrzanje izvođenja koda.
  5. Uvođenje std::filesystem: Ovaj modul pruža jednostavan i prenosiv način za rad s datotečnim sustavom, što olakšava upravljanje datotekama i mapama.

Ove novosti u C++17 pomažu u smanjenju složenosti koda, poboljšanju performansi i omogućavanju programerima da pišu čišći i efikasniji kod.

C++20 – Uzbudljive novosti u programskom jeziku

C++20 donosi niz inovacija koje će dodatno unaprijediti ovaj već snažan programski jezik. Evo nekoliko ključnih značajki koje C++20 uvodi:

  1. Koncepti: Ovaj dugoočekivani dodatak omogućava programerima da precizno definiraju zahtjeve za generičke tipove, poboljšavajući čitljivost i sigurnost koda.
  2. Ranges: Ranges pružaju novi način rada s sekvencama, omogućujući bolju kompoziciju algoritama i smanjenje potrebe za ručnim upravljanjem iteratorima.
  3. Korutine: C++20 uvodi podršku za korutine, asinkroni način izvođenja funkcija koji omogućava efikasniju upotrebu resursa i jednostavniju implementaciju asinkronih operacija.
  4. Lambde s pokazivačem na funkciju kao izrazom za inicijalizaciju: Ova značajka omogućava programerima da definiraju lambde izravno kao pokazivač na funkciju, čime se pojednostavljuje sintaksa.
  5. std::format: C++20 uvodi novi način formatiranja teksta, slično Pythonovom formatiranju, koji pruža sigurniju i fleksibilniju alternativu tradicionalnim C-ovim funkcijama za formatiranje, poput sprintf.
  6. Modularnost: C++20 donosi novi sustav modula koji omogućava bolju organizaciju koda, brže vrijeme kompilacije i smanjenje zagađenja prostora imena.

Ove uzbudljive novosti u C++20 čine ovaj programski jezik još snažnijim, pružajući programerima nove alate i tehnike za efikasniji i sigurniji razvoj softvera.

Softveri napisani u C++-u

Industrijska primjena: najveće firme IT industrije

  1. Google: C++ je jedan od glavnih programskih jezika u Googleu, gdje se koristi za razvoj ključnih proizvoda i infrastrukture, uključujući tražilicu, Chrome preglednik i TensorFlow, popularni stroj za učenje.
  2. Microsoft: C++ ima ključnu ulogu u razvoju Microsoftovih proizvoda i tehnologija, uključujući operativni sustav Windows, Office paket i Visual Studio razvojno okruženje.
  3. Facebook: C++ se koristi za razvoj i optimizaciju performansi visokih opterećenja na Facebookovim serverima i uslugama. Također se koristi za razvoj aplikacija kao što su Facebook Messenger i Instagram.
  4. Adobe: Mnogi popularni Adobe proizvodi, kao što su Photoshop, Illustrator i Premiere Pro, razvijeni su pomoću C++-a zbog njegove učinkovitosti i mogućnosti upravljanja resursima.
  5. Amazon: C++ se koristi u razvoju AWS (Amazon Web Services) usluga i infrastrukture, koje pružaju temelj za mnoge aplikacije i usluge u oblaku.

Qt – Snažan alat za razvoj korisničkih sučelja

Qt je popularan i svestran okvir za razvoj aplikacija koji se ističe u stvaranju privlačnih i funkcionalnih korisničkih sučelja (UI). Pisan u C++, Qt pruža brzinu i učinkovitost za razvoj aplikacija na različitim platformama, kao što su Windows, macOS, Linux, Android i iOS.

Qt nudi širok spektar alata i biblioteka, uključujući Qt Designer za jednostavno stvaranje grafičkih sučelja, Qt Widgets za izradu izvornih korisničkih sučelja te Qt Quick i QML za razvoj modernih, animiranih i responzivnih sučelja. Zahvaljujući signalima i utorima, Qt omogućuje jednostavnu komunikaciju između komponenti aplikacije, a podrška za međunarodnizaciju olakšava lokalizaciju aplikacija na razne jezike.

Uz sve te prednosti, Qt je postao ključan alat za mnoge programere širom svijeta, a njegova primjena seže od stolnih aplikacija do ugrađenih sustava i industrijskih kontrola.

U autoindustriji, Qt se koristi za razvoj različitih aplikacija i sustava koji poboljšavaju korisničko iskustvo i funkcionalnost vozila. Primjena Qt-a u autoindustriji:

  1. Infotainment sustavi: Qt je popularan izbor za razvoj infotainment sustava u vozilima, koji integriraju audio, video, navigaciju, povezivost i komunikaciju. Korištenjem Qt-a, proizvođači automobila mogu brzo razvijati privlačna, responzivna i jednostavna korisnička sučelja za svoje sustave.
  2. Digitalne instrument ploče: Qt se koristi za dizajn i implementaciju digitalnih instrument ploča koje zamjenjuju tradicionalne analogne instrumente. Ove ploče prikazuju informacije kao što su brzina, okretaji motora, potrošnja goriva i upozorenja na jednom centralnom ekranu.
  3. Sustavi za pomoć vozaču (ADAS): Qt se može koristiti za razvoj grafičkih sučelja za napredne sustave za pomoć vozaču, kao što su sustavi za upozorenje na promjenu trake, adaptivni tempomat i parkirna pomoć.
  4. Integracija pametnih telefona: Qt omogućava razvoj aplikacija i sustava za integraciju pametnih telefona s infotainment sustavima vozila, uključujući Apple CarPlay, Android Auto i MirrorLink.
  5. Ugrađeni sustavi: Uz Qt for Device Creation, proizvođači automobila mogu razvijati ugrađene aplikacije i sučelja za kontrolu raznih funkcija vozila, poput klima uređaja, sustava za osvjetljavanje i električnih prozora.

Qt pruža fleksibilnost i snažne alate za razvoj raznih aplikacija u autoindustriji, omogućavajući brži razvoj i lakšu integraciju s raznim hardverskim platformama.

Koji je omiljeni vic programera? “Jednom je bio čovjek koji je mislio da zna sve o programiranju. Kraj.” by AI

Budućnost programskih jezika i biblioteka, kao što su Rust, Go, Carbon, cppfront i Boost, vrlo je obećavajuća, s obzirom na to da se svijet softverskog razvoja neprestano mijenja i prilagođava novim izazovima.

Evo kratkog pregleda očekivanog razvoja tih tehnologija:

  1. Rust: Rust je siguran i brz programski jezik koji se usredotočuje na performanse i sigurnost. U budućnosti, Rust bi mogao postati popularniji u industriji, osobito u područjima kao što su ugrađeni sustavi, web razvoj i sustavi visokih performansi, gdje je sigurnost i upravljanje memorijom ključno.
  2. Go (Golang): Go je jednostavan i brz programski jezik razvijen u Googleu, namijenjen za razvoj konkurentnih i distribuiranih sustava. Budućnost Go-a uključuje širi prihvat u softverskoj industriji, posebno u područjima kao što su razvoj u oblaku, mikroservisi i kontejnerske tehnologije (poput Docker i Kubernetes).
  3. Carbon i cppfront: Carbon i cppfront su relativno nova tehnologija i još nisu široko prihvaćeni. Međutim, oni mogu ponuditi poboljšanja u pogledu sigurnosti i produktivnosti za C++ programere, te se mogu očekivati zanimljivi razvoji u budućnosti.
  4. Boost -> std library: Boost je kolekcija visokokvalitetnih biblioteka za C++ koje često služe kao inkubator za nove značajke u standardnoj C++ biblioteci. U budućnosti se može očekivati da će još više Boost biblioteka biti integrirano u standardnu C++ biblioteku, omogućujući programerima jednostavan pristup naprednim značajkama i funkcionalnostima.

Hoće li C++ umrijeti?

C++ je jedan od najvažnijih i najraširenijih programskih jezika, te je ključan u mnogim industrijama, kao što su igre, telekomunikacije, financije i autoindustrija. Iako se u posljednjih nekoliko godina pojavljuju novi programski jezici, poput Rusta i Go-a, koji nude neke prednosti u pogledu sigurnosti, jednostavnosti ili performansi, C++ i dalje ima brojne prednosti i široku bazu korisnika.

Jedan od razloga zašto je C++ toliko dugovječan jest činjenica da se standard C++ kontinuirano razvija i poboljšava. Novi standardi, poput C++11, C++14, C++17, C++20 i budući C++23, uvode nove značajke, poboljšanja performansi i sigurnosti, čineći jezik još snažnijim i privlačnijim za programere.

Dakle, iako je teško predvidjeti dugoročnu budućnost bilo kojeg programskog jezika, C++ vjerojatno neće “umrijeti” u skorije vrijeme. Umjesto toga, očekuje se da će se nastaviti razvijati i prilagođavati novim zahtjevima i izazovima u softverskom inženjeringu, zadržavajući svoju važnost u industriji.


Hvala Vam što ste odvojili svoje vrijeme za nas, ako ste zainteresirani za suradnju ili nam se samo želite pridružiti javite nam se:

🔗IT ZAJEDNICA RIJEKA:

📲 +385996768133,+385915056774;

⌨ info@itzajednicarijeka.com;

🔗 https://linktr.ee/itzajednicarijeka

Proizvodnja IT zajednica Rijeka 2023.

Recommended Posts

Leave a Comment

Kontaktirajte nas

We're not around right now. But you can send us an email and we'll get back to you, asap.

Not readable? Change text. captcha txt

Start typing and press Enter to search