REDMOND, Wash. – Consistent with the theme that dynamic languages can be used for general-purpose applications, Resolver Systems is introducing a spreadsheet written in Python.
At the Lang.NET conference on the Microsoft campus here Jan. 29, Giles Thomas, chief technology officer at London-based Resolver Systems, demonstrated Resolver One, a spreadsheet written in Python.
Thomas said Resolver One not only is a simple spreadsheet, but a spreadsheet developed as an IronPython program. IronPython is Microsoft’s implementation of the Python dynamic language implemented to run on .Net.
The goal of Resolver was also to put a simple yet powerful programming tool into the hands of end users, he said.
“We wanted to raise the bar for what was possible with end user-generated programs,” he said.
Because a Resolver document is both a spreadsheet and a computer program, “the numerical data remains separate from the logic which operates on it,” said a description of the technology on Resolver Systems’ Web site. “Resolver spreadsheets make it possible for business users to develop a spreadsheet as usual, and for IT to instantly extract their algorithms and use them in more complex systems.”
Thomas said the company released version 1.0 of Resolver One Jan. 16.
“We wanted to fill the gap between a spreadsheet and a full-fledged programming tool,” he said.
Thomas said Resolver Systems practices Extreme Programming and does test-first development. “Dynamic languages are perfect for test-first programming,” he said.
Meanwhile, Thomas said his team decided to build Resolver One in IronPython because of its “dynamic features and the readability of Python.” The company initially started out with a plan to build a .Net program embedding some dynamic language functionality using extreme programming, he said.
“Originally we thought we’d do it in C#, but we saw IronPython and it looked good,” Thomas said. “We realized that extreme programming made static typing less important, so we decided to see how far we could get before switching to C#.”