A framework is used to share work so that each of us doesn't have to be an expert in everything.
Also it means that each of us doesn't to do all the work. In fact, if you're using hardware that is already defined and documented, then there is very little grunt work needed. The main thing that is needed to write is the controller code for a robot or IoT device.
When I started in robotics most of us wrote our own code, using sample code from datasheets and so forth. But our robots didn't do as much as they do now. For example, using ROS (a much more complex framework) one gets a lot of things with the framework, such as SLAM mapping and a lot of hardware definitions. I think that Gobot is a nice middle ground. It's relatively easy to understand, and yet powerful enough for me to write a robot in.
Currently the Go code only runs on devices that are powerful enough to run it. This means Linux devices (Raspberry Pi's work, as do PC-type Linux boxes like my laptop), or Windows boxes, or even Macintoshes.. There are some projects to put Go on the Arduino. As it is now, to use Gobot on the Arduino, the Gobot code runs on the larger computer which communicates with the Arduino with the Arduino Adapter. A piece of code on the Arduino will use the Firmata protocol to communicate with the main computer.
There is a lot of hardware that is already defined.
If you wish to contribute code to the project, there are
guidelines.
Have fun!