User Tools

Site Tools

Pozice » O projektu » Motivace 
cs:about:motivation

Motivace projektu

Hlavním důvodem pro založení tohoto projektu byla nespokojenost se současným stavem. Velká roztříštěnost používaných řešení bez jednotného standardu ztěžuje programátorům práci a zpomaluje vývoj informačních technologií. Současně také nejsou formáty schopny pokrýt širší požadavky na výkon či interoperabilitu. Nic také nenasvědčovalo tomu, že by se situace měla v dohledné době zlepšit. S rostoucí složitostí a rozsahem softwarových produktů se také zdá čím dál více vhodnější používat co nejformálnější přístupy, jako například zavedením abstrakce, verifikace definic, či rozdělení protokolu na datovou a prezentační vrstvu.

Nespokojenost s aktuálním stavem

Praktické použití soudobých počítačových formátů je provázeno řadou problémů. Aplikace musejí zpracovávat mnoho různých formátů, otevírat soubory starších verzí a provádět konverze, navíc je podpora formátů většinou statická a vestavěná do jednotlivých aplikací či určena pro specifickou platformu. Chyby či úspory při návrhu formátu se pak často projeví zkrácením životnosti a mnohem vyššími náklady při pozdějších opravách.

Nevýhody binárních řešení

Soudobá binární řešení jsou většinou určeny na omezené konkrétní použití a mnohá řešení si firmy chrání jako vlastnictví, či je používají jako techniku konkurenčního boje (vendor lock-in). Některé další nevýhody jsou následující:

  • Optimalizace pro konkrétní platformu/účel - Formáty jsou často specializovány pro použití na určité rodině počítačů, či přesnému účelu. Řeší se zde délka slova, pořadí podslov (endianita) a kódování reálných čísel a dalších typů. Konkrétní řešení je pak nutné převádět do jiných tvarů dle potřeby
  • Omezené rozsahy hodnot - Často jsou zde použita kódování na pevné rozsahu hodnot a to i v případě, že daná hodnota má potenciál tento rozsah překonat
  • Žádná, nebo omezená rozšiřitelnost - Formáty málokdy umožňují přidávat další bloky z jiných formátů, často ani neumožňují přidávat další bloky či rozšiřovat stávající při pozdějších opravách
  • Nepřesná, nebo žádná specifikace - často není dostupná specifikace, nebo její popis je neúplný nebo umožňuje více interpretací
  • Nejednotnost - stejná data jsou v různých formátech kódovány různě
  • Omezená podpora kompatibility - podpora formátů je vestavěna do aplikace a není možné ji měnit

Jako příklady lépe řešených binárních formátů lze uvést například IFF/RIFF (PNG, AVI), Matroska, či ASN.1.

Nevýhody textových formátů

Příkladem jiného řešení, je použití textových formátů s pevnými značkami pro definici struktur, například tzv. plain textu, či XML. Značkovací jazyky jsou široce nasazovány na webu a jejich popularita dále stoupá. Výhodou je snadná rozšiřitelnost, dobrá čitelnost, teoretická neomezenost rozsahu číselných a řetězcových hodnot, podpora mnoha světových jazyků a další. Textový tvar také nutí firmy zveřejňovat dokumenty ve stejném tvaru, v jakém je vyvíjí a to ztěžuje vývoj nedokumentovaných formátů. Díky jednotné vnitřní struktuře a existenci implementací pro většinu široce používaných programovacích jazyků, mají tyto formáty širokou podporu a jsou dobrou inspirací hledaného řešení. Díky nim se také ukazuje, že dnes už není potřeba tolik dbát na úspornost, tedy paměťovou a výpočetní efektivitu a je možné se zaměřit na abstrakci a reprezentaci meta informací. Mezi nevýhody patří:

  • Vyšší nároky na výkon - Zpracování textu a jeho značkování vyžaduje procházení delších úseků a vyžaduje více pomocné paměti k hledání značek
  • Vyšší nároky na místo - Například textová reprezentace číselných hodnot je vzhledem k přenášené hodnotě velmi neefektivní
  • Závislost na použitém jazyce - textový soubor je možné číst pouze pokud známe použitý jazyk
  • Omezená životnost - jelikož se použité jazyky v čase mění, tyto formáty zastarávají (většinou v řádech desítek let)
  • Problematické obalení binárních dat - do textu je obtížné zahrnovat binární data, čímž se ztrácí univerzálnost. Techniky typu Base64 se nejeví být vhodným řešením.

