I would like to see Julia being used for the development of a big CFD (or FEM) code, particularly as a framework for an open-source project composed of several packages which implement various physical and numerical models used for flow simulations together with a “driver” main application which implements the basic logic.
There is certainly a lot of interest for such a framework but the problem is that Julia has a different orientation as it is trying to provide a one-language solution for what is currently written in Python for scientific computing, a field that in my opinion Python covers very well and people will be reluctant to abandon. REPL, dynamic types, notebooks and running scripts are not very important to the CFD/FEM world unless you want to experiment with some particular model you are developing for testing purposes.
What is important is the ability to manage large codebases with ease (not good in Julia), building the application with a straightforward system which works on all platforms (works well in Julia), handling external packages automatically (also good in Julia), being able to create binary libraries and executables of a reasonable size (not good in Julia), a readable language which does not require a degree in Computer Science (good in Julia) and most importantly a highly performant code which can use the available hardware for parallel computing with features baked into the language and of course supported by various libraries which remain mainly invisible to the user.
Julia was not designed with these in mind. Of course the language designers can do whatever they like but from my point of view the real problem in today’s scientific / engineering computing is not a replacement for Python but a replacement for the C++/Fortran and the myriad different libraries and APIs which extend the languages for parallel processing. Yes, Chapel follows this philosophy but it has no ecosystem of libraries around it like Julia, the documentation is limited, books do not exist, applications are not open source or they do not exist at all. Julia is in a better position to be the leader in this field but only if the developers decide to move the language into this direction.
P.S. The reasons I talk about binary libraries and executables are these:
a. A binary executable will execute instantly without any potential pre-compilation delays.
b. Commercial codes cannot release source code, only binaries.