eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne?Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • Data: 2013-02-08 05:05:49
    Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: