News for hackers. Stuff that matters.
Re:Who needs MLflow when you have SQLite? by chaps on Wednesday November 16, 2022 @11:50AM (#33626244)
"the API makes Pandas look good"

It sparks joy in my heart whenever I see shade cast against pandas.

Re:Who needs MLflow when you have SQLite? by whatever1 on Wednesday November 16, 2022 @12:01PM (#33626450)
I have never seen a worse documented library. Initially I thought that they were lazy, now I realize that it cannot be documented because it is a total mess of a library held together with tape.

Close second is the plotly library.

Re:Who needs MLflow when you have SQLite? by bobertlo on Wednesday November 16, 2022 @01:46PM (#33628364)
I think the R docs are the intended reference material for pandas ;)
Re:Who needs MLflow when you have SQLite? by nerdponx on Wednesday November 16, 2022 @01:51PM (#33628461)
The Pandas documentation has improved quite a bit. Last I checked, the only part of the reference docs with a big gap was the description of "extension arrays" and accessors.

The user guide material absolutely needs work, and the examples in the reference docs tend to be a little contrived. But I absolutely have seen worse-documented libraries, such as Gunicorn and Pydantic.

Re:Who needs MLflow when you have SQLite? by claytonjy on Wednesday November 16, 2022 @03:28PM (#33630050)
I'm surprised to see Pydantic in here; I've used Pandas and Pydantic both quite a lot, and have found the Pydantic docs to be quite good! Also a much smaller library with a saner API, and thus easier to document well.
Re:Who needs MLflow when you have SQLite? by __mharrison__ on Wednesday November 16, 2022 @02:35PM (#33629233)
Genuinely curious what you have against the Pandas documentation. It has some of the best docstrings I've seen.

(I also wrote a Pandas book or two... So there's that)

Re:Who needs MLflow when you have SQLite? by chaps on Wednesday November 16, 2022 @05:16PM (#33631629)
Docstrings are one thing, but functionality discovery, picking up from scratch, troubleshooting, etc are... not fun, nor easy with the documentation. If you know it well already and use it a lot it's easier to forgive its documentation faults since you can waive off the problems as "that's just learning something new".

But for a lot of people who use it infrequently its documentation is a frustrating mess. Simple problems turn into significant time sinks of trying to find which page of the documentation to look at.

A lot of issues are made worse by shit-awful interop between libraries that claim to fully support dayaframes, but often fail in non-obvious ways... meaning back to the documentation mines.

I'd argue that because there's a market for a single author to write two books about it is indicative of documentation problems.

Re:Who needs MLflow when you have SQLite? by __mharrison__ on Wednesday November 16, 2022 @06:04PM (#33632241)
Fair enough. I'm highly biased and my recent book is the most popular Pandas book currently, so it is evidence that folks prefer opinionated documentation.

However, I always though the 10 minutes to Pandas page was decent for getting started. I picked up Polars recently and thought it was more difficult than Pandas because there wasn't any quick intro docs. What projects have great introductory docs for you?

Also, I am curious to learn more about the specifics of interop libraries you are referring to.

Learning a new tool is generally a challenge. I think another challenge with a lot of data tools is that non-programmers tend to be the major audience. I make my living teaching "non-programmers" how to use these tools.

That said, I always teach "go to the docstrings and stay in your environment (to not break flow) if you can." The pydata docstrings are better than most, including Python (the language).

Re:Who needs MLflow when you have SQLite? by chaps on Wednesday November 16, 2022 @07:05PM (#33632932)
Yeah, I think for your audience, pandas makes total sense! When I first started using it, it was through an ambitiously large project with tons of gaps in data, untype-able text for 1% of rows, didn't fit in memory.. etc. So my personal experience is a bit tainted by putting myself through a hell that could have solved sooner by spending more time learning instead of bashing my keyboard with a hammer.
Re:Who needs MLflow when you have SQLite? by 333luke on Wednesday November 16, 2022 @03:32PM (#33630106)
What makes the documentation so bad in your opinion? I’m not arguing but curious since I use pandas all day at my job and can’t think of any times the docs weren’t clear to me. (Plotly I have had some annoying times with!)
Re:Who needs MLflow when you have SQLite? by BeefWellington on Wednesday November 16, 2022 @11:18PM (#33634903)
I've long suspected that Pandas has taken a similar stance to e-mail scammers. Where e-mail scammers inject all kinds of broken english and bad punctuation to ensure they get their targets of choice, Pandas has broken and often inaccurate documentation in order to get only the chosen ones to work with their software.

However, maybe it makes more sense that it's just a mess that's hard to document.

Re:Who needs MLflow when you have SQLite? by __mharrison__ on Thursday November 17, 2022 @01:45AM (#33635764)
Do you have a specific example of this broken documentation?
Re:Who needs MLflow when you have SQLite? by dekhn on Wednesday November 16, 2022 @12:24PM (#33626849)
What bothers me the most is the egregious data types for any argument. If it's a string, do this. If it's a list, do that. If it's a dictionary of lists, do this other thing.

No, I want you to force me to provide my data in the right way and raise a noisy exception if I don't.

Re:Who needs MLflow when you have SQLite? by nerdponx on Wednesday November 16, 2022 @01:55PM (#33628523)
Series and DataFrame have "alternate constructors" for this purpose, and the loc/iloc accessors give you a bit more control.

I agree that the magic type auto-detection is a bit too magical and sloppy, but you have to realize that data analysts and scientists have historically been incredibly sloppy programmers who wanted as much magic as possible. It's only in recent years that researchers have begun to value some amount of discipline in their research code.

Re:Who needs MLflow when you have SQLite? by lordgroff on Wednesday November 16, 2022 @12:00PM (#33626417)
Every time I open up pandas I jealously remember the expressive beauty of R for these tasks. But because we're all "serious" of course we must use Python for production lest we not be serious.
Re:Who needs MLflow when you have SQLite? by laichzeit0 on Wednesday November 16, 2022 @12:18PM (#33626755)
To be fair, taking R to production is a goddamn nightmare.
Re:Who needs MLflow when you have SQLite? by chaxor on Wednesday November 16, 2022 @12:37PM (#33627093)
R is a trash of a language. It doesn't have any sense of coherency to it at all. They keep trying to fix the underlying problems by ducktaping paradigms on to it over and over (S3, S4, R6, etc). There's never a clear sense of the best way to do anything, but plenty of options to do a thing in a very hacky 'script-kiddy' way. Looking out at the community of different projects it becomes clear that everyone is pretty lost as to what design principles should be used for certain tasks, so every repo has its own way of doing things (I know personal style occurs in other languages, but commonalities are much less recognizable in R projects). It's tragic that such a large community uses it.
Re:Who needs MLflow when you have SQLite? by lordgroff on Wednesday November 16, 2022 @12:44PM (#33627220)
Yep, this is a mark of someone that's never used R but has heard a lot of incredibly ill informed criticism around it.

One look of dplyr code over pandas would of course disabuse anyone of the notion that R is trash and the tragedy is Python will in the current state never have anything like that. That's the advantage of the language being influenced by Lisp vs not.

Re:Who needs MLflow when you have SQLite? by tomrod on Wednesday November 16, 2022 @01:21PM (#33627927)
I've heavily used R several times.

I agree that it is a trash language and that, outside that many frontier academic ideas are available and some plotting preferences are solidly prescriptive, it should be thrown into the trash bin.

Python, Julia when it gets its druthers for TTFP, Octave, Fortran, C, and eventually Rust. These are the tools I've found in use over and over and over again across business, government, and non-profits.

Everywhere R is used by the org I have seen major gaps in capacity to deliver specifically because R doesn't scale well.

Re:Who needs MLflow when you have SQLite? by nerdponx on Wednesday November 16, 2022 @01:45PM (#33628351)
Try to separate the language from its standard library. Neither one is "trash".

I agree that the standard library is what you might call "a chaotic disorganized mess".

Re:Who needs MLflow when you have SQLite? by tomrod on Wednesday November 16, 2022 @03:34PM (#33630115)
I'm not emotionally invested in tools so am happy to identify the user experience and operational experience as "trash."

"Trash", despite its connotations of lacking value, is really just a chaotic disorganized mess of something made by artifice with dubious reclaim/reuse/recycle value. Being a subjective assessment, it is natural that one person's trash is a treasure to another.

Re:Who needs MLflow when you have SQLite? by nerdponx on Wednesday November 16, 2022 @04:15PM (#33630734)
I take issue with your implication that I'm emotionally invested in something when I shouldn't be. You are free to dislike R and not use it, but to claim that it's "trash" is to wrongly disavow its usefulness for the many people that do find it useful, and to cast aspersions on the judgement of all those people.
Re:Who needs MLflow when you have SQLite? by tomrod on Wednesday November 16, 2022 @06:27PM (#33632508)
Hey, I apologize here, my point on emotional investment was that I, personally, am not emotionally invested in it and did not mean to cast aspersions at you for your defense of the language nor at people who have preferences for it. Specifically I meant that I'm comfortable enough in my understanding of the language to classify it and it's standard library as better in the garbage bin relative to alternatives available.

It's fine that people like it. What's good about it isn't unique, and what's unique about it isn't that great. And there are certainly switching costs for some orgs to consider.

Re:Who needs MLflow when you have SQLite? by jmt_ on Wednesday November 16, 2022 @01:05PM (#33627657)
Trash language is a bit harsh. I'm not sure I would try to put an R project into production or build a huge project with it but, at the very least, R/R Studio was the best scientific calculator I've ever used. Was particularly great during college
Re:Who needs MLflow when you have SQLite? by jjgreen on Wednesday November 16, 2022 @07:07PM (#33632953)
It's not trash, it's functional, look:

    x <- 3
Re:Who needs MLflow when you have SQLite? by avaldez_ on Thursday November 17, 2022 @08:02PM (#33648388)
What's wrong with pandas? Honest question. I'm a bit new to ML. Also, what's the alternative?