To summarize my frustration with Python, it is a great tool with C but often makes it rather difficult to engineer low-level solutions being so declarative and script-oriented. That being said, running Python as Python can actually be rather slow and certainly not optimal for machine-learning or big-data operations. Julia is a high-level, multi-paradigm, high-level programming language that just recently got into version 1.5, and if you’re in the industry it might be a good idea to check out now!
Julia is a very fast programming language, and that is something that everyone who uses it likely picked it up for. Not only is it fast to compile with Just-In-Time (JIT) compilation, it is also incredibly fast to write with polymorphic dispatch and syntactical expressions that can often compress a full function into one line of code.
Julia also had a very attractive approach to dependencies. In Julia, environments are stored in the form of simple text data, .toml files which hold all of the dependency information for a given project. This makes it incredibly easy for scientists to share environments with one another and work together more efficiently. It also makes deploying a model as easy as putting it into a folder. To be clear, Python has a similar model to this with Pip environments, but the flawless integration with precompiling, file-management, and repositories is where Julia really pulls ahead in WOW factor.
Julia has unique approaches to data-types which makes it easier to explore different types of statistical and scientific data and represent it just as it is in the papers. For big-data nuts, there are Big types which can hold floating point accuracy and integer accuracy very well. For the dictionary fans, any data type can be a key including symbols, meaning dictionary keys can be called on an arbitrary representation of data — which I think is better than using integers or strings a lot of the time. This is particularly true for scientific work. Sets can get unique sets of data and can be used for many algorithms, and there are many more types that are incredibly fun to work with in the Julia language.
Another extension of data and code is meta-programming, which an interested user might be delighted to know is very well catered towards in the Julia language.
The last thing that really made me gravitate towards primarily becoming a Julia programmer is just how flexible the language is. In Julia, it is incredibly easy to go from classic functional programming into a completely different paradigm in one simple line of code. Expressions in Julia are incredible and make it easy to make a scientific impact with just one line of code.