{"id":1047,"date":"2012-08-30T17:35:48","date_gmt":"2012-08-30T21:35:48","guid":{"rendered":"http:\/\/steve.vinoski.net\/blog\/?p=1047"},"modified":"2012-08-30T17:49:32","modified_gmt":"2012-08-30T21:49:32","slug":"latest-column-play2","status":"publish","type":"post","link":"https:\/\/steve.vinoski.net\/blog\/2012\/08\/30\/latest-column-play2\/","title":{"rendered":"Latest Column: Play2"},"content":{"rendered":"<p>I&#8217;m a little late in posting this, but in the <a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/index.html\">July\/August 2012 issue of Internet Computing<\/a>, guest columnist <a href=\"http:\/\/sadache.tumblr.com\/\">Sadek Drobi<\/a> covers the <a href=\"http:\/\/www.playframework.org\/\">Play2 framework<\/a>. Sadek talks about how today\u2019s Web evolutions and the emergence of software as a service and Web services have led to new challenges in programming: distribution, scalability, management of various data formats, stream management, and so on. He explains that <a href=\"http:\/\/www.playframework.org\/\">Play2<\/a> can significantly aid developers in capitalizing on the opportunities the Web offers while minimizing potential risks by leveraging the strengths of functional programming. He outlines functional programming\u2019s power in this context at several levels: data and data format manipulation using higher-order functions; reactive composition with nonblocking I\/O for scalability; and reactive stream processing and manipulation using Iteratees with <a href=\"http:\/\/tools.ietf.org\/html\/rfc6455\">WebSockets<\/a> and <a href=\"http:\/\/www.w3.org\/TR\/eventsource\/\">Server-Sent Events<\/a>. Here&#8217;s <a href=\"http:\/\/steve.vinoski.net\/pdf\/IC-Play2.pdf\">the PDF<\/a> of the column.<\/p>\n<p>The same magazine issue is also the &#8220;<a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040011.html\">Programmatic Interfaces for Web Applications<\/a>&#8221; special issue that <a href=\"http:\/\/vitvar.com\">Tomas Vitvar<\/a>, <a href=\"http:\/\/www.pautasso.info\">Cesare Pautausso<\/a>, and I co-guest-edited. Our <a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040011.html\">guest editors&#8217; introduction<\/a> explains the purpose of the special issue and introduces the five articles comprising it:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040015-abs.html\"><em>Toward an Open Cloud Standard<\/em><\/a> by Andy Edmonds, Thijs Metsch, Alexander Papaspyrou, and Alexis Richardson<\/li>\n<li><a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040026-abs.html\"><em>ArRESTed Development: Guidelines for Designing REST Frameworks<\/em><\/a> by Ivan Zuzak and Silvia Schreier<\/li>\n<li><a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040036-abs.html\"><em>Welcome to the Real World: A Notation for Modeling REST Services<\/em><\/a> by Olga Liskin, Leif Singer, and Kurt Schneider<\/li>\n<li><a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040045-abs.html\"><em>Communicating and Displaying Real-Time Data with WebSocket<\/em><\/a> by Victoria Pimentel and Bradford G. Nickerson<\/li>\n<li><a href=\"http:\/\/www.computer.org\/csdl\/mags\/ic\/2012\/04\/mic2012040054-abs.html\"><em>SOAP-Based vs. RESTful Web Services: A Case Study for Multimedia Conferencing<\/em><\/a> by Fatna Belqasmi, Jagdeep Singh, Suhib Younis Bani Melhem, and Roch H. Glitho<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m a little late in posting this, but in the July\/August 2012 issue of Internet Computing, guest columnist Sadek Drobi covers the Play2 framework. Sadek talks about how today\u2019s Web evolutions and the emergence of software as a service and Web services have led to new challenges in programming: distribution, scalability, management of various data [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,127,81,123,33],"tags":[149,189,174,186,160],"class_list":["post-1047","post","type-post","status-publish","format-standard","hentry","category-column","category-framework","category-functional-programming","category-scala","category-web","tag-column","tag-framework","tag-functional-programming","tag-scala","tag-web"],"_links":{"self":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/comments?post=1047"}],"version-history":[{"count":21,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1070,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/1047\/revisions\/1070"}],"wp:attachment":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/media?parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/categories?post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/tags?post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}