Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Nudou jsi opuch?
Navštiv Lopuch!

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: dcyutos
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 22.10.2007 22:19  674
Bohužel termín "generické programování" je v dnešní době poněkud zamlžen, zejména se smíchal s parametrizací typy (tj. šablonami). Proto budu raději používat "generické programování dle A. S.", tj. tak ja ho definuje A. Stepanov. A "generické programování dle A. S." == STL. A to je to, co já vyznávám.

Tohle je naprostá blbost. Lehká interpretace zní: Protože neumím genericky programovat, raději používám STL dle A.S., což mi zaručuje (jakýsi certifikat), že genericky programuji.

Jenomže generické programování v původním slova smyslu nemá s šablonama nic společného (resp. je jenom používá pro implementaci), je to způsob návrhu programu založený na maximální možné abstrakci algoritmů, do značné míry antagonický k objektové analýze a návrhu. Z toho plyne tvůj pocit, že je STL špatně navrženo. Ve skutečnosti je STL výborně navržená věc, ale vycházející z principů, které tobě zjevně nevyhovují (to je v pořádku, mě zase nevyhovuje třeba funkcionální programování).
Lehká interpretace: Říkáš, že se pletu, že tomu vlastně nerozumím, protože si myslím, že generické programování jsou templaty. A vyzdvyhuješ STL, kterému taky vlastně nerozumíš, ale jakýsi mesiáš A.S. ti řekl, ře to je generické programování. Následně templaty přirovnáš k funkcionálnímu programování. he?...
bredy 22.10.2007 22:11  673
huhTo si dělej co chceš. Já se jen ohradil proti slově generický. Vkládal jsi mi do úst, že když nepoužívám STL, neprogramuji genericky. Což není pravda a tomuto nařčení se bráním.

Když se někdo vzhlídne v jednom vzoru, je to jeho věc. Ale měl by si uvědomit, že zeměkoule nekončí plotem kolem výběhu.
huh huh 22.10.2007 17:30  672

Bredy [670]:
Ale "Základní myšlenkou, která se skrývá za pojmem generické
programování, je rozdělení kódu programu na algoritmus a datové typy
takovým způsobem, aby bylo možné zápis kódu algoritmu chápat jako
obecný, bez ohledu nad jakými datovými typy pracuje. Konkrétní kód
algoritmu se z něj stává dosazením datového typu." se naprosto vztahuje i na programovani dle S. Termin genericky se v souvislosti s
prog. dle S. pouziva naprosto bezne, ale klidne se mu v tomto foru
vyhnu.
bredy 22.10.2007 15:47  670
huh: Aha, tak tomu prosím neříkej "generický" a nehádej se o tenhle termín. Já programování dle Stepanova nemusím, tím se ale nepovažuji za méněceného.



Základní myšlenkou, která se skrývá za pojmem generické programování, je rozdělení kódu programu na algoritmus a datové typy takovým způsobem, aby bylo možné zápis kódu algoritmu chápat jako obecný, bez ohledu nad jakými datovými typy pracuje. Konkrétní kód algoritmu se z něj stává dosazením datového typu.

U kompilovaných jazyků dochází k rozvinutí kódu v době překladu. Typickým příkladem jazyka, který podporuje tuto formu generického programování je jazyk C++. Mechanismem, který zde generické programování umožňuje, jsou takzvané šablony (templates).

huh huh 22.10.2007 14:18  669
Bredy [667]: Ale no ták, snad nemusím bejt tak polopatickej. Já fakt už nevím, jak ti vysvětlit, že pod tím termínem chápu něco úplně jiného než ty. Ale klidně to slovo "generický" vynechám a budu tomu říkat jenom "programování dle Stepanova". A STL je vynikající příklad realizace knihovny podle tohoto přístupu. A ne Bredy [668] s tím nic společného nemá, to je standardní objektový návrh realizovaný pomocí šablon (chceš-li, tedy generický).
bredy 22.10.2007 13:49  668
Mimochodem, tohle (Možnosti generického pole) těžko uděláš v STL. Přesto myslíš si, že to nepatří mezi generické programování

