Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > f092ccd6b07b990b4541a9e0fa29e6c4 > files > 234

libfox1.0-devel-1.0.34-4mdk.ppc.rpm

<html>
<head>
<LINK REL="stylesheet" HREF="styles.css" TYPE="text/css">
<title>FOX-Toolkit</title>
<!-- HTML Copyright 2001 Paul Laufer -->
</head>

<body bgcolor=#ffffff link=#990033 vlink=#4a73ad alink=#ed004f text=#000000>

<!--header-->
<table align=center border=0 cellpadding=0 cellspacing=0 width=100% >
  <tr><td bgcolor=silver colspan=5 align=right height=50><img src=art/oul_grey.gif align=left valign=top width=8 height=8><img src=art/foxlogo.png valign=bottom alt="FOX Toolkit" height=50 width=500 border=0 ></td>
  	<td bgcolor=#557faa valign=top align=right><img src=art/our.gif width=8 height=8></td>
  </tr>
<!-- end header -->
  <tr>
    <td bgcolor=#557faa colspan=2 valign=top align=left>&nbsp;</td>
    <td bgcolor=#557faa colspan=3><font color=#ffffff size=+1><center>
<!-- Page Title -->
Platforms!
<!-- End Page Title -->
    </center></font></td>
    <td bgcolor=#557faa valign=top align=right>&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor=#557faa colspan=2>&nbsp;</td>
    <td bgcolor=#ffffff valign=top align=left><img src=art/iul.gif width=8 height=8></td>
    <td bgcolor=#ffffff>&nbsp;</td>
    <td bgcolor=#ffffff valign=top align=right><img src=art/iur.gif width=8 height=8></td>
    <td bgcolor=#557faa width=15>&nbsp;</td>
  </tr>
  <tr>
    <td width=8 bgcolor=#557faa>&nbsp;</td>
    <td valign=top bgcolor=#557faa link=#ffffff width=150>

<!-- start navbar content -->

	<a href=fox.html><font color=#ffffff>Home</font></a><br>
	<a href=news.html><font color=#ffffff>News</font></a><br>
	<a href=download.html><font color=#ffffff>Download</font></a><br>
	<a href=goals.html><font color=#ffffff>Goals & Approach</font></a><br>
	<a href=doc.html><font color=#ffffff>Documentation</font></a><br>
	<a href=faq.html><font color=#ffffff>FAQ</font></a><br>
	<a href=rex.html><font color=#ffffff>FXRex</font></a><br>
	<a href=screenshots.html><font color=#ffffff>Screenshots</font></a><br>
	<br>
	<a href=adie.html><font color=#ffffff>Adie</font></a><br>
	<a href=pathfinder.html><font color=#ffffff>PathFinder</font></a><br>
	<a href=calc.html><font color=#ffffff>FOX Calculator</font></a><br>
	<br>
	<a href=projects.html><font color=#ffffff>Projects</font></a><br>
	<br>
	<a href='http://fxpy.sourceforge.net'><font color=#ffffff>FXPy</font></a><br>
	<a href='http://fxruby.sourceforge.net'><font color=#ffffff>FXRuby</font></a><br>
	<a href='http://eiffelfox.sourceforge.net'><font color=#ffffff>EiffelFox</font></a><br>
        <a href='http://eevolved.com/foxhole/'><font color=#ffffff>The FOX Hole</font></a><br>
        <a href='http://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=FOX+FAQ'><font color=#ffffff>Japanese Docs</font></a><br>
	<br>
	<center>
	<a href="http://www.eff.org/br"><img SRC="art/freespeach.gif" border=0></a>
	<p>
	<a href="http://www.slashdot.org"><img SRC="art/slingerzbutton1.gif" border=0></a>
	</center>




<!-- end navbar content -->

    </td>
    <td bgcolor=#ffffff>&nbsp;</td>
    <td valign=top>

