Pages: [1]   Go Down
Author Topic: A couple more things I would like to see...  (Read 1247 times)
0 Members and 1 Guest are viewing this topic.
Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 36
Posts: 5519
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

1. Auto-complete with "smart" word list (functions, methods, etc); perhaps with tooltips or dialogs that can popup and show what each parameter is, with type, and comment (from doxygen comments, I suppose).

2. Doxygen plugin or something to generate documentation from the code.

3. Show cursor position (column, row) in status bar at the bottom of the editor.
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This sounds as an Arduino Eclipse plugin
 smiley-wink
« Last Edit: March 12, 2010, 09:05:14 am by MaBerY » Logged

B0100111001000011, USA
Offline Offline
Edison Member
*
Karma: 0
Posts: 1503
I'm confused.  Wait, maybe not..
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
1. Auto-complete with "smart" word list (functions, methods, etc); perhaps with tooltips or dialogs that can popup and show what each parameter is, with type, and comment (from doxygen comments, I suppose).

Sounds like what Macromedia Flash does.  Very cool, I like it smiley.
Logged

Cumming, GA
Offline Offline
Edison Member
*
Karma: 18
Posts: 1627
Ultimate DIY: Arduino
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

There *have* been a number of complaints that the default IDE isn't very robust and "coderific" but I think it is due to being closely tied with the look and feel of Processing.

Is that the intent going forward?  

if so, maybe we should be bugging the guys at Processing for new features?
Logged

San Francisco
Offline Offline
Jr. Member
**
Karma: 0
Posts: 92
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Agreed wholeheartedly with cr0sh!  Completion and syntax checking would help newbies and experienced users alike.

MaBerY, yes, somewhat like Eclipse's functions, but much simpler.

Overall, no matter how "friendly" the IDE and hardware are, people still need to write programs.  Looking to powerful environments like Eclipse for inspiration makes a lot of sense, since even experienced programmers make typos on a regular basis... smiley-wink
Logged

My Arduino blog: http://jmsarduino.blogspot.com
Comprehensive (?) Arduino-compatible board list: http://tinyurl.com/allarduinos

UK
Offline Offline
God Member
*****
Karma: 0
Posts: 710
Arduino is Genius
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Looking to powerful environments like Eclipse for inspiration makes a lot of sense
As an experienced programmer who dislikes Eclipse, I'd plead with folks to please try to clearly define the use case which is improved.

I think beginners really are beginners. I run workshops for children and adults who have never programmed, and the Arduino IDE is so simple that the are succesful in 5 minutes. I would hate to create a barrier higher than that. They don't expect "magic" like completion, that is something extra to explain, and further time to explain what to do when it gets it wrong (e.g. they select the wrong completion).

I also think pwillard made a very good point; folks who want changes to the IDE should be lobbying the developers of the Processing IDE (though no reason to stop gathering the requirements here).

Maybe folks who want an Eclipse-style IDE could look into folding in the Arduino toolchain into Eclipse?

GB
« Last Edit: April 08, 2010, 09:21:33 pm by gbulmer » Logged

Holland
Offline Offline
Sr. Member
****
Karma: 0
Posts: 439
Arduino likes cookies too
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The code completion is something I'd vouche for aswell.
Never seen any non-coder not understand what code completion entails..
This mostly because applications like word and such use similiar devices aswell, nowadays (in my opinion, those things are getting far too many features to be good for them...).
Nothing more annoying than the spellchecker auto-correcting you while you type.

Most search engines, and search features use a form of auto-complete aswell, afterall.
Logged

UK
Offline Offline
God Member
*****
Karma: 0
Posts: 710
Arduino is Genius
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry to disagree, but folks asking for completion seem to be assuming that users of Arduino IDE also use stuff with word completion.

That is not my experience, and the ones who do, most don't expect it in other programs. As long as it is off by default, I'm okay.

I believe it is still true that the majority of the worlds population don't use computers. I'd suspect that a large fraction of those who do use computers, don't use Word, or a programming environment. Arduino may be the first programming experience for a most of the folks. I know that is true for many of the groups I work with.

