Why write a DB program in Python? Wouldn't it be slow?
Why write a DB program in Python? Wouldn't it be slow?
Here is mine:
https://github.com/adsharma/raft
Waiting for a python correctness prover and a transpiler.
It's not meant to be used in production that has scaled up. This project was mostly for fun.
It was very slow, but interesting.
There are a ton of uses where performance doesn't matter, and some where data is even ephemeral or non-critical. These sorts of simple tools are also really nice for test cases, development environments, and a ton of other uses.
I'm developing a tool designed for large-scale data processing, and I have a dummy back-end very similar to this which I use for development.
My computer has close to 4GHz and multiple cores. Essentially anything which ran on an 80486 back in the day will be fast enough in interpreted Python. That's actually a lot of stuff.
And yes, I'm not disagreeing, but agreeing and expanding on your easily-missed disclaimer ("production *that has scaled up*").
This is the same as the problem with electron. People that only know javascript might think it is great to embed a full web browser, but it is selfish to users to push something that they think will run at a normal speed only to have it use 100x the memory and lag during simple operations.
https://news.ycombinator.com/item?id=27032399
Please file bugs/issues if something isn't working.
(Edit: to be clear, I'm agreeing with you)
Long term, complicated, high performance projects worked on by many developers is the Achilles heel of Python. The lack of type safety really bites over a large code base. Also issues with automatic refactoring tools due to the very dynamic nature of Python Deployment and dependency management is also a big issue in Python. Not to mention performance and multithreading.
And God forbid someone mention the L1 cache and how "benchmarks" are completely different to the cache interactions in real-world dynamic programs.
* That it's a dynamically typed language * That it's not a serious language like C or C++, suitable for writing a 50 line throwaway script
I'd like to convince people that both statements are false. But probably best to use the github issue tracker than HN comments.