The ESP8266, wow, I'm impressed, such a cool LITTLE device. 32-bit processor, lots of RAM, lots of storage, WIFI, serial port, and 3.3V.
I've managed to get a couple of the Arduino demos working with it, it's not what you think, Arudino 1.6+ has support for Additional boards other than Arduino branded processors.
Follow these directions to get ESP8266 environment setup for Arduino. This even worked with Windows without any hacking.
Another awesome tool is ESP8266 Explorer, which is very helpful to debug with. I used this to get the version of my ESP8266 before I upgrade.
ESP8266 Board Image
C or C++ are not the only languages that you can program these devices with. https://github.com/nodemcu/nodemcu-firmware is a firmware that is programmed via Lua 5.1.4. There are also a MicroPython, but I haven't read much about it.
One language that I really want to get working with the ESP8266 is Rust, but the missing piece is the lack of LLVM support for it.
I was hoping that you could go from Rust -> LLVM-IR -> C -> ESP8266 but AFAIK this isn't possible yet because the LLVM-IR that Rust generates is slightly different than what LLVM native supports. Hopefully soon this will be resolved.