Tcl: Difference between revisions

Content deleted Content added
→‎History: Removed capitalism per MoS from wikilink. Juggled some wording for better readability, added reference to VLSI as a pointer to the era in which these events occurred. Tried to minimise changes to original authors' work.
Tags: Mobile edit Mobile web edit Advanced mobile edit
m 2024 not 2045
 
(8 intermediate revisions by 7 users not shown)
Line 11:
| developer = Tcl Core Team<ref name="tclcoreteam" />
| latest release version = {{wikidata|property|preferred|references|edit|Q5288|P348|P548=Q2804309}}
| latest release date = {{ start date and age|{{wikidata|qualifier|preferred|single|Q5288|P348|P548=Q2804309|P577}}}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q5288|P348|P548=Q51930650}}
| latest preview date = {{wikidata|qualifier|preferred|single|Q5288|P348|P548=Q51930650|P577}}
| typing = [[Dynamic typing]], everything can be treated asis a [[string (programming)|string]]
| implementations = [https://www.activestate.com/activetcl ActiveTcl] [https://www.androwish.org/ Androwish]
| dialects = [http://jim.tcl.tk/ Jim], [https://eagle.to/ Eagle]
Line 26:
'''Tcl''' (pronounced "[[tickle]]" or as an [[initialism]]<ref>{{cite newsgroup|url=https://groups.google.com/d/msg/comp.lang.tcl/4KfTRIr5ZxE/XIw-gnbxIyMJ|first=Kevin|last=Kenny|newsgroup=comp.lang.tcl|title=Re: TCL certification|date=4 July 2005}}</ref>) is a [[High-level programming language|high-level]], [[General-purpose programming language|general-purpose]], [[Interpreter (computing)|interpreted]], [[dynamic programming language]]. It was designed with the goal of being very simple but powerful.<ref>{{cite web |url=http://www.tcl-lang.org/about/language.html |title=Language |website=Tcl Developer Xchange |access-date=2016-11-02}}</ref> Tcl casts everything into the mold of a [[Command (computing)|command]], even programming constructs like variable assignment and procedure definition.<ref>''Tcl Fundamentals'', Chapter 1 in ''Practical Programming in Tcl and Tk'', {{ISBN|0-13-038560-3}}</ref> Tcl supports multiple [[programming paradigm]]s, including [[object-oriented programming|object-oriented]], [[imperative programming|imperative]], [[functional programming|functional]], and [[procedural programming|procedural]] styles.
 
It is commonly used embedded into [[C (programming language)|C]] applications,<ref name="inception" /> for [[rapid application development|rapid prototyping]], scripted applications, GUIs, and testing.<ref>{{cite web |url=http://www.tcl-lang.org/about/uses.html |title=Uses for Tcl/Tk |website=Tcl Developer Xchange |access-date=2016-11-02}}</ref> Tcl interpreters are available for many [[operating system]]s, allowing Tcl code to run on a wide variety of systems. Because Tcl is a very compact language, it is used on [[embedded systemssystem]]s platforms, both in its full form and in several other small-footprint versions.<ref>{{cite web |url=http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ios_tcl/configuration/12-4t/ios-tcl-12-4t-book/nm-script-tcl.html |title=Cisco IOS Scripting with TCL Configuration Guide |website=Cisco Support |access-date=2016-11-02}}</ref>
 
The popular combination of Tcl with the [[Tk (software)|Tk]] extension is referred to as '''Tcl/Tk''', (pronounced "tickle teak" or as an [[initialism]]) and enables building a [[graphical user interface]] (GUI) natively in Tcl. Tcl/Tk is included in the standard [[Python (programming language)|Python]] installation in the form of [[Tkinter]].
 
== History ==
Line 61:
|-
| December&nbsp;2012 || Tcl 8.6 added built-in dynamic object system, TclOO, and stackless evaluation.<ref name="tcl86release">{{cite web |url=http://www.tcl.tk/software/tcltk/8.6.html |title=Tcl/Tk 8.6 Release Announcement |website=Tcl Developer Xchange |date=2013-09-20 |access-date=2014-07-01}}</ref>
|-
| September&nbsp;2024 || Tcl 9.0 added 64-bit capabilities, support for the full Unicode code point range, uses [[epoll]] & [[kqueue]]<ref name="tcl90release">{{cite web |url=https://www.tcl-lang.org/software/tcltk/9.0.html |title=Tcl/Tk 9.0 Release Announcement |website=Tcl Developer Xchange |date=2024-09-26 |access-date=2024-09-26}}</ref>
 
|}
Line 75 ⟶ 77:
* Variables are not declared, but assigned to. Use of a non-defined variable results in an error.
* Fully dynamic, class-based [[object-oriented programming|object system]], TclOO, including advanced features such as meta-classes, filters, and [[mixin]]s.<ref name="tip257">{{cite web |url=http://www.tcl.tk/cgi-bin/tct/tip/257.html |title=TIP #257: Object Orientation for Tcl |website=Tcl Developer Xchange |access-date=2016-11-01}}</ref>
* [[Event-driven programming|Event-driven interface]] to [[Internetnetwork socket|sockets]] and [[computer file|files]]. Time-based and user-defined events are also possible.
* Variable visibility restricted to lexical (static) [[scope (computer science)|scope]] by default, but <code>uplevel</code> and <code>upvar</code> allowing procs to interact with the enclosing functions' scopes.
* All commands defined by Tcl itself generate error messages on incorrect usage.
Line 295 ⟶ 297:
; TclTLS: TclTLS is [[OpenSSL]] extension to Tcl.
; TclUDP: The TclUDP<ref name="tcludp1109">{{cite web |url=http://wiki.tcl.tk/8493 |title=TclUDP |publisher=Tcl'ers Wiki |access-date=August 7, 2012}}</ref> extension provides a simple library to support [[User Datagram Protocol]] (UDP) sockets in Tcl.
; TWAPI: TWAPI (Tcl Windows API) is an extension to Tcl providing bindings to the Windows API.
; Databases: Tcl Database Connectivity (TDBC), part of Tcl 8.6, is a common database access interface for Tcl scripts. It currently supports drivers for accessing [[MySQL]], [[ODBC]], [[PostgreSQL]] and [[SQLite]] databases. More are planned for the future. Access to databases is also supported through database-specific extensions, of which there are many available.<ref name="tdbc1202">{{cite web |url=http://wiki.tcl.tk/20343 |title=TDBC |publisher=Tcl'ers Wiki |access-date=August 7, 2012}}</ref>
 
Line 331 ⟶ 334:
* [http://wiki.tcl.tk/ Tcler's Wiki]
* [http://www.tkdocs.com/ TkDocs]
* [https://blog.naver.com/narawon/222056196990 Tcl/Tk Korean Textbook]
 
{{Programming languages}}