
I’ve been researching Python for potential use in data science projects. While I appreciate the Python ecosystem for data science (the sole reason I’m interested), it really increases my appreciation for Racket as a programming language!

That’s about where I am with Python vis-a-vis data science. I don’t actually like the language very much, but nothing else will let me get my job done anywhere near as efficiently.

It’s funny, people like to complain about the GIL, and I suppose the lack of multithreading sometimes annoys me, too, but it’s also the secret sauce that makes C extensions possible, and I’m pretty sure C extensions are the secret sauce that makes Python’s scientific computing ecosystem work so well.

Yes, I think extending with C/C++ is key for Python. I’m also fine with just embracing idiomatic Python for what it is vs. trying to code Racket/Scheme in Python :) Julia folks talk about solving the “two language problem”, which I think has merit, but there is also a benefit to the “two language problem” i.e. if folks are willing to create high performance libraries in another language for use in Python, that’s helpful.

I’m actually kind of glad Julia didn’t work out for me. With Python, it’s easier to just view it as a pragmatic tool for getting stuff done, with no possibility of me being distracted from Racket as my primary programming language. I suppose there wasn’t that much chance of it in Julia, but certainly more than Python.

The trick will be to identify the appropriate boundary between Racket and Python. I’m leaning toward doing more of my data acquiring/cleaning in Racket, and use Python for NumPy/SciPy/plotting.

I’m watching Julia with interest, but it’s the honest truth that none of Python’s shortcomings particularly hurt me at work. I don’t think that’s a blub situation. I’m an avid polyglot, so I think I generally know what other options have to offer.

You might be interested in hy, if you haven’t already tried it?

How I crave for FFI bindings/port of Numpy to Racket…

And Jax, so that doesn’t make it easier