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: "Wojciech \"Spook\" Sura" <w...@o...com.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: jaki wybrac jezyk?
    Date: Tue, 16 Aug 2011 11:51:27 +0200
    Organization: Optopol Technology
    Lines: 118
    Message-ID: <o...@l...medicom.local>
    References: <2...@v...googlegroups.com>
    <5...@n...onet.pl>
    <a...@e...googlegroups.com>
    <op.vz9ot2qr8x7o78@notebook>
    <3...@h...googlegroups.com>
    NNTP-Posting-Host: 207.162.akron.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2; format=flowed; delsp=yes
    Content-Transfer-Encoding: Quoted-Printable
    X-Trace: inews.gazeta.pl 1313488305 19824 86.111.207.162 (16 Aug 2011 09:51:45 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 16 Aug 2011 09:51:45 +0000 (UTC)
    X-User: spoko_ws
    User-Agent: Opera Mail/11.50 (Win32)
    Xref: news-archive.icm.edu.pl pl.comp.programming:191923
    [ ukryj nagłówki ]

    Dnia 15-08-2011 o 21:46:29 Maciej Sobczak <s...@g...com>
    napisał(a):

    >> *W tym kontekście* absolutnie zgadzam się ze stwierdzeniem, że wJavie
    >> 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.

    Ok, może w przypadku testowania zakresów tablic tak. Ale popatrz na taki
    przypadek:

    switch (myEnum)
    {
    case enVal1:
    {
    x = someOtherVarX / 2.0f;
    y = someOtherVarY / 2.0f;
    }
    default:
    {
    x = NaN;
    y = NaN;
    }
    }

    W C++ powyższy kod się skompiluje i będzie działał zgodnie z tym, co
    programista napisał (choć raczej niezgodnie z tym, co zamierzał). W C#
    próba kompilacji takiego kodu skończy się błędem (w Javie, natomiast,
    przejdzie).

    Zmierzam do tego, że - choć język jako taki nie może wykluczyć powstawania
    błędów - to jednak istnieją takie jego konstrukcje, które znacznie
    zmniejszają prawdopodobieństwo posadzenia takiego buraka, jak w powyższym
    przykładzie (chodzi mi o ogólną zasadę, a nie o ten czy inny konkretny
    przypadek).

    W końcu zarówno Java jak i C# wyewoluowały z C++, co dało projektantom
    szansę poprawienia niektórych językowych konstrukcji.

    W dyskusji wspominana jest Ada. Nie znam tego języka, ale czytałem o nim
    kiedyś, że jest pełen nadmiarowych konstrukcji językowych - na przykład
    koniec bloku wymaga informacji, jaki to był blok (np. END PROCEDURE).
    Przymus kończenia bloku case instrukcją break, goto lub return w C# jest w
    pewnym sensie nadmiarowy, ale znacząco ogranicza możliwość popełnienia w
    tym miejscu błędu. Wydaje mi się, że istnieje silna zależność pomiędzy
    stosunkiem szybkości i wygody pisania w danym języku a jego
    błędogennością. Niedawno nadziałem sie na C++owe max, które wywołane dla
    parametrów rand() - 2 i 0 zwróciło nagle -1. W Delphi, C# i Javie nie da
    się napisać odpowiednika C++owego makra, które w konkretnych
    okolicznościach może działać niezgodnie z założeniami. Niemożność
    stosowania makr w pewnym stopniu utrudnia pisanie, ale z drugiej strony
    eliminuje możliwość popełnienia trudnego do zlokalizowania błędu.

    W C++ można bardzo łatwo strzelić sobie w stopę trzymając w jednej ręce
    komplet tomów encyklopedii Britannica, a w drugiej - średniej wielkości
    piłkę plażową. Ale na przykład w C# trzeba już mieć na wyposażeniu karabin
    snajperski :)

    Pozdrawiam -- Spook.

    --
    Używam klienta poczty Opera Mail: http://www.opera.com/mail/

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: