[julia-users] Re: Too many packages?

2015-07-12 Thread Burak Budanur
Thank you! 

I apparently just made a wrong assumption that Julia was a language for 
scientific computing only. Once I think of it as a general purpose 
language, the current structure makes total sense, just as it does for 
python. 


On Sunday, July 12, 2015 at 4:47:04 AM UTC-4, Tony Kelman wrote:

 As John and Matt said, a huge portion of the standard library is written 
 in Julia itself, so there's no real technical need for it to be developed 
 within the same repository. In fact developing technical features as 
 packages rather than as part of base allows getting features to users in a 
 stable way on a time scale that the package developer has control over, 
 rather than being subject to the readiness of features in the core language 
 and compiler that obviously have to be done in the base repository.

  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?

 Using Julia, your wrapper glue code will be shorter, simpler to 
 understand, more efficient, entirely in the high-level language, and yet 
 map more directly to the underlying library's interface. You just have to 
 be able to point to a standard C or Fortran shared library and you can use 
 that API directly, even interactively from the REPL. No need to invoke a 
 separate compiler or build system at install time just for the 
 language-specific binding code. Depending on the library, there will 
 usually be less marshalling and worrying about cross-language data 
 structure copying.

  But since Julia is a language specifically for scientific computation

 That's not quite fair. Julia is a general-purpose language that happens to 
 be designed to be very good at scientific computing tasks. (And most, but 
 not all, of the early-adopter user and package developer community have 
 come from that domain.) There are pieces included by default in the 
 standard library right now that you would normally find in packages in the 
 likes of NumPy or SciPy in other languages, but this may not be the case 
 forever as the technical problems that have stood in the way of decoupling 
 that development are gradually being solved.



[julia-users] Too many packages?

2015-07-11 Thread Burak Budanur
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