You know how to write the code. But for a quick estimate, a conversion or a back-of-the-envelope model, a script brings ceremony: a file, a run, print statements — and whoever you send it to has to get it running before they see a single number. draftply is the notepad in between — and it takes numbers more seriously than most languages do.
For people who code
Decimals are stored as exact fractions, not binary approximations. Cents don't drift, == means equal, and a 20-digit integer stays a 20-digit integer. Only the display rounds — to the decimal places you choose.
0.1 + 0.2 → 0.30000000000000004the default in nearly every languageA quantity carries its unit through every step: watts times hours is kilowatt-hours, square metres over square metres is a plain number. Add a length to an area and that line says so, with the reason — while every line that doesn't depend on it keeps calculating.
area_m2 = length_m * width_mthe unit lives in the name — nothing checks itThe sheet is evaluated top to bottom from its text, on every keystroke. Nothing ran out of order, nothing is left over from an earlier run, and every intermediate value is already on screen — no print statements to find out what happened. Change the 85, and everything below follows.
edit → save → run → scrolland once more from the top, to be sureFree, on every platform
.dply file is text with a small header. Diff it, version it, read it in any editor.3 + 4i), hex, binary and octal, bit operations, dB and E-series — no import.now - 8:12 is a duration, today + 30 days a date — and live sheets tick along by the minute.Pro
Indented blocks, functions with default parameters, classes with methods, and loops whose every pass can be traced in the result column. Symbolic solve, factor, diff and integrate. A function named like a built-in wins across the document, so a later version of draftply can't change your results. Exact numbers, units and everything under “Also built in” are free; forms and this section are Pro.
Where a script wins
.dplylib files — functions and units, not a package ecosystem.Once a draft has proven itself and needs to run unattended, rebuild it as a program. The sheet makes a readable spec for that.
Script it later. Draft it now.