🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.tcl
Article #204

Re: Wasza opinia (Incr TCL, OraTCL i obiektowosc)

#204
From: Artur
Date: Tue, 29 Nov 2005 08:07
87 lines
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-mail
References: <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