# Designated Target Audience of Julia 1.0?

**URL:** <https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804>\
**Category:** Community\
**Created:** [June 20, 2018, 1:55am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804 "2018-06-20T01:55:31Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [June 21, 2018, 2:54am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/41 "2018-06-21T02:54:25Z")

</div>

Same situation in ecological modelling. They are not really in competition - we use them together for their relative strengths.

---

<div class="post-metadata">

**Author:** ![nickeubank](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nickeubank/32/3878_2.png) [@nickeubank](https://discourse.julialang.org/u/nickeubank)\
**Post date:** [June 21, 2018, 2:54am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/42 "2018-06-21T02:54:57Z")

</div>

This thread is making me wonder: has anyone every tried to do a survey of Julia users to ask about all these kinds of things? For a community of data users, we seem to be relying an awful lot on anecdotes here. Maybe Julia Computing might want to put together a little survey that asks users about favorite packages, what areas they perceive as needing work, questions about whether people think certain packages (like DataFrames) should be promoted to a more official status, etc?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2018, 3:01am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/43 "2018-06-21T03:01:20Z")

</div>

> [@ScottPJones](#):
>
> OK, my point was more that making it easy for people writing in R or Python to access anything special in Julia, and vice versa, will make it more of a moot point which side you write the script in - you’ll write it in whatever you feel most comfortable with, Julia, Python or R, and pick and choose which packages you use from all 3 ecosystems.

Yes. In fact, JuliaCall (the library for calling Julia from R) is one of the best libraries I’ve worked with. Did you know that you can automatically differentiate (yes, AD) R functions using that library? Indeed it’s true. That’s probably one of the best R AD libraries in some abstract sense of library.

But as @Raf is saying, there are relative strengths in the R package ecosystem that haven’t been matched in Julia yet. If you ever wanted to do a ridge regression that automatically computed `lambda`, the easiest thing to do is to just open up R. Right now Julia’s strengths are more on the scientific computing side (numerical linear algebra, optimization, AD, diffeqs) so MATLAB should be scared. But the huge stats base of R keeps it useful even if the language is quite dreadful. Just like how Python has some nice ML and web server libraries that Julia doesn’t quite have yet.

---

<div class="post-metadata">

**Author:** ![HCrepaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hcrepaz/32/4531_2.png) [@HCrepaz](https://discourse.julialang.org/u/HCrepaz)\
**Post date:** [June 21, 2018, 8:37am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/44 "2018-06-21T08:37:59Z")

</div>

To add some comments as a long time Matlab user in an academic research environment(physics).  
Is Julia a direct competitor to Matlab and should Matlab be scared? In some areas, yes.  
However, I see python/scipy/matplotlib and octave as more direct competitors to the common use case of base Matlab. And there the foss equivalents are a viable alternative.  
What is often omitted in discussions, important functionality is fully or partly missing in all the contenders:

- For industry use Simulink is really important (automotive, telecom and aviation). There is simply no equivalent in Python, Julia, R or Octave
- Similar for toolboxes targeting real-time systems or formal code verification.
- Tight integration with leading commercial software packages (e.g. LabView, Comsol etc)
- Comprehensive and consistent documentation with example code for all functions
- A beginner friendly, just working out-of-the-box, tightly integrated environment(ide/debugger/profiler)

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2018, 11:08am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/45 "2018-06-21T11:08:38Z")

</div>

> [@HCrepaz](#):
>
> - For industry use Simulink is really important (automotive, telecom and aviation). There is simply no equivalent in Python, Julia, R or Octave

There is a lot of work being done on acausal modeling in Julia though. I don’t know about an app being in development though. But programatically Simulink isn’t even one of the leading modeling tools for this when compared to tools like Modelica (but it does have a nice point and click app).

> [@HCrepaz](#):
>
> - Comprehensive and consistent documentation with example code for all functions
> - A beginner friendly, just working out-of-the-box, tightly integrated environment(ide/debugger/profiler)

This is being worked on.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [June 21, 2018, 11:23am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/46 "2018-06-21T11:23:12Z")

</div>

> [@Raf](#):
>
> Try to import a tiff raster in Julia.
> 
> You just cant compare rgdal and GDAL.jl/ ArchGDAL at this point.

Sure. It should be as difficult as

`I = gmt("read -Ti file.tiff");`

if `file.tif`` is an image, or

`G = gmt("read -Tg file.tiff");`

if the file is a grid. Now, since the `I` type is only either 1 or 3 layers, for multi-layer files I would have to go to the GMT manual (not GMT.jl) to see how tha is done.  
But we have been (similar to) here before. See [this thread](https://discourse.julialang.org/t/grid-interpolation-of-data-from-polar-orbiting-satellites/10080/19)

---

<div class="post-metadata">

**Author:** ![HCrepaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hcrepaz/32/4531_2.png) [@HCrepaz](https://discourse.julialang.org/u/HCrepaz)\
**Post date:** [June 21, 2018, 11:53am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/47 "2018-06-21T11:53:33Z")

</div>

> [@ChrisRackauckas](#):
>
> But programatically Simulink isn’t even one of the leading modeling tools for this when compared to tools like Modelica (but it does have a nice point and click app).

Simulink is a causal modelling tool while Modelica is (mostly) acausal. Simscape would be the Matlab equivalent, though it’s not as widely used or feature rich.

My post before was not a critique of Julia, I like Julia a lot. Just to emphasize some strong points Matlab still has and why companies still buy it.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [June 21, 2018, 12:02pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/48 "2018-06-21T12:02:05Z")

</div>

> [@HCrepaz](#):
>
> Just to emphasize some strong points Matlab still has and why companies still buy it.

Another reason they still buy it, simply because companies tend to be a bit conservative, and until Julia is v1.0, they won’t touch it, no matter how much the employees ask to be able to use it instead of Matlab.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2018, 1:05pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/49 "2018-06-21T13:05:53Z")

</div>

> [@HCrepaz](#):
>
> Simulink is a causal modelling tool while Modelica is (mostly) acausal. Simscape would be the Matlab equivalent, though it’s not as widely used or feature rich.

I thought everyone was going to acausal? What disciplines are better modeled causally (with causal modeling tools instead of just writing the diffeqs out)? Is this something we should investigate with Julia?

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [June 21, 2018, 1:07pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/50 "2018-06-21T13:07:07Z")

</div>

It’s not that easy. If i look into my own day job, where i’m in research for mobile communications (with one of the bigger names …) we’re a heavy matlab user (three-digit number of licenses). We have established base of matlab programs/scripts and if anyone (even heads of projects) ask for budget for reimplementation in a different environment/language we are asked tough questions. About gains and efficiencies. And user base and community and future.  
The cost of maintaining matlab as SW base looks high, but the cost of changing to something else is also there.

---

<div class="post-metadata">

**Author:** ![HCrepaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hcrepaz/32/4531_2.png) [@HCrepaz](https://discourse.julialang.org/u/HCrepaz)\
**Post date:** [June 21, 2018, 1:36pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/51 "2018-06-21T13:36:24Z")

</div>

> [@ChrisRackauckas](#):
>
> I thought everyone was going to acausal? What disciplines are better modeled causally (with causal modeling tools instead of just writing the diffeqs out)? Is this something we should investigate with Julia?

Others may chime in on that question. I’m not a specialist myself in causal modelling tools so I quote:

_“After using both (Simulink & Modelica) for almost 5 years, the only advantage that I found in Simulink is that it has better Optimisation capabilities. The MPC toolbox is a good tool. (It might also be because Simulink essentially uses much simpler equations and causal models, It would be unthinkable to code an MPC into Modelica with all its states, events and so on”._

Optimization though is already one of the strong points of Julia.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [June 21, 2018, 1:37pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/52 "2018-06-21T13:37:16Z")

</div>

For the type of modelling we do acausal modelling doesn’t work (yet?). We have dynamic systems where values like the mass is changing a lot at simulation time, and Modelica cannot handle this. Simulink can.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [June 21, 2018, 2:12pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/53 "2018-06-21T14:12:26Z")

</div>

> [@HCrepaz](#):
>
> _“After using both (Simulink & Modelica) for almost 5 years, the only advantage that I found in Simulink is that it has better Optimisation capabilities. The MPC toolbox is a good tool. (It might also be because Simulink essentially uses much simpler equations and causal models, It would be unthinkable to code an MPC into Modelica with all its states, events and so on”._

I see, so MPC is something done better causally?

> [@ufechner7](#):
>
> For the type of modelling we do acausal modelling doesn’t work (yet?). We have dynamic systems where values like the mass is changing a lot at simulation time, and Modelica cannot handle this. Simulink can.

So what exactly are you looking for?

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [June 21, 2018, 2:29pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/54 "2018-06-21T14:29:11Z")

</div>

Its still an unwrapped external command. Compare that with say b ← `brick(f)` or `stack(f)` in R and how much they do with so little effort and such clear syntax.

We need wrappers that make this entirely painless. I even toyed with the idea of writing one (for GDAL) but the other 10 packages I’m writing disagree.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [June 21, 2018, 2:32pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/55 "2018-06-21T14:32:56Z")

</div>

> [@Raf](#):
>
> Using a quoted shell command with flags inside a Julia command is completely making my point

That is not a quoted shell command at all. It’s just the GMT syntax. There is a new keyworded syntax being developed but it’s not there yet for this case.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [June 21, 2018, 5:00pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/56 "2018-06-21T17:00:43Z")

</div>

> [@Raf](#):
>
> Its still an unwrapped external command.

Sorry, either I don’t understand what you mean or I have to say again, no.  
It’s a call to a julia package that parses it and send the request to an external library via `ccall`. For sure `R` is accessing to an external gdal library as well.

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [June 21, 2018, 7:48pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/57 "2018-06-21T19:48:08Z")

</div>

Not to jump in too late but my two cents regarding the 1.0 is very much a developer milestone relating to some promise of backwards compatibility making package development easier and more robust going forward. For new users I also agree with many others in this thread that this is not a sign to exchange your production language favorite for Julia. Maturing a language takes time and, while being great, Julia is still very young. Let’s not forget that.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [June 21, 2018, 7:48pm UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/58 "2018-06-21T19:48:15Z")

</div>

I totally agree, inertia is a very large factor (not just in reimplementation costs, but retraining the programmers).

I was thinking more of green field projects, where the bureaucracy might be holding people back until they can check off that `at least v1.0 software` box, no matter how compelling Julia might be to the programmers.  
So, silly v1.0 roadblock will soon be gone, now it will be more what you said, does it make economic sense for a company to start to switch.

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [June 22, 2018, 2:06am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/59 "2018-06-22T02:06:23Z")

</div>

It’s sent as-is to a C library with C call. You are writing a command in a different language (edit: as in DSL) and to do anything complicated you need to consult the manual of that language, not the julia package.

To do anything programatically you need to do string interpolation!

Sure R calls a C library too. It _always_ calls C.

But commands like `stack()` in R do some complex things while _hiding_ the details an the external library entirely from the user, curating a seamless experience in R.

I’m not trying to attack Julia at all here. I’m just saying those commands are not yet fit for third year biology pracs, or my casual occasional use of rasters. And R is. I’m not sure how else we can improve things than admitting when something else is quite obviously a better user experience.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [June 22, 2018, 6:26am UTC](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804/60 "2018-06-22T06:26:04Z")

</div>

> [@ScottPJones](#):
>
> silly v1.0 roadblock

I wouldn’t call the attitude of waiting for v1.0 silly: Julia v0.1-0.7 have had a huge amount of changes which have made upkeep very painful.

[Previous page](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804.md?page=2)

[Next page](https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804.md?page=4)
