Live data from Hacker News

Applying programming language research ideas to transform spreadsheets

microsoft.com

71–80 of 129 posts

Re: Applying programming language research ideas to transform spreadsheets

#71
post #62
post #37

Earlier quoted context omitted.

I've done some pretty mindbending things with VBA on Excel. They work but they are not pretty and not easy to maintain. VBA is technically a "complete" language (I want to say Turing-complete but that is not a meaningful trait), so it is possible to do a lot with it, but one ends up having to re-implement (sometimes badly) stuff found in other languages in order to write the main parts of the code. Part of what makes…

"but I've learned that when dealing with a Microsoft stack, there are advantages to using Microsoft-native languages like C#." curious. can you elaborate?

You can add custom functions to Excel (e.g., the ribbon) and other Office apps using Visual Studio Tools for Office (VSTO). There’s almost nothing you can’t do once you have C# or other .NET languages in the mix (I like to use F#).

One of my collaborators (Ben Zorn) is one of the people featured in the linked article. We’ve been working on visual debuggers (and other things) for non programmers in Excel for a few years now.

Re: Applying programming language research ideas to transform spreadsheets

#72
post #29

This is pretty neat. Tangentially, does anyone have a good way of version controlling excel files? I deal with people in the finance domain all the time, and for some files that come across my desk, it's terrifying to see multi-million dollar decisions being made in a file where anyone could change anything and not know any better.

Excel in office 365 cloud allows multiple users to edit the file at the same time, autosave and version control.

Can you provide a link to the O365 version control? I can't find anything online about it.

Re: Applying programming language research ideas to transform spreadsheets

#73

Earlier quoted context omitted.

