🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310555

Re: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych

#310555
From: heby
Date: Sat, 20 Apr 2024 20:29
109 lines
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-mail
References: <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