826 karma · joined March 26, 2012
julia> "hello" |> reverse |> uppercase
"OLLEH"There are probably a few ways to prove the result now, but one (nicely general) way to prove that online learning result would be the method of multiplicative weights: https://www.cs.princeton.edu/~arora/pubs/MWsurvey.pdf
If you like MATLAB/pyplot/matplotlib style, PyPlot.jl is for you.
If you like ggplot2, Gadfly.jl is for you.
If you like gnuplot, Gaston.jl is for you.
Finally, but not least, is Winston.jl, which is its own thing altogether.
I think in many cases its good for packages that overlap to come together/one to become dominant, but I don't think that applies here.
https://github.com/stevengj/PyPlot.jl
https://github.com/dcjones/Gadfly.jl
Its definitely a typo. Stable release is currently 0.2 (released near end of 2013) and upcoming version is 0.3 (a month or so away).
I'm not a core developer on Julia, just a user and package creator. It is geared towards technical/scientific computing, and excels in that task - it has replaced the combination of Python and C++ I used previously. I think what Jeff Bezanson is saying is that there is nothing intrinsically unsuited about Julia for doing web programming or desktop applications. It benefits from a fresh start in this respect, and also by using best-of-breed libraries from OpenBLAS to libuv. This is in contrast to other languages for technical computing like MATLAB or R which I wouldn't consider to be practical choices for making, for example, a math-as-a-service application (although R is getting into this territory with things like shiny).
But, this issue is well-identified in the Julia dev community, and is on the roadmap for 0.3: https://github.com/JuliaLang/julia/issues/4853
For example, the idea of writing some number-crunching as a webservice with MATLAB or Octave is not an option, but with Julia is totally possible (and has been done more than once already) - and it builds on strong foundations (e.g. libuv). Heres an example (disclaimer: my own site) http://iaindunning.com/2013/sudoku-as-a-service.html
I also think any "immaturity" is only really in the package ecosystem, especially after the release of 0.2. Even then, the package ecosystem is strong for the things that people really need (naturally), and of course you can call any Python package from Julia if you want as well.
https://docs.google.com/presentation/d/1FlHt245YxPXFwOHmxLYW...
As for using other techniques, I don't think it necessarily makes more sense to use them. The natural statement of the problem is an optimization problem, not a constraint satisfaction problem, so using an optimization method seems reasonable to me. On problems that are highly constrained (few/one feasible solution[s]) it would probably make more sense to try a constraint programming approach, but this particular problem has many (too many?) feasible solutions so I don't think there is any reason to believe they'd be better.
One downside to MIP is the need to model the logical constraints as linear equations, which is perhaps less expressive than the way you can often express constraints in constraint programming languages.