Thanks for the interest!
I am not that well learned in the current world of Scala coding, but I think there are some clarifications I can give:
* Anduril core is still Java. JAR files in the /lib/ are there for historical reasons, which the introduction of scala for pipeline building didnt change. Anduril = java project.
* Scala is used _only_ to build the network of components. That is, which data files are provided to which processes, and when. Then, the Java core kicks in, and takes care of running a separate process for each analysis step instance. At the moment, no component uses Scala as computation language. All components are written in Java, CRAN R, Matlab, Python, PERL, or they run external binaries with Bash. Some other languages are also used.
* Currently, we have had no resources to build any autosuggestion data. In the previous java-only-version of Anduril, we built one for Eclipse, but i don't think many people used it.
* Anduril dependency handling is a bit tricky IMHO. For many things we try to install everything in user space, but then, in many cases system wide installation is just easier to do. This problem pretty much always appears when you start to get tens and hundreds of different libraries and programs as dependencies. Since a perfect solution is hard to attain, we've built most of the components in a way, that components use whichever tools are already installed in the system. Anduril is an orchestrator of programs which you already know how to use, and have installed. Most of the components come with an installer for the tools, if you didn't have them already.
As to your questions, At the moment, none of the environments you mention have been discussed.
For most of the cases, new components are created when an interesting algorithm/library is published and we consider it useful in our work. Perhaps there is a new alignment algorithm, or an interesting deep learning method. Then, a new component is created with whatever environment that method requires to run. We never port code, we want to run the 'original implementation that was published (and hopefully tested)'. We never create components because of interest in the language or scripting environment.
Merry midwinter,
Just ask if there's anything that i misunderstood or if you want more comments.