{"id":152664,"date":"2025-12-25T17:11:54","date_gmt":"2025-12-25T15:11:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0"},"modified":"2025-12-25T17:11:54","modified_gmt":"2025-12-25T15:11:54","slug":"opublikovan-yazyk-programmirovaniya-ruby-4-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0","title":{"rendered":"V\u00e4lja on antud programmeerimiskeel Ruby 4.0.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ilmus Ruby 4.0.0, d\u00fcnaamiline objektil p\u00f5hinev programmeerimiskeel, mis keskendub arendustegevuse k\u00f5rgele efektiivsusele ja sisaldab parimaid jooni Perlilt, Java-lt, Pythonilt, Smalltalkilt, Eiffelilt, Adalt ja Lispilt. Projekti kood on litsentsitud BSD (\"2-clause BSDL\") ja \"Ruby\" litsentsi all, mis viitab viimasele GPL litsentsile ning on \u00fchilduv GPLv3-ga.    <\/p>\n<p>Peamised parandused:   <\/p>\n<ul>\n<li class=\"l\"> Kompilaatorisse on lisatud uus JIT-kompilaator ZJIT, mis positsioneeritakse kui j\u00e4rgmine Ruby JIT p\u00f5lvkond. Vaikimisi j\u00e4tkab YJIT, samas kui ZJIT on lisatud valikuna (aktiveeritakse lipukesega \"--zjit\"). Nagu YJIT, on uus JIT-kompilaator kirjutatud Rusti keeles Shopify arendajate meeskonna poolt Ruby programmide j\u00f5udluse parandamise algatuse raames, mis kasutavad Rails raamistikku ja teevad v\u00e4ga palju meetodik\u00f5nesid. K\u00e4esolevas arenguetapis on ZJIT t\u00f5lgendusest kiirem, kuid j\u00e4\u00e4b YJIT-ile alla. Oodatakse, et Ruby 4.1 stabiliseerub ZJIT ja see \u00fcletab YJIT-i j\u00f5udlust.\n<p>Erinevalt YJIT-st t\u00f5lgib uus JIT-kompilaator YARV virtuaalmasina bytecode'i mitte madala taseme vaheformaatideks, mis on l\u00e4hedased masinkoodile, vaid k\u00f5rge taseme vaheformaatideks SSA (Static Single Assignment), mis v\u00f5imaldab t\u00e4iendavate optimeerimisfaaside l\u00e4biviimist ja suurte koodiblokkide optimeerimist, mitte ainult praeguste operatsioonide. Uute arendajate kaasamiseks rakendab ZJIT klassikalist JIT-arkitektuuri, mis kasutab t\u00f5lgendaja ajaloolisi andmeid t\u00fc\u00fcpide kohta, selle asemel, et kasutada YJIT-is rakendatud keerukamat p\u00f5hiblokkide versioonimise tehnikat (LBBV \u2014 Lazy Basic Block Versioning).    <\/p>\n<li class=\"l\"> Eksperimentaalne Ruby::Box klass on lisatud isolatsioonimehhanismi rakendamiseks, mis v\u00f5imaldab eraldada klasside, moodulite ja monkey-patchide (muudetud meetodite ja klasside atribuutide) t\u00e4itmise \u00fches protsessis. Ruby::Box-i abil on samuti v\u00f5imalik eraldada rakenduskoodi t\u00e4itmine Ruby-raamatukogudest, tagada testide isolatsioon ja korraldada veebik\u00e4sitlejate paralleelne t\u00e4itmine \u00fches protsessis. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-los-angeles\/\"   title=\"serverile\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3995\">serverile<\/a> rakendusi (n\u00e4iteks \u00fche versiooni koodi j\u00e4rk-j\u00e4rguline asendamine teisega v\u00f5i s\u00f5ltuvuste uuendamine). Ruby::Boxi aktiveerimiseks tuleb seada keskkonnamuutuja \"RUBY_BOX=1\". # foo.rb class String def self.foo = \"foo\" end # main.rb box = Ruby::Box.new box.require(\u2018foo\u2019)\n<li class=\"l\"> Muudetud on Ractor mudeli rakendust, mis annab \"n\u00e4itlejate\" (ruby actor) stiilis abstraktsiooni, et tagada turvaline paralleelne t\u00e4itmine programmide vahel l\u00e4bim\u00f5istetava kommunikatsiooni kaudu. Lisatud on klass Ractor::Port, mis lahendab probleemid, mis on seotud s\u00f5numite saatmise ja vastuv\u00f5tmisega. Lisatud on meetod Ractor.shareable_proc, et lihtsustada Proc objektide \u00fchist kasutamist erinevatest n\u00e4itlejatest. Andmestruktuure on optimeeritud, et v\u00e4hendada konfliktide t\u00f5en\u00e4osust globaalsete lukustuste seadistamisel ja t\u00f5sta CPU m\u00e4lukaubanduse efektiivsust. J\u00e4rgmise aasta jooksul plaanitakse Ractori viia stabiilsete v\u00f5imaluste hulka. port1 = Ractor::Port.new port2 = Ractor::Port.new Ractor.new port1, port2 do |port1, port2| port1 &lt;&lt; 1 port2 &lt;&lt; 11 port1 &lt;&lt; 2 port2 &lt; 1, 2 2.times{ p port2.receive } #=&gt; 11, 12\n<li class=\"l\"> Operaator \"*nil\" tagastab n\u00fc\u00fcd kohe t\u00fchja massiivi (\"[]\") ilma vahepealse \"nil.to_a\" meetodi kutse tegemiseta, sarnaselt sellega, kuidas \"**nil\" tagastab kohe t\u00fchja hash'i, ilma \"nil.to_hash\" kutse tegemiseta.\n<li class=\"l\"> Lubatud on jagada stringe loogiliste operaatoritega \"||\", \"&amp;&amp;\", \"and\" ja \"or\" nii, et j\u00e4rgmine rida algab operaatorist. if condition1 &amp;&amp; condition2 ... end\n<li class=\"l\"> Lisatud on meetodid Array#find ja \"Array#rfind\" efektiivsemate elementide otsimiseks massiivist, t\u00f6\u00f6 k\u00e4ib kiiremini kui \"array.reverse_each.find\" ja \"Enumerable#find\".\n<li class=\"l\"> Klassid Set ja Pathname on viidud sisseehitatud klasside hulka.\n<li class=\"l\"> Rohkem v\u00f5imalusi on lisatud paljudele p\u00f5hiklassidele, nagu Binding, Enumerator, ErrorHighlight, Fiber, File, IO, Kernel, Math, Proc, Range, Socket, String, Thread.\n<li class=\"l\"> Sisseehitatud ja standardraamatukogu gem-modulite versioonid on ajakohastatud.   <\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64494\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ruby 4.0.0, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0432\u043e\u0431\u0440\u0430\u0432\u0448\u0435\u0433\u043e \u0432 \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0438\u0435 \u0447\u0435\u0440\u0442\u044b Perl, Java, Python, Smalltalk, Eiffel, Ada \u0438 Lisp. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438 BSD (&#171;2-clause BSDL&#187;) \u0438 &#171;Ruby&#187;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 GPL \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 GPLv3. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f: \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u043e\u0432\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-152664","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ruby 4.0.0, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0432\u043e\u0431\u0440\u0430\u0432\u0448\u0435\u0433\u043e \u0432 \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0438\u0435 \u0447\u0435\u0440\u0442\u044b Perl, Java, Python, Smalltalk, Eiffel, Ada \u0438 Lisp. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438 BSD (&quot;2-clause BSDL&quot;) \u0438 &quot;Ruby&quot;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 GPL \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 GPLv3. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f: \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u043e\u0432\u044b\u0439\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Ruby 4.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ruby 4.0.0, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0432\u043e\u0431\u0440\u0430\u0432\u0448\u0435\u0433\u043e \u0432 \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0438\u0435 \u0447\u0435\u0440\u0442\u044b Perl, Java, Python, Smalltalk, Eiffel, Ada \u0438 Lisp. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438 BSD (&quot;2-clause BSDL&quot;) \u0438 &quot;Ruby&quot;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 GPL \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 GPLv3. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f: \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u043e\u0432\u044b\u0439\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-12-25T15:11:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-12-25T15:11:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ruby 4.0 programmeerimiskeel on avaldatud | ProHoster","description":"Ilmus Ruby 4.0.0, d\u00fcnaamiline objekti-orienteeritud programmeerimiskeel, mis keskendub k\u00f5rgele arendust\u00f5hususele ja sisaldab parimaid omadusi keeltest Perl, Java, Python, Smalltalk, Eiffel, Ada ja Lisp. Projekti kood levitatakse BSD (\u201e2-clause BSDL\u201c) ja \u201eRuby\u201c litsentside alusel, mis viitab viimasele GPL litsentsile ja on \u00fchilduv GPLv3-ga. Peamised parandused: Uus versioon on kaasatud.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Ruby 4.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ruby 4.0.0, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0432\u043e\u0431\u0440\u0430\u0432\u0448\u0435\u0433\u043e \u0432 \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0438\u0435 \u0447\u0435\u0440\u0442\u044b Perl, Java, Python, Smalltalk, Eiffel, Ada \u0438 Lisp. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438 BSD (&quot;2-clause BSDL&quot;) \u0438 &quot;Ruby&quot;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 GPL \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 GPLv3. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f: \u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u043e\u0432\u044b\u0439","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-12-25T15:11:54+00:00","article:modified_time":"2025-12-25T15:11:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"152664","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-22 15:32:28","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-20 13:48:21","updated":"2026-02-22 15:32:28"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/152664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=152664"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/152664\/revisions"}],"predecessor-version":[{"id":162524,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/152664\/revisions\/162524"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=152664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=152664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=152664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}