Slashdot Mirror


Ask Slashdot: Spreadsheet With Decent Programming Language?

First time accepted submitter slartibartfastatp writes "Spreadsheets are very flexible tools for data analysis and transformations, the obvious options being MS Excel and LibreOffice. However, I found increasingly infuriating to deal with the VBA--dialect functions or (even worse) its translated versions. Is there any spreadsheet that allows usage of a decent programming language in its formulae? I found PySpread intriguing, but still very beta (judging from its latest release version 0.2.3). Perl or even javascript would be better options than =AVERAGE(). Do you know any viable alternatives?"

67 of 332 comments (clear)

  1. SIAG by lisaparratt · · Score: 5, Informative

    As old as the hills: http://siag.nu/siag/

  2. MATLAB? by Anonymous Coward · · Score: 5, Informative

    Not a very elegant language, but way better than any spreadsheet that I know of.

    1. Re:MATLAB? by Idbar · · Score: 3, Insightful

      Looks like I lost my mod points, but trying to make mathematical calculations and operations with a spreadsheet instead of a matrix oriented language seems like the failure on part of the submitter. Matlab is (and I assume the free Octave must be) great for data analysis and even plotting is a breeze.

    2. Re:MATLAB? by Anonymous Coward · · Score: 2, Informative

      I agree the submitter is asking the wrong question, and really wants something like matlab instead.

      > (and I assume the free Octave must be)

      it is. you don't get all the fancy handle graphics ui stuff, but that's no problem and regular plotting works fine. there's ipython notepad + matplotlib for that sort of thing anyway.

      see also scilab.

    3. Re:MATLAB? by Anonymous Coward · · Score: 2, Interesting

      You can also connect R to Excel. That way you get Excel layouts and those tools, but can utilize R for the calculations and advanced features.

  3. with R, you don't need spreadsheets by Anonymous Coward · · Score: 4, Informative

    www.r-project.org/

    1. Re:with R, you don't need spreadsheets by multimediavt · · Score: 2

      www.r-project.org/

      With [insert programming language of your choice here] you don't need spread sheets! What kind of programmer worth a thimble full of goat piss uses Excel to do much of anything important anyway?!?! I'm not a programmer and would use Perl, Python or [gasp] PHP to do anything I want with tabular, comma separated values. It just isn't that hard. Excel was made for people who can't program. If you can write code you don't NEED Excel. [shakes head in disgust]

  4. Pandas + IPython Notebook by n1ywb · · Score: 5, Informative

    It's not exactly a spreadsheet, but Pandas is totally awesome and is useful for many tasks for which you might think of using a spreadsheet.

    pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language. It is already well on its way toward this goal.

    http://pandas.pydata.org/index.html

    IPython Notebook is sort of like a combination of the normal ipython shell and an IDE. You interact via your browser but it connects to a normal python process on your local (or remote?) system.

    http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html

    I've used these tools together for many tasks for which I might otherwise have used a spreadsheet, particularly for "pivot tables" and time series analysis. Again, even combined they do not a spreadsheet make, but they are in many ways superior. They can handle very large data sets, and best of all you are doing it all in Python.

    --
    -73, de n1ywb
    www.n1ywb.com
  5. Just do it the other way around by h4rr4r · · Score: 5, Insightful

    Instead of a spreadsheet with good programming just program and output a spreadsheet. CPAN has plenty of packages for this.

    1. Re:Just do it the other way around by CastrTroy · · Score: 3, Interesting

      This. Pick any programming language you want, store the data in a real database, and write some code to output the results to CSV so it can be imported into Excel or any other spreadsheet.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Just do it the other way around by h4rr4r · · Score: 2

      You can even output to XLSX so that you can do multiple tabs and such.

      Still using a normal language and a real DB is much better.

    3. Re:Just do it the other way around by alexander_686 · · Score: 3, Informative

      I would temper that enthusiasm. I work with accountants, Excel, and VBA.

      Spreadsheets offer a familiar and flexible front end for non-tech users. We have spreadsheets where sections are ridge to handle the VBA but exposes data to the end user. It is easy to enter paramaters and see the updates quickily - much harder to do when you have to import a new CSV each time. The accountants then can easily customize the data for their needs – and it still prints out nicely on the printer.

      So, while I have issues with Excel / VBA / Spreadsheets in general – sometimes it is the best option.

    4. Re:Just do it the other way around by h4rr4r · · Score: 2

      No, they are not the best option. It might seem like it now, but I have been down the road, soon there will be much pain.

      At the very least get them using a real DB and not VBA. Trust me you will be far better served in the long run.

    5. Re:Just do it the other way around by slartibartfastatp · · Score: 3, Interesting

      (submitter here)

      Yes, I end up doing this once in a while. I also use R, Perl, PHP, or even bash to process some data. However, in some cases it is handy to have a view of the data while you're processing it.

      For instance, suppose you need to run a regexp function over the 12nd column of a matrix; usually I save data as a CSV, cat file.csv | perl -ne '@a=split/,/; $tmp = $a[11]; .... ' > new_file.csv, load the new CSV, check for errors, debug, repeat... sometimes is just a one-time task I need to do.

      --
      -- --
    6. Re:Just do it the other way around by hazem · · Score: 5, Insightful

      At the very least get them using a real DB and not VBA. Trust me you will be far better served in the long run.

      The problem is in most organizations, IT is not responsive to requests to set up these kinds of databases. They especially don't deal with requests that are not precise and require a fast turn-around. Thus you end up with analysts and accountants using Excel and sometimes VBA because they can get the job done quickly and effectively.

      And frankly, I don't want my accountants and analysts wasting their time creating databases and learning to write database applications. Their job is to be very good at accounting and analysis, not administering databases.

    7. Re:Just do it the other way around by DragonWriter · · Score: 2, Insightful

      The problem is in most organizations, IT is not responsive to requests to set up these kinds of databases.

      Using Excel for tasks to which databases are better suited because you have an unresponsive IT organization results in an additional problem on top of the one you started with, rather than dealing with the original problem.

      They especially don't deal with requests that are not precise and require a fast turn-around.

      What you probably need in that case is a small number of technical staff "embedded" with the regular business units to handle analysis to make imprecise requests precise when support from the regular IT organization is needed, and to deal with simple rapid-turnaround requests independently. What you don't need need is people turning to Excel because its the only thing that they have access to because IT is unresponsive, building initially simple things that grow organically to become cumbersome, and then require more IT effort to move into a proper platform then if IT had been involved and appropriately responsive from day one.

    8. Re:Just do it the other way around by RocketRabbit · · Score: 2

      Hey submitter. I looked at the Python spreadsheet and it's feature complete. I'm sure you know now that you can't tell how far along free software is by the version number...

    9. Re:Just do it the other way around by donatzsky · · Score: 2

      For instance, suppose you need to run a regexp function over the 12nd column of a matrix; usually I save data as a CSV, cat file.csv | perl -ne '@a=split/,/; $tmp = $a[11]; .... ' > new_file.csv, load the new CSV, check for errors, debug, repeat... sometimes is just a one-time task I need to do.

      You should have a look at awk, it's exactly the kind of job it was made for.

    10. Re:Just do it the other way around by hazem · · Score: 2

      I agree with you completely. And if I had control or even influence to get that kind of headcount, I think it would be a fantastic "force-multiplier" in our organization. I dream of the idea of very small teams of IT implementers that could spend a little time with various departments and help streamline their data collection and reporting using standardized tools.

      Sadly, in my large company, our IT organization just isn't willing to "invest in throw-away" tools. They only want to do huge capital projects that can be billed against the business in the millions of dollars. The idea of an 8-hour bit of work with some macros or a small database is just not something they're willing to consider. In fact, a friend of mine tried to push this and was quietly told to stop because he was running the risk of pissing off people who could harm his career. (Generally, this is a good place to work, but you apparently don't want to piss off the IT gods).

      Anyway, you're singing my song. In my own job, I've morphed from a business analyst into a "stealth" database developer just so that I can properly support our data collection and reporting needs. It's great for our department doing amazing things, but it's hard on my career because I'm not growing as an analyst, which is what I want to. Instead I'm growing into a database developer, which is what I don't want to be. But... we either do it by hand in excel with no automation and control, or I write a quick little database application. I hate doing things by hand.

  6. Re:COM Automation by ByOhTek · · Score: 3, Informative

    To my knowledge, C# can be used to write plugins for Excel, which should be able to handle the more complex macros.

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
  7. python embedded in excel by Anonymous Coward · · Score: 5, Informative

    https://datanitro.com/index.html

    I've used it a bit and it's pretty fantastic

  8. Version numbers... by unts · · Score: 2

    Don't assume that a "low" version number means it's unusable. The project has commits going back to at least December 2009. Not all software is versioned with the assumption that 1.0 = finished.

    1. Re:Version numbers... by Myopic · · Score: 5, Interesting

      "Not all software is versioned with the assumption that 1.0 = finished."

      This is the problem. This should be true: version 1.0 should be a statement by the author that the software has reached maturity for its initial, core feature set. Users should be able to rely on this. Version 0 should be when you write your first line of code; less than 1.0 should be initial implementation effort; 1.0 should mean first stable, complete public release; and full-number versions thereafter should indicate compatibility shifts or otherwise large functional jumps.

      Let's get together on this, open source nerds. Give up on the fetish for teensy weensy version numbers. I know you think it's cool, but it's not, it makes obvious that you have no regard for the meaning of version numbers. (On the flip side, software like Chrome should stop using full-number increments for every single release. That also razes the meaning of version numbers.)

    2. Re:Version numbers... by Jane+Q.+Public · · Score: 3, Informative

      "Let's get together on this, open source nerds."

      There is already something of an industry-wide standard for version numbers, and it fits with your definition pretty closely. It's just that many don't follow it. Including outfits like Mozilla, in recent years.

      The standard calls for major and minor version numbers, followed (optionally) by a build or release number. E.g., 2.3.456.

      Version 1.0 is supposed to be the initial, stable, core release, just as you say. But some groups (like Mozilla) insist on jumping the major version for relatively minor reasons, and others seem to get stuck at version 0.5 forever. But that's not because they can't agree on a standard. It's because they just don't follow it.

    3. Re:Version numbers... by Myopic · · Score: 5, Insightful

      Yes. I am advocating that version numbers should carry broadly-recognizable meaning. I accept your different opinion but I disagree with it.

      In fact I think it would be silly for you to try to defend the suggestion that "version numbers should have no inherent meaning". None? Would you advocate that version numbers be non-sequential? After all, Mac OS 10.6 came after Mac OS 10.5, but maybe next they could release Mac OS 3.6, and then Mac OS 31.5, and then Mac OS -2, and then Mac OS Pi.

      Of course version numbers carry meaning. They can't carry lots and lots of meaning, but they can carry a little bit. Why even bother with dotted-decimal version numbers if the dots and decimals mean nothing? Just use integers, but even monotonically increasing integers have "meaning" in that they convey directional advancement of the software. Likewise, if you use dates, dates carry meaning. Other than random numbers, it's difficult to imagine a version numbering scheme that has "no inherent meaning".

  9. Depends by jbolden · · Score: 4, Informative

    If you want a great spreadsheet: http://www.quantrix.com/
    If you want to beef up the programming language but are fine with Excel: http://www.wolfram.com/products/applications/excel_link/

    If you are talking non commercial: Siag (suggested above) is cool: http://siag.nu/index.shtml
    This hasn't seen much activity in a decade but Haxcel: http://www.johanmalmstrom.se/haxcel/ is Haskell in a spreadsheet.

  10. http://www.omegahat.org/RGnumeric/ by NoPhD · · Score: 2

    R is very powerful try this" http://www.omegahat.org/RGnumeric/

  11. Re:COM Automation by Anonymous Coward · · Score: 3, Informative

    Yes, both outside COM automation and vSTO plugins that run in Excel http://msdn.microsoft.com/en-us/office/hh128771.aspx

  12. Definition by wideBlueSkies · · Score: 5, Insightful

    What is the definition of a decent programming language?

    It's a pretty ambiguous requirement.

    C? Java? Python? Perl? Javascript?

    Each is 'decent' in it's own way.

    Another way to ask is this: What do you feel the shortcomings of the Excel VB language variant are?

    --
    Huh?
    1. Re:Definition by Anonymous Coward · · Score: 2, Interesting

      A "decent" language is one which does not use any of the following keywords:

      Then
      Dim
      Sub
      End

    2. Re:Definition by Nutria · · Score: 3, Funny

      bash uses "then" and it's a great language.

      --
      "I don't know, therefore Aliens" Wafflebox1
    3. Re:Definition by cbhacking · · Score: 2

      If you're going to complain about a programming language on the basis of its 3-4 letter syntactic sugar, you can go right ahead, but don't expect to be taken seriously. Yeah, it's a BASIC dialect, so fucking what? Yes, I know the Djikstra quote; it's quite demonstrably wrong and, frankly, stupid. A lot of excellent programmers today and in the past learned on BASIC. Let's see...

      Then / End: semantically identical to { }, but a bit less overloaded than those characters are *and* easier to understand when learning the language. Oh, but they require an extra 5 characters of typing when writing a loop! KILL IT WITH FIRE! Seriously, that's a dumb complaint. The typical Java program could probably shorten each class/interface name it uses by 5% rounded down (meaning no affect on anything less than 20 characters long) and save more.

      Dim: The type-specifying version (Dim x as Int) is inelegant compared to the way C-style language do variable declaration, but aside from the somewhat archaic choice of keyword, it's clear and explicit. The VBS form (Dim x) is very straightforward, and (again, aside from the actual keyword choice) actually a hell of a lot better than, say, JavaScript (at least if you have Option Explicit on, which should be included in every VB* template and default) where the "var" as completely optional. Also, the array-declaration form is very simple in VBS (Dim a(12)) even if using parentheses for array operations just feels *wrong* to C coders. Oh, and if "Dim" realllllly offends you, leave out Option Explicit and declare all your variables on first use. That's a terrible idea, but it's also one that a great many other languages (especially scripting languages) use...

      Sub: I'm sorry, you prefer "void"? Seriously, that's all a Sub[procedure] is; a method that has no return value. "Sub foo ()" is the same as "void foo () {" in C. Or perhaps "function" with no indication of whether the function returns anything or not (JS) is more your speed?

      I wouldn't bother replying at all, but for some reason you've been modded up. What the hell? I haven't even touched the language since 2006 (and that was for a very small project at work) but I can still tell that your argument is idiotic. Complain about something legit like its piss-poor attempt at OOP or its highly readable but less expressive for loops or its relative dearth of libraries (not a problem for VB.NET, incidentally, since it can interact with any .NET code), or with something about the language itself, but seriously, the keywords are the stupidest of a great many stupid reasons to hate it.

      --
      There's no place I could be, since I've found Serenity...
  13. Python or Javascript in LibreOffice and OOo by SgtChaireBourne · · Score: 5, Informative

    Both LibreOffice and OpenOffice.org support macros in Python or Javascript. Chances are you already know one of those, so you don't even need to learn a new language.

    --
    Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
    1. Re:Python or Javascript in LibreOffice and OOo by Beetle+B. · · Score: 3, Informative

      And the docs for Python in Open Office are...

      Oh right - there aren't any docs.

      --
      Beetle B.
  14. Just use R by Anonymous Coward · · Score: 2, Informative

    Spreadsheets are actually terrible tools for data analysis. It's virtually impossible to document what you did with a spreadsheet, and make it reproducible and debuggable.

    What you want is R, the Free software language based on Bell Labs "S" programming language for doing statistics and data analysis. R is like the fully outfitted machine shop compared to a spreadsheet's screwdriver and a hammer in a plastic box.

    http://www.r-project.org

    1. Re:Just use R by csirac · · Score: 2

      +1, although as a big ruby fan and using perl at work for nearly three years (and matlab at uni for four) I much prefer (and use) python+pandas instead.

  15. Re:MS Offfice 2013 - Javascript apps by ByOhTek · · Score: 4, Informative

    Wow... quite possibly one option that would be WORSE than VBA.

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
  16. What are you doing? by Rob+the+Bold · · Score: 2

    What are you doing with a spreadsheet that you find the built-in functionality so limiting?

    It's possible that perhaps you're getting to the "hairy edge" of what a spreadsheet is capable of. Depending on your application, perhaps you need a more specialized -- or more general purpose -- tool, here.

    Others have suggested MATLAB. If not that, how about Mathematica?

    Maybe you've outgrown the scope of a spreadsheet and need a general purpose programming language, perhaps one that you can get a reporting package that suits your requirements. If you're using lots of VBA, why not go all out and use VB, or any other general purpose solution (C, Java, Python, etc., etc., etc.)?

    Are you doing signal processing or control or other engineering stuff? Perhaps DaDiSP.

    Some more info on your particular needs might get a more specific and useful answer from someone here that's done the same thing.

    --
    I am not a crackpot.
    1. Re:What are you doing? by Obfuscant · · Score: 3, Interesting

      What are you doing with a spreadsheet that you find the built-in functionality so limiting?

      When the only tool you have is a hammer, every screw looks like a nail. When the only tool you know how to use is a hammer, it is the screw's fault that it won't go in like a nail when you hit it.

      I remember many many years ago, the entire corporate sales database where I worked was kept in a text editor. When I pointed out that there was something called "ingres" and that maybe it would be better to keep the data in that, I was told that the person who managed the "database" knew how to use the text editor and didn't want to learn anything else. I was also told that I wasn't hired to write database code for the administration of the company, I was hired to write scientific data processing code.

      Part of the problem was that DEC supplied the text editor with the system. That made it the tool of choice, even for problems it was very poor at handling. Likewise, if "large computer company" provides few or no real programming tools other than extensions to a spreadsheet, then the spreadsheet becomes the programming tool of choice. I've had several recent projects that I've had to code in javascript/HTML simply because I couldn't expect them to be used if they were programmed in perl, because web browsers come with the system and perl does not.

  17. Stop. Stop right now. by viperidaenz · · Score: 3, Insightful

    Stop programming in your fucking spread sheet. It's not an application development system.

    If you start having more code than you have data in there, you're doing it wrong.

    On the other hand, I got paid a pretty penny to turn a spread sheet system into a real application not so long ago,

    1. Re:Stop. Stop right now. by MouseR · · Score: 4, Insightful

      Turning a spreadsheet into an application is not programming. It's being an accountant.

    2. Re:Stop. Stop right now. by mister2au · · Score: 2

      and all the time I thought a data warehouse was a warehouse for data and could be used for more than just data mining ... damn those marketers for fooling me !

  18. Re:Are you sure you want to use a spreadsheet? by DragonWriter · · Score: 3, Interesting

    Do it with MySQL and a programming language of your choice and output to spreadsheet.

    I mostly agree, but MySQL is probably the wrong choice of database. For most things that you would consider using a spreadsheet for, you probably aren't concerned with multiple users with concurrent access, so you don't need a DB server, and SQLite is a much better choice. If you do need a DB server for some reason to back your spreadsheet-like analysis, PostgreSQL is probably a much better choice (if nothing else, because of the much richer query functionality; CTEs, particularly, are very useful for analysis.)

  19. Re:MS Offfice 2013 - Javascript apps by Motard · · Score: 4, Insightful

    What, exactly is wrong with =AVERAGE()?

  20. Re:Already there by rtfa-troll · · Score: 5, Funny

    Excel can already use VBA, which in turn can use IronPython.

    Done.

    Awesome; but not quite done. At that point you can run an X86 emulator inside it and boot Linux. Then you can run Firefox inside it and finally, you will have access to a sensible language.

    Actually, this is one of the best Ask Slashdots ever. A language war enclosed inside a user interface design war enclosed inside a programmer pet hate.

    --
    =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
  21. Re:My problem is quite the opposite. by Jane+Q.+Public · · Score: 2

    "How shall I make it hard for people to use Excel for just about anything."

    I thought Microsoft did a pretty good job of that already.

    Seriously... when Windows was still relatively new, 1-2-3 for Windows was pretty good, and there were some other very good spreadsheet programs available (sadly, absent from Wikipedia's spreadsheet history page). Then people started to actually use Microsoft Excel, which they greatly improved and stuck in their Office suite. But it wasn't that their product was better; they just had the OS and "Office" advantage, which pretty much guaranteed them market share.

  22. Re:My problem is quite the opposite. by Anonymous Coward · · Score: 2, Insightful

    Excel was already a robust and popular application on Macs. And the original 123 for Windows was a thin wrapper around the DOS app and not considered very good. The fact that "Office" was half the price of Lotus+WordPerfect didn't hurt either.

  23. Just use R by Hatta · · Score: 3, Interesting

    Spreadsheets are bad at just about everything. Use R instead. If you really need a spreadsheet, there are modules that act like a spreadsheet. But you'll be doing yourself a favor if you wean yourself off the spreadsheet teat.

    R is better suited to this type of task than general purpose languages like Python. Most variables and functions in R are vectorised. It's very rare to ever have to write a for loop, which makes the language much more readable.

    R is so good at this kind of thing that you don't need anything special to do a pivot table. Just use tapply() and sum(). There's also a 'reshape' package that is far more flexible than anything found in Excel.

    --
    Give me Classic Slashdot or give me death!
  24. Mathematica is vastly superior to Matlab by Cassini2 · · Score: 3, Interesting

    For symbolic math, Mathematica is vastly superior to Matlab. In my comprehensive exam, Matlab said if I increased the gain of a control system to 1E8, then the following error would be zero. However, for that particular control system, I knew that this result had to be wrong. For modestly large gains, the average of the absolute value of the error should have been a constant, and unaffected by the gain. At gains of 1E8, most physical systems go unstable. The issue shook my confidence on the written portion of my comprehensive exam.

    SPICE and Mathematica computed the correct result. The key difference is Mathematica is a symbolic solver. It solves the formulas, without making unnecessary approximations. Spice is absolutely amazing for control system work. It analyzes stuff that most users would be unable to model with Matlab. In particular, SPICE models output to input capacitive coupling correctly, where most other models ignore the issue. Thus, SPICE will frequently predict that a system will be unstable if the gains are sufficiently large, whereas Matlab will often predict everything is good. Additionally, after knowingly blowing the results on the written, I verified the result on a physical system. I wanted to be really sure I had the correct answers for the oral portion of the comprehensive exam.

    Matlab is a numeric computation package. In the case of control systems, it quietly converts Laplace transforms into discrete time z-Transforms before computing the system response. Never trust numeric results when they disagree with the theory. To this day, I still wonder if the professor that asked that particular exam question knew about this bug in Matlab, and deliberately asked the exam question from hell.

  25. Re:libre office by RabidReindeer · · Score: 3, Informative

    I think OpenOffice/LibreOffice can be interfaced with a number of programming languages

    It can. And even more APIs. Almost all of which are cryptic, cumbersome and/or poorly documented.

    It can be worth it once you learn how ... assuming you have enough sanity left.

  26. Re:MS Offfice 2013 - Javascript apps by hosecoat · · Score: 5, Funny

    What, exactly is wrong with =AVERAGE()?

    It's not too bad, but it's not too good either.

  27. Re:My problem is quite the opposite. by Dishevel · · Score: 2, Insightful

    Excel is the Crescent Wrench of office software.
    The wrong tool for (Almost) every job.

    --
    Why is it so hard to only have politicians for a few years, then have them go away?
  28. Re:Already there by m.ducharme · · Score: 4, Funny

    And you can do it all in Emacs.

    --
    Rule of Slashdot #0: You and people like you are not representative of the larger population. - A.C.
  29. Re:My problem is quite the opposite. by lgw · · Score: 4, Insightful

    No, Excel won because it was very much better .. at what the majority of users use spreadsheets for: keeping simple lists. Microsoft realized that early on and optimized for it. Excel is also terriffic these days as a simple graph-paper-oriented drawing program: make the cells square and you can outline and color quite easily. It also does a respectable job at turning a imple set of data into a pretty infographic-style graph.

    Excels behavior as a tool for complex financial calculations is simple irrelevent for 99% of its users. It won because it was optimized for doing simple, visual stuff.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  30. Re:MS Offfice 2013 - Javascript apps by Drishmung · · Score: 5, Funny
    Javascript is not too bad, but I suspect that it won't help in this case because the problem is not merely the language but the mind-rottingly horrible object model.

    If you can keep it to rslt = function(cell1, cell2, cell3) then it's OK, but in practice it seems to involve rslt = use.of.some.object.you.didnt.expect where goat.sacrifice(was.successful) [but.I.lied.to.you]

    --
    Protoplasm. Quiet Protoplasm. I like quiet protoplasm.
  31. Re:MS Offfice 2013 - Javascript apps by nabsltd · · Score: 4, Informative

    What, exactly is wrong with =AVERAGE()?

    It's not too bad, but it's not too good either.

    Try writing a replacement sometime from scratch, and see how hard it is.

    It intelligently only averages cells that are filled with numeric values, allows easy input of multiple ranges of cells, allows direct input of numbers as function parameters, and has an easy to remember name.

    If the built-in functions (which include some serious statistics and analysis functions) don't do the job, there are third-party add-ons that likely do. If you absolutely need something unique, then VBA is quite easy to use. The only real thing I don't like about Excel is the "error in a cell is propagated to all cells that reference it", with no way to disable it, and no formatting codes that hide errors. For example, there are a lot of times when I end up with divide by zero because a cell isn't filled in yet, but that's OK (like a table that calculates price/quantity, when a row hasn't been entered yet), and the only way around it is to use the "=IF(ISERROR(...))" construct. It would be much nicer if the existing "positive;negative;zero;text" custom formatting added ";error" to the end.

  32. Excel won because it was better? .. by Anonymous Coward · · Score: 2, Interesting

    "No, Excel won because it was very much better"

    Then why did Microsoft have to expend so much energy in killing Lotus 1-2-3 ..

    "Why was Lotus told that the shell would not be OLE enabled when In fact it is? Why was Lotus not given earlier warning if there was a change of plan? We're still lacking useful documentation on OLE in the shell - is there any"?

    "OLE Forms are a counterpart to OLE controls and a cornerstone of the Cairo user interface architecture. We were recently informed by a Microsoft employee that responsibility for development of this operating system feature has been transfered to the Microsoft Office applications group."

    "I'd be glad to help tilt lotus into into the death spiral
    "

  33. Re:MS Offfice 2013 - Javascript apps by lgw · · Score: 3, Insightful

    What are you on about - JS is quite a neat little language for solving small problems, and you can do functional programming in it if that's your thing. There's a reason MIT etc are turning from Scheme (which I love) to JS as a teaching lanuage.

    The only part of JavaScript that really sucks is the first four letters, but don't be put off by that.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  34. Re:My problem is quite the opposite. by Dr.+Evil · · Score: 4, Interesting

    Excel was okay. Word was acceptable.

    Wordperfect was excellent, 123 was excellent.

    Wordperfect + 123 was twice the price of Word+Excel+Windows, wasn't integrated and couldn't multitask.

    Microsoft outcompeted Wordperfect and Lotus by combining the marketplaces so that they couldn't compete. By the time Wordperfect (+Quattro) and Lotus (+Amipro) created their office suites and targetted the Windows platform, it was already too late.

  35. Re:Already there by chipschap · · Score: 2

    And you can do it all in Emacs.

    Actually ... yes. Emacs 'calc' is very powerful and of course you can extend it any way you want in elisp. There are also a couple of spreadsheet modes; SES isn't bad for some purposes, and there is a sort of spreadsheet built in to org-mode tables. I am only partly serious here; while I use Emacs spreadsheet modes for simple stuff (tracking and doing stats on exercise, for instance) it's certainly not meant for The Big Stuff. But Emacs calc---- that can do some pretty impressive work.

  36. Re:MS Offfice 2013 - Javascript apps by asylumx · · Score: 3, Funny

    =Woosh() FTFY

  37. Re:SIAG - Grid in a Browser by phasmal · · Score: 3, Interesting

    Similar concept, but the other end of the technological timeline is the ExtJs grid control (comes with some excellent docco)

    You pick up a whole lot of complexity with the ExtJs framework, but you can pretty much implement a whole spreadsheet on it (someone has!), and it's all with Javascript since it's in the browser...

    Might not be the same experience as local spreadsheets (no saving to a file :-( ), but it is extensible.

  38. Re:My problem is quite the opposite. by butalearner · · Score: 3, Interesting

    I heard an interesting story from, oddly enough, a MathWorks rep (the people who make MATLAB) about the early days of Microsoft Excel. I don't know if it's true...I think he said he'd either heard it or read it online from an early Excel developer, but my quick Google-fu didn't turn anything up. In any case, he said that after Microsoft first released Excel, they went out to their business customers to figure out how they could improve it. They were flabbergasted to find out that people were using it in completely different ways than they imagined. Even though (I believe) it was originally designed for data analysis, a great number of people weren't even using it for calculations at all. They were using it for to-do list tracking, calendars, structured text documents, presenting tabular data, etc. That's why Microsoft was the first one to have a spreadsheet that allowed the user flexibility to change its appearance: fonts, colors and the like.

    He was explaining this as part of his justification for coming out and talking to us, but I think it's also telling that their customers weren't using it like they expected. I guess this is really just a long way of saying that once you get to the point where quick Excel formula isn't cutting it, it stops being the right tool for the job.

  39. Re:My problem is quite the opposite. by djrobxx · · Score: 2

    WordPerfect was great for DOS. The early Windows/WYSIWYG versions were not great. I remember going back to the DOS version for most things because the GUI was too clunky. It just didn't behave like a proper Windows application. By the time it worked well, it was too late. MS word had picked up marketshare for people wanting to use a Windows word processor.

    I do remember finding it maddening when MS-Word would decide to do something unintended with styling, and I had no true "Reveal codes" function to fix it easily like I could in WordPerfect.

  40. Re:My problem is quite the opposite. by UnknownSoldier · · Score: 2

    As a visual thinking I have found the most important tool for programming (which is just another type of solving interesting problems) is a pencil and pad.

    While you have an catchy cliche & interesting point I use Excel / OOCalc as a cheap digital notepad which I find quite effective. I can jot partial formulas down, do quick graphs, and have some semi-table-structure while I finalize organization and equations before throwing it into the "real" tool.

    There are times a "lab notebook" (whether physical / digital) IS the right tool -- when you can minimize the time spent wasting with the UI then you can focus on actually solving the problem. :-) THAT is one of the advantages of using a spreadsheet that too many completely overlook or dismiss as not being relevant.

  41. Re:My problem is quite the opposite. by czth · · Score: 2

    Are you perhaps thinking of this Joel on Software article "How Trello is different", in which Joel writes:

    Over the next two weeks we visited dozens of Excel customers, and did not see anyone using Excel to actually perform what you would call “calculations.” Almost all of them were using Excel because it was a convenient way to create a table.

    What was I talking about? Oh yeah... most people just used Excel to make lists. Suddenly we understood why Lotus Improv, which was this fancy futuristic spreadsheet that was going to make Excel obsolete, had failed completely: because it was great at calculations, but terrible at creating tables, and everyone was using Excel for tables, not calculations.

    Your source could have just been another writeup of the same Microsoft investigation, of course.

  42. With R you need a spreadsheet to do what R doesn't by golodh · · Score: 3, Interesting
    An enthusiastic and experienced R user myself, I use a speadsheet (like Excel or Calc) to do what R simply oesn't do as well or as easily or as quickly.

    Like when I want to actually look at my data in column format (scrolling, frozen panes, column hiding, conditional cell colouring anyone?). Or when I need to edit it (e.g. convert ascii strings to something numeric using search/replace). Or when I want to do a quick interactive pivot table. Or a quick sum or count. Or when I want to try out one or two formulas or expressions before I start coding them. O r when I just need a small table to look good for insertion into a document (the best Latex table editors that I know are plug-ins for Excel or Calc: format in spreadsheet, push button, copy-paste Latex code; works every time).

    Of course it's possible to do most of those things in R too, if your time time has no value and if you love writing one-off code. I prefer to select the best tool for the job, and use that. Even if that sometimes means using VBA.

    Interestingly I find myself using RExcel (integrating R and Excel) sometimes.

    Most of the time however I have no time for zealots who tell me that I don't need X,Y, or Z because I supposedly can make do with A,B, or C too. They can e entertaining though, as long as you recognise them for what they are: rants from zealots.