It depends on the type of microcontroller (core) and the manufacturer. Could you give some more details on your requirements/application (if possible)?
Yes. Keil is good for the embedded firmware. I was wondering about IDE for developing the friendly GUI for the end user on a desktop PC or notebook which is connected to the DAQ through cable or wireless
Visual Basic and Visual C++ are the best ones. Its good to see that Visual C++ has a plugin if installed can communicate directly with all Arduino boards.
MikroC is a good compiler. MikroElektronika has its own IDE built for microcontroller programming, debugging etc. There are PIC, ARM, AVR compilers. I think they also have compilers for Intel's chips. You could give it a try. The simulator that comes with the dev.env. is also pretty good for routine and program testing, however, when it comes to inputs and outputs id doesn't account for noise and other input and output related problems that occur in development.
First off all now a days no one is using any classical MCU like 8051. All we are using is nothing but SoC whether it belongs to 8051 core or MSP 430 core or ARM core. Hence there is no single answer. It is always recommended to use the toolchain usually referred by Si manufacturer e.g. for TI Chipset, CCS, CCE, IAR will be a good choice. Similrly for Freescale, CodeWarrior will be a good choice.Similarly Cygnal IDE, uVision IDE are good choices for 8051 based MCUs & its high-order derivatives from Silicon Laboratory. MPLAB is the best choice for PIC MCUs from Microchip.
Eclipse is free, cross-platform, open-source, industrial-strength and comes with extensible schema - it is, therefore, a natural and hard-to-beat choice. All my students at IIT Delhi and team members use it unless someone forces VisualStudio on them.
If you have a budget, Codewarrior, CodeComposerStudio(CCS) from TI and uVision from Keil are good choices.
On Linux, which we use almost the time, the choices are different - so we use Eclipse there.
arm-gnueabi-gcc with or w/o neon support from Montavista Linux, CodeSourcery are very good choices if you have budget and opt to develop on linux. Even msp430-gcc also works fine in linux. Cross-works also is a good tool availabl from rowley.
SDCC is a small device C compiler which is a good choice to use if you need RTOS support for MCUs under interest
I do a lot of small project computer interfacing mainly based on atmel avr-8 microcontroller. Atmel's USB interfacing is rather complex so I usually use a usb to serial chip, such as FTDI's series.
For the software Visual Basic 6 is hard to beat, You can easily drag and drop buttons onto a form, and access file writing, even add charts etc. " Visual Basic 6 : How To Program" by Deitel & Deitel can be purchased second hand and is a fantastic book to help you rapidly develop your application. VB6 has been around for so long that every trouble you can come across has probably already been encountered and answered on the net, so there is a wealth of information. However.. it is old, and I am not sure if you can get hold of a version (Microsoft has brought out newer versions, but I dont know how good they are, and are likely to be rather computer greedy.)
A free open source, visual basic-like program is now available called "Gambas" it is for Linux operating system, but can also be used under windows on something like "virtual box". Its a very nice, clean interface similar to VB6 but updated, with more functionality. It can be a little hard to find answers to problems you get when coding, as it is so new, but its a very nice package. Hats off to the guys that are developing it! Im trying to move more towards Gambas now, and it runs well on low spec PCs, though as a windows user Linux itself, is a bit of a learning curve! There is an online book "A beginner's Guide to Gambas" which gives a nice introduction to Gambas though actually the Dietel and Dietel is very handy to have about for how to process and manipulate strings for example.
Drop me a line if you need any help getting started with either of these, as the learning curve is always a bit steep at the start!