I heard a lot about Julia language over the last year and last week had a conversation with a colleague, who attended Juliacon and was quite impressed. We talked about possibly moving some of our fluid dynamics projects to Julia, so that for a new student who is joining the project it would be much easier to start without going through learning c++ and/or fortran.
I am a physicist and most of my day job is some form of scientific computing. My current default working environment is python (numpy, scipy, sympy, matplotlib) + fortran (f2py) when some part of my code needs to speed up. Yesterday I decided to start a a new, relatively easy project as a simple example for an upcoming paper. So I thought this might be a good occasion to start learning Julia language to code a simple dynamical systems toolbox in it, which might be useful for other people as well. Basic functionality I need from the language are these: - Symbolic differentiation (for computation of Jacobians) - Numerical integration of ODEs (a general purpose integrator, such as lsoda from odepack, wrapped in scipy.integrate.odeint) - Linear algebra functions - Interpolation - Plotting in 2D and 3D After reading The Julia Express and parts of the documentation, I thought that such a project is not a good investment, at least for now. The reason is all the functionality I listed above are provided by external packages, partially excluding linear algebra functions. I'm aware that I can use specific packages for all the functionality I mentioned above, but each such package is maintained by different people, and they can change or become obsolete. I can also find some Fortran/C code, and include in Julia, and have all these functionality, but then what is the advantage of using Julia, as opposed to, say, python? In a more general sense, I am a little bit turned off by the presence of an external package for almost every task I need to do. I can understand this kind of structure in python as it is a general purpose language. But since Julia is a language specifically for scientific computation, I'd be happy to have something like the basic functionality of MATLAB in the main language. I understand that Julia is under development and there is a lot to change and to be added, but I am wondering what is the Julia's future directions regarding these issues? I did some search, but could not find an answer to this question, so I apologize if this was already answered elsewhere. I heard a lot about Julia language over the last year and last week had a conversation with a colleague, who attended Juliacon and was quite impressed. We talked about possibly moving some of our fluid dynamics projects to Julia, so that for a new student who is joining the project it would be much easier to start without going through learning c++ and/or fortran. I am a physicist and most of my day job is some form of scientific computing. My current default working environment is python (numpy, scipy, sympy, matplotlib) + fortran (f2py) when some part of my code needs to speed up. Yesterday I decided to start a a new, relatively easy project as a simple example for an upcoming paper. So I thought this might be a good occasion to start learning Julia language to code a simple dynamical systems toolbox in it, which might be useful for other people as well. Basic functionality I need from the language are these: - Symbolic differentiation (for computation of Jacobians) - Numerical integration of ODEs (a general purpose integrator, such as lsoda from odepack, wrapped in scipy.integrate.odeint) - Linear algebra functions - Interpolation - Plotting in 2D and 3D After reading The Julia Express and parts of the documentation, I thought that such a project is not a good investment, at least for now. The reason is all the functionality I listed above are provided by external packages, partially excluding linear algebra functions. I'm aware that I can use specific packages for all the functionality I mentioned above, but each such package is maintained by different people, and they can change or become obsolete. I can also find some Fortran/C code, and include in Julia, and have all these functionality, but then what is the advantage of using Julia, as opposed to, say, python? In a more general sense, I am a little bit turned off by the presence of an external package for almost every task I need to do. I can understand this kind of structure in python as it is a general purpose language. But since Julia is a language specifically for scientific computation, I'd be happy to have something like the basic functionality of MATLAB in the main language. I understand that Julia is under development and there is a lot to change and to be added, but I am wondering what is the Julia's future directions regarding these issues? I did some search, but could not find an answer to this question, so I apologize if this was already answered elsewhere.
