Slide 1

Slide 1 text

Excel the Ultimate Christophe Grand @cgrand Soft Shake 2013

Slide 2

Slide 2 text

Who am I? • Christophe Grand, @cgrand • Early Clojure adopter (5+ years) • Clojure Programming co-author • Independent dev, trainer, associated in http://lambdanext.eu/

Slide 3

Slide 3 text

Maslow’s hierarchy of PL Rub Physiologial Security Love, belonging Esteem Self-actualization

Slide 4

Slide 4 text

Maslow’s hierarchy of PL Rub ASM, C Physiologial Security Love, belonging Esteem Self-actualization

Slide 5

Slide 5 text

Maslow’s hierarchy of PL Rub ASM, C Java, C# Physiologial Security Love, belonging Esteem Self-actualization

Slide 6

Slide 6 text

Maslow’s hierarchy of PL Rub ASM, C Java, C# Ruby, Python, JS Physiologial Security Love, belonging Esteem Self-actualization

Slide 7

Slide 7 text

Maslow’s hierarchy of PL Rub ASM, C Java, C# CLJ, Haskell Ruby, Python, JS Physiologial Security Love, belonging Esteem Self-actualization

Slide 8

Slide 8 text

Maslow’s hierarchy of PL Rub ASM, C Java, C# CLJ, Haskell Excel Ruby, Python, JS Physiologial Security Love, belonging Esteem Self-actualization

Slide 9

Slide 9 text

Spreadsheets are underrated

Slide 10

Slide 10 text

Formula Language • The #1 functional language • ok maybe not that functional • but expression-based • IF is not a statement • and pure

Slide 11

Slide 11 text

Spreadsheets are cool • Reactive • Live feedback • Declarative • No one cares when/where evaluation happens • The grid is legacy though

Slide 12

Slide 12 text

Reinventing them • Ken Tilton’s Cells (Common Lisp) • clojurescript Javelin • visi-lang • SubText • ...

Slide 13

Slide 13 text

Let’s leverage what we already have!

Slide 14

Slide 14 text

I’m tired of • reverse-engineering a spreadsheet to turn in into real code • only to get a revised version next morning

Slide 15

Slide 15 text

Double inefficiency • More grunt work for devs • Business users are not free/agile anymore • Rules set in stone • Update delays

Slide 16

Slide 16 text

Business excelers • Business users able to model their stuff in a spreadsheet should be an asset not a liability for IT • More power to them! • unless you want more rogue IT

Slide 17

Slide 17 text

Upload Business Logic now! The killer button

Slide 18

Slide 18 text

Spreadmap • http://github.com/cgrand/spreadmap • Based on POI • But lightweight • Workbook as data

Slide 19

Slide 19 text

POI • Allow you to read/write/evaluate XLS • Workbooks objects • Expensive to create/clone • Memory footprint

Slide 20

Slide 20 text

ForkedEvaluator • Little hidden gem of POI • Lightweight evaluation-only workbook • Crippled impl • Taught me how to rebuild it in Clojure

Slide 21

Slide 21 text

Here we go! Demo

Slide 22

Slide 22 text

Power to the users! • Allowing key users to customize apps • Have their XLS logic tapping db, events, etc. • Always on • A super IFTTT for the enterprise

Slide 23

Slide 23 text

Risk assessment • You can efficiently test workbooks • Unit tests • Regression tests • Compare with previous version based on history

Slide 24

Slide 24 text

Parallel execution • Map/reduce your XLS • Exploring what-if scenarios • Optimization

Slide 25

Slide 25 text

Your imagination is the only limit! Thanks!