5 ms·
Data analysis isn't object-oriented nor imperative. Transformations are functions on datasets, not a sequence of stateful actions. Python is an imperative, obj
by mjburgess 5y ago
Data analysis isn't object-oriented nor imperative. Transformations are functions on datasets, not a sequence of stateful actions.
Python is an imperative, object-oriented language largely concerned with side-effecting programs (web severs, os automation, etc.).
It is about as hostile as it is possible to be, from "ideas" pov, to data science.
However those ideas are just a syntax skin over something much more flexible: pointers and dictionaries (/hashmaps). These are like the "Python VM Language" on which "Data Science" sits.
Data Science libraries essentially use the "actual" semantics of python and ignore the "official" syntax, as that's the only way of providing an API that makes any sense. (Ie., isnt just reams of for-loops with 5 sequential obj.method() calls).
I don't believe there is a "non-confusing" way of ignore python's syntax, *within python*; and that's just what is required.
- lostmsu 5y agoWhat a weird notion. Why do you think building transformations is not a good use for an (optionally) imperative OOP language?
- aaron-santos 5y agoWhen working with data, I like to avoid stateful data mutations at all cost. OOP's focus is mutating state. These are at odds. The identity semantics I hold for data are not invariant under transformation.
- lostmsu 5y agoWhat does OOP have to do with mutating vs non-mutating state?
- mjburgess 5y agoobject = state object API = state change encapsulation = internal control of state change That's the point.
- lostmsu 5y agoHere's an object with over 30 members: https://docs.microsoft.com/en-us/dotnet/api/system.uri?view=net-5.0 https://docs.microsoft.com/en-us/dotnet/api/system.uri?view=... Your second and third statements are simply false.
- aaron-santos 5y agoUnderstanding the history of OOPs development, what motivated it, what problems it seeks to solve, it's guiding principles, and design semantics, are not invalidated by copy on modify Uri classes (or Strings!).
- lostmsu 5y agoNo, but it is enough to invalidate statements, that are obviously false in the light of the counterexample. Also, lacking skills in first order logic casts doubt on any kind of "understanding".
- aaron-santos 5y agoOk. What do you think the history of OOP development, it's focus, and goals with respect to mutating (or non-mutation) of state is?
- lostmsu 5y agoAs I mentioned in the comment to mjburgess, it does not matter, unless you can show it does. Fortunately, knowing the details of history is entirely optional for the ability to discuss the current state of affairs.
- aaron-santos 5y agoIt might help if you could restate what argument you think I'm making. It feels like there is a mismatch between us in that way.
- mjburgess 5y agomathematics is vectorized and declarative