Diff for /books/www/articles/xpfe_dhtml.html between versions 1.7 and 1.16

version 1.7, 2001/08/09 19:47:35 version 1.16, 2001/08/09 20:57:18
Line 7 Line 7
 <font size="+1"><b>XPFE vs. DHTML</b></font>  <font size="+1"><b>XPFE vs. DHTML</b></font>
   
 <p>'In the beginning, there were 3 front ends: Mac, Windows and Unix. Each took a suite of developers to maintain. Adding a new feature (even just a  <p>'In the beginning, there were 3 front ends: Mac, Windows and Unix. Each took a suite of developers to maintain. Adding a new feature (even just a
button)  required 3 engineers to waste at least a day (more often a week) slaving away until the feature was complete. This had to change.'button) required 3 engineers to waste at least a day (more often a week) slaving away until the feature was complete. This had to change.' 
   
<p>This is an explanation quote is posted on mozilla.org and describesing how the Netscape 4.x browsers required a different set of engineers to create<p>This <a href="http://mozilla.org/xpfe/ElevatorTouchyFeely.html">quote</a> is posted on mozilla.org and describes how the Netscape 4.x browsers
and maintain the code for the user interface code, even though the browser looked nearly identical on each different platform. version looked nearlyrequired a different set of engineers to create and maintain the code for the user interface, even though the browser looked nearly identical on each
identical.different supported platform.
<p>For a company n organization committed to creating an application that runs on a wide range of different systems platforms, this system of using<p>For a company committed to creating an application that runs on a wide range of different systems, using platform specific code was a big waste of
platform specific code was a huge investment and a big waste of time. XPFE, Mozilla's cross-platform front end, was designed to solve this problem bysotime. XPFE, Mozilla's cross-platform front end, was designed to solve this problem by enabling engineers to create one interface that would then work on
that enabling engineers would be able to create one interface that would then work on any all operating systems.any operating system.  
<p>This new technology started out as a time-saving technique and turned into one of Mozilla's most powerful innovations. When they started work on<p>This new technology started out as a time-saving technique and turned into one of Mozilla's most powerful innovations.  Mike Cornall, in <a
creating XPFE, Mozilla engineers were trying to create a more efficient process that would save them time and effort when they started work on XPFE, buthref="http://linuxtoday.com/news_story.php3?ltsn=2000-07-25-001-07-OP-SM-0036">an article</a> published on LinuxToday, summarizes the history of XPFE
this technology ended up having the unintended consequence of lowering the barriers to entry for application developers.well when he says: 'The application platform capabilities of Mozilla came about through a happy coincidence of Open Source development, good design, and
far-sighted developers who were paying attention.'
<p>Mike Cornall, in an article about Mozilla published on LinuxToday, summarizes the history of XPFE well when he says: 'The application platform
capabilities of Mozilla came about through a happy coincidence of Open Source development, good design, and far-sighted developers who were paying<p>Mozilla engineers were trying to create a more efficient process that would save them time and effort, but this technology ended up having the
attention.'unintended consequence of lowering the barriers to entry to application development.  To better understand this happy coincidence and why it can be so
 useful for developers it is necessary to take a closer look at what XPFE is made of.
 
 <p><b>Understanding XPFE</b>
 
 <p>The technologies that XPFE uses are all existing Web standards, such as <a href="http://www.w3.org/Style/CSS/">Cascading Style Sheets</a>, 
 <a href="http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM">JavaScript</a> and <a href="http://www.w3.org/XML/">XML</a> (the XML component is a new
 language called XUL, the XML-based User Interface Language).  In it's most simple form, XPFE can be thought of as simply the union of each of these 
 standards.
 
 <center>
 <p><img src="http://books.mozdev.org/screenshots/moz_0101.gif"><br>
 <font size="-1"><i>Figure 1: XPFE Framework</i></font>
 </center>
 
 <p>To understand how XPFE works, we can look at how the different components of it fit together.  JavaScript is used to create the functionality for a
 Mozilla-based application, Cascading Style Sheets are used for formatting the look and feel, and XUL is used for creating the application's structure.  
 Viewed together these three standards can be seen forming XPFE in Figure 1 above.
 
 <p>Instead of using platform-specific C code to create an application, XPFE uses these well understood Web standards that are by design inherently
 platform independent.  Since the framework of XPFE is inherently platform independent, so are the applications that are created with it.  Since the
 framework is also made up of tools that are used to create Web pages, anyone familiar with creating a Web page can use XPFE to create a cross-platform
 application.
 
 <p>Although the actual creation of Mozilla-based applications can be much more complicated than building a Web page, XPFE allows developers to create
 applications in the same way they would create a Web page.  Or to put it another way, the application is now a Web page.  Gecko, the rendering engine
 that Mozilla uses to draw a Web page in the browser, even draws the Mozilla application on the desktop.
   
 <hr>  <hr>
   
