I have been using Julia for about two
years now. At work it is more challenging to use an open source product like Julia than a proprietary program like MATLAB or write a DIY program in something like C++. It is challenging due to the amount of authorizations, security checks, and legal paperwork because of the nature of open source licenses. Julia’s package manager is amazing. But authorizing all of those packages is not. We are making improvements but it is not easy.
I like Julia because it allows me to quickly put my thoughts into code and build on those thoughts incrementally and logically with a great deal of reuse. In MATLAB or C++ this can also be done but it seems simpler and more intuitive in Julia. That is, there is much less typing and far fewer files I need to write. The Julia code is nicer to look at as well without some of the boiler plate that is needed in the other languages. You all know this. Julia is really cool.
I also like the immense creativity of the community and how they have embraced collaboration and composability. My little contribution to this Forem is for now only what i am struggling with now as a mid-level-noob. Beyond the open source approvals of course, those will always be my toughest struggles.
I’m hoping my brief post will spark more articles and more discussions that help other noobs trying to get Julia approved for use at their place of business. One day, I also hope to write something inspiring and become a contributor to the ecosystem to help advance the technology. (Also a challenge if it relates to a work product.)
So as a noob, how do I write my code to best use the amazing power of the FLUX and diffeq or some other package but still have the type-def clarity that my own applications and simulations require or a should say acquire as they are converted over from legacy code. How do I best “fix” my packages based on my legacy training in C++ styles and MATLAB styles to fit better with the Julia best practices. I would love some more blogs about that type of thing.
Another workflow problem i see is probably very common to my industry and my customers. My industry is very comfortable with using home grown simulations that have clear “developer” and “analyst” roles even if they are done by the same person. I need to better understand how to effectively use Julia in these settings. Develop a sim, run millions of runs or more with it on clusters or stand alone systems by 10s or 100s of people and then analyze the results. I don’t want everyone compiling or changing the sim, it needs to be locked down. Analysis may be done in any of a number of ways so it doesn’t have to be Julia. Maybe Matlab is more interactive on the graphing or we have more MATLAB users for now. Understanding the best practices in this workflow would be a great topic.
And finally, the freshest of Julia topics as it expands its scope beyond scientific computing: algorithm development. I love how clearly I can develop algorithms in Julia. But the end goal of our algorithms will target embedded systems and in many cases safety critical software where size, weight, performance and cost are key. Do I still need to convert the algos to C? Or write them in C++ and link them back into my Julia-only simulations? How do i validate my code? How do I increase the speed of development and the reliability of development at the same time? I see hope in the release notes of 1.8 for some of these needs. I would love to see more examples here and other places on how best to do this. Especially if Return On Investment numbers could be at least hinted at for the managerial ammo we need to adopt Julia more widely.
I would love to see blogs where people are shouting their successes in these practical areas. This is where I want to see Julia go.
Cheers new Julia Forem! I would love your thoughts that help me push for better adoption of Julia to solve some of our toughest problems.
Top comments (1)
Nice article addressing the common thoughts of groups who are thinking to transition to a new ecosystem.
Your paragraph about role separation between developer and analyst reminds me LabView where the "Instrumentation GUI" can be developed and then a read-only version can be deployed.
Also, other computing ecosystems are also improving with new features in each release. So the question of improving existing code vs. using raw productivity power of Julia perhaps needs more evidence-based or benchmark proof for that industry vertical.
Hope you continue such articles about experiences with and attitudes of management and groups evaluating the suitability of Julia.