gvwilson / sql-tutorial

The Querynomicon: An Introduction to SQL for Wary Data Scientists
https://gvwilson.github.io/sql-tutorial/
Other
419 stars 35 forks source link

Show ibis-framework example #33

Closed cpcloud closed 5 months ago

cpcloud commented 5 months ago

There are some nice examples of other Python libraries interacting with SQL here.

Would it be acceptable to have an example using Ibis?

If so, happy to submit a PR.

gvwilson commented 5 months ago

Thank you for the suggestion - there are a lot of Python libraries, and people have also suggested examples in R and other languages; if we want to keep things at 100 queries (which I'm already fudging) we're not going to be able to cover them all.

Separately, I'm disappointed in how the creators of Ibis have interacted with the community. There was already a Python package called ibis on PyPI under active development before the Ibis Framework was launched. The authors of the latter were aware of this (which is why they chose the longer name ibis-framework for their work) but decided to use the name ibis for their module anyway, which means that it can't be installed in the same environment as the original without a lot of extra faffing about.

I discovered this when I started using Ark as a static site generator for my books: it relies on the original ibis, but because of the decision by the authors of the Ibis Framework to trample on the name, I can't (easily) use both. It's the first time in 20 years that I've seen someone in the Python community do something like this; I reached out to the authors of the Ibis Framework, but their response boiled down to, "We're larger so shrug." I think it's a shame—the Ibis Framework has a lot of useful features—but on balance I decided I didn't want to support or popularize the work of people who behave this way.

cpcloud commented 5 months ago

Thanks for clarifying! Appreciate the response.

I am one of the developers of the not-original Ibis 😅

Separately, I'm disappointed in how the creators of Ibis have interacted with the community. There was already a Python package called ibis on PyPI under active development before the Ibis Framework was launched.

I hear you. I wish we could rename the package without disruption. We decided that the benefits of renaming did not outweigh the downsides.

I think the framing here is a bit off. It suggests an intent to steamroll another project that I don't think anyone currently working on the project including myself is qualified to ascribe, nor do I think that was ever the intent.

I personally do not know exactly how the decision was made to name the project ibis.

I reached out to the authors of the Ibis Framework, but their response boiled down to, "We're larger so shrug."

I think this misrepresents our attitude in the issue where this was discussed (https://github.com/ibis-project/ibis/issues/3716).

The decision boils down to "we have a lot of users whose code would break if we did this, and it doesn't seem worth the effort".

We're not shrugging it off, we're saying that given all the other things we could be working on changing the name of the project is less important than those other things.

I think it's a shame—the Ibis Framework has a lot of useful features—but on balance I decided I didn't want to support or popularize the work of people who behave this way.

That's of course your prerogative. I support your work either way, I think you're doing great things.

I do wish that we could avoid missing out on a fruitful collaboration over this issue.

Is there a resolution here that doesn't involve renaming either project?

gvwilson commented 5 months ago

@cpcloud thanks for your quick response - in future, it would help people like me if you identified yourself as one of the authors or sponsors of X when suggesting that X be added to something else (in the same way that authors of research papers are asked to identify potential conflicts of interest). Short of rewriting Python's module loader, I don't know of a way to resolve this without renaming one or the other package, but I think that discussion belongs in some other repo.