I am (as a matter of principle) only working on projects which need to run for 10+ years or cannot be upgraded (firmware for very constrained devices) so yes, software is often far more complicated than it needs to be, but writing it in VBA or JS is not helping imho. Carefully designing, typing and formally proving (parts) is what makes me have applications running on cheap servers with basically 10+ years uptime (be…

I'm fascinated. What sort of software needs to run with ten years uptime? How do you avoid downtime for operating system updates on those cheap servers?

A lot of embedded hardware, financial transaction systems, factory critical ERP systems (I built one mid 90s in Clipper which is still running in that place; actually I built a few which are still mission critical at this point in time).

But, less hardcore, also my own projects; picturepush.com and flexlists.com for instance have been running for > 10 years making me money. Flexlists was hacked / down once because of a stupid fix gone wrong (just winged it before taking off in a plane). I have many of those; downtime etc will cost me literally money and clients. But running it multi-region AWS etc will cut massively in my margins and, as I see in the many companies I do c-level interim/consultancy for, it really actually results in more downtime at most companies because more moving parts.

OS updates I carefully study and only do them if they expose an exploitable issue. Which is almost never the case as most exploits actually require server access. The mentioned hack was my own fault and showed me that I must use the demands I have for the systems I write for clients also for myself. I am redoing my applications (some of them) in C#, F#, TLA+ and Coq at the moment.

My goal as an engineer is to only need to update the frontend to current standards and let the rest be untouched. I have managed so far.

Re: Applying programming language research ideas to transform spreadsheets

#74
post #21

Love the article's main photo. The first thought that came to mind: now THAT is a programmer.

Not sure what you mean but who knows if they are programmers with so much stock photo usage these days.

The guy in the photo is Simon Peyton Jones, one of the creators of Haskell, who works for Microsoft Research.

Re: Applying programming language research ideas to transform spreadsheets

#75

Earlier quoted context omitted.

CS indoctrination is most definitely not a failure of education. Mediocre kids thinking they are writing good code because they've written unit tests is. EDIT: Let me explain my thinking a bit more - we can try to categorize software development into two categories: 1. People write messy, unorganized code that is often in the head of just one or a few folks, who are smart but unorganized and often without formal CS t…

http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.htm... This point reminds me of "Portait of a Noob". For people who understand what the codebase is doing, it's more effective to have as much code on screen as possible. For "noobs", since you don't know what the code does, less code on screen is better. Additionally, these 'noobs' like more meta-program stuff like type declarations (or unit tests) which don't…

Is that really true though? Comprehensive test coverage will definitely give the new programmers confidence, but is it justified? Are there really that many software projects where lots of tests instills confidence that changes won't break things?

At the end of the day, unit tests or not - you have to understand the code you are working in. This means new programmers will not deliver features as fast as those who have been working on the project for a while. They are going to need to learn the code base regardless of whether it has tests or not.

Re: Applying programming language research ideas to transform spreadsheets

#76
post #48
post #2

The ideal spreadsheet should be a mix of Excel, Geogebra, reactive Jupyter Notebook (like ObservableHQ or Vue.js computed properties), programmable in Python, C#, JavaScript and/or other languages with the ability to embed third-party widgets like maps or custom charts. And decent data connectors with SQL-like query syntax (including JOINs).

Hi — that’s what we’re working on! Retool ( https://tryretool.com ) is similar to Excel, except the cells are themselves React components. And you can refer to other components inside the props for each component. You can pull in data either via SQL, APIs, or any other data source we support. Everything inside Retool is also JavaScript, so it’s pretty hackable. If you’ve got any feedback, please let me know! I’m davi…

I think this is going to be a great success. All the best!

Re: Applying programming language research ideas to transform spreadsheets

#77
post #64
post #7

Earlier quoted context omitted.

Banks, insurers, accountants; I know a company with 100M euro rev per year that runs entirely on Excel with VBA. Their office car park gate is opened, closed and managed with Excel. It sounds crazy but the CTO is a cofounder and he found it is much cheaper to just do everthing that way. They have been running like that for over 20 years.

I'm a dev on XL at Microsoft and took a trip a few years back to meet some of our advanced users. I was blown away by their 'accidental' CS education through Excel. They built sheets (debuggers) to debug other sheets (programs) on their OS (excel), and did this not even using VBA. In my own time, I've visited manufacturing plants where I've seen customers send the factory a spreadsheet containing nothing but a VBA pr…

I used to work in the aerospace industry. The engineers had spreadsheets that consisted of three visual elements: Cells for the input and output filenames, and a "Run" button.

It had once been company policy that engineers didn't have compilers or other programming tools on their computers (because "we have programmers for that"). But engineers are a resourceful lot, and they did have Excel with VBA.

Re: Applying programming language research ideas to transform spreadsheets

#78
post #3

As a programmer, excel would be so much more useful if it allowed you to do things like filtering and selects using SQL or some other code so you didn't have to rely on the UI so much to do filtering.

Google Sheets has a QUERY function which does exactly this.

https://support.google.com/docs/answer/3093343?hl=en

Re: Applying programming language research ideas to transform spreadsheets

#79

Earlier quoted context omitted.

http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.htm... This point reminds me of "Portait of a Noob". For people who understand what the codebase is doing, it's more effective to have as much code on screen as possible. For "noobs", since you don't know what the code does, less code on screen is better. Additionally, these 'noobs' like more meta-program stuff like type declarations (or unit tests) which don't…

Is that really true though? Comprehensive test coverage will definitely give the new programmers confidence, but is it justified? Are there really that many software projects where lots of tests instills confidence that changes won't break things? At the end of the day, unit tests or not - you have to understand the code you are working in. This means new programmers will not deliver features as fast as those who hav…

There was a post on HN about Oracle's DB2 code being completely in C and fully unitelligible. Only an insane suite of semi integration tests allows them to maintain it, albeit in the most inefficient way.

Re: Applying programming language research ideas to transform spreadsheets

#80
I was on a spreadsheet yesterday and I had range of cells that I really just wanted to "map" into another range of cells. I wish scala notebooks could be viewed spreadsheet style, something like that. Just to be able to write a function (formula) in the language of my choice, and then reference it from a cell.
Post reply on HN