Go Down

Topic: Total rewrite of the Arduino App needed! (Read 4317 times) previous topic - next topic



I think the quite monolithic Arduino app should be separated into several modules, that make it easier to swap parts out for e.g. a sane editor (line numbers? :smiley-eek:), a decent build system.

The library concepts needs fixing. It is hard to write a library with code that can be reused outside the Arduino world. But that seems to be mainly a problem of the weird (or rather non-existing) build system.  :smiley-roll:

The idea of the sketches leaves me puzzeled too. Who came up with the wondrous idea, that any additional file used needs to be copied (<-- no joke  :smiley-sad-blue:) into the sketch directory? A reusability nightmare!

This is so broken in so many ways...


P.S.: Sorry for the rant, but if you have ever worked with an IDE, Arduino sucks...



If you worked with an IDE consider one of the alternatives offered.
I'll promote my eclipse  plugin www.baeyens.it/eclipse
I leave it to other authors to promote theirs. 8)
Best regards
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Nick Gammon

The library concepts needs fixing. It is hard to write a library with code that can be reused outside the Arduino world.

Why do you want to do that? They are Arduino libraries. However having said that, I've made libraries to do generic things like do regular expressions and big numbers with no problems.

The idea of the sketches leaves me puzzeled too. Who came up with the wondrous idea, that any additional file used needs to be copied (<-- no joke ) into the sketch directory? A reusability nightmare!

For reusability, use libraries. For things that are part of one project, put them in the project directory. Sorry, but I don't see the problem.

This is a 32 kB processor (the Uno and friends are). You aren't going to need thousands of files, like you might for VB or some of the huge Microsoft projects.

The whole thing was designed to be simple for beginners. There are other IDEs around, including the development environment from Atmel. That is, no doubt, much more powerful, and correspondingly harder to use.
Please post technical questions on the forum, not by personal message. Thanks!

More info:


I don't think anything specific needs fixing, but I do agree it would be nice to get the IDE rewritten to get rid of all of the processing-specific stuff (like the "tools" folder with Mangler inside...) and separate the code that does stuff (compile, add prototypes, upload, etc) from the GUI. However, it is a lot of work. Perhaps OP could get a few dedicated people together and ask the arduino team if they would accept a complete rewrite of the IDE as a contribution.


Who came up with the wondrous idea

I guess this should be given a serious answer:  The people who wrote "Processing" !  (Processing is a simplified Java programming environment for desktops.)
To a large extent, Arduino has an IDE borrowed from Processing, a compiler/etc from gcc/winavr/avr crosspack, and a simplified microcontroller library from Wiring  One of the reasons that it is difficult to get changes into Arduino is that the value of remaining more-or-less in synch with these other projects is relatively high, compared to the value of getting relatively minor improvements in Arduino itself.

James C4S

This is so broken in so many ways...

Yes I can see how this is the case.  Just look at how the Arduino project is going absolutely no where and the user base isn't growing.  Oh, wait,  no.  That isn't the case, is it?

Yes the IDE could use improvement.  The legacy of the project is why it is at the point it is today.  For inexperienced users the simplified model of the Arduino IDE is actually a positive thing.

Given the way the environment was created, you can do all the things you suggest, yourself.  For example, I have Xcode and Eclipse both setup to compile code for Arduino.  Funny that even with these wonderful development environments, when I want to run a piece of code real quick, I still go back to the IDE...

This flexibility allows more advanced users to go past the simplified methods of the IDE and get an environment they want.  No matter what changes are made to the IDE, somebody will be unhappy.

At least with the model today, new users aren't overwhelmed with a thousand mouse clicks before blink can be running on a board.  That's very important.
Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com


I don't much like the Arduino IDE - I built Blinky with it, and then moved
to my standard editor/makefile setup.  But you can certainly use Eclipse,
you can probably use Netbeans, Geany is a good lightweight IDE ...
there's no shortage of alternatives.

And since the projects are all small,  I find re-building the libraries on
the slightest provocation pretty handy, particularly since I tend to
switch compilers pretty frequently.



OKAY - since you seem to know all the problems then maybe you should be the one to re-write it. And to offer it for free. As is, considerring what you paid for it you sound more like one of those whiny beggars that demands that everyone do what he wants while offering little to nothing in return.

Maybe you are not aware of how you come across, but if you showed a better attitude you would find that many things go better if you use some tact and manners when dealing with others.

As for me - The Arduino environment was made to be lean and easy to setup and use. I find that it is fairly fast and works very well with the Arduino (and other) package.  I have also done some work in AVR Studio 4 (5 and up use the Visual Studio interface and are just too slow...) when i needed a different environment to do some code in assembly. Perhaps you should try the AVR Studio C approach and then you won't have to deal with Arduino IDE.

