Či už píšeme programy v jazyku C++, C#, Java a iných jazykoch
založených na C (jedna prípustná syntax v PHP je podobná C, ale v PHP sa
neprogramuje), nie je problém prečítať kód napísaný v inom C-style
jazyku (i keď pochopenie je už ťažšie ). Prečo však bol jazyk C
pomenovaný týmto písmeno a nie iným?
Jazykom, ktorý mal na históriu programovacích jazykov veľmi veľký vplyv bol ALGOL (algorithmic language) z roku 1958. Populárnym sa stal v roku 1960 po vzniku jednoduchšej varianty ALGOL-60. Jazyk bol portovateľný, s nízkou abstrakciou hardware a vyvinutý pre písanie algoritmov. ALGOL-68 pridal do jazyka nové vlastnosti, ale zvýšil jeho komplexnosť a abstrakciu hardwaru.
Roku 1963 Compoter Lab of Cambridge University prišiel s jazykom CPL. CPL bol založený na ALGOL-e, znižoval abstrakciu HW, ale zachovala sa v ňom komplexnosť ALGOL-u. Martin Richards navrhol Basic CPL (BCPL), ktorý bol okresanou verziou CPL. Tento jazyk ešte zlepšil Ken Thompson z Bell Labs svojím B jazykom.
Jazyk B bol oveľa vhodnejší na systémové programovanie, jednoduchší a rýchlejší. Jeho nástupca, C, vyšiel z Bell Labs roku 1972. So zachovaním jednoduchosti priniesol nový jazyk vyššiu abstrakciu hardware ako jeho predchodca.Pôvodne určený jazyk pre UNIXové systémy sa stal univerzálne použiteľný programovací jazyk.
Samostatne od procedurálnych programovacích jazykov bol navrhnutý jazyk na tvorbu simulácií ? Simula, vyvinul sa však na univerzálny objektovo orientovaný jazyk. Priniesol hlavné koncepty OPP: triedy, dedičnosť, dynamické väzby.
Kombináciou C a Simula vznikol priamy nástupca C ? C++ (1983) s novými vlastnosťami ako šablóny alebo výnimky.
Petr Stříbný says:
Já si sebe moc nedokážu představit psát v ne-Céčkových jazycích. Mi se ten styl líbí a sedí mi. Když vidím dneska např. Ruby a spol. tak by mi chvilku trvalo, než bych kód rozluštil.
Sice mě pak ty menší rozdíly mezi C#, C++/C, nebo chybějící věci v PHP občas vytočí.. ale aspoň je na výběr.
zimmi says:
Velice poučné a zajímavé, ačkoliv v žádném podobném jazyku neprogramuju.
Jen by mě zajímalo, co si mám představit pod „abstrakciou“ hardware?
Jozef Izso says:
Abstrakcia HW: teraz cez cout vypisujem čo chcem a či to ide na konzolu, error log, TCP/IP listener, terminál… je mi jedno. Proste cez všeobecný stream robím s každým výstupom rovnako.
Bez abstrakcie treba pristupovať k danému prostriedku natívne: pri písaní do error logu si otvoriť súbor a začať písať. Pri termináli napr. sa pripojiť na COM port a vysielať text.
error414 says:
No me to vysvetlovali trochu lepsi.
Abstrakce je treba graficky ovladac, reknes mu nakresli na vystup ctverec. A on to udela.
Bez tohoto ovladace by si musel ovladat grafiku, praci s pameti atd.