24.2.2023
Datorzinātnē dinamiskā programmēšanas valoda ir augsta līmeņa programmēšanas valoda, kas izpildeslaikā (runtime) izpilda daudzas parastās programmēšanas darbības, ko statiskās programmēšanas valodas veic kompilācijas laikā. Codelex rakstā “Programmēšanasvalodas iesācējiem” tika minēts par dažādiem programmēšanas valodām un to dalījumu (https://www.codelex.io/resursi/programmesanas-valodas-iesacejiem). Viens no dalījuma veidiem ir dinamiska - statiska programmēšanas valoda. Tur ir arī izskaidroti daži piemēri. Dinamiskās valodas piemēri ir JavaScript, Python, Lisp, Ruby, Perl, PHP, Tcl un Lua.
● Tipi tiek piešķirti izpildes laikā.
● Izpildes laikā mainīgā tips var mainīties. No sākuma “age” mainīgais ir skaitlis, bet pēc tam teksts.
● Nav precīzi jānorāda mainīgā tips (iepriekšējā piemērā nav minēts string vai number).
● Cilvēks, kurš tik labi nesaprot mainīgo tipus, varētu viegli izveidot koda paraugu, īsti par tiem nedomājot.
● Izpildlaika tipa informācija (runtime typeinformation - RTTI) var tikt izmantota, lai ieviestu dinamisku nosūtīšanu (dynamic dispatch), vēlu saistīšanu (late binding), lejupslīdi (downcasting), atspoguļošanu (reflection) un līdzīgas funkcijas.
● Jauna koda pievienošanas gadījumā, izmaiņas tiek veiktas ātrāk, jo netiek pārskatīts viss kods.
● Tā kā kods tiek pārbaudīts izpildes laikā, programma ir mazāk optimizēta un tai var būt ilgāks izpildes laiks.
● Tās bieži vien tiek sauktas arī par skriptu valodām. Šīs valodas tiek izmantotas, lai manipulētu, pielāgotu un automatizētu esošās sistēmas iespējas.
● Tiek atļauta duck typing (nodrošina vienkāršāku koda atkārtotu izmantošanu un darbojas pēc principa "Ja tā staigā kā pīle un čīkst kā pīle, tad tai jābūt pīlei”).
Der atcerēties, ka katrai valodai ir savas priekšrocības un ir svarīgi mācēt izmantot valodas labākās īpašības konkrētajā gadījumā. Piemēram, ja kods tiek rakstīts dinamiskajā programmēšanas valodā, tad ir jāpielāgojas izmantot tās labākās īpašības, nevis rakstīt līdzīgā manierē kā statiskā valodā. Jā, tas bieži vien strādās, bet tas nozīmē, ka tas ir efektīvi.