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?"

22 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.

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

    www.r-project.org/

  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 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.

  6. 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

  7. 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.

  8. 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?
  9. 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.
  10. 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).
  11. 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.)

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

    What, exactly is wrong with =AVERAGE()?

  13. 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();
  14. Re:Stop. Stop right now. by MouseR · · Score: 4, Insightful

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

  15. 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.

  16. 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".

  17. 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.
  18. 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.
  19. 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.
  20. 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.

  21. 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.