the more I get into the datascience world, the mor...
# datascience
e
the more I get into the datascience world, the more I have the feeling people working with python will greatly benefit from some building tool like gradle which makes the code easier to maintain, manage dependencies, make it reproducible, use DSL with a statistically typed language (Kotlin), etc etc. It's not uncommon to me to find python projects often broken or very hard to setup for people outside the collaborators.. Looking in this sense, I found PyGradle, which unfortunately isn't maintained anymore. For something maintained, I found this other plugin instead. Also, it looks like the state-of-the-art tool is Poetry What do you think? What's your experience/mileage?
a
I was pretty excited about PyGradle when it appeared, but as you mentioned, it died. The reason is that Python ecosystem is valued because its very low entry level. If you add the build logic to it, it won't be that simple anymore and will loose most of its benefits.
👍 1
Also you need to remember that there is actually no modularization in python. Like C++ it uses textual inclusion of files. This means that any attempt of doing proper module encapsulation will probably fail (or at least will be very hard to do).
e
can you elaborate?
like is this relevant?
a
No, I am talking about module and dependency encapsulation, not about the design. Consider this situation: two different python import functions with the same signature from different places. You do not have any instruments to limit the visibility of one API to the module that uses it. The only way right now is to manually tweak local python environment. Because basically, you have a directory with sources, nothing else. C++ introduces modules in C++20 to solve this problem. They introduce imports and exports in modules to allow building proper dependency trees.
In any case, all attempts to bring proper builds to the Python ecosystem failed so far. And this is one of the reasons Kotlin could shine there. Kotlin notebooks are already much more reliable and easy to use then python.
👍 1