eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnychBibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.37.30.115.71!n
    ot-for-mail
    From: Jacek Marcin Jaworski <j...@a...pl>
    Newsgroups: pl.comp.lang.c,pl.comp.programming
    Subject: Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów
    komercyjnych
    Followup-To: pl.comp.lang.c
    Date: Sat, 20 Apr 2024 16:37:51 +0200
    Organization: news.chmurka.net
    Message-ID: <v00jvv$ntr$2$Jaworski@news.chmurka.net>
    NNTP-Posting-Host: 37.30.115.71
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Sat, 20 Apr 2024 14:37:52 -0000 (UTC)
    Injection-Info: news.chmurka.net; posting-account="Jaworski";
    posting-host="37.30.115.71"; logging-data="24507";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: Mozilla Thunderbird
    Cancel-Lock: sha1:v0DEj0E2Rn1rSP+3pKKgmqrkB9M=
    sha256:pBcqgUCczBCHGIUZoED/4JYojYzNkHvUF4c7XXRNjFE=
    sha1:Im1c9nqgsybsbaEtO8fE0orRS7I=
    sha256:a8+uin42v9u98RCkUSenMJ83uLLNujEXquJZznCvesA=
    Content-Language: pl-PL
    Xref: news-archive.icm.edu.pl pl.comp.lang.c:308924 pl.comp.programming:215997
    [ ukryj nagłówki ]

    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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: