eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpryszcze...Re: pryszcze...
  • X-Received: by 10.49.3.226 with SMTP id f2mr1681qef.40.1389731613196; Tue, 14 Jan
    2014 12:33:33 -0800 (PST)
    X-Received: by 10.49.3.226 with SMTP id f2mr1681qef.40.1389731613196; Tue, 14 Jan
    2014 12:33:33 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin1!goblin.stu.neva.ru!p15no14795840qaj.0!news-out.google.com!fv6n
    i3230qab.1!nntp.google.com!p15no14795830qaj.0!postnews.google.com!glegroupsg200
    0goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Tue, 14 Jan 2014 12:33:33 -0800 (PST)
    In-Reply-To: <0...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.67.189.218;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 89.67.189.218
    References: <lb0rbd$l6n$1@node2.news.atman.pl>
    <7...@g...com>
    <lb0sk5$mgl$1@node2.news.atman.pl>
    <9...@g...com>
    <o...@4...com>
    <a...@g...com>
    <s...@j...net>
    <4...@g...com>
    <c...@4...com>
    <4...@g...com>
    <g...@4...com>
    <a...@g...com>
    <0...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <4...@g...com>
    Subject: Re: pryszcze...
    From: g...@g...com
    Injection-Date: Tue, 14 Jan 2014 20:33:33 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:204915
    [ ukryj nagłówki ]

    W dniu wtorek, 14 stycznia 2014 21:05:23 UTC+1 użytkownik Wojciech Muła napisał:
    > On Tuesday, January 14, 2014 11:03:36 AM UTC+1, g...@g...com wrote:
    >
    > > > >Na przyklad ewaluacja kodu "w locie".
    > > > A co to jest?
    > >
    > > To jest to, co na przyklad javascript albo
    > > php udostepnia (w dosc posledniej formie)
    > > pod postacia funkcji "eval"
    >
    > To są dziury bezpieczeństwa. Eval is evil.

    Eval is evil to dobra mantra dla poczatkujacych.
    (I latwo zapamietac, bo wystarczy zmienic jedna
    literke :D). Jezeli mamy jezyk, w ktorym jest
    dobrze zrobiona obsluga modulow (taki jak np. Scheme ;]),
    to mozna bez ryzyka wykonywac kod uzytkownika w danym module,
    zachowujac pelna kontrole nad funkcjami systemowymi,
    ktore sa dla tego kodu dostepne.
    Mozna rowniez odpalic evala w osobnym watku, ktoremu
    mozna ograniczyc maksymalny czas wykonania.

    > Jak potrzebujesz liczyć coś dynamicznie, to bierzesz
    > parser i coś robisz z drzewem rozbioru gramatycznego.

    I wlasnie to mam na mysli, mowiac o wynajdowaniu
    kola od nowa. Jest takie cos, jak "Greenspun's tenth rule":

    "Any sufficiently complicated C or Fortran program
    contains an ad hoc, informally-specified, bug-ridden,
    slow implementation of half of Common Lisp."

    Ale zeby nie byc goloslownym. Jeden z najbardziej szanowanych
    przeze mnie programistow, John Carmack, stworzyl kiedys engine
    dla gry komputerowej Quake. Przy okazji stworzyl rowniez
    jezyk skryptowy, dziedziczacy z C, ktory nosil nieszczegolnie
    zaskakujaca nazwe "Quake C". I mimo ze sie przy tym narobil,
    na pewno mial parser i robil cos z drzewem rozbioru gramatycznego,
    to jezyk okazal sie niewygodny, niewydajny i kaleki. Trudno jest
    ad hoc zaprojektowac dobry jezyk programowania, i jezeli jest
    taka mozliwosc, to lepiej korzystac z istniejacych i juz dobrze
    zaprojektowanych jezykow. Nie dosc, ze to mniej roboty przy
    implementacji, to jeszcze mniej nauki dla osob, ktore maja
    z tego jezyka korzystac.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: