Całkowicie uzasadnionym zastrzeżeniem Alana Kay'a do C ++ było to, że był to język makro na C.
Pojęcie „przekazywanie wiadomości” jest po prostu ideą, że instancje klas są przechowywane w pamięci i ujawniają metody, które można wywołać. Przekazywanie wiadomości jest * symulowane "w C ++ przy użyciu vtables przechowujących wskaźniki do funkcji.
Stwierdzenie, że przekazywanie wiadomości nie istnieje w C ++, jest niedokładne, dokładniejsze jest stwierdzenie, że przekazywanie wiadomości jest integralną częścią innych języków, takich jak smalltalk i Java, ponieważ język nie przetwarza obcego konstruktu i przenosi go bezpośrednio na język C.
Jest to wysoce semantyczny argument projektowania języka, który, jak podejrzewam, wykracza nieco poza poziom doświadczenia pytającego.
Biorąc to pod uwagę, istnieje tysiące powodów, aby nienawidzić C ++ i bardzo niewiele powodów, by go kochać.
Zamiast szukać idealnego młotka i idealnego gwoździa, znajdź idealny dom do zbudowania, a następnie znajdź odpowiednie narzędzia ... które wymagają doświadczenia.
Ważne jest również, aby pamiętać, że w programowaniu systemów, czego obawia się Alan Kay, nie jest „czysty OOP”, tak naprawdę jest siłą C ++. Do każdej jego własności...