Sponsored Link •
Visiting the ALBA Synchrotron in Barcelona and speaking at the ICALEPCS conference of people who program machines like this, I was struck by how much Python is used to run these systems.
From my unscientific survey of skimming through all the posters in the poster sessions (over a hundred, I think, which made my brain hurt; it seemed to be a lot more physics than programming), it seems like over half the machines in Europe use Python as their main programming language, using Python's numerous foreign-function-call interfacing techniques to tie together things witten in other languages.
It's a testament to how far Python has come that it is being used for such large and complex machines. The computers consist of banks and banks of high-speed boards, all hooked together with fiber optics. If there was any time that someone would invoke the "Python is interpreted and therefore too slow" argument, it would be here. But it seems to work great; indeed, the productivity benefits seem to keep the software development process on time and within budget (this latter is hearsay but I'd like to know more about the time/budget issues using Python on larger projects).
For hardware control, the predominant system (again, in Europe; the US seems to use other technology) is the C++ CORBA-based open-source TANGO, which is controlled from Python via PyTango. At the conference, the TANGO team received a special award of appreciation for their work.
The user interfaces at the ALBA Synchrotron, and in a fair number of other installations but I didn't get a sense of how dominant it was, was Qt, via PyQt. I last looked at Qt a number of years ago, and at that time it seemed to be going through paroxysms of licensing issues, and trying to decide whether it was going to be a commercial product or open source. It was not only confusing but, while commercial products definitely have their place, I've been burned too many times investing time and effort in a commercial product that gets orphaned. With open source, if a project loses its momentum the people who have invested in it don't get cut off. So at the time, Qt sounded good but possibly too encumbered ... and problems like that are not unknown to be the beginning of an implosion.
Since then Qt seems to have evolved nicely and apparently cleared up a lot of its usage issues. It even apparently has UI support for at least some handheld devices, although very specific OSes like Symbian and Meego which now seem to have an uncertain future. So my inclination is to continue to focus on HTML5 technologies for UI, but it sounds like it's worth keeping an open mind about Qt.
Have an opinion? Be the first to post a comment about this weblog entry.
|Bruce Eckel (www.BruceEckel.com) provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.|