Does the concept of type-stability apply to DataFrames or Tables?

Julia has a few things going for it. For one, there are labs which are interested in hiring Julia developers to mix package development and research. Alan Edelman’s Julia Lab is pretty big and has postdocs for Julia developers:

http://julia.mit.edu/

I know some contacts at Imperial College London who are looking to fund Julia developers in the area of scientific computing applied to theoretical biology. So there is a growing academic sphere willing to fund people for a few years, which isn’t perfect but is a very good start. @mkborregaard posted a job offering not too long ago. I’ve gotten more than a few emails with offers that would allow me to continue doing development in Julia. It is definitely at a point where if you pour a lot of time into Julia development, you will certainly get job offers to keep doing it.

One thing that really helps is that Julia packages are so flexible that they can be easy to fit into research projects. Other people see DifferentialEquations.jl as a library of solvers to use. To me, it’s a research goldmine and an easy way to implement and benchmark new methods in “full context” (with event handling and all of that). This is quite unique because, well, it’s all written in Julia instead of being a package which wraps a bunch of Fortran solvers. If we can get optimization researchers implementing new algorithms into Optim as part of what they do with each paper, there will be a good core of maintainers that grow out of that. In addition, the numerical linear algebra community is quite strong (built up by Alan of course) and so I know there have been quite a few contributors to things like IterativeSolvers.jl during postdoc years and contributed quite new things. I think promoting “the way to benchmark your new algorithm for you paper is to add it to Optim/IterativeSolvers/DiffEq” could be very fruitful for growing the developer community.

In addition, Julia Computing exists. Julia Computing gets paid through consulting and a lot of core developers and package developers are on Julia Computing’s payroll. It gives a strong centralized “store-front” for Julia open-source development. Through Julia Computing and these academic labs I already see Julia open source development getting good funding at least on a project or scientific field basis (I am not sure I can detail by whom quite yet, but I will say I am being helped out through these means).

One thing I would like to see is NumFOCUS adopt some or the big Julia package organizations like JuliaOpt or JuliaDiffEq into its fold. That could happen. Judging by the imperfect measure of Github stars, our main technical computing packages aren’t as popular as more “premiere” parts of NumFOCUS like Stan or PyMC3, but are more widely used than the smaller libraries they sponsor like yt and sunpy. And Google Summer of Code, which is done through NumFOCUS, has most of its students working on packages in these organizations. I don’t think it would be too unreasonable to have @viralbshah start talking to NumFOCUS about this. Especially if we start asking for funding to start using Julia as a “package development language”, i.e. add Python/R bindings to packages to fill in gaps in their ecosystems, I am sure NumFOCUS would be interested in it. And that’s a good idea for next GSoC projects…

3 Likes

Thank you for the incredible answer!

I like the idea of Julia being the standard optimization software, the way statisticians frequently write an R package for a new estimator. Julia is also good for this because bad code in R is very slow, while bad code in Julia is often still okay. (statisticians aren’t great at writing code)

I haven’t been part of this whole world ecosystem very long (and still am not a contributor, learning), but am fascinated about how open source software can make money. Though I recently looked up Matlab and Mathematica’s revenues and was surprised.

Thanks for the response. Its cool learning about this community while I learn the language.

1 Like