{"id":77153,"date":"2020-04-08T01:43:13","date_gmt":"2020-04-07T23:43:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vyshel-crystal-0-34-0"},"modified":"2020-04-08T01:43:13","modified_gmt":"2020-04-07T23:43:13","slug":"vyshel-crystal-0-34-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshel-crystal-0-34-0","title":{"rendered":"O Crystal 0.34.0 foi lan\u00e7ado","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ada uma nova vers\u00e3o do Crystal, uma linguagem de programa\u00e7\u00e3o compilada com sintaxe semelhante \u00e0 do Ruby. As principais caracter\u00edsticas incluem um runtime com um 'event loop' 'embutido', onde todas as opera\u00e7\u00f5es de entrada e sa\u00edda s\u00e3o ass\u00edncronas, suporte a multithreading (atualmente ativado com uma flag na compila\u00e7\u00e3o) e uma integra\u00e7\u00e3o excepcionalmente simples e conveniente com bibliotecas em C.<\/p>\n<p>A partir da vers\u00e3o 0.34.0, a linguagem come\u00e7a oficialmente a avan\u00e7ar firmemente em dire\u00e7\u00e3o ao seu primeiro verdadeiro lan\u00e7amento (ou seja, a vers\u00e3o 1.0).<\/p>\n<p>Na nova vers\u00e3o do Crystal, podemos destacar as seguintes mudan\u00e7as e melhorias em ordem de import\u00e2ncia:<\/p>\n<ul>\n<li>\n<p>Uma nova biblioteca de registro foi adicionada \u00e0 API <strong>Log<\/strong>, que, ao contr\u00e1rio da vers\u00e3o antiga, \u00e9 capaz de direcionar mensagens para diferentes backends e de filtrar essas mensagens de acordo com a 'fonte'.<\/p>\n<\/li>\n<li>\n<p>Rudimentos do mundo do desenvolvimento em C, <strong>Errno<\/strong> e <strong>WinError<\/strong>, usados para primitivos de entrada e sa\u00edda, est\u00e3o se tornando coisa do passado gra\u00e7as \u00e0 hierarquia de exce\u00e7\u00f5es <strong>IO::Error<\/strong> (no entanto, ningu\u00e9m pro\u00edbe o uso de Errno por enquanto).<\/p>\n<\/li>\n<li>\n<p>A substitui\u00e7\u00e3o autom\u00e1tica de else nil foi removida do operador <strong>case\/when\/else<\/strong>. Isso foi feito para evitar que o desenvolvedor acidentalmente pule uma das ramifica\u00e7\u00f5es <strong>when<\/strong> ao fazer match em casos determin\u00edsticos como enums e ao percorrer tipos de um Union. Ou seja, em outras palavras, esse c\u00f3digo n\u00e3o funcionar\u00e1 mais sem a indica\u00e7\u00e3o de mais um <strong>when<\/strong> (when Char) ou definir uma <strong>else<\/strong>-ramifica\u00e7\u00e3o:<\/p>\n<\/li>\n<\/ul>\n<p>a = 1 || 'x' || \"foo\"<br \/>\ncase a<br \/>\nwhen Int32<br \/>\n  # &#8230;<br \/>\nwhen String<br \/>\n  # &#8230;<br \/>\nend<\/p>\n<ul>\n<li>\n<p>A op\u00e7\u00e3o do compilador <strong>disable_overflow<\/strong> n\u00e3o est\u00e1 mais dispon\u00edvel. Para opera\u00e7\u00f5es com overflow, use os m\u00e9todos &amp;+, &amp;-, &amp;*.<\/p>\n<\/li>\n<li>\n<p><strong>Array#fill<\/strong> agora \u00e9 extremamente r\u00e1pido, gra\u00e7as \u00e0 substitui\u00e7\u00e3o de um loop ineficiente por um simples memset;<\/p>\n<\/li>\n<li>\n<p>O gerenciador de shards (pacotes), que paradoxalmente se chama <strong>shards<\/strong>, agora usa um algoritmo de satisfa\u00e7\u00e3o de depend\u00eancias mais r\u00e1pido e eficiente chamado Molinillo, inspirado no CocoaPods (Swift) e no Builder (Ruby).<\/p>\n<\/li>\n<li>\n<p>Suporte adicionado <strong>LLVM 10<\/strong>, o que, em teoria, nos proporcionar\u00e1 um aumento na performance, estabilidade, etc.<\/p>\n<\/li>\n<\/ul>\n<p>\u2026 e muitas outras melhorias que, na minha opini\u00e3o subjetiva, s\u00e3o menos significativas.<\/p>\n<p>Gostaria de destacar que o Crystal \u00e9 uma linguagem constru\u00edda sobre LLVM, permitindo escrever aplicativos muitas vezes mais rapidamente, de maneira mais simples e concisa do que suas 'irm\u00e3s' interpretadas, e ao mesmo tempo gerando um bin\u00e1rio bastante \u00e1gil. Em compara\u00e7\u00e3o com Golang, destaca-se com suporte completo a POO, suporte a generics e uma sintaxe muito simples e compreens\u00edvel. Quanto ao seu prop\u00f3sito, \u00e9 em muitos aspectos an\u00e1logo ao Nim, mas \u00e9 claramente orientado para a aplica\u00e7\u00e3o pr\u00e1tica 'aqui e agora', tendo assim em seu arsenal de API uma infinidade de ferramentas bem documentadas, convenientes e de qualidade, mantidas pelos desenvolvedores da linguagem e, portanto, bastante est\u00e1veis.<\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/development\/15627605\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Crystal, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Ruby, \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e &mdash; \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u0441 &laquo;\u0432\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c&raquo; event loop&rsquo;\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u043e\u043c \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438) \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u043d\u0430 \u0421\u0438. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 0.34.0, \u044f\u0437\u044b\u043a \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0442\u0432\u0451\u0440\u0434\u043e\u0439 \u043f\u043e\u0441\u0442\u0443\u043f\u044c\u044e \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-77153","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Crystal, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Ruby, \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u0441 \u00ab\u0432\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u00bb event loop\u2019\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/vyshel-crystal-0-34-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0448\u0435\u043b Crystal 0.34.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Crystal, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Ruby, \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u0441 \u00ab\u0432\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u00bb event loop\u2019\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vyshel-crystal-0-34-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-07T23:43:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-07T23:43:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lan\u00e7ado o Crystal 0.34.0 | ProHoster","description":"Uma nova vers\u00e3o do Crystal foi lan\u00e7ada, uma linguagem de programa\u00e7\u00e3o compilada com sintaxe Ruby, cujas principais caracter\u00edsticas s\u00e3o um runtime com um loop de eventos \"embutido\", onde todas as opera\u00e7\u00f5es de entrada e sa\u00edda s\u00e3o ass\u00edncronas, suporte.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshel-crystal-0-34-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0448\u0435\u043b Crystal 0.34.0 | ProHoster","og:description":"\u0412\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Crystal, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Ruby, \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u0441 \u00ab\u0432\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u00bb event loop\u2019\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vyshel-crystal-0-34-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-07T23:43:13+00:00","article:modified_time":"2020-04-07T23:43:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77153","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:34:50","updated":"2022-10-02 17:23:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/77153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=77153"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/77153\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=77153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=77153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=77153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}