What defines what a programming language is?
You will find several settings. In Wikipedia:
A programming language is a standardized method for communicating instructions to a computer.1 It is a set of syntactic and semantic rules used to define a computer program.2
[Note 1] Allows a programmer to specify precisely what data a computer will act on, how this data will be stored or transmitted, and what actions should be taken under various circumstances. Programming languages can be used to accurately express algorithms.
If we continue reading the article (same in English) we will find various information that helps define what is expected of a programming language and even its various classifications. We note that we cannot stick to the classic way we know languages like C, Java, C#, Javascript, PHP, etc.
Excel fits these settings.
One of the criteria for defining whether a language is programming can be whether it is Turing Complete. This is the only objective criterion I know to define whether the language has full programming capability. Some people may disagree. I have never found a canonical and definitive definition that indicates this. I have also never seen anything plausible to indicate that this is not a good criterion.
If there is an objective criterion, more subjective criteria are obviously not good for deciding something. Someone knows a better criterion?
So I keep thinking how can someone in their right mind consider that software that can solve any computational problem in a fully programmable way without needing outside help might not be a programming language? It is more controversial to say that SQL (default) is a programming language, because there are problems that it cannot solve.
So Excel (and not VBA, which is obviously also) is a programming language. If you disagree, ok. It won’t change anyone’s life. But, if possible, demonstrate where there is a flaw in this definition. I never found.
Some places where this is discussed:
Software like Excel , Crystal Reports etc are in a "limbo" between a Programming Language is software that can be programmed , the answer will be DEPENDS , depends on how to define an LP.
– Motta
But isn’t the way to define an LP something definite? Apart from the Turing method, which other method can be applied? @Motta
– gustavox
I don’t know, will we have to have this definition ? Software that accepts voice command is "programming language," I say, the voice command ?
– Motta
But this type of discussion is not the focus of this site.
– Motta
So @Motta, I see it as an objective question. It’s either or it’s not.
– gustavox
@Motta voice command is a data input, that’s it.
– Maniero
If you call the language of formulas, like, SE(), SOMA(), etc Excel, I would say yes. If you say that Excel is just a "shell" and inside has an anonymous language, with the functions SE(), SOMA(), etc., I would say that such a thing, perhaps without a proper name, is a programming language, and Excel is the IDE. Nor will I enter the merit of VBA, because I understand to be something outside the scope of the question. VBA is a programming language, but it is an Excel accessory. You can use Excel, program inside it, and not pass near VBA.
– Bacco
It is software. And, the most dangerous in the world.
– brasofilo