CTRM Center for CTRM Software and ETRM Software
Blog News Events Publications Directory Community Media ETTCenter

I Keep Hearing About Python but what is it?

In recent months and years, I have heard a lot about Python as a programming language in and around commodity trading and risk management. Not being much of a programmer myself, I first consulted Wikipedia to learn that Python is an interpreted, high-level general-purpose programming language first released in 1991.  “Python’s design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects,” it says.

According to Bobby Morris and Mark Ayzenberg of Beacon Platform, a company who use Python extensively, one of the advantages of Python is that it makes things much easier than say C++. “For things like connecting to various data sources like time series and matrices, there are functions out of the box, connection to other systems is also easier and it keeps track of everything that you do,” they told me. Beacon Platform has built Python objects to represent structures like market conditions and market states without the need for “loads of code,” and therein seems to be one of the languages key attributes – brevity.

Python makes things more manageable and, for example, if you built something in an older programming language, it would take much longer and be much more complex,” Bobby explained to me. So essentially, Python helps coders be more efficient and it is also much easier to maintain. “It reduces lines of code from 1000’s to the 100’s,” he said. “Clients with older but usable quantitative code can wrap C++ or C#, for example, inside Python and thus keep the value from those objects and they can do this quickly and easily.”

AdvertisingQUOR
AdvertisingION Commodities

In fact, Beacon Platform waxed lyrical about Python and the Beacon Platform Framework, which allows them to work faster and more efficiently. The Beacon Platform UI is also done in Python and that allows programmers to launch the UI and see it without having to wait ages for the code to compile and so on. “It is very easy to build things with Python,” Bobby told me. Python is also now a more common skillset among developers and “our client base in power and oil & gas has significant Python developers on staff,” Mark said.

So from Beacon Platform, I learned that Python is efficient and brings many benefits in terms of being able to access data, objects and create UI’s quickly and efficiently. Beacon Platform’s own Framework allows even more advantages. Where I had heard of it being used was in accessing data ‘locked away’ in older CTRM solutions for further analysis and having talked with Beacon Platform, I could now see why.

Enuit’s David Meyers

Enuit has also seen the benefits of using Python and according to David Meyers, President of Enuit, they initially decided on Python for its pricing engine. They had noted that certain complex pricing scenarios required a more procedural approach to solving. To resolve this, they adopted Python as it is “a very simple language and its syntax is easy to learn. It has a big following as well, meaning skills are readily available. In some cases, a Python set of code can be referenced and the exact results passed back to the calling process,” he said.  As a result of that success, Enuit saw the potential benefits of using Python more widely and are now looking at where else it can be utilized as a procedural language that adds “real flexibility for certain needs.” He said. “An area where Enuit may use it, for example, is in reporting.”

Not being a techie at all, what I learned talking to Beacon Platform and Enuit about Python was again that this is a powerful and relatively easy to use programming language. In using Python, it seems that it brings increased efficiency, easier testing and maintenance and more accuracy when needed. It also seems to be the ideal tool to quickly extract data often somewhat trapped deep inside more monolithic systems to use in data analysis.