Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python and Julia. Why do we need another language? - Dwight J. Browne

Python and Julia. Why do we need another language? - Dwight J. Browne

Integration of Ipython notebook and Julia

PyGotham 2014

August 17, 2014
Tweet

More Decks by PyGotham 2014

Other Decks in Programming

Transcript

  1. Python  and  Julia   Why  do  we  need  another  language?

        Dwight  J.  Browne   PyGotham  2014   Twi>er:  @dwightb2   GitHub:  h>ps://github.com/dbrowne/PresentaGons  
  2. History   •  Slow  computers  required  efficient  languages   • 

    FORTRAN,    C   •  Required  efficient  and  diligent  coding   •  strncpy(tooSmall,tooBig,sizeof(tooBig)  =     The  olden  days:  The  Honeymooners  -­‐  Oprah  
  3. More  History   •  Compressed  delivery  Gme   •  Enterprise

     apps  bloat   •  C#,  Java,  Perl   •  *nix  or  Win   •  Computers  kept  ge_ng  faster   Seinfeld,  Friends    
  4. Some  Problems   •  Big  applicaGons   •  Complex  dependencies

      •  Cut  and  paste  code   •  Technical  debt     500  Channels  and  Nothing  to  Watch  
  5. The  Big  Problem   The  Notorious  E.C.L.E   •  E.C.L.E.

       -­‐  Edit  Compile  Link  Execute       •  More  data.  Finite  Gme   •  Processing  speeds  are  increasing  slowly   •  Need  a  be>er  way  
  6. The  Need  For  Speed   Fast  and  Furious   • 

    High  performance  =    C  or  FORTRAN     •  Using  BLAS,  LAPACK    =  FORTRAN       •  SGll  hindered  by    E.C.L.E.     •  A  use  case  for  a  dynamic  language      
  7. Python     The  Sopranos  and  Breaking  Bad   • 

    MulG  Paradigm   •  REPL  and  IPython  save  person  years     •  Less  TIMTOWDI  =  Less  wasted  Gme   •  Slowness  will  be  forgiven  for  fast  delivery   •  But  not  always  
  8. Julia   Julia?  Where  did  this  come  from?    

      •  Fast  C  like  performance     •  Incredibly  young  language  =  Immature  library  base   •  C  interoperability    =    Python  interoperability   •  MulGple  dispatch       •  Focus  on  methods  not  methods  of  classes    
  9. What  is  this  Witchcrah?   How  does  it  work?  

    •  Python  PyObject:       •  object.h,  methodobject.h   •   descrobject.h   •  Julia    PyObject:   •  PyCall.jl,  pytype.jl         •  PyPlot.jl  for  Matplotlib   •  ccall    to  call  external  C  libraries  
  10. IPython  and  Julia   Yes.  You  can  have  your  cake

     and  eat  it  too!       •  Ijulia/src/msg.jl   •  IPython/kernel/zmqIPython/kernel/zmq/session.py