Qt 5.2.1 z zoptymalizowaną wydajnością JavaScript i QML

Qt 5.2.1 z zoptymalizowaną wydajnością JavaScript i QML

    przez -
    27 627
    Qt
    Digia ogłosiła wydanie Qt 5.2.1, zestawu przenośnych bibliotek i narzędzi programistycznych dedykowanych językowi C++. Ich podstawowym składnikiem są klasy służące do budowy graficznego interfejsu programów komputerowych, począwszy od wersji Qt 4.0, biblioteka zawiera też narzędzia do tworzenia programów konsolowych i serwerów. Zoptymalizowano wydajność JavaScript i QML, dzięki nowemu silnikowi Qt Quick Engine. Naprawiono sporo błędów na iOS i Androidzie. Pojawiła się paczka, używająca Apple iOS 7.0 SDK.

    • marcinsud

      Zna ktoś jakąś sensowną aplikację na androida korzystającą z Qt?

      • akr

        Może być np. z Polski? https://play.google.com/store/apps/details?id=com.trismer.matchville

        Jest sporo specjalizowanych aplikacji, do sterowania, wizualizacji, często poza app store. Autorzy zresztą nie wspominają o Qt, pewnie po to, by nie ułatwiać życia konkurencji

      • marcinsud

        niestety nie jest zgodna z żadnym moim urządzeniem.

    • mikolajs

      A teraz tylko porządny binding do D, Javy czy jakiegoś innego sensownego języka i popularność murowana ;)

      • Krystian

        Jest porządny binding do Pythona. Aktualizacja do Qt 5.2.1 powinna wyjść lada dzień.

      • sprae

        Pyotherside jest fajny. Ma całkiem inne podejście.

      • mateusz

        masz na myśli PySide, czy PyQt ? Czy jest jeszcze coś innego?

      • Krystian

        PyQt. PySide nadal koncentruje się wyłącznie na Qt4.

      • herr

        C++ jest sensownym językiem. A używając Qt, nie bardzo jest potrzeba używać szablonów i innych zaawansowanych funkcji.

      • sprae

        Jak powiedział twórca C++ – to dobry język do prostych abstrakcji i infrastruktury aplikacji. To wina programistów, że robią z niego wielkie niezrozumiałe, ciężkie i powolne monstra.

      • herr

        Powiedział? Swojego czasu promował wielokrotne dziedziczenie jako rozwiązanie problemu traitów :D

        C++ nie jest inny niż dowolny inny imperatywny język obiektowy: będzie dobry projekt → będzie czytelny kod. Inne jest tylko zarządzanie pamięcią, ale w C++11 jest to już jednak znacznie prostsze.

      • sprae

        Pokaż mi taki dobry projekt :-)

      • herr

        Pokazać? Proszę: Qt. Dogłębnie przemyślana i starannie zaprojektowana biblioteka C++.

        Naprawdę, nie wiem co tu dużo mówić. Programowanie obiektowe będzie wyglądać wszędzie podobnie: interfejsy, implementacje, dziedziczenie, polimorfizm. Albo ktoś chce i potrafi wskazać sensowne klasy abstrakcji (vide Qt) albo nie.

      • mikolajs

        “C++ nie jest inny niż dowolny inny imperatywny język obiektowy:”

        Nie widzisz różnic? Konieczność zachowania zgodności z C oraz fakt, że ten język powstał już dawno, a musiał zachować kompatybilność wsteczną niestety nie pomógł. Przyjrzyj się innym językom takim jak D, Go czy Vala. Na prawdę jest różnica. Jedyny powód, aby pisać w C++ to wyłącznie fakt, że istnieje masa kodu w nim napisana. Zmiany w C++11 to dalsze nakładanie protez, które mogą tylko utrudnić czytanie i zrozumienie kodu.

      • herr

        Ok, D może być lepszym językiem ─ ale co z tego skoro kompilator jest słaby, bibliotek nie ma i mało kto go zna? C++ może być gorsze, ale nie jest, aż tak złe jak niektórzy chcą widzieć ten język i ma biblioteki, ma kompilatory i wszyscy go znają. I na dodatek, można dobrze programować w C++ i nie wymaga to odprawienia mrocznych rytuałów.

        Serio, C++ nie jest fundamentalnie inny od takiego D, nawet pomimo braku GC.

      • mikolajs

        ” Programowanie obiektowe będzie wyglądać wszędzie podobnie: interfejsy, implementacje, dziedziczenie, polimorfizm.”

        A JavaScript nie jest obiektowy? A jednak programowanie w nim jest nieco inne. Podobnie inna filozofia obiektowości jest w Objective-C

        “C++ może być gorsze, ale nie jest, aż tak złe jak niektórzy chcą widzieć
        ten język i ma biblioteki, ma kompilatory i wszyscy go znają. I na
        dodatek, można dobrze programować w C++ i nie wymaga to odprawienia
        mrocznych rytuałów.”

        Przecież nie mówię, że jest aż taki zły. Mówię tylko, że ciężko jest wrócić do niego jak się posmakuje innych języków. Natomiast może nie jest to mroczny rytuał, ale przepisywanie osobnych plików nagłówkowych jest dość dziwnym i męczącym rytuałem ;)

        “Serio, C++ nie jest fundamentalnie inny od takiego D, nawet pomimo braku GC.”

        Zależy co rozumieć przez fundamentalnie. Jasne, że w porównaniu do Smalltalka różnice wydają się drobne.

      • iniside

        JavaScript nie jest obiektowy. Rozne biblioteki dodaja taka psdudobiektownosc. A Objective-C to juz wogole inna historia (;.

        Ja ostatniało zaczełem znowy troche programować w C++. Wczesniej uzywalem glownie C#.

        Z odpowiednia biblioteka, programowanie w C++ nie jest złe. Powiem wiecej! Jest całkiem przyjemne. Tak pliki nagłówkowe moga naprawde wkurzyc, ale jesli ich nie liczyć, to nie czuje jakiegoś wielkogo dyskomfortu w porownaniu z C#.

      • mikolajs

        “JavaScript nie jest obiektowy.”
        Widocznie nie znasz dobrze JavaScriptu. JS jest w pełni obiektowy choć ta obiektowość w porównaniu do C++ jest realizowana trochę inaczej.

        “Tak pliki nagłówkowe moga naprawde wkurzyc, ale jesli ich nie liczyć”
        Każdą zmianę w nazwie musisz zmieniać dwukrotnie to jest bardzo wkurzające, ale najgorsze że nie wiem gdzie pisać komentarze co do tego co robi funkcja :) (wiem, najlepiej dawać nazwy samokomentujące kod ;) )

        “to nie czuje jakiegoś wielkogo dyskomfortu w porownaniu z C#”

        Jak napiszesz, coś większego z dynamicznym alokowaniem pamięci, którą przekazujesz miedzy obiektami to poczujesz dyskomfort i będziesz zmuszony valgrind ;)

      • mikolajs

        Poużywaj trochę jakiegoś innego języka do większego projektu, to zobaczysz jak boli powrót do C++.
        Ale faktycznie Qt bardzo zmniejsza ten ból dzięki gotowym bibliotekom.

      • herr

        Język to nie tylko składnia i biblioteka standardowa, ale cały system zbudowany wokół niego…

      • mikolajs

        To w takim znaczeniu C++ jest bardzo ubogim krewnym Javy ;)
        To dość oczywiste, że dobry język to za mało jeśli nie posiada bibliotek, dobrego IDE oraz szeregu narzędzi.
        Co do D to ciekawe, że inżynierowie Facebooka postanowili napisać aplikację do backendu właśnie w tym języku. Widocznie jest wystarczająco dojrzały do określonego typu projektów. Go też coraz częściej wykorzystywany, głównie w programowaniu sieciowym mimo, że nie dorobił się nawet Generics. A inżynierowie Mozilli pracują nad Rust. Jak widać C++ nie jest zbyt lubiany, choć ciągle jest i długo będzie liderem w pewnych zastosowaniach.

      • herr

        No niestety java rządzi. :(

        Jeśli D się przyjmie: super.

      • 123qwe

        Takie moje 3 grosze jako nie programisty:

        Kiedyś próbowałem podejść do C++ (nawet przeczytałem “Symfonie C++” – swoja droga dla laika naprawdę przystępna książka) ale programowanie obiektowe w tym stylu jakoś mi się nie podobało. Obecnie po wielu latach wróciłem do tego jako hobby ale na szczęście napotkałem coś takiego jak python. W związku z czym preferuję:

        C – żeby wiedzieć jak procesor / komputer naprawdę działa i ten sposób programowania mi się najbardziej podoba w szczególności do “migania diodkami”.
        Python – prosty, przejrzysty i bardzo uniwersalny. Napisze sie w nim i strone i skrypt i aplikacje desktopowa (ostatniego nigdy nie robilem ale pewnie uzylbym do tego czegos w rodzaju PyQT). Jako duży + łatwo go powiązać z C dzięki python extensions.

        Do C++ to mnie już i wołami nie zaciągną, chociaż QT pewnie prędzej czy później sprawdzę. Tak z czystej ciekawości.

      • pff

        Nie wiem czy tylko ja mam takie wrażenie – znam i piszę w Object Pascalu (jakoś lubię ten język) i Javie (głównie aplikacje mobilne- kiedyś J2ME, teraz Android) i C++ co prawda poznałem, coś w nim napisałem, ale zawsze wydawał mi się “połatany” i wiele rzeczy sprawiało wrażenie absurdalnych (np. osobne pliki nagłówkowe, czy nazwy funkcji/klas oderwane od reszty języków).
        Zresztą C++ pomimo łatania nowymi standardami wciąż sprawia wrażenie jakby był całkowicie z poprzedniej epoki…

      • herr

        C++ jest taki trochę old schoolowy. Ale lubię ten język, więc go bronię ;-)