why learning Java

Mattebass's icon

Hello,
I'm writing to ask a very basic question: anyone could give me some advices about the benefit of learning Java language.
I've passed last year in exploring max and Jitter,
and I've worked a lot on FFT and use of Jitter to handle FFT data. But I didn't dive to deeply in Jitter, because I'm not really interested in images. What I'd like to do is to have the possibility to make some operations on matrix based on Symmetry applications of Group Theory,
In a way to modify the spectral informations held in the matrix. Someone could argue if this could be done in Max, or could be better to work on it learning JAva and programming specific Externals?

Thanks

$Adam's icon

Hello,

this is really dependent on what you specifically want to achieve. Unfortunately I don't really know Jitter, so I can't talk about the possibilities that it offers when it comes to matrix transforms (I don't really know what you mean by 'symmetry applications or group theory', but I assume you mean linear transforms involving matrices eg. of the special orthogonal or unitary groups), but if you decide to write your own externals, at the point where you choose between Java and C/C++, perhaps the best you could do would be to consider the (third party) libraries that both languages could offer to help your goal. In C, there are a lot of libraries (LAPACK/BLAS or GNU GSL, to name a few) that offer very powerful and optimized routines for matrix manipulations. I am sure that there are a lot for Java as well, although I don't know of any of them personally (I tend to prefer C for implementing stuff that involves math heavily). On the other hand, if you neither know C nor Java, it might take a while to learn them. So, it is really the question of whether you can achieve your task with Jitter (which, as I understand, you already learned) in an acceptable level. If you just can't, you'll have to go on and learn a programming language. But as a rule of thumb: if the task that you're wanting to achieve is not that complicated that it would require the use of an industry-developed math library in C or Java (in other words, if the algorithm is simple enough so that you think you could program it by yourself without the need of using an out-of-the-box library), then probably it's just not worth your time to start the development of an external, either in C or in Java (assuming that you have to learn those languages as well).

Just my 2 cents,
Ádám