-
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
Następne wpisy z tego wątku
- 04.04.11 12:45 Paweł Kierski
- 04.04.11 12:56 Maciej Sobczak
- 04.04.11 13:01 Paweł Kierski
- 04.04.11 14:53 A.L.
- 05.04.11 06:20 Andrzej Jarzabek
- 05.04.11 07:41 Sebastian Kaliszewski
- 05.04.11 07:52 Paweł Kierski
- 06.04.11 14:14 Andrzej Jarzabek
- 06.04.11 17:31 Zbigniew Malec
- 07.04.11 04:53 p...@p...onet.pl
- 07.04.11 10:25 Andrzej Jarzabek
- 07.04.11 14:43 p...@p...onet.pl
- 07.04.11 18:41 Zbigniew Malec
- 07.04.11 20:29 p...@p...onet.pl
- 07.04.11 23:45 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz