Jeden z deweloperów Canonical, Bill Filler, zaprezentował na swoim blogu plany dotyczące nowej wersji Unity, które ma być oparte na bibliotece Qt/QML.
Głównym celem projektu jest umożliwienie uruchamiania Unity na urządzeniach, które nie obsługują OpenGL. W tym celu deweloperzy z Canonical przygotowali specjalną wersję 2D napisaną z użyciem Qt 4.7 i QML. Całość ma wykorzystywać istniejące technologie, dostępne w standardowym Unity, takie jak indicators czy uTouch.

Jest to kontynuacja wcześniejszych poczynań twórcy Ubuntu o których pisałem jakiś czas temu na OSnews. Całość można pobrać i zainstalować poprzez repozytorium PPA.


OpenGL się pisze razem.
Bardzo dobrze, że przerzucają się na Qt. Użycie (lub nie) OpenGLa dla QGraphicsView sprowadza się praktycznie do 1 linijki kodu, żeby zmienić renderer.
Wreszcie Ubuntu przestawia się na właściwą bibliotekę.
Teraz tylko patrzeć, jak połączą Ubuntu i Kubuntu w jedną dystrybucję z domyślnym KDE4.
To byłby zasłużony cios w nieprzestrzegające żadnych standardów Gnome. Może taki kubeł zimnej wody by ich trochę otrzeźwił i wzięli by się do roboty zamiast dyskutować nad wyższością menu z ikonami nad menu menu ikon.
Zdumiewające jak przewidywalny jest o_O. To może jeszcze napisz jakich standardów nie przestrzega Gnome?
Np. podstawowych standardów dot. pisania kodu bez hacków.
Niestety, kod bez hacków to można sobie pisać co najwyżej na maszynę Turinga.
A tak konkretniej? Jakie hacki są w kodzie Gnome i gdzie?
Autor ma zapewne na myśli GObject. Cóż, jeśli podstawa, na jakiej jest oparte całe środowisko się nie podoba, to nic już nie poradzimy. Takie stężenie nienawiści kwalifikuje się do leczenia.
NIE będzie Ubuntu z KDE4, od tego jest Kubuntu…
Jakich to standardów nie przestrzega GNOME? I dlaczego miałoby to być aż takim grzechem, żeby karać użytkowników przerzuceniem się na KDE4?
ZTCP to o_O ma na myśli realizację standardu ICCCM i pochodnych w Metacity. Nie rozumie tylko różnicy między GTK+, Metacity a ogółem GNOME, a także samego ICCCM. On w ogóle mało rozumie. Nie warto się przejmować.
Przestawia się od czasu przejścia Qt na LGPL (dzięki czemu można pisać zamknięte programy/BSD (i wszystkie niezgodne z GPL – wcześniej była na licencji GPL co wymusza GPL programu, lub komercyjna co nie każdemu pasuje, a z pewnością nie pasuje programistom aplikacji na BSD)). Od tego czasu otwarcie mówią o przepisywaniu narzędzi na Qt, bo GTK (które praktycznie oni uratowali razem z całym gnome, który był (i jest) dużo mniej funkcjonalny niż kde3) stracił jedyny, ale ważny plus.
Obserwując rozwój gnome od ponad dekady raczej wątpię, że to cokolwiek w jego rozwoju zmieni, a raczej zmieni się rynek i będzie tak jak przed rozdawaniem płyt przez Ubuntu i pokrywaniem kosztów przesyłek… czyli KDE domyślne praktycznie na każdym systemie, wiele nie będzie zawierać nawet paczek z gnome (Slackware do dziś nie udostępnia i nie zamierza mieć nic wspólnego z gnome) i gnome będzie alternatywą dla xfce4
na twoje nieszczęście unity2D wymaga zainstalowanego gnome, gdyż jego zależności sięgają głęboko w to środowisko i nie da rady raczej go porzucić, bez przebudowania całego unity.
nie powiedział bym tego co ty, bo unity 2d nie ma takich zależności łączących je z gnome sam to wiem bo kompilowałem je ze źródeł
gnome-session-bin gnome-settings-daemon nautilus nautilus-data policykit-1-gnome gnome-power-manager gtk2-engines-pixbuf libgconf2-4 libgdk-pixbuf2.0 libglib2.0 libgtk2.0 gconf2 libgnome-desktop-2-17 libgnomekbd4 itd. itd. więcej zależności już mi się w synapticu nie chciało sprawdzać.Trzeba dodać, że niektóre z tych pakietów to zależności zależności. No więc trochę tego jest, więc albo deweloperzy z cannonical (unity2d z oficjalnego repo nie z ppa) nie umieją określić zależności, albo rzeczywiście ciągnie to połowę gnome
Zapewne nie umieją, bo to już nie byłby pierwszy raz. Wcześniej phonon wymagał całego KDE.
Boże, a czego można oczekiwać od twórców Ubuntu? Serio. Jeśli zależy Ci na zależnościach, to używasz Slacka. Jeśli chcesz zamiennika windowsa to używasz ubuntu. Simple.
QT i GTK+ były projektowane dla języków o trochę innych paradygmatach. Trudno używać QT w języku C – trzeba tworzyć jakiś wrapper. Natomiast dla korzystania z GTK+ w programowaniu w języku C++ wystarczy skorzystać z GTKMM lub samemu wszystko opakować w klasy, a resztę rzeczy wywoływać po staremu.
Jasne. Qt jest tylko dla C++. Ale tylko idiota tworzyłby naturalnie obiektowe interfejsy w czystym C.
GTK+ jest za to mocno związane z C, a opakowanie w klasy dla C++ jest sztuczne i ciągnie za sobą sznur błędów projektorych. GTK+ bez całkowitej przebudowy nigdy nie będzie dobrą biblioteką obiektową.
Jakich błędów? Możesz jakieś wymienić?
@AdamK nie karm trola
Po co komu GTK? Tk i tak ma ogromną przewagę nad GTK, jedyni minus – wygląd.
Po co komu toolkit, a razem z nim poprawne i18n, a11y, l10n? Piszmy w asemblerze i ewentualnie xaw!
> Trudno używać QT w języku C – trzeba tworzyć jakiś wrapper
Pytanie podstawowe to PO CO pisac gui w C?
Nie ma to zadnych zalet, praktycznie same wady, moznosc
pisania gui w C jest tak samo zajebista jak w assemblerze.
Ja to widzę tak – jako że większość interpreterów jest napisana w C, teoretycznie łatwiej zrobić bindingi do różnych Perlów i Pythonów dla biblioteki w C.
BTW. Pisanie GUI w C++ jest równie durne. A może nawet bardziej, przez to że trzeba się użerać z durnym linkerem.
>Pisanie GUI w C++ jest równie durne. A może nawet bardziej, przez to że trzeba się użerać z durnym linkerem.
A w C nie ma linkera?
Biblioteki napisanej w C++ łatwiej się używa, najprostszy powód to nazwy 🙂
A gdyby wraper Gtkmm był dopracowany to nie byłoby źle, tyle, że nie jest to proste. Może gdyby nie było konkurencji w postaci Qt to Gtkmm byłoby lepsze?
Chodzilo mu pewnie o name mangling. Nie to zebym byl fanem C++,
ale z dwojga zlego, do pisania gui wole jednak C++ niz ordynarne C.
>Chodzilo mu pewnie o name mangling.
To widać, że nie pisał w QT
Przejście na QT ma bardzo psychologiczny aspekt. QT jest bardziej przenośna od GTK+. GTK+ pozwala nam korzystać z GLIB-GOBJECT do tworzenia np. nowych widżetów. Natomiast bardzo dużo programów na Windows zaczęło korzystać z QT4. Jeżeli Canonical powie, że my zdecydowaliśmy się na QT4 w swoim systemie, to wielu programistów różnych programów pod Windows być może zdecyduje przesiąść się na QT4, co spowoduje zwiększenie liczby programów dla Ubuntu.
Jak dla mnie – to nie potrafię wykorzystywać mechanizmu sygnałów/slotów w QT, a w GTK+ idzie mi to bez problemu. Np. znacznie trudniej jest stworzyć jakiś wrapper sygnału, co przy zdarzeniu otrzymuje jakiś wskaźnik(user data), po czym wyciąga odpowiednie pola z niego i wywołuje odpowiednią procedurę z odpowiednimi parametrami. W GTK+ potrafię coś takiego stworzyć bez problemu – w QT QObject nie powinno się używać bezpośrednio, a poza tym nie posiada nic na wzór dowolnego wskaźnika, który byłby operowany wyłącznie przez programistę. Nawet Windows na coś takiego pozwala. W GTK+ możemy tworzyć pewne właściwości obiektu dynamicznie, jak i je usuwać.
Trudno mi zrozumieć czego nie potrafisz Sławku. W Qt tak jak w każdym natywnym frameworku C++ działają struktury i klasy nie dziedziczące z QObject. Nie ma wymogu dziedziczenia z QObject. Widzę tu mieszanie pojęcia sygnałów+slotów ze zdarzeniami.
Sygnały/sloty i zdarzenia mają za argumenty obiekty nie dziedziczące z QObject, a mogące być strukturami user-defined i w jak najbardziej praktyce bywają, więc nie wiem w czym problem.
Wydaje mi się, że argument nietrafiony. Już teraz programy w Qt można bez problemu odpalać w GNOME z zachowaniem natywnego wyglądu. Nie jest to już to samo co kiedyś.
Programiści wybierają .NET (zamiast Qt), bo jest lepiej promowany i ma więcej narzędzi, poradników i materiałów pomocniczych. No i przesiadka oznacza brak możliwości korzystania z już napisanego kodu w C#, czy VB. Jeśli MS nie przeniesie .NET na inne platformy to moim zdaniem Qt ma szansę za kilka lat zrównać się z .NET.
Nie ma natywnego wyglądu jeśli korzysta się w gnome z silnika pixbuf
Żarty jakieś. Mogą jedynie występować problemy przy bardziej zaawansowanych themach. (patrz jakieś klony OS X i inne tego typu zaawansowane konstrukcje)
Za co te minusy nie rozumiem, widać fanboye się zleciały. Jeśli theme gtk+ korzysta z grafiki jako tło okno aplikacji, aplikacja napisana w Qt korzystająca z thema gtk ma jednolite tło. Sam sobie tego nie wymyśliłem tak po prostu jest.
Postaraj się przeczytaj ze zrozumieniem – http://aseigo.blogspot.com/2011/01/qt-acceptance-…
programiści wybierają .net bo:
1. pisanie bez martwienie się o zarządzanie pamięcią jest łatwiejsze
2. cały biznes chodzi na .net albo javie i łatwo o 'korporacyjnych' programistów którzy jeden z tych dwóch języków/środowiska zawsze znają
3. Lepiej pisać w natywnym toolkicie platformy. Dzisiaj w .net/C# można pisać na natywne toolkity platform: windows (windows forms i WPF), macos ( cocoa przykryta MonoMac), iphone ipad (toolkit ios przykryty monotouch), wp7 (silverlight trochę obcięty), a ostatnio nawet androida (toolkit androida przykryty monodroid) – na ile z tych platform jest Qt ?
Nie specjalnie znam się na Qt, ale wygląda bardzo ładnie (gui i api). Niemniej dopóki nie będzie jakiejść dużej firmy, której FLAGOWY produkt (dlatego nikia się nie liczy) będzie oparty o Qt, dopóty na jakiś gigantyczny rozwój nie ma co liczyć.
Fakt przy GC pisze się szybciej, ale są sytuacje gdy wydajność jest ważniejsza. (Choć C# na samym Windows nie jest dużo wolniejszy od programów natywnie kompilowanych) A i platform na których Qt działa jest tyle to .NET, a może i więcej. Poza tym porty na różne platformy działają lepiej niż MONO.
Co do flagowych produktów to ma je w Qt Google i Skype. Popularność Qt wzrosłaby gdyby Linuksy były bardziej popularne, a Jobs nie kontrolowałby programistów, a tak jak piszesz na tylko Windows i znając WinApi to po co uczyć się nowej bilioteki?
Qt jest dostepne na Windows, Mac, Linux, Symbian oraz wiele innych http://qt.nokia.com/products. Co do flagowych produktów, to nie licząć Skypa, czy Google Earth, które są znane wszystkim można dodać całą masę programów pisanych na potrzeby wewnętrzne takich firm jak DreamWorks czy Walt Disney Feature Animation oraz wiele innych http://qt.nokia.com/qt-in-use.
Większość programistów jednak wybiera Java, a nie .NET wystarczy spojrzeć na rankingi, nawet Python jest popularniejszy od C#.
.NET jest już dostępne na inne platformy tyle, że nazywa się MONO i jego rozwój jest stale opóźniony w stosunku do .NET, nie mówiąc już o porównaniu do Java
"nawet Python jest popularniejszy od C#. "
Chyba na TIOBE.
Naucz się więc na początek C++, a potem Qt. Bo z tego co piszesz marnie je znasz.
> GTK+ pozwala nam korzystać z GLIB-GOBJECT do tworzenia np. nowych widżetów. Natomiast
Pomysl chwile zanim cos palniesz, w jezykach obiektowych nie trzeba popelniac takich
potworkow jak gobject. Gobject nie jest zadna zaleta, jest pokraczna lata nieudolnie
implementujaca to co w jezykach obiektowych jest natywne.
Z dalszej czesci posta wynika, ze twoim problemem nie jest qt, tylko braki w programowaniu
na wyzszym poziomie abstrakcji niz void *.
Ja całkowicie rozumiem, ale w wielu sytuacjach języki programowania wysokiego poziomu tworzą nową klasę. Tutaj jest przewaga w tworzeniu interfejsów w GTK+ nad QT. Zwyczajnie nie chcę zakładać nowej klasy, by np. móc zapamiętać jakąś dodatkową zmienną.
Gnome must die/Is dying. 🙂
Any proof?
Chyba źle zrozumieliście – to nie zastąpi Unity bazującego na Clutterze, tylko będzie zamiennikiem tegoż, gdy brakować będzie akceleracji 3D. A szkoda.
Canonical porzucił wersję bazującą na clutterze około 3 miesięcy temu, teraz wersja "3D" rozwijana jest w oparciu o compiz. Owszem wersja 2D będzie odpalana w razie gdy bedzie brakować akceleracji 3d, jednak jak ktoś słusznie już zauważył zmiana rendera na OpenGL sprowadza się do zmiany 1 linijki kodu. Ba już teraz pewnie można zmienić backend, trzeba tylko znaleźć plik startowy sesji i dodać " -graphicssystem opengl"
Unity na Clutterze będzie kontynuowane? Myślałem że ostatecznie ma pozostać Unity 3D (Compiz) oraz Unity 2D (Qt).
Ale ze sterownikami do sprzętu, flashem, hibernacją dalej jak było ? 😀
po co komu hibernacja? Przecież po hibernacji komputer włącza się dłużej niż po normalnym wyłączeniu.
Chyba na Linuksie…
Windows XP – normalnie 40 s, po zahibernowaniu 10 s.
Windows Vista – normalnie 2 min, po zahibernowaniu 40 s.
u mnie na win 7, jest odwrotnie niz u ciebie na viscie: normalnie 40s. po hibernacji 2 min. Nie znalazlem wyjasnienia w sieci…
wyjaśnienie jest proste – sterowniki
a cos wiecej? bo tak mam od postawienia golego systemu
Windows 7 – normalnie 3 minuty, po zahibernowaniu minuta.
ArchLinux – normalnie – 17sek, po zahibernowaniu ok. 6 sekund.
chyba nie, hibernacja czyli zrzut pamięci na dysk twardy trwa dłużej i ten czas wydłuża się jeszcze bardziej jeśli miałeś bardzo dużo w pamięci ram.
Technicznie masz racje. Odpalenie golego systemu moze, ale nie musi byc szybsze
niz podniesienie go z hibernacji. Jednak odpalenie systemu i kompletu aplikacji
juz zawsze bedzie wolniejsze niz odtworzenie tego z hibernacji.
Oczywiscie najlepszym rozwiazaniem jest porzadny suspend (powtarzam to juz
do znudzenia), wzorcowa implementacje suspend maja nowe Mac Air i iPady.
Wcześniej też maki i u niektórych windowsy i linuksy (u mnie nie działa hibernacja i wstrzymanie, ani na windows ani na linux) posiadały dobry suspend. to nie jest nowość, choć pewnie teraz to jeszcze bardziej ulepszono.
Jak nie bawiles sie nowymi Mac Air lub chocby iPadem to polecam.
Szybkosc usypiania i wstawania w polaczenie z tym, ze w uspieniu
moga pozostawac tygodniami szokuje. Jak dla mnie, wzorcowa
implementacja suspend.
Chyba masz niezły syf i nie masz się czym chwalić. 🙂 Mi się Linux uruchamia 20 sek na Athlonie 64 3000+. Choć to jest mało istotne – Windows Vista/7 i XP nie przekraczają 30 sek. na moim 7-LETNIM sprzęcie. Świeżo po instalacji Win 7 uruchamiał się momentalnie, może z 15 sek. Po hibernacji system wstaje w kilka sekund. Czy to Linux czy to Windows. Naprawdę nie wiem co wy robicie z swoimi systemami, ale jak je widzę niektóre liczby to nie wiem czy się śmiać czy płakać.
Z hibernacją musicie wierzyć mi na słowo, za to na bootowanie się Linuxa mam dowód, żebyście mi znów nie mówili, że rzucam słowa na wiatr. http://img209.imageshack.us/img209/3796/bootchart…
Na NT 6.x mam jakiegoś dziwnego buga, że się bardzo długo odpala. Sprzęt mam przyzwoity (Turion 64 X2 2x2GHz, 2GB RAM 667). Tak było na każdym systemie od samego początku – Vista, 2008, 7. 2008R2 nie próbowałem. Sam byłem zdziwiony, że komputery szkolne z Pentiumem Dual Core i 1GB RAM odpalały się w fazie paska ładowania o wiele szybciej.
W sumie to racja, na Linuksie.
Odkąd mam nowego Debiana z poprawkami w skryptch startowych, startuje on jakieś 15 sekund.
Wczytanie 4GB ramu ze swapa zajmuje ponad 20 sekund.
Ciekawe kiedy windows dorobi się takich wyników…
A po co m się dorabiać – u nas działa suspend i hibernacja.
Zaskakujące, u mnie na Linuksie też 😉
Tak samo szybko jak na windowsie.
Ale po co mam używać, skoro szybciej startuje na czysto?
microsoft jak widać przyspieszanie żałośnie długiego czystego startu windowsa "rozwiązał" dając obejście w postaci hibernacji. Śmieszne.
no, zalosne jest raczej twierdzenie ze szybki start potrafi zastapic hibernacje/s2ram. wiesz- ja jak koncze pracowac na lapku to po prostu zamykam klapke- nie musze sie bawic z zamykanie aplikacji, zapisywanie ich. po prostu- zamykam i pozniej sobie otwieram i wszystko jest w takim samym stanie jak przed zamknieciem.
rozumiem, ze twoim zdaniem owy szybki restart jest swietnym rozwiazaniem gdy sie bateria konczy a jakos nie mozna zamknac programow /bo sie cos liczy etc etc/?
4GB/20s = 200MB/s, czyli raid, ssd, albo lzo
Raid 🙂 2 dyski spięte w morror.
To tylko dobija hibernację, bo bez raida byłoby ~40 sekund.
Oczywiście nie zawsze te całe 4GB będą zajęte, więc to też trzeba uwzględnić.
A nawet bez raida czysty start systemu wiele by się nie wydłużył, bo na to składa się więcej niż tylko odczyt danych z dysku.
Tak czy inaczej hibernacja jest tak samo szybka jak normalny boot Linuksa. Ale bootowanie chcą jeszcze przyspieszać, a hibernacji już się nie da.
No i czasy są i tak o niebo lepsze niż uruchamianie się windowsa 7 czy visty.
Czy Ty nie masz aby nicka Łukasz18 na interii ?
Nie.
chyba ktoś nie odróżnia „suspend” od „hibernate”, niemożliwe aby przywrócenie z hibernacji zajęło kilka sekund, co innego przywrócenie z uśpienia.
Nie widzę związku. Sugerujesz, że Bill Filler jest świetnym specjalistą od kernela i niepotrzebnie zajmuje się GUI?
Ile razy już to słyszałem 🙂
Hah patrze na launchpad i rzeczywiście powstaje coś takiego
Już o 7 lat nic w Qt nie napisałem… ech.