10 ms·
Are spreadsheets a true programming language?
- Swizec 4y ago> There is no requirement to name things since everything can be referenced by row and column Ah yes, the joys of absolute memory addressing. How much hair was lost over those details until we figured out that using variables is nice?
- zamnos 4y agoIt's such a good idea that Excel added named ranges a long time ago.
- antidnan 4y agoI think so. Even microsoft thinks so, if its turing complete.
- PaulHoule 4y agoExcel has VBA so it is certainly so.
- PaulHoule 4y agoOne thing that's special about spreadsheets is that they figure out the order of evaluation from dependency relationships: something that is somewhat unusual in mainstream software other than make and dependency injection libraries like Spring. I'd make the case that figuring out the order to do things in is "one more thing to worry about" and also gets in the way of parallelization. Note the "old A.I." tools in the 1980s such as logic programming languages like Prolog and the production rules engines (expert system shells) used backward and forward chaining strategies to accomplish this but both had some awkwardness when it came to the cases where the order of execution mattered. My guess is that these techniques will shine again in the new age of low/no code.
- deleted 4y ago[deleted]
- analog31 4y agoLabVIEW is this way too. I wonder if dataflow programming is more intuitive to non-programmers, even if it might run up against limitations when extended to larger projects. Both Excel and LV have a reputation of being a way for non programmers to automate complex tasks.
- PaulHoule 4y agoI'm not sure if this is a fundamental problem or just an accident in how these tools have been developed. That is, many dataflow systems have ways you can make systems by drawing boxes (operators) and lines (connections between operators) but don't give you facilities to make a reusable box which is itself comprised of boxes and lines. If somebody really tried to make a tool of that sort which had a modules and other facilities for programming in the large I know we could do better but this may very well drive away the kind of person who is attracted to these tools. (I think of how many "data scientists" react violently to the slightest bit of SE discipline such as separating the results in a Jupyter notebook from the code that generated those results.) It's a shame because all the time data analysts are thinking about "How do I make the monthly sales report for August?" and not about "... for every month" and it is such a universal and predictable problem but the tools don't give people a structured answered. A concept that I've thought about applying to production rules (and maybe other systems) is "rules and schemes" where the code is divided into multiple layers with a relationship similar to HTML and CSS. Logical rules are one thing, what you do with those rules are another thing. People apply this kind of thinking to a small range of concerns in "aspect oriented programming" but with the right kind of compiler support it could be applied to other things like memory allocation. I hear people complain about "colored functions" when doing async programming but when I write for arduino I often write programs where (in my mind) there are a few (say five) colors of function that all play a particular role in the system and I even avoid automatic variables on the stack because they are just a waste in a program of that sort.
- steve1977 4y ago
- becquerel 4y agoa language for programming humans
- sokoloff 4y agoI would say that spreadsheets are not a programming language, but Excel is (as is Sheets).
- bbu 4y agoIn the first semester we had to write a Turing machine. Our profs solution was in excel
- aravindet 4y ago> To master it, you have to learn their unique command line in each cell, R1 notation, pandas, some linux. And if you’re using Microsoft, you have to learn their suite and VBA. Huh? Was this written by ChatGPT?
- BulgarianIdiot 4y agoI don't think ChatGPT would write such nonsense.
- bitwize 4y agoI think it got eaten... by some Linux or something.
- mcphage 4y agoI'm currently introducing my kids (ages 5-10) to Strong Bad's emails... it's fun to see that they hold up!
- xapata 4y agoQuite possible. There's been a rush of LLM products marketing their use for creating "content marketing" articles. I suppose there's an enjoyable inception/dogfood possibility in this industry.
- deleted 4y ago[deleted]
- ftxbro 4y agoThis commentary is a prime example of the dangers of overgeneralization and a lack of critical thinking. The author argues that spreadsheets are a programming language, but fails to provide a clear definition of what constitutes a programming language. Instead, they rely on vague distinctions between spreadsheets and "traditional programming languages," which they define as having reusable code, a dynamic/automatic structure, and the ability to create sophisticated UI/UX designs. The author also fails to acknowledge the limitations of spreadsheets as a programming tool. While they briefly mention that spreadsheets are less reusable than traditional code and have limited UI/UX capabilities, they downplay these issues and overemphasize the benefits of using spreadsheets. For example, they argue that spreadsheets are "easier" to use than traditional programming languages, but fail to acknowledge the complexity of learning the unique command line and R1 notation required to use spreadsheets effectively. Furthermore, the author's argument that spreadsheets should be considered a programming language because they are used by a large number of people is flawed. Just because a tool is widely used does not mean it qualifies as a programming language. By this logic, we could argue that Microsoft Word is a programming language because millions of people use it to write code snippets. Overall, this commentary lacks critical analysis and relies on unsupported assertions. While spreadsheets may have some programming-like features, they are not a programming language in the traditional sense. The author's argument that spreadsheets should be considered a programming language to increase the number of "programmers" is misguided and ignores the complexity of true programming languages.
- deleted 4y ago[deleted]
- mtlmtlmtlmtl 4y agoIt's painfully obvious that this is AI generated.
- xapata 4y agoBoth the article and the comment?
- arkitaip 4y ago
- jl6 4y agoHistorically there was a view that spreadsheets don’t count as programming because they are not Turing-complete (ignoring VBA). With the addition of Excel’s LAMBDA function, this is no longer true.
- twobitshifter 4y agoI’m not sure you even needed lambda. There’s a little known feature to enable circular references in Excel. This gives you iterators and recursion. There are also named references in Excel which the article overlooks in its comparison to “true” programming languages.
- antegamisou 4y agoI don't have access to ChatGPT4 but has anyone here used it for any kind of Excel troubleshooting? I think it could very helpful since many guides online aren't the best.
- zamnos 4y agoI was using the =GOOGLEFINANCE function, which outputs a table, and was having trouble querying Google on how to get Google Sheets to give me just one cell in that table because, like you said, online tutorials aren't the best. Given a descriptive query, ChatGPT was able to tell me to use the INDEX function pretty much immediately.
- jrm4 4y agoI think it would be smarter to ask this question somewhat in reverse; there are apparently lots of important tasks that we're used to think of as "programming" tasks, but are actually done more often, and arguably better, by "spreadsheets." What can one learn from the other, and/or could we get some kind of singularity here?
- bshipp 4y agoWhile I can't argue spreadsheets are a programming language, I would put forward that they are definitely a programming gateway drug for analysts. At least, from my experience, having to easily handle more rows than could be represented in an Excel sheet was what pushed me to SQL and Python. With powerBI and various other data modeling tools, those constraints aren't nearly as vicious as they used to be, but even 10 years ago they were insurmountable in vanilla 32 bit Excel.
- bokchoi 4y agoI'd say yes. Here was a fun and interesting talk I came across recently on homoiconicity and meta-programming in spreadsheets: https://www.youtube.com/watch?v=U9uZlEqUQw0 https://www.youtube.com/watch?v=U9uZlEqUQw0
- rav 4y agoYes, spreadsheets are definitely programming. I use spreadsheets to implement GUI applications for specific administrative/planning tasks, for example: - At work I'm tasked with grouping 40 administrative areas into larger geographically cohesive groups so that each group is roughly 20 km² in total area. This can be done by hand, sure - and I could also implement a GUI in some web framework to help me do it - but a spreadsheet lets me quickly develop a special-purpose application with good-enough usability, and it's all in all faster and more intellectually satisfying than solving the original problem by hand with a calculator. - For planning a 120-person dinner party I need to make a table plan, organizing the guests into a certain number of 8-person, 10-person and 12-person tables (constrained by the tables available at the venue). Sure, I could cut out 120 pieces of paper and write the guest names on them, or copy-and-paste names around in a plain text document, but again a spreadsheet lets me quickly count how many guests have been allocated to each table and whether the current allocation uses the correct number of each size of table.
- claystu 4y agoWhat resources did you use to figure out how to do that? This is an interesting use of spreadsheets.
- sovietswag 4y agoIn a historical retrospective on timesharing[1], Fernando Corbato (of Multics fame) mentioned that he considers VisiCalc (a predecessor of Excel) as a novel and important form of programming (he called it 'declarative'). [1] https://youtu.be/uZxfBbikNkU https://youtu.be/uZxfBbikNkU (it was somewhere in this video) As time progresses we get more open-minded and close-minded simultaneously -- we're experimenting with new ways of programming and computing, but we've also internalized existing structures as innate/fundamental. Maybe Corbato was just thinking creatively, or maybe he was less corrupted by decades of normative standards about what "programming" means.
- jrochkind1 4y agoIt's not an interesting question. (*edit* I'm kind of taken with someone else's suggestion here that OP was written by Chat-GPT or similar. It would explain how it made me kind of angry with it's vapidity). Of course spreadsheets are programming. So are R, Hypercard, Logo, etc. Some programming languages/environments are more useful for some sorts of tasks than others, or are simply infeasible for some tasks. (You wouldn't want to, even if you could, build an ecommerce website in "R" or "Julia" alone but they're both clearly programming languages). Some programming languages might be downright useless. What does it tell us to say something is a programming language? Whatever it tells us, sure, spreadsheets of the Excel variety are programming languages/environments, of course.
- jasonnchann 4y agoI'm actually the person who wrote this. To be honest, I did write this for some content marketing in mind and didn't expect it to blow up here. But I literally did not use Chat-GPT...not sure what that says about my writing or how good GPT is lol Basically I found an interesting article found here( https://news.ycombinator.com/item?id=25043741 https://news.ycombinator.com/item?id=25043741) and summarized some key points from the comments while adding my own ideas.
- jrochkind1 4y agoFair. I suspect what it means is that in the future there will be no reason for anything but an AI to write "content marketing", because it all reads like AI's anyway, and has about as much originality.
- equalsione 4y agoI put spreadsheets in a special category of "document-as-program". As in: - an excel spreadsheet is a program that is run by Excel - a word document (with or without macros) is run by Word - a web page is a program that is executed by the browser Documents-as-programs have this dual identity where they are a combination of data, presentation and logic. It's not a perfect categorisation but I find it helpful.
- xupybd 4y agoHow can you argue Excel's implicit typing is an advantage. Names turn to dates, strings to numbers, and all sorts of other unexpected nightmares.
- munchbunny 4y agoFor trained programmers it might be more harm than help, but, for many laypeople, it absolutely is an advantage because it means Excel is automatically allowing them to handle date-like text as actual dates. Most of the time that's helpful.
- jhbadger 4y agoUnless you are a biologist. Excel is infamous for mangling names of genes and thinking they are dates. In fact some genes had to be renamed because it was considered easier to do that than get Microsoft to fix the problem (or you know, just not use Excel, which many non-programmer types, including many bench biologists, use as a general data holder, akin to an adhoc database) https://www.theverge.com/2020/8/6/21355674/human-genes-rename-microsoft-excel-misreading-dates https://www.theverge.com/2020/8/6/21355674/human-genes-renam...
- burnished 4y agoSomething about this article was deeply offputting.
- kens 4y agoThis is an ideological question disguised as a technical question disguised as a linguistic question. As a linguistic question, it depends how you define "programming language". Some people consider anything that tells a computer what to do to be a programming language. Others consider it useful to separate programming languages from markup languages, query languages, assembly languages, scripting languages, etc. As a technical question, a lot of people jump onto "is it Turing-complete?" Personally, I think Turing-completeness is overrated and kind of a tangent. Finally, there's the ideological question. Especially on Twitter, similar questions are intended to break down the hierarchy between people who code in C++ or Java and people who write HTML. What I consider the interesting issue is how spreadsheets have been so successful for solving problems that would otherwise require "programming", and make the power of computers available to a much wider audience. Why haven't more systems caught on that would let people solve problems without "programming"?
- mattpallissard 4y agoThey are two sides of the same coin. A spreadsheet has the data visible and the logic behind the scenes. A programming language has the logic visible and the data behind the scenes. I used to look down on spreadsheets before I served my time at an HPC research institute. I learned there that they have their uses. Even among the most proficient of programmers. As always; it's all about picking the right tool for the right job.
- deleted 4y ago[deleted]