{ "metadata": { "celltoolbar": "Slideshow", "language": "Julia", "name": "", "signature": "sha256:24cf265a84971ab62554f1c4918742e657f1c0600577f90e80e5fdabe9835a3b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Why Julia?" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Or: DIRHTLYAPL\n", "\n" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\"Do I Really Have To Learn Yet Another Programming Language??\"" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "##David P. Sanders\n", "\n", "###Department of Physics, Faculty of Sciences\n", "###National University of Mexico (UNAM)\n", "\n", "###Twitter: @DavidPSanders\n", "###GitHub: dpsanders" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Advantages of Julia" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Julia:\n", "\n", "- is interpreted, but (JIT-) compiled\n", "- is high-level and easy to learn\n", "\n", "\n", "- designed so easy to make fast from the start\n", "- is fast (~2--3x C speed)\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Julia:\n", "\n", "- has a sophisticated type system\n", "- but it is not *necessary* to talk about types\n", "\n", "- has *multiple dispatch*: functions specialised on the types of their arguments\n", "\n", "\n", "- has sophisticated *metaprogramming* (macros) for generating code programatically\n", "- allow the creation of domain-specific languages\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Julia:\n", "\n", "- most of the standard library is implemented *in Julia itself* \n", "\n", "- avoids the infamous \"two-language problem\"\n", "\n", "- \"users are developers\"\n" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Using Julia" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "- From the REPL (Read--Eval--Print Loop):\n", "\n", " julia\n", " \n", " \n", "- Inside IJulia (IPython interface with Julia kernel):\n", "\n", " ipython notebook --profile julia\n", "\n", "\n", "- Inside an IDE, e.g. LightTable + Jewel + Juno/Jupiter; Julia Studio" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Getting help with Julia" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Julia manual: \n", "\n", "- julia-users mailing list: " ] }, { "cell_type": "code", "collapsed": false, "input": [ ";ipython nbconvert Why\\ Julia.ipynb --to slides --post serve" ], "language": "python", "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [] } ], "metadata": {} } ] }