News for hackers. Stuff that matters.
Re:MLJ.jl: A Julia package for composable machine learning by teruakohatu on Sunday April 11, 2021 @08:32PM (#26774938)
Model composability is one of Julia's and MLJ's highlights. Library designers tend to take this into account throughout the ecosystem. It helps that Julia does not need to dropdown into a C or FORTRAN wrapper like Numpy.

That being said, MLJ tends to wrap a lot of models from scikit-learn with a composable wrapper, meaning you end up having to manage Python dependencies and you lose Julia features such as multi-threading (Edit: when using Python models, multi-threading is supported when using Julia models).

Long term I am sure MLJ will slowly replace scikit models but right now it can be little painful to use if the model you want is not implemented in Julia.

Re:MLJ.jl: A Julia package for composable machine learning by snicker7 on Sunday April 11, 2021 @09:07PM (#26775161)
This is exacerbated by the fact that Julia's Pkg.jl does not yet support conditional/optional dependencies [0]. A lot of these meta packages tend to pull everything but the kitchen sink.

[0]: https://github.com/JuliaLang/Pkg.jl/issues/1285

Re:MLJ.jl: A Julia package for composable machine learning by beforeolives on Monday April 12, 2021 @02:44AM (#26776611)
So instead of dropping down into C, it has Python as a depedency and wraps sklearn? Way to solve the two-language problem.
Re:MLJ.jl: A Julia package for composable machine learning by ponow on Monday April 12, 2021 @09:46AM (#26779356)
Absa-bloody-lutely it's a way of solving the two language problem, because it provides a pathway from the current two-language setup (Python with C for the computationally intense portions) to a single language (Julia everywhere, because it can reach C speeds). In the short term, library writers can provide Julia wrappers around legacy code from other languages, but that needn't affect the library users.

I think you can only make the snarky remark because you don't truly get the 2-language problem. The problem has zero to do with the complexity of dealing with dependencies, as if the hard problem of scientific computation languages is like a Linux distribution with too much bloat. No, no, no. It's the cognitive load to solve scientific problems, when at the end of the day performance really matters. We need a language that is as terse as mathematics where we can customize all the way down to a single array entry, without performance loss. Python itself will never have the necessary performance. To do truly new numerical stuff you cannot avoid the computational kernel details (e.g., PDEs or image processing). So you're forced, as a researcher, to become good enough to be effective at two languages, and you often have a complex data exchange interface between the two, and it sits right near the critical conceptual problems that you're trying to solve.

Re:MLJ.jl: A Julia package for composable machine learning by newswasboring on Monday April 12, 2021 @05:00AM (#26777279)
That's a genuinely mean comment towards a new library which is using existing code to bootstrap itself. Julia does solve the two language issue, but not in all situations. Like I'll never write a driver in julia. But this mean spiritedness towards anything that's not perfect is disheartening.
Re:MLJ.jl: A Julia package for composable machine learning by kescobo on Monday April 12, 2021 @11:07AM (#26780210)
>Julia does solve the two language issue, but not in all situations

And not instantaneously. Developer time being finite, using what works from existing libraries while waiting for a pure-julia implementation seems like an excellent solution.

Re:MLJ.jl: A Julia package for composable machine learning by Certhas on Monday April 12, 2021 @04:04AM (#26776994)
Julia has always had the ability to call Python code. For example you can use PyPlot/matplotlib as a plotting backend for Julia.

There is no way to bootstrap a scientific language without leveraging existing ecosystems. But this is a starting point. Whenever someone find a sklearn model to slow, or misses the automatic parallelism that Julia brings, they can just implement the model in Julia, and bit by bit the non-Julia bits get swapped out where it brings a real benefit.

Re:MLJ.jl: A Julia package for composable machine learning by dklend122 on Monday April 12, 2021 @08:54AM (#26778836)
You hardly need python for models at this point. There are native julia implementations of linear regression, naive bayes, gradient boosting, random forest, PCA, T-SNE and more.

The python interop is just a stopgap

Re:MLJ.jl: A Julia package for composable machine learning by oscardssmith on Monday April 12, 2021 @02:51AM (#26776638)
The ability to call other languages is a strength. The need to do so is a weakness.
Re:MLJ.jl: A Julia package for composable machine learning by Jouvence on Monday April 12, 2021 @02:57AM (#26776673)
I disagree; consistency is the most important part of this. With Python, you know where you stand - performance comes from elsewhere. With Julia it might be internal, a C/Fortran library, or apparently other things now too.
Re:MLJ.jl: A Julia package for composable machine learning by DNF2 on Monday April 12, 2021 @03:39AM (#26776865)
I beg your pardon? Knowing that Python is slow is a strength of Python? Then, if Python suddenly became fast, it would be a negative?

Did I misunderstand something?

Presumably, all fast languages are at a disadvantage, then.

Re:MLJ.jl: A Julia package for composable machine learning by Jouvence on Monday April 12, 2021 @04:33AM (#26777129)
I never called it a strength; I simply don't care how fast Python is because I don't need to. Reasoning about what is going on under the hood with Python is just easier than Julia - if it needs to be fast, it's a fast external library being used.

This is really a minor issue stemming from the relative maturity of the languages - if Julia becomes more established I would hope usage of external libraries which don't offer a performance advantage (ie everything besides C and Fortran) eventually gets replaced with native packages to preserve the sanity of the users.

Re:MLJ.jl: A Julia package for composable machine learning by adgjlsfhk1 on Monday April 12, 2021 @10:06AM (#26779596)
One problem relying on fast libraries causes is it makes doing compiler tricks like automatic differentiation (AD) basically impossible. Also, it restricts the types of APIs that make sense. A simple example of this is to compare Scikit learn to Julia. In Scikit learn, most clustering methods don't allow the user to specify a distance function because doing so would require running python inside a tight C loop, tanking performance. In MLJ, on the other hand, basically anything that requires a distance function will allow you to pass one in rather than assuming euclidean distance. This is possible, because a distance function written in Julia can still be fast, so it can be used without slowing down the whole program for people who only want euclidean distances.
Re:MLJ.jl: A Julia package for composable machine learning by DNF2 on Monday April 12, 2021 @05:34AM (#26777498)
So then that 'weakness' in python is not an issue to you personally, because you fluently drop down to a fast language anytime you need to, with no particular loss in productivity?

Keep in mind though, that this could be a hurdle to those who are less multilingual. So even though it's not a weakness to everyone, it is to many.

Re:MLJ.jl: A Julia package for composable machine learning by notagoodidea on Monday April 12, 2021 @02:58AM (#26776680)
On the other side, we observe more and more inter-languages's ecosystem crossing from/to Python to leverage its gigantic set of libraries. Julia interface with a lot of other languages but it is a big trend for the last years.

I think the two-language problem begins to be as we move forward a network of multi-languages calling each other instead of either having to rewrite everything from scratch either relying on a C/C++/Fortran/Rust lib and the C ABI to patch them. We may finish with a set of "meta"-langurust in C code nameages permitting the interaction of a large number of libraries and programming languages outside of their silo.

Moreover Julia coupled with Pycall could "corrode" à la Rust for a more smooth migration to pure Julia.

Re:MLJ.jl: A Julia package for composable machine learning by anothathrow975 on Monday April 12, 2021 @12:35PM (#26781489)
Maybe this comment was too sarcastic but the core point stands. Julia’s main advantages for most ML and Data Science users are still theoretical. The package ecosystem is still way to immature. It’s not just MLJ. I was excited about Julia and made a good faith effort to port a work project to Flux and Zygkte and it was a disaster. There’s nothing wrong with passionate open source tinkerers working to improve the ecosystem, but don’t advertise it as ready for production when it’s not.
Re:MLJ.jl: A Julia package for composable machine learning by amkkma on Monday April 12, 2021 @03:07PM (#26783701)
When was this and what were the issues?
Re:MLJ.jl: A Julia package for composable machine learning by DNF2 on Monday April 12, 2021 @03:40PM (#26784144)
The two-language problem is not concerned with calling out to or wrapping pre-existing libraries in a second language. It means having to write parts of your code in a second language, due to, for example, performance reasons.
Re:MLJ.jl: A Julia package for composable machine learning by systems on Monday April 12, 2021 @08:38AM (#26778675)
I dont like Python, but the language have dominant libraries in many domains

Julia hides Python, Julia good

I understand that using Python feels wrong, because Python is not know for its performance, but still it seems like a Practical decision, rebuilding everything from scratch will be too much effort