{"id":843,"date":"2011-04-15T12:01:20","date_gmt":"2011-04-15T15:01:20","guid":{"rendered":"http:\/\/www.subterfugios.net\/blog\/?p=843"},"modified":"2011-04-15T14:39:51","modified_gmt":"2011-04-15T17:39:51","slug":"nullpointerexceptions-are-impossible","status":"publish","type":"post","link":"http:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/","title":{"rendered":"NullPointerExceptions are impossible"},"content":{"rendered":"<p>Estive lendo um pouco sobre a nova linguagem que <a href=\"http:\/\/www.theregister.co.uk\/2011\/04\/13\/red_hat_unveils_project_ceylon\/\">a Red Hat est\u00e1 construindo<\/a>. O projeto Ceylon \u00e9 liderado por Gavin King (aquele do Hibernate e do Seam) e tem como objetivo desenhar uma linguagem seguindo o seguinte princ\u00edpio: como Java seria se fosse inventado hoje? Isso significa colher todas as coisas boas do Java, e corrigir e modernizar suas imperfei\u00e7\u00f5es.<\/p>\n<p>Em uma <a href=\"http:\/\/in.relation.to\/service\/File\/19159\">apresenta\u00e7\u00e3o recente<\/a>, foram descritas algumas features da (ou do) Ceylon. S\u00e3o muito interessantes. O slide abaixo \u00e9 sobre uma feature simples que achei genial:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon.png\" alt=\"\" title=\"Ceylon NPE\" width=\"513\" height=\"377\" class=\"aligncenter size-full wp-image-847\" srcset=\"https:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon.png 513w, https:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon-300x220.png 300w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/p>\n<p>Pelo que entendi, voc\u00ea declara a refer\u00eancia como nul\u00e1vel, a\u00ed as refer\u00eancias nulas ficam control\u00e1veis. Esta \u00e9 apenas uma das diversas novas features da linguagem, descritas na apresenta\u00e7\u00e3o. Ceylon tem ainda higher-order functions, closures, argumentos nomeados. E n\u00e3o tem sobrecarga de m\u00e9todos!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon1.png\" alt=\"\" title=\"Ceylon - Higher-order functions\" width=\"493\" height=\"305\" class=\"aligncenter size-full wp-image-851\" srcset=\"https:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon1.png 493w, https:\/\/www.subterfugios.net\/blog\/wp-content\/uploads\/2011\/04\/ceylon1-300x185.png 300w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/p>\n<p>O compilador ainda n\u00e3o est\u00e1 dispon\u00edvel. Vamos esperar pra ver, mas acho que a\u00ed vem algo grande.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estive lendo um pouco sobre a nova linguagem que a Red Hat est\u00e1 construindo. O projeto Ceylon \u00e9 liderado por Gavin King (aquele do Hibernate e do Seam) e tem como objetivo desenhar uma linguagem seguindo o seguinte princ\u00edpio: como &hellip; <a href=\"http:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-843","post","type-post","status-publish","format-standard","hentry","category-etc"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pAkyI-dB","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/comments?post=843"}],"version-history":[{"count":6,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843\/revisions"}],"predecessor-version":[{"id":850,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843\/revisions\/850"}],"wp:attachment":[{"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/media?parent=843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/categories?post=843"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/tags?post=843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}