Pętle to jedne z najpopularniejszych konstrukcji w każdym języku programowania. W Pythonie przyjrzymy się dwóm konstrukcjom: for oraz while. Każda ma swoje preferowane zastosowania, ale pierwsza z nich jest dużo popularniejsza.
W 2012 roku Qt 5 zostało pokazane światu. Wersja ta była zapowiadana jako naturalna kontynuacja Qt 4, ale wprowadziła też wiele nowości i przez ostatnie lata osiągnęła coś, co można nazwać sukcesem. Ekosystem Qt przekroczył masę krytyczną. Zainteresowały się nim na poważnie największe firmy na tej planecie – od branży technologicznej, przez motoryzacyjną, na przemyśle i elektronice użytkowej kończąc.
Qt 5 przyniosło dedykowane wsparcie dla systemów mobilnych, systemów wbudowanych oraz nowy deklaratywny język QML do tworzenia nowoczesnych, graficznych interfejsów użytkownika. Stało się prawdziwie wieloplatformowe – nie tylko w sensie systemu operacyjnego, ale również platformy sprzętowej.
W zeszłym roku (sierpień 2019) firma prowadząca projekt (The Qt Company) ogłosiła plany opublikowania kolejnej głównej wersji – Qt 6. Stanie się to pod koniec 2020 roku.
Qt 6 goni świat
Qt 5 okazało się przełomem. Ma swoje wielkie zasługi w rozwoju całego środowiska i jego popularyzacji. Nadal jest i będzie rozwijane oraz wspierane. Zaplanowane wydanie Qt 6 nie jest jednak tylko zmianą głownego numeru wersji. Zachowa kompatybilność wstecz z Qt 5, ale nie w stu procentach. Żeby sprostać nowym wyzwaniom, potrzebne są pewne odważne decyzje na poziomie architektonicznym. Potrzebne są poważniejsze porządki – usunięcie przestarzałego kodu i niewspieranych już funkcji, klas i modułów. Potrzebne są wreszcie nowe narzędzia do realizowania wizji, która przez ostatnie 8 lat musiała ewoluować.
Qt zawsze było mocne na desktopach – od tego wszystko się zaczęło. To dlatego Qt 4 zostało zauważone i docenione. Aplikacje desktopowe nadal będą bardzo ważną częścią tego systemu, ale już nie jedyną i nie przeważającą. Qt 5 przyniosło wsparcie dla systemów mobilnych i wbudowanych. Wprowadziło framework w świat internetu rzeczy. Pozwoliło uruchamiać Qt na coraz prostszej i tańszej elektronice. Qt dla mikrokontrolerów – coś kilka lat temu niemożliwego dla tego środowiska – stało się faktem.
Kluczowe wartości
Chcąc wprowadzać zmiany, The Qt Company musiało zdecydować, co pozostanie niezmienne. Jakie cechy całego ekosystemu są dla odbiorców – dla bardzo dużej bazy odbiorców – kluczowe.
Co daje największą wartość i charakteryzuje całe środowisko ? Jest kilka takich rzeczy:
wieloplatformowość
skalowalność
stabilność, kompatybilność i łatwość utrzymania
najwyższej klasy API, narzędzia i dokumentacja
duża baza użytkowników (obecnie około miliona programistów)
To jest lista absolutnych priorytetów. Na niej jest i będzie w przyszłości budowane całe środowisko.
Kluczowe zmiany
QML nowej generacji
QML/QtQuick ma ogromny potencjał. Nic tak nie zachęca użytkowników jak możliwość łatwego i intuicyjnego tworzenia GUI, które wygląda znakomicie, działa płynnie i nie potrzebuje dużych zasobów sprzętowych.
Zaplanowane tutaj zmiany są dość poważne i w jakimś sensie przełomowe. Oto one:
wprowadzenie silnego typowania – ma to uprościć utrzymanie istniejącego kodu źródłowego, wspomóc rozwój narzędzi takich jak IDE oraz uprościć i podnieść jakość generowanego automatycznie kodu
JavaScript jako opcja – będzie można zrezygnować z narzutu, jakim w pewnych przypadkach jest pełen silnik języka JavaScript – ma to oszczędzić zasoby i przyspieszyć działanie kodu
usunięcie wersjonowania – a tak naprawdę zwolnienie użytkownika z obowiązku jawnego wskazywania w plikach qml wersji importowanych modułów QML/QtQuick – zmiana podejścia uprości tutaj pracę zarówno programistom frameworka, jak i użytkownikom końcowym
brak duplikacji struktur danych pomiędzy QObject a QML – ma to przyspieszyć uruchamianie aplikacji oraz zmniejszyć użycie pamięci
wsparcie dla kompilacji QMLa do kodu C++/kodu natywnego – dzięki wspomnianym powyżej uproszczeniom i wprowadzeniu silnego typowania, możliwa będzie konwersja kodu w QMLu do C++/kodu natywnego – bardzo poprawi to wydajność działania aplikacji
lepsza integracja narzędzi – czyli dużo lepsze wsparcie dla refaktoryzacji i wykrywania błędów na poziomie kompilacji kodu, co również jest możliwe dzięki wspomnianym powyżej zmianom
Grafika nowej generacji
Rozwój w tej dziedzinie nie pozwala na bierne przyglądanie się sytuacji. Zunifikowanym API dla grafiki 3D w Qt 5 był OpenGL. Dzisiaj jednak mamy zarysowany pewien podział, jeśli chodzi o interfejsy do programowania grafiki 3D. Vulkan jest postrzegany jako następca OpenGLa dla Linuksa, Apple rozwija Metal, a Microsoft ma oczywiście Direct 3D. Qt będzie musiało sprostać tej sytuacji i wspierać wszystkie wspomniane API. Żeby podejść do tego z głową, trzeba będzie stworzyć nową warstwę abstrakcji dla API graficznego. Ma to być Rendering Hardware Interface (RHI).
Ponieważ grafika 3D staje się coraz ważniejsza w procesie tworzenia GUI, nowo tworzony renderer umożliwi łączenie elementów grafiki 2D oraz 3D na jednej scenie. Zostanie zapewnione wsparcie dla wszystkich aspektów używania elemetów 3D w Qt Quick (zagnieżdżanie, animacje, przejścia, itp.).
Celem jest również zunifikowanie silnika stylów, co umożliwi uzyskanie natywnego wyglądu aplikacji na desktopach, systemach mobilnych oraz wbudowanych – niezależnie od tego, czy korzystają z Qt Widgets, czy z Qt Quick.
Jednolite i spójne narzędzia
Qt 6 przyniesie wsparcie dla CMake jako oficjalnego, standardowego i domyślnego systemu budowania aplikacji i samego Qt. QMake nadal będzie utrzymywany i wspierany, ale nie będzie już więcej rozwijany.
QtCreator IDE będzie cały czas intensywnie rozwijane pod kątem wsparcia dla języków C++, QML oraz Python. Będzie również coraz lepiej współpracować z narzędziami do projektowania GUI.
Qt Design Studio oraz Qt 3D Studio zostaną połączone w jedno narzędzie. Nowe Qt Design Studio skupi się na dobrej integracji narzędzi takich jak Photoshop, Sketch czy Illustrator oraz na bezproblemowej współpracy z QtCreator IDE.
C++ API
Qt 5.0 bazowało na standardzie C++98. Bazą dla Qt 6 będzie C++17. Ciężko nazwać to aktualizacją. To jest jak nowy, lepszy świat. Wiele rzeczy trafiło między tymi wydaniami do standardu języka C++ i Qt chce to wykorzystać, nie tracąc oczywiście kompatybilności wstecz. Konsekwentnie upraszczana i usprawniana ma być komunikacja na linii C++ <-> QML.
Nie taki diabeł straszny
Pomimo dużych zmian i wielu nowych pomysłów, Qt 6 kontynuuje to, co zaczęła piąta wersja frameworka. Qt 6 nie będzie binarnie kompatybilne z Qt 5 – wymagana będzie rekompilacja naszego istniejącego kodu z nową wersją frameworka. Dzięki temu możliwe będzie wprowadzenie wielu usprawnień i usunięcie przestarzałego, niepotrzebnego kodu.
Wszysztko wskazuje jednak na to, że na poziomie kodu źródłowego, kompatybilność zostanie zachowana. Nie trzeba się więc obawiać problemów z portowaniem istniejących aplikacji do Qt 6 oraz ich kompilacji.
Qt Framework podąża w kierunku kompletnego wsparcia wielu systemów operacyjnych i platform sprzętowych. Cały czas upraszcza proces tworzenia aplikacji, umożliwiając uruchamianie tego samego kodu na różnych środowiskach docelowych. Nowe oraz istniejące narzędzia mają w jak największym stopniu pomagać w pisaniu i analizowaniu kodu oraz w testowaniu gotowych programów. Mają też maksymalnie ułatwić tworzenie nowoczesnych GUI.
Pierwsze wydanie Qt 6 (6.0) jest zaplanowane na listopad 2020 roku.
Wiemy już, jak wyglądają podstawowe typy danych w Pythonie i jak działają zmienne. Pora na instrukcje warunkowe. Porozmawiamy o instrukcjach if – else – elseif, operatorze warunkowym oraz o najbardziej charakterystycznej cesze Pythona – obowiązkowych wcięciach w kodzie.
Zmienna jest jedną z najpopularniejszych koncepcji w świecie programowania. W Pythonie należy ją traktować jak nazwę przypisaną do obiektu. Nie definiujemy jej typu, ani też nie deklarujemy jej przed pierwszym użyciem. Po prostu przypisujemy wartość (obiekt) do nazwy:
Przyszedł czas na sprawdzenie podstaw Pythona w praktyce (nawiasem mówiąc nie znam skuteczniejszej metody nauki). Wykorzystamy do tego wspomnianą wcześniej sesję interaktywną. Po jej uruchomieniu zobaczymy mniej więcej coś takiego:
Qt wciąż niesamowicie się rozwija. Równolegle z poprawianiem błędów i tworzeniem nowych funkcjonalności, framework stara się opanowywać nowe, nieznane dotychczas dla niego obszary. Kolejne wersje przynoszą wsparcie dla nowych platform, zarówno systemowych, jak i sprzętowych.
Pod koniec lutego The Qt Company pochwaliło się planami rozwoju na 2018 rok. Postaram się pokrótce pokazać, czego można się spodziewać i na co czekać w obecnym roku.
Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaPolityka Prywatności