-
-
Notifications
You must be signed in to change notification settings - Fork 732
Suggested improvements to the home page text #476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Dear Per, sorry, but I don't agree about your "There is widespread misunderstanding that there is an "Arduino Programming Language". The original text could make a beginner think this." Simone |
You can find some details about Arduino Language history here... |
We'll have to agree to disagree on that. I stick with this viewpoint:
EDIT: The page is working now Relevant forum comment I stumbled across today:
That is almost the exact experience I had when I started thinking of getting more serious with my Arduino hobby, except by the time I came along there were decent alternatives. Related: |
I have to ask the Founders their opinion on this topic. I'll get back to you here. I'm not in the position to agree or disagree on such an important issue. |
Hi Per, It is very important that as part of the Arduino team you recognize the importance of these differences because these are what make Arduino so widespread. to be honest i have been perplexed myself on the necessity to "restrict" user to a init and loop function as well as to the need for a preprocessor that in a way limits what you can do but after i better understood the design choices behind this everything became clearer. i recognize that some of these topics are a bit difficult to digest, especially without too much documentation on the background but maybe we can gather some more docs and discussion threads you may want to read to better understand the reasoning behind this. |
Hm, came upon this issue after seeing mention of the "Arduino language" in some new documentation. Might be a bit late, but I still want to add my viewpoint. I also consider that the concept of "the Arduino language" might be more confusing than helpful to users. It is true that Arduino offers a number of custom types, objects and functions that allow expressing sketches easily and portably. However, I would say that all these are the API offered by Arduino, they do not constitute a language (in the same way that e.g. the STL, or Looking at the language that Arduino allows in its .ino files, this is pretty much completely C++, except that:
These are really just a small preprocessing step that does not change the code significantly. One can say this step "translates" the "Arduino language" code to C++, but IMHO that suggests this step is a lot more involved than it really is. Even more, deciding which libraries to use is not something that is really part of the language, but part of the build system around the language, so that part does not actually change the language in any way. So technically, I do not think the Arduino language is significantly different from C++. Of course, what is technically the case is not necessarily the same in the perception of users. In particular, most users will probably think of the core API as part of the language, so in that sense it might be useful to talk about the "Arduino language'. However, in my perception it is harmful trying to hide the fact that this language is really just C++ with an API. I can imagine that really novice users might be somewhat helped by this sheltered treatment when they stay within the Arduino reference documentation to see what is possible within Arduino. But there quickly comes a point where the Arduino reference documentation is not sufficient, because the user needs something that is undocumented, because the documentation is incomplete about details, because the user runs into a compilation error that they do not understand. When they do, it is helpful when they realize that they are really just coding in C++, since that opens up a a whole world of extra documentation, tutorials, stackoverflow posts, etc. to them. I've seen this happen a lot in the #arduino IRC channel where we get a lot of novice users looking for help. Regularly, users wonder what things they can or cannot do in this "Arduino language", and usually it is an eye-opener to them when we tell them they're just coding C++. I'm not sure this is the right place for this, but I would suggest to reconsider this position. In particular:
Update: Made my list of preprocessing steps complete |
Hello @matthijskooijman, |
I'll defer to David and Massimo, but I am fine with "Arduino API", as long as someone comes up with a good succinct explanation for beginners as to what an API is. Life's too short and too precarious to debate things like this, for me at least. |
I guess I'm late to the discussion, but what about something like "Arduino dialect" or "Arduino C++ dialect"? For a beginner dialect is probably clearer than API, but there is an implication of being a dialect of something. |
https://www.arduino.cc/reference/en
Change:
To:
Reasoning:
There is widespread misunderstanding that there is an "Arduino Programming Language". The original text could make a beginner think this. My suggested change is consistent with the existing description text for the Structure section: "The elements of Arduino (C++) code."
Change:
To:
Reasoning:
This is the order the sections appear on the page.
The text was updated successfully, but these errors were encountered: