{"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":"https:\/\/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<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-843\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/?share=facebook\" target=\"_blank\" title=\"Clique para compartilhar no Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Facebook(abre em nova janela)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-843\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/?share=twitter\" target=\"_blank\" title=\"Clique para compartilhar no Twitter\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Twitter(abre em nova janela)<\/span><\/a><\/li><li class=\"share-jetpack-whatsapp\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-jetpack-whatsapp sd-button share-icon no-text\" href=\"https:\/\/api.whatsapp.com\/send?text=NullPointerExceptions%20are%20impossible%20https%3A%2F%2Fwww.subterfugios.net%2Fblog%2Fnullpointerexceptions-are-impossible%2F\" target=\"_blank\" title=\"Clique para compartilhar no WhatsApp\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no WhatsApp(abre em nova janela)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","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=\"https:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-843\" class=\"share-facebook sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/?share=facebook\" target=\"_blank\" title=\"Clique para compartilhar no Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Facebook(abre em nova janela)<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-843\" class=\"share-twitter sd-button share-icon no-text\" href=\"https:\/\/www.subterfugios.net\/blog\/nullpointerexceptions-are-impossible\/?share=twitter\" target=\"_blank\" title=\"Clique para compartilhar no Twitter\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no Twitter(abre em nova janela)<\/span><\/a><\/li><li class=\"share-jetpack-whatsapp\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-jetpack-whatsapp sd-button share-icon no-text\" href=\"https:\/\/api.whatsapp.com\/send?text=NullPointerExceptions%20are%20impossible%20https%3A%2F%2Fwww.subterfugios.net%2Fblog%2Fnullpointerexceptions-are-impossible%2F\" target=\"_blank\" title=\"Clique para compartilhar no WhatsApp\"><span><\/span><span class=\"sharing-screen-reader-text\">Clique para compartilhar no WhatsApp(abre em nova janela)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","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,"sharing_disabled":false,"spay_email":"","footnotes":"","jetpack_publicize_message":""},"categories":[1],"tags":[],"class_list":["post-843","post","type-post","status-publish","format-standard","hentry","category-etc"],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pAkyI-dB","_links":{"self":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/comments?post=843"}],"version-history":[{"count":6,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843\/revisions"}],"predecessor-version":[{"id":850,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/posts\/843\/revisions\/850"}],"wp:attachment":[{"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/media?parent=843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/categories?post=843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.subterfugios.net\/blog\/wp-json\/wp\/v2\/tags?post=843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}