Download presentation
Presentation is loading. Please wait.
Published byCaroline Singleton Modified over 9 years ago
1
Resolver One – the spreadsheet as an IronPython program Giles Thomas MD & CTO Resolver Systems Ltd
2
Resolver One Version 1.0 released on 16 January Free for non-commercial use: http://www.resolversystems.com/get-it/ http://www.resolversystems.com/get-it/ Fills the gap between spreadsheets and full computer programs “Raising the bar for end-user computing” It allows you to work with models as spreadsheets or as IronPython programs We believe the largest IronPython application so far – 30,000 lines of code, 110,000 lines of tests
3
OK… wait, what? 110,000 lines of test code?!! Extreme Programming Test-first development Doing TFD in a statically-typed language means that the compile-time checking just duplicates some of the tests If you’re writing the tests anyway, there’s no real point to the checking So why not get the ease of use of a dynamic language? Performance
4
Demo
5
Why IronPython? Started with the plan to build a.NET program embedding some dynamic language using Extreme Programming Saw IronPython, it looked good for embedding Realised that XP made static types less important Decided to see how far we got before we had to switch to C# Haven’t got there yet…
6
Why spreadsheets as.NET programs? Spreadsheets are programs anyway Hiding this is useful for small, throwaway projects But the abstraction leaks for larger apps, as complexity and longevity increases They become unmaintainable, bug-filled “Frankensheets”
7
The business-IT conversation, variant 1 “Here's a small program I need” “It'll take a day, we can knock it up easily in a spreadsheet” User builds it Or IT builds it Nice and easy Disposable
8
The business-IT conversation, variant 2 “Here's a large-scale system I need” “It'll take 6 months” IT build it in C# Under source-code control, good auditabilty “Proper programming” Long-lasting
9
The business-IT conversation, variant 3 “I need a medium-sized program, and I need it quickly” “We need to build infrastructure, it'll take 6 months” “Gah! I'll just knock something together in a spreadsheet” Enter the “Frankensheet” Unmaintainable, unauditable, almost certainly broken Falls apart after a few days Handed over to IT for rewriting anyway Everyone loses
10
How does exposing the program help? Clarifies interaction between implicit code from formulae and explicit code in macros Allows users to easily insert code into the recalc loop Works both ways – if you can put an object or a function into a variable, why can’t you put one into a cell?
11
But wait, there's more! Once you have a code representation of your complete spreadsheet, you can: Use it to back-end a website: The Resolver One Web Server Use it to back-end your other server processes Built it into your own IronPython applications
12
Demo
13
What next? CPython C extensions Regular CPython comes “with batteries included”; a huge library of extensions written in C They don’t work with IronPython (or other variants of the language) We'd probably use.NET for a new library, but it's a significant installed base 25% of our development effort is now working toward an open-source solution – helping us and helping all IP users Recalculation of changed cells only? Exposing a Python console Moving toward a Python/.NET development environment, or a new kind of spreadsheet?
14
Any questions? Giles Thomas giles.thomas@resolversystems.com Download the non-commercial version for free at http://www.resolversystems.com/get-it/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.