Matthias Clasen ogłosił wydanie GTK+ 3.8, biblioteki służącej do tworzenia interfejsu graficznego dla programów komputerowych. Pierwotnie została stworzona na potrzeby programu GIMP, stąd też nazwa – The GIMP Toolkit. Znak + pojawił się w nazwie, gdy autorzy dodali do oryginalnego GTK możliwość programowania obiektowego. Od wersji GTK + 3.0 używa Cairo do rysowania, dzięki czemu jest lepsza współpraca z X11 oraz serwerem Wayland, a także CSS do obsługi tematów.
Najważniejszą zmianą jest dodanie stabilnego wsparcia dla Waylanda 1.0, dzięki czemu będzie można rozpocząć proces przenoszenia oprogramowania na nowy serwer wyświetlania. Pojawiło się wsparcie dla serwera broadwayd, udoskonalono wyświetlanie tematów graficznych, dodano lepsze zarządzanie geometrią, udoskonalono dotyk. Dodano wsparcie menedżera okien dla protokołu synchronizacji ramek oraz zwiększono wydajność.
Zauważcie, że GTK 3 jest robione pod GNOME 3 i praktycznie zmierza w tym kierunku. Dodanie Waylanda, wiąże się z zapowiedzią wsparcia Waylanda: https://osworld.pl/gnome-planuje-port-na-waylanda/
Ten cały Gnome stoi w rozkroku między GTK i Clutter. Bo przecież gnome-shell i mutter używa Cluttera. U Intela zaprojektowali nawet system widgetów do Clutter, używany w Moblin, ale został porzucony, jak wiele innych ciekawych rozwiązań po śmierci Meego.
Dla mnie mogą się przestać w tym RedHacie wygłupiać. I tak nie ma kto tego programować.
Gtk pochodzi od gimpa i ma wersję 3.8. Natomiast gimp jeszcze na gtk3 nie przeszedł.
Czy oni aż tak bardzo skopali gtk3 od strony api, że dużo aplikacji jest wciąż na starej wersji? Czy powód jest inny?
Wystarczy, że zmienili api, a to już wymaga pracy, więc jeśli wszystko dobrze działa na starszej wersji to po co przenosić?
Nauwa się pytanie: po co robić nową wersję, skoro stara dobrze chodzi? ;)
Tak, zatrzymajmy się w rozwoju, albo lepiej cofnijmy. Linux z jądrem 2.2 też działał. Po co nam 2.4, 2.6 czy 3.0?
Słyszałeś kiedyś o opłacalności?
To przyłącz się do projektu i zacznij wszystko przepisywać. Takie przepisanie mogłoby być dobre dla projektu, bo trzeba by większość kodu przeglądnąć i przy okazji pewnie coś poprawić. Ale skoro tego nie robią to pewnie brak im ludzi do pracy, albo czekają aż Gtk+ będzie jeszcze lepiej dopracowane.
Jakoś na Qt4 dało się wszystko przepisać z Qt3.
A myślisz, że na Gtk+ się nie da. Część projektów przepisano, tylko widocznie GIMP to zbyt duży projekt mający zbyt mało deweloperów w stosunku do potrzeb. Do tego kod w C na pewno jest trudniejszy do przepisania niż w C++.
Np. w KDE nikt nie przepisywał kodu od zera jeśli nie było to potrzebne (nieraz była to okazja do pisania niektórych modułów od zera, np. Plasma Desktop zastąpiła KDesktop). "Czystych" programów w Qt też to dotyczy, np. śledziłem sprawę jako developer QCad-a.
To co następuje to portowanie, proponuję więc stosować ten brzydki ale ścisły termin.
Wydaje mi się, że programy KDE były portowane nieraz długo (Kexi ze 3 lata) zwłaszcza wtedy gdy port do Qt 4 nie przyniósłby widocznych ulepszeń.
Inna sprawa, że gdy więcej kodu to trudniej portować, a kodu w C jak zwykle jest bardziej rozlazły od C++, portowanie błędogenne, nie mówiąc o tzw. C++-z-QObject. Dla Qt4 jest konwerter kodu 'qt3to4'. Poza tym autorzy Qt od lat zapewniają zgodność w dół dla Qt jako szeroko wykorzystywanego przez płacących im za to ludzi. Podobne powody sprawiają, że przeskok z Qt4 do 5 jest jeszcze mniej bolesny.
Pogoni za przepisywaniem programów w starym GTK+ nie przewiduję z tej przyczyny, że GNOME zrezygnował z takiej ścieżki na rzecz javascript + GTK/gobject bindings dla twórców aplikacji. Kolejne rozdrobnienie (bo aplikacji tego nowego typu jeszcze przecież nie ma i narzędzia nie okrzepły), coś na co narzekał de Icaza przy porzucaniu Linuksa dla Maca.
Co do rozmiaru GIMPa zdaje się, żę ma on stosunkowo mało GUI, a dużo logiki aplikacji, multum pluginów. Duży projekt zawsze cierpi na brak ludzi w stosunku do ogromnych potrzeb. Przepisanie jego GUI tego choćby na Qt (by wreszcie okna dialogowe działały z klawiaturą i dało się przesuwać panele dokowalne) jest możliwe i względnie proste, ale jak dotąd nikt poważnie nie planuje takiego forka.
Nie wszystko. Parę ciekawych acz niepopularnych programów odpadło z boju. Poza tym takie k3b tez bardzo długo się opierało zanim przeszli na Qt4. Z Gimpem jet taki problem, że mają problem z wydaniem nowej wersji, bo brakuje rąk do pracy, a co dopiero myśleć o przepisaniu interfejsu. Widocznie nowe funkcje programu w ich mniemaniu są ważniejsze od nowej biblioteki graficznej.
Z jakim jądrem ten Linux działał? Jakiś dikernelowy system operacyjny? Fajnie, jeszcze nigdy o czymś takim nie słyszałem. Chciałbym, żeby kiedyś zrobili system, w którym jednocześnie będą działać Linux i kFreeBSD. I niech jeszcze dorzucą kOpenSolaris. A co tam! Naraz działających w systemie operacyjnym kerneli nigdy za wiele!
Szczególnie, że takiego Gimpa nie ma kto programować. Nie wspominając już o Inkscape w którym boją się grzebać i ma bugi 10-letnie.
Jak się używa GTK to potem się ma 10x większy i zupełnie nieczytelny kod.
"Znak + pojawił się w nazwie, gdy autorzy dodali do oryginalnego GTK możliwość programowania obiektowego."
Nie obiektowego, tylko zorientowanego obiektowo. GTK nadal nie jest obiektowe i tylko postada obrzydliwe hacki w C zapewniające atrapę obiektowości.
GTK nadal jest lata świetlne za Qt.
Próbowałeś stosować melisę?
Próbowałeś napisać merytoryczny komentarz?
Próbowałem, ale martwię się o twoje zdrowie.
Jak taki idiotyczny komentarz może mieć plusy? Odmóżdżenie czytelników? Czy po prostu gnomowcy się zbiegli hateować?
Twoje komentarze też czasami mają plusy. Są conajmniej równie idiotyczne ale bardziej wulgarne, a czasami nawołujące do przemocy…
Podaj przykŁad mojego idiotycznego i niemerotorycznego komentarza choć porównywalnego z tymi kretyńskimi bzdurami autorstwa sprae.
Uwaga, poniżej przykład idiotycznego i niemerotorycznego komentarza.
"Społeczność GNOME to gówno, nie przypominaj mi o tym."
Dziękuję za uwagę.
Ale to jest bardzo merytoryczny komentarz, opinia na temat czegoś o czym jest dyskusja, a nie osobista wycieczka na temat innego czytelnika…
Do idiotycznych też bym go raczej nie zaliczył, bo to po prostu prawda.
GTKowcy/Gnomowcy olewają standardy freedesktop.org , olewają inne środowiska i inne biblioteki, srają na userów czegokolwiek innego poza ich badziewiem. Poszukaj sobie ile konfliktów natworzyli, choćby przy stylowaniu aplikacji, "systemsettings" czy okrajaniu API powiadomień systemowych. Wszyscy inni chcą być przenośni, oferować dobre wspracie aplikacji Qt pod Gnome i GTK pod KDE, żeby user nie widział jakiej biblioteki używa aplikacja. Ale nie, nie Gnomowcy. Dla nich używanie gconfa czy Mono w małej aplikacji albo GTK w daemonie (!) jest OK, a napisanie czegoś w czystym C++ to żło. Z tymi baranami po prostu nie da się dogadać. A społecznośc jest taka sama.
Odpisze ktoś merytorycznie, czy "dyskusję" na temat badziewności i niższości GTK można uznać za zamkniętą?
Do dyskusji potrzeba dyskutantów, a Tobie, sądząc po tym, co piszesz w komentarzach, raczej bliżej do "sfrustrowanego pesymisty-choleryka". Może lepiej udzielaj się na stronach typu http://wkurwiamnie.org/ ? Mówię poważnie.
Dla mnie GTK to przede wszystkim styl – elegancki, przejrzysty. No i GNOME3, które przeciera szlaki i wytycza nowe drogi posługiwania się komputerem desktopowym.
Gnome 3 to chyba najlepiej wyglądające środowisko graficzne w historii. Gdybym uważał, że środowisko graficzne służy do oglądania z pewnością bym go używał.
Sęk w tym, że niestety w kategoriach użytkowych wypada o wiele gorzej. A takie KDE może nie wygląda rewelacyjnie ale przynajmniej znośnie, za to jest pełne dobrze przemyślanych udogodnień i aplikacji.
Trochę offtopic wyszedł.
Gtk3+ ma to do siebie, że nie dba o kompatybilność wsteczną ze starszymi motywami. Przy właściwie każdej aktualizacji wymagane są zmiany.
"Gnome 3 to chyba najlepiej wyglądające środowisko graficzne w historii. Gdybym uważał, że środowisko graficzne służy do oglądania z pewnością bym go używał. "
Ale to być może jest klucz do zrozumienia dlaczego Gnome jest popularne. Większość ludzi nie wykorzystuje wszystkich możliwości jakie dostarcza system, więc wtedy bardziej zwraca uwagę na wygląd. Dlaczego KDE nie może dorobić się takiego wyglądu? W Ubuntu programy Qt wyglądają identycznie z tymi w Gtk+ i tak powinny wyglądań wszędzie.
Bo Qt ma wsparcie dla stylów GTK, w tym takich detali jak poprawna kolejność przycisków w oknie dialogowym.
A GTK olewa wszystko inne, bo społeczność GTK to buce.
Zasadnicza słabość to brak wytycznych dotyczących wyglądu elementów plazmy (gdzie ikona, kiedy pogrubiona czcionka itp.) przez co całość wygląda dość chaotycznie. Poza tym w aplikacjach dziwnie (i znowu bez wytycznych) ułożone są odstępy co niestety jest bardzo widoczne po przesiadce z gnome. Styl oxygen ludziom się podoba, ale kursor oxygen, kolory oxygen już nie, co do zaś ikon zdania są podzielone. Szkodliwe jest też podążanie za modami, jako choćby monochromatyczne ikony na tacce sąsiadujące z kolorowymi, z poza motywu,
Generalnie cała masa pierdół które w teorii można by ogarnąć ale najpierw należałoby dojść do jakiegoś porozumienia i przekonać, że jednak warto się stosować do zaleceń.
Może w przyszłości…
KDE ma swoje standardy HIG. Większośc aplikacji się stosuje i nie zauważyłem jakiś problemów z czcionkami, wyglądem czy odstępami.
Kursor Oxygen jest świetny. Najlepszy z tych OpenSourcowych implementujących wszystkie potrzebne wariany.
Fakt, monochromatyczność w trayu to idiotyzm. Powinno dać się wyłączyć.
No właśnie, KDE ma problemy z kilkoma pierdołami, w Gnome leżą same podstawy: niekompatybilnośc, hacki, forsowanie idiotycznych rozwiązań.
Tu akurat muszę przyznać, że jednak aktualizowanego dokumentu HIG brak, a co do Plazmy to wogóle ich nie ma. Jeśli ktoś programuje (na poziomie elementarnym, choćby klika w Designera lub robi QMLe) albo może choć zgłosić błędy wyglądu (tak to nazwijmy), choćby odstępy z to niech się nie waha i działa…
Skoro Gtk jest takie badziewne to dlaczego menadżery okien oparte o tę bibliotekę są znacznie bardziej popularne?
A dlaczego tusk jest premierem?
Przyznaj się – sam sobie plusujesz własne komentarze?
A myślisz czemu komentuje jako anonim? :P
Kolejny głupi komentarz nie na temat.
Programowanie obiektowe to właśnie wykorzystanie paradygmatu programowania zorientowanego obiektowo. Można pisać obiektowo w C i właśnie to twórcy GTK czy też innych programów robią (ba sam tak robię w kernelach OpenCL, bo muszę)… język C po prostu nie ma ułatwień w składni do tego paradygmatu i trzeba sobie samemu ustalić API (czy jak to nazwałeś obrzydliwe hacki). Jednak nie zmienia to faktu, że GTK jest pisany obiektowo (to, że idą pod górkę jak mogą to już inna sprawa).
Wadą GTK nie jest w żadnym wypadku zastosowany język (tym bardziej dla programisty końcowego, który wybierze sobie interface C++ czyli gtkmm). Wadą jest gorsze API, gorsze algorytmy, przez co gorsza wydajność, mniejsza elastyczność… i wiele innych rzeczy, przez które programiści wolą Qt czy wxWidgets. Jako użytkownik nie mam nic przeciwko Gtk – niech się rozwija i się ma jak najlepiej, ale jako programista staram się od gtk trzymać jak najdalej (i z pewnością nie przez język C).
"Programowanie obiektowe to właśnie wykorzystanie paradygmatu programowania zorientowanego obiektowo. "
Nie.
Programowanie zorientowane obiektowo, czyli samo Istnienie obiektów (abstrakcja), to tylko jeden z paradygmatów programowania obiektowego. Obok takich rzeczy jak dziedziczenie, hermetyzacja, polimorfizm. Tego w C i w GTK nie ma i nigdy nie będzie. Co powoduje, że do odwzorowania tak "rzeczywistych" obiektów jak kontrolki GUI ten bubel całkowicie się nie nadaje.
Pomijam już lukier C++ pozwalający jeszcze bardziej ułatwić sobie pracę ponad podstawowy model programowania obiektowego.
Akurat dziedziczenie jednobazowe w gobject jest. A do pisania w Gtk znacznie lepiej nadaje się Vala, chociaż jeszcze trochę jej brakuje do C++