Evolúcia vývoja softvéru
Vývoj softvéru prešiel fascinujúcou cestou plnou neustálych inovácií a prispôsobovania sa meniacim sa potrebám firiem aj používateľov. Túto cestu možno zhruba rozdeliť do niekoľkých kľúčových etáp:

Začiatky programovania (40. – 50. roky 20. storočia):
- Assembler: Zavedenie symbolického kódu, ktorý bol o čosi čitateľnejší pre človeka a umožnil zložitejšie a efektívnejšie programovanie.
- Strojový kód: Programy sa písali v binárnom kóde, ktorému hardvér počítača rozumel priamo.
Vyššie programovacie jazyky (50. – 70. roky):
- FORTRAN, COBOL, ALGOL: Tieto jazyky sprístupnili programovanie širšiemu okruhu ľudí tým, že odtienili špecifiká hardvéru.
- Štruktúrované programovanie: Jazyky ako C priniesli štruktúrované riadenie toku programu (cykly, podmienky) a podporili lepšie programátorské návyky.
Jednotlivé obdobia sa prekrývajú. Nové jazyky neodstránili strojové inštrukcie: prekladače prevádzajú programy vyššej úrovne pre počítač. Tento posun vysvetľuje história Fortranu od IBM.
Softvérové inžinierstvo (70. – 90. roky):
- Vodopádový model: Lineárny a sekvenčný prístup k vývoju softvéru, ktorý kládol dôraz na dôkladnú dokumentáciu a vopred definované fázy.
- Objektovo orientované programovanie (OOP): Jazyky ako C++ a Java sa sústredili na objekty a triedy, čím zlepšili modularitu a opätovnú použiteľnosť kódu.
Agilný a iteratívny vývoj (po roku 2000):
- Agilná metodika: Dôraz na iteratívny vývoj, spoluprácu so zákazníkom a flexibilitu, vďaka čomu sa dá rýchlo reagovať na meniace sa požiadavky.
- DevOps: Prepojenie vývoja a prevádzky s cieľom zrýchliť nasadzovanie a zvýšiť kvalitu, s dôrazom na kultúru neustáleho zlepšovania.
Agilný manifest opisuje dôraz na fungujúci softvér, spoluprácu a reagovanie na zmeny. Microsoft vysvetľuje, ako DevOps prepája vývoj, nasadzovanie a prevádzku.
Moderný vývoj softvéru (od roku 2010 dodnes):
- Cloud computing: Služby ako AWS, Azure a GCP zmenili spôsob nasadzovania a škálovania – ponúkajú zdroje na požiadanie a znižujú náklady na infraštruktúru.
- Architektúra mikroslužieb: Rozdelenie aplikácií na malé, nezávislé služby, ktoré možno samostatne vyvíjať, nasadzovať a škálovať.
- AI a strojové učenie: Stále hlbšie zapájanie AI/ML do prediktívnej analytiky, automatizácie a zlepšovania používateľského zážitku.
Aj novší prístup k vývoju musí zodpovedať práci: čo má softvér robiť, ako sa budú testovať zmeny a kto sa oň bude starať?
Grace Engine: koncept pre budúci vývoj
Grace Engine zamýšľame vytvoriť ako platformu na vývoj softvéru. Zostáva konceptom.
Termín vydania sme nestanovili. Ozvite sa nám, ak chcete prebrať svoje súčasné softvérové potreby.
Prečo boli dôležité vyššie programovacie jazyky?
Umožnili programátorom opísať väčšiu časť úlohy bez priameho zápisu každej hardvérovej inštrukcie. Prekladače tieto programy prevádzajú na spustenie.
Ako sa líšia Agile a DevOps?
Agile zdôrazňuje spoluprácu a prispôsobovanie vývoja meniacim sa potrebám. DevOps prepája vývoj s nasadzovaním a prevádzkou.
Je Grace Engine dostupný?
Grace Engine zostáva konceptom, ktorý zamýšľame vytvoriť. Termín vydania sme nestanovili.