Tcl/Tk: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
[[Image:TclLogo1.gif|right]] | |||
Scripting language originally called '''Tool Command Language''' that unlike most other such languages is maintained and controlled by a single company that has a core version that is open source and sell more advanced versions as closed source commercial software. Originally intended as an "embedded language" that was designed to be linked into compiled programs and used as an internal scripting and extensions language but has over time grown into a toolkit more suitable to build standalone applications with. Note that the usage of the term "embedded language" was correct at the time but the use of the term has changed and these days it is used for languages used/designed for embedded applications. | Scripting language originally called '''Tool Command Language''' that unlike most other such languages is maintained and controlled by a single company that has a core version that is open source and sell more advanced versions as closed source commercial software. Originally intended as an "embedded language" that was designed to be linked into compiled programs and used as an internal scripting and extensions language but has over time grown into a toolkit more suitable to build standalone applications with. Note that the usage of the term "embedded language" was correct at the time but the use of the term has changed and these days it is used for languages used/designed for embedded applications. | ||
The convention is to call it Tcl rather than TCL since its name is now considered to be Tcl and not an acronym for Tool Command Language. Development of the language and toolkit was extremely rapid in the 1990's but has slowed down considerably in the last 15 years. | The convention is to call it Tcl rather than TCL since its name is now considered to be Tcl and not an acronym for Tool Command Language. Development of the language and toolkit was extremely rapid in the 1990's but has slowed down considerably in the last 15 years. | ||
Over time Tcl has grown somewhat [[REXX]] like in structure although the syntax is completely different, this has meant that the language has never been as popular on OS/2 as on some other system as there has been little incentive to use it over the built in REXX interpreter, the main advantage of the Tcl/Tk system on OS/2 | Over time Tcl has grown somewhat [[REXX]] like in structure although the syntax is completely different, this has meant that the language has never been as popular on OS/2 as on some other system as there has been little incentive to use it over the built in REXX interpreter, the main advantage of the Tcl/Tk system on OS/2 has been the Tk widget toolkit and portability on systems where REXX is not common. | ||
==Tk== | |||
Platform independent graphics library and engine, although perhaps better described as a [[widget]] toolkit. Although maintained by the same company as Tcl, Tk has been modified for use with sundry other languages including [[Perl]], [[Python]] and [[REXX]]. | Platform independent graphics library and engine, although perhaps better described as a [[widget]] toolkit. Although maintained by the same company as Tcl, Tk has been modified for use with sundry other languages including [[Perl]], [[Python]] and [[REXX]]. | ||
==A list of OS/2 ports of Tcl== | ==A list of OS/2 ports of Tcl== | ||
* [[PM Tcl/Tk]] - Open source - Discontinued | * [[PM Tcl/Tk]] - Open source - Discontinued | ||
* [[REXX/Tk]] - Open | * [[REXX/Tk]] - Open source - Discontinued - A port of Tk adapted for use with the REXX scripting language. | ||
===Foreign libraries with Tcl bindings=== | |||
* [[LibcURL]] - Internet URL (WWW, FTP, etc) access - Open Source - Current | * [[LibcURL]] - Internet URL (WWW, FTP, etc) access - Open Source - Current | ||
* [[Libxml2]] - [[XML]] parser - Open source - Current | * [[Libxml2]] - [[XML]] parser - Open source - Current | ||
* [[Libxslt]] - [[XSLT]] parser - Open source - Current | * [[Libxslt]] - [[XSLT]] parser - Open source - Current | ||
===Tcl related programmer's utilities=== | |||
* [[Exuberant ctags]] - Creates index files out of Tcl source files - Open source - Current | * [[Exuberant ctags]] - Creates index files out of Tcl source files - Open source - Current | ||
* [http://tcljava.sourceforge.net/docs/website/index.html Tcl Blend] - Allows writing Tcl extencions in [[Java]] - Open source - Discontinued | * [http://tcljava.sourceforge.net/docs/website/index.html Tcl Blend] - Allows writing Tcl extencions in [[Java]] - Open source - Discontinued | ||
===Applications with a Tcl programming interface=== | |||
* [[PostgreSQL]] - SQL relational database system - Open source - Current | * [[PostgreSQL]] - SQL relational database system - Open source - Current | ||
===OS/2 text & programmers editors with Tcl/Tk support=== | |||
* [[Boxer]] - Contributed, requires a separate download | * [[Boxer]] - Contributed, requires a separate download | ||
* [[Elvis]] - Tcl syntax support included by default - Open source - Current | * [[Elvis]] - Tcl syntax support included by default - Open source - Current | ||
* [[jEdit]] - Java based editor - Tcl and TK syntax highlighting built in - Current | * [[jEdit]] - Java based editor - Tcl and TK syntax highlighting built in - Current | ||
* [[NEdit]] - XFree86 - Autoindent, autocomplete and syntax highlighting - Open source - Discontinued | * [[NEdit]] - XFree86 - Autoindent, autocomplete and syntax highlighting - Open source - Discontinued | ||
==A list of DOS ports of Tcl== | ==A list of DOS ports of Tcl== | ||
* | * MSTCL - port of Tcl 7.3, Tk 4.0 | ||
* TinyTcl | |||
* [[Boxer]] - Contributed, requires a separate download | |||
===DOS text & programmers editors with Tcl/Tk support=== | |||
* [[Boxer]] - Contributed, requires a separate download | |||
* [[Elvis]] - Tcl syntax support included by default - Open source - Current | * [[Elvis]] - Tcl syntax support included by default - Open source - Current | ||
==A list of Tcl ports run under WinOS/2== | ==A list of Tcl ports run under WinOS/2== | ||
* Last known version [http://tcl.activestate.com/ftp/tcl8_0/tcl80p2.exe Tcl8.0.2] or 7.6.2 | * Last known version [http://tcl.activestate.com/ftp/tcl8_0/tcl80p2.exe Tcl8.0.2] or 7.6.2 | ||
: Requires [[Win32s]] | : Requires [[Win32s]] | ||
==A list of Tcl & Tk implementations that run under Java== | ==A list of Tcl & Tk implementations that run under Java== | ||
* [http://www.hecl.org/ HECL] - Not ment to be 100% compatible but close enough for porting - Open source - Discontinued | * [http://www.hecl.org/ HECL] - Not ment to be 100% compatible but close enough for porting - Open source - Discontinued | ||
Line 45: | Line 48: | ||
==Publications== | ==Publications== | ||
* John K. Ousterhout: ''Tcl and the Tk Toolkit'' - Addison Wesley 2006, ISBN 978-0-321-33633-0 | |||
===Related articles=== | |||
* [http://www.mathematik.uni-ulm.de/sai/ss96/uxdb2/comparison.html Comparisons of Tcl with other systems] - Mostly old USENET postings | * [http://www.mathematik.uni-ulm.de/sai/ss96/uxdb2/comparison.html Comparisons of Tcl with other systems] - Mostly old USENET postings | ||
Line 58: | Line 61: | ||
* [http://wiki.tcl.tk/1215 Tcl on Java Wiki] | * [http://wiki.tcl.tk/1215 Tcl on Java Wiki] | ||
===USENET=== | |||
* [news:comp.lang.tcl comp.lang.tcl] - Low volume group - Go to the [https://groups.google.com/forum/#!forum/comp.lang.tcl Google groups version] if your ISP does not offer USENET access or you are in any other way newsgroup challenged. | * [news:comp.lang.tcl comp.lang.tcl] - Low volume group - Go to the [https://groups.google.com/forum/#!forum/comp.lang.tcl Google groups version] if your ISP does not offer USENET access or you are in any other way newsgroup challenged. | ||
====The Tcl Wars==== | ====The Tcl Wars==== | ||
This was in its day a rather infamous flame war initiated by Richard Stallman of the Free Software Foundation who fired a somewhat incoherent rant on comp.lang.tcl and a few other related newsgroup, telling people they should not be using Tcl. It turned out this was much like the famous Linux/Minix "Microkernel war" instigated by Linus Torvalds, primarily a rather cheap way of getting publicity for ones own project by attacking what was perceived to be the most popular freeware product at the time. | This was in its day a rather infamous flame war initiated by Richard Stallman of the Free Software Foundation who fired a somewhat incoherent rant on comp.lang.tcl and a few other related newsgroup, telling people they should not be using Tcl. It turned out this was much like the famous Linux/Minix "Microkernel war" instigated by Linus Torvalds, primarily a rather cheap way of getting publicity for ones own project by attacking what was perceived to be the most popular freeware product at the time. | ||
Line 67: | Line 71: | ||
There was a second "Tcl War" a couple of years later, when a post attributed to Richard Stallman was posted in the same newsgroup in a somewhat conciliatory tone. | There was a second "Tcl War" a couple of years later, when a post attributed to Richard Stallman was posted in the same newsgroup in a somewhat conciliatory tone. | ||
[[Category:Programming Languages]] [[Category:Tcl]] | [[Category:Programming Languages]] [[Category:Tcl]] |
Revision as of 15:13, 20 October 2016

Scripting language originally called Tool Command Language that unlike most other such languages is maintained and controlled by a single company that has a core version that is open source and sell more advanced versions as closed source commercial software. Originally intended as an "embedded language" that was designed to be linked into compiled programs and used as an internal scripting and extensions language but has over time grown into a toolkit more suitable to build standalone applications with. Note that the usage of the term "embedded language" was correct at the time but the use of the term has changed and these days it is used for languages used/designed for embedded applications.
The convention is to call it Tcl rather than TCL since its name is now considered to be Tcl and not an acronym for Tool Command Language. Development of the language and toolkit was extremely rapid in the 1990's but has slowed down considerably in the last 15 years.
Over time Tcl has grown somewhat REXX like in structure although the syntax is completely different, this has meant that the language has never been as popular on OS/2 as on some other system as there has been little incentive to use it over the built in REXX interpreter, the main advantage of the Tcl/Tk system on OS/2 has been the Tk widget toolkit and portability on systems where REXX is not common.
Tk
Platform independent graphics library and engine, although perhaps better described as a widget toolkit. Although maintained by the same company as Tcl, Tk has been modified for use with sundry other languages including Perl, Python and REXX.
A list of OS/2 ports of Tcl
- PM Tcl/Tk - Open source - Discontinued
- REXX/Tk - Open source - Discontinued - A port of Tk adapted for use with the REXX scripting language.
Foreign libraries with Tcl bindings
- LibcURL - Internet URL (WWW, FTP, etc) access - Open Source - Current
- Libxml2 - XML parser - Open source - Current
- Libxslt - XSLT parser - Open source - Current
- Exuberant ctags - Creates index files out of Tcl source files - Open source - Current
- Tcl Blend - Allows writing Tcl extencions in Java - Open source - Discontinued
Applications with a Tcl programming interface
- PostgreSQL - SQL relational database system - Open source - Current
OS/2 text & programmers editors with Tcl/Tk support
- Boxer - Contributed, requires a separate download
- Elvis - Tcl syntax support included by default - Open source - Current
- jEdit - Java based editor - Tcl and TK syntax highlighting built in - Current
- NEdit - XFree86 - Autoindent, autocomplete and syntax highlighting - Open source - Discontinued
A list of DOS ports of Tcl
- MSTCL - port of Tcl 7.3, Tk 4.0
- TinyTcl
DOS text & programmers editors with Tcl/Tk support
- Boxer - Contributed, requires a separate download
- Elvis - Tcl syntax support included by default - Open source - Current
A list of Tcl ports run under WinOS/2
- Last known version Tcl8.0.2 or 7.6.2
- Requires Win32s
A list of Tcl & Tk implementations that run under Java
- HECL - Not ment to be 100% compatible but close enough for porting - Open source - Discontinued
- JACL aka Tcl/Java - Open source - Discontinued
- jTcl - Open source - Current
- SWANK - Tk reimplemented in SWING, allows porting Tk based software to Java - Open source - Discontinued
Publications
- John K. Ousterhout: Tcl and the Tk Toolkit - Addison Wesley 2006, ISBN 978-0-321-33633-0
Related articles
- Comparisons of Tcl with other systems - Mostly old USENET postings
Tutorials and other learning material
Links
- Active State's Tcl page - Info from the company behind Tcl
- http://www.tcl.tk
- Hobbes TCl directory
- Tcl on Java Wiki
USENET
- comp.lang.tcl - Low volume group - Go to the Google groups version if your ISP does not offer USENET access or you are in any other way newsgroup challenged.
The Tcl Wars
This was in its day a rather infamous flame war initiated by Richard Stallman of the Free Software Foundation who fired a somewhat incoherent rant on comp.lang.tcl and a few other related newsgroup, telling people they should not be using Tcl. It turned out this was much like the famous Linux/Minix "Microkernel war" instigated by Linus Torvalds, primarily a rather cheap way of getting publicity for ones own project by attacking what was perceived to be the most popular freeware product at the time.
In this case it was to publicise two upcoming scripting languages the FSF had been working on in the form of GUILE and another GNU project by now dead and forgotten. Unlike the "Microkernel War" where people overall had not enough knowledge about the subject to realise that it was essentially trolling on part of the flame war initiator, what happened in this case was most of the viewers had both knowledge and experience of multiple programming paradigms and were rather unimpressed with the initial argument (such as it was). This backfired somewhat in the face of the FSF as it generated a lot of positive noise about Tcl and negative ones about Guile, the FSF and Stallman.
- http://www.vanderburg.org/OldPages/Tcl/war/ (now dead - try: https://web.archive.org/web/20141029121724/http://www.vanderburg.org/OldPages/Tcl/war/)
There was a second "Tcl War" a couple of years later, when a post attributed to Richard Stallman was posted in the same newsgroup in a somewhat conciliatory tone.