Main /
SRED 11
Search:  


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:

Slidera presentation program.

© 2008 Peter MacDonald

Page last modified on November 08, 2011, at 02:18 PM