eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCarnegie-Mellon przestaje uczyc programowania obiektowego › Re: Carnegie-Mellon przestaje uczyc programowania obiektowego
  • Data: 2011-04-04 12:37:34
    Temat: Re: Carnegie-Mellon przestaje uczyc programowania obiektowego
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 4 Kwi, 13:15, Paweł Kierski <n...@p...net> wrote:

    > Pomijając na razie kwestie łatwości zapisu i czytelności - nie widzę tu
    > niczego, czego nie dałoby się wyrazić w C++ za pomocą przestrzeni nazw
    > i jednostek kompilacji.

    Ja też nie, ale tylko dlatego, że Sebastian niewiele napisał :-) -
    chociaż można się przyczepić, że w C++ trzeba posługiwać się fizcznymi
    aspektami kodu (podział na pliki), żeby osiągnąć jakiś cel logiczny,
    np. ukrycie części prywatnej. To powinno być dostępne nawet w obrębie
    jednego pliku.

    Ale dodaj do tego jeszcze jakąś semantykę hierarchii i przestrzenie
    nazw okazują się być zbyt ubogie. Np. relację rodzic-dziecko między
    pakietami, która ma konsekwencje w widoczności nazw w jednym kierunku
    (np. tylko dziecko widzi część prywatną rodzica). Albo podział na
    pakiety publiczne i niepubliczne, również z konsekwencjami w
    hierarchii (np. tylko rodzic może wciągać swoje niepubliczne dzieci).
    Można sobie jeszcze wyobrazić różne rodzaje hierarchii - np.
    zagnieżdżenie vs. rodzic-dziecko. To są dwie różne relacje i mogą być
    użyte w różnych celach.

    Do tego można sobie jeszcze wyobrazić, że pakiety czy moduły wcale nie
    muszą być konstrukcjami top-level. Np. czemu nie mieć lokalnych
    pakietów/modułów tak jak mogą być lokalne klasy czy lokalne
    podprogramy? Albo czemu by pakiet/moduł nie miał być parametrem
    szablonu? To by było dobre zwłaszcza przy szablonach typu traits -
    teraz w C++ robi się sztuczne struktury ze statycznymi deklaracjami w
    środku, żeby zebrać do kupy parę rzeczy i podać razem jako parametr;
    przecież to nie powinna być struktura, to powinien być właśnie pakiet/
    moduł.

    Biorąc to wszystko do kupy przestrzenie nazw w C++ właściwie niczego
    nie oferują, a pakiety w Javie to (jak zwykle) tzw. "half-ass
    solution".

    > Innymi słowy - da się pisać modułowo w C++

    Da się organizować deklaracje w grupy. Np. std:: to grupa nazw z
    biblioteki standardowej a yami:: to grupa nazw z YAMI4. W C do tego
    samego celu stosuje się przedrostki i niestety ale to jest cała
    funkcjonalność tego elementu języka. Faktem jest, że w 98% przypadków
    tylko o to chodzi, ale pozostaje jeszcze te ciekawe 2%.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

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: