Hi Everyone, There are many comments with which I agree. Chris has put forward many good ideas, I also use Java and find the install/upgrade system excellent. There is no problem with having lots of APIs in the distribution since they are not loaded into you code unless specifically required. I see a couple of things that are a problem with Julia which I would like to see some changes/improvements in.
The first is the way that packages are added is really quite tedious and time consuming (I suspect this is a result of its REPL origin) which could possibly be streamlined with some kind of gui based application. The second is that the group working on the Julia language (unlike Java) are not also providing the bulk of the packages that help to improve the functionality and usefulness of Julia. So how would you decide on a suitable base distribution if the bulk are third party packages? There is another "problem" (I can't quite think of the correct term) which Java handles well, and, that is the stability of packages which are released/updated in a more controlled manner. For Julia this seems to be very random, again due to them being prepared by third parties, I check for updates every time I run and rarely do I go for more than a day without one package or other being updated. I can't see a solution to this problem unless there is some group through which packages are thoroughly vetted and given a seal of approval, again similar to Java, before being released to the public. This may be due to a lack of proper design or requirements definition or that the packages are created by non-computing specialists who are not familiar with software development as a discipline. Please do not take this as a slight it is not intended to be, I have a very high regard for all working in science and technology (I studied mechanical engineering at university) and appreciate that the reasons they develop packages is because they want them for their own field of study and the packages may have been developed in a more organic manner, rather than as a generally applicable utility for problems of the type.