<!-- start main window content -->
<center><img src='art/foxstart.png'>
<BR><B>FOX is Platform Indepence</B>
</center>
<p>
<p>
<b>Goals</b>
<hr>
<FONT COLOR="#000000">Developing a single application for multiple platforms
is a difficult task.&nbsp; The most significant issue is the need for a
clean solution for developing Graphical User Interfaces [GUI's].&nbsp;&nbsp;
FOX aims to address this by providing a single GUI library that can run
on different computer hardware and operating system environments.&nbsp;
The benefits to application vendors and developers are clear:</FONT>
<BR>&nbsp;
<OL>
<LI>
<FONT COLOR="#000000"><B>Development effort to support multiple environments
is substantially reduced.</B>&nbsp; After development, your FOX based application
is only a compile away from running on other operating systems.&nbsp; When
multiple hardware and software combinations are required by customers operating
in a heterogeneous environment, using a single GUI system such as FOX is
clearly the most cost-effective method to achieve the goal.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Availability of your software on other platforms
will engender additional revenues.&nbsp;&nbsp;</B> Without the necessity
of additional development&nbsp; work, the cost of&nbsp; which would have
to be amortized over the number of sales, additional revenues can be engendered
by having your software be available on multiple hardware and software
environments.&nbsp; Software development is a costly undertaking; because
of this, software vendors typically limit the number of platforms to a
small subset of the platforms being used by <I>all</I> customers, effectively
leaving certain customers in the dark.&nbsp; FOX allows applications to
be developed on one platform, then simply recompile the application on
a number of other hardware/software systems.&nbsp; Because the cost of
doing so is negligible, this approach will be able to generate positive
cashflow even with low sales volumes.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Captive audience.</B>&nbsp; If the application
you're developing is available on all platforms, you may be able to create
a captive customer base on hardware/software systems where your competitor
is absent; you may in fact even be able to charge premium prices.&nbsp;
Using the additional revenues derived from these customers, your product
will be able to derive a steady addional revenue stream which will allow
you to compete more aggressively against your single-platform competitor.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Higher Quality.</B> For programmers, the benefits
of multi-platform development v.s. single platform development are the
additional confidence and code quality that compiling under different environments
will give.&nbsp; For example, I have compiled FOX on a number of different
systems, and different compilers will discover different types of code
bugs.&nbsp; By compiling on all these different systems, FOX has gotten
quite a bit better in the course of time.</FONT><BR>
<BR></LI>

<LI>
<FONT COLOR="#000000"><B>Control Your Destiny.</B>&nbsp; Programmers understand
it as a matter of course that they need to continually work to track the
changes in a system's API's.&nbsp; But what if the system vendor is also
your competitor?&nbsp; In such a case, you <B><I><U>will</U></I></B> loose,
sooner or later.&nbsp; The FOX GUI Library provides a platform-independent
escape hatch that relies only on core system facilities which can be expected
to be present on any modern operating system.</FONT></LI>
</OL>
<p>
<p>
<b>Approach</b>
<hr>
<FONT COLOR="#000000">FOX attains the goal of platform independence
by eliminating all&nbsp; system dependencies from its public interfaces.&nbsp;
In fact, a typical FOX application may not even need to include any system-specific
header files at all!&nbsp; By not including e.g. X-Windows header files,
applications can not even accidentally slip up and introduce platform dependencies.
This strategy is also carried out inside FOX itself.&nbsp; Thus, large
parts of FOX are in fact defined entirely in FOX itself.&nbsp; The only
dependencies are concentrated in a few select base classes where this couldn't
be avoided.</FONT>
<P><FONT COLOR="#000000">The following salient points highlight some fundamental
benefits of FOX <I>vis-a-vis</I> other purported platform independent toolkits:</FONT>
<BR>&nbsp;
<OL>
<LI>
<FONT COLOR="#000000"><B>Eliminate all platform specific header files</B>.&nbsp;
Applications should only include header files from FOX, and a few header
files for such basic system services as opening files etc.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Internal Layering. </B>FOX itself relies largely
on FOX base classes, and therefore a large fraction of FOX itself is platform
independent as well.</FONT></LI>

<BR>&nbsp;
<LI>
<B><FONT COLOR="#000000">Rely only on low-level system facilities.
</FONT></B><FONT COLOR="#000000">FOX
relies only on core system facilities, and does NOT wrap native GUI libraries
or toolkits.&nbsp; This has the following benefits:</FONT></LI>

<BR>&nbsp;
<UL>
<LI>
<FONT COLOR="#000000"><B>Identical behaviour.</B> The behaviour will be
close to identical on all systems, as the behaviour is completely controlled
by the FOX implementation, rather than some underlying library.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Identical looks. </B>FOX applications will look
the same no matter what system you're running it on.</FONT></LI>

<BR>&nbsp;
<LI>
<B><FONT COLOR="#000000">Ability to <I>subclass</I>.</FONT></B><FONT COLOR="#000000">&nbsp;
Because FOX is written from the ground up in C++, and is NOT a C++ wrapper
around some other legacy toolkit or library, FOX Controls may be subclassed
and extended by application programmers.&nbsp; Moreover, if these additions
can be done by calling upon FOX built-in facilities, those additions will
be platform independent also.</FONT></LI>

<BR>&nbsp;
<LI>
<B>Higer Quality.</B> It is a given in software development that those
facilities which are most frequently used are the ones which are most stable.&nbsp;
Thus, by using core system facilities instead of higher-level transient
API's, the impact of the underlying system's instability is minimized.&nbsp;
A chain is as strong as the weakest link, and while I can not control the
quality of the links, I can minimize the number of them.</LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Higher Speed.&nbsp;</B> Eliminating layers between
FOX and the underlying system not only increases the application's quality,
it will also make it faster, and reduce memory overhead.</FONT></LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>Go to the Bedrock.</B> FOX's core facilities needed
from the target system are things like mouse/keyboard event handling, and
basic graphics facilities such as drawing of lines and rectangles [and
some other system facilities].&nbsp; In most operating systems, these are
fairly mature API's and not subject to much change.&nbsp; If you want to
build a big building, you need to go down to the solid bedrock.&nbsp; This
is what FOX does.</FONT></LI>

<BR>&nbsp;</UL>

<LI>
<B>FOX is extensible.</B>&nbsp; The FOX library is designed to be open-ended
and extensible. What this means is that unlike other libraries which take
the approach of wrapping legacy GUI toolkits, FOX may be extended with
<I>Custom
Controls</I> and Widgets which will set your application apart from the
others.&nbsp; Building Custom Controls is extremely easy in FOX, as it
is essentially just a matter of C++ subclassing.</LI>

<BR>&nbsp;
<LI>
<FONT COLOR="#000000"><B>FOX is available under Library GNU Public License.
</B>Since
FOX is distributed in source form under LGPL, you have the ability to make
changes or extensions to FOX to suit your needs.&nbsp; Having FOX inspected
by 1000's of programmers all over the world will iron out any bugs it may
have very quickly.&nbsp; This process is already under way.</FONT></LI>
</OL>
<FONT COLOR="#000000">I care a great deal about software quality; I imagine,
so do you.&nbsp; In the course of my programming life, I have ran into
many situations where the bugs I needed to fix were not in my own code,
but in someone else's, and of course I didn't have the source.&nbsp; Thus,
the quality of my own software was limited by the quality of someone else's.&nbsp;
Problem is, the developers of the libraries and software I depend on are
frequently not motivated to make their software correct.</FONT>
<P><FONT COLOR="#000000">This has made me a firm believer in the <I>GPL</I>
or <I>Open Source</I> model of software development. FOX was started in
part because I didn't want to explain to our customers that the reason
X or Y didn't work was because of the broken software or libraries on their
machine.&nbsp; The only way one can create high-quality applications is
to bring as much of the underlying system under one's control as possible.&nbsp;
Hence the <I>Go to the Bedrock </I>philosophy.</FONT>
<P><FONT COLOR="#000000">FOX is not perfect.&nbsp; But as the source code
is available under LGPL,&nbsp; it has the advantage that its imperfections
can be addressed as soon as they are discovered.</FONT>
<BR>


<p>
<p>
<b>Why Windows?</b>
<hr>
Some people may argue that porting FOX to Windows ``helps'' Microsoft.&nbsp;
It doesn't.&nbsp; Porting FOX to Windows <I>does</I> however help <I>application
vendors</I>:- instead of subjugating to a proprietary lock-in GUI environment,
they can now ship their application on a large variety of platforms, like
LINUX, and this with little or no additional effort, and derive additional
revenues.
<P>In addition, being distributed under <a href="http://www.gnu.org">LGPL</a>,
it lowers costs, and does
not incur any license fees for distribution.&nbsp;&nbsp; Being distributed
under LGPL also has the concomittant benefit that a large number of people
may inspect the source code, and spot its inevitable deficiencies; thus,
more bugs are found and they are found more quickly.&nbsp; Remember, the
person which is the most motivated to fix a bug is the one bitten by it;
under the <a href="http://www.opensource.org">Open Source development model</a>,
this person can actually localize, and possibly fix the bug himself, and
<A HREF="mailto:foxgui-users@lists.sourceforge.net">contribute</A> those changes to the library.

<P>Finally, I believe application developers will find the FOX library
a more attractive alternative.&nbsp; For a software developer, the FOX
Library is far more easy to learn, and offers some unique benefits, such
as tying Widgets [Controls] together with little effort, being able to
subclass from existing Widgets to make custom ones, and last but not least
the ability to modify FOX's source code itself if necessary.&nbsp; FOX
represents what I consider to be the ideal GUI Library; I wrote FOX to
use it myself!
<P>
<!-- end main window content -->

    </td>
    <td bgcolor=#ffffff>&nbsp;</td>
    <td bgcolor=#557faa width=15>&nbsp;</td>
  </tr>
  <tr>
    <td colspan=2 bgcolor="#557faa" align=center>&nbsp;
     </td>
    <td bgcolor=#ffffff valign=bottom align=left><img src=art/ill.gif width=8 height=8></td>
    <td bgcolor=#ffffff>&nbsp;</td>
    <td bgcolor=#ffffff valign=bottom align=right><img src=art/ilr.gif width=8 height=8></td>
    <td bgcolor=#557faa width=15>&nbsp;</td>
  </tr>
  <tr>
    <td valign=bottom align=left bgcolor=#557faa><img src=art/oll.gif width=8 height=8></td>
    <td colspan=4 bgcolor=#557faa>&nbsp;</td>
    <td valign=bottom align=right bgcolor=#557faa><img src=art/olr.gif width=8 height=8></td>
  </tr>
</table>

<address>Copyright 1997-2002 <a href=mailto:jeroen@fox-toolkit.org>Jeroen van der Zijp</a></address>
<!-- Created: Mon Apr 10 11:20:32 CEST 2000 -->
<!-- hhmts start -->

<!-- hhmts end -->
</body>
</html>