Další výhrady je možné najít například v dokumentech vztahujících se k iniciativě Binary XML.

Potenciální přínos

Snahou tohoto projektu je vyřešit co nejvíce současných problémů a umožnit lepší rozvoj informačních technologií. Projekt by měl být optimálně v každém kroku hledat co nejlepší kompromis k základním požadavkům. Výsledný produkt by tak měl přinést výhody jak běžnému uživateli, tak vývojářům. K dosažení maximálního přiblížení k dokonalému řešení by mělo být možné na vybrané kroky projektu aplikovat formální metody.

Přínos uživatelům

Projekt by chtěl pro uživatele dosáhnout takové situace, že práce s dokumenty bude bezproblémová a uživatelé budou moci bez problémů otevírat i starší dokumenty, které budou automaticky dle potřeby převáděny na nové verze transparentně bez nutnosti zásahu uživatele. Dokumenty budou vzájemně propojeny a dle potřeby se budou z internetu stahovat další potřebné knihovny, či převodní skripty. Dokumenty nebudou vázány na konkrétní jazyk, takže pro práci s nimi nebude nutné se učit cizí jazyky, a to ani na úrovni hlubšího průzkumu dokumentu. K dispozici by měly být, např. jako součást operačního systému, nástroje pro ověřování, šifrování a případnou opravu poškozených dokumentů, stejně jako pro úpravu a převody. Dokument by tedy měl být přenositelný do různých národních prostředí, zahrnující transparentní převody měrných jednotek, měn a další národních specifik. Celkově by projekt měl umožnit běžnému uživateli dlouhodobě bez problémů využívat nové i starší funkce programů, umožnit volbu mezi řadou konkurenčních produktů a zajistit, že se může spolehnout na to, že s jeho dokumenty budou moci pracovat i lidé s počítači a programy od jiných firem a to i v daleké budoucnosti.

Přínos programátorům

Z programátorského hlediska nepřináší tento projekt žádné zásadní inovace, ani nevylučuje používání současných technologií. Chce však přinést výhody především díky jednotnému přístupu k datům a metadatům s dlouhodobě neměnným tvarem založeným na pevných matematických základech. To by mělo programátorům usnadnit zpracovávat dokumenty v tomto protokolu, vytvářet nové formáty pro realizaci dat s možností široké znovupoužitelnosti v dalších formátech a mít přitom přehled o již existujících specifikacích. Pomocí dostupných nástrojů by mělo být možné zobrazit strukturu dokumentu v člověkem přijatelně čitelné a pochopitelné formě s možností přidání významu dat. Použití protokolu by také nemělo vést k neúměrně vysokým nárokům na výpočetní výkon ani kapacitu paměti. Také by mělo být snadné implementovat skripty pro kompatibilitu a propojování více formátů, případně formáty používat pro platformně nezávislá rozhraní a umožnit tak vytváření komplexnějších aplikací. Výsledný protokol by tak měl usnadnit vzájemnou komunikaci mezi počítači, umožnit lepší organizaci dat na datových médiích a stát se základem dalších pokročilejších projektů, jako např. multi-paradigmatického programovacího jazyka s volitelnou syntaxí pro vyšší abstrakci, verifikaci a výkonnější kompilaci.

cs/about/motivation.txt · Last modified: 2010/04/07 21:38 by admin