Skriptni ali skriptni jezik je programski jezik, ki podpira skripte. Skripte so običajno kratki računalniški programi, ki opravijo korake, ki bi jih lahko po vrsti opravila oseba. S tem se delo avtomatizira, da je lažje in zanesljivejše. Skriptni jezik je pogosto preprostejši in se ga je lažje naučiti kot druge jezike, vendar še vedno lahko naredi veliko stvari. Pogosto so skriptni jeziki interpretirani (izvede jih interpreter), podpirajo dinamično tipiziranje in bogat nabor vgrajenih funkcij, kar poenostavi hitro izdelavo orodij, avtomatizacijo in prototipiranje.

Skripte se lahko izvajajo znotraj drugega programa, na primer v spletnem brskalniku ali programu Microsoft Excel. Lahko so tudi lupina, ki se zažene iz vmesnika ukazne vrstice in kliče operacijski sistem (OS). Lupina velja za interaktivno - uporabnik lahko izbere, kaj naj vnese, lupina pa se odzove na ukaz. Te se lahko uporabljajo za nadzor delovnih mest na glavnih računalnikih in strežnikih. Skripte najdemo tudi kot razširitve ali vdelane skripte v aplikacijah (npr. makri v pisarniških paketih), kot avtomatizacija v orodjih za upravljanje zgradb (CI/CD), pri testiranju, obdelavi podatkov in administraciji sistemov.

Nekateri pravijo, da mora biti skriptni jezik vezan na določeno uporabo. Drugi uporabljajo širšo opredelitev in vključujejo splošne programske jezike, ki se interpretirajo in ne sestavljajo. Splošno namenski pomeni, da ga je mogoče uporabljati na več načinov za različne stvari. Nekateri splošni jeziki (kot je Java) imajo različice, ki jih je mogoče zapisati v skripte (Javascript). Ni posebnih pravil o tem, kaj je ali ni skriptni jezik. Pomembno je vedeti, da sta Java in JavaScript ločni — Java je jezik, ki se običajno prevaja v bajtno kodo za JVM, medtem ko je JavaScript zgodovinsko nastal kot skriptni jezik za brskalnike in se pogosto izvaja interpretirano ali z JIT prevajnikom.

Kje se uporablja skriptni jezik

  • Avtomatizacija opravil v operacijskih sistemih (npr. lupine Bash, PowerShell).
  • Spletne aplikacije in interaktivnost v brskalniku (npr. JavaScript).
  • Skripting v aplikacijah in makri (npr. VBA v Excelu, skripti v grafičnih programih).
  • Obdelava besedil in podatkov (npr. Python, Perl, Ruby).
  • Upravljanje strežnikov, razmestitev in avtomatizacija infrastrukture (Ansible, shell skripte).
  • Testiranje programske opreme in avtomatizirani testi.
  • Hitro prototipiranje in "glue code" za povezovanje različnih komponent.

Primeri skriptnih jezikov

  • JavaScript — najpogosteje za spletne brskalnike in tudi na strežniku (Node.js).
  • Python — priljubljen za avtomatizacijo, znanstveno računanje, obdelavo podatkov in skripting.
  • Bash / sh — standardni lupinski jeziki v Unix/Linux okolju.
  • PowerShell — napreden lupinski in avtomatizacijski jezik za Windows (in zdaj tudi na Linuxu/macOS).
  • PHP — pogosto uporabljan za razvoj spletnih strežniških aplikacij.
  • Perl, Ruby, Lua — pogosto uporabljeni za skripting, obdelavo besedil in vgrajene skripte.

Prednosti in slabosti

  • Prednosti: hitro razvijanje, enostavnejše učenje, dobra integracija z obstoječimi orodji, širok nabor knjižnic, primerno za avtomatizacijo in prototipiranje.
  • Slabosti: običajno počasnejše od strogo kompiliranih jezikov, lahko manj nadzora nad pomnilnikom, tveganja glede varnosti (vbrizgavanje skriptov, ranljivosti v odvisnostih), težje za zelo velike in performančno občutljive sisteme brez dodatnih optimizacij.

Tehnični vidiki in uporaba v praksi

Skriptni jeziki se izvajajo na različne načine: nekateri so povsem interpretirani, drugi uporabljajo JIT (just-in-time) prevajanje ali se najprej prevedеjo v vmesno kodo (bajtna koda) in nato izvedejo v navideznem stroju. Obstajajo tudi transpilatorji, ki skriptni jezik pretvorijo v drug jezik (npr. TypeScript v JavaScript). Pri izbiri skriptnega jezika upoštevajte obstoječo infrastrukturo, razpoložljive knjižnice, zahtevano hitrost izvajanja in varnostne zahteve.

Varnostne in praktične napotke

  • Uporabljajte preverjanje vnosa in sanacijo, da preprečite vbrizgavanje ukazov ali kode.
  • Za dolgoročne, velikanske projekte razmislite o kombinaciji: prototip v skriptnem jeziku, kritične dele pa premaknite v bolj performančen jezik, če je to potrebno.
  • Redno posodabljajte okolja in knjižnice zaradi varnostnih popravkov.
  • Uporabljajte orodja za upravljanje paketov in virtualna okolja, da nadzorujete odvisnosti.

Zaključek: Skriptni jeziki so vsestransko orodje za avtomatizacijo, razvoj in integracijo. Čeprav nimajo strogih pravil, kaj jih opredeljuje, so odlični za hitro reševanje problemov, upravljanje sistemov in izdelavo prototipov. Pri izbiri jezika upoštevajte namen, zmogljivosti in varnostne zahteve projekta.