Rozumowanie, czy dziedziczenie (lub jakakolwiek pojedyncza cecha jest naprawdę) jest konieczna, czy nie, bez uwzględnienia reszty semantyki języka jest bezcelowe; kłócisz się w próżni.
Potrzebujesz spójnej filozofii projektowania języka; język musi być w stanie elegancko rozwiązać problemy, dla których jest przeznaczony. Model osiągnięcia tego celu może, ale nie musi, wymagać dziedziczenia, ale trudno jest to ocenić bez dużego obrazu.
Jeśli, na przykład, twój język ma funkcje pierwszej klasy, częściowe zastosowanie funkcji, polimorficzne typy danych, zmienne typów i typy ogólne, masz prawie takie same podstawy jak w przypadku klasycznego dziedziczenia OOP, ale używając innego paradygmatu.
Jeśli masz późne wiązanie, dynamiczne pisanie, metody jako właściwości, argumenty funkcji elastycznych i funkcje pierwszej klasy, obejmujesz również te same podstawy, ale ponownie, używając innego paradygmatu.
(Znalezienie przykładów dla dwóch opisanych paradygmatów pozostawia się jako ćwiczenie dla czytelnika).
Pomyśl więc o semantyce, którą chcesz, baw się z nią i sprawdź, czy są wystarczające bez dziedziczenia. Jeśli nie są, możesz albo zdecydować się na wrzucenie spadku do miksu, albo możesz zdecydować, że czegoś brakuje.