<p>'In the beginning, there were 3 front ends: Mac, Windows and Unix.  Each took a suite of developers to maintain. Adding a new feature (even just a<p>/*** extra content
button) required 3 engineers to waste at least a day (more often a week) slaving away until the feature was complete.  This had to change.' This is an <a 
href="http://www.mozilla.org/xpfe/ElevatorTouchyFeely.html">explanation posted</a> on mozilla.org describing how the Netscape 4.x browsers required a 
different set of engineers to create and maintain the interface code for Netscape on each different platform, even though each version looked nearly 
identical. 
 
<p>For an organization committed to creating an application that runs on a range of <a href="http://www.mozilla.org/ports/">different platforms</a> this 
system of using platform specific code was a huge investment and a big waste of time.  XPFE, Mozilla's cross-platform front end, was designed to fix this 
by allowing engineers to be able to create one interface that would then work on any operating system.  This new technology started out as a time-saving 
technique and then turned into one of Mozilla's most powerful innovations. 
 
<p>Mozilla engineers were trying to create a more efficient process that would save them time and effort when they started work on XPFE, but this 
technology ended up having the unintended consequence of lowering the barriers to entry for application developers.  Mike Cornall, in <a 
href="http://linuxtoday.com/news_story.php3?ltsn=2000-07-25-001-07-OP-SM-0036">an article</a> about Mozilla published on LinuxToday, summarizes the 
history of XPFE well when he says: 'The application platform capabilities of Mozilla came about through a happy coincidence of Open Source development, 
good design, and far-sighted developers who were paying attention.' 
 
<p>All browsers allow people using any type of computer to access applications on the Web, such as Yahoo! Mail, Amazon and Ebay. Mozilla is simply 
building on this idea.  Using new technologies in conjunction with existing Web standards Mozilla enables the creation of more powerful applications, so 
instead of using Opera, Netscape 4.x or Internet Explorer to access a Web page you can use a full-featured application with Mozilla. 
   
<p><b>Understanding XPFE</b><p>Mozilla itself certainly doesn't distinguish between a Web page and an XPFE application.
   
<p>The technologies that XPFE uses are all existing Web standards, such as Cascading Style Sheets, JavaScript and XML (the XML component is a new<p>Since well understood Web standards are being used to create applications instead of platform-specific C code, a whole new group of people now have the
language called XUL, the XML-based User Interface Language).  Since well understood Web standards are being used to create applications instead ofability to create their own applications using Mozilla.
platform-specific C code, a whole new group of people now have the ability to create their own applications using Mozilla. 
 
<p>In the sense that XPFE uses some of the same standards that are used to create Web pages, Mozilla-based applications can even be thought of as Web 
pages.  Gecko, the HTML rendering engine that Mozilla uses, also draws all XPFE content, so a Web page and an application created with XPFE are on one 
level treated the same way by Mozilla itself. 
   
 <p>Web developers and designers who use Mozilla are naturally attracted to the fact that they can create applications using the same skills and  <p>Web developers and designers who use Mozilla are naturally attracted to the fact that they can create applications using the same skills and
 techniques that they used to create Web pages in the past.  The specifics involved with creating Mozilla applications are different but should seem very  techniques that they used to create Web pages in the past.  The specifics involved with creating Mozilla applications are different but should seem very
Line 68  just create a skin for an application.   Line 70  just create a skin for an application.  
 href="http://www.netscape.com/themes/">different themes</a> for their browser suite, but the browser suite itself is also created out of these same  href="http://www.netscape.com/themes/">different themes</a> for their browser suite, but the browser suite itself is also created out of these same
 technologies.  technologies.
   
<center><p>***/
<p><img src="http://books.mozdev.org/screenshots/moz_0101.gif"><br> 
<font size="-1"><i>Figure 1: XPFE Framework</i></font> 
</center> 
 
<p>To understand all of the capabilities of XPFE, we can look at how the different components of it fit together.  JavaScript is used to create the 
functionality for a Mozilla-based application, Cascading Style Sheets are used for formatting the look and feel, and XUL is used for creating the 
application's structure.  Viewed together these three standards can be seen forming the triangle in Figure 1 above. 
   
 <p><b>Comparing XPFE and DHTML</b>  <p><b>Comparing XPFE and DHTML</b>
   
Line 147  ActiveState's <a href="http://www.active Line 142  ActiveState's <a href="http://www.active
 href="http://www.hacksrus.com/~ginda/chatzilla/">ChatZilla</a> IRC client, and Zope's <a href="http://www.zope.org/Resources/Mozilla/">Mozilla  href="http://www.hacksrus.com/~ginda/chatzilla/">ChatZilla</a> IRC client, and Zope's <a href="http://www.zope.org/Resources/Mozilla/">Mozilla
 Initiative</a>.  Initiative</a>.
   
   <br><br>
   
   <p><i>Thanks to Julia Kleyman for creating the illustrations used in this article.</i>
   
 </body>  </body>
 </html>  </html>
   

Removed from v.1.7  
changed lines
  Added in v.1.16


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>