This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Eclipse - Kill it until its dead!

Just in case no one has ever given any feedback WRT Eclipse, Id like to be the first. My experience is using it with all the features for a NRF51822 project, and it kind of works but is simply not worth using (unless your forced to as in my current situation).

Id like to mention just how absolutely terrible Eclipse is (in general). Completely unintuitive, painful to do even the most simplest of tasks, quirky and generally stress inducing:

  • The general IDE look and feel, sometimes you need to wait-click-wait because of the obvious inefficiencies underneath. The layout also takes up so much screen space just to have textured boxes... TRACE32 is a good example of how to neatly show the maximum information, Eclipse is awful!
  • Consoles - Ahhhhh right so you click and select....good to know as I was busy reading when it just went off somewhere! Why not just have more tabs!!! Its obvious then.
  • Copying similar test projects end in hacking it together as copy makes a copy where parts can only be edited in XML project file. So you end up exporting settings and modifying them then re importing and editing the rest... wasting time!
  • Linking to existing common related source files without copying the actual files. What a ball ache that is. You can do it via import - general - filesystem and edit the advanced settings but Im still not sure that it actually did it correctly as I had issues and removed them all.
  • Emsys....Register values???... Oh double click!!!!! Well bloody well say that or provide a check box column labelled 'monitor'. RO column is also wrong as they are writable registers!
  • Perspectives are so clunky, switching is just not quick enough. I realise that this is becuase hardware is being polled but its so much slower than many of the alternative IDE that also use Segger, Lauterbach and even a wiggler!!! God help anyone using a wiggler with Eclipse...that would be like trying to paint the Mona Lisa without hands.
  • Parts of the IDE dont redraw correctly in some circumstances so you left with white patches. Its OK though becuase if you move the windows about they go... great use of time.
  • Did I mention its slow! On a 3.2GHz processor with 16GB RAM!

Obviously the annoyance isnt really directly at Nordic, more their use of it (and a growing number of IC providers that ship it as a viable development platform).

Maybe its me.. but Ive used TI CCS <4 for DSP development for years but TI heavily modified it so it worked well. The (TI CCS) modern version is modified enough not to cause annoyance. Keil, IAR, Microchip (Old)... even Netbeans.... never had a problem. Even Lauterbach which required learning their scripting language was no issue compared to frustration of Eclipse. I mostly use Notepad++ and makefiles but need a debugger occasionally and the client doesnt want to pay for any professional tools....

