{"id":1770,"date":"2017-12-17T11:36:13","date_gmt":"2017-12-17T19:36:13","guid":{"rendered":"http:\/\/antoine.wojdyla.fr\/blog\/?p=1770"},"modified":"2017-12-19T00:15:00","modified_gmt":"2017-12-19T08:15:00","slug":"julia-language","status":"publish","type":"post","link":"http:\/\/antoine.wojdyla.fr\/blog\/2017\/12\/17\/julia-language\/","title":{"rendered":"Julia Language"},"content":{"rendered":"<p>A few years ago, I <a href=\"http:\/\/antoine.wojdyla.fr\/blog\/2014\/02\/03\/julia\/\">got interested<\/a> in the then-nascent Julia language (<a href=\"http:\/\/julialang.org\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/julialang.org\/', 'julialang.org']);\" >julialang.org<\/a>), a new open source language based on Matlab syntax with C-like performances, thanks to its just-in-time compiler.<\/p>\n<div id=\"attachment_1773\" style=\"width: 267px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/lsst_julia.jpg\" rel=\"attachment wp-att-1773\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1773\" class=\"wp-image-1773\" src=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/lsst_julia.jpg\" alt=\"Large Synoptic Survey Telescope (LSST, Chile) data being processed with Julia on super computers with 225x speedup\" width=\"257\" height=\"257\" srcset=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/lsst_julia.jpg 574w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/lsst_julia-150x150.jpg 150w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/lsst_julia-300x300.jpg 300w\" sizes=\"auto, (max-width: 257px) 100vw, 257px\" \/><\/a><\/p>\n<p id=\"caption-attachment-1773\" class=\"wp-caption-text\">Large Synoptic Survey Telescope (LSST, Chile) data being processed with Julia on super computers with 200x speedup (from https:\/\/arxiv.org\/pdf\/1611.03404.pdf)<\/p>\n<\/div><p>It now seems that the language is gaining traction, with many <a href=\"https:\/\/pkg.julialang.org\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/pkg.julialang.org\/', 'available packages']);\" >available packages<\/a>, lots of REPL integration (it works with <a href=\"http:\/\/atom.io\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/atom.io\/', 'Atom']);\" >Atom<\/a>+<a href=\"https:\/\/atom.io\/packages\/hydrogen\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/atom.io\/packages\/hydrogen', 'Hydrogen']);\" >Hydrogen<\/a>, and I suspect <a href=\"http:\/\/jupyter.org\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/jupyter.org\/', 'Jupyter']);\" >Jupyter<\/a> gets its first initial from Julia and Python) and delivering on performances.<\/p>Julia is now <a href=\"https:\/\/www.nextplatform.com\/2017\/11\/28\/julia-language-delivers-petascale-hpc-performance\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/www.nextplatform.com\/2017\/11\/28\/julia-language-delivers-petascale-hpc-performance\/', 'used on supercomputers']);\" >used on supercomputers<\/a>, such as Berkeley Lab&#8217;s NERSC, <a href=\"https:\/\/github.com\/stevengj\/julia-mit\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/github.com\/stevengj\/julia-mit', 'taught at MIT']);\" >taught at MIT<\/a> (by no less than <strong>Steven G Johnson<\/strong>, the guy who brought us <a href=\"https:\/\/en.wikipedia.org\/wiki\/FFTW\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/en.wikipedia.org\/wiki\/FFTW', 'FFTW']);\" >FFTW<\/a> and <a href=\"https:\/\/meep.readthedocs.io\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/meep.readthedocs.io\/', 'MEEP']);\" >MEEP<\/a>!), and I&#8217;ve noticed that some of the researchers from <strong>Harvard&#8217;s <a href=\"http:\/\/rolilab.com\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/rolilab.com', 'RoLi Lab']);\" >RoLi Lab<\/a><\/strong> I&#8217;ve invited to <a href=\"http:\/\/spie.org\/sic\/conferencedetails\/image-sensing-technologies?wt.mc_id=rsi18shcz&SSO=1\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/spie.org\/sic\/conferencedetails\/image-sensing-technologies?wt.mc_id=rsi18shcz&amp;SSO=1', 'SPIE DCS 2018']);\" >SPIE DCS 2018<\/a> are sharing their Julia code from their paper &#8220;<a href=\"https:\/\/www.nature.com\/articles\/nmeth.4429.epdf?author_access_token=Fi5Yr4JeCTQyyTtkJnBPytRgN0jAjWel9jnR3ZoTv0MQ2RoSyVewpbUpKsu-6IloFIarKtue_qdOXWQRy1fr33Ms2wyr2IOdyhNH2JwGlducC-YzcRgy78pJLPFo7eDT\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/www.nature.com\/articles\/nmeth.4429.epdf?author_access_token=Fi5Yr4JeCTQyyTtkJnBPytRgN0jAjWel9jnR3ZoTv0MQ2RoSyVewpbUpKsu-6IloFIarKtue_qdOXWQRy1fr33Ms2wyr2IOdyhNH2JwGlducC-YzcRgy78pJLPFo7eDT', 'Pan-neuronal calcium imaging with cellular resolution in freely swimming zebrafish']);\" >Pan-neuronal calcium imaging with cellular resolution in freely swimming zebrafish<\/a>&#8220;. Pretty cool!<\/p>\n<div id=\"attachment_1771\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/julia_codebase.png\" rel=\"attachment wp-att-1771\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1771\" class=\"wp-image-1771 size-medium\" src=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/julia_codebase-300x76.png\" alt=\"Julia used for code-sharing in a Nature publication. I wish I could see that every day!\" width=\"300\" height=\"76\" srcset=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/julia_codebase-300x76.png 300w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/julia_codebase-768x195.png 768w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/julia_codebase.png 804w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p id=\"caption-attachment-1771\" class=\"wp-caption-text\">Julia used for code-sharing in a Nature publication. I wish I could see that every day!<\/p>\n<\/div><p>I got a chance to attend parts of <a href=\"http:\/\/juliacon.org\/2017\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/juliacon.org\/2017\/', 'Julia Con 2017']);\" >Julia Con 2017<\/a> in Berkeley. I was amazed by how dynamic was the the community, in part supported by Moore&#8217;s foundation (<strong><a href=\"https:\/\/strasser.github.io\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/strasser.github.io\/', 'Carly Strasser']);\" >Carly Strasser<\/a><\/strong>, now head of <a href=\"https:\/\/coko.foundation\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/coko.foundation\/', 'Coko Foundation']);\" >Coko Foundation<\/a>), and happy to see <strong>Chris Holdgraf<\/strong> (my former editor at the <a href=\"http:\/\/berkeleysciencereview.com\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http:\/\/berkeleysciencereview.com\/', 'Science Review']);\" >Science Review<\/a>) thriving at the <a href=\"https:\/\/bids.berkeley.edu\/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/bids.berkeley.edu\/', 'Berkeley Institute for Data Science ']);\" >Berkeley Institute for Data Science <\/a>(BIDS).<\/p>\n<div id=\"attachment_1772\" style=\"width: 449px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel.jpg\" rel=\"attachment wp-att-1772\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1772\" class=\" wp-image-1772\" src=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel-1024x768.jpg\" alt=\"Julia picking up speed at Intel (picture taken dusing JuliaCon 2017)\" width=\"439\" height=\"329\" srcset=\"http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel-1024x768.jpg 1024w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel-300x225.jpg 300w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel-768x576.jpg 768w, http:\/\/antoine.wojdyla.fr\/blog\/wp-content\/uploads\/juliacon2017_intel.jpg 1632w\" sizes=\"auto, (max-width: 439px) 100vw, 439px\" \/><\/a><\/p>\n<p id=\"caption-attachment-1772\" class=\"wp-caption-text\">Julia picking up speed at Intel (picture taken dusing JuliaCon 2017)<\/p>\n<\/div><p>I started sharing some code for <a href=\"https:\/\/github.com\/awojdyla\/jlo\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/github.com\/awojdyla\/jlo', 'basic image processing (JLo) on Github']);\" >basic image processing (JLo) on Github<\/a>. Tell me what you think!<\/p>(by the way, I finally shared my meep scripts on github, and it&#8217;s <a href=\"https:\/\/github.com\/awojdyla\/meep_fdtd_examples\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https:\/\/github.com\/awojdyla\/meep_fdtd_examples', 'here']);\" >here<\/a>!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few years ago, I got interested in the then-nascent Julia language (julialang.org), a new open source language based on Matlab syntax with C-like performances, thanks to its just-in-time compiler.It now seems that the language is gaining traction, with many available packages, lots of REPL integration (it works with Atom+Hydrogen, and I suspect Jupyter gets [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,13,14,16,9,5],"tags":[],"class_list":["post-1770","post","type-post","status-publish","format-standard","hentry","category-english","category-epistemology","category-projects","category-resources","category-science","category-science-life"],"_links":{"self":[{"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/posts\/1770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/comments?post=1770"}],"version-history":[{"count":5,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/posts\/1770\/revisions"}],"predecessor-version":[{"id":1785,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/posts\/1770\/revisions\/1785"}],"wp:attachment":[{"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/media?parent=1770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/categories?post=1770"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/antoine.wojdyla.fr\/blog\/wp-json\/wp\/v2\/tags?post=1770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}