As many of you know me and Kurt attended SciPy 09. Four Cython-related events were held:
- An introductory tutorial to Cython (by me) - A talk about Cython for numerics (by me again) - A talk on Fwrap (by Kurt) - A Cython BoF You can find links to slides and videos for the three first on http://conference.scipy.org. An intensive week like that makes me reflect on what Cython is good about, lacking, etc. etc. First of all, there seems to be quite a lot of interest in Cython, many thinks it is excellent, and many thanked me personally for our efforts. One thing that's also very interesting to me personally is that there's some talk of porting parts of NumPy over to Cython for easier Python 3 support. Beyond that, I've got a nice list of topics for further improvement. For instance one thing that is very possible to fix was a real dealbreaker that some complained about, and in one case stopped somebody from recommending it to co-workers. It's always nice to get the "outside" perspective that I get when I present Cython to lots of people. BUT, I'm going to wait a little with presenting that list. It simply feels too depressing to discuss lots of new ideas etc. without dealing properly with how such ideas can ever be brought to life. In the end, what matters right now is to stabilize -unstable, get the GSoC work merged in, and get 0.12 released; which at the current pace should keep us busy for some months to come. On that note though: It seems to me that many has the impression that a) Cython is complicated technology which takes much work b) A lot of effort is put into steadily improving it BUT, I feel the reality is that a) Core developers can implement new features or fix bugs rather quickly b) Relatively little time is spent in total on Cython, compared to some other projects I don't mean to belittle the efforts Robert and Stefan and others have put into Cython; I just feel that the amount of work going on in Cython is really less than people think it is. Or put another way: Putting relatively little in can, at least at this point in Cython's development, yield high returns. Example: Profiling was a feature many at SciPy was anxious about getting and was asking about a lot. That's in trunk now, mainly because Robert had an intercontinental flight (!!). (That admittedly might say a lot more about Robert than Cython, but still.) In a year things might have changed; I think this is a perfect time to evaluate whether Cython should solicit help of some form. The best would be CS master students ready to work on Cython (perhaps they can come to Oslo for their MSc :-)). Donations towards employing one of the core devs (Robert or Stefan, if at all possible...) for one day every week could do wonders for the whole project and likely energize everyone else as well as one sees bugs fixed and releases made, but is probably not realistic? Cython can thrive without this too though! Looking at the coming half-to-three-quarter year, here's what I'm guessing will happen: - I might get the new memoryviews from summer finished and merged with trunk - Cython might run properly in Python 3 (w/ 2to3) - Get -unstable stabilized and released (significant portion) - Closures - Fwrap released - Better C++ support merged - Perhaps some pyximport improvements Not bad at all! But, there's also a long list of projects we already badly want to have done that we can't possibly reach now, IMO: - Fix the bugs, complete the test suite - Speed up compilation speed, break up compilation units/utility code - Control flow analysis! - Convenient debugging, line-by-line profiling - SIMD - Many rather low-hanging fruit CEPs which would make using Cython a nicer experience - Full Python semantics compatability for untyped code - Type inference/a better pure Python mode It is this last list I don't want to make longer just now by coming with all the ideas and input I got during SciPy 09 :-) Thoughts on the picture I'm painting? -- Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