feel better now...

  • " It left me feeling like I was alone in my dissenting opinion. " - I asked around fellow freelancers and it was 50/50. Some said its not that bad while others said they hated it with a passion.

  • isnt CooCox an Eclipse-based IDE?

    I use notepad and plain make, but would like to use a more effective IDE. For debug using Eclipse-with-GCC, sometimes it hangs... but for that price its acceptable. imho.

    some time back I have tried IAR with 8081... the IDE feels kind-of archaic, eclipse is way better. (just my opinion).

    some time in the future i'm looking forward to check the keil out :-) heard lots of nice feedbacks.

    just my few cents.

  • There's a rumor the JetBrains people will add C/C++ support this year. I use IntelliJ for Scala development, and it's definitely better than Eclipse (to your point about getting what you pay for).

    Sublime Text is an excellent Notepad++ and lots of people are making plugins for it. Here's one I don't have the time to try out: github.com/.../SublimeGDB

    I'm starting to wire my brain for Eclipse's idiosyncrasies, so I fear I may end up settling. If I could just get it to find my include files reliably for the code inspector, I might not hate it so much.

  • And suddenly I felt completely alone...

    I have pretty good success with Eclipse - far greater than with Keil, which is actually the only alternative that I've used - so I might be biased :-)

    I agree that Eclipse is a pain to figure and get up and running, but when you are there it begins to shine, though it's not near the quality of Visual Studio or similar dedicated and modern IDE's.

    Keil is easy to get up and running if you just care for C99. If you want to go anywhere else, it is much harder than Eclipse, and you will need to have an open line to their support. Adding a file to Keil is actually even more unintuitive than with Eclipse, and Keil is definately not for people that prefers C++. Their C++ implementation is painful, and no matter how widespread and cross compatible the sources are, it will always find something to complain about. I've also tried to use Keil with GCC but the support is pretty incomplete when it comes to flashing and debugging. Besides you also have to pay (a lot) for it...

    There are also many things I really dislike about Eclipse CDT as well, namely the fact that it can start multiple Debug sessions and that these are not tied to the project. The project configuration is also a little special, and it's not the most intuitive when it comes to setup. But I got everything working, including code inspection and indexing(Intellisense), special linker maps with an NVM area, GC of unused code and a lot of other useful small things that makes my job a lot easier.

    I also use C++ to make my code readable, reusable and easier to maintain, and I'd really love if Nordic would do the same. It would make their examples a lot cleaner and easier to understand, and at the same time a lot more maintainable. The C++ RTL is taking up 10-20K in my case, which I think most projects can afford. I've wrapped most features of the SD, and I'm able to add custom modules and services to the stack in the matter of minutes. I only need to override a few methods of the base module to work with the stack events, timer events, characteristics read/writes/notifications and so on. By encapsulating all the basic functionality in abstract classes, all my application code is a lot easier to maintain, as it's separated into subclasses of the basic functionality.

    But using C++ currently has a downside in that Nordic are not using dynamic heap allocations, and as the RAM resources are getting more and more sparse with each release, it makes a lot more pressure on my code (well, it probably goes for C projects as well). Nordic libraries and examples has almost everything pre-allocated, which you could argue is the "fast, stable and predictable" way - but you can have your C++ code pre-allocate everything you need on the dynamic heap as well. Anyway, most things don't go out of scope in these small applications, but when you are working with sparse resources, it's nice when you can reuse them. Like if we could limit the p_storage library RAM usage, as it just need its write buffers when the application is disconnecting.

    I'm not a C++ guru or even close, but I've worked with object oriented design for the past 20 years, and for me getting back to straight procedural C is probably similar to having the Nordic guys go back and code their SD and examples in assembly language. It's not pretty, it's not clean - but it's expensive and difficult to work with ;-)

    Unfortunately I don't have time at the moment to release my work and Eclipse findings in public quality, as the only separation between my Nordic library abstraction code and my secret application code is that it uses different namespaces and are located in their own directories within the same project. But I'd like to release it some time.

    For other IDE's I would probably go for a VS plugin, as this is my native IDE: http://visualgdb.com/ - don't know it, but I might take a look one of these days.

  • FormerMember
    0 FormerMember

    I guess everyone has their own preference. At one point of time I also was pulling my hair out to get Eclipse to work as intended. Now I prefer Eclipse over Notepad++/Sublime alternatives because of the following reasons in the descending order of usefulness:

    • Being able to debug. Step by step debugging is possible with break points. Get to know exactly what's happening. Life saver.
    • Hovering over a function/variable/declaration to see its code/value etc. Also one can go to the declaration by pressing F3. Very useful. Otherwise one will have to use grep in command line which is cumbersome.
    • Availability of plugins. Two useful ones are Egit for version control and Eclox for documentation.

    Yes, it can be quite painful for setting up eclipse to work smoothly, just get out of the way and let you code. But once over this threshold it can be quite pleasant. One way that Nordic Semi can make this process easier is to archive eclipse projects, so that the settings of the project can be saved and importing them can be easier. Updating the nAN29 application note and making a video will be nice. Another more difficult way is to release their own IDE based on eclipse and GCC such as LPCExpresso for NXP based MCUs. Sharing archived projects among the people in the community is also a pain because of the SDK license. This prevents sharing of even MCU startup and abstraction files, which is a pity.

Related