Is there any interest and / or plans to overhaul the user interface of the GUI? While it is simple it feels very dated and could be far more user friendly.
I am new to Arduino and hardware hacking, but I am a UI expert and worked on the Swing team at Sun for five years (the IDE is written in Java Swing). I would love to help out on such a project.
Josh
There are already quite some alternatives for the IDE.
There are mods which extend the IDE's functionality (I'm not so knowledgeable about these)
There are other tools which provide the Arduino IDE functionality and more. For instance eclipse plugin, avr studio, visual studio plugin,...
So instead of starting a new initiative I would advice you to look at the current initiatives and help those out. I'm sure they can use a good programmer (I'm sure I can) This is probably the best place to start looking at what is available Arduino Playground - DevelopmentTools
Best regards
Jantje
PS As I'm developing the eclipse plugin, I discussed the "IDE's next to Arduino" last week with David Cuartielles who told me he directed his students to eclipse . A really nice way to flatter someone 8)
I love that there are professional quality alternative IDEs but that is no reason to let the main Arduino developer tool atrophy. We are talking about the first thing that a new user experiences. It should be as good as possible.
I suggest a two phased approach. First, implement a bunch of small fixes and improvements that increase usability without fundamentally adding anything new. Things like:
Smooth fonts
Resize fonts with a shortcut (cmd+ and cmd- usually)
Match native key bindings. Right now certain keybindings are available in native apps that aren't there in the IDE. Ctrl-A for start of line, for example. (on Mac)
Serial port names. When the IDE asks you for the serial port of your Arduino it gives you a list of names that contain no useful information. There must be some way to fix this. Perhaps if there is only one serial port attached we don't even ask you, just assume the default.
Add a "Window" menu showing the currently open windows
line numbers in the gutter
a selection of nice alternative color themes
make the toolbar look nicer (new colors? gradients?)
switch to nicer icons from the Noun project.
make the serial port dock-able with the main window
support fullscreen mode on OSes that support such a concept.
The second phase would tackle deeper issues
syntax highlighting and code completion
a sidebar with inline help for the language reference
a sidebar with docs on each library you have imported into your project
a way to discover and add new libraries from within your IDE. Perhaps a repo of common arduino libs?
If you could come up with some real usability improvements, then I'd be all for it, but things like 'smooth fonts', 'resize font keys', and 'nicer looking icons/toolbar/colour scheme' are just fluff. The IDE is a tool to do a job. Code completion can be useful, as can syntax highlighting, so that's where I would start.
The IDE seems to be a mixture of AWT, Processing and Swing. There also seems to be people who are "doing their own thing". I suggest you look at http://code.google.com/p/arduino/ if you have not already, as this is where you find the existing issues list and the developers mailing list; archives of this list can be seen without logging in and is updated very soon after postings.
Thanks for the feedback. I'm looking through existing issues to find ideas for improvements (which is where I found the request for a Windows menu).
Here is a first mockup of what it would look like. Hopefully the icons make sense. The right sidebar contains help so you can learn about the language, functions, and any installed libraries right from within the IDE.
I seldom use the IDE but would be the first to agree that it has it's place, especially with a few enhancements.
Hopefully the icons make sense.
So the guy running is the fire escape for when your program crashes and burns?
I like having line numbers, this is brought up ALL the time and frankly having a single number at the bottom of the window somewhere doesn't cut it, so that's good.
The help has potential as well, as long as it finally has a proper list of return and variable types for all core functions at least (unlike the official reference pages).
One thing that really irks me and I've never heard mentioned is remembering the window size over invocations. Programs have been doing this for maybe 30 years and to have to resize the bloody window every time is very annoying.
As to what chance you have of getting this officially adopted, good luck with that
does it really make any more since than arrows in different directs
right = compile up with a little dotted line means upload down with a little dotted line means save, that makes no since compile and save are local functions but have different icons, upload and save are external and internal but share icons
sorry I am a noob, wth? and where are the line numbers? heh
Is there an easy way to do that? I do miss it, but the way I read the descriptions of Swing (I am not at all a Java programmer, other than being able to write C code in Java), the rejection of the native UI behavior is considered a "feature."
The other thing that has frustrated me is the abstraction of the "Serial Monitor" window. I was trying to figure out how to get it to support "cursor positioning" ala VT100, but the way I read the current code, it would be very difficult to do this. It's too much a "text panel of arbitrary size" rather than the (more primitive) "screen with X/Y coordinates of each letter." Is there an alternative feature more like a "screen" ?