Hlavní navigace

Názor ke článku Kudy dál v kompilovaných jazycích? od Viky - Přílišná typová kontrola zdaleka neznamená, že to nebude...

  • 4. 12. 2007 0:50

    Viky (neregistrovaný)

    Přílišná typová kontrola zdaleka neznamená, že to nebude zprasené. Právě naopak - pokud ji nemáte, můžete si ji konvencemi ustanovit. Pokud ji máte a musíte s ní počítat při návrhu ať chcete nebo ne, může to naopak zprasit hodně věcí. Ne nadarmo se říká, že méně je někdy více. Když vím, že jedna proměnná může mít různé, avšak smysluplné a dobře definované významy, pokud je nahlížena pohledem různých datových typů, nevidím důvod, proč toho nevyužít. Ovšem jazyky se striktní typovou kontrolou si myslí, že jsou chytřejší, než autor programu. Ikdyž - dnes tomu tak často opravdu bývá.
    Pokud jde o goto - tak bych řekl, že vedle ukazatelů je to jedna z nejnebezpečnějších, ale zároveň nejúčinnějších zbraní. Pár dobře použitých goto v rámci funkce může kód významným způsobem současně zrychlit, zkrátit a zpřehlednit (ne, nezbláznil jsem se, skutečně říkám zpřehlednit).
    Jazyky se "slabšími vyjadřovacími schopnostmi" dle mého názoru především nepředpokládají, že programátor je vůl a že překladač ví nejlíp, co je pro mě dobré a že dokáže všechny možné eventuality podchytit nějakou svou na míru šitou konstrukcí. Místo aby mi umožnil použít goto, které by vedlo k vygenerování jedné strojové instrukce, jež by můj problém řešila nejjednodušším možným způsobem, tak mě "chytré jazyky" nutí splácávat dohromady různé podivné balasty, jejichž opodstatnělost překladač nikdy nedokáže posoudit a o jejichž výsledné efektivitě by se dalo dlouze polemizovat. A můžete si klidně říkat že je to lidová tvořivost a prasení, stejně moje goto bude mnohem efektivnější, než vaše try-catch nebo with nebo co to bylo za příklad a podobné serepetičky. Vždycky mě fascinuje, jak určitý typ lidí cítí potřebu vnucovat ostatním svá dogmata. Řekněte "goto se mi nelíbí, protože ho neumím efektivně používat" místo toho, že je to prasárna a lidová znouzecnost. Vždyť je to jak zatracovat dláto a ruční hoblik, protože je k dispozici protahovačka a frézka - to sice ano, ale ty dva prvně zmíněné nástroje, ač mnohem jednodušší, jsou nesrovnatelně univerzálnější. Mně nepřirostlo k srdci OOP a také netvrdím, že objektové programování je prasárna. Proti gustu žádný dišputát...
    Můj názor je takový, že jedině autor programu ví nejlépe, CO chce udělat a JAK to chce udělat. Jazyk ho v tom má podporovat a ne mu klást do cesty zbytečné překážky.

    Takže pokud jde o C - náhrada za něj není, není tedy důvod přemýšlet nad tím, že se ještě dnes tak masivně používá. Je třeba si přiznat, že C je dnes nejuniverzálnější a nejmocnější kompilovaný programovací jazyk ze všech. Stejně tak se dodnes ve vědeckotechnické sféře používá hojně FORTRAN, protože dodnes vyhovuje nárokům v daných oblastech nejlépe.
    Komu se to nelíbí nebo nad tím žasne, tak ať přijde s něčím lepším.

    P.S.: navíc si myslím, že se ještě dostatečně nerozlišuje mezi "lepičem kódu" a "programátorem" v původním smyslu slova. Pro lepiče, kterých je dnes tak 80%, je C skutečně nevhodné. Pro programátora je to téměř nenahraditelná věc.