Is it the Arduino Language?

I think it is a reasonable opinion, and well argued here.

However, Arduino's own official stance is that it is a programming language:

https://github.com/arduino/reference-en/issues/476#issuecomment-461491446

Arduino Language is NOT C++. even if in the end it is translated to C++ and compiled with C++ it IS a language by itself which actually is of course very close to pure C++ but also adds a few subtle differences

It is, at best, a pidgin or creole.
It is most definitely not a language.

(And yes, I'm a linguist)

4 Likes

A post found buried on a Github page, stating someone's opinion. Impressive!

That "someone" was Arduino's firmware development lead at the time of that comment, and is still the hardware development lead.

https://it.linkedin.com/in/dariopennisi

I would say the opinion of the person leading all development of Arduino firmware is quite significant.

That is not the only place it is stated though. It is just the most explicit reference I have come across.

Here are some others:

https://www.arduino.cc/en/Guide/Introduction

You can tell your board what to do by sending a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language (based on Wiring)

https://www.arduino.cc/reference/en/

Arduino programming language can be divided in three main parts: functions, values (variables and constants), and structure.

https://arduino.github.io/arduino-cli/latest/sketch-specification/

Sketches may consist of multiple code files.

The following extensions are supported:

  • .ino - Arduino language files.
  • .pde - Alternate extension for Arduino language files. This file extension is also used by Processing sketches. .ino is recommended to avoid confusion. .pde extension is deprecated and will be removed in the future.

Personally, I am somewhat offended by the idea that the small amount of preprocessing done on Arduino sketches is all it takes to claim you have created a new programming language. On the other hand, I have not found any rules for eligibility of creation of a programming language. Most likely, there are none and Arduino is free to claim they have created a new language if they like, and the rest of us are free to believe them or not.

I'm certainly not qualified to make the ruling about whether it is a programming language or not. It would be very interesting to get the opinion from someone who is well qualified.

Even if it technically it qualifies as a distinct programming language, there is also the question of whether the benefits of claiming such outweigh the harms.

1 Like

I also say that Arduino IDE allows programming using C, C++, and "Arduino Programming Language" because of the later to have contained the following Arduino IDE's commands/functions (though they are ultimately transformed into C++ codes):

pinMode()
digitalWrite()
etc.

Well, that's how C and C++ works.

So, there is no fault in saying Arduino Programming Language.

There is a fault, if your argument is that pinMode() is used in programming Arduino and is not a part of standard C. When I wrote games using the Allegro library, I wrote:
#include <allegro.h>
After that I could write:
circlefill(myBitmap, 300, 200, 50, myColour);
That didn't make it "the Allegro programming language". It was plain C. I bet the great guys, who have created the Arduino IDE and have included a C/C++ kind of compiler, have a strong feeling that the setup is far from any standard implementation of how a C/C++ programming environment works on a real computer system. For them, all that work is probably a part of what is the definition of the language of C and C++. But meanwhile they did such a good job, that I, as an end user, very strongly feel that it's plain C/C++ that I write. Not a new language.

And I'm arguing just for fun! I stand at my point, knowing it has very little relevance to how we can continue helping each other and understand each other's coding problems, making this community even better.

3 Likes

Everyone is entitled to an opinion.

Resume bickering.

Quote from net:

Please share the link to it.

The C programming language is called C.
The Pascal programming language is called Pascal.
The Javascript programming language is called Javascript.
The Arduino programming language is called... what?

[irony]
Oh well if it is from the internet then it can't possibly be wrong can it?
I have never seen anything on the internet that is incorrect, have you? [/irony]

Arduino Programming Language

1 Like

Arduino programming language is a DSL - domain specific language. C and C++ are general purpose programming languages.
The Arduino programming language transpiles to C++ (as Scala transpiles to Java or TypeScript transpiles to Java Script). Transilation is a process of generating a source code for other programming language.

https://en.wikipedia.org/wiki/Domain-specific_language
https://en.wikipedia.org/wiki/Source-to-source_compiler

1 Like

It could be wrong; however, I have liked the Arduino Programming Language tutorial.

If I would be asked to punctuate the above quoted line, I would punctuate it as follows:
(Oh well! If it is from the internet, then it can't possibly be wrong; can it?)

Arduino Language mentioned here.

Wow ! It seems folks are hung up on naming of coding variations. To my knowledge there is no "official" entity on approving if a certain set of rules/functions etc are a language.
I am not a software engineer but I know:
C++ is based on C (with enhancements) and "arduinoish" is based on C++ with enhancement.

Groovy is based on java

And likely there are many more languages based on other languages.

In my mind I do not think of Arduino as a language but C++ with a lot of helper macro's and predefined processor operators. These also come with their limitations.

1 Like

The following is from here:

"The Arduino Programming Language is basically a framework built on top of C++. You can argue that it’s not a real programming language in the traditional term, but I think this helps avoiding confusion for beginners."

2 Likes