The Arduino IDE 2.0 beta
blog.arduino.cc
blog.arduino.cc
The Arduino IDE is meant to be accessible to people with close to no experience though, a newbie put in front of VSCode will fill overwhelmed for sure, that's why the Arduino IDE exists.
I'm certainly biased but the new Arduino IDE is certainly a huuuuge improvement from the old one in lots of ways, it already has some new features like an autocompletion that actually makes sense, debugging, and more will be coming.
For autocompletion to work we actually created a custom Language Server, it certainly has been no easy task and we're still making improvements to it. It still has some rough edges but it works finely already and you can't get that experience anywhere else for now, VSCode doesn't have it.
Oh, and it has a dark theme too.
I strongly suggest people give it a spin before dismissing it cause of Electron, Theia, yet another IDE, PlatformIO or whatever, we're continuously improving it.
VSCode is really good at lots of things, but it's also a dodgy mix of FOSS and non-free software and it's huge and complex. For something like Arduino it's great that they retain independence and control for their own tools. I'm sure you can still develop in VSCode with third-party plugins.
(To be honest though, I would have been happy enough if they built it in Emacs, even if similar objections apply.)
The Arduino IDE 2.0 uses the ArduinoCLI as backend and they comunicate through a gRPC API, most functionalities are implemented only in the latter. It's technically feasible to create a VSCode plugin. :)
> (To be honest though, I would have been happy enough if they built it in Emacs, even if similar objections apply.)
Never used Emacs but I think it should be doable to integrate the ArduinoCLI as a plugin, if you want to take a try at it I suggest you read the docs. The gRPC is still not 100% stable though, I made a big refactoring in the initialization steps recently that still needs to be merged.
See the current drama of Microsoft quietly introducing non-Free components into the Python plugin. [0][1]
[0] https://marketplace.visualstudio.com/items?itemName=ms-pytho...
I didn't even know about this python business.
[0]
PlatformIO for generation of value.
ArduinoIDE for demonstration of value.
A tabbed text editor is approachable enough for anyone that uses the web, and then we don’t use many features beyond the file tree view and a few items in the Ctrl-shift-p menu. It helps that the students interested in programming are usually comfortable using windows to start with but we also take students that don’t know how to use anything but a mobile OS and teach them.
I really don't get why developers spend so much time developing some really great piece of software and then just make the install a really horrible experience. The last mile of software development, the install processes, needs to be unremarkable and boring.
Arduino's IDE is nice for some boards since you install the software and everything is ready to use, but that is only the case for some boards.
PlatformIO is mildly more difficult to install since it is a two step process: first the VSCode, then the extension. Both steps are easy enough to do and to some people it is preferable since they are already using VSCode.
The difference between Arduino's IDE and PlatformIO come down to installing board support and libraries. Arduino's IDE is probably better if you are using Arduino libraries on a board that it directly supports since the installation process will be nominally easier. If that isn't the case, PlatformIO will likely be significantly easier since it supports more board, frameworks, and libraries.
Although they don't mention it (maybe they should) I used pipx [0] to install platformio. It's the best way to install a Python app.
I do use their official programmer, even though it is expensive (it can program AVR & PIC families) to avoid compatibility or driver issues.
I have used PlatformIO in the past too, but nothing beats a custom made IDE designed for programming a core set of chips.
Plataformio in my opinion is good for people who are familiar already with Arduino and VScode type of editors.
The arduino CLI is always very much welcome.
It's sad that this is all coming out in 2021, rather than 2014 when Arduino was on a fast adoption trajectory. I feel that the lack of good IDE/tooling really hurt the adoption rate.
https://skylarkcollective.com/blog/2020/01/27/the-listener-a...
I believe we had to use the official arduino IDE to compile because we were working with a Teensy to get extra power and processor.
When getting really detailed with gameplay and audio cues it was always easier to just make edits in the IDE to test again and again.
It was missing a lot of conveniences that would have made the project easier.
I work with Pycharm most of the time so the Arduino IDE was like the land before time.
I’m glad to see this, it is important for early skill building to have some semblance of modern dev tooling.
Plus, debugging, woo!
I've ever only needed the clunky Arduino IDE to install libraries and board types.
Guess what modern technology the Arduino IDE uses?
Now that I have fully read the article I think this misses out on due credit though. The arduino cli looks pretty cool and there's no necessity per se to use the IDE 2.0 nor does it seem like there will be in the future. I just wish we weren't so reliant on web technologies to power what should really be native apps and it seems like everything uses electron nowadays.
BalenaEtcher, a pretty front-end for a bunch of drive-copying terminal commands, is over 200 megabytes. A competent developer could probably recreate its functionality with 20 kilobytes of shell script. Yes, this script probably wouldn't be cross-platform, but I dare say that there's more than 20 kilobytes of platform-specific code in the current BalenaEtcher app already...
Bandwidth is cheap. Human time is not. There are better ways to spend development time than shaving 2 seconds off the download of a utility app.
I can do what BalenaEtcher needs to be done in a shell, but how many can/want to? When you say "probably wouldn't be cross-platform" you have already given a reason for this to exist. "20KB of platform-specific code", you clearly know what you're talking about. You should write cross-platform applications.
(Now waiting for people telling me their vim setup works fine for them)
It's perfectly fair to compare them for some languages (mostly web). Let's also not pretend like people aren't comparing vim and ST with VSC all the time, while they're very different products.
JetBrains IDEs are an order of magnitude smarter than anything VSCode provides.
I pretty explicitly said that some languages are doing better than others. Of course a language specific IDE will probably do a better job than a generalist one in most cases.
Unfortunely most rather get the free beer VSCode, so here we stand.
From my POV they are _not_ comparable.
Unfortunely, free beer is where most plugins end up being.
All joking aside, this is a rewrite on top of electron, not something I would consider modern either.
It's not "modern" insofar as the idea of using a local webpage as a GUI dates back to at least HTAs in Windows 98 (if not sooner in the IE4 shell update for Windows 95)
Competent medium programmer, looking to add lights, motion, sensors to 3D prints eventually.
You need to use global variables, not use heap allocations, avoid stl library classes, avoid strings, etc. The constraints due to the minimal resources mean you need to throw out elegant and robust programming in order to perform well. So the code ends up looking super hacky.
PLCs until recently only had global variables and a great deal has been accomplished with them.
A lot of machine controls and embedded work is more waterfally and less agile. Figure out what it has to do, make it do that, then it is done and you hand the machine or plant over to the customer and you can’t change it.
That said, I'm not sure what I'd consider to be hacky code in a constrained environment. Looking at https://www.reddit.com/r/learnprogramming/comments/3cd0x4/wh..., for example, many things people feel are hacky don't apply to Arduino programming mainly because there is hardly anything external to interface with.
[Clicks on the first link] --> 404.
Sigh.
Not anymore.
I just hope ulisp is compatible.
I don't know why you'd care what it's written in, but for the reasons that I'd care (resource usage mostly) Java and Javascript are languages I'd hope it's not
Better than Electron? Sure. But native? Not even close.
Perhaps it's different on other platforms; I wouldn't know.
Or willng to shell out money to frameworks like this,
On a practical level, is there some example of a Java app which I could download and try out for native look and feel? See if my custom menu items show up, if I can drag a document window bar icon onto another application, basic stuff like that?
https://github.com/javafxports/openjdk-jfx/issues/229#issuec...
So I give it an 'F' for the "look" part of look-n-feel.