Go Down

Topic: Arduino command-line interface. (Read 977 times) previous topic - next topic

pert

My interest in CLI is for use in automated continuous integration testing. For this purpose, it makes sense to always test against the newest release versions of the library dependencies.

Robin2

My interest in CLI is for use in automated continuous integration testing. For this purpose, it makes sense to always test against the newest release versions of the library dependencies.
That makes sense. But I suspect it is a specialised niche compared to the needs of the 99% of Arduino users.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

pert

99.99% of Arduino users are going to be using an IDE solely and will never touch the CLI. Of those who do use the CLI directly, I'm certain a high percentage will be using it for automated testing.

The sort of person who prefers to manually use a command line interface to a GUI, or use the command line interface in their own application is quite rare. The intersection between that sort of person and the sort of person who uses Arduino is minuscule. But the CLI interface is the only option for someone doing automated testing so 100% of them are going to be using one. It's true that automated testing is not a very widespread practice among Arduino users, but it's getting more and more common every day. Helping this is the availability of high quality free CI services like Travis CI and the new GitHub Actions, which make it much easier to set up.

Robin2

I have no quibble with what you say.

The Arduino system is Open Source so anyone can extend it or otherwise develop it in any direction that takes their fancy - and more power to them.

However what would concern me is if the core Arduino developers are spending time on a niche product at the expense of work that would benefit the 99.99%.

And, of course, I am concerned that the command-line-system that I use every day will be abandoned in the future in favour of a more complex system that offers no advantages for me.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

pert

However what would concern me is if the core Arduino developers are spending time on a niche product at the expense of work that would benefit the 99.99%.
You need to understand that arduino-cli is going to be used to provide the core functionality of every IDE (both official and 3rd party). So practically every Arduino user (excepting Platformio users, since Platformio likely won't switch to arduino-cli) is going to be using arduino-cli. They just won't be using the command line interface and won't even know it's there.

It is true that we already had a working IDE and that this move of extracting all the non-GUI functionality from the IDE's Java code and moving it to dedicated external tools is likely driven by the Arduino Web Editor project, but it's really the right thing to do from a long term perspective. Arduino inherited this approach from the Wiring IDE (which even had parts of the hardware core system hardcoded into the Java code), then just continued to build on it over the years. I'm no expert in the IDE's Java code, but I've heard many times that it is very difficult to work with, so it is challenging for contributors to get involved with its development and there are even parts that the Arduino developers don't like to touch unless it's absolutely necessary.

I am concerned that the command-line-system that I use every day will be abandoned in the future in favour of a more complex system that offers no advantages for me.
I can't make any promises, but I would suspect that the Arduino IDE's CLI interface will be left the same as it has always been. That should be quite easy to do and the alternative would be to cause a ton of breakage. Every installation of the Arduino IDE will contain arduino-cli, so if the user wants to use the arduino-cli CLI, they can just use that tool directly. If they want to use the classic Arduino IDE, then they can do that through the IDE's executable, just like always.

Robin2

It is true that we already had a working IDE and that this move of extracting all the non-GUI functionality from the IDE's Java code and moving it to dedicated external tools is likely driven by the Arduino Web Editor project, but it's really the right thing to do from a long term perspective.
It is clearly none of my business how the Arduino folks create the underlying code for the Arduino IDE - all I am concerned with is that it works. Just like it is none of my business whether Ford makes 80mm or 85mm diameter pistons in its engines.

And I have re-written some of my own stuff.

However I am always conscious of Joel Spolsky's Things You Should Never Do   :)


...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Go Up