Source Page: http://pdqi.com/w/pw/pdqi/Main/SRED11
1. 240. Advancements
What technological advancements were you trying to achieve.
User software in Windows, Linux and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces (GUI).
A GUI is generally implemented by using a
(usually large)
development environment such as
Microsoft Windows or, on the Linux side, Gnome or KDE. This imports a large set of dependencies
that act to undermine stability, maintainability and portability of software.
In the area of Free Operating Systems Software (FOSS)
such as Linux, these dependencies
are proving to be crippling. This is because, unlike the Mac or Windows, Linux has no binary compatibility and
so GUI applications require pre-building for each individual distribution and/or release (of which there are hundreds).
Moreover, there is really no backward compatibiltiy, which
means Linux applications require frequent
rewrites due to evolutional changes in
KDE or Gnome.
Worst of all, virtually none of these
applications can be made to easily run on MS Windows, even though
that is what most computer users use.
To emphasize this point, one notes that of
the two most successful
FOSS applications Firefox and OpenOffice, neither uses KDE or Gnome.
Thus the goal of this project
is to develop an idealized GUI framework that enables software developers to escape this complexity and focus more on problems at hand.
To wit, this requires a
GUI implementation that:
- Reduces dependencies to a single program with some optional DLL's.
- Provides rapid GUI development using XML/XTL inputs.
- Separates GUI layout from style in a fashion akin to HTML/CSS.
- Adds fault tolerance by employing warnings rather than errors.
- Reduces the startup learning curve inherent with GUI environments.
2. 242. Obstacles
What technological obstacles did you need to overcome to achieve those advancements.
Tcl/Tk was selected for use in this implementation as it
provides a language with a GUI widget set, and has been included
with most Linux distributions since 1994.
However, Tcl/Tk suffers from
several long standing issues. Specifically:
- The Tcl language has almost no validation facilities.
- There is no clear modularization for Tcl applications.
- The Tk widgets are incomplete and difficult to use.
- A Tk application ends up more not less complex than, say, a compiled KDE one.
- Tcl/Tk requires a complex install, as does an application written in it.
Accordingly, the following obstacles had to be overcome:
- Providing validation and type-checking for the Tcl language.
- Enhancement and addition of widgets to meet requirements of sophisticated GUIs.
- Implement a GUI layout abstraction for reducing complexity.
- Develop a clear and simple Module application framework.
- Implement an installation-free executable/zip-archive hybrid.
Moreover, beyond simply providing a framework, the project must include working demonstrations that provide
a representative range of applications.
3. 244. Work
What work did you perform in the tax year to overcome those technological obstacles.
See http://pdqi.com/w/pw/pdqi/Main/Status11
4. 250. Knowledge
Describe the scientific knowledge that you were trying to advance.
GUI application development has become so difficult that many
software companies have abandoned it entirely in favor of HTML.
The advantage of the HTML application model is that it is stateless on the client side.
And initially this has proven a boon to developers since it greatly
simplifies the development and deployment problems. However,
as more and more
sophistication is demanded over time, stateful technologies such as AJAX are adopted,
which leads HTML development to become ever more complex
and intractable on the server side.
And due to this complexity,
HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
Thus the scientific knowledge being sought
in this project is a way
to reducing the complexity
associated with development of desktop GUI applications,
without compromising either their power or performance. To
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development, and to make the experience of developing
a GUI applications similar to that of developing in HTML.
Thus, for example, errors in stylistic elements of an application should simply
be treated as inconsequential warnings rather than application terminating events.
5. 252. Summary
Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.
The work in this year involved adding
a few new features, fixing bugs, finalizing the packaging and releasing
Wize. In addition, the following application was added:
© 2008 Peter MacDonald