Article View: pl.comp.objects
Article #15252Re: Stary dowcip
From: Sektor van Skijlen
Date: Wed, 30 Aug 2006 19:58
Date: Wed, 30 Aug 2006 19:58
98 lines
5924 bytes
5924 bytes
Dnia Tue, 29 Aug 2006 19:31:33 +0200, sg skrobie: > Sektor van Skijlen napisał(a): > > Dnia Tue, 29 Aug 2006 19:10:09 +0200, sg skrobie: > >> Sektor van Skijlen napisał(a): > >>> Dnia Tue, 29 Aug 2006 17:12:01 +0200, Adam Karpierz skrobie: > >>>> "Sektor van Skijlen" <ethouris@guess.if.gmail.com.is.valid.or.invalid> > >>>> wrote: > > > >>>> Pisanie w takim potworze jezykowym jak Tcl jest > >>>> zwyczajnym masochizmem (no chyba ze kaza i placa:) > >>> Najpierw pisałem w tym potworze, bo kazali i płacili. > >>> Potem pisałem w tym wspaniałym języku, mimo że nie kazali, niekoniecznie za to > >>> akurat płacili, a nawet za to karali (do mojego ówczesnego managera nie > >>> dotarło, że nie mogłem napisać tego w Perlu, bo po pierwsze, nic takiego nie > >>> było wymienione w opisie zadania, a po drugie, w Perlu nie jestem w stanie > >>> napisać tego oprogramowania w sposób naprawdę niezawodny). > >>> > > > >> a w TCLu jesteś? > > > > Oczywiście. Jestem w stanie nawet wytestować każdy szczegół oprogramowania, > > zanim zostanie wstawiony do aplikacji. > > > hm... ale tak serio mówisz? naprawdę nie da się tego zrobić w Perlu, tak > z ciekawości się pytam Powiem to w ten sposób: nie podejmuję się stawiania uniwersalnych twierdzeń typu "nie da się" czy też że "na pewno lepiej" itd. Tego typu ocena będzie podparta subiektywnością w wykonaniu dowolnej osoby. Proponuję jednak w ramach podpowiedzi porównać sobie zawartości książki o Tcl/Tk (tak, również Tk, czyli zawiera również opis biblioteki Tk, którego raczej nie ma w książkach od Perla) i książki o Perlu. Książek do Perla jest sporo i każda (każda!) jest grubym opasłym tomiskiem, w którym autorzy snują długie rozważania o tym, jak dana instrukcja jak się wykona w takim kontekście, a jak się ona wykona w innym. Kiedy np. przecinek oznacza kolejną ewaluację wartości (tak jak w C i C++), a kiedy oznacza konstruowanie tablicy. Przecinek jednak wie, w jakim znajduje się kontekście (to cytat). Perl zresztą to jest język wielu tajemnic i ciągle można w nim odkryć coś zaskakującego (jeśli ktoś uważa, że C++ "potrafi zaskakiwać", zaręczam, że aż tak to nie potrafi!). Przykładowo taka dość ciekawa konstrukcja: `ls` która niby jest takim sobie tylko wyrażeniem, które odpala podane polecenie i zbiera jego standardowe wyjście, może być użyta "w dwóch kontekstach", czyli: $x = `ls`; które zwraca cały tekst "na żywca" tak jak wypluło polecenie, albo: @x = `ls`; które dzieli tekst na linijki i wrzuca je po kolei do tablicy. Książka do Tcl/Tk jest mniej więcej takiej grubości jak pudełko na CD z instalką Windowsa. I jest naprawdę KOMPLETNA. > >> i co to znaczy "sposób naprawdę niezawodny"? > > > > Tzn. taki, który mi nagle z niewiadomych przyczyn zadziała niezgodnie z > > oczekiwaniami. I oczywiście zostanie "terminowo" oddany (ten projekt, o którym > > wspomniałem, wzorowo zmieścił się w terminie, co w Perlu raczej byłoby dla > > mnie marzeniem ściętej głowy). > > > a nie przesadzasz? Nie przesadzam, bo równolegle z tym skryptem pisałem też skrypty w Perlu. Ponieważ ja się akurat nie wyznawałem na bazach danych, a takowa była konieczna w tym projekcie, więc zajmował się nią gościu, który przedstawił mi do niej interfejs (jak tam wpychać i wyciągać dane) wyłącznie w Perlu z zastosowaniem DBI. Z uwagi na moje niewyznawanie się na bazach danych nie byłem w stanie opracować podobnego interfejsu z użyciem OraTcl, więc byłem skazany na Perla i DBI. Skryptów w Perlu na szczęście nie było wiele, bo w zasadzie sprowadzały się tylko do obsługi danych i współpracowały ze skryptami w Tcl-u na zasadzie wzajemnego się wywoływania i podawania sobie danych na wejście-wyjście (bo to mi w zupełności wystarczało, a znacznie łatwiej się to cholerstwo testowało). Ale wystarczająco dużo, żeby dać mi w kość i spowodować wielogodzinne ślęczenia nad kodem w Perlu, który działał, jak chciał, a miał działać, jak powinien (okraszone dodatkowo dziobaniem we wspomnianym opasłym tomiszczu, żeby znaleźć w nim, jak wyciągnąć wartość z referencji i gdzie mam zastosować nawiasy kwadratowe, a gdzie klamerki i jak się nie pomylić z przecinkiem). Zatem, nie przesadzam :) -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "I am allergic to Java because programming in Java reminds me casting spells"
Technical Details
Message-ID:
<ed4qli$oga$1@kujawiak.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mailReferences:
<m8c8f21emnn7mj9mrp1ev38vm0kav2t2s5@4ax.com> <ed1esm$eq6$11@kujawiak.man.lodz.pl> <ed1ghu$pik$1@inews.gazeta.pl> <ed1k9a$2f1$5@kujawiak.man.lodz.pl> <ed1lg2$hme$1@inews.gazeta.pl> <ed1rdu$mtf$5@kujawiak.man.lodz.pl> <ed1shm$f92$1@inews.gazeta.pl> <ed1thf$sf4$2@kujawiak.man.lodz.pl> <ed1tmd$jsa$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.objects
Subject: Re: Stary dowcip
Date: Wed, 30 Aug 2006 19:58:42 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 98
Sender: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Message-ID: <ed4qli$oga$1@kujawiak.man.lodz.pl>
References: <m8c8f21emnn7mj9mrp1ev38vm0kav2t2s5@4ax.com> <ed1esm$eq6$11@kujawiak.man.lodz.pl> <ed1ghu$pik$1@inews.gazeta.pl> <ed1k9a$2f1$5@kujawiak.man.lodz.pl> <ed1lg2$hme$1@inews.gazeta.pl> <ed1rdu$mtf$5@kujawiak.man.lodz.pl> <ed1shm$f92$1@inews.gazeta.pl> <ed1thf$sf4$2@kujawiak.man.lodz.pl> <ed1tmd$jsa$1@inews.gazeta.pl>
NNTP-Posting-Host: zly.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1156967922 25098 212.191.89.2 (30 Aug 2006 19:58:42 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Wed, 30 Aug 2006 19:58:42 +0000 (UTC)
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (SunOS/5.9 (sun4u))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit