{"id":454409,"date":"2025-04-02T03:01:18","date_gmt":"2025-04-02T03:01:18","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=454409"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=454409","title":{"rendered":"<span>Scala Digest. \u0412\u044b\u043f\u0443\u0441\u043a 27<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e0\/062\/be1\/3e0062be1cc5dbc61486eab99a5a0ba2.png\" width=\"1560\" height=\"880\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3e0\/062\/be1\/3e0062be1cc5dbc61486eab99a5a0ba2.png\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b\u00a0\u2014 <a href=\"https:\/\/habr.com\/ru\/users\/Melkaya_150cm\/\">\u041d\u0430\u0441\u0442\u044f<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/EvieLynn\/\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/haskiindahouse\/\">\u041c\u0438\u0448\u0430<\/a> \u2014 \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422-\u0411\u0430\u043d\u043a\u0430, \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434 \u043d\u0430 Scala \u0438 \u0433\u043e\u0440\u0438\u043c \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f <a href=\"https:\/\/scalatimes.com\/\">Scala Times<\/a>, <a href=\"https:\/\/substack.com\/@petrzapletal835534\">\u0431\u043b\u043e\u0433 Petr Zapletal<\/a> \u0438 <a href=\"https:\/\/t.me\/scala_channel_ru\">\u043a\u0430\u043d\u0430\u043b Scala Nishtyaki<\/a>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0430\u043f\u0440\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f: \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0430\u0432\u0430\u0442\u0430\u0440\u043e\u043a \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0447\u043a\u0438 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u0442\u0438\u043a\u043e\u0432. \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u043c\u044b \u0447\u0435\u0440\u043f\u0430\u0435\u043c \u0438\u0437 \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438. <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u043b\u044e\u0431\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c! \u2014\u0e05\/\u1420. \u032b .\u141f\\\u0e05 \u2014<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/scala\/scala3\/releases\/tag\/3.7.0-RC1\">scala 3.7.0-RC1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/cats-effect\/releases\/tag\/v3.6.0\">cats-effect 3.6.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio-http\/releases\/tag\/v3.2.0\">zio-http 3.2.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio-kafka\/releases\/tag\/v2.12.0\">zio-kafka 2.12.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/interop-cats\/releases\/tag\/v23.1.0.5\">zio-interop-cats 23.1.0.5<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/grouzen\/zio-apache-arrow\/releases\/tag\/v0.1.7\">zio-apache-arrow 0.1.7<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/sbt\/sbt\/releases\/tag\/v1.10.11\">sbt 1.10.11<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalameta\/metals\/releases\/tag\/v1.5.2\">metals v1.5.2 strontium<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/VirtusLab\/scala-cli\/releases\/tag\/v1.7.1\">scala-cli 1.7.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/mill\/releases\/tag\/0.12.9\">mill 0.12.9<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/circe\/circe\/releases\/tag\/v0.14.12\">circe 0.14.12<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/Iltotore\/iron\/releases\/tag\/v3.0.0\">iron 3.0.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/disneystreaming\/smithy4s\/releases\/tag\/v0.18.31\">smithy4s 0.18.31<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/sttp\/releases\/tag\/v4.0.0-RC2\">sttp 4.0.0-RC2<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/tapir\/releases\/tag\/v1.11.20\">tapir 1.11.20<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/tofu-tf\/tofu\/releases\/tag\/v0.13.7\">tofu 0.13.7<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/PurpleKingdomGames\/tyrian\/releases\/tag\/v0.13.0\">tyrian 0.13.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/arturaz\/doobie-typesafe\/releases\/tag\/v0.4.1\">doobie-typesafe 0.4.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/scalasql\/releases\/tag\/0.1.16\">scalasql 0.1.16<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/slick\/slick\/releases\/tag\/v3.6.0\">slick 3.6.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/fs2\/releases\/tag\/v3.12.0\">fs2 3.12.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/kittens\/releases\/tag\/v3.5.0\">kittens 3.5.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/arainko\/ducktape\/releases\/tag\/v0.2.8\">ducktape 0.2.8<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/ghostdogpr\/caliban\/releases\/tag\/v2.10.0\">caliban 2.10.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/creativescala\/terminus\/releases\/tag\/v0.4.0\">terminus 0.4.0<\/a>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p>\u0414\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438. \u0410 \u0435\u0449\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Scala 3. Enjoy:<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/878396\/\"><strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0434\u0435\u043b\u043e \u0440\u0443\u043a \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/strong><\/a><strong> <\/strong>\u2014 scala-\u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u043f\u0438\u0448\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435! \/\u2572\/\\\u256d\u0f3c \u00ba\u00ba\u0644\u035f\u00ba\u00ba \u0f3d\u256e\/\\\u2571\\ \u0420\u043e\u043c\u0430 \u043d\u0430\u0448 \u0434\u0440\u0443\u0433, \u0430 \u043a \u0434\u0440\u0443\u0437\u044c\u044f\u043c \u043e\u0441\u043e\u0431\u043e \u0441\u0442\u0440\u043e\u0433\u043e:\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed5\/b40\/1e6\/ed5b401e6a4f77e71ce7d843290ebae9.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed5\/b40\/1e6\/ed5b401e6a4f77e71ce7d843290ebae9.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u0418\u0434\u0435\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442\u044f\u0449\u0430\u044f, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a5\/1ea\/1f8\/3a51ea1f8422397fa06df4c76ffa768b.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a5\/1ea\/1f8\/3a51ea1f8422397fa06df4c76ffa768b.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u042f \u0442\u0435\u0441\u0442\u0438\u043b \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0432\u043e\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u2014 \u0438\u0434\u0435\u044f \u043a\u0440\u0443\u0442\u0430\u044f, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0437\u0430\u0438\u0433\u0440\u0430\u043b\u0430 \u043f\u043e\u043b\u043d\u044b\u043c\u0438 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 readme.md \u0432\u0438\u0434\u0435\u0442\u044c \u0432 2\u043a25. \u0410 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 scala3 + scalameta + semanticdb \u0438 \u0432 \u043a\u043e\u043c\u043f\u0430\u0439\u043b-\u0442\u0430\u0439\u043c\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0448\u0442\u0443\u043a\u0438. \u0418 \u043f\u0440\u0438\u043a\u0438\u043d\u044c\u0442\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432 github pipelines \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0438 \u043a\u0430\u043a github.pages \u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 \u0441\u0440\u0430\u0437\u0443! \u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u0431\u044b \u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430 \u0434\u043b\u044f open-source<\/p>\n<\/div>\n<p><a href=\"https:\/\/lachlan.hashnode.dev\/every-argument-for-static-typing-applies-to-typed-errors\"><strong>Every Argument for Static Typing Applies to Typed Errors<\/strong><\/a><strong> <\/strong>\u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a: \u0435\u0441\u043b\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u0438\u043f\u044b, \u0442\u043e \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2c5\/6ff\/bae\/2c56ffbae578e9ac9e332ecbd15c4a9f.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2c5\/6ff\/bae\/2c56ffbae578e9ac9e332ecbd15c4a9f.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0448\u044c \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u2014 \u0434\u0443\u043c\u0430\u0439 \u043a\u0430\u043a \u043e\u0448\u0438\u0431\u043a\u0430 \/\u2572\/( \u2022\u0300 \u03c9 \u2022\u0301 )\/\\\u2571\\<\/p>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5c0\/059\/a2d\/5c0059a2d02e76fb384ce838ac44fee4.png\" width=\"1071\" height=\"538\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5c0\/059\/a2d\/5c0059a2d02e76fb384ce838ac44fee4.png\"\/><\/figure>\n<p><a href=\"https:\/\/medium.com\/starodubtsev-consulting\/scala-12-years-later-3f2801911bb5\"><strong>Dreamers<\/strong><\/a> \u2014 \u00ab\u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e <s>\u0440\u0430\u0441\u0442\u0443\u0442 \u0447\u0443\u0436\u0438\u0435 \u0434\u0435\u0442\u0438<\/s> \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u044f\u0437\u044b\u043a\u0438 \u0438 \u0442\u0443\u043b\u0438\u043d\u0433\u00bb, \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f \u043e\u0431 \u0443\u0441\u043f\u0435\u0445\u0430\u0445 Scala \u0441\u043f\u0443\u0441\u0442\u044f 13 \u043b\u0435\u0442. \u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438: \u0430\u0432\u0442\u043e\u0440 \u0441\u043e \u0441\u0432\u0435\u0436\u0438\u043c \u0438 \u043d\u0435\u0437\u0430\u043c\u044b\u043b\u0435\u043d\u043d\u044b\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u0442\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 IDE \u0441 \u044f\u0437\u044b\u043a\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0445\u0432\u0430\u043b\u0438\u043b \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 sbt.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afa\/385\/c1c\/afa385c1cb130df443c24dcd8279172f.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/afa\/385\/c1c\/afa385c1cb130df443c24dcd8279172f.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0410 \u0432\u044b \u0442\u043e\u0436\u0435 \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0431\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a\u0438 \u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e? \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0441\u0435\u0431\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043a\u0443 \u0432 2012 \u0433\u043e\u0434\u0443 \u043d\u0430 2022 \u0433\u043e\u0434, \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u0438\u0448\u044c \u0432 2025. \u041a\u0430\u043a \u0436\u0435 \u043c\u043d\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e, \u043b\u043e\u043b (b \u1d54\u25bd\u1d54)b<\/p>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5dd\/c1f\/ae9\/5ddc1fae93cd8fde1a11c7e8793f9124.png\" width=\"1520\" height=\"1568\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dd\/c1f\/ae9\/5ddc1fae93cd8fde1a11c7e8793f9124.png\"\/><\/figure>\n<p><a href=\"https:\/\/blog.pierre-ricadat.com\/debugging-session-2-scala-3-lazy-vals-and-serialization\"><strong>Debugging session #2: Scala 3 lazy vals &amp; serialization<\/strong><\/a> \u2014 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445. \u041d\u0435 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0438\u0448\u043a\u0430\u0445: \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043c\u043f\u044b, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 Scala2\/Scala3, \u0438\u0441\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445 \u2014 \u043b\u0438\u0448\u044c \u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eff\/3e0\/6a2\/eff3e06a2cacc7d830aebc725daf24a3.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eff\/3e0\/6a2\/eff3e06a2cacc7d830aebc725daf24a3.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u042f \u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0448\u0435\u043b \u0438\u0441\u043a\u0430\u0442\u044c <a href=\"https:\/\/github.com\/scala\/scala3\/issues\/20856\">\u0438\u0448\u044c\u044e-\u0442\u0438\u043a\u0435\u0442<\/a>, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432 1,5\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0448\u044c\u044e \u043e \u0447\u0435\u043c-\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442<\/p>\n<\/div>\n<p><a href=\"https:\/\/medium.com\/@avuzia\/declarative-golang-python-java-scala-kotlin-f68397b63826\"><strong>Declarative Python, Java, Scala, Kotlin. Imperative Golang<\/strong><\/a> \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b, \u043a\u0430\u043a \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u044b, \u0438 \u0442\u0430\u043a \u0437\u043d\u0430\u0435\u043c: \u043a\u0430\u043a \u0436\u0435 \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e Scala \u0438 Kotlin.<\/p>\n<p><a href=\"https:\/\/iamsarathchandra.medium.com\/mastering-currying-in-scala-a-functional-programming-powerhouse-ce88a3edf3ce\"><strong>Mastering Currying in Scala: A Functional Programming Powerhouse<\/strong><\/a> \u2014 \u0425\u0430\u0441\u043a\u0435\u043b\u043b\u0443 \u041a\u0430\u0440\u0440\u0438 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0431\u044b \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0434\u044b. \u0418 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0431\u0430\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0441 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0435\u0439 \u0442\u0430\u0439\u043f-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/p>\n<p><a href=\"https:\/\/yadukrishnan.live\/a-generic-approach-to-parsing-csv-into-case-classes-in-scala-3\"><strong>A Generic Approach to Parsing CSV into Case Classes in Scala 3<\/strong><\/a> \u2014 \u0430 \u043d\u0438\u0447\u0435 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f _.split(&#171;,&#187;), \u043e\u043d \u0441\u0442\u0430\u0432\u0438\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e CSV? \u041e\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0439? \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Mirror \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043d\u0435\u0447\u0430\u044f\u043d\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c inline.<\/p>\n<p><a href=\"https:\/\/medium.com\/swissborg-engineering\/from-python-to-scala-rewriting-27k-lines-of-a-cli-8513e20cd268\"><strong>From Python to Scala: Rewriting 27k Lines of a CLI<\/strong><\/a> \u2014 \u0441\u0435\u0440\u0434\u0446\u0435 \u043e\u0431\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0442\u043e\u043a\u043e\u0439 \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 <abbr class=\"habraabbr\" title=\"\u0434\u0430\u0439\u0442\u0435 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 Scala\" data-title=\"&lt;p&gt;\u0434\u0430\u0439\u0442\u0435 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 Scala&lt;\/p&gt;\" data-abbr=\"\u00ab\u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb\">\u00ab\u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb<\/abbr>, \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443 \u0432\u0430\u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u0431\u044d\u043a\u043b\u043e\u0433.<\/p>\n<p><a href=\"https:\/\/fpilluminated.org\/deck\/256\"><strong>Drawing Heighway\u2019s Dragon &#8212; Recursive Function Rewrite &#8212; From Imperative Style in Pascal 64 To Functional Style in Scala 3<\/strong><\/a> \u2014 \u043d\u0430\u0448\u0438 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0441\u043b\u0430\u0439\u0434\u0438\u043a\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f: \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441 \u041f\u0430\u0441\u043a\u0430\u043b\u044f \u043d\u0430 \u0421\u043a\u0430\u043b\u0443.<\/p>\n<p><a href=\"https:\/\/virtuslab.com\/blog\/scala\/infrastructure-as-type-ops\/\"><strong>Infrastructure as types: introducing TypeOps<\/strong><\/a> \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b terraform-\u0430 \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0448\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u043b\u044c\u043a\u043b\u043e\u0440\u0430.\u00a0<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f42\/7ff\/ae5\/f427ffae5dfae29b7e3a34043b73f040.png\" width=\"304\" height=\"166\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f42\/7ff\/ae5\/f427ffae5dfae29b7e3a34043b73f040.png\"\/><\/figure>\n<p><a href=\"https:\/\/mill-build.org\/blog\/11-jvm-test-parallelism.html\"><strong>Strategies for Efficiently Parallelizing JVM Test Suites<\/strong><\/a> \u2014 \u041b\u0438 \u0425\u0430\u043e\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043d\u0446\u0435\u0432\u0430\u0442\u044c \u0441 \u0431\u0443\u0431\u043d\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 dynamic\/static sharding \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/yadukrishnan.live\/series\/data-plumber\"><strong>Data Plumber &#8212; Data Integration Pipeline<\/strong><\/a> \u2014 \u0441\u0435\u0440\u0438\u044f \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e ETL-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430: \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e fs2. \u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/yadavan88\/data-plumber\">\u043d\u0430 GitHub.<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/yadro\/articles\/890476\/\"><strong>Scala\/Chisel \u043f\u0440\u043e\u0442\u0438\u0432 SystemVerilog: \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0441\u0445\u0435\u043c\u044b<\/strong><\/a> \u2014 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0423 \u0430\u0432\u0442\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 DSL \u043d\u0430 Scala, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0421\u0430\u043c \u0430\u0432\u0442\u043e\u0440 \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432, \u043a\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u0435 higher-order functions, \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c.<\/p>\n<p><a href=\"https:\/\/lachlan.hashnode.dev\/using-a-c-library-from-scala-native\"><strong>Using a C library from Scala Native<\/strong><\/a> \u2014 \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e: \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430 C, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0435\u0435 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043d\u0430 Scala Native \u2014 \u0438 \u0432\u0443\u0430\u043b\u044f! \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0442\u0430 \u043b\u0430\u044f\u0442\u044c, \u0430 \u0441\u043e\u0431\u0430\u043a\u0443 \u043c\u0443\u0440\u043b\u044b\u043a\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0442\u043e \u0432\u0435\u043b\u043a\u043e\u043c!<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0435\u0439 (\u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e Spark)<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@suffyan.asad1\/spark-essentials-a-guide-to-setting-up-and-running-spark-projects-with-scala-and-sbt-80e2680d3528\">Spark Essentials: A Guide to Setting up and Running Spark projects with Scala and sbt<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@jr.vera.ma\/exploring-spark-and-airflow-integration-for-submitting-python-and-scala-jobs-f9b22e9b18e7\">Exploring Spark and Airflow Integration for Submitting Python and Scala Jobs<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@nimshi\/counting-files-using-spark-and-scala-with-regex-matching-943c6c7a3c2d\">Counting Files Using Spark and Scala with Regex Matching<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@umanium\/date-and-time-in-scala-3-66beac7b0544\">Date and Time in Scala 3<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>\u0412\u0438\u0434\u0435\u043e \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u043d\u0430 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u043e Scala.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=tmpPueoffVM\"><strong>Martin Odersky on the Future of Scala, Learning, Teaching and the Quest for the Perfect Language<\/strong><\/a> \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0447\u0430\u0442\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0421\u043a\u0430\u043b\u044b <a href=\"https:\/\/www.scala-lang.org\/blog\/2025\/03\/24\/evolving-scala.html\">\u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.<\/a> \u041d\u0430\u043c \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0421\u043a\u0430\u043b\u0443 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u0444\u0438\u0447, \u043a\u0430\u043a capture-checking, safe-initialization, \u0438 \u0434\u0440\u0443\u0433\u0438\u0445. \u041f\u0440\u0438\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0430\u0441 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u041e\u0434\u0435\u0440\u0441\u043a\u0438: \u043d\u0435 \u0431\u043e\u0439\u0442\u0435\u0441\u044c \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 Scala! #makeScalaGreatAgain<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=8TMvIIoaAPs\"><strong>Introduction to Scala 3 Macros &#8212; How Macros Work, Quoting, Matching and Reflection<\/strong><\/a><strong> <\/strong>\u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u043e\u043b\u0438\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/811\/387\/4e7\/8113874e7fdcd0c0262d9de61ac36821.png\" width=\"718\" height=\"476\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/811\/387\/4e7\/8113874e7fdcd0c0262d9de61ac36821.png\"\/><\/figure>\n<p><a href=\"https:\/\/watch.softinio.com\/w\/kd4jF8jWHCpWbnckAcre6S\"><strong>Let&#8217;s Teach LLMs to Write Great Scala! By Kannupriya Kalra<\/strong><\/a><strong> <\/strong>\u2014 Scala \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0432 \u043f\u043e\u0435\u0437\u0434 \u0445\u0430\u0439\u043f\u0430 AI, \u043b\u0438\u0448\u044c \u0431\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043a\u043e\u0434 \u043d\u0430 Scala.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/58e\/f39\/938\/58ef39938117a552c2e625b804405724.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58e\/f39\/938\/58ef39938117a552c2e625b804405724.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0422\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f, \u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0445\u0440\u043e\u043c\u0430\u0435\u0442\u2026 \u041d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u043a MCP \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f<\/p>\n<\/div>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=O4IMED7sHgo\"><strong>Scala in 2025: How to Start, What to Learn | Functional World #16<\/strong><\/a> \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u0448\u0438\u043c \u0434\u0436\u0443\u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c <s>\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439<\/s> \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=akKLlEcCSBg\"><strong>IntelliJ IDEA x Scala &#8212; Inlay Hints and X-Ray Mode<\/strong><\/a> \u2014 \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JetBrains \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u043d\u0430\u0441 \u0441 \u0444\u0438\u0447\u0430\u043c\u0438 Idea \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u043e\u0432 (\u2764\u03c9\u2764)\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3d9\/304\/6ad\/3d93046ad379269ad436ff10ad8677c6.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d9\/304\/6ad\/3d93046ad379269ad436ff10ad8677c6.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u0421\u043a\u0430\u043b\u0430-\u043a\u043e\u0442\u044f\u0442\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u044e\u0442, \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438<\/p>\n<\/div>\n<h2>Tooling<\/h2>\n<p>\u041a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<p><a href=\"https:\/\/github.com\/rcardin\/yaes\"><strong>yaes<\/strong><\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b, Y\u00c6S \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u0435\u0436\u0438\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u0437\u043c\u0443 \u0444\u0438\u0447 Scala 3.<\/p>\n<p><a href=\"https:\/\/mercurievv.github.io\/minuscles\/readme.html\"><strong>Tuples transformations<\/strong><\/a> \u2014 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0443\u043f\u043b\u0430\u043c\u0438, \u043c\u0430\u0441\u0442\u0445\u044d\u0432 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430.<\/p>\n<p><a href=\"https:\/\/github.com\/polentino\/redacted\"><strong>redacted<\/strong><\/a> \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0442\u0443\u043b\u0437\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u043b\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043d \u0441\u0432\u0435\u0442\u0438\u0442 \u0432 \u043b\u043e\u0433\u0430\u0445.\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a40\/797\/538\/a407975387b5bfbbb422fd138ef089cb.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a40\/797\/538\/a407975387b5bfbbb422fd138ef089cb.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u043a\u0430, \u0443 \u043d\u0430\u0441 \u0441\u0430\u043c\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u0435\u0434\u044c \u0441 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0443\u0442\u0435\u043a\u0430\u043b\u0438 (\u256f\u02d8-\u02d8)\u256f<\/p>\n<\/div>\n<h2>Highlights<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0436\u0438\u0435, \u043d\u043e \u0437\u0430\u0446\u0435\u043f\u0438\u0432\u0448\u0438\u0435 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043e\u0434 \u0444\u043b\u0430\u0433\u043e\u043c \u00ab\u043e\u0447\u0443\u043c\u0435\u043b\u044b\u0435 \u0440\u0443\u0447\u043a\u0438\u00bb. \u0410\u0432\u0442\u043e\u0440\u044b \u0442\u0432\u043e\u0440\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0435, \u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p><a href=\"https:\/\/codeberg.org\/jjba23\/pop-test\"><strong>pop-test<\/strong><\/a><strong> <\/strong>\u2014 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 healthckeck\u2019\u043e\u0432 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 Postgres, Kafka \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0440\u0435\u043b\u044b\u0435 \u0442\u0435\u0441\u0442\u044b.<\/p>\n<p><a href=\"https:\/\/lexp.lt\/posts\/generating_swaggers_at_compile_time\/\"><strong>Generating swaggers at compile time<\/strong><\/a> \u2014 \u0441\u0432\u0435\u0436\u0438\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e Swagger, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0435. \u041d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u043a\u0430 \u043d\u043e\u043b\u044c \u0437\u0432\u0435\u0437\u0434.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2da\/815\/54a\/2da81554a336cfa8f3dee8533dfc580b.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2da\/815\/54a\/2da81554a336cfa8f3dee8533dfc580b.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0425\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0432 Tapir<\/p>\n<\/div>\n<p><a href=\"https:\/\/github.com\/PurpleKingdomGames\/roguelike-starterkit\"><strong>roguelike-starterkit<\/strong><\/a><strong> <\/strong>\u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0444\u0430\u043d\u0430\u0442 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440\u0443\u0448\u0435\u043a, \u0442\u043e \u0432\u043e\u0442 \u0432\u0430\u043c \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0447\u0435\u0440. \u0415\u0441\u043b\u0438 \u0432 \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u043b\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0436\u0434\u0438\u0442\u0435 \u0438\u0433\u0440\u0443 \u043f\u0440\u043e \u043d\u0430\u0448 Scala-\u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0432 \u0442\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (\u2229` \uff9b \u00b4)\u2283\u2501\u708e\u708e\u708e\u708e\u708e<\/p>\n<p><a href=\"https:\/\/github.com\/indoorvivants\/scala-uri\"><strong>scala-uri<\/strong><\/a> \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043a \u0441\u0442\u0430\u0440\u043e\u0439 \u043b\u0438\u0431\u044b.<\/p>\n<p><a href=\"https:\/\/github.com\/dwickern\/scala-nameof\"><strong>scala-nameof<\/strong><\/a> \u2014 \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u043e\u0431\u0440\u043e\u0433\u043e nameof \u0438\u0437 C#, \u043d\u043e \u0432\u0430\u043c \u043b\u0435\u043d\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c import quotes.reflect.* \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c 20 \u0441\u0442\u0440\u043e\u043a, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043b\u0438\u0431\u0443.<\/p>\n<p><a href=\"https:\/\/github.com\/indoorvivants\/toml-scala\"><strong>toml-scala<\/strong><\/a> \u2014 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438 \u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 TOML?<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/993\/c43\/527\/993c435273b4346146a50b7ec6017f32.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/993\/c43\/527\/993c435273b4346146a50b7ec6017f32.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0412 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435 \u044f\u0437\u044b\u043a\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\/\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u0435\u043d\u044c \u043e\u0442\u043e \u0434\u043d\u044f \u043d\u0435 \u0441\u044b\u0449\u0435\u0448\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0434\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0435\u0439-\u0431\u043e\u0433\u0443 (\uff1b\uffe3\u0414\uffe3)<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff7\/79f\/fdd\/ff779ffdda43daf4ac873ba7b3636462.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff7\/79f\/fdd\/ff779ffdda43daf4ac873ba7b3636462.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0410 \u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0432\u044b \u0443\u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 yaml, json, soap \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0435\u0449\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043a\u0435\u043c-\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f TOML? \u042f \u2014 \u0432 \u0441\u0435\u0439\u0447\u0430\u0441 \u043b\u0435\u0442<\/p>\n<\/div>\n<h2>\u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u0434\u0432\u0438\u0436<\/h2>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0438 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u043c\u0438\u0440\u0435 Scala-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u043c \u0438 \u0436\u0438\u0432\u044b\u043c. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0436\u0434\u0435\u043c \u0432\u0430\u0441 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p><a href=\"https:\/\/www.scala-lang.org\/blog\/2025\/02\/25\/rock-the-jvm-partnership.html\"><strong>Rock the JVM partners with the Scala Center<\/strong><\/a> \u2014 RockTheJVM \u043e\u0442\u0447\u0438\u0441\u043b\u044f\u0435\u0442 Scala Center \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 30% \u0437\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u043a\u0430\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435 scala-lang.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ec8\/8e2\/99c\/ec88e299c16b539a59b0ab43a2df4ed1.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec8\/8e2\/99c\/ec88e299c16b539a59b0ab43a2df4ed1.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0412 \u041c\u043e\u0441\u043a\u0432\u0435 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u042f\u043d\u0434\u0435\u043a\u0441 \u0422\u0430\u043a\u0441\u0438 \u0438 \u0442\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0441 \u0440\u0430\u0431\u043e\u0442\u044f\u0433!<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/adc\/c9c\/35c\/adcc9c35cf7426669179294b64610ea8.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/adc\/c9c\/35c\/adcc9c35cf7426669179294b64610ea8.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0435\u0431\u0435 \u043c\u0430\u0444\u0438\u044f, 30%<\/p>\n<\/div>\n<p><a href=\"https:\/\/typelevel.org\/blog\/2025\/02\/21\/spotify-foss-fund.html\"><strong>Spotify FOSS Fund 2024<\/strong><\/a> \u2014 Typelevel \u043f\u043e\u043b\u0443\u0447\u0438\u043b 20 000 \u20ac \u043e\u0442 Spotify. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043f\u043e\u043e\u0449\u0440\u0435\u043d\u0438\u0435 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0430\u043c\u0438.\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae1\/df8\/25d\/ae1df825d4d4d8de7a9c32aef74a4e06.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae1\/df8\/25d\/ae1df825d4d4d8de7a9c32aef74a4e06.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041a\u043e\u0442\u0438\u043a\u0430\u043c \u0434\u0430\u043b\u0438 \u0434\u0435\u043d\u0435\u0436\u0435\u043a, \u0438 \u043a\u043e\u0442\u0438\u043a\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/642\/652\/613\/64265261302ea31617d24b3f6ad5592c.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/642\/652\/613\/64265261302ea31617d24b3f6ad5592c.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u041f\u0440\u043e\u0448\u043b\u0430 \u0437\u0438\u043c\u0430, \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u043b\u0435\u0442\u043e \u2013\u2014 \u0441\u043f\u0430\u0441\u0438\u0431\u043e Spotify \u0437\u0430 \u044d\u0442\u043e!<\/p>\n<\/div>\n<p><a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/1jet8ls\/curious_to_know_how_many_have_adopted_scala_3\/\"><strong>Curious to know how many have adopted Scala 3<\/strong><\/a><strong> <\/strong>\u2014 \u0443\u0437\u043d\u0430\u0435\u043c \u043c\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043e Scala 3: \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0448\u043a\u0438, \u043a\u0430\u043a\u0438\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438?<\/p>\n<p>\u0414\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0441\u044f\u0446! \u2661\uff3c(\uffe3\u25bd\uffe3)\uff0f\u2661<\/p>\n<p>\u041d\u0430\u0434 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 <a class=\"mention\" href=\"\/users\/melkaya_150cm\">@Melkaya_150cm<\/a>, <a class=\"mention\" href=\"\/users\/evielynn\">@EvieLynn<\/a>, <a class=\"mention\" href=\"\/users\/haskiindahouse\">@haskiindahouse<\/a>. \u0412\u0430\u0448\u0438 \u0438\u0434\u0435\u0438, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u0436\u0434\u0435\u043c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445! &lt;(\uffe3\ufe36\uffe3)&gt;<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/790650\/\">Scala Digest #13<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/797411\/\">Scala Digest #14<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/804491\/\">Scala Digest #15<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/811047\/\">Scala Digest #16<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/819131\/\">Scala Digest #17<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/825906\/\">Scala Digest #18<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/833394\/\">Scala Digest #19<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/839846\/\">Scala Digest #20<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/847174\/\">Scala Digest #21<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/855240\/\">Scala Digest #22<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/862936\/\">Scala Digest #23<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/870380\/\">Scala Digest #24<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/879034\/\">Scala Digest #25<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/887474\/\">Scala Digest #26<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/896390\/\"> https:\/\/habr.com\/ru\/articles\/896390\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b\u00a0\u2014 <a href=\"https:\/\/habr.com\/ru\/users\/Melkaya_150cm\/\">\u041d\u0430\u0441\u0442\u044f<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/EvieLynn\/\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/haskiindahouse\/\">\u041c\u0438\u0448\u0430<\/a> \u2014 \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0422-\u0411\u0430\u043d\u043a\u0430, \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434 \u043d\u0430 Scala \u0438 \u0433\u043e\u0440\u0438\u043c \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f <a href=\"https:\/\/scalatimes.com\/\">Scala Times<\/a>, <a href=\"https:\/\/substack.com\/@petrzapletal835534\">\u0431\u043b\u043e\u0433 Petr Zapletal<\/a> \u0438 <a href=\"https:\/\/t.me\/scala_channel_ru\">\u043a\u0430\u043d\u0430\u043b Scala Nishtyaki<\/a>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0430\u043f\u0440\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f: \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0430\u0432\u0430\u0442\u0430\u0440\u043e\u043a \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0442\u043e\u0447\u043a\u0438 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u0442\u0438\u043a\u043e\u0432. \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u043c\u044b \u0447\u0435\u0440\u043f\u0430\u0435\u043c \u0438\u0437 \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438. <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u043b\u044e\u0431\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c! \u2014\u0e05\/\u1420. \u032b .\u141f\\\u0e05 \u2014<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/scala\/scala3\/releases\/tag\/3.7.0-RC1\">scala 3.7.0-RC1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/cats-effect\/releases\/tag\/v3.6.0\">cats-effect 3.6.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio-http\/releases\/tag\/v3.2.0\">zio-http 3.2.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio-kafka\/releases\/tag\/v2.12.0\">zio-kafka 2.12.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/interop-cats\/releases\/tag\/v23.1.0.5\">zio-interop-cats 23.1.0.5<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/grouzen\/zio-apache-arrow\/releases\/tag\/v0.1.7\">zio-apache-arrow 0.1.7<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/sbt\/sbt\/releases\/tag\/v1.10.11\">sbt 1.10.11<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalameta\/metals\/releases\/tag\/v1.5.2\">metals v1.5.2 strontium<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/VirtusLab\/scala-cli\/releases\/tag\/v1.7.1\">scala-cli 1.7.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/mill\/releases\/tag\/0.12.9\">mill 0.12.9<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/circe\/circe\/releases\/tag\/v0.14.12\">circe 0.14.12<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/Iltotore\/iron\/releases\/tag\/v3.0.0\">iron 3.0.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/disneystreaming\/smithy4s\/releases\/tag\/v0.18.31\">smithy4s 0.18.31<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/sttp\/releases\/tag\/v4.0.0-RC2\">sttp 4.0.0-RC2<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/tapir\/releases\/tag\/v1.11.20\">tapir 1.11.20<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/tofu-tf\/tofu\/releases\/tag\/v0.13.7\">tofu 0.13.7<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/PurpleKingdomGames\/tyrian\/releases\/tag\/v0.13.0\">tyrian 0.13.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/arturaz\/doobie-typesafe\/releases\/tag\/v0.4.1\">doobie-typesafe 0.4.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/scalasql\/releases\/tag\/0.1.16\">scalasql 0.1.16<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/slick\/slick\/releases\/tag\/v3.6.0\">slick 3.6.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/fs2\/releases\/tag\/v3.12.0\">fs2 3.12.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/typelevel\/kittens\/releases\/tag\/v3.5.0\">kittens 3.5.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/arainko\/ducktape\/releases\/tag\/v0.2.8\">ducktape 0.2.8<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/ghostdogpr\/caliban\/releases\/tag\/v2.10.0\">caliban 2.10.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/creativescala\/terminus\/releases\/tag\/v0.4.0\">terminus 0.4.0<\/a>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p>\u0414\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438. \u0410 \u0435\u0449\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Scala 3. Enjoy:<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/878396\/\"><strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0434\u0435\u043b\u043e \u0440\u0443\u043a \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/strong><\/a><strong> <\/strong>\u2014 scala-\u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u043f\u0438\u0448\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435! \/\u2572\/\\\u256d\u0f3c \u00ba\u00ba\u0644\u035f\u00ba\u00ba \u0f3d\u256e\/\\\u2571\\ \u0420\u043e\u043c\u0430 \u043d\u0430\u0448 \u0434\u0440\u0443\u0433, \u0430 \u043a \u0434\u0440\u0443\u0437\u044c\u044f\u043c \u043e\u0441\u043e\u0431\u043e \u0441\u0442\u0440\u043e\u0433\u043e:\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u0418\u0434\u0435\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442\u044f\u0449\u0430\u044f, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u042f \u0442\u0435\u0441\u0442\u0438\u043b \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0432\u043e\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u2014 \u0438\u0434\u0435\u044f \u043a\u0440\u0443\u0442\u0430\u044f, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0437\u0430\u0438\u0433\u0440\u0430\u043b\u0430 \u043f\u043e\u043b\u043d\u044b\u043c\u0438 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 readme.md \u0432\u0438\u0434\u0435\u0442\u044c \u0432 2\u043a25. \u0410 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 scala3 + scalameta + semanticdb \u0438 \u0432 \u043a\u043e\u043c\u043f\u0430\u0439\u043b-\u0442\u0430\u0439\u043c\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0448\u0442\u0443\u043a\u0438. \u0418 \u043f\u0440\u0438\u043a\u0438\u043d\u044c\u0442\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432 github pipelines \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0438 \u043a\u0430\u043a github.pages \u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 \u0441\u0440\u0430\u0437\u0443! \u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u0431\u044b \u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430 \u0434\u043b\u044f open-source<\/p>\n<\/div>\n<p><a href=\"https:\/\/lachlan.hashnode.dev\/every-argument-for-static-typing-applies-to-typed-errors\"><strong>Every Argument for Static Typing Applies to Typed Errors<\/strong><\/a><strong> <\/strong>\u2014 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a: \u0435\u0441\u043b\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u0438\u043f\u044b, \u0442\u043e \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0448\u044c \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u2014 \u0434\u0443\u043c\u0430\u0439 \u043a\u0430\u043a \u043e\u0448\u0438\u0431\u043a\u0430 \/\u2572\/( \u2022\u0300 \u03c9 \u2022\u0301 )\/\\\u2571\\<\/p>\n<\/div>\n<figure class=\"full-width\"><\/figure>\n<p><a href=\"https:\/\/medium.com\/starodubtsev-consulting\/scala-12-years-later-3f2801911bb5\"><strong>Dreamers<\/strong><\/a> \u2014 \u00ab\u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e <s>\u0440\u0430\u0441\u0442\u0443\u0442 \u0447\u0443\u0436\u0438\u0435 \u0434\u0435\u0442\u0438<\/s> \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u044f\u0437\u044b\u043a\u0438 \u0438 \u0442\u0443\u043b\u0438\u043d\u0433\u00bb, \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f \u043e\u0431 \u0443\u0441\u043f\u0435\u0445\u0430\u0445 Scala \u0441\u043f\u0443\u0441\u0442\u044f 13 \u043b\u0435\u0442. \u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438: \u0430\u0432\u0442\u043e\u0440 \u0441\u043e \u0441\u0432\u0435\u0436\u0438\u043c \u0438 \u043d\u0435\u0437\u0430\u043c\u044b\u043b\u0435\u043d\u043d\u044b\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c \u043e\u0442\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u0442\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 IDE \u0441 \u044f\u0437\u044b\u043a\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0445\u0432\u0430\u043b\u0438\u043b \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 sbt.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0410 \u0432\u044b \u0442\u043e\u0436\u0435 \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0431\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a\u0438 \u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e? \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0441\u0435\u0431\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043a\u0443 \u0432 2012 \u0433\u043e\u0434\u0443 \u043d\u0430 2022 \u0433\u043e\u0434, \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u0438\u0448\u044c \u0432 2025. \u041a\u0430\u043a \u0436\u0435 \u043c\u043d\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e, \u043b\u043e\u043b (b \u1d54\u25bd\u1d54)b<\/p>\n<\/div>\n<figure class=\"full-width\"><\/figure>\n<p><a href=\"https:\/\/blog.pierre-ricadat.com\/debugging-session-2-scala-3-lazy-vals-and-serialization\"><strong>Debugging session #2: Scala 3 lazy vals &amp; serialization<\/strong><\/a> \u2014 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445. \u041d\u0435 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0438\u0448\u043a\u0430\u0445: \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043c\u043f\u044b, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 Scala2\/Scala3, \u0438\u0441\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445 \u2014 \u043b\u0438\u0448\u044c \u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u042f \u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0448\u0435\u043b \u0438\u0441\u043a\u0430\u0442\u044c <a href=\"https:\/\/github.com\/scala\/scala3\/issues\/20856\">\u0438\u0448\u044c\u044e-\u0442\u0438\u043a\u0435\u0442<\/a>, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432 1,5\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0448\u044c\u044e \u043e \u0447\u0435\u043c-\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442<\/p>\n<\/div>\n<p><a href=\"https:\/\/medium.com\/@avuzia\/declarative-golang-python-java-scala-kotlin-f68397b63826\"><strong>Declarative Python, Java, Scala, Kotlin. Imperative Golang<\/strong><\/a> \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b, \u043a\u0430\u043a \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u044b, \u0438 \u0442\u0430\u043a \u0437\u043d\u0430\u0435\u043c: \u043a\u0430\u043a \u0436\u0435 \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u044b \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e Scala \u0438 Kotlin.<\/p>\n<p><a href=\"https:\/\/iamsarathchandra.medium.com\/mastering-currying-in-scala-a-functional-programming-powerhouse-ce88a3edf3ce\"><strong>Mastering Currying in Scala: A Functional Programming Powerhouse<\/strong><\/a> \u2014 \u0425\u0430\u0441\u043a\u0435\u043b\u043b\u0443 \u041a\u0430\u0440\u0440\u0438 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0431\u044b \u0442\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0434\u044b. \u0418 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0431\u0430\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0441 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0435\u0439 \u0442\u0430\u0439\u043f-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/p>\n<p><a href=\"https:\/\/yadukrishnan.live\/a-generic-approach-to-parsing-csv-into-case-classes-in-scala-3\"><strong>A Generic Approach to Parsing CSV into Case Classes in Scala 3<\/strong><\/a> \u2014 \u0430 \u043d\u0438\u0447\u0435 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f _.split(&#171;,&#187;), \u043e\u043d \u0441\u0442\u0430\u0432\u0438\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e CSV? \u041e\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0439? \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Mirror \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043d\u0435\u0447\u0430\u044f\u043d\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c inline.<\/p>\n<p><a href=\"https:\/\/medium.com\/swissborg-engineering\/from-python-to-scala-rewriting-27k-lines-of-a-cli-8513e20cd268\"><strong>From Python to Scala: Rewriting 27k Lines of a CLI<\/strong><\/a> \u2014 \u0441\u0435\u0440\u0434\u0446\u0435 \u043e\u0431\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0442\u043e\u043a\u043e\u0439 \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 <abbr class=\"habraabbr\" title=\"\u0434\u0430\u0439\u0442\u0435 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 Scala\" data-title=\"&lt;p&gt;\u0434\u0430\u0439\u0442\u0435 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 Scala&lt;\/p&gt;\" data-abbr=\"\u00ab\u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb\">la&lt;\/p&gt;&#187; data-abbr=&#187;\u00ab\u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb&#187;>\u00ab\u0441\u0447\u0430\u0441\u0442\u044c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb<\/abbr>, \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443 \u0432\u0430\u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u0431\u044d\u043a\u043b\u043e\u0433.<\/p>\n<p><a href=\"https:\/\/fpilluminated.org\/deck\/256\"><strong>Drawing Heighway\u2019s Dragon &#8212; Recursive Function Rewrite &#8212; From Imperative Style in Pascal 64 To Functional Style in Scala 3<\/strong><\/a> \u2014 \u043d\u0430\u0448\u0438 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0441\u043b\u0430\u0439\u0434\u0438\u043a\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f: \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441 \u041f\u0430\u0441\u043a\u0430\u043b\u044f \u043d\u0430 \u0421\u043a\u0430\u043b\u0443.<\/p>\n<p><a href=\"https:\/\/virtuslab.com\/blog\/scala\/infrastructure-as-type-ops\/\"><strong>Infrastructure as types: introducing TypeOps<\/strong><\/a> \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b terraform-\u0430 \u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0434\u0435\u043f\u043b\u043e\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0448\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u043b\u044c\u043a\u043b\u043e\u0440\u0430.\u00a0<\/p>\n<figure class=\"\"><\/figure>\n<p><a href=\"https:\/\/mill-build.org\/blog\/11-jvm-test-parallelism.html\"><strong>Strategies for Efficiently Parallelizing JVM Test Suites<\/strong><\/a> \u2014 \u041b\u0438 \u0425\u0430\u043e\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043d\u0446\u0435\u0432\u0430\u0442\u044c \u0441 \u0431\u0443\u0431\u043d\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 dynamic\/static sharding \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/yadukrishnan.live\/series\/data-plumber\"><strong>Data Plumber &#8212; Data Integration Pipeline<\/strong><\/a> \u2014 \u0441\u0435\u0440\u0438\u044f \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e ETL-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430: \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e fs2. \u0412\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d <a href=\"https:\/\/github.com\/yadavan88\/data-plumber\">\u043d\u0430 GitHub.<\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/yadro\/articles\/890476\/\"><strong>Scala\/Chisel \u043f\u0440\u043e\u0442\u0438\u0432 SystemVerilog: \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0441\u0445\u0435\u043c\u044b<\/strong><\/a> \u2014 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0423 \u0430\u0432\u0442\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 DSL \u043d\u0430 Scala, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0421\u0430\u043c \u0430\u0432\u0442\u043e\u0440 \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432, \u043a\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u0435 higher-order functions, \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c.<\/p>\n<p><a href=\"https:\/\/lachlan.hashnode.dev\/using-a-c-library-from-scala-native\"><strong>Using a C library from Scala Native<\/strong><\/a> \u2014 \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e: \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430 C, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0435\u0435 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043d\u0430 Scala Native \u2014 \u0438 \u0432\u0443\u0430\u043b\u044f! \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0442\u0430 \u043b\u0430\u044f\u0442\u044c, \u0430 \u0441\u043e\u0431\u0430\u043a\u0443 \u043c\u0443\u0440\u043b\u044b\u043a\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0442\u043e \u0432\u0435\u043b\u043a\u043e\u043c!<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0435\u0439 (\u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e Spark)<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@suffyan.asad1\/spark-essentials-a-guide-to-setting-up-and-running-spark-projects-with-scala-and-sbt-80e2680d3528\">Spark Essentials: A Guide to Setting up and Running Spark projects with Scala and sbt<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@jr.vera.ma\/exploring-spark-and-airflow-integration-for-submitting-python-and-scala-jobs-f9b22e9b18e7\">Exploring Spark and Airflow Integration for Submitting Python and Scala Jobs<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@nimshi\/counting-files-using-spark-and-scala-with-regex-matching-943c6c7a3c2d\">Counting Files Using Spark and Scala with Regex Matching<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@umanium\/date-and-time-in-scala-3-66beac7b0544\">Date and Time in Scala 3<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>\u0412\u0438\u0434\u0435\u043e \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u043d\u0430 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u043e Scala.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=tmpPueoffVM\"><strong>Martin Odersky on the Future of Scala, Learning, Teaching and the Quest for the Perfect Language<\/strong><\/a> \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0447\u0430\u0442\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0421\u043a\u0430\u043b\u044b <a href=\"https:\/\/www.scala-lang.org\/blog\/2025\/03\/24\/evolving-scala.html\">\u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.<\/a> \u041d\u0430\u043c \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0421\u043a\u0430\u043b\u0443 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u0444\u0438\u0447, \u043a\u0430\u043a capture-checking, safe-initialization, \u0438 \u0434\u0440\u0443\u0433\u0438\u0445. \u041f\u0440\u0438\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0430\u0441 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u041e\u0434\u0435\u0440\u0441\u043a\u0438: \u043d\u0435 \u0431\u043e\u0439\u0442\u0435\u0441\u044c \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 Scala! #makeScalaGreatAgain<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=8TMvIIoaAPs\"><strong>Introduction to Scala 3 Macros &#8212; How Macros Work, Quoting, Matching and Reflection<\/strong><\/a><strong> <\/strong>\u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u043e\u043b\u0438\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><a href=\"https:\/\/watch.softinio.com\/w\/kd4jF8jWHCpWbnckAcre6S\"><strong>Let&#8217;s Teach LLMs to Write Great Scala! By Kannupriya Kalra<\/strong><\/a><strong> <\/strong>\u2014 Scala \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0432 \u043f\u043e\u0435\u0437\u0434 \u0445\u0430\u0439\u043f\u0430 AI, \u043b\u0438\u0448\u044c \u0431\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043a\u043e\u0434 \u043d\u0430 Scala.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0422\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f, \u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0445\u0440\u043e\u043c\u0430\u0435\u0442\u2026 \u041d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u043a MCP \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f<\/p>\n<\/div>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=O4IMED7sHgo\"><strong>Scala in 2025: How to Start, What to Learn | Functional World #16<\/strong><\/a> \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u0448\u0438\u043c \u0434\u0436\u0443\u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c <s>\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439<\/s> \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=akKLlEcCSBg\"><strong>IntelliJ IDEA x Scala &#8212; Inlay Hints and X-Ray Mode<\/strong><\/a> \u2014 \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 JetBrains \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u043d\u0430\u0441 \u0441 \u0444\u0438\u0447\u0430\u043c\u0438 Idea \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u043e\u0432 (\u2764\u03c9\u2764)\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u0421\u043a\u0430\u043b\u0430-\u043a\u043e\u0442\u044f\u0442\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u044e\u0442, \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438<\/p>\n<\/div>\n<h2>Tooling<\/h2>\n<p>\u041a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<p><a href=\"https:\/\/github.com\/rcardin\/yaes\"><strong>yaes<\/strong><\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b, Y\u00c6S \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u0435\u0436\u0438\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u0437\u043c\u0443 \u0444\u0438\u0447 Scala 3.<\/p>\n<p><a href=\"https:\/\/mercurievv.github.io\/minuscles\/readme.html\"><strong>Tuples transformations<\/strong><\/a> \u2014 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0443\u043f\u043b\u0430\u043c\u0438, \u043c\u0430\u0441\u0442\u0445\u044d\u0432 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430.<\/p>\n<p><a href=\"https:\/\/github.com\/polentino\/redacted\"><strong>redacted<\/strong><\/a> \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0442\u0443\u043b\u0437\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u043b\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043d \u0441\u0432\u0435\u0442\u0438\u0442 \u0432 \u043b\u043e\u0433\u0430\u0445.\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u043a\u0430, \u0443 \u043d\u0430\u0441 \u0441\u0430\u043c\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0432\u0435\u0434\u044c \u0441 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0443\u0442\u0435\u043a\u0430\u043b\u0438 (\u256f\u02d8-\u02d8)\u256f<\/p>\n<\/div>\n<h2>Highlights<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0436\u0438\u0435, \u043d\u043e \u0437\u0430\u0446\u0435\u043f\u0438\u0432\u0448\u0438\u0435 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043e\u0434 \u0444\u043b\u0430\u0433\u043e\u043c \u00ab\u043e\u0447\u0443\u043c\u0435\u043b\u044b\u0435 \u0440\u0443\u0447\u043a\u0438\u00bb. \u0410\u0432\u0442\u043e\u0440\u044b \u0442\u0432\u043e\u0440\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0435, \u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p><a href=\"https:\/\/codeberg.org\/jjba23\/pop-test\"><strong>pop-test<\/strong><\/a><strong> <\/strong>\u2014 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 healthckeck\u2019\u043e\u0432 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 Postgres, Kafka \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0440\u0435\u043b\u044b\u0435 \u0442\u0435\u0441\u0442\u044b.<\/p>\n<p><a href=\"https:\/\/lexp.lt\/posts\/generating_swaggers_at_compile_time\/\"><strong>Generating swaggers at compile time<\/strong><\/a> \u2014 \u0441\u0432\u0435\u0436\u0438\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e Swagger, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0435. \u041d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u043a\u0430 \u043d\u043e\u043b\u044c \u0437\u0432\u0435\u0437\u0434.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0425\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0432 Tapir<\/p>\n<\/div>\n<p><a href=\"https:\/\/github.com\/PurpleKingdomGames\/roguelike-starterkit\"><strong>roguelike-starterkit<\/strong><\/a><strong> <\/strong>\u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0444\u0430\u043d\u0430\u0442 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440\u0443\u0448\u0435\u043a, \u0442\u043e \u0432\u043e\u0442 \u0432\u0430\u043c \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0447\u0435\u0440. \u0415\u0441\u043b\u0438 \u0432 \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u043b\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0436\u0434\u0438\u0442\u0435 \u0438\u0433\u0440\u0443 \u043f\u0440\u043e \u043d\u0430\u0448 Scala-\u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0432 \u0442\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (\u2229` \uff9b \u00b4)\u2283\u2501\u708e\u708e\u708e\u708e\u708e<\/p>\n<p><a href=\"https:\/\/github.com\/indoorvivants\/scala-uri\"><strong>scala-uri<\/strong><\/a> \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043a \u0441\u0442\u0430\u0440\u043e\u0439 \u043b\u0438\u0431\u044b.<\/p>\n<p><a href=\"https:\/\/github.com\/dwickern\/scala-nameof\"><strong>scala-nameof<\/strong><\/a> \u2014 \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u043e\u0431\u0440\u043e\u0433\u043e nameof \u0438\u0437 C#, \u043d\u043e \u0432\u0430\u043c \u043b\u0435\u043d\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c import quotes.reflect.* \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c 20 \u0441\u0442\u0440\u043e\u043a, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043b\u0438\u0431\u0443.<\/p>\n<p><a href=\"https:\/\/github.com\/indoorvivants\/toml-scala\"><strong>toml-scala<\/strong><\/a> \u2014 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438 \u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 TOML?<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0412 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435 \u044f\u0437\u044b\u043a\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\/\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u0435\u043d\u044c \u043e\u0442\u043e \u0434\u043d\u044f \u043d\u0435 \u0441\u044b\u0449\u0435\u0448\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0434\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0435\u0439-\u0431\u043e\u0433\u0443 (\uff1b\uffe3\u0414\uffe3)<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u0410 \u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0432\u044b \u0443\u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 yaml, json, soap \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0435\u0449\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043a\u0435\u043c-\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f TOML? \u042f \u2014 \u0432 \u0441\u0435\u0439\u0447\u0430\u0441 \u043b\u0435\u0442<\/p>\n<\/div>\n<h2>\u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u0434\u0432\u0438\u0436<\/h2>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0438 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u043c\u0438\u0440\u0435 Scala-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u043c \u0438 \u0436\u0438\u0432\u044b\u043c. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0436\u0434\u0435\u043c \u0432\u0430\u0441 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p><a href=\"https:\/\/www.scala-lang.org\/blog\/2025\/02\/25\/rock-the-jvm-partnership.html\"><strong>Rock the JVM partners with the Scala Center<\/strong><\/a> \u2014 RockTheJVM \u043e\u0442\u0447\u0438\u0441\u043b\u044f\u0435\u0442 Scala Center \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 30% \u0437\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u043a\u0430\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0435 scala-lang.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u041c\u0438\u0448\u0438<\/h5>\n<p>\u0412 \u041c\u043e\u0441\u043a\u0432\u0435 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f \u042f\u043d\u0434\u0435\u043a\u0441 \u0422\u0430\u043a\u0441\u0438 \u0438 \u0442\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0441 \u0440\u0430\u0431\u043e\u0442\u044f\u0433!<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0435\u0431\u0435 \u043c\u0430\u0444\u0438\u044f, 30%<\/p>\n<\/div>\n<p><a href=\"https:\/\/typelevel.org\/blog\/2025\/02\/21\/spotify-foss-fund.html\"><strong>Spotify FOSS Fund 2024<\/strong><\/a> \u2014 Typelevel \u043f\u043e\u043b\u0443\u0447\u0438\u043b 20 000 \u20ac \u043e\u0442 Spotify. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043f\u043e\u043e\u0449\u0440\u0435\u043d\u0438\u0435 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0430\u043c\u0438.\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0448\u043a\u0430 \u041d\u0430\u0441\u0442\u0438<\/h5>\n<p>\u041a\u043e\u0442\u0438\u043a\u0430\u043c \u0434\u0430\u043b\u0438 \u0434\u0435\u043d\u0435\u0436\u0435\u043a, \u0438 \u043a\u043e\u0442\u0438\u043a\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041a\u043e\u0442 \u042d\u043b\u0438<\/h5>\n<p>\u041f\u0440\u043e\u0448\u043b\u0430 \u0437\u0438\u043c\u0430, \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u043b\u0435\u0442\u043e \u2013\u2014 \u0441\u043f\u0430\u0441\u0438\u0431\u043e Spotify \u0437\u0430 \u044d\u0442\u043e!<\/p>\n<\/div>\n<p><a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/1jet8ls\/curious_to_know_how_many_have_adopted_scala_3\/\"><strong>Curious to know how many have adopted Scala 3<\/strong><\/a><strong> <\/strong>\u2014 \u0443\u0437\u043d\u0430\u0435\u043c \u043c\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043e Scala 3: \u043a\u0442\u043e \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0448\u043a\u0438, \u043a\u0430\u043a\u0438\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-454409","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/454409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=454409"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/454409\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=454409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=454409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=454409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}