{"id":166,"date":"2024-08-06T08:21:19","date_gmt":"2024-08-06T08:21:19","guid":{"rendered":"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/"},"modified":"2024-08-06T08:21:19","modified_gmt":"2024-08-06T08:21:19","slug":"retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos","status":"publish","type":"post","link":"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/","title":{"rendered":"Retos programavimo kalbos: kod\u0117l jos svarbios ir kam jos naudojamos"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">\n<p>\u0160iuolaikiniai k\u016br\u0117jai vis da\u017eniau kreipiasi \u012f retas programavimo kalbas, kad patenkint\u0173 konkre\u010dius projekt\u0173 poreikius.  Panagrin\u0117kime, kada ir kaip juos naudoti.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Turinys:<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#Kodel_svarbios_retos_programavimo_kalbos\" >Kod\u0117l svarbios retos programavimo kalbos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#COBOL\" >COBOL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#Lua\" >Lua<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#F\" >F#<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#R\" >R<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#Clojure\" >Clojure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#Haskell\" >Haskell<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/06\/retos-programavimo-kalbos-kodel-jos-svarbios-ir-kam-jos-naudojamos\/#Eliksyras\" >Eliksyras<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Kodel_svarbios_retos_programavimo_kalbos\"><\/span>Kod\u0117l svarbios retos programavimo kalbos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0160iandien populiariausios programavimo kalbos yra JavaScript (naudoja 25,2 mln. k\u016br\u0117j\u0173), Python (18,2 mln.) ir Java (17,7 mln.).  Ta\u010diau kartais projektui reikalingas unikalus kodas, kurio negalima para\u0161yti naudojant populiariausias technologijas.  \u017demiau pateikiamos retos programavimo kalbos, apie kurias daugelis k\u016br\u0117j\u0173 niekada negird\u0117jo, ta\u010diau kurios gali \u017eymiai paskatinti pl\u0117tr\u0105.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"COBOL\"><\/span>COBOL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>COBOL (Common Business Oriented Language) 1959 m. suk\u016br\u0117 Grace Hopper, dar \u017einoma kaip \u201eCOBOL mo\u010diut\u0117\u201c.  I\u0161 prad\u017ei\u0173 jis buvo imperatyvus ir proced\u016brinis, ta\u010diau nuo 2002 m. jis tapo objektiniu.  Jis buvo pla\u010diai naudojamas JAV gynybos departamento d\u0117ka, o v\u0117liau i\u0161populiar\u0117jo finans\u0173 kompiuterijos srityje.<\/p>\n<blockquote><p>\u201eCOBOL naudojimas suluo\u0161ina prot\u0105, tod\u0117l jo mokymas tur\u0117t\u0173 b\u016bti laikomas nusikaltimu\u201c.  \u2013 Edsgeris Dijkstra<\/p><\/blockquote>\n<p>Dijkstra buvo \u0161iek tiek teisingas \u2013 COBOL i\u0161 tikr\u0173j\u0173 turi sud\u0117ting\u0105 ir \u017eoding\u0105 sintaks\u0119, palyginti su ma\u017eiau \u201e\u017eodin\u0117mis\u201c kalbomis.  Ta\u010diau jis puikiai tinka u\u017eduotims, kuri\u0173 kitos technologijos negali atlikti.  COBOL atlieka de\u0161imtainius skai\u010diavimus naudodamas fiksuoto kablelio aritmetik\u0105, o ne slankiojo kablelio, vengdamas sud\u0117ting\u0173 apvalinimo taisykli\u0173, kaip \u201eJava\u201c, ir pagreitindamas operacijas.  Be to, kodas nuosekliai veikia tiek 8 bit\u0173, tiek 64 bit\u0173 architekt\u016brose, nes COBOL gali saugoti \u012fvairi\u0173 tip\u0173 kintamuosius, nepaisant kompiliatoriaus ir sistemos architekt\u016bros.<\/p>\n<p>\u0160tai kod\u0117l COBOL yra nepakei\u010diamas finansin\u0117se operacijose.  JAV bankai ir sveikatos prie\u017ei\u016bros sistema j\u012f naudoja terminal\u0173 sandoriams, akcij\u0173 prekybai ir gydytoj\u0173 atlyginimams.<\/p>\n<p>\u0160tai paprasto COBOL kodo pavyzdys:<\/p>\n<pre><code class=\"language-cobol\">IDENTIFICATION DIVISION.\nPROGRAM-ID. IDSAMPLE.\nENVIRONMENT DIVISION.\nPROCEDURE DIVISION.\n    DISPLAY 'HELLO WORLD'.\n    STOP RUN.\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Lua\"><\/span>Lua<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u201eLua\u201c yra scenarij\u0173 kalba, kurios \u0161altinio kodas yra C. Ji yra ar\u010diausiai \u201eJavaScript\u201c su pana\u0161iu prototipu pagr\u012fstu objektiniu modeliu, ta\u010diau yra galingesn\u0117 ir lankstesn\u0117.  Masyvai, strukt\u016bros, rinkiniai ir kiti sud\u0117tiniai vartotojo apibr\u0117\u017eti duomen\u0173 tipai \u012fgyvendinami naudojant lenteles, o OOP mechanizmai \u2013 per meta lenteles.<\/p>\n<p>I\u0161 prad\u017ei\u0173 sukurta naftos bendrovei \u201ePetrobras\u201c, \u201eLua\u201c dabar naudojama kuriant masin\u0117s rinkos programin\u0119 \u012frang\u0105, pvz., \u201eAdobe Lightroom\u201c grafin\u0119 s\u0105saj\u0105 ir \u017eaidimus.  Naudodami Lua galite lengvai u\u017ekoduoti NPC (ne\u017eaid\u017eiam\u0173 simboli\u0173) elges\u012f neperra\u0161ydami variklio.  Tokie \u017eaidimai kaip Garry&#8217;s Mod, Roblox, Stalker ir net World of Warcraft naudoja Lua.<\/p>\n<p>\u0160tai \u201eStalker\u201c kodo pavyzdys:<\/p>\n<pre><code class=\"language-lua\">local members = {}\nlocal moved = {}\nzone = nil\n-------------------------------------------------------------------------\nfunction add_member (npc)\n    -- check if it's our guy\n    local ini = npc:spawn_ini ()\n    if ini == nil or ini:section_exist (\"escape_raid\") == false then \n       return \n    end\n    -- if already exists, go away\n    for a = 1, table.getn (members), 1 do\n        if members(a) == npc.id then \n           return \n        end\n    end    \n    -- add intruder to blacklist\n    table.insert (members, npc.id)\n    printf (\"Stalker %s is added to list\", npc:name ())\n    -- remove from the living world\n    this.switch_offline (npc.id)    \nend\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"F\"><\/span>F#<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>F Sharp yra keli\u0173 paradigm\u0173 kalba, palaikanti proced\u016brin\u012f, objektin\u012f ir funkcin\u012f programavim\u0105.  Sukurta Microsoft Research, ji buvo integruota \u012f Visual Studio 2010 ir v\u0117lesnes versijas.<\/p>\n<p>F Sharp turi glaust\u0105 kod\u0105 su tipo i\u0161vada.  Jame pagrindinis d\u0117mesys skiriamas duomenims, lygiagre\u010diam I\/O ir lygiagre\u010diam skai\u010diavimui, da\u017enai naudojamiems moksliniams tyrimams, duomen\u0173 analizei, ma\u0161ininiam mokymuisi ir \u017einiatinklio k\u016brimui.  Jis gerai integruojamas su .NET platformomis.<\/p>\n<p>Nors ir reta ir nepopuliari, F# gali b\u016bti itin naudinga atliekant specifines u\u017eduotis, susijusias su dideliais duomenimis ir ML.<\/p>\n<p>\u0160tai kodo pavyzdys:<\/p>\n<pre><code class=\"language-fsharp\">module Integers =\n   let sampleInteger = 176\n   \/\/\/ Do some arithmetic starting with the first integer\n   let sampleInteger2 = (sampleInteger\/4 + 5 - 7) * 4\n   \/\/\/ A list of the numbers from 0 to 99\n   let sampleNumbers = ( 0 .. 99 )\n   \/\/\/ A list of all tuples containing all the numbers from 0 to 99 and their squares\n   let sampleTableOfSquares = ( for i in 0 .. 99 -&gt; (i, i*i) )\n   \/\/ The next line prints a list that includes tuples, using %A for generic printing\n   printfn \"The table of squares from 0 to 99 is:\\n%A\" sampleTableOfSquares\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"R\"><\/span>R<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>R buvo sukurtas specialiai statistinei duomen\u0173 analizei.  Jis buvo sukurtas Oklando universitete kaip nemokama alternatyva komercinei kalbai S.<\/p>\n<p>R populiarumas auga, j\u012f naudoja daugelis dideli\u0173 kompanij\u0173, toki\u0173 kaip \u201eAmazon\u201c, \u201eDeloitte\u201c, \u201eAccenture\u201c ir \u201eGoogle\u201c.  Ta\u010diau jo sintaks\u0117 skiriasi nuo kit\u0173 kalb\u0173, tod\u0117l pradedantiesiems yra sud\u0117tinga.  R yra vis\u0173 pirma statistin\u0117 technologija, turinti duomen\u0173 lenteli\u0173 sujungimo, interaktyvaus grafiko k\u016brimo ir statistinio testavimo funkcijas.  Jis taip pat gali b\u016bti naudojamas ra\u0161ant \u017einiatinklio programas naudojant Shiny bibliotek\u0105.<\/p>\n<p>\u0160tai kodo pavyzdys, kuris dvejetain\u012f kod\u0105 konvertuoja \u012f de\u0161imtain\u012f:<\/p>\n<pre><code class=\"language-r\"># Program to convert decimal\n# number into binary number\n# using recursive function\n\nconvert_to_binary &lt;- function(n) {\n    if(n &gt; 1) {\n        convert_to_binary(as.integer(n\/2))\n    }\n    cat(n %% 2)\n}\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Clojure\"><\/span>Clojure<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u201eClojure\u201c yra \u0161iuolaiki\u0161kas, dinami\u0161kas ir funkcionalus \u201eLisp\u201c kalbos dialektas \u201eJava\u201c platformoje, sukurtas Rich Hickey 2007 m. Jis sukurtas kaip bendrosios paskirties kalba, apjungianti scenarij\u0173 k\u016brimo lengvum\u0105 ir tvirt\u0105 daugiagie\u010dio programavimo infrastrukt\u016br\u0105.  Clojure yra \u017einomas d\u0117l savo interaktyvios REPL aplinkos ir stiprios lygiagretaus programavimo palaikymo.<\/p>\n<p>Viena i\u0161 pagrindini\u0173 Clojure savybi\u0173 yra nekintamumas ir funkcinio programavimo akcentavimas.  Ji taip pat suteikia prieig\u0105 prie \u201eJava\u201c sistem\u0173 ir gali kompiliuoti \u012f \u201eJava\u201c baitin\u012f kod\u0105 ir \u201eJavaScript\u201c, tod\u0117l tai naudinga tiek serverio, tiek kliento pus\u0117s k\u016brimui.<\/p>\n<p>\u201eClojure\u201c naudoja didieji bankai, tokie kaip \u201eRaiffeisen\u201c, ir tokios \u012fmon\u0117s kaip \u201eNetflix\u201c, \u201eAmazon\u201c ir \u201eApple\u201c.  Pavyzd\u017eiui, \u201eApple\u201c naudoja \u201eClojure\u201c duomenims rinkti ir statistikai.<\/p>\n<p>\u0160tai \u201eHello World\u201c pavyzdys Clojure:<\/p>\n<pre><code class=\"language-clojure\">(ns hello\n  (:gen-class\n   :methods ((sayHi () String))))\n\n(defn -sayHi (this)\n  (println \"hello world\"))\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Haskell\"><\/span>Haskell<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Haskell yra dar viena grynai funkcin\u0117 programavimo kalba.  Pavadintas Haskell Curry, logiko ir tipo teoretiko vardu, jis pasi\u017eymi stipriu spausdinimu ir palaiko ting\u0173 vertinim\u0105.<\/p>\n<p>Haskell yra \u017einomas d\u0117l savo paprastos ir eleganti\u0161kos sintaks\u0117s, taip pat grei\u010dio ir na\u0161umo.  Jis naudojamas investicin\u0117je bankininkyst\u0117je ir kuriant sistemos produktus bei programin\u0119 \u012frang\u0105.  Did\u017eiosios \u012fmon\u0117s, tokios kaip Meta, IBM, Twitter ir Bank of America, naudoja Haskell.  Pavyzd\u017eiui, \u201eFacebook\u201c* naudoja Haskell kovai su \u0161iuk\u0161l\u0117mis.<\/p>\n<p>\u0160tai \u201eHello World\u201c pavyzdys Haskell:<\/p>\n<pre><code class=\"language-haskell\">main = putStrLn \"Hello World!\"\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Eliksyras\"><\/span>Eliksyras<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Elixir yra bendrosios paskirties programavimo kalba, kuri naudoja dinamin\u012f duomen\u0173 tipavim\u0105 ir funkcines programavimo paradigmas.  Jis veikia Erlang virtualioje ma\u0161inoje, \u017einomoje d\u0117l savo geb\u0117jimo paleisti paskirstytas ir gedimams atsparias sistemas su ma\u017ea delsa.<\/p>\n<p>Elixir palaiko metaprogramavim\u0105, leid\u017eiant\u012f k\u016br\u0117jams ra\u0161yti kod\u0105, kuris generuoja kit\u0105 kod\u0105, ir lygiagret\u0173j\u012f programavim\u0105.  Jame yra galingi integruoti \u012frankiai, skirti programinei \u012frangai i\u0161bandyti ir derinti.<\/p>\n<p>Erlang\/OTP platformos d\u0117ka Elixir pla\u010diai naudojamas kuriant \u017einiatinklius, ypa\u010d su Phoenix Framework, ir kuriant paskirstytas ir gedimams atsparias sistemas.  Tai gali b\u016bti sud\u0117tinga k\u016br\u0117jams, nepa\u017e\u012fstantiems funkcini\u0173 programavimo paradigm\u0173, ta\u010diau privalumai yra efektyvumas, mastelio keitimas ir patikimumas.<\/p>\n<p>\u0160tai kodo pavyzdys, kuris kelis kartus dubliuoja eilutes:<\/p>\n<pre><code class=\"language-elixir\">\"AAA\" = String.duplicate(\"A\", 3)\n\"HELLO HELLO \" = String.duplicate(\"HELLO \", 2)\n<\/code><\/pre>\n<p>Yra daug ni\u0161ini\u0173 ir ret\u0173 programavimo kalb\u0173.  Net patyr\u0119 k\u016br\u0117jai gal\u0117jo apie juos negird\u0117ti.  Ta\u010diau tokios kalbos padeda i\u0161spr\u0119sti konkre\u010dias u\u017eduotis, kai populiar\u016bs sprendimai yra bej\u0117giai.  Komentaruose pasidalykite, kokias retas kalbas vartojote ir kaip jos pad\u0117jo pl\u0117tojant projekt\u0105.<\/p>\n<\/p><\/div>\n<p>Jei tekste radote klaid\u0105, si\u0173skite prane\u0161im\u0105 autoriui pa\u017eym\u0117dami klaid\u0105 ir paspausdami Ctrl-Enter.<\/p>\n<p><br \/>\n<br \/><a href=\"https:\/\/techplanet.today\/post\/rare-programming-languages-why-they-matter-and-what-theyre-used-for\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0160iuolaikiniai k\u016br\u0117jai vis da\u017eniau kreipiasi \u012f retas programavimo kalbas, kad patenkint\u0173 konkre\u010dius projekt\u0173 poreikius. Panagrin\u0117kime, kada ir kaip juos naudoti. Kod\u0117l svarbios retos programavimo kalbos \u0160iandien populiariausios programavimo kalbos yra JavaScript (naudoja 25,2 mln. k\u016br\u0117j\u0173), Python (18,2 mln.) ir Java (17,7 mln.). Ta\u010diau kartais projektui reikalingas unikalus kodas, kurio negalima para\u0161yti naudojant populiariausias technologijas. \u017demiau [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":167,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologijos"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":0,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/media\/167"}],"wp:attachment":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}