Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
22
10Wprowadzenie
programiściwróżnymstopniuzaawansowaniwsztuceprogramowania,atakżezróżnym
doświadczeniemipoczuciemhumoru.Naprzykładjedenzmoichkolegów-programistów
zaczynałkażdyswójplikzkodemodwiersza.Wrezultacieprogramiścimusząnietylko
rozumieć,utrzymywaćinaprawiaćbłędywrzeczywistymoprogramowaniu,aleteżniekiedy
czytaćwiersze.Oto,cotworzyrozbieżnośćmiędzyładnymi,wypolerowanymifragmentami
kodupokazywanyminazajęciachatym,coniesieflsamożycie”.Takwięcjakieumiejętności
potrzebne,byodnieśćsukceswprogramowaniu?
Dlaczegonapisałemksiążkę,skoroistniejetakwielestroninternetowych,listdys-
kusyjnych,specjalnychgrupzainteresowań,przykładówkoduidostępnychonlineksiążek
poświęconychtworzeniuoprogramowania?Choćwszystkotoczęstostanowiwspaniałyiwy-
soceużyteczny,dostępnyodrękipunktodniesienia,niekiedytrudnojestodnaleźćmiejsca
lubzasoby,któreprowadząnaskrokpokrokuprzezprocesuczeniasię.Jeszczetrudniejjest
odnaleźćdobreprzykłady,któreucząkluczowychtechnikprogramowaniaijednocześnie
krótkie,praktyczne,azarazemkonkretne.Chciałbymwięcpodzielićsięzwamiefektami
synergiimiędzyteoretycznymiopisamipopartymiprzykładowymiprojektami,jakiezebra-
łemwtrakciemoichlatpracyjakoprogramistaiwykładowca.
Spójrzmyteraznakrótki,ogólnyzarystematykitejksiążki.C++jestjednymznaj-
bardziejwpływowych,najpowszechniejstosowanychinajbardziejfascynującychjęzyków
programowania.StworzonyzostałprzezBjarne3aStroustrupawlatach80.XXwieku.
Wciąguostatniejdekadywprowadzonownimfundamentalneiszerokozakrojonezmiany.
KorzenieC++tkwiąwjęzykachprogramowaniaCorazSimula(StroustrupB.,Evolving
alanguage2007)(StroustrupB.,TheC++ProgrammingLanguage2013).Jakzobaczymy,
podstawowekonstrukcje,takiejakinstrukcjeiwyrażenia,wprzypadkuCorazC++nie-
maltakiesame.PrzezlatakompilatoryC++byłyteżwstaniesprawnieradzićsobiezko-
demwC.Cjestjęzykiem,którywdużymstopniuwpłynąłnanaszątechnicznąrewolucję,
udowadniając,żejestkluczowymnarzędziemwtworzeniubardzowpływowegosystemu
operacyjnegoUnix,któregonastępcamiwszystkieinnesystemyoperacyjne,włączając
wtoWindowsa,LinuksaiAndroida.Zasprawąkompatybilnościzwielomaplatformami
orazniewielkiemurozmiarowikoduwynikowego,Cjestnadalużywanywsystemach
wbudowanych,urządzeniachFPGAorazkartachgraficznych(procesorachgraficznych,
ang.graphicsprocessingunit,wskrócieGPU)orazdoprzyspieszeniakodunaplatformach
równoległych.IstniejeteżmnóstwobiblioteknapisanychwC,którenadalwużyciu,
jaktezawierająceefektywnealgorytmynumeryczneczytesłużącedoprzetwarzania
obrazów,bywymienićtylkokilkaznich.Simulabyłteżjednymzpierwszychjęzyków
korzystającychzklasiprzyczyniłsiędopowstaniametodykprogramowaniazoriento-
wanegoobiektowo,costałosiękamieniemwęgielnymwiększościprzedsięwzięćtechno-
logicznych.Takwięc-parafrazując-C++odziedziczyłocośpoobutychjęzykach:po
Cpublicznie,apoSimuliprywatnie.
Choćistniejewielejęzykówprogramowania,nauczeniesięC++wartejestwysiłku,
szczególniewprzypadkutychosób,któreplanująpracęlubjużzaangażowanewjakiekol-
wiekprzedsięwzięciaprogramistyczne,wszczególnościtedotyczącesystemówiwydajności.
ByzrozumiećnajważniejszecechyC++,wystarczyprzeczytaćksiążkę;zagłębimysię
wniepóźniej.Wramachwprowadzeniaprzyjrzyjmysięjednakpokrótcetymnajbardziej
charakterystycznym.