I switch from python to julia is because of I need to write high performance custom GPU kernels(with one language).
I had choices like learning C++ and using C++ to write the kernel then embeded into python.
To learn C++ itself is okay, before I noticed that the C++20 I learned is not compile-able at that moment… And older version of C++ is just too less modern to me. You have to write something complicated carefully to do something simple, it’s very easy to make a mistake in C++ for new learner like me.
Also I found using compiler and writing compile script does not have very good tutorials, and there are tons of choises for compiling C++ projects, package management etc. I got quickly lost in those.
Then I found julia, it does not only solved my problem very quickly without steep learning curve, it kinda changed the way I thought of programming(largely because of multiple dispatch).
And it is just so much elegent than using C++(or most other languages I know of), just like how I believed that being elegent has no conflict from being fast, and most other languages are just making compromises.
Julia is not perfect, I found that if I’m to write something don’t need high performance, sometimes a one time script on very small data, python seems to be the one to go. The time-to-first-plot problem is very painful in this senario. It just seem not very responsive to dev in Julia than python on these small scripts.
Also pakcages are not very matured like python, I experienced multiple regressions and new bugs through developing while I constantly trying to update all the packages I have. Good news is that they tends to be fixed really fast, sometimes minutes after I post the issue on github. Julia community is soooo amazing.
Also by just watching juliacon or Julia’s official ytb channel, I was introduced to many interesting areas that I have never heard of, very inspiring to me.
After working for years, Julia’s community makes me feels like a student again. I really love that.