{"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\/de\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0","title":{"rendered":"Die Programmiersprache Ruby 4.0 wurde ver\u00f6ffentlicht.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ruby 4.0.0 wurde ver\u00f6ffentlicht, eine dynamische objektorientierte Programmiersprache, die sich auf hohe Effizienz in der Softwareentwicklung konzentriert und die besten Eigenschaften von Perl, Java, Python, Smalltalk, Eiffel, Ada und Lisp vereint. Der Code des Projekts wird unter den Lizenzen BSD (\u201e2-clause BSDL\u201c) und \u201eRuby\u201c verbreitet, die sich auf die neueste Version der GPL beziehen und mit GPLv3 kompatibel sind.    <\/p>\n<p>Wesentliche Verbesserungen:   <\/p>\n<ul>\n<li class=\"l\"> Im neuen Release ist der JIT-Compiler ZJIT enthalten, der als n\u00e4chste Generation des Ruby JIT positioniert wird. Standardm\u00e4\u00dfig wird der JIT-Compiler YJIT verwendet, w\u00e4hrend ZJIT optional aktiviert werden kann (mit dem Flag \u201e--zjit\u201c). Wie YJIT wurde auch der neue JIT-Compiler von einem Team von Entwicklern bei Shopify in der Programmiersprache Rust entwickelt, um die Leistung von Ruby-Anwendungen zu verbessern, die das Rails-Framework nutzen und viele Methodenaufrufe erzeugen. In der aktuellen Entwicklungsphase ist ZJIT schneller als der Interpreter, bleibt jedoch in der Leistung hinter YJIT zur\u00fcck (es wird erwartet, dass ZJIT in Ruby 4.1 stabilisiert wird und YJIT \u00fcbertrifft).\n<p>Im Gegensatz zu YJIT \u00fcbersetzt der neue JIT-Compiler den Bytecode der YARV-VM nicht in eine low-level Zwischenrepr\u00e4sentation, die nah am Maschinen-Code ist, sondern in eine hochentwickelte Zwischenrepr\u00e4sentation SSA (Static Single Assignment). Dies erm\u00f6glicht zus\u00e4tzliche Optimierungsphasen und die Optimierung gro\u00dfer Codebl\u00f6cke, nicht nur der aktuellen Operationen. Um neue Mitwirkende zu gewinnen, implementiert ZJIT die klassische JIT-Architektur, die auf historischen Datens\u00e4tzen \u00fcber Typen basiert, die der Interpreter gesammelt hat, anstelle der komplizierten Technik der Versionskontrolle von Basisbl\u00f6cken (LBBV \u2014 Lazy Basic Block Versioning), die in YJIT verwendet wird.    <\/p>\n<li class=\"l\"> Eine experimentelle Klasse Ruby::Box wurde hinzugef\u00fcgt, die einen Isolationsmechanismus implementiert, der die Ausf\u00fchrung von Klassen, Modulen und Monkey-Patches (\u00fcberlagerten Methoden und Attributen) innerhalb eines Prozesses trennt. Mit Ruby::Box kann auch die Ausf\u00fchrung des Anwendungs-Codes von Ruby-Bibliotheken getrennt werden, um die Isolierung von Tests zu gew\u00e4hrleisten und die gleichzeitige Ausf\u00fchrung von Web-Handlern in einem Prozess zu organisieren. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/dts-los-angeles\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3995\">Server<\/a> Anwendungen (zum Beispiel f\u00fcr den schrittweisen Austausch einer Version des Codes gegen eine andere oder f\u00fcr die Aktualisierung von Abh\u00e4ngigkeiten). Um Ruby::Box zu aktivieren, sollte die Umgebungsvariable \u201eRUBY_BOX=1\u201c gesetzt werden.      # foo.rb     class String       def self.foo = \u201efoo\u201c     end       # main.rb     box = Ruby::Box.new     box.require(\u2018foo\u2019)\n<li class=\"l\"> Die Implementierung des Ractor-Aktor-Modells wurde \u00fcberarbeitet und bietet eine Abstraktion im Stil von \"Akteuren\" (Ruby-Aktor), um eine threadsichere parallele Ausf\u00fchrung von Programmen zu erm\u00f6glichen, wobei die Interaktion zwischen den Threads \u00fcber das Versenden von Nachrichten erfolgt. Eine neue Klasse Ractor::Port wurde hinzugef\u00fcgt, um Probleme beim Senden und Empfangen von Nachrichten zu l\u00f6sen. Zudem wurde die Methode Ractor.shareable_proc eingef\u00fchrt, um den gemeinsamen Zugriff auf Proc-Objekte aus verschiedenen Akteuren zu erleichtern. Die Datenstrukturen wurden optimiert, um die Konflikte bei der Implementierung globaler Sperren zu reduzieren und die Effizienz der CPU-Caches zu steigern. Im kommenden Jahr soll Ractor als stabile Funktion eingestuft werden.  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\"> Der Operator \"*nil\" gibt jetzt sofort ein leeres Array (\"[]\") zur\u00fcck, ohne einen Zwischenschritt \u00fcber die Methode \"nil.to_a\" durchzuf\u00fchren, \u00e4hnlich wie \"**nil\" sofort einen leeren Hash zur\u00fcckgibt, ohne \"nil.to_hash\" aufzurufen.\n<li class=\"l\"> Es ist erlaubt, Zeilen mit den logischen Operatoren \u00ab||\u00bb, \u00ab&amp;&amp;\u00bb, \u00aband\u00bb und \u00abor\u00bb so aufzubrechen, dass die n\u00e4chste Zeile mit dem Operator beginnt.      if condition1       &amp;&amp; condition2      \u2026    end\n<li class=\"l\"> Die Methoden Array#find und \u00abArray#rfind\u00bb wurden hinzugef\u00fcgt, um Elemente in einem Array effizienter zu suchen. Sie arbeiten schneller als \u00abarray.reverse_each.find\u00bb und \u00abEnumerable#find\u00bb.\n<li class=\"l\"> Die Klassen Set und Pathname wurden in die Liste der eingebauten Klassen aufgenommen.\n<li class=\"l\"> Die Funktionen vieler grundlegender Klassen wie Binding, Enumerator, ErrorHighlight, Fiber, File, IO, Kernel, Math, Proc, Range, Socket, String, Thread wurden erweitert.\n<li class=\"l\"> Die Versionen der eingebauten und in die Standardbibliothek integrierten Gem-Module wurden aktualisiert.   <\/ul>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Die Programmiersprache Ruby 4.0 ver\u00f6ffentlicht | ProHoster","description":"Die Ver\u00f6ffentlichung von Ruby 4.0.0 ist erfolgt, einer dynamischen, objektorientierten Programmiersprache, die auf h\u00f6chste Effizienz bei der Softwareentwicklung ausgerichtet ist und die besten Eigenschaften von Perl, Java, Python, Smalltalk, Eiffel, Ada und Lisp vereint. Der Quellcode des Projekts wird unter den Lizenzen BSD (\"2-clause BSDL\") und \"Ruby\" vertrieben, wobei letztere auf die neueste Version der GPL verweist und mit GPLv3 kompatibel ist. Zu den wichtigsten Verbesserungen geh\u00f6ren ein neuer","canonical_url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/opublikovan-yazyk-programmirovaniya-ruby-4-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/152664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=152664"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/152664\/revisions"}],"predecessor-version":[{"id":162524,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/152664\/revisions\/162524"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=152664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=152664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=152664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}