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: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
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).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.
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.