(A co pak třeba takový generický funktor, genericky pointer nebo tuples, he?)
bredy 22.10.2007 13:15  667
huhAle houby STL je zkratka Standard Template Library. "Standardni knihovna šablon". To ti zase nějaký matla narval nějaké bláboly do hlavy. Nesmíš poslouchat kdejakého ňoumu, i když má známé jméno.

STL je význačná zejména tím, že je jaksi standarizovaná. Ovšem, jestli to byl dobrý počin si nejsem jistej. Na světě existuje spousty jiných knihoven, které by měly ambice nahradit STL. Zkus třeba Boost
huh huh 22.10.2007 10:08  666
Bredy [665]: Bohužel termín "generické programování" je v dnešní době poněkud zamlžen, zejména se smíchal s parametrizací typy (tj. šablonami). Proto budu raději používat "generické programování dle A. S.", tj. tak ja ho definuje A. Stepanov. A "generické programování dle A. S." == STL. A to je to, co já vyznávám.
bredy 22.10.2007 09:17  665
BredyVycházíš z mylného předpokladu že STL == generické programování. Genericky lze programovat bez STL. Naopak si myslím, že STL je špatný příklad generického programování.

Jak říkám, měl bys zkusit ten druhý level.
huh huh 20.10.2007 11:24  664
Bredy [663]: Jenomže generické programování v původním slova smyslu nemá s šablonama nic společného (resp. je jenom používá pro implementaci), je to způsob návrhu programu založený na maximální možné abstrakci algoritmů, do značné míry antagonický k objektové analýze a návrhu. Z toho plyne tvůj pocit, že je STL špatně navrženo. Ve skutečnosti je STL výborně navržená věc, ale vycházející z principů, které tobě zjevně nevyhovují (to je v pořádku, mě zase nevyhovuje třeba funkcionální programování).
bredy 19.10.2007 23:10  663
huhOd něho jsem něco četl (Alexandresca). Ale nevšiml jsem si, že by tam měl něco o STL. Jenom aby nedošlo k informačnímu šumu. STL je jen špatně navržená knihovna, jenž má využívat generické programování. Samotné psaní pomocí šablon nekritizuju. Jen kritizuju způsob, jak je STL navrženo co hodnocení struktury programu a použitelnosti. jinak něco jako STL jsem schopen napsat na zelené louce za několik týdnů, ještě lepší.
huh huh 19.10.2007 10:30  662
To ne, ja jsem vyznavac Stepanovova uceni (obrady spojene s lidskymi obetmi poradam kazdy ctvrtek vecer na Olsanskych hrbitovech), Alexandrescu a spol. jsou pro me odrodilci :-)
bredy 19.10.2007 09:07  661
huhNo to já jsem ještě větší fanda generického programování. Právě proto STL kritizuju. Možná bys měl upgrateovat na druhý level :-)
huh huh 19.10.2007 01:02  660
STL je naprosto geniální. Já jsem velkej fanda generického programování.
bredy 18.10.2007 23:54  659
machTen dokument psal kdosi kdo má opravdu okolo sebe velmi neschopné programátory, skoro bych řekl prasata. Takový výčet prohřešků proti jakémukoliv stylu jsem ještě neviděl. Ano, je pravda, to všechno v C++ jde. Ale o tom to je právě ta svoboda.

V něčem bych s autorem souhlasil a to je kritika STL. Tahle knihovna je bohužel špatná už od začátku. Vůbec by neměla být ve standardu C++. Naštěstí není povinná.

Na druhou stranu nesouhlasím s tvrzením, že program se píše jednou a čte mnohokrát. Správně napsaný program se píše jednou a už jej nikdy nikdo nečte. To mám vyzkoušený. Vhodné okomentování pak usnadňuje čtení při hledání chyb.

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt