Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Julia + R for Data Science

9,453 views

Published on

Delivered by Stefan Karpinski (Co-Creater, Julia) at the 2016 New York R Conference on April 8th and 9th at Work-Bench.

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Julia + R for Data Science

  1. 1. computing Julia Julia + R for Data Science Stefan Karpinski u alj i Center For Data Science
  2. 2. In a single project, I was using: ‣ Matlab for linear algebra ‣ R for stats & visualization ‣ C for the fast stuff ‣ Ruby to tie it all together My Data Science Stack circa 2009
  3. 3. What is the “Two Language Problem”? a.k.a. “Ousterholt’s dichotomy” “systems languages” “scripting languages” static dynamic compiled interpreted user types standard types fast slow hard easy
  4. 4. What is the “Two Language Problem”? Because of this dichotomy, a two-tier compromise is standard: ‣ for convenience, use a scripting language (Python, R, Matlab) ‣ but do all the hard stuff in a systems language (C, C++, Fortran) Pragmatic for many applications, but has drawbacks ‣ aren’t the hard parts exactly where you need an easier language? ‣ forces vectorization everywhere, even when awkward or wasteful ‣ creates a social barrier – a wall between users and developers
  5. 5. The Julian Unification Ousterholt’s dichotomy static dynamic compiled interpreted user types standard types hard easy fast slow
  6. 6. The Julian Unification dynamic compiled user types standard types Julia and easy fast
  7. 7. Speed timerelativetoC
  8. 8. Speed vs. Productivity timerelativetoC normalized lines of code Julia
  9. 9. Rube Goldberg Revised Here’s my data science stack today: ‣ Matlab Julia for linear algebra ‣ R Julia for stats & visualization ‣ C Julia for the fast stuff ‣ Ruby Julia to tie it all together
  10. 10. Why Try Julia? ‣ Because it’s fun! some people enjoy trying out and learning new languages ‣ You’re in a world of pain with other tools R / Python / Matlab isn’t fast enough for the work you do Rcpp / Cython / C++ are unappealing, not productive enough Julia is in the sweet spot for speed & high productivity ‣ For the fancy features multiple dispatch, coroutine-based I/O, macros & metaprogramming, efficient custom types, advanced linear algebra, …

×