eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › jaki wybrac jezyk?
Ilość wypowiedzi w tym wątku: 130

  • 91. Data: 2011-08-17 13:39:36
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-17, Michal Kleczek <k...@p...onet.pl> wrote:
    > On 2011-08-17 15:12, Stachu 'Dozzie' K. wrote:
    >> On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >>>
    >>> W koncu nie wiem, czy chcesz miec kontrole statyczna, czy dynamiczna.
    >>
    >> Chcę statyczną, ale jak się nie da (bo Java jest typowana statycznie ale
    >> dynamicznie), to niech będzie *jakakolwiek*. A nie żeby mnie zaskakiwało
    >> że mimo wszystko do ArrayList<Integer> da się dodać Stringa.
    >>
    >
    > No przeciez sie nie da - tu dostaniesz blad kompilacji:
    >
    > void funkcja(ArrayList<Integer> lista) {
    > lista.add("string");
    > }

    No przecież pokazałem że się da. Nie próbuj mi wmawiać że parę
    szczególnych przypadków przytoczonych przez ciebie wystarcza żeby mówić
    o statycznej kontroli typów w Javie. Równie dobrze możesz mówić że Perl
    ma statyczną kontrolę typów, bo *da się wyprodukować pewną sytuację* gdy
    na etapie parsowania interpreter zgłosi niezgodność typów.

    >>> Nie rozumiem. W ogolnosci po wprowadzeniu generykow nie ma potrzeby
    >>> _explicite_ sprawdzac typu w runtime (czyli nie ma potrzeby robienia
    >>> rzutowania explicite). Niczym to sie nie rozni od dowolnego innego
    >>> jezyka bez RTTI.
    >>
    >> Trochę się różni. Miałeś przykład. Typowanie statyczne albo jest, albo
    >> go nie ma. W Javie jest taka podpierdółka, więc liczy się że nie ma.
    >>
    >
    > Przy takim podejsciu to zaden jezyk nie ma, bo chyba (tutaj - fakt -
    > potrzebuje wsparcia mocniejszych teoretykow) nie da sie zrobic jezyka
    > "turing complete" bez operacji "unsafe" czyli nieweryfikowalnych
    > statycznie (takich jak rzutowanie).

    Przepraszam, ale dlaczego w Adzie się dało zrobić poprawnie silny system
    typów? Dlaczego dało się w Haskellu i SML-u? Nie wyskakuj mi więc
    z pomysłem że rzutowanie jest ogólnie niebezpieczną operacją,
    niemożliwą do weryfikacji podczas kompilacji, bo nie jest.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 92. Data: 2011-08-17 13:42:30
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-17, Michal Kleczek <k...@p...onet.pl> wrote:
    > On 2011-08-17 15:29, Marcin Biegan wrote:
    >> W dniu 2011-08-17 14:59, Michal Kleczek pisze:
    >>> Gwoli uczciwosci w dyskusji: jak ja rozumiem te argumentacje (chociaz
    >>> sie z nia nie zgadzam), to mowi ona tyle, ze i tak musisz miec testy,
    >>> zas - w praktyce - jezeli juz je masz to wykrywaja one bledy, ktorych
    >>> nie wykryje kompilator.
    >>> Wiec to nie jest tak, ze piszemy testy by zastapic statyczna
    >>> weryfikacje, lecz piszemy testy tak czy inaczej i niejako przy okazji
    >>> mozemy zrezygnowac ze statycznej kontroli typow (bo mamy testy).
    >>
    >> I piszesz normalnie w silnie-typowanym języku testy sprawdzające typy
    >> argumentów? Czy jak zamiast int przekażesz double to rzuci wyjątek?
    >
    > Nie w tym rzecz - piszesz testy weryfikujace logike programu. Te testy
    > niejako przy okazji wykrywaja te same bledy, ktore wykrylby kompilator
    > jezyka statycznie typowanego.

    Tylko że nie wykryją wszystkiego, bo 1) najpierw funkcja się musi
    uruchomić i 2) jak już się uruchomi, to musi zajść sytuacja że funkcja
    dostała niezgodny typ. To w języku dynamicznym może zależec od ścieżki,
    którą pójdzie program. Trochę do dupy twój pomysł z zastępowaniem
    statycznego typowania testami.

    > Fakt, ze argumentacja zwolennikow "dynamicznie typowanych" jezykow jest
    > pokretna :) - mowia oni "jezeli twoje testy nie wykryly takiego bledu,
    > to masz za malo testow".

    Zawsze masz za mało testów żeby uzyskać pewność. W języku statycznie
    typowanym dostajesz pewność zgodności typów przez sam fakt skompilowania
    programu.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 93. Data: 2011-08-17 13:57:11
    Temat: Re: jaki wybrac jezyk?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2011-08-17 15:42, Stachu 'Dozzie' K. pisze:
    [...]
    >> Fakt, ze argumentacja zwolennikow "dynamicznie typowanych" jezykow jest
    >> pokretna :) - mowia oni "jezeli twoje testy nie wykryly takiego bledu,
    >> to masz za malo testow".
    >
    > Zawsze masz za mało testów żeby uzyskać pewność. W języku statycznie
    > typowanym dostajesz pewność zgodności typów przez sam fakt skompilowania
    > programu.

    Trochę mi to przypomina argumentację zwolenników "czystego" C, że RAII
    jest niepotrzebne i można to samo osiągnąć umieszczeniem free()/fclose()
    gdzie trzeba (oraz być może testami na tę okoliczność). Jasne, że można.
    Tyle, że RAII (oraz statyczna kontrola typów) może automatycznie
    (czyli bezbłędnie) wygenerować część kodu zwalniającego (część testów).

    Nie przeczę, że testy warto mieć, a statyczne typowanie nie zastąpi
    testów w ogólności. Ale świetnie, a co najważniejsze - automatycznie,
    zastępuje część testów dotyczących zgodności typów.

    --
    Paweł Kierski
    n...@p...net


  • 94. Data: 2011-08-17 14:13:10
    Temat: Re: jaki wybrac jezyk?
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 17-08-2011 o 15:39:36 Stachu 'Dozzie' K.
    <d...@g...eat.some.screws.spammer.invalid> napisał(a):

    [...]
    > Przepraszam, ale dlaczego w Adzie się dało zrobić poprawnie silny system
    > typów? Dlaczego dało się w Haskellu i SML-u? Nie wyskakuj mi więc
    > z pomysłem że rzutowanie jest ogólnie niebezpieczną operacją,
    > niemożliwą do weryfikacji podczas kompilacji, bo nie jest.

    Haskell ma rzutowanie? jak wygląda?

    --
    Jordan Szubert


  • 95. Data: 2011-08-17 14:16:54
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-17, Jordan Szubert <u...@j...us.to> wrote:
    > Dnia 17-08-2011 o 15:39:36 Stachu 'Dozzie' K.
    ><d...@g...eat.some.screws.spammer.invalid> napisał(a):
    >
    > [...]
    >> Przepraszam, ale dlaczego w Adzie się dało zrobić poprawnie silny system
    ^^^^^^^^^^^^
    >> typów? Dlaczego dało się w Haskellu i SML-u? Nie wyskakuj mi więc
    ^^^^^
    >> z pomysłem że rzutowanie jest ogólnie niebezpieczną operacją,
    >> niemożliwą do weryfikacji podczas kompilacji, bo nie jest.
    >
    > Haskell ma rzutowanie? jak wygląda?

    Czytać do skutku.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 96. Data: 2011-08-17 14:29:34
    Temat: Re: jaki wybrac jezyk?
    Od: m...@t...pl


    > Tylko że nie wykryją wszystkiego, bo 1) najpierw funkcja się musi
    > uruchomić i 2) jak już się uruchomi, to musi zajść sytuacja że funkcja
    > dostała niezgodny typ. To w języku dynamicznym może zależec od ścieżki,
    > którą pójdzie program. Trochę do dupy twój pomysł z zastępowaniem
    > statycznego typowania testami.
    Wniosek jest prosty, ani statyczne typowanie, ani testy automatycznie
    generowane w runtimie nie zastępują uważności (jest takie słowo?)
    programisty. Tyle że jak w C++ statycznie zadeklaruje tablicę i dojdzie
    do przepełnienia zakresów, to program może długo działać bez wyraźnych
    objawów tego przepełnienia. Oczywiście w C++ można tablice tworzyć
    tylko przez new i jeszcze można zaimplementować testy zakresów. Tyle
    że w takim przypadku składnia Javy wydaje się przyjemniejsza.

    Apropo testów przytoczę jeden z moich przypadków który chyba daje
    dużo do myślenia. Kiedyś wprowadziłem kilka poprawek do generatora
    posunięć w szachach. Pech chciał że miałem ważną robotę i nad
    szachami nie mogłem dalej pracować. Niemniej generator posunięć był
    kompletny i stał wolny komputer z sześcioma rdzeniami. Odpaliłem
    walidacje krzyżową dwóch programów na tych sześciu rdzeniach.
    Zgromadziłem mnóstwo gier, gry zapisałem do plików, programy
    wybierały losowo grę i przeszukiwały drzewo gry na określoną głębokość.
    Taki test ma nawet swoją nazwę, zwie się testem perft. No i
    co to daje do myślenia? Sytuacja w której dwa programy dały
    inny wynik dla tych samych danych wejściowych pojawiła się
    pierwszy raz dopiero po dwóch tygodniach ciągłych obliczeń na
    tych sześciu rdzeniach. Przez dwa tygodnie nie pojawiła się
    ani razu.

    Pozdrawiam




    Programy
    ładowały losowe pozycje z losowy wybra




    >

    > > Fakt, ze argumentacja zwolennikow "dynamicznie typowanych" jezykow jest

    > > pokretna :) - mowia oni "jezeli twoje testy nie wykryly takiego bledu,

    > > to masz za malo testow".

    >

    > Zawsze masz za mało testów żeby uzyskać pewność. W języku statycznie

    > typowanym dostajesz pewność zgodności typów przez sam fakt skompilowania

    > programu.

    >

    > --

    > Secunia non olet.

    > Stanislaw Klekot



    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 97. Data: 2011-08-17 14:36:28
    Temat: Re: jaki wybrac jezyk?
    Od: Michal Kleczek <k...@p...onet.pl>

    On 2011-08-17 15:39, Stachu 'Dozzie' K. wrote:
    > On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >> On 2011-08-17 15:12, Stachu 'Dozzie' K. wrote:
    >>> On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >>>>
    >>>> W koncu nie wiem, czy chcesz miec kontrole statyczna, czy dynamiczna.
    >>>
    >>> Chcę statyczną, ale jak się nie da (bo Java jest typowana statycznie ale
    >>> dynamicznie), to niech będzie *jakakolwiek*. A nie żeby mnie zaskakiwało
    >>> że mimo wszystko do ArrayList<Integer> da się dodać Stringa.
    >>>
    >>
    >> No przeciez sie nie da - tu dostaniesz blad kompilacji:
    >>
    >> void funkcja(ArrayList<Integer> lista) {
    >> lista.add("string");
    >> }
    >
    > No przecież pokazałem że się da.

    Nie wydaje mi sie. Nie ma takiego jezyka, ktory przepusci rzutowanie typu:
    List<Integer> l = (List<Integer>) cokolwiek;
    i nastepnie wyrzuci blad przy:
    l.add(new Integer(2));

    To byloby zaprzeczenie idei rzutowania.

    > Nie próbuj mi wmawiać że parę
    > szczególnych przypadków przytoczonych przez ciebie wystarcza żeby mówić
    > o statycznej kontroli typów w Javie.

    Mysle, ze zebysmy mogli dalej sensownie dyskutowac, musialbys mi
    powiedziec, co rozumiesz przez "statyczna kontrole typow".

    >
    > Przepraszam, ale dlaczego w Adzie się dało zrobić poprawnie silny system
    > typów?

    Nie dalo sie (sa operacje "unsafe").

    > Dlaczego dało się w Haskellu i SML-u?

    W Haskelu - unsafePerformIO
    SMLa nie znam, ale jak czytalem to tez sa operacje "unsafe".

    > Nie wyskakuj mi więc
    > z pomysłem że rzutowanie jest ogólnie niebezpieczną operacją,
    > niemożliwą do weryfikacji podczas kompilacji, bo nie jest.
    >

    Nie jestem specjalista, ale wydaje mi sie ze jednak ma do rzeczy tutaj:
    http://en.wikipedia.org/wiki/Rice's_theorem
    Moge sie jednak mylic.

    Natomiast, jesli chcesz powiedziec, ze istnieja jezyki z mocniejszymi
    systemami typow niz Java - to ja sie z tym calkowicie zgadzam.

    --
    Michal


  • 98. Data: 2011-08-17 14:38:39
    Temat: Re: jaki wybrac jezyk?
    Od: Michal Kleczek <k...@p...onet.pl>

    On 2011-08-17 15:42, Stachu 'Dozzie' K. wrote:
    > On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >> On 2011-08-17 15:29, Marcin Biegan wrote:
    >>> W dniu 2011-08-17 14:59, Michal Kleczek pisze:
    >>>> Gwoli uczciwosci w dyskusji: jak ja rozumiem te argumentacje (chociaz
    >>>> sie z nia nie zgadzam), to mowi ona tyle, ze i tak musisz miec testy,
    >>>> zas - w praktyce - jezeli juz je masz to wykrywaja one bledy, ktorych
    >>>> nie wykryje kompilator.
    >>>> Wiec to nie jest tak, ze piszemy testy by zastapic statyczna
    >>>> weryfikacje, lecz piszemy testy tak czy inaczej i niejako przy okazji
    >>>> mozemy zrezygnowac ze statycznej kontroli typow (bo mamy testy).
    >>>
    >>> I piszesz normalnie w silnie-typowanym języku testy sprawdzające typy
    >>> argumentów? Czy jak zamiast int przekażesz double to rzuci wyjątek?
    >>
    >> Nie w tym rzecz - piszesz testy weryfikujace logike programu. Te testy
    >> niejako przy okazji wykrywaja te same bledy, ktore wykrylby kompilator
    >> jezyka statycznie typowanego.
    >
    > Tylko że nie wykryją wszystkiego, bo 1) najpierw funkcja się musi
    > uruchomić i 2) jak już się uruchomi, to musi zajść sytuacja że funkcja
    > dostała niezgodny typ. To w języku dynamicznym może zależec od ścieżki,
    > którą pójdzie program. Trochę do dupy twój pomysł z zastępowaniem
    > statycznego typowania testami.

    To nie jest moj pomysl.
    Jak pisze - ja sie z tym nie zgadzam. Natomiast staralem sie wyjasnic
    argumentacje zwolennikow dynamicznego typowania (przedstawiona w linku).

    --
    Michal


  • 99. Data: 2011-08-17 14:45:14
    Temat: Re: jaki wybrac jezyk?
    Od: Michal Kleczek <k...@p...onet.pl>

    On 2011-08-17 15:42, Stachu 'Dozzie' K. wrote:
    > On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >
    >> Fakt, ze argumentacja zwolennikow "dynamicznie typowanych" jezykow jest
    >> pokretna :) - mowia oni "jezeli twoje testy nie wykryly takiego bledu,
    >> to masz za malo testow".
    >
    > Zawsze masz za mało testów żeby uzyskać pewność. W języku statycznie
    > typowanym dostajesz pewność zgodności typów przez sam fakt skompilowania
    > programu.
    >

    Bede adwokatem diabla - a co ci daje "pewnosc zgodnosci typow"?
    Masz jakies dane empiryczne mowiace o tym, ze programy zweryfikowane
    statycznie na "zgodnosc typow" maja wyzszy poziom akceptacji
    uzytkownikow? Chetnie sie z nimi zapoznam.

    --
    Michal


  • 100. Data: 2011-08-17 14:50:35
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-08-17, Michal Kleczek <k...@p...onet.pl> wrote:
    > On 2011-08-17 15:42, Stachu 'Dozzie' K. wrote:
    >> On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    >>
    >>> Fakt, ze argumentacja zwolennikow "dynamicznie typowanych" jezykow jest
    >>> pokretna :) - mowia oni "jezeli twoje testy nie wykryly takiego bledu,
    >>> to masz za malo testow".
    >>
    >> Zawsze masz za mało testów żeby uzyskać pewność. W języku statycznie
    >> typowanym dostajesz pewność zgodności typów przez sam fakt skompilowania
    >> programu.
    >>
    >
    > Bede adwokatem diabla - a co ci daje "pewnosc zgodnosci typow"?

    Pewność wyeliminowania pewnej klasy błędów, dość często spotykanej
    zresztą. To już dużo.

    > Masz jakies dane empiryczne mowiace o tym, ze programy zweryfikowane
    > statycznie na "zgodnosc typow" maja wyzszy poziom akceptacji
    > uzytkownikow? Chetnie sie z nimi zapoznam.

    #define "akceptacja użytkowników", bo mnie kojarzy się z użytkownikiem
    końcowym, który chce jedynie ładne ikonki do klikania.

    --
    Secunia non olet.
    Stanislaw Klekot

strony : 1 ... 9 . [ 10 ] . 11 ... 13


Szukaj w grupach

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: