2,542 karma · joined September 28, 2009
I would say, ballpark, $100k. Email me at fijal at baroquesoftware.com
EDIT: the actual figure depends precisely on what you want, which parts of the stack have to be exactly how fast etc.
Cheers, Maciej Fijalkowski
That said, the cpython+cython solution is not going away any time soon.
Yes, absolutely. This is why it's marked as "beta", so not absolutely all the features are implemented.
I've tried optimizing sympy and it's hard - there is a chance that it uses cython (which will slow things down on pypy) but also the gains were small (up to 2x) and only noticable if you run it for a while (at least few seconds).
SymPy is a bit of an example that while python as a language is not necesarilly slow, since you can make a plan for most parts, it breeds culture of unnecessary meta-programming, tons of copies and dict lookups that makes it REALLY HARD to optimize. ORMs go in the same category
I do corporate accounting for baroque software and I can write an invoice and pushing people to pay for it is still quite a sales challenge - you need to be able to talk to high enough people and prove the value of what you're offering on top of the software you are already giving for free. It's not different to a standard issue sales exercise, except a little harder. This is not a skill that most open source project maintainers would consider themselves experts at.
Giving advice like that is very dangerous - "only if you did that, you would make money". It's not a given that it would lead to something more than couple hundred dollars.
DISCLAIMER: I'm an author of cProfile competitor, vmprof
* Pyjion says "we gonna add a JIT API to CPython" - so no touching the C API at all (or the object model)
* Pyston says "we gonna implement our own object model supporting CPython C API", but they seem to have copied large portions of CPython. This is a semi-rigid approach compared to Pyjion, because it's not runtime-swappable
* PyPy says "we gonna implement a fake layer on top of our own object model" which means that while C API is feasible (and mostly implemented), it's gonna be always a compatibility layer with slower approach, but the underlaying data types/GC can change at will
Hope that helps