103 lines
3.6 KiB
HTML
103 lines
3.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>The Linux Tcl and Tk HOWTO: Scripting Language: pros and cons</TITLE>
|
|
<LINK HREF="TclTk-HOWTO-7.html" REL=next>
|
|
<LINK HREF="TclTk-HOWTO-5.html" REL=previous>
|
|
<LINK HREF="TclTk-HOWTO.html#toc6" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="TclTk-HOWTO-7.html">Next</A>
|
|
<A HREF="TclTk-HOWTO-5.html">Previous</A>
|
|
<A HREF="TclTk-HOWTO.html#toc6">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s6">6. Scripting Language: pros and cons</A></H2>
|
|
|
|
<P>
|
|
<P>To understand the importance and the future of Tcl/Tk I strongly suggest
|
|
to point your web browser at the URL
|
|
<A HREF="http://www.scriptics.com/people/john.ousterhout/">www.scriptics .com/people/john.ousterhout/</A>
|
|
by
|
|
<A HREF="mailto:ouster@scriptics.com">John K. Ousterhout </A>. You
|
|
will read about the importance and the comparison between scripting (in langua
|
|
ges
|
|
such as Tcl) and system programming (in languages such as C and Java).
|
|
<P>To read a document about comparisons see
|
|
<A HREF="TclTk-HOWTO-8.html#prosandcons">the comparison discussion</A>.
|
|
<P>Here's a summary of the most important pros and cons about Tcl/Tk.
|
|
<H2><A NAME="ss6.1">6.1 Some of the most common complaints about Tcl</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<H3>Tcl is interpreted</H3>
|
|
|
|
<P>
|
|
<P>The data is primarily treated as strings, programs written in Tcl are slow.
|
|
Tcl 8.x attempts to address this by doing some degree of compilation as well
|
|
as permitting additional variable types.
|
|
<H3>Several characteristics are not intuitive</H3>
|
|
|
|
<P>
|
|
<P>Comments are commands rather than traditional comments, numbers beginning
|
|
with 0 are octal, proper use of quoting mechanisms, etc. These aspects are
|
|
covered in the various FAQs.
|
|
<H2><A NAME="ss6.2">6.2 Some of the most pros about Tcl</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<H3>It is a high-level scripting language</H3>
|
|
|
|
<P>
|
|
<P>You need to write a lot less code to get your job done, especially when
|
|
compared to Motif or Win32 applications. In general, the number of Line Of
|
|
Code (LOC) of a software project is one of the most important complexity index
|
|
es.
|
|
<P>
|
|
<H3>Tcl is free</H3>
|
|
|
|
<P>
|
|
<P>You can get the sources for free over the Internet from Scriptics Download
|
|
Page or from the FTP site for Tcl.
|
|
<A HREF="http://www.scriptics.com/software/download.html">The software c ore site</A>
|
|
includes the source code version, as well as binary versions for Windows and
|
|
Macintosh platforms; or, you can get Tcl on a number of CD-ROMs for a nominal
|
|
cost.
|
|
<P>Read about Tcl and Tk core free at
|
|
<A HREF="www.scriptics.com/about/news/qa.html">www.scriptics.com/about/n ews/qa.html</A> .
|
|
<H3>It runs on many platforms</H3>
|
|
|
|
<P>
|
|
<P>Versions exist for UNIX (Linux... of course), Windows and Macintosh. Except
|
|
for a few platform differences, your Tcl scripts will run the same way on all
|
|
systems.
|
|
<H3>It is interpreted</H3>
|
|
|
|
<P>
|
|
<P>You can execute your code directly, without compiling and linking (though
|
|
Tcl compilers are available).
|
|
<H3>It is extensible</H3>
|
|
|
|
<P>
|
|
<P>It's easy to add your own commands to extend the Tcl language. You can
|
|
write your commands in C or Tcl.
|
|
<H3>It is embeddable in your applications</H3>
|
|
|
|
<P>
|
|
<P>The Tcl interpreter is merely a set of C functions that you can call from
|
|
your code. This means you can use Tcl as an application language, much like
|
|
a macro language for a spreadsheet application.
|
|
<H3>Tcl/Tk is Year 2000 (Y2K) compliant</H3>
|
|
|
|
<P>
|
|
<P>Read what the creator of the Tcl and Tk core tells about this topic
|
|
<A HREF="http://www.scriptics.com/Y2K.html">www.scriptics.com/Y2K.html</A>
|
|
.
|
|
<P>
|
|
<HR>
|
|
<A HREF="TclTk-HOWTO-7.html">Next</A>
|
|
<A HREF="TclTk-HOWTO-5.html">Previous</A>
|
|
<A HREF="TclTk-HOWTO.html#toc6">Contents</A>
|
|
</BODY>
|
|
</HTML>
|