Platform-independent GUI Library
   HOME

TheInfoList



OR:

A PIGUI ( Platform Independent Graphical User Interface) package is a software library that a
programmer A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software. A programmer is someone who writes/creates ...
uses to produce GUI code for multiple computer platforms. The package presents
subroutine In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
s and/or objects (along with a programming approach) which are independent of the GUIs that the programmer is targeting. For software to qualify as PIGUI it must support several GUIs under at least two different operating systems (e.g. just supporting OPEN LOOK and X11 on two Unix boxes doesn't count). The package does not necessarily provide any additional portability features. Native look and feel is a desirable feature, but is not essential for PIGUIs.


Considerations

Using a PIGUI has limitations, such as the PIGUI only deals with the GUI aspects of the program so the programmer responsible for other portability issues, most PIGUIs slow the execution of the resulting code, and programmers are largely limited to the feature set provided by the PIGUI. Dependence on a PIGUI can lead to project difficulties since fewer people know how to code any specific PIGUI than do a platform-specific GUI, limiting the number of people who can give advanced help, and if the vendor goes out of business there may be no further support, including future OS enhancements, though availability of source code can ease but not eliminate this problem. Also,
bugs Bugs may refer to: * Plural of bug Arts, entertainment and media Fictional characters * Bugs Bunny, a character * Bugs Meany, a character in the ''Encyclopedia Brown'' books Films * ''Bugs'' (2003 film), a science-fiction-horror film * ''Bugs ...
in any package, including the PIGUI, filter down to production code.


Alternative approaches

Web browsers offer a convenient alternative for many applications. Web browsers utilize HTML as a presentation layer for applications hosted on a central server, and web browsers are available for pretty much every platform. However, some applications do not lend themselves well to the web
paradigm In science and philosophy, a paradigm () is a distinct set of concepts or thought patterns, including theories, research methods, postulates, and standards for what constitute legitimate contributions to a field. Etymology ''Paradigm'' comes f ...
, requiring a local application with GUI capabilities. Where such applications must support multiple platforms, PIGUI can be more appropriate. Instead of using a PIGUI, developers could partition their applications into GUI and non-GUI objects, and implement the GUI objects in the native API. Then, when porting, only the GUI objects need to be rewritten for the new platform. There are some software developers who recommend this course of action, as it produces a better fit on each platform and eliminates the overhead often associated with PIGUI toolkits.{{citation needed, date=March 2015 Obviously, this may require more effort in both the initial development and in ongoing maintenance (no single base of source code). It also means learning how to code for every target platform, which is not (usually) a trivial task, hence the market for PIGUI packages.


User interface approaches

Most, if not all, PIGUI packages take one of three approaches to providing platform independence. The two most common approaches are the `layered' and the `emulated' user interface but an up-and-coming approach is `API emulated' interface. Packages using a layered interface access native, third party, GUI-building toolkits to provide the look-and-feel compliance for each particular GUI. Layered user interfaces have the advantage that, since they depend on other products which concentrate on a single GUI, they have to provide less software (and, hence, are usually less expensive) than emulated interfaces. Layered interfaces are also more likely to get the native look-and-feel correct on all platforms. In an emulated user interface, the PIGUI's resultant code produces low-level calls and all the look-and-feel compliance is handled by the PIGUI software itself (e.g., for OpenWindows support, the software would NOT produce an XView program that must be compiled with the XView toolkit; the software would produce code that interfaces directly with X intrinsics). To provide an emulated user interface, a package provider has to develop a lot of extra code for look-and-feel support. Emulated user interfaces have the advantage that someone on a X11 workstation, for example, can see how the Macintosh-style UI will look (since the look-and-feel is part of the product). Emulated interfaces have the opportunity to provide a faster GUI than does a layered interface; in addition, it does not require purchase of (or learn how to use) other packages to build GUI software. A third approach to platform independence is emulating one of the supported target's APIs (usually, the Microsoft Windows API) to target other GUIs. With one of these products, one would program using the emulated API and the code would be (to the extent to which the product provides portability) portable to other GUIs.


Features

PIGUI packages are pretty similar in their basic functionality; they each provide subroutines or objects that allow the user to build windows, buttons (regular as well as radio buttons and check boxes), menus, and the like. Some areas of differentiation are: * support for the platforms needed, * the choice of implementation language, * availability of source code, * support for printers and other devices, * support for various character encoding schemes including Unicode, * capability to support draw-package-like features, * bitmap (and icon) support, * the
approach Approach may refer to: Aviation *Visual approach *Instrument approach *Final approach Music * ''Approach'' (album), by Von Hertzen Brothers * ''The Approach'', an album by I:Scintilla Other uses *Approach Beach, a gazetted beach in Ting Kau, Ho ...
to platform independence, * nifty high-level widgets, and * price (complete price including
royalties A royalty payment is a payment made by one party to another that owns a particular asset, for the right to ongoing use of that asset. Royalties are typically agreed upon as a percentage of gross or net revenues derived from the use of an asset o ...
and distribution charges),


See also

* List of PIGUI packages * Graphical user interface


External links


The old, outdated PIGUI FAQ





wyoGuide - tutorial on good cross-platform development
Computer libraries Cross-platform software