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?"
As old as the hills: http://siag.nu/siag/
Have you looked at Scheme in a Grid?
The last time I had to do something similar, and after I found the libreoffice calc to be just too weird for me, I just made a few tables in postgres, wrote a few functions and was done. YMMV, but it's definitely a lot easier to understand if you have any programming experience.
Better than a spreadsheet.
Scriptable.
Biggest downside: It uses a heavily enhanced VB Script.
Not a very elegant language, but way better than any spreadsheet that I know of.
The latest version of MS Office allow writing apps in Javascript http://msdn.microsoft.com/en-us/library/fp160953.aspx
I am finishing my master's thesis and have used Gnumeric for all of my work, it is an effective spreadsheet although it is missing some features from Excel (to the frustration of my advisor).
The plugins are written in Python, and while I have not used them extensively they seem to be quite powerful compared to creating Excel macros.
www.r-project.org/
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.
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
Instead of a spreadsheet with good programming just program and output a spreadsheet. CPAN has plenty of packages for this.
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).
https://datanitro.com/index.html
I've used it a bit and it's pretty fantastic
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.
I don't think this is quite what your after, and it is expensive as hell, but have you tried Matlab?
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.
R is very powerful try this" http://www.omegahat.org/RGnumeric/
Yes, both outside COM automation and vSTO plugins that run in Excel http://msdn.microsoft.com/en-us/office/hh128771.aspx
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?
Do it with MySQL and a programming language of your choice and output to spreadsheet. Put your code in version control (git). Profit.
Or if you really need to be using Excel, try something like this: http://groovy.codehaus.org/COM+Scripting
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.
(same AC) I've written a large library of functions and found COM Automation to be the best route for exposing them to both VBA and the workbook (application.) domain. It's literally one of the major projects I developed and now maintain for my company. Directly you can't call managed code from Excel hence the COM, or a C++ Wrapper.
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
https://developers.google.com/google-apps/ --> https://developers.google.com/apps-script/ or directly to script.google.com (Full-disclosure: not affiliated - just a user.)
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.
http://www.resolversystems.com/products/resolver-one/
I find that a decent SQL database platform is better for complex data manipulation. Install SQL Server 2012 Express Edition With Advanced Services (it's a mouthful, but it's free). It supports import/export from Excel spreadsheets, and a number of other data formats, and also includes Reporting Services for creating nice presentable reports without coupling the layout with your data storage (as with a spreadsheet).
Some SQL knowledge can take you a lot further than Excel will on its own.
it might not meet your needs because its spread sheet function came as an afterthought/alternative to an interactive geometric algebra tool. It has great power for some visualizations but not much for general data sets. IT is all open source and all in Java.
the link: http://www.geogebra.org/cms/
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
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,
Don't know if it would work for what you're wanting. Just throwing it out there.
Proverbs 21:19
But it's not quite a spreadsheet application.. I found it quite powerful last I tried it ~18 months ago, but I had trouble fitting the entire dataset in memory openrefine.org
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();
http://www.resolversystems.com/products/resolver-one -- spreadsheet python
"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.
It is free and it works better than Matlab.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Without knowing what you're actually doing it's kind of hard to make any recommendation.
Where I work, we find Tableau to be a good middle-ground between Excel and full SQL environments. It's not really a spreadsheet perse though.
Comment of the year
Consider learning an "executable mathematical notation" such as APL.
It has the advantage of looking like math formulas, naming entire matrices with a single letter and using symbols for the operations, while avoiding the pitfalls and chores of traditional programming languages, such as explicit loops.
APL was designed to allow non-programmers to express complex computations with ease, in a non-ambiguous, reproducible, executable way.
There are excellent commercial implementations (with trial or free-for-personal-use versions) such as AplX and Dyalog. They both have good tutorials. There is even a Try APL online site http://www.tryapl.org/
No spreadsheets are great because of shits like you who mock and laugh in people's faces when they only want to do some simple calculation tomorrow and you decide that it would be better for them to use a custom written library with awesome GUI interface. The problem with you is that they want to get done tomorrow not wait three months for you to get your shit in gear!
Seriously, I am a programmer, but I totally get why people use Excel. Programmers and devs have this problem in that they cant do something quickly because it needs to be abstracted, modularized, etc, etc...
"You can't make a race horse of a pig"
"No," said Samuel, "but you can make very fast pig"
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.
True, except that the battery-powered drill from Home Depot doesn't have errors in its statistical functions.
Of course 'it depends on the job', but I'd suggest having a look at SPSS, if you have access or are rich. Every college and university uses it.
en.wikipedia.org/wiki/SPSS
It has a code view for your queries (i am weird and only use SQL) and even some online 'libraries' of often used search strings (consult google). There used to be a FOSS alternative, PSPP, but I never used it.
I'd like to hear any feedback on my suggestion. The type of data analysis I did was either large data pulls based and de-duping on a few factors across 800K contact dbases in Oracle, Access, Excel, etc. or it was SPSS for doing geospatial, survey response, and anthropolgy factor analysis. We tested WiMax router signal penetration and correlated it with observational and respondent based computer usage data. SPSS handled the mix of data well.
Looking at other responses it appears that many are sort of dancing on the line between hard coding and dbase querying with their set ups...I'm not a coding wizard but I can at least get the concept. Never used most of the programs others have mentioned.
Thank you Dave Raggett
Try R, i think that it is a math programming language.
Be a programmer, not a Sheet enthusiast. I needed UI but simpler processing, so the ~LAMP stack worked for me (Linux, Cherokee, MariaDB, Python) . Python fits everywhere here from heavy data analysis to being web front-end. Often a one-line SQL statement did more than I needed.
Science & open-source build trust from peer review. Learn systems you can trust.
https://www.sharelatex.com/
Funny! I wish I had some mod points.
Well, like they say, "when all you have is a battery-powered drill from Home Depot, make lemons." Or something like that.
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!
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.
Using a spreadsheet and not a real program. There are countless frameworks and libraries for data analysis found in any real programming language if you accept the idea of writing a real program, opposed to trying to shoehorn a real language into a spreadsheet app. Remember, spreadsheets are designed for managers, and we all know how stupid managers are right?
Also the idea of looking for some obscure spreadsheet alternative just because you don't like the syntax is another fail. Not sure what you are doing, but there is a reason why Excel is a defacto standard in business circles and not "Bob's Awesome Spreadsheet XL".
I haven't thought of anything clever to put here, but then again most of you haven't either.
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.
OpenSource: QTiplot http://soft.proindependent.com/qtiplot.html uses Python as its scriptiing language
Prop: OriginPro http://www.originlab.com/ - can use C , LabsTalk and has its own C-based X-functions.
Admittedly, they are geared towards scientific data analysis, but have powerful graphing and programming capabilities.
Entia non sunt multiplicanda praeter necessitatem.
I have always thought a functional language like ML or Haskell would work well in a spreadsheet.
The compact functional code would visually fit well in a cell expression. And functional concepts like map and foldr would fit would work great for aggregating columns.
Also, it is insane that Excel does not have regular expression functions. Regular expression search/replace would work sooo well in a spreadsheet.
There is an open source version of SPSS called PSPP. It is not nearly robust enough to replace SPSS in most cases where buying SPSS makes sense, but for small projects it works fine.
I browse on +1 so AC's need not respond, I won't see it.
+1 Informative, +1 Takedown
I'm kind of teaching myself programming (for web crap) but I have a weird database and data analysis background that is very helpful but causes me problems when I get deep into OOP shit...
Thank you Dave Raggett
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?
A spreadsheet is something a user uses....
There is no God, and Dirac is his prophet.
A spread sheet is not a programming language. More than once, when my company has purchased some sorry back-water boondoggle, I have gone in and deleted all of their "Programs" which were nothing more than tricked-up spreadsheets. My favorite was a shared spreadsheet used for time and attendance that was nothing more than a front-end for a MySQL database running on someone's workstation. When I found the "developer" of that horror story I was actually allowed to walk him to the door.
Things that should never be seen in an excel spreadsheet but wind up there because of someone's attempt at "programming" include:
Credit Card numbers
Social Security numbers
Client-provided address lists
Bank account numbers and names
Just say no to using a spreadsheet as a program. If you don't know how to write a program you shouldn't learn by using a spreadsheet.
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.
read section "Using Code Blocks in Org Tables" of the Org-Babel intro: http://orgmode.org/worg/org-contrib/babel/intro.html supported languages: http://orgmode.org/worg/org-contrib/babel/languages.html
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.
I know the standard OS X AppleScript comes with bindings for ruby, perl and python as well as AppleScript, so in theory, you could use AppleScript to interact with Numbers (Apple's spreadsheet program), directly from the AppleScript bindings in Perl, Python or Ruby or whatever else Apple put bindings in (I think you can even do it in Cocoa/C).
Of course, I've nevery actually tried it, but it looks like it's possible...
I like org-mode's spreadsheet. You can use Emacs' Calc package or plain Elisp for calculations.
http://orgmode.org/org.html#The-spreadsheet
Take a look at Panorama from www.provue.com.
Free demo for OSX & WIN
"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"
http://www.originlab.com/
It's Windows only, but it plays well with Wine. Makes beautiful plots. AND can be scripted for in both a BASIC-like language and what they call "Origin C."
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.
Leonardo DiCaprio couldn't have explained it better.
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.
http://www.ais.com/Xess/xess5_product_sheet.html
Do not mock my vision of impractical footwear
So what's wrong with average()?
It's a simple function call, the input is the data, the output is the average... if you were in C this would be a lot harder without some data formatting or in between functions.
Excel's programming language is definitely not bad. There are plenty of things to not like about Excel, but the language isn't one.
Try Matlab if you really need something more advanced, but don't count on loving the language if you hate Excel's...
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.
Better question: "Why are you trying to pound nails with a crescent wrench?"
For all my scientific spreadsheeting purposes since 1995 or so, I have used Origin http://www.originlab.com/ . One problem is that it's only for MS Windows and doesn't run entirely correctly under Wine.
Regarding in-built programming support, it started with a in-built interpreter for their own c-style scripting language "LabTalk" (it is still present in the Origin), but they now also implement a c-compiler of some sort (which I don't use much).
I have found that it is very much a case of "the correct tool for the job". Origin is absolutely brilliant for processing large datasets and the graphing is fast and intuitive, but it is terrible for doing business-style spreadsheeting (such as storing student grades etc), for which I use LibreOffice or MS Excel.
"Those who don't believe in magic will never find it." - Roald Dahl
According to the feature comparison page LibreOffice has bindings for multiple languages including: LibreOffice Basic, JavaScript, BeanShell and Python.
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.
"No, Excel won because it was very much better .. at what the majority of users use spreadsheets for: keeping simple lists."
Disagree. I worked at a technical company and almost everybody there used it for doing calculations. Including in the word processing pool, who were sometimes called upon to write up project budgets.
If they wanted lists, they used a word processor. At the time, that was Word or Wordperfect, in our office.
And frankly, a lot of the employees there thought Excel rather sucked. That's why we had Lotus for Windows, and similar programs.
The LibreOffice API allow many languages http://api.libreoffice.org/
/thread
That post will be hard to top. Well done sir.
Hail Eris, full of mischief...
E pluribus sanguinem
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.
You can build Excel Plugins using C++, XLL (excel loadable library) or XLAM (excel Add-In module)
Alternatively you can leverage Web apps (javascript) and SQL to create complex spreadsheets.
http://orgmode.org/manual/The-spreadsheet.html
The Orgmode table does come with emacs calc access built in.
But wait there's more... (granted elisp is not everyone's cup of tea/coffee/bovril/bonox...)
http://orgmode.org/manual/Formula-syntax-for-Lisp.html#Formula-syntax-for-Lisp
3.5.3 Emacs Lisp forms as formulas
It is also possible to write a formula in Emacs Lisp. This can be useful for string manipulation and control structures, if Calc's functionality is not enough.
I figured out Lotus 1-2-3 back on a PC (pre-XT) at school, with no manual, back when no one really knew what a spreadsheet program was (Visicalc was first but a lot harder to use). It was not hard at all. Fast forward to Excel and I can't figure out the damn thing. If you're not a pro using it all the time it is very obtuse and the help is not helpful.
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.
I'm surprised no one's mentioned Google Apps Script which is basically JavaScript and can script all the Google Docs apps plus other stuff, but even better for the Sheets app use Python with GSpread: http://burnash.github.com/gspread/
Are you perhaps thinking of this Joel on Software article "How Trello is different", in which Joel writes:
Your source could have just been another writeup of the same Microsoft investigation, of course.
This is something odd I see in my work life constantly - people putting together checklists, tasks sheets, bug tickets (with screenshots???), in Excel spreadsheets. It's really, really odd.
Spreadsheets were just a solution for people who couldn't program. If you want to have a grid of input fields and program around it, look for Lazarus. It's a rapid development environment primarily aimed at GUI applications. It's platform independent so you can compile (and I mean compile to native machine code!) to the usual platforms like Linux, MacOSX and even Windows. Apparently it even works for Android and Windows CE, but I haven't tried that yet.
You're right, the documentation for python or javascript macros in LibreOffice or OpenOffice.org are quite poor. Basically it's missing, and for such a sought after feature, this is quite a problem. Also missing are the docs for using java macros. I'm not sure what else LO and OOo can support, there might be more, but even these three are a major advantage that could use publicity.
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
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.
Have you looked at Resolver One ( http://www.resolversystems.com/products/resolver-one/ ) - it lets you program in Python.
> WordPerfect was great for DOS.
This is obviously some new definition of the word "great", with which I was not previously familiar. I suffered the agony, in the early nineties, of using Word Perfect 5.1. Admittedly, in terms of usability (and particularly discoverability of UI features), the standards were somewhat lower back then. It wouldn't be fair to compare those versions of Word Perfect against modern software like OO.o. Nonetheless, I had *at the time* already been seeing, for years and years, word processing software that organized the different things it could do into meaningful categories that a human could understand and was capable of presenting the categories as menus, so that a user who did not yet know all the shortcut keys could one key to pull up the menu system plus one more key to select the appropriate menu category and then easily find the thing he wanted on the list. In Word Perfect, by contrast, the only way to find a feature for which you didn't already know the shortcut was to wade through dozens of very poorly organized help screens until you eventually got lucky and found it, and when you did finally find it, it would almost never work in quite exactly the same way you expected.
For software to be *worse* than WordPerfect for DOS, it would either have to go very far out of its way to make the user jump through pointless hoops to do anything ("To complete the operation of making the selected text bold, hold down the right mouse button while typing the characters you see in this CAPTCHA"), or else just plain fail to have the features you need at all.
Cut that out, or I will ship you to Norilsk in a box.
I'm not sure what world you grew up in where Wordperfect was consider excellent.
But what really happened was Windows came out. Microsoft wrote Word for Windows. Wordperfect did not. Word was better than ALL other word processors written for windows, so it won. By the time wordperfect figured it out, it was too late.
It had nothing to do with suites, and everything to do with Windows.
I think Python and Javascript are neater than Perl for light non-programmer scripting.
You made some vague comment about not liking VBA, but really what's wrong with it? Excel has great support for interoperability with the rest of the MS stack, and most 3rd party software can export to Excel format. VBA is also quite powerful. It sounds like perhaps you're saying you don't know VBA and want someone to create an Excel with perl instead of VBA so you don't have to learn VBA.
Perl or even javascript would be better options than =AVERAGE(). Do you know any viable alternatives?
Not precisely what you are after, but Perl on Windows supports OLE/etc and allows you to connect and control the Office applications. (I played around only with the Outlook.) One can add a macro button to the Excel UI to call a script on the document.
Simply google for "perl win32 excel".
All hope abandon ye who enter here.
Trying to do anything involving logging/manipulating data in a table in a word processor is like trying to sculpt syrup. I use oo calc to handle lists of things because you can pull it all apart and move it around, reformat it, reorder it, swipe cells to see totals, etc without the whole thing turning into a knotted shoelace like it would in Word or Writer.
(1.21 gigawatts) / (88 miles per hour) = 30 757 874 newtons
Hi. When I Googled for "ironspread", Google came back with "DataNitro". Apparently, the company changed their name to DataNitro at some point in 2012.
I looked at the DataNitro website and the tool looks interesting. Thanks for mentioning this.
(I have no mod points currently, or I would mod your post up)
The way I tried to solve this is to make a tool to program objects with spreadsheet styled rules in java that just execute themselves when they need to.
http://deduced.org/
Note that the very original marketing for Lotus 1-2-3 relied on the concept that this one program could be used for spreadsheets, databases, and word processing (each cell could be a paraqraph with its own word wrap). Plan B turned out to sell better.
Star Trek transporters are just 3d printers.
Look at it this way; Excel is by a zillion miles the most successful object oriented programming language ever.
Star Trek transporters are just 3d printers.
When designing GUIs, the first place I usually go is the spreadsheet. It's (very) far from perfect. Hell, it's so crude that it's barely useable, but it is the fastest way I can do a screen mockup. I can do in seconds on a spreadsheet what it takes minutes to do in an IDE. After that, I usually prototype it in the language I'm working in, then the functionality goes in.
I've worked with Excel with C#. I will say this: it is not pretty. Like VBA (which I've also worked with), anything other than super simple stuff results in some very ugly code. Honestly, I'm not sure of a good way to interact with Excel on a code level. I might have to check out the Siag that people keep talking about, although I have trouble imagining that it is any better. I think it is an inherent problem of working with cells in spreadsheets.
Yes, I would agree with that. I used to use Quattro Pro which was excellent but it had at least one annoying problem: when any part of the spreadsheet was obscured and then any or part of that became visible, the whole window would refresh. It turned out later that, according to an article I read, there was a Windows API which would only repaint the uncovered area, but that was hidden and only the Office people knew about it. More proof of the unfair advantage MS gave their office group and withheld from competitors.
I've found the same to be true that if I really want to be effective in almost any software task, I sit down and work it out on paper. I use a fountain pen rather than a pencil but that's irrelevant).
A recent study found that students writing their notes on paper had better retention than those using notebooks.
YMMV ;-)
I believe they wanted to use spreadsheet as
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
Casteism
[. . .] More precisely, several years after Windows came out, MS re-wrote their previously very functional DOS-based word processor "Word" as a windows application. In the process they damaged it badly, though not irrevocably, as was the norm for translating applications to Windows. This mental thing about having an approach to WYSIWIG (as Windows still does) tended to obscure important aspects of significant documents such as their internal structure, style use and so on.
So I was very glad to leave a company that used Word for Windows and upgrade to better pay and using Lotus Manuscript - it suited my mindset and the type of work that we were doing much better.
Yes, I agree, "Word" (sub-titled "for DOS v.5") was much better than any early word processor written for Windows, including "Word for Windows".
Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
You can have excel load dll functions. I wrote financial add-ins using this technique with all the real code in c++ with c wrapper exports. The vba was just a bit of glue code.
-- soldack
I have and I know many of my co-workers and friends have, over the years, gone from working with the data sets via a programming language and a RDBMS and exported the result sets into a spreadsheet format. I don't know if this applies to your question but think about it, if your problems are the lack of programability in a spread sheet then why not take it from the other end and go straight to programming and export your final set into a spreadsheet. You can create an excel spreadsheet from just about any common language these days whether it be VB, C, Perl, Python, Java, PHP, etc. I'm pretty sure you can import from a Excel spreadsheet from all of those same languages as well if that's where you need to import your original data from.
WordPerfect wasn't excellent, but it did have strengths. The biggest were the broad printer support (which was a nightmare in those days, but WordPerfect managed to get useful results out of just about everything on the market) and the technical support. In any case, the UI wasn't any worse than other DOS products, and those strengths were enough to make it the dominant word processing program.
The thing that so many people hold up as a feature - reveal codes - instead points out to me one of the biggest WEAKNESSES of WordPerfect. If a word processor is doing things right you should never need to see the formatting codes, it should just always do the right thing. But none of the DOS programs did.
The early versions of WordPerfect for Windows were terrible. Part of it was that they were just slow and buggy, but the biggest problem is that the company just didn't understand that Windows was a paradigm shift. What they did was implement something that acted as much like WordPerfect for other platforms as possible, but running on Windows. But Windows users wanted something that would be compatible with Windows UI conventions, which in a number of cases conflicted with the ones that WordPerfect users were accustomed to. WordPerfect needed to break backward keystroke compatibility and embrace Windows immediately; eventually they did but it was too late.
The best word processor for Windows was neither WordPerfect nor Microsoft Word; it was Ami Pro. But because it came out of a small company with no marketing clout it never caught on in a big way. Later the company was bought by Lotus, which didn't understand the value of what they had on their hands; instead of updating Ami Pro as 32 bit code for Windows 95 compatibility, they completely changed it; the result was Word Pro, which was a slow, buggy clone of Microsoft Word instead of the fast program with a superior UI that Ami Pro was.