eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne? › Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • X-Received: by 10.49.95.68 with SMTP id di4mr365310qeb.0.1360296350150; Thu, 07 Feb
    2013 20:05:50 -0800 (PST)
    X-Received: by 10.49.95.68 with SMTP id di4mr365310qeb.0.1360296350150; Thu, 07 Feb
    2013 20:05:50 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!p13no1718617qai.0!n
    ews-out.google.com!k2ni19278qap.0!nntp.google.com!p13no1718614qai.0!postnews.go
    ogle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 7 Feb 2013 20:05:49 -0800 (PST)
    In-Reply-To: <kf1b5r$cvj$1@somewhere.invalid>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.229.34.123;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 89.229.34.123
    References: <f...@g...com>
    <kem1vl$8n2$1@somewhere.invalid>
    <7...@g...com>
    <8...@g...com>
    <6...@g...com>
    <5...@g...com>
    <s...@j...net>
    <b...@g...com>
    <s...@j...net>
    <1...@g...com>
    <3...@b...softax.pl>
    <b...@g...com>
    <k...@b...softax.pl>
    <4...@g...com>
    <keun5d$lsh$1@somewhere.invalid>
    <f...@g...com>
    <keuri4$nje$1@somewhere.invalid>
    <1...@g...com>
    <keuusd$ovj$1@somewhere.invalid>
    <7...@g...com>
    <kf1b5r$cvj$1@somewhere.invalid>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <e...@g...com>
    Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    From: "M.M." <m...@g...com>
    Injection-Date: Fri, 08 Feb 2013 04:05:50 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:201947
    [ ukryj nagłówki ]

    W dniu czwartek, 7 lutego 2013 23:51:34 UTC+1 użytkownik Andrzej Jarzabek napisał:

    > Podobno Ada jest takim językiem.
    Kiedyś tak o Perlu słyszałem. Czasami nie wiem czego słuchać :)


    > Poza tym "język wydajny" to poewne nieporozumienie - z cech języka mogą
    > wynikać pewne narzuty ograniczające czy zwiększające wydajność, ale
    > rzeczywista praktyczna wydajność zależy od optymalizacji kompilatora, a
    > te z kolei są mocno skorelowane z popularnością.
    Chodziło właśnie o te ograniczenia, a właściwie to nie tylko o nie.
    Do niektórych języków napisanie dobrego kompilatora jest możliwe i język
    tego nie ogranicza w żaden sposób, ale zadanie może być znacznie trudniejsze i
    to pod względem implementacyjnym jak i pod względem algorytmicznym, kompilacja
    mogłaby trwać za długo.

    > Jest dużo eleganckich
    > języów, które teoretcznie mogłyby być równie wydajne co C++, ale w
    > praktyce używa ich 5 osób, więc nie jest taki szybki.
    Ciekawe zagadnienie, ja zawsze myślałem że to właśnie do takiego języka
    jak C++ trudniej napisać dobry kompilator.


    > Np. że możesz napisać jeden kod, który obsłuży obydwa przypadki.
    Chyba nie zrozumiem tego, w C też pisze się uniwersalne procedury i
    obsługuje wiele przypadków.

    > Nie mam pojęcia do czego ci te Varianty, rozmawialiśmy o tym, że w
    > językach dynamicznych możesz mieć zmienne przyjmujące wartości dowolnego
    > typu lub funkcje zwracające wartości dowolnego typu. Pisałeś, że w C++
    > masz to samo dzięki typowi Variant. No więc nie masz.
    Liczymy tak:
    suma od 1 do N ( p_i * (c_i - a_i) )
    N - ilość cech języka
    p_i - prawdopodobieństwo użyca
    c_i - korzyści jakie niesie wybrany język w cesze i
    a_i - korzyści jakie niesie najlepszy niewybrany język w cesze i.

    Jeśli do warianta nie mogę wrzucić czegoś, co przydaje się bardzo rzadko,
    to mówię że mogę wrzucić tam wszytko ( p_i jest bliskie zera i nie
    zmienia wartości powyższego wzoru ).


    > A w językach z dynamicznym systemem typów nie trzeba. I na tym polega
    > różnica - w C++ tego po prostu nie zrobisz i tyle, żaden QVariant czy
    > hashmap ci nie pomoże.
    No tak, ale ten fakt musi się jeszcze jakoś przekładać na praktyczne
    korzyści, w przeciwnym razie rozmawiamy o czymś niepotrzebnym.


    > O makrach i szablonach w C++ można wiele powiedzieć, ale na pewno nie
    > to, że są wygodne i proste w użyciu.
    Też nie przepadam, zwłaszcza za makrami. Ale jak w php świeżo dodane
    pola otaczam dolarami i klamrami to też mi się robi niedobrze.


    > Bo zajmuje czas, bo wprowadza szum do kodu, bo utrudnia refaktoryzację.
    > Może nie zawsze, ale przynajmniej niekiedy.
    Bym musiał zobaczyć przykłady w których widać jak w C++ coś robi się
    trudno, a w innych językach łatwo, wygląda na to że nie zrozumiem o
    czym mówicie.

    > Wprowadzasz duplikację.
    Jaką duplikację?

    > No i pojawiają się dalsze problemy, co na przykład, jeśli chcesz
    > skopiować structa i owej kopii dołożyć kilka nowych pól?
    > Piszesz konwersję kopiującą wszystkie składowe do hashmapy?

    Dlaczego tak jest źle?
    new_hashmap = old_hasmap;
    new_hashmap['nowe_pole1'] = wartość1;
    new_hashmap['nowe_pole2'] = wartość2;


    > I tak dla każdego typu? I nie widzisz w tym nic niewygodnego?
    No właśnie nie widzę.

    Pozdrawiam

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: