eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjaki wybrac jezyk? › Re: jaki wybrac jezyk?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Zbigniew Malec <a...@i...invalid>
    Newsgroups: pl.comp.programming
    Subject: Re: jaki wybrac jezyk?
    Date: Fri, 19 Aug 2011 22:05:25 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 53
    Message-ID: <4cqbk2d71c5l$.nxohpneq0khh.dlg@40tude.net>
    References: <2...@v...googlegroups.com>
    <5...@n...onet.pl>
    <a...@e...googlegroups.com>
    <op.vz9ot2qr8x7o78@notebook>
    <3...@h...googlegroups.com>
    NNTP-Posting-Host: 89-75-68-72.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="iso-8859-2"
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1313784322 8984 89.75.68.72 (19 Aug 2011 20:05:22 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 19 Aug 2011 20:05:22 +0000 (UTC)
    X-User: zbyszanna
    User-Agent: 40tude_Dialog/2.0.15.1
    Xref: news-archive.icm.edu.pl pl.comp.programming:191995
    [ ukryj nagłówki ]

    On Mon, 15 Aug 2011 12:46:29 -0700 (PDT), Maciej Sobczak wrote:

    >> *W tym  
    >> kontekście* absolutnie zgadzam się ze stwierdzeniem, że w Javie robi się  
    >> mniej błędów.

    > Otóż nie, to nie przeszkadza w robieniu błędów. Ten mechanizm je co
    > najwyżej wykrywa. W run-time. Nic nie stoi na przeszkodzie, żeby
    > wysłać klientowi program z błędem i w tym kontekście uważam, że Java
    > nie wnosi istotnego postępu w dziedzinie poprawności.

    Otóż właśnie przeszkadza w popełnianiu pewnej klasy błędów. Najbardziej
    oczywistą klasą błędów są błędy wynikające z użycia błędnego wskaźnika - w
    Javie się to po prostu nie zdarza. O wycieki pamięci też jest dużo
    trudniej. A to jest tylko najbardziej oczywisty przykład.

    > Jawne deklarowanie wyjątków się nie sprawdziło w praktyce i Javowcy
    > masowo to pomijają. Nie, nie chodzi o początkujących adeptów, robią
    > tak również projektanci poważnych frameworków. Po prostu się nie
    > sprawdziło.

    A mi właśnie brakuje takiego jawnego deklarowania wyjątków w językach,
    które go nie używają. Są sytuacje, w których jest to denerwujące, ale dla
    mnie w większości przypadków jest to po prostu wygoda.

    > import java.util.TreeSet;
    >
    > class NonComparable {}
    >
    > public class Test {
    > public static void main(String[] args) {
    > TreeSet<NonComparable> mySet = new TreeSet<NonComparable>();
    > mySet.add(new NonComparable());
    > mySet.add(new NonComparable());
    > }
    > }
    >
    > W funkcji main są trzy linijki.
    > W języku z poważną statyczną kontrolą typów powinien być błąd
    > kompilacji w pierwszej linii, gdzie tworzony jest bezsensowny typ
    > zbioru. Tak się stanie np. w Adzie (w równoważnym przykładzie).

    To *w ogóle* nie jest kwestia siły typowania języka, tylko rozwiązania z
    biblioteki. To jest tylko i _wyłącznie_ kwestia api udostępnianego przez
    klasę TreeSet. Po prostu TreeSet nie narzuca na klasy konieczności
    implementowania interfejsu Comparable. Co więcej, umożliwia korzystanie z
    klas, które tego interfejsu nie implementują. Można bez problemu napisać w
    Javie odpowiednik TreeSet, którego użycie spowodowałoby błąd kompilacji już
    w pierwszej linijce. Więc tak, jest tutaj silniejsza kontrola typów.

    --
    Pozdrawiam
    Zbyszek Malec

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: