Thread View: pl.comp.lang.c
7 messages
7 total messages
Started by Jacek Marcin Jaw
Sat, 20 Apr 2024 16:37
Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: Jacek Marcin Jaw
Date: Sat, 20 Apr 2024 16:37
Date: Sat, 20 Apr 2024 16:37
339 lines
16163 bytes
16163 bytes
Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych 1 Metadane autor: Jacek Marcin Jaworski pseudonim: Energo Koder Atlant pomocnicy autora: BRAK miejsce: Pruszcz Gd. utworzono: 2024-04-20 wersja: 128 z dnia: 2024-04-20 program składu: Libre Office Writer sys. op.: Kubuntu Spis treści 1 Metadane 1 2 Wstęp 3 2.1 Teza 3 2.2 Streszczenie 3 2.3 Tab. skrótów 3 3 Metoda badawcza 3 4 Fakty 4 4.1 3 rodzaje wtyczek w prog.: narzędzia, logika i okna 4 4.2 Patologiczne wtyczki w edytorze KDE Kate 4 4.3 Bibl. Qt umożliwia jedynie tworzenie wtyczek dla narzędzi i dla okien ale nie dla logiki prog. 4 5 Moralna ocena faktów przytoczonych w raporcie 5 5.1 Z czego wynikają kryteria oceny 5 5.2 Jakie wsk. mor. popr. "są na tak" a jakie "są na nie" i dlaczego? 5 5.3 Analiza znanych faktów w świetle wsk. mor. popr. zwanym Sukcesy naukowe i kompetencje!!! 9 6 Podsumowanie 10 6.1 Rewelacje, zalety, wady i partactwa w proj. bibl. Qt 10 6.1.1 Rewelacje 10 6.1.2 Zalety 10 6.1.3 Wady 10 6.1.4 Partactwa 10 6.2 Wnioski 10 6.3 Czy problem jest organizacyjny czy jednostkowy? 10 6.4 Czy problem jest trwały czy czasowy? 11 6.5 Przewidywania na przyszłość 11 6.6 Zalecenia na teraz 11 6.7 Zalecenia na przyszłość 11 2 Wstęp Powodem napisania tego Raportu Totaliztycznego są moje wyniki badań nad tworzeniem programów nieuprzywilejowanych opartych o wtyczki. Celem moich badań było wypracowanie sposobów kodowania komercyjnych (z zamkniętymi źródłami) programów opartych o C++ i Qt z udostępnianiem jedynie Publicznego Pakietu Rozwojowego (w j. ang. SDK) w celu umożliwienia tworzenia niezależnych wtyczek. 2.1 Teza Biblioteka Qt zawiera wbudowane ograniczenia uniemożliwiające tworzenie komercyjnych programów rozszerzalnych przez niezależnych autorów wtyczek. 2.2 Streszczenie Biblioteka Qt umożliwia tworzenie jedynie wtyczek dla kl. narzędziowych i dla okien programu. Niemożliwe jest tworzenie wtyczek dla logiki programu. Wynika to z faktu wymuszania przez Qt używania pętli zdarzeń przez wymuszanie użycia asynchronicznego mechanizmu sygnał-slot. 2.3 Tab. skrótów wsk. mor. popr. Wskaźniki Moralnej Poprawności arch. architektura proj. projekt bibl. biblioteka prog. program f. funkcja o. obiekt dok. dokumentacja lub dokument aut. automatycznie SZAP w j. ang. USONA (United States Of North America) 3 Metoda badawcza Opieram się na własnych, wielokrotnych próbach wypracowania standardowej metody projektowania arch. i programowania prog. opartego o C++, Qt i wtyczki. Czyniąc te wysiłki opierałem się na wybrakowanej dok. Qt na temat wtyczek (jest to dok. w stylu: zobacz sobie jak jest to w przykładzie). Dodatkowo pobieżnie przeanalizowałem sposób programowania wtyczek w edytorze KDE Kate. 4 Fakty 4.1 3 rodzaje wtyczek w prog.: narzędzia, logika i okna Narzędzia to bibl. dostarczane przez zew. dostawców. Do narzędzi zaliczamy też bibl. firmowe (organizacji w której pracujesz). Wtyczki dla narzędzi sprowadzają się do obsługi różnych formatów plików i różnych protokołów. Do logiki zaliczamy klasy sterujące programem. One kontrolują program oraz zawierają algorytmy sterujące jego pracą. Wtyczki dla logiki dostarczają alternatywnych algorytmów pracy (do nich zaliczamy też raporty). Okna, jak wiadomo, składają się z kontrolek. One też mogą zawierać alternatywną zawartość dostarczaną przez wtyczki. 4.2 Patologiczne wtyczki w edytorze KDE Kate Edytor KDE Kate ma nienormalne wtyczki które mają po prostu pełen dostęp do okna głównego tego edytora. Jest to kompletnie nienormalne z komercyjnego p. widzenia. Bo oczywiste jest, że firma chcąca zarabiać na edytorze dla programistów nie może dostarczać pełnych jego źródeł. Zamiast nich powinna udostępniać minimalny Publiczny Pakiet Rozwojowy. Te chamskie rozwiązanie przyjęte przez autorów edytora KDE Kate jest dla mnie dowodem, że nie można w prog. Qt uzyskać komercyjnej jakości ani przestrzegać komercyjnych i biznesowych standardów. 4.3 Bibl. Qt umożliwia jedynie tworzenie wtyczek dla narzędzi i dla okien ale nie dla logiki prog. Mechanizm sygnał-slot to dobry pomysł, bo pozwala na łączenie o. niepowiązanych kl.. Jednak jego wadą jest jego implementacja z użyciem pętli zdarzeń. To powoduje brak możliwości wstrzelenia się z dodatkowymi f. jakie chciałbym realizować wtyczkami w reakcji na zmiany stanów w logikach prog. Wynika to z tego, że chcąc separować logiki od okien muszę używać mechanizmu sygnał-slot (w przeciwnym wypadku wychodzi taka kupka jak w edytorze KDE Kate, czyli wymusza to konieczność udostępniania całego głównego okna prog. i tym samym wszystkich kl. w prog.). Dlatego gdy wtyczka robi coś niestandardowego to w prog. robi się chaos. Np. w edytorze tekstu zrobiłem wtyczkę która po otwarciu pliku H++ aut. otwiera do pary plik C++. Wtedy idą dwa sygnały aktywacji edytora (najpierw z plikiem H++, a potem C++) i z powodu asynchroniczności nie można zapobiec aktywacji pliku C++ (co jest błędem, bo otwierany był plik H++). Dzieje się tak ponieważ w pętli zdarzeń jest realizowana kompresja takich samych sygnałów (usuwane są ich duplikaty). Naiwnym rozw. był by sygnał QTimer::singleShot(), ale to tylko pogarsza sprawę, bo przecież mogą być kolejne wtyczki które coś chcą robić z edytorami po otwarciu pliku. 5 Moralna ocena faktów przytoczonych w raporcie 5.1 Z czego wynikają kryteria oceny Cytat z mojej „Ideologii Geniuszy-Mocarzy”: „W toku badań naukowych prowadzonych "po godzinach" prof. Jana Pająk ustalił jaka jest "filozofia Boga" czyli jak się ocenia ludzkie działanie. Te kryteria to "wskaźniki moralnej poprawności". Prof. Pająk podał 7 tych wsk. Mi do tej pory udało się wskazać kolejnych 6. Jednak mimo że wskazane przeze mnie kol. 6 wsk. mor. popr. jest całkowicie logiczne i wynikają one z filozofii Totalizmu jaką opisuje sam prof. Jan Pająk, to wcale nie chce on ich zaakceptować ani dyskutować na ich temat. Wysyłane do niego listy el. na ten temat całkowicie ignoruje.” 5.2 Jakie wsk. mor. popr. "są na tak" a jakie "są na nie" i dlaczego? Wsk. mor. popr. Skrótowy opis wsk. mor. popr. Skrótowa analiza zagadnienia Ocena 1. Pole moralne!!! Moralne jest podejmowanie wysiłku intelektualnego (wykazywanie się wysoką inteligencją). Niemoralne jest głupie postępowanie. Stosowanie takiego wynalazku jak asynchroniczna pętla zdarzeń jest sprzeczna z logiką. NIE 2. Karma uczuciowa!!! Moralne jest wzbudzanie u innych takich uczuć jakie samemu chciało by się doświadczyć, bo konieczne jest doświadczenie takich samych uczuć jakie się wzbudziło u innych. Czyli nie należy innym czynić tego co tobie niemiłe. Wciskanie za darmo wadliwych bibl. musi wrócić do autorów. NIE 3. Praca Moralna!!! Moralna jest jest dobrowolna praca, najbardziej pod górę pola moralnego i generująca dobrą karmę (czyli nikomu nie szkodzi). Zaprogramowanie tego potwora w postaci bibl. Qt wymagało ogromu pracy. Ale tej pracy nie wykonali inwestorzy tylko wyzyskiwani programiści. NIE 4. Odpowiedzialność!!! Moralne jest branie odpowiedzialności za siebie i za innych. Ktoś sobie wyobraża, że nie trzeba odpowiadać za robienie takich wadliwych bibl. bez dobrej dok. wyjaśniającej jak profesjonalnie kodować z jej użyciem. NIE 5. Motywacje!!! Moralne jest podejmowanie wysiłku i przełamywanie lenistwa. Niemoralne jest np. uleganie korupcji w zamian za rezygnację z budowy własnej potęgi. Tworzenie z zał. wadliwych bibl. to niemoralne motywacje. NIE 6. Uczucia!!! Moralne jest pokonywanie uczuć jakie nakłaniają do niemoralnego postępowania. NARZUCANIE INNYM NIECHCIANYCH UCZUĆ JEST NIEMORALNE BO TO TORTURY. I TO NIE WAŻNE CZY SĄ ONE PRZYJEMNE CZY NIE!!! Po minach jakie robił prezes qt.io na jednym z filmików wnioskuję, że rozpiera go poczucie dumy, wyższości i potęgi. Są to typowe cechy pasożyta. NIE 7. Sumienie!!! Moralne jest słuchanie sumienia, bo zna ono wszystkie prawa moralne i wydaje nieomylne sądy na temat każdego zrealizowanego działania. Niemoralne jest zagłuszanie sumienia. Robienie wadliwych prog. i blbl. Jest sprzeczne z sumieniem i jest zagłuszaniem sumienia. NIE 8. Ekonomia i własne utrzymanie!!! Moralne jest przestrzeganie praw ekonomi, które wynikają z matematyki i z logiki gdyż nią jest opisany wszechświat fizyczny w którym żyjemy. Moralne jest takie prowadzenie interesów, by wszystkie strony miały dobre zyski i żadna strona nie traciła. Wadliwy mechanizm sygnał-slot tłumaczy opory przy wdrażaniu tej bibl. A to tłumaczy dlaczego Quasar ani Trolltech nigdy nie wypracowały czystego zysku (zawsze przynosiły straty). NIE 9. Uczciwość!!! Moralna jest uczciwość. Podstęp to iluzja przyszłości (jest to moralne). Psikus to żart chwilowo wprowadzający w błąd (jest to moralne). Oszustwo to długotrwałe kłamstwo na temat przeszłości (jest to niemoralne). Podsuwanie popsutych bibl. jest nieuczciwe. NIE 10. Solidność!!! Moralne jest doprowadzanie projektów do końca jaki u odbiorcy/klienta nie generuje negatywnych uczuć. Zaleca się by wynik końcowy budził podziw i zachwyt. Tworzenie wadliwych bibl. jest sprzeczne z solidnością. NIE 11. Braterstwo!!! Moralna jest walka o człowieka a nie z człowiekiem! Niemoralne jest pogrążanie ludzi przez wrabianie w łamanie jakiegoś tajnego lub niemoralnego prawa. Totalizci powinni nieść pomoc wszelkim dobrym i moralnym ludziom (oraz ludziom którzy mają takie skłonności). Kodowanie wadliwych prog. i bibl. jest sprzeczne z poczuciem braterstwa z innymi programistami. NIE 12. Droga i wdrożenia!!! Moralne jest „zrobienie wszystkiego co możliwe” w celu pełnej realizacji proj. Wtedy mówimy, że droga do celu była moralna. Moralne jest doprowadzanie proj. do fazy wdrożenia, czyli przekazania ich użytkownikom do normalnej eksploatacji. Droga do powstania Qt była skażona negatywnymi motywacjami. Dlatego mimo wdrożenia do sprzedaży proces jej powstania jest niemoralny. NIE 13. Sukcesy naukowe i kompetencje!!! Moralne jest zdobywanie kol. tytułów, oraz naukowe rozwiązywanie zagadek Naszego Wszechświata oraz inżynierskie rozwiązywanie problemów technicznych. Aby legalnie używać danej technologii trzeba na to uczciwie zasłużyć solidnie ucząc się obsługi i uczciwie pracując by legalnie tą technologię wytworzyć lub kupić. Brak pozytywnej motywacji w postaci chęci dostarczenia dobrej bibl. oznacza brak kompetencji w zakresie moralności. To przekreśla sukcesy w kodowaniu. NIE Dla przypomnienia podam, że by ktoś był moralny to wszystkie wskaźniki muszą być na TAK!!! lub na BRAK i żaden nie może być na NIE. Wsk. moralnej popr. w 13 na 13 przypadkach jednomyślnie wskazują, że udostępnianie tej wadliwej bibl. jest niemoralne. 5.3 Analiza znanych faktów w świetle wsk. mor. popr. zwanym Sukcesy naukowe i kompetencje!!! Ktoś mógłby się dziwić, że mimo rozklepania tak wielu problemów i opanowaniu tak wielu zagadnień informatycznych można mówić o braku kompetencji inwestora który sfinansował bibl. Qt. Jednak Świat i Wszechświat jest podporządkowany nie tylko prawom fizyki. Ważniejsze od praw fizyki są prawa moralne. Podstawowym czynnikiem jaki należy brać pod uwagę to odp na pyt.: Czy inwestor kierował się dobrą wolą? Bo całe dobro wynika jedynie z dobrej woli. Po prostu dobrej woli nic nie zastąpi żadna forsa, ani miliony linii kodu, ani żadna religia, ani filozofia ani ideologia. Niestety założenia leżące u podstaw bibl. Qt są niemoralne, bo ona jest celowo popsuta pętlą zdarzeń. Dlatego mnie nie oszałamiają miliony linii kodu bibl. Qt, bo wiem, że to wszystko zostało zakodowane poprzez szalone topienie kasy. Ta kasa prawdopodobnie pochodzi prosto z piekła (z kosmosu). I podobnie jak piekło bibl. Qt ma dopiekać ambitnym programistom na Ziemi. Ta chęć ograniczania i ogłupiania jest tu decydującym czynnikiem wskazującym na braki ideologiczne lub po prostu wrogą działalność inwestora który sfinansował bibl. Qt. A przecież nie można uznać wroga za intelekt kompetentny w sprawach dla nas kluczowych. Dlatego mamy tu brak kompetencji i wsk. Sukcesy naukowe i kompetencje!!! jest na NIE. 6 Podsumowanie 6.1 Rewelacje, zalety, wady i partactwa w proj. bibl. Qt 6.1.1 Rewelacje 1. Zakodowanie bibl. Qt w C++; 2. Bibl. Qt rozwiązuje wiele typowych problemów programistycznych (szczególnie w zakresie podst. narzędzi do obsługi plików, wątków, sieci); 3. Mechanizm sygnał-slot jest b. dobrą koncepcją ułatwiającą kodowanie. Jednak jest wadliwie zakodowany, bo zamiast bezpośrednich wywołań sloty są wywoływane z opóźnieniem po oddaniu sterowania do pętli zdarzeń. 6.1.2 Zalety 1. Obecnie (2024r.) chyba nie ma lepszej bibl. dla C++ która była by powszechnie dostępna. 6.1.3 Wady 1. 6.1.4 Partactwa 1. Mechanizm sygnał-slot działa z opóźnieniem, asynchronicznie przez pętlę zdarzeń; 2. Nie można zaglądać z debugera do wnętrza o. kl. Qt (wszystko jest ukryte pod wsk. d do zmiennych prywatnych); 3. Bibl. Qt wymusza tworzenie własnych bibl. pośredniczących, w celu upraszczania zbyt rozwlekłej składni (np. kl. QFile i QProcess). 4. Tolerowanie błędów w kluczowych kl. takich jak QMainWindow, QDockWidget i QMdiArea. Robią to w celu wyeliminowania twórców tradycyjnych, normalnych prog. na dekstopy; 5. Ukrywanie przed programistami C++ kl. używanych w QML. Robią to by wyeliminować normalnych programistów C++ którzy odróżniają program od skryptu. 6.2 Wnioski Bibl. Qt nie pozwala na łatwe tworzenie wtyczek dla logiki prog. w prog. komercyjnych o zamkniętych źródłach. 6.3 Czy problem jest organizacyjny czy jednostkowy? Problem jest organizacyjny. 6.4 Czy problem jest trwały czy czasowy? Problem jest trwały. 6.5 Przewidywania na przyszłość Qt dalej będą rozdawać, bo wiedzą, że nic nowoczesnego i profesjonalnego nie da się z nią zakodować. 6.6 Zalecenia na teraz W prog. komercyjnych obejściem problemu pętli zdarzeń i mechanizmu sygnał-slot jest stosowanie prostych f. globalnych do wywołań zwrotnych które bezpośrednio będą wywoływać sloty. Jednak ich wadą jest to, że one muszą używać zmiennych globalnych (wsk. do logik i do okien). 6.7 Zalecenia na przyszłość Jak miałbym komuś podpowiadać, to: 1. Należy rozwidlić proj. Qt; 2. Należy wydzielić kl. wolne od mechanizmu sygnał-slot; 3. Należy popr. mechanizm sygnał-slot by wywoływał sloty bezpośrednio, synchronicznie, bez pętli zdarzeń; 4. W pierwszej kol. należy dostosować najważniejsze kl. Qt. Wymagają one dostosowania z tego powodu, że nie raz samo wywołanie ich slotu nie wykonuje wszystkich działań i konieczne jest dokończenie czegoś w wolnym czasie (w j. ang. idle). Takie bzdury należy wyeliminować. 5. Należy popr. podst. kl. do tworzenia normalnych, tradycyjnych prog. QMainWindow, QDockWidget i QMdiArea; 6. Należy usunąć interpreter QML i Qt Script oraz kl. jakich nie ma sensu używać w C++; 7. Dodać opcję włączenia zgłaszania błędów wyjątkami (bez zmieniania API); 8. Wyłączenie łapania wyjątków w pętli zdarzeń (żeby móc je złapać w f. main()); 9. Umożliwienie awaryjnego zamykania poł. z bazą SQL (np. przy długich zapytaniach); 10. Poprawienie ogłupiającego nazewnictwa np. w QSizePolicy; 11. Stworzenie nowoczesnych stylów QSS dla kontrolek graf.; 12. Popr. prog. Qt Asistant tak by można go było wygodnie używać i żeby wyświetlał też dokumentację programistyczną z podręczników man.
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: heby
Date: Sat, 20 Apr 2024 22:29
Date: Sat, 20 Apr 2024 22:29
109 lines
4877 bytes
4877 bytes
On 20/04/2024 16:37, Jacek Marcin Jaworski wrote: > Biblioteka Qt zawiera wbudowane ograniczenia uniemożliwiające tworzenie > komercyjnych programów rozszerzalnych przez niezależnych autorów wtyczek. Podobnie jak oprogramowanie pralki. Ono też, najwidoczniej, jest nieprzydatne do celów komercyjnych. > programu. Wynika to z faktu wymuszania przez Qt używania pętli zdarzeń > przez wymuszanie użycia asynchronicznego mechanizmu sygnał-slot. Brednia. Sygnał slot nie ma nic wspólnego z pętlą zdarzeń. Możesz wołać synchronicznie jak i chować w kolejkę. Wybór po stronie programisty, jak używa s-s i czy w ogóle używa. Myslisz pętlę komunikatów z s-s i wychodzi sieczka. > 4.3 Bibl. Qt umożliwia jedynie tworzenie wtyczek dla narzędzi i dla > okien ale nie dla logiki prog. Biblioteka Qt ma w nosie wtyczki. Jej podstawowe cele to dostarczenie userowi szeregu gotowych narzędzi do pisania typowych programów. Wtyczki to zagadnienie skomplikowane, głównie z powodu stabilności ABI, co oznacza mocno utrudnione dostarczanie generycznych rozwiązań. > niepowiązanych kl.. Jednak jego wadą jest jego implementacja z użyciem > pętli zdarzeń. 1) sygnał-slot to nie jest pętla zdarzeń. Patrz boost::signal. 2) Qt to nie tylko pętla zdarzeń > logikach prog. Wynika to z tego, że chcąc separować logiki od okien > muszę używać mechanizmu sygnał-slot Wymaganie używania pętli zdarzeń podczas programowania GUI wykracza znacząco poza Qt. Wszystkie bibliteki, od lat 80, są zbudowane w podobny sposób. Nie wszystkie używają jednak s-s. Zainteresuj się co to jest korutyna i cooperative multitasking. Te dwa pojęcia są blisko koncepcji wszystkich współczesnych biblitek GUI i z nich wynika koncepcja pętli zdarzeń. Zaś pętla ta nie ma nic wspólnego z signal-slot. Qt używa tylko s-s, ale są bibliteki GUI nie używające tego mechanizmu. > się chaos. Np. w edytorze tekstu zrobiłem wtyczkę która po otwarciu > pliku H++ aut. otwiera do pary plik C++. Wtedy idą dwa sygnały aktywacji > edytora (najpierw z plikiem H++, a potem C++) i z powodu > asynchroniczności nie można zapobiec aktywacji pliku C++ (co jest > błędem, bo otwierany był plik H++). Nie masz ćwierć zielonego pojęcia jak się pisze oprogramowanie GUI. Stąd te śmieszne problemy. Starasz się obsługiwać logikę biznesową w obcych strukturach danych, nad którymi nie masz kontroli. [ciach tony schizofrenicznych bredni] > niemoralne, bo ona jest celowo popsuta pętlą zdarzeń. Dlatego mnie nie > oszałamiają miliony linii kodu bibl. Qt, bo wiem, że to wszystko zostało > zakodowane poprzez szalone topienie kasy. Ta kasa prawdopodobnie > pochodzi prosto z piekła (z kosmosu). Kasa pochdozi z bardzo wielu firm stosujacych komercyjnie Qt. Jeśli chcesz wiedzieć, jak rozwiązać swój problem ,to zatrudnij się w jednej z nich, wyjasnią Ci jak się pisze poprawnie aplikacje GUI. > 3. Mechanizm sygnał-slot jest b. dobrą koncepcją ułatwiającą > kodowanie. Jednak jest wadliwie zakodowany, bo zamiast bezpośrednich > wywołań sloty są wywoływane z opóźnieniem po oddaniu sterowania do pętli > zdarzeń. Bo nie potrafisz z nich korzystać w sposób świadomy. Zainteresuj się Qt::DirectConnection. > 2. Nie można zaglądać z debugera do wnętrza o. kl. Qt (wszystko > jest ukryte pod wsk. d do zmiennych prywatnych); Można. Nie potrafisz programować ani używać narzędzi do debugu, najzwyczajniej. Qt jest opensource. Możesz się debugować przez dowolny kod z nicj pochodzący. > 4. Tolerowanie błędów w kluczowych kl. takich jak QMainWindow, > QDockWidget i QMdiArea. Robią to w celu wyeliminowania twórców > tradycyjnych, normalnych prog. na dekstopy; Przeoczyłeś napisanie co to za błędy. > 5. Ukrywanie przed programistami C++ kl. używanych w QML. Robią to > by wyeliminować normalnych programistów C++ którzy odróżniają program od > skryptu. QML jest pewnym uproszczeniem życia dla programisty. Nijak nie eliminuje programisty C++. > Qt dalej będą rozdawać, bo wiedzą, że nic nowoczesnego i profesjonalnego > nie da się z nią zakodować. Istneją programy o cenach majacych bardzo dużo zer, napisane w Qt. Najwidoczniej nigdy nie słyszałeś o czymkolwiek większym niż edytor tekstu. > W prog. komercyjnych obejściem problemu pętli zdarzeń i mechanizmu > sygnał-slot jest stosowanie prostych f. globalnych do wywołań zwrotnych > które bezpośrednio będą wywoływać sloty. Jednak ich wadą jest to, że one > muszą używać zmiennych globalnych (wsk. do logik i do okien). Czyli stosujesz terapię poprzez strzał w kolano, stosując najbardziej idiotyczną z możliwych koncepcji rozwiązania problemu, który nie istnieje. Panu już dziekujemy.
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: Jacek Marcin Jaw
Date: Sun, 21 Apr 2024 05:38
Date: Sun, 21 Apr 2024 05:38
16 lines
734 bytes
734 bytes
W dniu 20.04.2024 o 22:29, heby pisze: >> programu. Wynika to z faktu wymuszania przez Qt używania pętli zdarzeń >> przez wymuszanie użycia asynchronicznego mechanizmu sygnał-slot. > > Brednia. > > Sygnał slot nie ma nic wspólnego z pętlą zdarzeń. Możesz wołać > synchronicznie jak i chować w kolejkę. Wybór po stronie programisty, jak > używa s-s i czy w ogóle używa. Myslisz pętlę komunikatów z s-s i > wychodzi sieczka. Brednie to ty wypisujesz. Ja programuję w Qt od ok. 2010r. Wywołując sygnał podłączone sloty są wywoływane przez pętlę zdarzeń. Najwyraźniej Qt znasz jedynie ze słyszenia. Reszta twojej wypowiedzi, to brednie pochodne zał. że sygnał-slot to nie pętla zdarzeń.
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: heby
Date: Sun, 21 Apr 2024 09:52
Date: Sun, 21 Apr 2024 09:52
22 lines
801 bytes
801 bytes
On 21/04/2024 05:38, Jacek Marcin Jaworski wrote: > Brednie to ty wypisujesz. Ja programuję w Qt od ok. 2010r. A ja od 2005, a GUI zdarzeniowe ogólnie od lat 90. > Wywołując > sygnał podłączone sloty są wywoływane przez pętlę zdarzeń. Czyli jednak nie masz pojęcia jak to działa. s-s jest wołany w sposób, w jaki ktos o to poprosił. Część wprost, cęśc przez kolejkę. Które i jak, zależy od wielu czynników. Ql obsługuje wszystkie mozliwości, jakie tylko chcesz, ale napierw musisz mieć pojęcie jakie są. > Reszta twojej wypowiedzi, to brednie pochodne zał. że sygnał-slot to nie > pętla zdarzeń. Bo nie jest. Już Ci napisałem: boost::signal. Nie pojmujesz czym jest s-s, więc wychodzą kretynizmy, jak w elaboracie Idzi już i nie bredź od rzeczy.
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: Jacek Marcin Jaw
Date: Sun, 21 Apr 2024 15:49
Date: Sun, 21 Apr 2024 15:49
76 lines
4466 bytes
4466 bytes
Uzasadnienie powstania błędnego Rap. Tot. pt. "12. Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych" Konstruktywna krytyka Herby: Herby mocno się zdenerwował na publikację mojego 12. Rap. Tot. z d. 2024-04-20, sob. i muszę przyznać że wykazał mi że bibl. Qt nie jest aż taka zła. Kluczowe w jego wypowiedzi okazało się wskazanie wyliczenia Qt::ConnectionType, które jest param. f. QObject::connect() o którym nie miałem pojęcia. To wyliczenie zawiera Qt::DirectConnection które w moim przypadku rozwiązuje problem opisywany w pow. rap. (konkretnie pozwala na wymuszenie synchronicznego wywołania slotu przez sygnał w momencie jego wywołania). I faktycznie teraz moja wtyczka libh++do-pary-z-c++.so działa prawidłowo. 14 lat bezowocnych poszukiwań Qt-way: Biorąc pod uwagę ten fuckup z publikacją tego 12. Rap. Tot. muszę się usprawiedliwić przed światem z czego wzięła się ta sytuacja. Powody moich zbyt niskich kompetencji w zakresie bibl nie wynikają z lenistwa tylko z okoliczności w jakich żyję: 1. Brak ks. na temat prof. programowania prog. opartych na wtyczkach, C++ i Qt; 2. Od 2011r. magazyn właściciela Qt pt. "Qt Quartelly" już się nie ukazuje; 3. Mimo, że pracowałem na pełen etat nad prog. opartymi na C++ i Qt, to w żadnej z 3 polskich firemek w których były one w użyciu nie mogłem się doprosić komercyjnej licencji. A wiem, że qt.io ma specjalną bazę wiedzy dla komercyjnych klientów (miałem nadzieję, że dzięki niej poznam Qt-way). To dlatego od 14 lat szarpię się z Qt i ciągle nie znam Qt-way. Jest tak mimo, że wg mnie zrobiłem wszystko co byłem w stanie by je poznać. Pozostające aktualne problemy z Qt: Mimo, że ogólnie 12. Rap. Tot. jest nietrafiony, to w proj. qt.io jest wiele problemów jakie w tym rap. sygnalizowałem: 1. Złośliwości takie jak zmuszanie do nużącego spr. błędów zwracanych przez wartość (brak użycia wyjątków); 2. Złośliwości takie jak łapanie lecących wyjątków w pętli zdarzeń (przez to nie można ich łapać w f. main()); 3. Złośliwości takie jak brak możliwości wywołania f. QApplication::exec() w f. innej niż main(); 4. Złośliwości takie jak celowo popsute kl. QMainWindow, QDocWidget, QMdiArea; 5. Złośliwości takie jak brak nowoczesnego ostylowania (plikami QSS) kontrolek bazujących na QWidget (przez co nie można łatwo ich użyć na ekranach dotykowych, a nawet na PC wyglądają one archaicznie i są niewygodne); 6. Złośliwości takie jak brak dostępu do klas QML z poziomu C++; 7. Złośliwości takie jak brak możliwości zerwania poł. z bazą danych SQL gdy wykonywane są długie zapytania SQL; 8. Złośliwości takie jak nazewnictwo odwrotne od działania takie jak w QSizePolicy; 9. Złośliwości takie jak Qt Creator, który nie przestrzega zasady zero-conf, który jest zakodowany całkowicie odwrotnie do zaleceń twórców sys. Unix p. Kena Thomson i Denisa Ritchi, które brzmi: "Pisz prog., które spełniają jedno zadanie i robią to dobrze. Pisz prog. umożliwiające wspólpracę. Pisz prog. do obsługi strumieni tekstowych, ponieważ one tworzą uniwersalny interfejs." (to cytat. z Linux Magazine PL nr z kwi. 2024, s. 67); 10. Złośliwości takie jak odp. na pyt. "Jak kodować wtyczki dla Qt Creator?" "Zobacz sobie w kodzie jakiejś gotowej wtyczki."; 11. Złośliwości takie jak częste zmiany API wtyczek w Qt Creator; 12. Złośliwości takie jak psucie prog. Qt Assistant który dawniej był zgodny z zasadą zero-conf, ale został popsuty i wymaga zbędnego klikania na starcie. Z Qt Assistant usunięto wygodne zakładki i popsuto go tak że nie wygodnie i nieintuicyjnie się go używa. Mi się wydaje, że te złośliwości i nienaprawiane problemy oraz wyraźna erozja dotychczasowych silnych p. bibl. Qt powoduje, że bardziej ma się ochotę do wyrażania krytyki niż do dalszego szukania rozwiązań w dokumentacji. Tak więc przepraszam za mój 12. Raport Totaliztyczny w którym postawiłem przesadną tezę, która wynikała z moich bezskutecznych poszukiwań Qt-way (badałem problem tworzenia komercyjnych prog. opartych o wtyczki). W tym raporcie opisałem prawdziwy problem, ale z powodu frustracji i braku materiałów edukacyjnych nie byłem w stanie sam go rozwiązać. Dziękuję też p. Herby za wyprowadzenie z błędu i naprowadzenie na właściwe rozwiązanie!
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: Jacek Marcin Jaw
Date: Sun, 21 Apr 2024 16:07
Date: Sun, 21 Apr 2024 16:07
9 lines
372 bytes
372 bytes
W dniu 21.04.2024 o 15:49, Jacek Marcin Jaworski pisze: > Uzasadnienie powstania błędnego Rap. Tot. pt. "12. Bibl. Qt jest > sztucznie ograniczona - jest nieprzydatna do celów komercyjnych" > > Konstruktywna krytyka Herby: [...] > Dziękuję też p. Herby za wyprowadzenie z błędu i naprowadzenie na > właściwe rozwiązanie! Miało być Heby a nie Herby. Sory!
Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
Author: heby
Date: Sun, 21 Apr 2024 18:31
Date: Sun, 21 Apr 2024 18:31
79 lines
3267 bytes
3267 bytes
On 21/04/2024 15:49, Jacek Marcin Jaworski wrote: > Qt::ConnectionType, które jest param. f. QObject::connect() o którym nie > miałem pojęcia. Programujesz od 14 lat w Qt. Nie jest problem, że tego nie wiesz, nie każdy wie wszystko. Problem w tym, że wyciągasz daleko idące wnioski i lamenty, ze swojej ignorancji. Ubierając je w patoformalizm, staja się jeszcze bardziej żałosne. > 3. Mimo, że pracowałem na pełen etat nad prog. opartymi na C++ i Qt, to > w żadnej z 3 polskich firemek w których były one w użyciu nie mogłem się > doprosić komercyjnej licencji. Komercyja licencja nic nie zmienia. Qt jest takie samo. > A wiem, że qt.io ma specjalną bazę wiedzy > dla komercyjnych klientów (miałem nadzieję, że dzięki niej poznam Qt-way). Ta wiedza jest dostepna w googlu. Powiem inaczej: Wzorzec projektowy signal-slot *DOMYŚLNIE* nie używa pętli komunikatów. To jest jego domyslna zasada działania generycznej implementacji s-s, takiej jak boost::signal. Fakt, że nie szukałeś takiego trybu pracy w Qt oznacza, że nie wiesz jak działa wzorzec projektowy s-s. > 1. Złośliwości takie jak zmuszanie do nużącego spr. błędów zwracanych > przez wartość (brak użycia wyjątków); Przyjazne w programowaniu funkcyjnym. > 2. Złośliwości takie jak łapanie lecących wyjątków w pętli zdarzeń > (przez to nie można ich łapać w f. main()); main() nie musi być dnem pętli komunikatów. Dnem może być np. wątek, albo callback systemowy. Zrzucanie wyjątków poniżej dna wątku lub przez callback systemowy może być UB. Qt ma swoje rozwiązania różnych przypadków tego typu. Nie musisz z nich korzystać, jesli koniecznie chcesz sobie strzelić w kolano. Jeśli jednak wyjątek spada *poniżej* pętli komunikatów, to masz coś poważnie spieprzone. > 3. Złośliwości takie jak brak możliwości wywołania f. > QApplication::exec() w f. innej niż main(); A kto broni? > 4. Złośliwości takie jak celowo popsute kl. QMainWindow, QDocWidget, > QMdiArea; Nie okresliłeś co popsute. > 8. Złośliwości takie jak nazewnictwo odwrotne od działania takie jak w > QSizePolicy; Albo niepojmowanie do czego służy. > 9. Złośliwości takie jak Qt Creator, który nie przestrzega zasady > zero-conf, który jest zakodowany całkowicie odwrotnie do zaleceń twórców > sys. Unix p. Kena Thomson i Denisa Ritchi, które brzmi: "Pisz prog., > które spełniają jedno zadanie i robią to dobrze. Pisz prog. > umożliwiające wspólpracę. Pisz prog. do obsługi strumieni tekstowych, > ponieważ one tworzą uniwersalny interfejs." (to cytat. z Linux Magazine > PL nr z kwi. 2024, s. 67); Zero konkretów co jest źle z Qt creatorem. Nie używaj creatora, jesli nie lubisz. Nie ma wymogu. > 10. Złośliwości takie jak odp. na pyt. "Jak kodować wtyczki dla Qt > Creator?" "Zobacz sobie w kodzie jakiejś gotowej wtyczki."; Bardzo dobra rada. Ludzie wolą żywy kod, niż 100 stron pdfa "jak napisać 40 linijek". > 11. Złośliwości takie jak częste zmiany API wtyczek w Qt Creator; API Qt creatora nie jest stabilne. Swoje kontrolki powinieneć kompilować z każdym buildem aplikacji na nowo. Skąd wytrzasnąłeś obietnicę stabilnego API/ABI?
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads