Maturitní téma: Software (základní pojmy, skupiny, způsoby distribuce, právní aspekty)
Základní pojmy Software Pojmem software označujeme tu funkční část počítače, která je na rozdíl od hardwaru nehmatatelná. Není sice hmotná, ale zato velmi podstatná. Samotný počítač, tedy tištěné spoje, obvody, rezistory a magnetické plotny nejsou k ničemu, když nic nedělají. Něco dělat začínají až na základě instrukcí, a software není právě nic jiného, než příkazy, instrukce a data, která ty pevné součástky uvedou do činnosti. Software můžeme rozdělit do tří základních skupin. Systémové a servisní, programovací jazyky a aplikační software (rozdělení viz. níže). Tyto skupiny tvoří postupným vrstvením i prolínáním tzv. interface, neboli rozhraní mezi uživatelem (člověk) a počítačem (stroj). Systémové a servisní programy: Tvoří úplný základ celého interface. Komunikuje přímo s hardwarovými prostředky. Udává příkazy procesoru a ten na základě příkazových tabulek rozhoduje o dalších sub-krocích požadovaného procesu. Všechny instrukce jsou většinou směřovány nejdříve CPU a pak dále po sběrnici. Do této skupiny patří také drivery (ovladače) všech skupin hardwaru. Jde o další sady instrukcí a adres používané k ovládání daného kusu hardwaru.
Přehled skupin aplikačního softwaru: Software, programy můžeme rozdělit do několika základních skupin podle jejich funkce a typu dat se kterými pracují. Samotných druhů programů je samozřejmě mnohem víc, je jich tolik, kolik jich vyžadují různé obory lidské činnosti. Najdeme celou škálu programů, které se rozdělení do základních skupin zcela vymykají, jako například programy ovládající různá robotická zařízení, pomůcky pro image-makery v módních salónech až po programy využívané policií či armádou (např. ovládání složitých zbrojních systémů). Textové editory (textové procesory) Možná nejrozšířenější nástroj pro PC. V omezené podobě je implementován již v operačním systému. Jedná se o nástroj určený k vytváření a manipulaci s textem (formátování, základy sazby), který jako minimum dovoluje napsat text jako na psacím stroji s tou výhodou, že výsledná podoba nemusí být finální. Dopustíme-li se v textovém editoru chyb, není žádný problém chybné písmeno, slovo, či celý odstavec jednoduše vymazat a nahradit novým. To je však jen základ. Již napsaný text můžeme dle typu editoru různě měnit a upravovat tak, aby byla výsledná podoba dobře čitelná. Například můžeme měnit velikost a typ fontu, druhy zalamování a textové sloupce, vkládat tabulky, obrázky a zvýrazňující symboly. Drahé a kvalitní editory dovolují základní DTP (níže). Mezi nejznámější a nejrozšířenější textový editor patří MS Word ve verzích 98, 2000, XP poslední 2003. Program Word pracuje se svým vlastním datovým typem .doc. Jako alternativa je přímo ve Windows přítomen Wordpad (zápisník), jednoduchý nástroj pro práci s .txt soubory. Mezi oblíbené freeware (níže) programy patří součást balíku Open-Office
DTP programy (sázecí program) DTP programy jsou textovým editorům příbuzné, ale dělají trochu jiný kousek práce. DTP již nevytvářejí žádný text, ale pracují s již vytvořeným a pod vedením šikovného člověka vytvářejí finální podobu všech knih, časopisů, novin, letáků… atd. Noviny tedy dnes vznikají tak, že redaktoři vytvoří ve svých textových editorech článek, či příspěvek, fotografové dodají fotky, redakční grafikové ilustrační obrázky a grafy a vše se předá DTP oddělení, kde se vše složí tak, aby výsledná podoba lahodila oku, noviny se dobře prodávali a dali se i dobře číst. DTP dokáže časopis zpřehlednit, ale taky dokáže případnému čitateli dokonale znemožnit nalezení potřebné informace. Je nutné připustit, že DTP jsou výsadou spíše počítačů značky Apple a i když se kvalita PC DTP softwaru zlepšuje, stále si Macy (G4 a G5) dokážou udržovat náskok. Mezi nejznámější sázecí program patři QuarkXPress, ale v poslední době se ho snaží nahradit Microsoft se svým Publisher 2003. Stále se ještě používá Adobe Page Maker, i když už tak trochu zapadá. Tabulkový procesor (kalkulátor, spreadsheet) Program umožňující sestavit libovolnou tabulku. Pracuje se systémem buněk, kde je každé buňce přidělena souřadnice a je tedy možné používat systém odkazů. Buňky mohou obsahovat čísla, matematické výpočty, text či speciálně formátovaná číselná data (datum, hodiny, měny). Například v jedné buňce [A1] bude číslo 5 a v druhé [A2] hodnota 6. Do třetí buňky se pak vloží vzorec pro součet např. a1+a2 a po uložení vzorce se v buňce objeví číslo 11. Ovšem tohle číslo není pevně dané a tak když změníme hodnotu v jedné ze sčítaných (odkazovaných) buněk, změní se i hodnota buňky výsledné. Tenhle geniální systém je v moderních tabulkových procesorech rozšířen o řadu funkcí a stává se tak skvělým a užitečným nástrojem. Tabulku je samozřejmě možné graficky upravit a vyjádřit grafem. Tabulkové procesory se používají pro přehledné vyjádření dat všeho druhu, ceníky, kalkulace, matematické, statistické a finanční výpočty. Nejznámější zástupce je MS Excel ve verzích 95 až 2003 a novějších. Konkurenci tvoří opět součást balíku Open-Office se svým Calcem. Databáze Databáze je vlastně kartotéka – evidence nějakých položek. Umožňuje evidovat cokoli – adresy lidí (adresář) osobní údaje zaměstnanců (personalistika), jejich výplaty (mzdová agenda), zásoby (skladové hospodářství), zboží na skladě (řízení obchodu), pacienty a jejich choroby (evidence praktického lékaře), místenky, jízdenky, letenky atd. Prostě cokoli, co se skládá z jednotlivých položek, které můžeme uvést na kartotéčním lístku. Databázové programovací jazyky Všechny výše uvedené databáze se programují v jednotlivých databázových jazycích. Jsou to například dBase, Foxpro, Paradox, MS Access a český Winbase. Dají se ale použít i univerzální programovací jazyky jako Borland Delphi, C++, Pacal atd. viz. níže. Výše uvedené databázové programovací jazyky jsou sice určeny spíše profesionálům, ale mají také návrhářské moduly, které dovolují vytvořit jednoduchou databázi (např. videotéku) i doma.
Programovací jazyky Zjednodušeně jsou to programy, které umožňují vytvářet všechny ostatní programy (aplikace). Je jich samozřejmě několik a každý se hodí na jiný typ aplikací a každý programátor má většinou svůj favoritní, ve kterém se vyzná a umí s ním nejlépe pracovat. Běžný uživatel se s nimi dost pravděpodobně nesetká, protože je jednoduše nepotřebuje. Dnes nejpoužívanější a skoro univerzální je jazyk C a jeho nástavba C++, pro výuku nebo okrajové (doplňkové) programovaní existuje Pascal v prostředí Delphi. Programátoři s jazyky pracují tak, že daný problém, který je třeba vyřešit neboli zadanou úlohu rozdrobí do základních příkazů a logických operací, které je počítač schopen pochopit, ty pak napíše jako řadu příkazů – algoritmus – v textovém editoru k tomu určenému. Je to většinou obyčejný textový editor rozšířený například o různé hlídací funkce, barevné označování dílů programu atd. Neboli tzv. vývojové prostředí. Text je pomocí debugeru zkontrolován na formální a logické chyby a pak kompilátorem převeden do jazyka počítače. Výsledkem je .exe soubor neboli aplikace. Kreslení a úprava fotografií Nejprve je třeba danou skupinu programů rozdělit podle druhu datových souborů a způsobu jejich práce. Existují dva druhy grafiky. Bitmapová a vektorová. Bitmapový obrázek je vyjádření obrázku pomocí souřadnic pixelů (bodů) a jejich barvy. Jedná se tedy o formát dokonalý pro fotografie a jiné obrázky, ale jeho nevýhoda je velký objem. Naproti tomu vektorový obrázek je jednodušší a je vyjádřen pomocí geometrických a analytických rovnic. Na kreslení a vytváření jednoduchých i složitějších vektorových grafických prvků, například do novin slouží vektorové editory. Pro tvorbu jednoduchých bitmap slouží nástroje, jako například kreslení. Pro úpravu již existujících bitmap jsou nejlepší kvalitní fotografické editory. Rozdíl mezi vektorovými a bitmapovými editory je ve složitosti výpočtů. Vhodná úprava fotografie může pomalejšímu stroji zabrat i půl hodiny, kdežto změnit rovnici vyjadřující list palmy ve vektorovém editoru je otázkou sekund. Programy pro úpravu bitmap a fotografií: Adobe Photoshop, Paint Shop Pro, Gimp. Vektorové editory: Corel Draw, Zoner Calisto. 3D editory a animace Speciální a velmi drahá skupina programů, které dokáží vytvořit prakticky cokoliv od 2D animací až po složité renderingy (vykreslování) hradu zrcadlícího se na hladině jezera, vše ve 3D, reálně osvětleno, pohybující se. Dnes už jsou těmito programy a odpovídajícími sestavami vybaveny všechna filmová studia, protože vytvořit reálně vypadající, neexistující prostředí, kde se budou pohybovat skuteční herci je nepoměrně levnější metoda a navíc mnohem efektnější. Kdo by neznal Matrix nebo Shreka. Oba tyto filmy mají společné právě užití 3D programů. Zástupci (vše nad 120 000 Kč): Cinema 4D, Maya (kolem 600 000), 3D Max atd. CAD programy a simulace Jedná se o spojení 3D editoru a uplatnění většiny fyzikálních zákonů. Pomocí těchto programů je možné sestrojit dosud neexistující stroj, konstrukci nebo prostředí a testovat ho na různé podmínky. Můžete tak sestavit novou střelnou zbraň a testovat ji na různé nálože ve střelivu + můžete simulovat reakci například dřevěných dveří na takto vystřelený projektil. Tady se už ale dostáváme do sféry X00000 Kč až 1 X00 000 Kč a můžou si je tak dovolit jen průmyslové školy, firmy a laboratoře. AutoCAD, DesignCAD, Microstation, Pro/Engineer, I-DEAS…
Multimédia a výukové programy Pojem Edutainment neboli vzdělání hrou je rozvíjející se odvětví softwaru. Dovoluje vcelku nezatěžující formou dostat do hlavy například fyzikální zákony, chemii, biologii a třeba i základy matematiky. Většinou se jedná o spojení herních a výukových prvků – Jan Amos Komenský má určitě radost. Multimédia na počítači zahrnují vše co se zábavy týká. Jednotlivé programy a potřebné kodeky dovolují uživateli poslouchat hudbu, prohlížet si obrázky z dovolené a třeba i sledovat film v původním znění s titulky. Existuje spousta možností, jak využít počítač jako zábavné centrum a o to se snaží velká spousta programů jako přehrávače, internetová radia, TV-tunery, a dokonce i elektronické formy knih. Hry Krátký pojem, který spojuje velkou část již uvedených programů. Je znám názor, podle kterého jedinou pravou podstatou existence počítačů jsou právě hry. Dnes se jedná o vyspělé a velmi složité programy, jejichž vývoj zabere roky a celé týmy specialistů a programátorů. Nevadí, že doba potřebná pro překonání hry je většinou jen zlomek doby výrobní. V herním průmyslu se dnes točí jedny z největších peněz vůbec a tak není divu, že jich je takové množství. V hráčské komunitě existují určitá hodnotící pravidla, podle kterých se určují kvality hry a její poptávka. Komunikační programy. Tady se trochu dotýkáme tématu Internetu. Jednoduše jde o programy sloužící k rychlé a snadné komunikaci po síti nebo Internetu. Jde o takzvané ICQ a věřím, že jsou velmi rozšířená a navíc se jimi zabývá jiná část. Viry a antiviry Programy z první skupiny fungují stejně, jako jejich biologičtí předkové. Malé a většinou pěkně fikané prográmky, které se navážou na hlavní řetězec hostitelského programu a při jeho spuštění se provede i virus sám. Tedy hlavně se rozmnoží. Samotný program ale neničí, protože by ho to prozradilo. A v určený čas (datum nebo doba, kdy napíšete ve Wordu slovo babička) se spustí většinou destrukční nebo žertovná funkce viru. Může vám zničit váš harddisk tak, že ve správné frekvenci rozkmitá čtecí hlavici a ta pak narazí do ploten v rychlosti 7200 otáček za minutu (sakra rychlost) a nebo vám na obrazovku napíše jméno autorovy babičky. Programy z druhé skupiny pomocí několika různých metod virus v počítači odhalí a infikované soubory uloží do karantény (hlídá IO kanály souborů). Může je i vyléčit a nebo bezpečně smazat. Pro správnou funkci antiviru je třeba aktualizovat jeho databázi virových řetězců. Utility Rozsáhlá skupina programů, pomocí kterých sice nic nevytvoříme, ale znatelně nám zjednodušují práci s počítačem. Jsou to například Diskové manažery, kontrola a optimalizace (defragmentace) pevného disku, Čistící programy – hledají a mažou nepotřebné, staré a duplicitní soubory a položky v registru, prohlížeče a konvertory grafických souborů i jiných, diagnostika hardwaru, komprimační programy, speciální „urychlující“ ovladače např. grafických karet, atd.
Způsoby distribuce aneb jak se k softwaru dostat: Komerční software Jedná se o běžně vyvíjené programy použitelné ve všech oborech lidské činnosti. Za jejich tvorbou stojí většinou tým programátorů a za jejich distribucí tým managerů a právníků. Nejjednodušší cesta k němu dnes vede skrze internet a on-line objednávku. Program (výrobek) dostanete buď poštou na nějakém mediu (DVD, CD, disketa) anebo opět pomocí internetu downloadem z firemní stránky. V tom případě si musíte koupit klíč k odemknutí stažené verze programu. Při prvním spuštění musíte potvrdit smlouvu tzv. EULA. Mnoho lidí (skoro nikdo) jí sice nečte, ale obsahuje většinou velmi jednostranně výhodnou dohodu mezi uživatelem a autory. Jednoduše všechny možné chyby a nehody jsou váš problém, ale vše je jejich majetek. Shareware Je formou demoverze programu. Je sice zadarmo, ale má nějak omezenou činnost. Například časem, zablokovanými funkcemi, nemožností ukládat atd. Jedná se sice o plnohodnotný program, ale protože si chce autor nebo tým něco vydělat, jednoduše ho upraví tak, aby jste si ho mohli vyzkoušet, ale rozhodně ne plnohodnotně využívat. Za možnost užívat plnou verzi zaplatíte něco kolem 300 – 1500 Kč převodem s tím, že dostanete registrační klíč (12 – 15 místné heslo), kterým si plnou verzi odemknete. Freeware Tohle je už plnohodnotný program, který dostanete zadarmo, ale autor nebo tým autorů si vyhrazuje právo na uvedení svého jména a úpravy v programu. Celé podmínky jsou uvedeny v mezinárodní úmluvě o freewaru. Odsouhlasíte je stejně, jako EULU, jen s tím rozdílem, že jsou trochu volnější a nezavazují vás tolik. Freeware je jinak rozšířený koníček a po celém světě probíhají freewarové soutěže programátorů v různých oborech. Vzniká celá spousta skvělých produktů a některé jsou i velmi užitečné či zábavné. Public Domain neboli Open Source Tento druh programů by se dal nazvat celosvětově vařené programy. Jsou to programy, do jejich kódu může zasáhnout každý v rozsahu určeném instrukcemi u programu. Jsou dodávány se zdrojovým kódem a vývojovými nástroji k jejich úpravě. K nejznámější patří bezesporu operační systém Linux v mnoha provedeních, jako sok Windows. Na internetu jsou různé Open-Source projekty, do jejichž vývoje může zasáhnout kdokoliv. Za dobrý nápad a programovou strukturu je autor ohodnocen přidáním jeho jména do credits (autoři).
Licencování U větších produktů, jako například kancelářské balíky nebo CAD systémy, se už program ani neprodává, ale přidělují se licence na užívání produktu. Software se tedy nestane vaším majetkem, ale je vám propůjčen za daný obnos na neomezenou dobu a vy jej smíte využívat v rozsahu daném smlouvou. Multilicence Pro kanceláře nebo školy je výhodné koupit (pokud tedy software kupují legálně) multilicence na daný produkt. Jedná se o povolení užívat legálně software pro daný počet počítačů, přičemž se cena za jednu licenci úměrně snižuje. Za jednu tak tedy zaplatíte 1500 Kč, ale za dvě už jen 2900 Kč a za deset 12000 Kč.
Uptade, Patch a číslování verzí Ve vydaném programu se ještě většinou vyskytují chyby, nepřesnosti a nebo je možné něco udělat lépe, hezčeji, upraveněji, rychleji atd. Na opravu zjevných chyb (tank má místo děla strom) vycházejí patche, neboli záplaty. Malý prográmek, který projde spouštěcí soubor, pomocné aplikace, knihovny a soubory s daty a něco přepíše támhle, něco smaže tady a něco přidá onde. Výsledkem je odstranění chyby. Pokud chce autor do programu něco přidat (tank bude mít i protipěchotní kulomet) vydá tzv. update. Opět malý instalační prográmek, který hlavně přidává a mění. Patchovaná nebo updatovaná verze změní většinou číslo. Na začátku má program označí třeba 0.5A - zpola hotový zkušební produkt (alfaverze) nebo 0.9B, jedná se tedy o skoro hotový produkt (betaverze) nakonec vyjde verze 1.0 (čerstvá finální verze). Pak se přijde na pár chybek a vyjde patchV1.00_V1.25 – druhé číslo označuje novou verzi. Čím menší číslo se změní, tím je změna menší.
Patenty Proč patenty ne V současné době je Evropa velmi blízko rozšíření patentů i na software, obchodní metody, intelektuální postupy atd. Mnoho společností, specialistů i jednotlivců se ale shoduje na tom, že toto by bylo špatné rozhodnutí a je třeba dát Evropské Komisi najevo, že Evropa nechce podlehnout tlaku obrovských společností snažících se rozšíření patentového systému prosadit. Odborníci z oboru ekonomie a vrcholoví manažeři mnoha velkých firem o patentech soudí, že omezují svobodný trh založený na soutěži, vyzdvihují velké giganty a utápějí malé a střední firmy. Samozřejmě na druhé straně je zde také skupina lidí silně lobujících za zavedení patentového systému i pro software -- z obrovských společností, které vlastní mnoho patentů. Abychom viděli co takové zavedení patentů znamená, musíme se podívat na současnou Ameriku. Zde softwarové patenty platí, stejně tak jako patenty na intelektuální postupy. Patentové ,,štrapácie`` kolem formátu GIF jsou dobře známé. Společnost Unisys má patent na kompresní algoritmus LZW a v jistou chvíli začala požadovat licenční poplatky za každou vytvořenou kopii obrázku ve formátu GIF, protože GIF kompresního algoritmu LZW využívá. Tvůrci GIFu, kteří původně nic takového nezamýšleli se ocitli zcela mimo hru. Je důležité si uvědomit jaké nebezpečí patenty na algoritmy skrývají. V Americe to v současnosti vypadá tak, že musíte velmi dobře dávat pozor na to, jaké výpočetní postupy používáte, jinak riskujete že vás někdo později zažaluje nebo po vás bude požadovat odvádění poplatků za váš produkt. V podstatě nikdo si v Americe v současnosti při vývoji software nemůže být jist. Patenty také velmi výrazně omezují pokrok a inovaci, protože vždy když se objeví nějaký nový výpočetní postup, je zablokován patentem a je omezeno jeho použití. Mnoho firem tak ve svých produktech musí používat podřadné metody jako důsledek softwarových patentů. Nyní si představte absurdní situaci která by nastala pokud by si někdo nechal patentovat operaci "+". Tedy sčítání. Zdá se vám to nesmyslné, nemožné a absurdní? Pak věřte že operace XOR byla patentována. Jedná se o operaci podobnou sčítání, bez které by žádný současný počítač nemohl fungovat! Na podobnou situaci ale narážíme i u dalších moderních algoritmů. Např. zvukový formát MP3, který se díky skvělému kompresnímu poměru široce rozšířil, je patentován a za vytváření kopií v tomto formátu bylo dlouho požadováno odvádění poplatků! Díky všeobecnému nátlaku byla nakonec licence zmírněna a pro nekomerční použití není nutné za kompresory ani přehrávače MP3 platit.
Otázkou ale zůstává, jestli je opravdu ta nejlepší cesta spoléhat na svědomí těch co patent získali, pokud ho může získat skoro každý. Jako poslední příklad uvedu zneužití patentu a WWW Konsorcia společností Microsoft. Toto reprezentuje velmi velké nebezpečí a je to klasická ukázka jak moc škodlivé patenty můžou být. Microsoft přemluvil W3C k přijmutí CSS (kaskádové styly) za standard a hned na to si je nechal patentovat. Vznikla tak absurdní situace, kdy za standard bylo přijato něco, co měla právo používat pouze jedna společnost a libovolně s tím nakládat. Kdyby Microsoft nepodlehl veřejnému nátlaku na uvolnění CSS, mohl libovolně omezovat konkurenci, která by neměla žádnou šanci na obranu, protože patentovaná technologie již byla přijata za standard. Na výše uvedených příkladech je jasně vidět, že softwarové patenty inovaci nijak nepodporují, ale spíše ji výrazně brzdí. Dále upřednostňují velké giganty a ničí malé a střední společnosti. Na tomto faktu se shodují téměř všichni ekonomové.