Thank you for the reply @KurtE,
Except for the dark theme, many of the changes were for the worst.
Arduino 2.x is slow, painfully slow to load and save, and it's not getting better.
Why is it so slow when 1.x wasn't?
Some of the unique statements were handy, though they are being deprecated to make new programmers, who have stopped learning, comfortable. What's next, mandatory pointers? One of the things I like about Arduino's (former) version of C is: a single person can write quicker swaths of code.
The byte keyword is simple to remember. Oh I wish enums could be set to use 8-bit bytes. I wish we could group nibbles, too, but that's the kind of thing you would only want to do on a microcontroller, nowadays. Oh, well.
[AFAIK, Arduino, other than the name of an Italian bar, was an offshoot of the Wiring board, which was made for artists to make exhibits.]
The auto-format now contracts the brace back up one line, making statements withing curly-braces less obvious. This is a style thing, and the formatted should not obliterate the programmer's style--if it is sound. Version 1.x didn't change this into that. I can visually check for structural errors much quicker using the first version, as I am writing; the containment if more obvious to me. Though, it might not be fair to force my style on everyone--would it? Yet, that's what you are doing.
void setup()
{
// This
}
void setup(){
// That
}
I also hate how the formatter now removes spaces within parens. When things get a little thicker, I find it much easier to add spaces within the line, for readability. Unlike double-equals, I rarely miss putting a parentheses in a line. Your new formatter breaks all of my formatting work, needlessly. All of that fits on one line, just fine in the editor. Arduino 1.x formatted without trashing style.
Please paste these in the editor, and see for yourself if it's not easier to read. It's formatted in a way to show the paren structure.
if ( ( axis[current_channel].frames + setting[ani_framjmp].val ) < setting[ani_frammax].val )
Here's a few more to try to take the spaces from:
if ( ( setting[setting_current].val - setting[setting_current].inc ) >= setting[setting_current].low )
Serial.print ( char ( id_name_eeprom[count] ) );
if ( ( value >= setting[count].low) && ( value <= setting[count].high ) )
[Oddly, if you use the above method, its very easy to imagine the contents of the parens as being higher than that outside of it. So, as long as the spaces are added, you can just glance at it, instead of counting in from both ends.]
I can tell that there were a lot of infrastructure changes, but what good are they if things are bad for the users. The preferences, weren't really supposed to be used by the users, were they?
And after all of these years, you can't give us a proper font chooser?!
On Windows, even lowly Notepad has a font chooser. BBEdit has a font chooser. Notepad++ has a font chooser. What is the problem? Looking up the proper name of font to make sure it is correct. Your current solution is no better than the editing the old preference file. Setting a font is no more fun, than finding the proper video card name for my Adobe 6.x software, so it can use Cuda, on two computers.
Yes, indeed, the Serial Monitor isn't working right. I am not sure why I would post a bug report--when Arduino has been printing code with letters larger than your hand--for years.
Arduino 2.x makes it a bit harder to Save As versions by inserting date strings in the file name. This makes versioning harder for people who do.
What I want: filename01, filename02
What I get: filename_copy_20221229105247
Pst! I have a secret for you: there are dates on most computer files.
Rhino 3D can automatically increment files saves, but Arduino decided just to throw in munged-together dates.
So, except for the dark theme, what benefit is 2.x to users?