Hello, GUI
In computing terms, GUI (pronounced as gooey, or Graphical User Interface) is used to denote a set of interfaces with computing systems that involves user-friendly images rather than boring text commands. GUI comes to the rescue of the numerous command-line interfaces that have always been coupled with a steep learning curve because learning and mastering commands requires a lot of effort due to their nonintuitive nature. Moreover, GUI layers make it easy for the end users to fulfill their needs without knowing much about the underlying implementation, which is unnecessary for them.
Every other application in the modern world is designed with interactive graphics to attract the end users. Simplicity and usability are the two main ingredients for a successful GUI system. The demanding feature of a GUI is to allow the user to concentrate on the task at hand. To achieve this, it must serve the interaction between the human and the computer, and make it no less than seamless and flowing. Therefore, learning to create GUIs will not only make you a successful developer, but it will also help in getting some revenue for yourself.
At a very basic level, a GUI is seen as a window (visibly noticeable or not) consisting of the following parts: controls, menu, layout, and interaction. A GUI is represented as a window on the screen and contains a number of different controls, as follows:
- Controls: These can, for example, be labels, buttons or text boxes.
- Menu: This is usually situated under the top frame of the GUI window and presents to the users some choices to control the application. The top frame can also have buttons to hide, resize, or destroy the windows, which are, again, controls.
- Layout: This is the way that the controls are positioned, which is very important in good GUI design.
- Interaction: This happens in the way of I/O devices, such as a mouse and keyboard.
Development of a GUI application revolves around defining and controlling these components, and designing the area of interaction is the most challenging part of all. The correct exploitation of events, listeners, and handlers will help in developing better GUI applications. Many frameworks have been developed to support GUI development, such as the Model-View-Controller framework that is used in many web-based applications. Using some of these frameworks can make the GUI programming easier and will come in handy for future implementations. A good user-interface design relates to the user, not to the system architecture.
Tip
Usually, GUIs are characterized by 2W's, namely WIMP and WYSIWYG. They are acronyms for Windows, Icons, Menus, Pointing devices (mouse, joystick, and so on) and What You See Is What You Get.