Interest in overhauling the IDE user interface?

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.

Thanks,
Josh

What ideas do you have?

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 . :slight_smile: 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?

thoughts?

  • Josh

I agree with everything, maybe not interested in new color themes and Window menu.

Code completion += intellisense would be excelent, a small popup with info and some refactoring tools, like rename a var.

Josh
sounds like great improvements really focused on the beginners experience. I wish you lots of success.
Best regards
Jantje

Josh,

You may be interested in taking a look at some of the previous discussions on the developers mailing list.

Several of your suggestions have been requested and discussed in various forums.

Here is a recent example of the direction the developers are headed: http://arduino.cc/pipermail/developers_arduino.cc/2012-June/006789.html

Josh,

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.

...IDE is written in Java Swing...

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 Google Code Archive - Long-term storage for Google Code Project Hosting. 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.

A major direction change seems to be suggested here: http://arduino.cc/pipermail/developers_arduino.cc/2012-August/007100.html

Stay interested :slight_smile:

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.

looks like a winner to me

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 :slight_smile:


Rob

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

I am a UI expert and worked on the Swing team

Oh; an expert to grill...

  • Match native key bindings.

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" ?

What bugs me is the "Screen of Custard " when trying to select a couple of lines of text :frowning:

Perhaps my mouse control isnt as good as it was :slight_smile:

I don't understand what you mean by 'screen of custard'.

when you try and select just a line or two of text, and suddenly you get a load of yellow lines selected - perhaps its one of my settings ?

Nah - just heavy-handednes on the mouse :grin:

could you post a picture of what you mean? Is it just that text is hard to read with a yellow selection?

What he means is that's way too easy to highlight a whole lot of text when only a couple lines were desired.