I'd still encourage completion-aficionados package the Arduino toolchain as a plugin for Eclipse so that you get all of the other features you like.

Please write down the stories, or use cases, and actors which benefit by completion. Then identify the actors or use cases which are not addressed by Eclipse-for-Arduino.

Just a thought.

GB
Logged

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 36
Posts: 5519
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Sorry to disagree, but folks asking for completion seem to be assuming that users of Arduino IDE also use stuff with word completion.

I don't assume this, but I do think in this day and age, if you have a programming IDE of some sort, it should have auto-completion available for it. This isn't the 1980's anymore...

Quote
That is not my experience, and the ones who do, most don't expect it in other programs. As long as it is off by default, I'm okay.

Whether it should be on or off by default, I can't say - I can see an argument from both sides that is equally valid. I do think it should be customizeable whether you want it (as well as to allow further extension for user-created or third-party libraries).

Quote
I believe it is still true that the majority of the worlds population don't use computers. I'd suspect that a large fraction of those who do use computers, don't use Word, or a programming environment. Arduino may be the first programming experience for a most of the folks. I know that is true for many of the groups I work with.

If it confuses these people, then it should be turned off by default; if not, and they find it useful (and understand how to use it - ie; knowing that it can't suggest things based on context of the rest of the program, that it isn't magic or artificially intelligent), then turn it on by default. User feedback on the functionality (all of it, actually - not just this new proposed feature) is important.

Quote
I'd still encourage completion-aficionados package the Arduino toolchain as a plugin for Eclipse so that you get all of the other features you like.

At some point, I do intend to check out this idea; I know others have detailed getting things working under Eclipse for the Arduino. As long as it doesn't feel top heavy and provides me with a simple experience like the Arduino IDE does, then I am for it. But if it gets in my way or feels clunky, or if it feels overwhelming in the number of features, then it isn't worth it to me.

I want a simple, but complete interface for Arduino, with a few more advanced features to simplify things for people like me. I want to be able to see a function or method call I am trying to write, with all of its parameters (and types!), without needing to wade through online/offline help and/or header files. It should be right there, as I type the code.

Regarding things like the documentation functionality; this (and other tools) could be implemented best as macro commands to external scripts for processing. I created a fairly nice working interface to the Parallax Basic Stamp tokenizer library for Linux in a similar manner for a particular text editor in KDE, before I moved to a 64-bit system (where the tokenized no longer worked, which caused me to move to the Arduino). I could write my code in the editor, click on a "tokenize and upload" selection in the menu, and it would tokenize and upload the code to the Stamp via the serial port, giving feedback along the way.

Such user extensions could be nice if they could also be included as part of a library (for instance, if you had a 8x8 led matrix library, maybe you could have a macro auto-loaded on use of the library that would add the ability to run an 8x8 animation editor that could encode the frames as arrays to be auto-included with the code at the cursor where you invoked the macro).

Quote
Please write down the stories, or use cases, and actors which benefit by completion. Then identify the actors or use cases which are not addressed by Eclipse-for-Arduino.

Now who's overcomplicating things?

I think all of this would be addressed by Eclipse; but then, I bet there are things missing in Eclipse that would have to be added in some manner that are currently in the Arduino IDE.

You seem to be fairly concerned with newcomers and how they'll react to the IDE as such. I am not suggesting that a full blow-out of the IDE is needed or wanted, but a few changes that would greatly speed development are not out of order here.

My biggest gripe (which is why I was championing the code completion idea) is the fact that in order to figure out a particular function or method call, I have to wade through a lot of documentation, some of it incomplete, most of it not even listing the argument types being passed, or the return types. For this, I have to then go to the header files. Now, what was thinking when I got to this point...? I don't remember...

That's the problem - having this information at your fingertips, inline - personally I would think would be helpful to both experienced users and newcomers alike (provided that the newcomers understand what is being shown and why, and how to use the feature). There would have to be education on these concepts to new users; but that should be a part of the documentation for the Arduino IDE and the Arduino itself.

 smiley
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

