March 28th, 2008, 2:31 pm
QuoteOriginally posted by: semanticumIf you are tired of Excel and its cryptic formula writing system (C2 = A1+B2) then you want to take a look at the Quantrix Modeler:QuantrixQuantrix uses the the same paradigm like Lotus Improv. This approach allows the user to write the formulas in natural language like 'Profit = Sales - Cost'. It can be compared to the Pivot Tables in Excel but is more powerful and user friendly.Excel does let you say "Sales - Cost" though it won't let you type the word "profit" before the equals, since it knows based on where you are when you type it. Admittedly, you do need to define which locations sales and cost refer to, if you're writing the formulas in a sheet as opposed to VBA.The notion of location that is inherent in Excel may seeem unnatural on paper compared to the Quantrix approach, though in practice being able to click on a cell to reference it in a formula is pretty convenient too. I don't know of any programmer's editors which allow you to click on a variable name and have it be copied into the current line being edited, without doing a manual copy and paste, and somehow returning to your original spot in the editor for the paste. I suspect this feature doesn't exist because it wouldn't be considered too useful.I think the biggest drawback of Excel formulas compared to higher level languages is the difficulty in specifying a loop of indeterminate iteration size. An example of this would be taking a weighted average of N numbers, where N is different each time the calculation is done. In the spreadsheet you'd have a range of a fixed size, with "if" statements to make sure the calculations aren't affected when not all the cells need to be used, while C, Java or VBA wold just have a loop with an upper bound that is an input to the function.This may be offset by the debugging advantage Excel provides at showing you a large data window with a small code window (including seeing all the iterations of an unrolled loop at once), as opposed to high level languages which do it the other way around. For example, in a code debugger you have to manually put a watch on each variable to see how they change as execution proceeds, and if there's a loop you have to step through it one iteration at a time to watch the variables change. This is very slow and cumbersome. In Excel (assuming you're not doing iterations with circular references), each variable has a single value, and loops are unrolled as ranges (element 1 in row i, element 2 in row i+1, etc.). So if there's a bug you look over the cell values until you find the ones that are incorrect, and look at the values that drive that formula to see if they are incorrect, and so on. It's like you have a snapshot of the entire calculation, and the bad cells often pop right out at you. We've found this to lead to much more efficient debugging. This advantage is greatest when the spreadsheet is relatively small, and makes it worthwhile to build spreadsheets from small reusable components like addins.Also, our product Calc4Web (formerly TurboExcel) can in some instances like the weighted average example allow you to easily create a loop of indeterminate iteration size in a spreadsheet, as well, mitigating some of the advantages of high level languages.