<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- $Id$ -->
<html>
  <head>
    <title>Why Tcl?</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <? title ?>
    <table class="main">
	<tr>
	  <? navbar ?>
	  <td valign="top">

	    <h2>Why Tcl?</h2>

	    <p><b>Flexible</b>: Tcl lets you program in the way you
	      want.  For example, you can program in a style that fits
	      your needs, either quick-and-dirty, mixing up HTML and
	      Tcl script to create dynamic web pages fast, or, should
	      you require more organization, for a larger, complex site, Tcl
	      works very well with the 'three tier' model currently in
	      vogue and used by many java systems.
	      </p>
	      <p><b>Multi-Purpose</b>: Tcl can be used for the web,
		but also for a variety of other tasks.  It was designed
		as a general purpose "Tool Command Language", infact, to
		provide users with a language adept at performing a wide
		range of jobs, including system administration, rapid
		GUI creation with the Tk graphical toolkit, internet
		protocol glue, testing harnesses and so on...  This
		means you can learn one language and use it for many
		things!
	      </p>
	      <p><b>Wide Industry Use</b>: Tcl has a liberal Open
		Source license (BSD) which has helped spread it within
		the industry, both as a stand-alone product, as well as
		embedded within applications as an extension language.
		It is used by such industry front-runners as Cisco, AOL,
		CNET, and many others.
	      </p>
	      <p><b>Fast, Light</b>: Tcl is fast, having undergone
		major improvements in the past years.  System resources
		are also impacted lightly - Tcl takes up relatively
		small amounts of disk and memory space.</p>

	      <p><b>Easy</b>: A simple syntax, and lots of
		documentation, both in print and on the web, make Tcl
		an easy language to learn, both for the experienced
		software professional as well as for students, web
		authors, hobbyists and others, who find that with a
		little bit of learning, they can accomplish a great
		deal.</p>

	    <p><b>Existing Code</b>: There are thousands upon
		thousands of lines of existing code to be used, either
		as examples to be learned from, to be included
		directly in your code, or as extensions to perform a
		range of common tasks - image manipulation, email,
		XML, SOAP, HTTP, socket programming, etc...
	    </p>
	    <p align="center"><b>More <a href="tcl.rvt">Tcl Information</a></b></p>
	  </td>
	</tr>
    </table>
    <? powered ?>
  </body>
</html>