UK
Offline Offline
God Member
*****
Karma: 0
Posts: 710
Arduino is Genius
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry long post.

Quote
Whether it should be on or off by default, I can't say
Okay. Off smiley

Quote
- I can see an argument from both sides that is equally valid.  ...
Sorry, I disagree. 'Magic' should be off by default.
Experienced users will be able to find it and switch it on, and inexperienced people won't have to worry about yet another thing. I don't want new users to spend time understanding features which aren't essential.

Quote
I do think it should be customizeable whether you want it (as well as to allow further extension for user-created or third-party libraries).
That is even more complexity, but okay with me, as long as it's off by default, and it is appropriately prioritised.
Quote
this (and other tools) could be implemented best as macro commands to external scripts
I'd like to understand what the need is, and who it's for before focusing on implementation.
Quote
Quote
Please write down the stories, or use cases, and actors which benefit by completion. Then identify the actors or use cases which are not addressed by Eclipse-for-Arduino.
Now who's overcomplicating things?
I have seen folks ask for use cases on this forum, so I assumed folks were okay with the terminology.

They are just techniques to capture needs, and the users who will use the solutions.
There is always more desire for new functionality than development resources. IMHO, it is helpful to be able to group and prioritise the desires.

Use cases or stories are popular, and effective, techniques for focusing on "needs in context", rather than lists of features. Use cases or stories should be recognisable by their users as things they want to do. Many other techniques fail to get the coherence of these approaches.

Actors is a developer short hand. It recognises that we are users, but sometimes we are doing such different things, that we need to separate the jobs. For example, I am 'acting' as a user of a computer on a network, but sometimes I am 'acting' as the network admin. My needs in these two situations are so different, that it is helpful to partition them, and treat them as different groupings of functionality.

I am always interested in better ways to be clear about needs. So I'm happy to look at alternatives.

Quote
You seem to be fairly concerned with newcomers and how they'll react to the IDE as such. I am not suggesting that a full blow-out of the IDE is needed or wanted, but a few changes that would greatly speed development are not out of order here.
I have no problems with improvements.
As long as 'Magic' is off by default, or so perfect it makes less sense to be off.
I would like the IDE to be stripped down and made simpler to use.

For example, if it could solve things which are error prone, like automatically recognise the port & Arduino board.

Quote
... in order to figure out a particular function or method call, I have to wade through a lot of documentation, some of it incomplete, most of it not even listing the argument types being passed, or the return types. For this, I have to then go to the header files. ...

I have no problem with a clean, elegant, mechanism to deliver faultless information, but maybe an initial step is capturing the information? For example, have all of the core libraries got good variable names for the function prototype information? If not, what's the process for improving it?

Quote
That's the problem - having this information at your fingertips, inline - personally I would think would be helpful to both experienced users and newcomers alike (provided that the newcomers understand what is being shown and why, and how to use the feature). There would have to be education on these concepts to new users; but that should be a part of the documentation for the Arduino IDE and the Arduino itself.
I think the need, for new users, is to avoid spending more time reading documentation, and getting educated until they feel the desire. The IDE is a means to an end, not an end in itself.

Let me say one more thing. I worked for a large-ish (1000+ staff) company which was growing at almost 50%/annum, probably comparable to the growth of interest in Arduino (I haven't seen the numbers). For that company, it meant the majority of staff had less than two years experience with company systems and processes, all the time. Sometimes we had to focus on simplicity, because the cost of supporting complexity grows too fast.

I accept that new users aren't the only users, but IMHO, a key attraction of Arduino is its simple, uncluttered IDE.

I have no issues with having extra facilities which experienced users can access. The children I work with will find extra facilities in a couple of hours if they are very useful (these things spread like wildfire if they are good).

I am pleading that the under-5-minutes-from-zero-to-blink is not made more complex, but easier.
If the current growth in Arduino users continues, more new users will experience the Arduino IDE for the first time in the future than have experienced it so far.

GB
« Last Edit: April 20, 2010, 06:19:31 pm by gbulmer » Logged

Pages: [1]   Go Up
Jump to: