Den første boka jeg kjøpte om programmering var en bok om C++.
Men det ble med en std::cout << "Hello World!" før jeg fant veien til språkets motsats; Visual Basic. For C++ er ikke akkurat noe nybegynnerspråk.
Selv for utviklere kan C++ virke litt mystisk - for hvem bruker egentlig Bjarne Stroustrup sitt språk fra 1985 i 2020? Til hva? Og hvordan?
kode24-timen fikk besøk av C++-utvikleren, foredragsholderen, Twitter-celebriteten og TurtleSec-sjefen Patricia Aas for å spørre!
I episoden snakker vi om hvordan hun lærte seg språket ved å først få seg en C++-jobb i Opera, hvordan hun aldri klarte å slutte å lage nettlesere og alt vi lurer på om språket hun bruker aller mest.
Vi anbefaler varmt å få med deg hele den morsomme og interessante praten, men under får du en oppsummering av de viktigste spørsmålene våre rundt C++.
- Som kvinne har det vært slitsomt å alltid måtte bevise at jeg kan det jeg driver med
Hva bruker man C++ til?
- C++ er veldig egna til å lage desktop-applikasjoner, forteller Patricia Aas i kode24-timen.
- Og det er egna til ting som er embedda, når du har svake chips som trenger veldig effektiv kode. Og generelt ting med høye ytelseskrav, som finans, high frequency trading og infrastruktur. For eksempel har Facebook og Google veldig mye C++ i infrastrukturen sin.
- Så: Når du har høye ytelseskrav, eller veldig dårlig hardware, så er det fort C++ det handler om, oppsummerer hun.
Selv bruker hun C++ både til jobben sin som utvikler og sikkerhetsekspert, hvor hun enten bygger sikre systemer eller prøver å bryte ned andres systemer, og til hobbyprosjektet sitt - en ny nettleser.
Hvem bør lære seg C++?
- Når folk spør meg hvilket programmeringsspråk de burde lære, så svarer jeg at de må finne ut hva de vil lage, og så finne ut hva det pleier å bli laget med. Så lærer du deg det, sier Aas i kode24-timen.
- Og hvem burde lære seg C++?
- De som synes lavnivå-ting er gøy, eller det å lage dingser, eller om du liker kompilatorer og sånne type ting.
- Men om min nevø på 11 år, som ikke kan programmere fra før, hadde sagt at han ville lære seg å lage dingser, så hadde jeg kanskje ikke tipsa han om å lære seg C++?
- Det er litt kontroversielt i C++-miljøet, men jeg er vel av den formeningen at man ikke burde lære C++ som sitt første programmeringsspråk, svarer Aas.
- Det er for vanskelig. Du burde naile konseptet programmering før du begynner med C++, for der er det nok av andre måter å drite seg ut på.
Slik styrer han akvariet sitt med XC
Hvordan bør man lære seg C++?
- Om du er interessert i å lære deg C++, har vi en veldig fin community på Discord: #include C++. Der har vi en learning-kanal, hvor du kan spørre om ting, tipser Aas.
- Der har vi masse kjempeflinke og utrolig berømte folk. Folk som underviser på univeristeter, skriver bøker og er med i standardiseringskomiteer - kremen av alle folk, fra hele verden.
- Det høres ut som et bra sted å få impostor syndrome!
- Neida, de er veldig hyggelige, og ingen skal være tøffe i trynet. Vi har masse moderatorer som passer på at alle er allrighte mot hverandre.
«Du skriver en tekstfil, også kompilerer du den.»
Hva trenger man for å kode i C++?
- I dag bruker jeg JetBrain sin Clion, som likner veldig på alle de andre JetBrain-IDE-ene. Men jeg har brukt mye rart - i begynnelsen brukte jeg Emacs, så QT Creator, forteller Patricia Aas i kode24-timen.
- Selv bytter jeg mellom Windows og Linux, også har jeg tenkt å få meg Mac, så da blir det vel det, også.
- Du skriver en tekstfil, også kompilerer du den. Så det meste du trenger kommer egentlig med operativsystemet ditt. På Mac og Linux har du en kompilator i shell-et ditt, Clang, mens du på Windows kan laste ned Visual Studio.
React Native for Windows i C++
Må man bruke biblioteker for å få noe ut av C++?
- C++ leveres med et standardbibliotek som likner på Java sitt, bare litt mindre, forklarer Aas.
- Men det er på konsollapplikasjons-nivå, akkurat som i Java eller Python.
- Så du må dra inn ekstra biblioteker om du vil ha noe GUI på skjermen din. Selv bruker jeg norske QT, som er kryssplattform GUI-bibliotek.
«Det meste av C-kode er også akseptabel i C++.»
Har C++ noe med C og C# å gjøre?
- Den første versjonen av C++ ble kalt C With Classes, som rett og slett var masse makroer for å prøve å emulere objektorientering i C. Så utvikla det seg til sitt eget språk, forklarer Patricia Aas.
- Det meste av C-kode er også akseptabel i C++, men ikke alt - det er noen forskjeller. C er et fryktelig lite språk, fullt av skarpe kanter, mens C++ er mye større. Det inneholder også skarpe kanter, men ikke bare skarpe kanter.
- Apropos skarp, har C++ noe med C# å gjøre?
Er det sånn at C++-utviklere ser litt ned på JavaScript?
Patricia Aas er motstander av å identifisere seg for mye med språket man bruker, og sier hun bruker språket som løser oppgaven best. Ofte er det helt andre ting enn C++, for eksempel JavaScript.
- Så det er ikke sånn at C++-utviklere hever seg over JavaScript?
- Hehe, nei. Om du er er dritgod i JavaScript kan du bli en god C++-programmerer, for de som veldig gode i JavaScript er vant til å få mye juling. Så de kan joine oss, vi er også vant til å få mye juling.
Nå har Shortcut kutta ut Objective-C
- Du sa i et foredrag at C++ og JavaScript nærmer seg hverandre?
- Det er mange språkendringer hvor vi ser at C++ blir mer funksjonelt, og mange bevegelser i JavaScript hvor språket later som det er objektorientert. Så de nærmer seg hverandre, ja, sier Aas.
- En kjendis i C++-miljøet sa at C++ er et språk hvor du kan kompilere og kjøre et program, som likevel ikke er et gyldig program i henhold til språket. C++ er helt blåst, på samme måte som JavaScript ofte er helt blåst, humrer Aas.
- Hvordan sammenlikner C++-miljøet seg med JavaScript-miljøet, synes du?
- Vi er kanskje så himla kule. Og de tingene vi synes folk er kule for, er ikke de tingene andre folk synes de er kule for. Du kan være dritberømt i C++-miljøet, uten at noen utenfor har hørt om deg. Så det er en ganske humble gjeng.
Lager sin egen open-source nettleser, med fokus på PWA-er
- Nettlesere pleide å være mye mer forskjellige, men nå er de utrolig like, nesten alle sammen, mener utvikler Patricia Aas.