VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:5/94
RoΦnφk:1994
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Sophisticated

Programovßnφ je Φinnost, jejφ₧ v²sledek je jen obtφ₧n∞ m∞°iteln². NapφÜe-li jeden programßtor za den deset °ßdek v n∞jakΘm vyÜÜφm programovacφm jazyku, a jin² jich zplodφ n∞kolik stovek, kdo z nich odvedl vφce prßce? Manußln∞ jist∞ ten druh² (musel vφce buÜit do klßves), ale pokud jde o funkci a u₧itnou hodnotu vzniklΘho programu?

Mnoho lidφ si p°φliÜ neuv∞domuje, ₧e programovßnφ v u₧Üφm slova smyslu je vlastn∞ jen jakΘsi p°episovßnφ n∞Φeho z jednΘ formy do druhΘ. Tedy do znaΦnΘ mφry jde o rutinnφ Φinnost, o kterΘ vtipßlkovΘ °φkajφ, ₧e by ji mohla zastßvat i cviΦenß opice. Tak zlΘ to zase nenφ, ale racionßlnφ jßdro to mß.

Chci-li napsat program, kter² mß n∞co smysluplnΘho d∞lat, musφm nejprve provΘst mnoho v∞cφ: p°edevÜφm rozmyslet si, co vlastn∞ mßm °eÜit, pochopit podstatu °eÜenΘho problΘmu a vÜech relevantnφch souvislostφ, vybrat Φi navrhnout jedno konkrΘtnφ °eÜenφ a pak sestavit konkrΘtnφ algoritmus, podle kterΘho je t°eba postupovat. P°itom mohu pou₧φvat r∙znΘ zp∙soby formßlnφho vyjßd°enφ Φi zßpisu sv²ch myÜlenek, postup∙ a rodφcφch se algoritm∙, ale v koneΦnΘ fßzi musφm p°φsluÜnΘ algoritmy vyjßd°it v takovΘ form∞, kterß bude srozumitelnß pro poΦφtaΦ.

V Φem pak ale spoΦφvß hlavnφ t∞₧iÜt∞ "slo₧itosti" celΘho °eÜenφ? Jakmile se jednou nauΦφm vhodn² programovacφ jazyk, pak ona slo₧itost jist∞ nebude v tom, jak vyjßd°it urΦit² algoritmus v tomto programovacφm jazyku. Hlavnφ t∞₧iÜt∞ slo₧itosti bude v p°φprav∞ onoho algoritmu.

Zp∙sob, jak²m je urΦit² algoritmus vyjßd°en v n∞jakΘm programovacφm jazyku, samoz°ejm∞ nenφ irrelevantnφ (nap°φklad se na n∞m dß hodn∞ "zkazit"). To podstatnΘ, podle Φeho by naprogramovanΘ algoritmy m∞ly b²t hodnoceny, je ale mφra, do jakΘ spl≥ujφ a °eÜφ po₧adavky svΘho zadßnφ. DalÜφm, ale spφÜe druhotn²m kritΘriem pak m∙₧e b²t efektivita. Toto druhΘ kritΘrium p°itom velmi ·zce souvisφ s celkovou propracovanostφ pou₧it²ch algoritm∙, originßlnostφ uplatn∞n²ch myÜlenek, invencφ °eÜitele a Φasto i nekonvenΦnostφ jeho p°φstupu k zadanΘmu ·kolu. Neboli s tφm, co "stojφ za" dan²m programem.

Jak ale vyjßd°it mφru takovΘto propracovanosti? V₧dy to bude p°edevÜφm subjektivnφ zßle₧itost toho, kdo program hodnotφ a kdo p°itom m∙₧e uplat≥ovat r∙znΘ pohledy, a p°iklßdat r∙zn²m aspekt∙m r∙znou d∙le₧itost.

V angliΦtin∞ p°itom existuje v₧it² termφn, kter² se v tΘto souvislosti Φasto pou₧φvß: sophisticated. ╪ekne-li se nap°φklad o n∞jakΘm programu, ₧e je to "a sophisticated piece of software", pak se tφm mφnφ skuteΦnost, ₧e za nφm stojφ n∞jakß hlubÜφ myÜlenka, propracovan² algoritmus, nekonvenΦnφ p°φstup Φi technicky nßpaditΘ a efektivnφ °eÜenφ. V ΦeÜtin∞ by podstatu v∞ci asi nejlΘpe vystihl p°φvlastek "vymakan²". Ale ten se do spisovn²ch text∙ (bez uvozovek a bez vhodnΘho kontextu) bohu₧el moc nehodφ. Proto asi nezbyde ne₧ hovo°it o p°φsluÜn²ch programech jako o propracovan²ch, nßpadit²ch, jdoucφch s dobou, vyu₧φvajφcφch modernφ °eÜenφ apod. V nejhorÜφm je pak mo₧nΘ nßsilφm poΦeÜtit anglick² originßl a hovo°it o sofistikovan²ch programech. Ale nejenom o programech - "vymakan²" m∙₧e b²t nap°φklad i hardware, stejn∞ tak jako spousta dalÜφch v∞cφ.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm