{"id":1737,"date":"2015-07-06T19:38:12","date_gmt":"2015-07-06T18:38:12","guid":{"rendered":"http:\/\/www.jurecuhalev.com\/blog\/?p=1737"},"modified":"2015-07-06T19:38:12","modified_gmt":"2015-07-06T18:38:12","slug":"polyconf2015","status":"publish","type":"post","link":"https:\/\/www.jurecuhalev.com\/blog\/polyconf2015\/","title":{"rendered":"Notes from PolyConf 2015 &#8211; Conference for developers who code in multiple languages"},"content":{"rendered":"<p>As developer, I feel that I work inside my technology bubble. I keep using the same tools. Because of this, it takes a lot of effort to learn new development paradigms and languages.<br \/>\n<a href=\"http:\/\/polyconf.com\/\">PolyConf<\/a> was a small conference, less than 300 people in beautiful Poznan, Poland. The breadth of content, participants and organisation made it stand out.<\/p>\n<p>I\u2019ve made some notes on the impressions, that the talks and discussion provided.<\/p>\n<h2>Types and Immutable data structures.<\/h2>\n<p>Most of the talks were building on top of functional programming paradigms. There are clear benefit of that approach, as we move towards multi-core, distributed computing. I can&#8217;t wait to see some of these concept in upcoming Python 3 releases.<\/p>\n<p>In this regard, <a href=\"http:\/\/flowtype.org\/\">Facebook&#8217;s Flow<\/a> provides alternative to types in JavaScript. This has benefits over writing your code into TypeScript or ClojureScript.<\/p>\n<h2>Language for Every Problem<\/h2>\n<p>As we\u2019ve seen in Python community &#8211; change is hard. That is why development is happening in new languages. Some decide to build whole ecosystem, while others compile to a common VM or language.<\/p>\n<p>Two of the presented languages &#8211; <a href=\"http:\/\/crystal-lang.org\/\">Crystal<\/a> and <a href=\"http:\/\/elixir-lang.org\/\">Elixir<\/a>, were both influenced by Ruby. I would like to understand, what is about Ruby syntax that makes it a good basis for language development.<\/p>\n<p>New languages also come with new frameworks. <a href=\"http:\/\/www.phoenixframework.org\/\">Phoenix for Elixir<\/a> is one of them. A scalable web framework, that is using streams to keep processes separated and get speed benefits.\u00a0A year ago, I would be skeptical about using new web framework. But with microservices and Single Page Apps, it looks like there is opportunity to experiment. We&#8217;ve offloaded most of the representation and business logic to clients.<\/p>\n<h2>Lots of Practical Advice<\/h2>\n<p>One of the benefits of being a polyglot is so you can use official libraries. A lot of good things are happening on JVM stack that we can&#8217;t just ignore.<\/p>\n<p>Beware of defaults &#8211; they are usually not optimal for your use case.<\/p>\n<p>The main benefit if knowing lots of languages, is to be able to borrow different concepts. If you want to explore different concepts, consider:<\/p>\n<ul>\n<li><a href=\"https:\/\/pragprog.com\/book\/btlang\/seven-languages-in-seven-weeks\">Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages<\/a><\/li>\n<li><a href=\"https:\/\/pragprog.com\/book\/7lang\/seven-more-languages-in-seven-weeks\">Seven More Languages in Seven Weeks: Languages That Are Shaping the Future<\/a><\/li>\n<\/ul>\n<h2>\nData Science<\/h2>\n<p>Jupyter Notebook with Pandas looks like the new default for starting with data analysis. Continuum Analytics are sponsoring a powerful ecosystem. I\u2019ve learned that there is a library called <a href=\"https:\/\/spark.apache.org\/docs\/0.9.0\/python-programming-guide.html\">PySpark<\/a>, that introduces out-of-cpu computing supports. This allows Pandas to scale even better.<br \/>\nThe demo of Julia language showed power of implicit types and great things they can do for science computing. Worth checking out, especially now that it Juypter supports it.<\/p>\n<h2>But wait, there\u2019s more<\/h2>\n<ul>\n<li><a href=\"http:\/\/racket-lang.org\/\">Racket<\/a> &#8211; A programmable programming language<\/li>\n<li><a href=\"http:\/\/minikanren.org\/\">miniKanren<\/a> &#8211; embedded Domain Specific Language for logic programming.<\/li>\n<li><a href=\"http:\/\/emojilisp.com\/\">Emojilisp<\/a> &#8211; because, why not.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>I went to the conference without any expectations. For most part I assumed it will be way too complicated for me. But I met a group of passionate people, that were happy to explain in simple words why they love the the languages they work in.<\/p>\n<p>We should figure out how to bring such levels of discussion and participation to our other events.<\/p>\n<p>PolyConf 2016 is already on my conference list for the next year.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As developer, I feel that I work inside my technology bubble. I keep using the same tools. Because of this, it takes a lot of effort to learn new development paradigms and languages. PolyConf was a small conference, less than 300 people in beautiful Poznan, Poland. The breadth of content, participants and organisation made it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1738,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[117],"tags":[],"class_list":["post-1737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conferences"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2015\/07\/2015-07-02-16.55.57-copy.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/1737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/comments?post=1737"}],"version-history":[{"count":1,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/1737\/revisions"}],"predecessor-version":[{"id":1739,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/1737\/revisions\/1739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/media\/1738"}],"wp:attachment":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/media?parent=1737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/categories?post=1737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/tags?post=1737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}