Jaké jsou různé typy počítačového programování?
Vzhledem k tomu, že definice počítačového programování je tak široká a používání programů tak všudypřítomné, existuje ve skutečnosti mnoho typů počítačového programování, často definovaných odlišně odlišnými způsoby. Nejzákladnější typy počítačového programování lze rozdělit podle programovacího jazyka - například C, Lisp nebo Java® -, který používá programátor. V jiných kontextech mohou existovat pouze dva typy počítačového programování - systém a aplikace. Rozlišují se mezi síťovým programováním, webovým programováním a stolním programováním. Různé typy počítačového programování mohou být někdy odděleny cílovou platformou, jako je programování vestavěných systémů, programování v reálném čase (RTS) nebo databázové programování.
Různé typy počítačového programování jsou často definovány jazykem používaným pro psaní softwaru. Existuje mnoho jazyků, ale široce spadají do strukturovaných jazyků, jako je C, nebo objektově orientovaných jazyků, jako je Java®, přičemž oba jsou profesionály běžně používány pro různé úkoly. Jazyky mohou být také imperativní, jako dříve zmíněné, nebo funkční, jako Lisp, ve kterých programy sestávají z řady funkcí namísto příkazů. Některé počítačové programování se provádí čistě skriptovacími jazyky, které jsou interpretovány lidsky čitelnými dokumenty, které provádějí operace v jiném rámci.
Tradičně se rozlišovalo mezi dvěma širokými typy počítačového programování. První je programování aplikací a zahrnuje psaní programů, které lze přímo použít pro některé funkce. Alternativně existuje systémové programování, které se snaží navrhnout programy pro správu hardwaru nebo rámců, ve kterých mohou aplikace běžet, jako jsou operační systémy.
S tím, jak se technologie pro vytváření sítí a vzdálenou komunikaci rozšířila, začaly se určité typy počítačového programování odlišovat od ostatních oblastí počítačového programování. Síťové programování je považováno za odlišné z důvodu požadovaných znalostí síťových protokolů a hardwarových rozhraní. Programování webových aplikací nebo serverů vyžaduje specifické znalosti bezpečnostních omezení, internetových protokolů a jedinečných vzorů programování.
Existují také typy počítačového programování, které jsou specifické pro určité pole nebo cílový hardware. Programování databáze zahrnuje použití speciálních dotazovacích jazyků, skriptů a dalších prvků pro interakci se specifickými databázovými infrastrukturami. Programování her zahrnuje znalosti grafického hardwaru, grafických algoritmů a někdy i speciálních optimalizačních technik. Vestavěné systémy, jako jsou ruční zařízení nebo konzole, mohou zahrnovat jedinečné hardwarové specifikace a znalosti knihoven dodavatelů. Pokročilejší programování v reálném čase může zahrnovat psaní softwaru pro řízení proti selhání pro jaderné elektrárny nebo vojenský hardware.