I saw the recent announcements of a new online IDE for Arduino development called Codebender and thought it sounded interesting, so I signed up to pre-register for a beta account (in the way that you do, these days). The basic idea is simple; the IDE is “in the cloud” (or online as it used to be called) and so is your code. Thus, wherever you have access to a browser on the interweb, you have access to your dev environment and all of your code. Compilation happens remotely and the output can be uploaded to an Arduino Uno or Duemilanove through a Java applet running in the browser that squirts the compiled binary out to your serial port.The big selling point touted for Codebender being better than the basic Arduino IDE is that it’s got context-sensitive help, code-completion, intelligent compiler warnings and errors and a whole lot else in a fully-featured “modern” code editor. You’ve got to admit that as simple as the Arduino IDE is for a new user to get up and running within five minutes, beyond that it’s little better than editing your sketches in Notepad and compiling them with a batch file. Any improvement on that’s got to be better, right?
Whilst that might seem fine and dandy in principle, I’m left thinking that Codebender is trying to solve a problem that doesn’t really exist. Yes, the editor’s pretty, but at the moment (off the top of my head) there’s no support for multiple files in a project, you can’t use any libraries that aren’t part of the standard distribution and there’s no file system hierarchy for your projects, meaning that it’s little better than that “Sketchbook” menu entry in the Arduino IDE. I could go on, but I don’t want to piss on their chips. Yes, I can access my code from wherever I’ve got an internet connection, but conversely, I can’t where I haven’t … so if I’m in the middle of nowhere with a laptop, an Arduino and no WiFi signal, I’m shit outta luck. If I want to use those libraries that talk to my GPS and my graphical LCD, I’m shit outta luck.
Maybe it’s just me, but would resources have been better spent making a super, user-friendly Eclipse plug-in that worked with one-click installation and harnessed the power of the same Eclipse framework that hosts all of my (and millions of other’s) development environments across a wide variety of programming languages? Add in the ability for multiple editor windows to be linked to different devices attached to different COM ports, so that you could work on a server and a client device at the same time, say and I’d be even happier. Leverage existing plug-ins that talk to GitHub, Subversion or whatever and you only have to concentrate on the Arduino-specific bits of the pie, rather than trying to bake the whole lot.
Don’t get me wrong, it demos well and it’s got potential, but until some of the pretty basic stuff is sorted out, it just doesn’t work for me. I’ll be keeping an eye on things though …
Hi Stu,
I’m following your approach to interconnect the CurrentCost to an Arduino-like device with big interest.
I’ll try your cable and code in the nex few days.
As for the richier IDE to program an arduino, I can recomend you the Arduino Plugin For Visual Studio witch you can find .
Best,
Luís
I’m not really a Visual Studio kind of guy, but I’ll be sure to take a look when I get a minute. Thanks for the recommendation, Luis.
If you have any questions on the CurrentCost, just pop a question in the comments and I’ll see if I can help.
Hi, I’m Vasilis, one of the guys in the codebender team.
I think you made an excellent review and highlighted some of our basic features as well as our issues.
I would just like to clear out a few things:
We do not support multi-file projects. It’s in the roadmap, but resources are limited, only a few people use them and there are other high-priority issues and feature to deal with.
We do support external libraries. Right now, we are still working on our advanced library-management system. However, acknowledging the need for our users to use external libraries _right_now_, we have developed a temporary system that allows us to add libraries manually. We’ve added a list of commonly-used libraries and we are also open to suggestions.
In regards to offline access, we offer the ability to download any .ino from the website. We are also working on a much better way to synchronize your local sketchbook folder with your codebender account.
In general, we believe in codebender because it allows you to use multiple computers without the need to install and update the same libraries all the time, organize workshops without having to help dozens of students install the Arduino IDE and one of our main points, the ability to program any Arduino Ethernet device remotely through the network with the click of a button.
I’m very interested to hear more suggestions on improvement. Please notify me and let’s see if we can improve codebender to suit your needs.
Just to chime in – as an individual developer I may or may not use codebender, depending on whether or not I need the more advanced features described above. But as an instructor who uses arduino in my classes, codebender will potentially solve many problems, including not having to install the arduino ide on multiple platforms (win, mac, linux – with the only easy and quick one being mac), allowing students to collaborate on code without having to send files to each other, and, if they add this functionality, being able to quickly send code snippets to groups. And the networked TFTP bootloader will also be a great add for more complex projects that require multiple updates to multiple devices.
I’m being a bit of a fanboy here but it is because I’ve been waiting for something like this for some time! I’ve used modkit in the past and it provides some of this functionality, but for most of my teaching I don’t require the block-based programming stuff. Codebender will hopefully provide a good deployable solution for beginner and intermediate arduino programming. Oh, and the more complete syntax highlighting is a great help as well.
Matt
Matt, you’re right and I can see the appeal in an academic or workshop environment – get up and running fast and give people something that they can work on in class, then go home and carry on playing with it – the only thing that changes is the machine they’re running the browser on. Try doing that with an AS/400 !!!
I can’t help thinking I’d enjoy being a student these days…
Cheers, Stu
Hi Vasilis – nice of you to take the time to stop by.
Like I said, I’m not out to take pot-shots at Codebender – I know that it’s still in beta and believe me, I’ve had enough times where customers have been given an early sight of something I’ve spent months working on, only for them to pick faults with the minor things. Sometimes you want to just smack them upside the head for missing the big picture, but sometimes they point out something you simply never thought of.
Although there’s a workaround in place for manually adding in external libraries, I have to confess I’m surprised that it takes “a lot of time to manually add a library” as the support page suggests. If you didn’t factor it into your initial design, I can see how it might be annoying to have to do a little re-work, but I can’t see how it would require so much effort … but heck, if I get some free time I’ll have a look at the sources on GitHub. It’s been a while since I did any PHP development, but there’s life in me yet 🙂
I’m personally not that bothered about the ability to import/sync the Sketchbook, but I can see how it would be useful for others. I’m more driven to being able to have a hierarchy of projects, being able to make them public, private or maybe group-based and being able to (if we’re really thinking here) have the Codebender source repository act as a GitHub client to my Git repositories, so that I can check in/out and work on things in Codebender. It’s only theoretical for now even in my head anyways, as I’m just getting started with Git for home use (after years of Subversion and other SCMs at work) but I have a fairly clear roadmap of where want to be heading with regards that.
Turning to the academic scenarios for using Codebender, I take onboard everything you can tell me about that … quite simply it’s not an area I’ve had any exposure to. The last time I used a computer in school, we were fighting over whose turn it was to have a go on the BBC Model B. 😉
Remote sketch upload is certainly intriguing – I expect I’ll end up with a number of devices embedded around the place and not having to disturb them to deploy new code would be a real bonus. Of course, the downside for me is that thus far they’re all ENC28J60-based clients…
Keep up the good work, keep rolling out the features and best of luck with the funding campaign.
Cheers, Stu