with module change autorun, the ability to use your own editor, and exporting to scripts,
@marimo_io has merged data science tooling with software engineering tooling!
The feedback loop you get when using @marimo_io is insane!
I recently had the deepest feeling of being in the zone when trying to solve a data analysis problem.
Thank you @akshaykagrawal. I consider this to be a *MAJOR* development in the @PyData stack.
(@DVCorg last mjr dev)
I'm seeing a maturation of the @PyData stack.
env mgt, project mgt, notebooks, data pipelining, distributed compute, viz, dataframes, tensor computation, are the "baseline" problems that seem to be essentially solved to me.
what else is there??
best @PyData tooling progress i've seen in ~24 months,
@marimo_io , @quarto_pub , @mitsuhiko (rye), @astral_sh (ruff), @prefix_dev (pixi).
What's the difference between virtual environments and containers these days? Containers have become so thin.
An isolated file system?
Theory: scientific computing benefits more from software engineering advances than purpose-built tools.
Purpose built: #Rlang, #Fortranlang, #JuliaLang .
General but used in scientific computing: C, #pythonlang, ... And now it looks like #rustlang will take more from Julia.
i don't think Jinja (arbitrary templating) and YAML (structured data), together, in the same file, make sense.
don't use #python #objectoriented inheritance mechanisms to create a taxonomy; use it to *compose*.
why, when subclassing (general>specific...supposedly), do you have to (explicitly) write `super().method()` and trigger the general in your specific method?
i think the default should be that your general code applies.
#Python #objectoriented
solution to "a monad is a monoid in the category of endofunctors"
euclideanspace.com/maths/dis…
from dataclasses import dataclass as _
dataclass = lambda *p,**k: _(*p, frozen=True, **k)
dataobject = lambda *p,**k: _(*p, frozen=False, **k)
datastruct = attrib2val = dataobject # ?
@PyData
it looks like python metaprogramming facilities (whether built-in or hacked on) are the connection to a more formal way of programming (choose your formalism).
can't decide if having a 'tacked on' 'formal layer' is a good or bad thing. might lead to decorator overload.
@PyData
with today's adv. linters and IDEs, why wouldn't the following scenario be possible?
novice: wow python is easy!
> pylist=[i for i in range(♾)]
> nplist=np.array(pylist)
numpy: ugggh mutable, list of (untyped) objects
clippy: looks like you should just use np.range
@PyData


