Article View: pl.comp.lang.tcl
Article #204Re: Wasza opinia (Incr TCL, OraTCL i obiektowosc)
From: Artur
Date: Tue, 29 Nov 2005 08:07
Date: Tue, 29 Nov 2005 08:07
87 lines
4472 bytes
4472 bytes
Aneta schrieb:
> witam,
>
> Na pl.comp.objects spotkalam sie z opinia, ze TCL lacznie IncrTCL to zle
> zaprojektowany jezyk, nie posiadający gramatyki i prostacki. Z kolei inne osoby
> twierdzą ze jest dobry do prototypowania, szybkiego tworzenia skryptów i GUI, a
> mechanizmy obiektowe sa klarowne i malo "przegadane" - co stanowi jego zalete.
> Patrzac na aplikacje typu AOL Server czy powszechy Tk (zwiazany z TCLem) trudno
> odmowic TCL'owi i Tk funkcjonalnosci.
>
> Czy rzeczywiscie Incr TCL ma jakies "gramatyczne braki" wzgledem innych
> jezykow OOP? Czy waszym zdaniem nadaje sie do pisania czytelnych, klarownych
> programow obiektowych i prototypowania?
>
> Poza tym dysponuje ktos moze jakimis polskojezycznymi materialami/wykladami na
> temat Incr TCL albo OraTCL (dialekt stosowany w Oracle'u)?
>
> Dzięki z góry za wszelkie informacje i pozdrawiam
> Aneta.
>
> --
> Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
genialność Tcl tkwi w jego prostocie.
Bazowy opis syntaksu Tcl mieści się na kartce DIN-A4.
Rownocześnie można kombinować proste elementy w bardzo skąplikowane
koncepcje.
Przez to Tcl staje się językiem o wielu twarzach i jest rozserzalny.
Równie prosty i genialny jest Smalltalk albo LISP, wymagają ale one
od programisty
wysokich umiejętności do tworzenia abstrakcji i wiele kreatowności,
która poplaca krótkim i czystym programem.
Języki jak PHP, Perl albo Basic
są wielką skrzynią z narzędziami, dobry programista takiego języka
uczy się setkę trików na dany problem.
Tu nie trzeba być kreatywnym tylko mieć dobrą pamięć, wielka
teoria albo edukacja
jest tu zbyteczna.
Jeśli chodzi o OOP to Tcl ma wiele do zaofiarowania. Najbardziej
kompletny i szybki jest XOTcl, który
powoli staje się standartowym językiem OOP dla Tcl.
http://www.xotcl.org
XOTcl jest jęykiem OOP nowej genacji z konceptami jak Mixin (Ruby),
Filter, AOP i inne.
Co do braków Tcl to wiele jest rzeczą smaku.
Tcl i OOP w Tcl nie posiada:
- Garbage Collection - trudno to zrealizować bo wszystko w Tcl jest
string (bez referencji). XOTcl posiada
mechanizmy aby ten problem zmniejszyć (nested objects i opcja
-volatile)
- Closures albo Lambda (abstrakcyjne funkcje) - bardzo przydatne do
krowanie np. wlasnych control structures. Można w Tcl obejść przez
uplevel i upvar. Albo poprostu przez to że funkcja to popiersze
string. Ruby, Smalltalk, Python mają takie wlaściwości.
- W Tcl nie wszystko jest objektem tylko raczej wszystko jest string.
Dla OOP jest bardziej przydatne jeśli wszystko bylo by obiektem
(np. Smalltalk, Ruby, Python)
- Z powodu bardzo prostej gramatyki nie są możliwe pewne skróty w
syntaksie jakie naprzyklad są w Python
Tcl
set a 2
Python
a = 2
Tcl
set mylist {0 1 2}
set b [lrange $mylist 2 end]
Python
mylist = (0,1,2)
b = mylist[2:]
Tcl
set b [string range $mystring 2 end]
Python
b = mystring[2:]
Z drugiej strony Tcl posiada bardzo dobre możliwości do introspekcj
(retrospekcj).
Nadeje się doskonale do generatorów, mobilnych agentów,
samogenaracji programu.
Ja wypróbowalem już wiele języków ale zawsze wracam do Tcl i to z
powodu XOTcl.
Artur Trzewik
Technical Details
Message-ID:
<1133251652.154543.166610@z14g2000cwz.googlegroups.com>Path:
mbox-mo1.pugleaf.net!number1.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!z14g2000cwz.googlegroups.com!not-for-mailReferences:
<dmdd01$2ul$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!number1.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!z14g2000cwz.googlegroups.com!not-for-mail From: "Artur" <mail@xdobry.de> Newsgroups: pl.comp.lang.tcl Subject: Re: Wasza opinia (Incr TCL, OraTCL i obiektowosc) Date: 29 Nov 2005 00:07:32 -0800 Organization: http://groups.google.com Lines: 95 Message-ID: <1133251652.154543.166610@z14g2000cwz.googlegroups.com> References: <dmdd01$2ul$1@inews.gazeta.pl> NNTP-Posting-Host: 62.225.37.69 Mime-Version: 1.0 X-Trace: posting.google.com 1133251657 2163 127.0.0.1 (29 Nov 2005 08:07:37 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 29 Nov 2005 08:07:37 +0000 (UTC) In-Reply-To: <dmdd01$2ul$1@inews.gazeta.pl> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.12) Gecko/20050919 Firefox/1.0.7,gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 G8SLV (NetCache NetApp/5.6.2R1) Complaints-To: groups-abuse@google.com Injection-Info: z14g2000cwz.googlegroups.com; posting-host=62.225.37.69; posting-account=LCgZWAwAAABJR_8tjAef_hUAajXeKdEF Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit