Article View: pl.comp.lang.c
Article #310555Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
From: heby
Date: Sat, 20 Apr 2024 20:29
Date: Sat, 20 Apr 2024 20:29
109 lines
6007 bytes
6007 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.
Technical Details
Message-ID:
<v018ir$3rl7p$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mailReferences:
<v00jvv$ntr$2$Jaworski@news.chmurka.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: heby <heby@poczta.onet.pl> Newsgroups: pl.comp.lang.c Subject: Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych Date: Sat, 20 Apr 2024 22:29:14 +0200 Organization: A noiseless patient Spider Lines: 110 Message-ID: <v018ir$3rl7p$1@dont-email.me> References: <v00jvv$ntr$2$Jaworski@news.chmurka.net> MIME-Version: 1.0 Injection-Date: Sat, 20 Apr 2024 22:29:15 +0200 (CEST) Injection-Info: dont-email.me; posting-host="e18eb0a951c001de88cf5c0b810058b0"; logging-data="4052217"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Hv3CCVeeUCKgwWhd5DSD/" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:M8/SFKpF7TE5pNtxN+VIrmPoZrI= In-Reply-To: <v00jvv$ntr$2$Jaworski@news.chmurka.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit