Cześć,
Mam taki pomysł jak osiągnąć prawdziwą reużywalność kodu. Zrobiłem w SDL_Chomiku prostą bibliotekę graficzną:
https://www.chomik.tech/sdl_chomik_widgets.html
i taki mały projekcik demonstrujący jej możliwości:
https://www.chomik.tech/fantasy.html
W tym fantasy-0.0.1.zip już jest moja biblioteka. Wymaga chomika 0.2.1.
Jeśli ktoś przeoczył to epokowe wydarzenie, jakim było stworzenie Chomika to zapraszam na stronę:
https://www.chomik.tech/index.html
Teraz o tym moim pomyśle. Jak wiecie reużywalność kodu (code reusability) jest rzeczą pożądaną, stąd mamy biblioteki, dziedziczenie, namespace'y i inne takie rzeczy. Przyszło mi do głowy, że w Chomiku można to osiągnąć prawie bez zmian, wykorzystując tylko naturalne dla niego wieloczłonowe nazwy zmiennych. Prawdziwą reużywalność kodu. Zerknijcie może na kod tej graficznej biblioteki - plik sdl_chomik_widgets.sdl_chomik. Każde wywołanie/przypisanie zmiennej należącej do tej biblioteki jest poprzedzone "prefixem", w naszym wypadku wartością zmiennej 'sdl chomik widgets prefix'. Sęk w tym, że zmienna ta nie jest nigdzie zdefiniowana, i jeśli zobaczycie kod "klienta" tej biblioteki, czyli plik "fantasy.sdl_chomik", to znajdziecie w nim NAJPIERW definicję zmiennej "sdl chomik widgets prefix", a potem dopiero includa biblioteki.
Na tym właśnie mój nowy genialny pomysł polega. Podobnie jak plik wykonywalny jest umieszczony gdzieś w systemie plików, tak biblioteka jest umieszczona w namespace zdefiniowanym przez jej klienta. Może to być liczba (1) jak w naszym wypadku, a może być coś innego, nawet string. Zatem klient mówi bibliotece gdzie ona ma się umieścić w jego przestrzeni nazw, a nie odwrotnie. W ten prosty sposób możemy nie tylko z punktu widzenia klienta instalować różne podobne do siebie biblioteki w jednym programie. Możemy nawet władować kilkukrotnie tą samą bibliotekę, albo różne jej wersje, byleby podawać przed każdym includem inny prefiks. Nie muszę dodawać, że taka reużywalność jest na razie możliwa tylko w Chomiku (no i SDL_Chomiku).
Prawdę mówiąc nawet w Chomiku nie będzie to działało bezproblemowo. Niestety. Problemem są enumy (nazywane u mnie "typami"), których składnia powstała zanim wpadłem na tą reużywalność kodu. Kolizja nazw jest w związku z tym nieunikniona. Ale myślę o takiej przeróbce Chomika, żeby i enumy można było prefiksować.
Oczywiście to kolejna rewolucja w informatyce, niestety obawiam się, że przejdzie bez większego echa ... ;)))