eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjaki wybrac jezyk?Re: jaki wybrac jezyk?
  • Data: 2011-08-17 12:12:55
    Temat: Re: jaki wybrac jezyk?
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 2011-08-17, Michal Kleczek <k...@p...onet.pl> wrote:
    [...]
    >> I żeby nie być gołosłownym:
    >> #v+
    >> import java.util.ArrayList;
    >>
    >> class test
    >> {
    >> public static void main(String[] args)
    >> {
    >> ArrayList al = new ArrayList();
    >> ArrayList<Integer> ial = (ArrayList<Integer>)al;
    >>
    >> al.add(new Integer(1));
    >> al.add("foo");
    >> al.add("bar");
    >> al.add("baz");
    >> al.add("nabla");
    >>
    >> for (int i = 0; i< ial.size(); ++i)
    >> System.out.println(ial.get(i));
    >> }
    >> }
    >> #v-
    >>
    >> Zgadnij, kiedy to się wywróci, o ile się wywróci? Java 6.26.
    >>
    >> Przepraszam, ale w poważnym języku o statycznym systemie typów taka
    >> głupota zostanie wykryta na etapie kompilacji.
    >
    > Zostaje wykryta - ja dostaje warning w 1 i 2 linijce main()

    Wykryte są jedynie niesprawdzone operacje rzutowania. To zdecydowanie za
    mało. Jest istotna różnica między dodaniem Integera i Stringa do
    kontenera Integerów: pierwsze powinno się powieść, drugie powinno
    wylecieć w powietrze, choćby w czasie wykonania programu przy operacji
    dodania elementu.

    Poza tym ostrzeżenia nie są dla mnie satysfakcjonujące ze względu na
    sposób ich prezentacji i uciszania w sunowskim kompilatorze. Albo muszę
    usunąć wszystkie (nie zawsze w ogóle mogę ze względu na inne operacje
    użyte w programie), albo dostaję kilometry ostrzeżeń, albo ignoruję
    wszystkie jak leci.

    > Ignorujesz warning - to tak jakbys stosowal <reinterpret_cast> w C++ -
    > widocznie wiesz co robisz.

    Chciałbym je zignorować *selektywnie*, a nie dostawać dziesiątki linii,
    z których jeszcze muszę ręcznie wydłubać co zignorować, a co nie. To już
    wina kompilatora, nie języka.

    >> Java jest ewenementem, bo
    >> to język o typowaniu statycznym ale dynamicznym.
    >>
    >
    > Tzn chodzi ci o to, ze informacja o typie jest dostepna w runtime?

    Nie. Chodzi o to, że *mimo że* informacja o typie jest dostępna w czasie
    kompilacji, to sprawdzanie typu zostaje w większości (w kontenerach)
    zrzucone na run-time.

    > Java
    > nie jest tu ewenementem.

    --
    Secunia non olet.
    Stanislaw Klekot

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: