This weekly roundup thread is intended for all culture war posts. 'Culture war' is vaguely defined, but it basically means controversial issues that fall along set tribal lines. Arguments over culture war issues generate a lot of heat and little light, and few deeply entrenched people ever change their minds. This thread is for voicing opinions and analyzing the state of the discussion while trying to optimize for light over heat.
Optimistically, we think that engaging with people you disagree with is worth your time, and so is being nice! Pessimistically, there are many dynamics that can lead discussions on Culture War topics to become unproductive. There's a human tendency to divide along tribal lines, praising your ingroup and vilifying your outgroup - and if you think you find it easy to criticize your ingroup, then it may be that your outgroup is not who you think it is. Extremists with opposing positions can feed off each other, highlighting each other's worst points to justify their own angry rhetoric, which becomes in turn a new example of bad behavior for the other side to highlight.
We would like to avoid these negative dynamics. Accordingly, we ask that you do not use this thread for waging the Culture War. Examples of waging the Culture War:
-
Shaming.
-
Attempting to 'build consensus' or enforce ideological conformity.
-
Making sweeping generalizations to vilify a group you dislike.
-
Recruiting for a cause.
-
Posting links that could be summarized as 'Boo outgroup!' Basically, if your content is 'Can you believe what Those People did this week?' then you should either refrain from posting, or do some very patient work to contextualize and/or steel-man the relevant viewpoint.
In general, you should argue to understand, not to win. This thread is not territory to be claimed by one group or another; indeed, the aim is to have many different viewpoints represented here. Thus, we also ask that you follow some guidelines:
-
Speak plainly. Avoid sarcasm and mockery. When disagreeing with someone, state your objections explicitly.
-
Be as precise and charitable as you can. Don't paraphrase unflatteringly.
-
Don't imply that someone said something they did not say, even if you think it follows from what they said.
-
Write like everyone is reading and you want them to be included in the discussion.
On an ad hoc basis, the mods will try to compile a list of the best posts/comments from the previous week, posted in Quality Contribution threads and archived at /r/TheThread. You may nominate a comment for this list by clicking on 'report' at the bottom of the post and typing 'Actually a quality contribution' as the report reason.
Jump in the discussion.
No email address required.
Notes -
Initiated nerds were shitting on MS in those days, sure, but I think that leads people to underrate how successful they were at putting computers into the hands of non-techies.
There's a similar effect with Apple, which is often lambasted for making kiddie walled-garden software for people who don't know how to use computers (as Wes Borg said even back in the iMac days it's a "computer for idio... for mommies and daddies") but it's undeniable how successful the iPhone design as "computers for the rest of us" has been, it's so successful that people have forgotten how to use computers that aren't smartphones.
But back to MS, the simple fact that they made Excel is a towering achievement of ergonomics. Excel is rarely called this but it's probably the most popular programming language ever made, one so simple and intuitive you can get 90s businessmen to understand it.
So yeah, as with everything if you scratch the surface it looks like the pile of shit everything is. But people underrate how valuable and impressive it is to stack shit that high. I think Zucc will be fine.
In a very technical sense, you could indeed argue that Excel can be viewed as programming language. It seems to be Turing-complete: I can describe the rules defining state transitions in the first cell, use the rest of the row to store the state of the band and then tell it to fill out subsequent rows, running the TM row by row. It would be up to the user to stop adding more rows once it has reached a halting state, though. Of course, the memory overhead would scale with the number of total steps.
While I am sure that there are power users (or nerds who like a new challenge after brainfuck) who implement prime factorization, array sorting or iterative solvers in Excel, my estimate is that most users only create programs which take input which can be reasonably be considered one- or two-dimensional and runs for a time which is proportional to the input size. Like, they can calculate the sum, average or minimum of a column. Ask them for anything which is above linear runtime, like the median or matrix multiplication (without resorting to purpose-built functions), which even a novice programmer who has the concept of cascading for-loops can solve, and they will be stuck. (Of course, there is always VBA, but if VBA makes Excel a programming language, then it also makes Word a programming language.)
Despite this, spreadsheets have their uses (if you can stomach interleaving the code and the data). For example, I used one to catalogue my discoveries when playing Book of Hours without spoilers.
TL;DR: calling Excel "the most popular programming language ever made" is like saying that pictograms are "the most widely read script on the planet". Sure, only a 1.5 billion people can read the word "airplane", while likely more than half of the world population would recognize the ✈ symbol. However, these universal pictograms do not qualify as a script because they are not expressive enough. Seeing people use Excel for tasks which would clearly call for a programming language is like seeing a six-year-old who insists the he does not need to learn his letters because he can just chat with unicode symbols.
Edit: also, to the degree that spreadsheets empower users, letting Microsoft take credit for that seems a bit like giving Toyota the credit for providing mobility to millions of Americans. The empowering thing is the underlying invention, the fact that the customer selected Excel and Toyota instead of SuperCalc and Fiat is of much less concern.
Well, not necessarily. You're missing:
The best programming language is ultimately the one you know how to use right now, and "office worker gets bored, automates themselves" is [or once was] a valid career path. Sure, Excel stops being a viable option once you need to do things like talk to a network (which, totally coincidentally, Microsoft has an intermediate-level programming language called Access that can use Excel sheets as a frontend), and once you outgrow Access you're really in trouble (mainly because now you've created a problem for programmers to solve, and so now you're going to have to pay for the bootstrapping that Excel/Access did for you)... but most people don't get that far anyway.
More options
Context Copy link
Both of these are trivial to implement in Excel if you know what they are (without using the builtin functions, which seems... kind of dumb? like, do you implement lists from bare metal in python?) -- which granted most business users do not, but that doesn't make excel worse than a real language at these things.
If you think of it as a functional language in which you can see the value of every variable all the time, it becomes more language-esque -- you can do quite a lot without resorting to vba, you just do it in different ways than iterating over arrays or cascading for loops.
Excel can be very dangerous for business logic because it doesn’t have strict error handling. I’ve seen an insurance company severely misprice an obscure product because somebody accidentally deleted a cell in one row on a different sheet and nobody noticed.
Bugs can happen in python too, of course, but it’s at least a little more robust.
I said that it's an interesting programming language, not a good one -- believe me I have seen some shit too.
But to be fair, not that many programming languages to have strict data validity checking built in/mandatory out of the box -- you can implement that in Excel too, it's not even that hard -- just a little conditional formatting on key cells can go a long way, and if you really wanted to you could probably get pretty advanced.
But Excel users tend not to be that interested in this sort of thing, because most of them are also bad programmers.
I'm sure you're right, and certainly python doesn't. Type hints aren't binding, etc etc.
If you'll forgive me for changing my tune partway in, what I meant to convey is that I don't like the way that excel splays the entire workspace out in front of you, allowing you to change the value of any variable at any time, anywhere through the history of the 'code' because it's not imperative in the same way that code is. That allows way more scope for weird, hard-to-find bugs. (Yes, you can lock cells but often people don't, or they lock the wrong ones, or they unlock something to edit it and forget to re-lock).
More options
Context Copy link
More options
Context Copy link
More options
Context Copy link
More options
Context Copy link
The only criticism I'm seeing here is that it's not the form of programming you're used to and that it's optimized for light scripting because that's what most people do. Those sorting tasks you're thinking about and manipulating arbitrarily sized data? That's part of the standard library. It even has lambdas now and the formula language is itself a PL in its own right.
It's fit for purpose as the lightest of scripting languages. You wouldn't argue Python isn't a PL because most people use it for light scripting.
Entire companies run on excel macros, and it has ports of Doom and XCOM in it. Go watch competitive excel competitions (yes that's a thing) and then try and argue it's not a PL.
I understand what you're doing. You're trying to argue that people who play candy crush aren't gamers. And sure, most people that use excel aren't programmers. It's still the most used PL on the world.
More options
Context Copy link
More options
Context Copy link
Only a very specific group of nerds was shitting on Microsoft (and still is to this day, in my experience). Most nerds, even most computer nerds, didn't really care about Microsoft. Plenty of computer nerds liked Microsoft. I don't think that @quiet_NaN's picture of Microsoft as this universally hated company is accurate. It certainly doesn't match my experience, at any rate.
More options
Context Copy link
That's like saying "look how good the Mafia is at running Italian restaurants". Or like robbing a bank, donating some of the money to charity, and then trying to take credit for donating to charity.
The main reason why it was Microsoft specifically getting computers in people's hands is that Microsoft cornered the market, so nobody else could get a foothold. Microsoft should get no credit for pushing its competitors out of the market and then doing some of the good things that would have been done by the competitors that it pushed out.
Apple, Commodore, IBM, and RadioShack tried very hard to corner the market in the 1980s. It's their own fault that an upstart competitor was able to take it away from them, despite their first-mover advantage, because they did such a crappy job of actually taking care of their consumers.
More options
Context Copy link
This is overstated. Apple existed as a viable competitor during the entire period, and while Microsoft used what amounted to strong-arm commercial tactics to get its OS onto every PC sold, it was indeed this OS that enabled those sales. Microsoft should get credit for providing workable baseline software, that was very open to developers, and didn't cost much money. Did they push OS/2 out of the market? Maybe. It's also possible OS/2 wasn't a viable competitor to begin with. Sometimes companies dominate because they get first mover advantage and manage to build a large moat. Sometimes companies are dominant mostly just because they have an overall superior value proposition. Microsoft, for long periods, had both.
More options
Context Copy link
More options
Context Copy link
More options
Context Copy link