Kto sie bawi C++

Gambit
Użytkownik
Użytkownik
Posty: 123
Rejestracja: 8 wrz 2004, o 22:17
Płeć: Mężczyzna
Lokalizacja: Łowicz
Podziękował: 2 razy

Kto sie bawi C++

Post autor: Gambit »

Gerwazy pisze:Trudno znaleźć coś w Sieci o rozróżnieniu na język obiektowy i zorientowany obiektowo, bo są ze sobą utożsamiane i raczej stosuje się określenie 'zorientowany obiektowo'. Lecz są osoby, które to rozróżniają. Już nie pamiętam gdzie ja to słyszałem bądź czytałem. Ja też to rozróżniam:
- język obiektowy, jak Java, w całości oparty na obiektach
Są osoby, które się co do tego kłucą. I poczęści mają racje, bo typy proste (np. char, int, double) w Javie nie są obiektami.
Gerwazy pisze: - język zorientowany obiektowo, jak C++, w którym programowaniu obiektowemu (nieobowiązkowemu) towarzyszy strukturalno-proceduralne pochodzące z C. Możliwe jest również ograniczenie do programowania bazującego na obiektach.
To, że C++, nie jest językiem w pełni obiektowy(w sensie ogólnym, którego to będę używał w całym poście: obiektowy = zorientowany obiektowo) to chyba wie każdy zorientowany w temacie, ale żeby odrazu rozróżniać "języki obiektowe" i "języki zorientowane obiektowo". Czy to, że język pozwala programować w wielu stylach to już go wyklucza z przywileju bycia językiem obiektowym? To jak nazwiesz Python'a, który pozwala zarówno na programowanie strukturalne, funkcyjne i obiektowe? A OCaml'a? Zresztą który nowoczesny język nie pozwala programować w więcej niż jednym "stylu"? Możesz powiedzieć, że C++ niespełnia wszystkich założeń OOP, ale prawda jest taka, że takie języki można policzyć na palcach jednej ręki (ja znam tylko Smalltalk'a i Simula67).
Poza tym AFAIK Bruce Eckel, który był członkiem Komitetu Standardów C++, nic nie pisał w "Thinking in C++" (w "Thinking in Java" zresztą też) o domniemanych różnicach między "obiektowy", a "zorientowany obiektowo).
Inna sprawa, że jeżeli jest prawdą to co piszesz, to i tak próba przekonania ludzi do tego była by walką z wiatrakami - weź np. spróbuj wytłumaczyć wszystkim, że tak naprawdę Assembler to nie język, a tylko program tłumaczący kod Assembly'ego (poprawna nazwa języka) na odpowiednik binarny.
Vrock
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 20 wrz 2004, o 00:03
Płeć: Mężczyzna
Lokalizacja: Kluczbork

Kto sie bawi C++

Post autor: Vrock »

Hehe ciekawa dyskusja "zorientowany obiektowo" "obiektowy"
Nie pomyslalbym że te 2 słowa mogą oznaczać co innego ;]
Ale do rzeczy, nie ma sensu dyskutowac na temat ktory jest obiektowy a ktory zorientowany obiektowo. W koncu dojdziecie do wniosku "no wiec ten jest obiektowy a ten zorientowany obiektowo" i co z tego. Szczerze mowiac Z Java niewiele mialem do czynienia, ale z tego co tu czytam jakos nie chce mi sie wierzyc ze nie ma w niej mozliwosci programowania strukturalnego, a nawet jesli, to czy ten fakt czyni jezyk Java lepszym? Poza tym mysle, ze problemy z przydzielaniem i zwalnianiem pamieci np. w C czy C++ (niekoniecznie musza byc z tym problemy) sa pozytywnym zjawiskiem, bo dzieki nim programista jest zmuszony wglebic sie temat zarzadzania pamiecia, co jest swietnym cwiczeniem na doskonalenie umiejetnosci logicznego myslenia.


A jesli chodzi o ta dyskusje to zacytuje moze:
"Mimo, że Java bazuje na języku C++, jest językiem znacznie bardziej zorientowanym obiektowo." (Thinking in Java Edycja 3, Bruce Eckel)
Wynika z tego, że Java jest również językiem zorientowanym obiektowo Fakt - bardziej niż C++. Czy istnieją w ogóle języki oparte TYLKO i WYŁĄCZNIE na obiektach?? Jeśli tak - kiepsko widzę ich przyszłość...

Poza tym - mialy byc tu jakies ciekawostki o C++ ;]
Zielony
Użytkownik
Użytkownik
Posty: 93
Rejestracja: 11 wrz 2004, o 14:23
Płeć: Mężczyzna
Lokalizacja: Kraków

Kto sie bawi C++

Post autor: Zielony »

pytanie apropo waszej dydkusji:

czym się różni programowanie obiektowe od strukturalnego?
(oprócz nazwą)

Jak scharakteryzować jedną czynność , a jak drugą?
Gambit
Użytkownik
Użytkownik
Posty: 123
Rejestracja: 8 wrz 2004, o 22:17
Płeć: Mężczyzna
Lokalizacja: Łowicz
Podziękował: 2 razy

Kto sie bawi C++

Post autor: Gambit »

Vrock pisze: Szczerze mowiac Z Java niewiele mialem do czynienia, ale z tego co tu czytam jakos nie chce mi sie wierzyc ze nie ma w niej mozliwosci programowania strukturalnego,
W Javie nie napiszesz programu bez choćby jednego obiektu.
Vrock pisze: a nawet jesli, to czy ten fakt czyni jezyk Java lepszym?
To, że nie pozwala na programowanie inne niż obiektowe, czy to, że Java jest w pełni obiektowa?
Vrock pisze: Poza tym mysle, ze problemy z przydzielaniem i zwalnianiem pamieci np. w C czy C++ (niekoniecznie musza byc z tym problemy) sa pozytywnym zjawiskiem, bo dzieki nim programista jest zmuszony wglebic sie temat zarzadzania pamiecia, co jest swietnym cwiczeniem na doskonalenie umiejetnosci logicznego myslenia.
Taaaak... programiści uwielbiają ślęczeć na tropieniu trudnych do znalezienia bug'ów... Widać to w szczególności w nowoczesnych językach programowania (Java, C#, Python, Ruby, itp.), gdzie trzeba ręcznie zwalniać pamięć ;)
Vrock pisze: A jesli chodzi o ta dyskusje to zacytuje moze:
"Mimo, że Java bazuje na języku C++, jest językiem znacznie bardziej zorientowanym obiektowo." (Thinking in Java Edycja 3, Bruce Eckel)
Wynika z tego, że Java jest również językiem zorientowanym obiektowo :) Fakt - bardziej niż C++.
To jest tylko potwierdzenie tego co mówiłem - "obiektowy" = "zorientowany obiektowo".
Vrock pisze: Czy istnieją w ogóle języki oparte TYLKO i WYŁĄCZNIE na obiektach??
Przeczytaj uważnie moją poprzednią wypowiedź.
ODPOWIEDZ