I have a few small suggestions :
I have seen that on Python, when you type a function name and then put the opening brace (the way of giving arguments / parameters) in the shell window, a small popup comes up showing a sentence or two on the function and its arguments. I was wondering if such a feature could be accommodated into the usual Arduino IDE (the one I have is 1.8.13, I guess). Also, there is this specialty in Python that when you start typing a function name and forget a part of it, you can press on the Tab key and see a list of predictions. That feature will also be helpful if accommodated into the Arduino IDE.
Another one : users can get updates on upcoming Arduino contests once connected to the internet.
I suggest that you post it on the website as a 'Summer Update' (It's summer here in India ).
Thanks for your suggestions @SamRuben123. As UKHeliBob said, there is a beta release of the Arduino IDE 2.0.0, which is a major update of the Arduino IDE. One of the new features added in 2.0.0 is the autocomplete and language server features you requested.
There is a dedicated forum category just for talking about Arduino IDE 2.0.0 where you can find lots of interesting discussion and feel free to ask questions, report bugs, or provide suggestions specific to the new IDE:
@pert is it like Microsoft Visual Basic Studio ? Is that the new IDE you're talking about (because I had once downloaded such an IDE, but I forgot which version it was) ? If yes, I think I had seen it before, but still, here's an example of what I mean (I didn't understand what you meant by language server; perhaps it must be what I said about a list of commands popping up when I'm stuck on the beginning letters):
Suppose that in Python you import a module that has functions to control graphics. At some point during its usage, you start typing a function refresh_ and press the Tab key - and lo ! You see a list of commands in the current working environment that has refresh_ in their beginnings. Then you select the required function and put the opening brace ( '(' this character) and sees a sort of rectangular box saying what is the use of the function as how the author of the module wrote inside the function as a comment.
If this is the same thing you have stated as being included in the new update, ok fine..
Also, here's another thing that suddenly popped into my mind : why not include a pseudocode compiler to compile the pseudocode that beginners type up into the code for the microcontroller ? (Perhaps this is a bit dumb as one won't be able to enjoy the real programming experience that Arduino offers through C/C++).
No, this is the new version of the official Arduino IDE. It's very closely based on the UI of the classic Arduino IDE, but it is based on the same Electron framework, as well as Eclipse Theia, which has a similar UI philosopy as Visual Studio Code (note, this is very different from Visual Studio), so you might find some UI elements familiar if you're a VS Code user.
The problem with the use of "toy languages" for education is that you spend a lot of time learning things that will be absolutely worthless once you run into the limitations inherent in the language and move on to a professional quality language. I was actually on the verge of abandoning Arduino once I realized that I was very interested in diving deep into the world of microcontrollers, because I thought that what you see on the Arduino Language reference page was all there was to the Arduino language. Then I found a forum post that explained that all of C++ was available to me, and I knew that Arduino was where I wanted to stay.
I think that one of the most important things about Arduino is that it's all based on professional grade technology, so you never hit that wall. You might decide you want a more full featured IDE or that you don't care about the small things that are done automatically to convert Arduino language into valid C++, but you will be able to make that transition nearly seamlessly, and continue to use all the knowledge you gained.
I wouldn't consider it that. I happen to have my own opinion on the subject, and will share it with the world, but it's only an opinion.
Some would make my same argument against the Arduino language in its current state and say that the differences between the Arduino Language and C++ are harmful. Your proposal is merely an extension of something that was already done to some extent by Arduino.
eclipse has a big learning curve but provides things like version control and autocompletion NOW. Sloeber provides the Arduino support for eclipse. I use it but you should use whatever works best for you .
I do understand that it's just an opinion , but it seemed to be right to me. When my brother saw that I called my idea a stupid thing, even he said that I shouldn't call it stupid ; but I say, you're damn right about it . The true power of Arduino C/C++ should be experienced by people as they work on their Arduino boards. Simply letting pseudocode run things on systems is simply stupid and it won't raise the standard of a beginner at coding to that of a real coder. There's also this plugin to use Arduino with MIT's Scratch project , so my idea needn't be worked on (but yes, interested ones my try it).
One last doubt : if I ever make a simple OS simulator ( a really silly one, can be invoked into sight using a few lines of code in the IDE ; I am not sure if I can really make it fully even though I have started making it) for Arduino, will it be accepted as an official package in the upcoming Arduino apps as well as the current ones ? I planned to make one so that people needn't think of alternate ways such as using Bluetooth to access utilities and apps on self-made Arduino based devices [especially when it comes to making DIY smartwatches and stuff]).
I have seen people (not many; maybe one or two of them) posting on Github their own smartwatch UIs for Arduino-based smartwatches (and even STM32 based ones; check klonyyy/nWatch [that guy had to make his own board to run stuff ) , so I though "Why make things complex ??" .
So I can be sure to provide the right answer, I want to make sure I understand what you mean by "OS simulator". Is this code that will run on an Arduino board, or code that will run on a computer and communicate with an Arduino board?
I want it to run on any Arduino board (but the initial build may be compatible only for Arduino Uno and above). I had asked such a doubt before on this forum and many said it is impossible; but at least a simulation with minimum system spec usage (I mean, it should work on just a minimum number of features) should work, if I can make it work. Currently I am having a little bit f free time although my grade 11 classes will be starting soon; hence I thought I can use that breathing space to do this.
I know that we have the FreeRTOS project available on Github, and I had once tried it, but that seemed to be hard to use for me and so I felt I can try some other way of accomplishing what I need.
I understand that FreeRTOS is just for simultaneously running different tasks on a microcontroller and one just needs to create the UI and stuff to make a small computer.
There is also this Pyxis project (I have downloaded it but haven't tried it yet), but that too seems incompatible for my purpose.
As far as "official", as in the example sketches, libraries, and boards platforms that come pre-installed with the Arduino IDE, the answer is likely "no". Any project that is given "official" status must be carefully maintained, which is a lot of work already with the existing projects Arduino has created.
However, the official projects are only one piece of the Arduino software ecosystem. Everyone is free to share their own projects with the community, and the huge number of excellent 3rd party projects are a huge part of what makes Arduino so awesome. Arduino has made quite some efforts to make it easy for anyone to make their projects easily accessible for use by everyone.
I'm not sure what format you will use to package your project. There are three types of Arduino projects, each with their methods of distribution:
Library: You can add it to the Arduino Library Manager index, which will allow Arduino IDE users to easily install and update it via the GUI. All libraries in the Library Manager index are pre-installed in Arduino Web Editor for everyone.
Boards Platform: you can add support for installation via the Arduino IDE's Boards Manager by following this guide: Redirecting