Anyways - learn something about manners - Folks will find you easier to tolerate ...


Perhaps you should try the AVR Studio C approach and then you won't have to deal with Arduino IDE.

I agree with the above quote. If you love to sound like an expert it's easy to knock stuff that helps get beginners and non-programmers of the ground (like me). If you don't like Arduino just use the available tools out there you do like. It's obvious that the Arduino environment is improving and people want to listen or else this forum section wouldn't exist. So go ahead and rewrite the Arduino IDE and all my sketches too (and alot of other peoples) that probably wouldn't work in your new personalized version  :P
Craig Turner, blog: http://gampageek.blogspot.co.uk/ It helps with my learning if I write things down, esp. for others to follow (constructive comments welcomed to improve)


Hi, All!

Alright. That became quite a heated discussion, it seems. I suppose roddi came across differently than he intended; I think he is more of a coder type than the typical Arduino beginner - and thus he quickly became slightly frustrated with the IDE.

I just wanted to *humbly* voice my opinion that the Arduino IDE has a lot of potential in terms of future development (I believe that this is the modern way of putting it :-) ). I do see what most people said here: that the IDE is mostly addressed to the beginners - and non-hacker types. And it does do a great job in this - remembering how easy it has been for me to begin with Arduino in the last year (I had the board and IDE set up in maybe 20 minutes - in a break after lunch), this is amazing.

But there are lots of possible improvements. roddi has suggested technical improvements (on which I can not comment much). I would want to express a more simple suggestion: for me, it would be very helpful to simply implement cooperation with an external editor in a better way. The built-in editor does the trick for the beginning, but once the code gets larger (for me, it is already the case once i need to scroll), the IDE quickly starts to feel a bit long in the tooth... I now use an external editor in most such cases (much easier to set the font size, as just one example, or to use code folding, syntax highlighting, code completion...). Unfortunately, every time I have changed my code externally, and go back to Arduino for compiling/upload, the changes I made in the external editor are not reflected in the IDE. That could be much improved. I think that this would be a great improvement for many. (By the way, I use TextMate on my Mac as an external editor.)

Regarding the other suggestion roddi made: I recently became very confused about the best location of libraries. Since I started last year, I kept those in the Arduino package under /Applications on my Mac (in the "libraries" directory within that package). But in other places (at bildr.org) I had found that those should be stored under ~/Documents/Arduino (which is a location that goes against my feeling for how to organize files on my hard disk; to my feeling, anything in the /Documents directory of my home folder should only be hand-made documents that I have created (such as my own code), but *not* a library file I got from somewhere else; needless to say that this directory does not as of now exist on my hard disk :-D ). Anyway, the two locations suggested in different places do confuse me.
But the point of all of this is only to say that there is still a lot of improvements (and clarifications) that can be made to Arduino. And I look forward to see it evolve. And to discussing my two cents about the possible directions further. :-)

Best regards!


On the other hand, roddi made 3 posts on June 18, and none since ....

I don't have any issues with the IDE, I find it user friendly, and once the Tabs feature was pointed out to me, that made for a lot less scrolling in big programs.
I don't do any other programming than for Arduino's, so I don't miss all the stuff that's supposedly missing.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


Anyway, the two locations suggested in different places do confuse me.

Originally the IDE supported only storing library files in the arduino core library folder. The problem being that anytime you loaded a new version of the IDE only the arduino supplied library files would result, as you would have to manually transfer any user stored (self created or 3rd party supplied) library files into the 'new' IDE library folder. Somewhere around version 11 or 12 of the Arduino IDE they allowed one to create a optional library folder within the arduino user's application sketch folder location. That allowed the user library files to survive a updating to a newer IDE version.



The Arduino is not meant for the "engineer" or the "coder".  It was made so that they could use them just fine although the Arduino is meant for the "Beginner".  I'm studying to be an engineer and I have worked with may IDE's.  Arduino is a very nice user friendly, beginner friendly IDE to the simple hobbyist that just wants to dabble and such.

If you want to make a new IDE, go for it.  If you want to change it, go for it.  If you want to complain about it, keep it to yourself because that doesn't help anybody.
Accelerate to 88 miles per hour.


it would be very helpful to simply implement cooperation with an external editor in a better way.

Have you clicked the "use external editor" button in preferences?  It apparently causes the IDE to re-read the file(s) every time you do a "verify" or "upload" operation, and it prevents you from changing the code in the IDE window itself.  I find that it works unexpectedly well for such a simple hack; you do have to remember to "save" your work from the other editor before clicking the upload/verify button, but ... no editor knowledge required on the arduino side, no arduino knowledge on the editor side.  Brilliantly simple.

Go Up