cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP Wish List

We want to hear your ideas for improving JMP software.

  1. Search: Please search for an existing idea first before submitting a new idea.
  2. Submit: Post your new idea using the Suggest an Idea button. Please submit one actionable idea per post rather than a single post with multiple ideas.
  3. Kudo & Comment Kudo ideas you like, and comment to add to an idea.
  4. Subscribe: Follow the status of ideas you like. Refer to status definitions to understand where an idea is in its lifecycle. (You are automatically subscribed to ideas you've submitted or commented on.)

We consider several factors when looking for what ideas to add to JMP. This includes what will have the greatest benefit to our customers based on scope, needs and current resources. Product ideas help us decide what features to work on next. Additionally, we often look to ideas for inspiration on how to add value to developments already in our pipeline or enhancements to new or existing features.

Choose Language Hide Translation Bar

Work with Julia Language

Julia is a fast, dynamic, composable, general purpose programming language well suited to statistical data analysis, machine learning, automatic differentiation, other numerical modeling, as well as more general purpose programs. It feels like a scripting language, but runs compiled -- using Just-In-Time (JIT) compiler technology to compile code on the fly. It was designed from the ground up to support multi-threading, multiprocessing, and distributed multiprocessing. Julia solves the "two language" problem -- you don't need one language for ease-of-use prototyping, and a second language for speed -- as Julia is already easy to use and fast. You can write your high performance code in Julia itself. 

 

This proposal would be to support Julia similar to how Python is currently supported. 

 

Data types are highly compatible between the two languages

 

JMP Data TypeJulia Data Type
BooleanBoolean
Data TableDataFrames.jl
Associative ArrayDictionary
NumericFloat64
MatrixFloat64 Matrix
Listtuple
StringUnicode string

 

One advantage of Julia over Python is that there is no Numpy -- that functionality is just built-in. 

In addition, instead of telling users what packages they need to install, JMP could use PackageCompiler.jl to create a stand-alone binary of Julia with all of the packages that JMP requires and distribute that with JMP.  Julia integration would work right out of the box (or "after the install program finishes"). Advanced Julia users would have the option of replacing it, but for everyone else, it just works. 

 

Julia is an exciting, rapidly growing language in statistical, machine learning, and scientific computing. See The unreasonable effectiveness of the Julia programming language, by Lee Phillips (10/9/2020). 

 

Adding support for Julia would also users to drop some state-of-the-art tools and coding into their JSL scripts. 

2 Comments
blackeneth
Level III

One other note on datatypes; Julia has good support for missing values

 

JMP Data TypeJulia Data Type
empty()nothing
missing (.)missing

 

 

ben_ph
Level III

I shared some instructions for calling into Julia with JSL here https://community.jmp.com/t5/JMPer-Cable/How-to-The-Julia-programming-language-in-JMP/ba-p/480125. It's a bit involved but I find it can work for some simple workflows.