[HN Gopher] The worst of the two worlds: Excel meets Outlook ___________________________________________________________________ The worst of the two worlds: Excel meets Outlook Author : mooreds Score : 100 points Date : 2021-02-13 19:35 UTC (3 hours ago) (HTM) web link (adepts.of0x.cc) (TXT) w3m dump (adepts.of0x.cc) | richx wrote: | I love VBA, it's so easy and powerful. My first job was being a | developer/consultant at a big 4 firm, developing a disclosure | management software with VB6. It even had a ORM to map objects | from SQL queries. It was lightning fast, Office integration so | superb. Later it was ported to .NET with a proper client/server | architecture, still it never reached the speed and simplicity of | the VB6 version. | dccoolgai wrote: | 20 years later it seems I spend months fighting overwrought | frameworks like Webpack and React to get the equivalent | productivity I could get in one day with VBA. | sokoloff wrote: | My frustration with VBA is that it didn't seem very well | documented. | | If I could record a macro that was "close" and examine it, the | ecosystem was very productive. Once I wanted to go beyond that, | it seemed like there was an undocumented chasm to cross. | Pasorrijer wrote: | This has gotten a lot better with the internet. | | Almost everything in VBA can be found with a simple Google | search, and Microsoft's technical documentation online has | gotten very good. | airstrike wrote: | VBA is great for many things but it has its flaws. | | The biggest problem with it is really that the tooling around | it is decades old so it hurts your productivity. Maintaining | VBA code bases is a painful experience, the IDE sucks and the | language has enough quirks and shortcomings that it forces you | to take long detours to accomplish what would be very simple | tasks in more modern languages | | The loving part of VBA is its interoperability across the | Office suite, but there's no reason why that couldn't be done | in, say, Python | | Oh, I almost forgot. VBA classes are absolute misery. | ddingus wrote: | This is the part which saves crazy time: | | The loving part of VBA is its interoperability across the | Office suite, but there's no reason why that couldn't be done | in, say, Python | | I agree with you, but Python and pretty much every code | environment is missing a few things that create a pretty high | barrier to entry: | | For a whole lot of cases, VBA is not even needed. People put | data into cells, operate on it with formulas in other cells | that drop output into still other cells which are then used | to get output. | | Input can be almost anything these days. | | Formulas have a well defined, easy to understand syntax that | work across a wide variety of operators. Simple copy / paste | operations make sense, often with the intended data mapped | right in. (given people are a little organized) | | Output can be almost anything these days too. | | And it's live. Make a change, see it happen. | | That's real power! People don't have to know much to make it | all work either. | | I have been using Excel to transform business data for years, | model business and a lot of other things, and as a rapid | prototype system. I can write code too. Often I do, but the | more specific and or variable the task is, like a one off | need to solve yesterday, the more attractive just banging it | out in Excel becomes. | | Should one get super crazy, have one of those outputs from | Excel be a working program. No joke. A script file is one of | my favorite outputs. Mash the data up in Excel, and once the | plan of attack is clear, execute the script and watch it run | on the real system. | | Check this thing out: | | https://github.com/tilleul/apple2/tree/master/tools/6502_ass. | .. | | It's a perfectly usable, and I would suggest one of the | easiest, assemblers I've ever seen! I ran it on my mobile. | Crazy. | | I just used it to knock out a little routine for a retro-game | project I'm working on and was kind of stunned at how lean, | accessible, functional this really is. | | For Clarity: Replacing VBA with something else costs more | than the value add at present, and it's because Excel is the | gateway drug into VBA. By the time people reach for VBA, they | already are familiar with a lot of it. | airstrike wrote: | You misunderstand me. I'm not arguing one should replace | Excel with Python, I'm merely talking about VBA and the VBE | ddingus wrote: | Perhaps we misunderstand one another. | | VBA and VBE being replaced with Python would require so | much work... and there is a crazy amount of code out | there doing an equally crazy amount of work too. | | All the points I put here are why doing that replacement | work doesn't really add much value. | | Which is why VBA is still a thing. | foepys wrote: | People are downvoting you but are overlooking the fact that | it's not always about making things in the newest tech but more | often than not about making things work. Most software will | only be seen by industry specific users that don't care that | the program is React Native and runs on AWS. A simple VBA | script is sometimes completely sufficient to input the data | into a spreadsheet. Scott Hanselman called devs doing this | "Dark Matter Developers" [1]. | | 32bit VB6 programs are still able to run on modern Windows 10 | machines, even on x64. The hours that would've been lost on | porting everything to the newest macOS can be spent on new | features or customer wishes. With the .NET Framework it's even | possible to seamlessly use VB and .NET in the same program | which combines old and modern technology. It's officially | unsupported but it works and even gets bugfixes sometimes. | | 1: https://www.hanselman.com/blog/dark-matter-developers-the- | un... | bgroat wrote: | I don't want to say "anti-pattern" because that's not what I | mean... | | But new tech _should_ be the _last_ resort. | | If _nothing_ stable, decades old, and well documented can | solve the problem _then_ reach for hot new-ness | Retric wrote: | That's a little far, old doesn't mean good. The bleeding | edge often gets abandoned, but tech has generally been | improving over time. IMO, the sweet spot starts when | something was a fad ~5 years ago and is still reasonably | popular. | DaiPlusPlus wrote: | > IMO, the sweet spot starts when something was a fad ~5 | years ago and is still reasonably popular. | | That would mean it's okay to use Angular today, but dev | trends (and Google's support "policy") would advise | against that. | yen223 wrote: | A good reason to wait a few years is precisely so that we | have a clearer picture of what strengths and deficiencies | a piece of tech brings to the table, especially out in | the real world. | | We have a good picture of how Angular and React works in | production now. We cannot say the same for something like | Svelte. | nicoburns wrote: | > If nothing stable, decades old, and well documented can | solve the problem then reach for hot new-ness | | I think it's a little more nuanced than that. _Usually_ the | older technology is more stable and better documented. But | not always. Sometimes the new hotness is the new hotness | precisely because it 's better in these kind of categories. | tl wrote: | It's 100% true, but only in broad strokes. My personal | ladder is | | - paper | | - text files / spreadsheets | | - desktop apps / local db | | - SSR web apps / single database | | - SPA or mobile app / cloud storage | | The only thing that challenges that is the reality that | around a decade ago smartphones with tiny screens and no | filesystem access eclipsed desktop computer, and we're | still reeling over how much more expensive that makes | development. | bgroat wrote: | You and Retric are right. I'm imagining a checklist of: - | Stable - Well Documented - Age | | In descending order of importance. | | When choosing between _any_ technology choose the one | that is most stable. | | If multiple options are on a stable release, choose the | one that is best documented. | | If multiple stable releases have excellent documentation, | choose whichever is oldest. | | I don't think this framework is always (or even often) | right. But it works for me | makapuf wrote: | My checklist would be (I'm eager to know other people | correct me) suitable (does it some my needs) , stable, | available (including documentation, live q&a resources | like stackoverflow, blog posts explaining how- not new | ones but existing and up to date regarding the version | available), and simple. | smitty1e wrote: | I've never ever tried VBA.Net. | | But my private NVBC (NecroVisualBasiCon) repo has some great | stylings that I tap into at least once a year. | | Nevertheless, when are they going to relase Office with | Python bindings included? | snomad wrote: | BTW, they do have a JS API. Been using it a lot recently, fairly | easy and straightforward | | https://docs.microsoft.com/en-us/office/dev/add-ins/develop/... | smitty1e wrote: | > First of all we have to say that you can interact with Outlook | directly from other Microsoft Office apps via VBA using the | object Outlook.Application. | | I haven't seen any corporate deployments that permit jacking | around directly with Outlook in years. | | In particular, the transition to .*x file extensions some years | ago marked the a heavy lockdown of all my favorite VBA stylings. | | To give a customer an .xltm with the capability to import .json | files with tidy formatting, it was necessary to package | everything as a .docx and then construct the target on his | machine. | | It's one way to do security, I suppose | mooreds wrote: | I thought this was a great examination of unintended consequences | and a problematic (or unevolved) security model. I am sure it was | useful to allow Excel to manipulate other Office programs, but in | a networked world the surprise applications of this are | dangerous. | | I mean, being able to search for "password" in emails from Excel? | What could go wrong? | anonymfus wrote: | As with other Office applications, if internet originated | document contains VBA code, Excel opens it in read-only mode | with disabled code execution and displays warning. | | _> I am sure it was useful to allow Excel to manipulate other | Office programs_ | | Your understanding is backwards. Other Office programs are not | special, Excel can manipulate absolutely anything as VBA has a | complete access to full Win32 API, that Outlook.Application is | a COM object that can be accessed by any other Windows | application including VBScript and PowerShell in about the same | way. | Pasorrijer wrote: | I think the biggest thing a lot of developers miss with the | bashing of Excel and VBA is just the simplicity to the end user. | | As a consultant, a lot of time the solution has to be able to be | given to anyone, on computers with no admin rights or | installation privileges, and just work with no other | dependencies, installation or special skills required. | | Very, very few other methods meet that requirement as well as a | plain old Excel file. | tempodox wrote: | On Error Resume Next | | The pinnacle of error handling! | edoceo wrote: | When I did VB (loads of it!) my handler was was always labeled | "hell". On Error Goto Hell | corry wrote: | Excel elicits some equivalent of Stages of Grief in technical | people. First, some version "it's so dumb the world runs this | way, I'll just port a few of <use case> into a modern CRUD web | app and people will prefer it since it will reduce errors and be | in the cloud". Then, "oh hmmm the flexibility Excel brings to the | user is really hard to replicate in my CRUD app. But I'll try.". | Then despair - "arrrg if only these dumb users would realize that | the flexibility and power of Excel lead to lots of problems! Use | my simple CRUD app, please!!!". Then acceptance (and awe) - | "Excel is UI, a DB, and business logic all wrapped in 1 thing | that everyone already knows how to use." | | Not saying Excel is perfect. Lots of us have built or are | building products that do a better job at specific workflows. But | surely it is one of the best pieces of software we have, and if I | could only use 1 piece of software forever, it's probably Excel. | scythe wrote: | The painful thing about Excel is that it's a self-fulfilling | prophecy. It's built on extensive UX research that tries to | support the existing corporate culture and workflow. In so | being it reinforces that norm, which generally encodes the | assumption: _the people handling this data don 't understand | how or want to write code_. It's extremely difficult to build a | spreadsheet that gives those people as much power as Excel | does. | | This is frustrating for people working in an Excel shop who | know how to code. Most of them realize their coworkers don't | want to learn to code. They just wish their skills could be | useful. | kqvamxurcagg wrote: | You hit the nail right on the head there. | droopyEyelids wrote: | Feels like he's confusing "Excel" for "spreadsheet program | with scripting abilities" | tylerrobinson wrote: | Can you think of another "spreadsheet program with | scripting abilities" that is already installed on every | business computer on the planet? | ddingus wrote: | It's more like conflating spreadsheet program with | scripting abilities into just being Excel. | | :D | RcouF1uZ4gsC wrote: | I think a lot of the love for Excel by office workers comes | down to empowerment. Workers like being empowered to solve | their own problems. Excel does very well. You as a non- | programmer office worker can quickly make a spreadsheet that | solves your problem. You can update it on your schedule as your | problem changes or to explore new possibilities. You give that | up as soon as you go to a CRUD app. Need to change something, | put in a a request to IT who might get around to it in a week | if you are lucky. Wheat would have been a few minute feedback | loop with Excel is a multi-week slog. | | There is no other tool of which I am aware that enables the | common person to sit down at a computer and make the computer | do useful real world work work for them in a flexible way than | Excel. I have used it for budgets, lists, form entry, and | reports. In addition, it provides a very smooth on ramp into | programming via the record macro button, which will write the | VBA function that does what you are doing in the GUI. Most of | my VBA functions started out as record macro, and then were | edited to generalize. Truly an amazing piece of software. | Spooky23 wrote: | Exactly. | | As a service owner of some fairly significant technology | services, every time one of my colleagues "fixes" some | business problem with an enterprise IT system, it's | measurably worse than a well-defined excel driven process. | | My favorite was when our travel and expense system moved to | some Oracle monstrosity, and we literally hired full time | staff to data enter expenses that were submitted on paper | because field service folks were spending 5-10 hours a week | on expense submission. | | Another great example is when almost anything is "improved" | by some sort of quick and dirty interim servicenow task. | fpoling wrote: | Well, I observed the opposite effect when a complex Excel | spreadsheet was replaced by an Access DB that allowed a | small company to discover that they had extra assets for | like 200K USD. And the original Excel author realized how | much more sense the data made once he saw visualization of | data constraints and relations. | | But then IT of bigger companies treats Access as not a real | DB and often disregards it with the same contempt as Excel. | techsupporter wrote: | > Need to change something, put in a a request to IT who | might get around to it in a week if you are lucky. | | If the change happens at all. The IT department might say "we | don't have the time to do that," or "other users depend on | the app being like this so we can't change it to be like | that," or even "why do you need that, your justification | isn't good enough." | | Excel is the non-programmer or non-admin equivalent of "I'll | just bang that out in [php | python | perl | powershell]." | We've all done it, we will all _continue_ to do it, and yes | it will look like an absolute mess...that probably winds up | powering a Fortune 50 company. | uncledave wrote: | A point to note on Excel's empowerment I have discovered. The | main reason for its ubiquity is because it's mostly already | there and doesn't require the odious _purchase order process_ | to be navigated and then an odious _IT onboarding process_ | navigated. So fuck that, let 's just cram another turd into | Excel. That sort of overlaps with your IT request thing but | at a higher level I think. | coderintherye wrote: | Yes, but Google Sheets or shared Excel files in OneDrive. | Otherwise the magic that is Excel gets lost in various versions | in people's email attachments. Collaboration + Spreadsheet | though truly is a versatile tool. | ddingus wrote: | This isn't the problem you think it is. | | The most common use case is via seed document. People grab | the seed doc, modify for their specific case, input data, get | results, stuff into Powerpoint, done, next. | jjoske wrote: | Excel is great until you need to fix/extend an app that is now | integral to all company operations that was made 20 years ago | by that guy in sales that was good at computers and has long | left. | pbronez wrote: | Sure, but that has nothing to do with Excel. You could say | the same thing about basically any legacy application on any | stack. | corry wrote: | I just realized something. Riffing on how Excel is UI/DB/biz | logic in a huge unbounded zone, I think the reason it's so | popular is that people use it to build PRODUCTS. They don't | call them products, don't sell them, but a well-built and | complex spreadsheet is basically a mini app. | | What else do we have that's this powerful? And don't say | Airtable, although they clearly "get it" - it's not about | files, it's about building mini products. | saberdancer wrote: | I knew an accountant that built an accounting software in | Excel. He had different tables for different invoices, and | Excel spreadsheet would take that data, do whatever | accounting needs to be done and prepare all the reports that | need to be sent to various institutions. If I remember | correctly, he had a Excel file for each customer he had and | just used Excel for all. | | It wasn't a mini app, it was a complex application used in | "production" for at least 5-10 years. It's likely it is used | today as well. | | When I saw this, I was blown away. | walrus01 wrote: | If you really want to hit your face on a desk, wait until you | encounter a user who doesn't know how to tabulate or sum | anything in Excel, and uses it as a big grid-based text editor, | manually using a desk calculator to sum up columns, or perform | various other formulas on some selection of cells. | | also, prepare for the user to suffer some sort of existential | crisis or breakdown, possible tantrum after you show them how | to do these tasks automatically with a simple excel formula. | enjeyw wrote: | Building on this, when purist engineers trash Excel, I point | out that Excel cell formulas are the only case of Functional | Programming going truly mainstream. | ggrrhh_ta wrote: | This is the talk that I first saw that builds on that: | https://www.youtube.com/watch?v=0yKf8TrLUOw | | I found it interesting, fun and great. Still, I would stick | to using Excel for the personal analysis of data and not as | the language/tool on which software is developed: data & | programming logic intermixed, the default way to index cells, | the difference between normal cells and array cells, and | tables, etc., the fact that some things are just not possible | to do fully programmatically without creating your own VB | functions and therefore asking recipients of what looks like | data to accept running arbitrary code in their machines, etc. ___________________________________________________________________ (page generated 2021-02-13 23:00 UTC)