Julia for MATLAB Users/Introduction to Julia for MATLAB users

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Introduction to Julia for MATLAB users[edit | edit source]

This part is intended to orient a typical MATLAB user to some of the most significant aspects of Julia, emphasizing what might be some of the more unexpected differences and also highlighting some of the areas where Julia has particular strengths relative to MATLAB.

Overview[edit | edit source]

Julia and MATLAB share a lot of similarities:

  • At core both are programming languages targeting scientific and engineering audiences.
  • Each has relatively high level syntax, that in some cases is very similar.

There are also many differences:

  • MATLAB is commercially developed and closed-source while Julia is an open-source community-developed project.
  • MATLAB is relatively mature and stable, while Julia is relatively young and rapidly changing (though a 1.0 release is imminent as of July 2018).

Comparisons by area[edit | edit source]

Comparisons and contrasts between MATLAB and Julia. This complements the MATLAB-to-Julia Functions Mapping page.

Origins and history[edit | edit source]

  • MATLAB has its origins in the late 1970s and was originally conceived to allow the math students at UNM of its creator, Cleve Moler, to access the EISPACK and LINPACK libraries without having to code in FORTRAN, which was the original language in which MATLAB was implemented. Moler, Jack Little and Steve Bangert co-founded The MathWorks in 1984; by this point MATLAB had been re-written in C.[1] MATLAB and a larger product family (see below) derived from it have since become widely used in academia and industry, with over 3 million users as of April 2018.[2]
  • Julia was started in 2009 by Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman who set out to create a language that was both high-level and fast.[3] It was introduced in a in a blog post in 2012[4]. The Julia language creators, along with Deepak Vinchhi and Keno Fischer founded a company called Julia Computing whose stated mission is "to develop products that make Julia easy to use, easy to deploy and easy to scale".[5] One of these products is JuliaPro which provides an all-in-one installation of Julia and is available in free and paid tiers.

Product landscape[edit | edit source]

  • MATLAB is a product line, with a "core language" that is included with every installation, and a number of first-party[6] Toolboxes which can installed which provide additional functionality and are generally organized around certain application areas, for instance there is an Aerospace Toolbox and a Control Systems Toolbox. All toolboxes require a licensed base MATLAB install to function and some also require other toolboxes as prerequisites.
  • Julia is a language, with a core (Base), and a standard library (StdLib) that are included with every installation, and a number of Packages which can be installed.
  • In parallel with the MATLAB product line, MathWorks' other major product line is Simulink which itself has a base product (Simulink itself, which requires MATLAB) and a number of add-on packages called blocksets which are analogous to MATLAB toolboxes in that they add capabilities to Simulink in certain specific domains. Blocksets all require Simulink and some additionally require licenses for either toolboxes or other blocksets.

Versioning and releases[edit | edit source]

  • MATLAB follows a twice-yearly product release cycle with an "A" version released early in each year and a "B" version later in the year. The whole product line is synchronized in this regard so that toolboxes are updated in lockstep with the core language. In between releases there may be patches released for bug fixes, though these are not available automatically and generally users only install them as a result of their own determination that they are affected by a bug fixed by an update (or being told so by MathWorks support). MATLAB 1.0 was released in 1984; the latest release of the MATLAB product family is R2018a, which is approximately the 39th major release[7]. Some organizations have a policy by which they wait for a "b" release before migrating, in part because "a" releases tend to introduce new features and some of the early bugs in these will have been resolved by the "b" release.[citation needed]
  • Julia version 0.3 was released in August 2014; as of July 2018 version 1.0 is in beta test (as version 0.7, which is 1.0 built with deprecation warnings).
  1. Cleve Moler (December 2004), "The Origins of Matlab". Retrieved 31 July 2018.
  2. MathWorks Company Overview (retrieved 31 July 2018)
  3. https://en.wikipedia.org/wiki/Julia_language#History
  4. Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, Why We Created Julia, 14 Feb 2012.
  5. https://juliacomputing.com/about-us
  6. Available also from the vendor of MATLAB: The MathWorks, Inc. or simply MathWorks.
  7. https://en.wikipedia.org/wiki/MATLAB#Release_history