W czym forma binarna jest lepsza od sqlite?
Dowolny tekstowy plik konfiguracyjny (bez względu na to czy mowa o INI, XML, YAML itd.) bez problemu można przedstawić w formie binarnej. Podczas serializacji, zamiast generować linijki ze znacznikami, identyfikatorami, ciągami danych i innych fraz, zapisuje się po prostu nazwę elementu, dodatkowe dane, liczbę elementów potomnych i te elementy, w ten sam sposób. Dzięki temu te same dane opisuje krótsza zawartość pliku, o z góry znanej budowie, łatwiejsza do przetwarzania.
Czy w ten sposób zserializowany np. XML będzie lepszy od SQLite? No nie bardzo – to w dalszym ciągu ten sam tekstowy plik konfiguracyjny, tyle że łatwiejszy do zrozumienia i przetworzenia dla komputera, ale trudniejszy do analizy dla człowieka.
Binarna forma to nic innego jak cache – szybsza serializacja i deserializacja, ta sama zawartość (wciąż tekstowa!).
Czy język język zapytań jest lepszy od sql, czy api dla . net jest wygodniejsze w użyciu niż EntityFramework?
Nie używam tych technologii, nie znam ich, więc nie powinienem się w tym temacie wypowiadać.
Czy twój format jest szybszy od jednoplikowej bazy sqlite?
Nie, i żaden inny format tekstowych konfiguracji nie jest i nie będzie szybszy od silników bazodanowych.
To raczej oczywiste – tekstowe pliki konfiguracyjne służą przede wszystkim programistom i użytkownikom, nie komputerowi. Dlatego są w całości tekstowe, da się je wygodnie tworzyć i czytać. Natomiast systemy bazodanowe stworzone są do bardzo szybkich operacji na dużej ilości danych, bez wymogu utrzymywania czytelnej dla człowieka struktury.
Zwykle ustawienia mojego programu serializuję do pliku xml (jedna linia kodu), a gdy trzeba, deserializuję i mam odtworzony cały obiekt klasy.
No to też dam radę zrobić jedną linijką kodu.
W czym wygodniejszy jest twój format?
W obsłudze z poziomu Free Pascala. Jest bardzo prosty w obsłudze (na poziomie klas TRegistry czy TIniFile), ale posiada od nich większą funkcjonalność – wsparcie większej liczby typów danych, wbudowana konwersja danych na różne formy, kupka metod do dodatkowych czynności itd. API nie jest też tak kobylaste i zagmatwane jak to do XML.
Ogólnie jestem z niego zadowolony, bo stworzyłem go (format i natywną libkę do jego obsługi) w taki sposób, aby spełniał moje oczekiwania. No i spełnia, choć jeszcze wiele pracy przede mną. ;)