Beside mbed online compiler and closed source Keil, What is the best open source IDE for Arm software developer ?
It really depends what type of Arm processor you're going to work with and whether you're more interested in the tools being available at zero cost, or actually open source. If you're a total beginner, a good place to start might be the Arduino IDE, since they have a board using an Microchip processor based on Arm Cortex-M3. This will be very easy to use and open source, but also limited.
Many of Arm's partners have tool suites specially designed for their own microcontrollers, though you'd have to check each to see which were open source.
As ilg mentions, you could use Eclipse. Our own DS-5 Development Studio is built on Eclipse and is available for free as DS-5 Community Edition (though this is not open source). The great thing about Eclipse is that you can install a whole bunch of plugins on top of the initial installation, so you could use DS-5 CE, plus GNU Arm Eclipse and anything else you find of interest.
There are lots of other open source tools for Arm. A basic list is available with a quick Google: List of Arm Cortex-M development tools - Wikipedia, the free encyclopedia
To address your question about which is best... it's personal choice really.
The free DS-5 Community Edition might be a great tool, but being intended to "accelerate the development of native (C/C++) embedded Linux and Android applications" might not be very useful for quanhu who mentions mbed online and Keil, so apparently looks for solutions to develop bare metal applications.
As a conclusion, under the Eclipse umbrella there are many integrated tools and even more separate plug-ins to support either Linux based embedded and/or bare metal applications development (GNU Arm Eclipse supports both, in 32 and 64-bits variants, but is intended mainly to bare metal Cortex-M applications).