-
1. Data: 2012-03-24 21:43:51
Temat: GUI komercyjnie
Od: Dsue <d...@w...pl>
Pytanie tendencyjne ale może się coś zmieniło: co wybrać do napisania
komercyjnego programu tak aby było dobrze? Qt jest drogie a to ma być
program za dosłownie groszowe sumy, GTK? A może jest coś nowego?
WxWindows?
Bardzo spodobał mi się QtCreator - za złożenie w całość różnych
założeń, ale to nie jest żaden wymóg. Jak dla mnie może być tylko
edytor (emacs/vi/whatever), jeśli tylko będę mógł opanować w miarę
składnię (dokumentacja).
Program ma być przede wszystkim na platformy linuksowe ale być może też
kiedyś na win/osx. Będzie płatny (mało ale będzie musiał być).
Piszę na tę grupę bo język ma drugorzędne znaczenie w tym przypadku,
może być C/C++/Python raczej nie Java.
Jak teraz te kwestie wyglądają? Z czego się korzysta?
Pozdrawiam
Dsue
-
2. Data: 2012-03-24 22:55:12
Temat: Re: GUI komercyjnie
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-03-24 21:43, Dsue pisze:
> Pytanie tendencyjne ale może się coś zmieniło: co wybrać do napisania
> komercyjnego programu tak aby było dobrze? Qt jest drogie a to ma być
> program za dosłownie groszowe sumy, GTK? A może jest coś nowego? WxWindows?
Od kiedy to Wx jest "nowe" ?
a Qt płatne chyba już nie jest...
>
> Piszę na tę grupę bo język ma drugorzędne znaczenie w tym przypadku,
> może być C/C++/Python raczej nie Java.
C/C++ ma problem z wielością środowisk GUI, z których żadne nie jest
standardem, ani de facto standardem.
A powalające jest to, że każde z nich implementuje 'Nasz Najlepszy
String (tm)'
-
3. Data: 2012-03-24 23:08:44
Temat: Re: GUI komercyjnie
Od: Dsue <d...@w...pl>
On 2012-03-24 21:55:12 +0000, Jacek Czerwinski <...@...z.pl> said:
>
> a Qt płatne chyba już nie jest...
Toż dlatego pytam bo nie wiem, może się pozmieniało trochę :) W takim
wypadku mogę wykorzystać Qt i napisać program który sprzedam nie
dołączając kodu źródłowego?
>>
>
> C/C++ ma problem z wielością środowisk GUI, z których żadne nie jest
> standardem, ani de facto standardem.
> A powalające jest to, że każde z nich implementuje 'Nasz Najlepszy String (tm)'
:)
Pozdrawiam
Dsue
-
4. Data: 2012-03-24 23:17:07
Temat: Re: GUI komercyjnie
Od: Michoo <m...@v...pl>
On 24.03.2012 23:08, Dsue wrote:
> On 2012-03-24 21:55:12 +0000, Jacek Czerwinski <...@...z.pl> said:
>>
>> a Qt płatne chyba już nie jest...
>
> Toż dlatego pytam bo nie wiem, może się pozmieniało trochę :) W takim
> wypadku mogę wykorzystać Qt i napisać program który sprzedam nie
> dołączając kodu źródłowego?
Umiesz pisać programy a nie potrafisz wpisać w google "Qt license"? Nie
wierzę...
http://qt.nokia.com/products/licensing/
--
Pozdrawiam
Michoo
-
5. Data: 2012-03-24 23:21:25
Temat: Re: GUI komercyjnie
Od: Michoo <m...@v...pl>
On 24.03.2012 22:55, Jacek Czerwinski wrote:
> C/C++ ma problem z wielością
No jakby nie patrzeć tak jest w prawie każdej dziedzinie informatyki i
nie tylko w bibliotekach do gui.
> środowisk GUI,
Tak java ma choćby AWT, Swing, SWT coby te popularniejsze wymienić.
> z których żadne nie jest
> standardem, ani de facto standardem.
Imo Qt uzyskało status standardu de facto dla GUI w C++ już jakiś czas temu.
> A powalające jest to, że każde z nich implementuje 'Nasz Najlepszy
> String (tm)'
Tylko std::wstring jest dość żałosny i średnio użyteczny do tego co
robią w Qt z Qstring. Nie mówiąc już o tym kiedy powstawało Qt.
--
Pozdrawiam
Michoo
-
6. Data: 2012-03-25 08:45:54
Temat: Re: GUI komercyjnie
Od: Dsue <d...@w...pl>
On 2012-03-24 22:17:07 +0000, Michoo <m...@v...pl> said:
>>
> Umiesz pisać programy a nie potrafisz wpisać w google "Qt license"? Nie
> wierzę...
>
> http://qt.nokia.com/products/licensing/
Znam ten link.
Qt nie jest celem, pytałem o różne możliwości.
Poza tym fakt pisania programów ma się nijak do zrozumienia zapisów
licencji. Ma z tym problem wielu ludzi mądrzejszych ode mnie, więc wolę
spytać - wtedy będę miał obraz tego co się dzieje "w światku" - to
dodatkowy bonus.
Pozdrawiam
Dsue
-
7. Data: 2012-03-25 09:52:32
Temat: Re: GUI komercyjnie
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-03-24 23:21, Michoo pisze:
> On 24.03.2012 22:55, Jacek Czerwinski wrote:
>> środowisk GUI,
> Tak java ma choćby AWT, Swing, SWT coby te popularniejsze wymienić.
Swing jest w części można powiedzieć nad AWT i potrafi współistnieć w
projekcie.
No i String'a jednak ma (i cały ekosystem bibliotek różnych dziedzin).
>
>> A powalające jest to, że każde z nich implementuje 'Nasz Najlepszy
>> String (tm)'
> Tylko std::wstring jest dość żałosny i średnio użyteczny do tego co
> robią w Qt z Qstring. Nie mówiąc już o tym kiedy powstawało Qt.
Być może ... tylko spójrz tak: NaszNajlepszyString jest szybszy o 10
mikrosekund w każdej operacji. Po czym jego składowa char * jest
KOPIOWANA do drugiego PrawieNajlepszegoStringa w innej bibliotece (np XML)
nawet nie mówię o utrzymywaniu tego, tylko argumencie o wydajności
(najczęściej nieistotnym).
-
8. Data: 2012-03-25 10:09:56
Temat: Re: GUI komercyjnie
Od: " M.M." <m...@N...gazeta.pl>
Dsue <d...@w...pl> napisał(a):
> Pytanie tendencyjne ale może się coś zmieniło: co wybrać do napisania
> komercyjnego programu tak aby było dobrze? Qt jest drogie a to ma być
> program za dosłownie groszowe sumy, GTK? A może jest coś nowego?
> WxWindows?
Dd dość dawna QT można używać do komercyjnych programów i nie trzeba płacić
za bibliotekę ani nie trzeba udostępniać kodu źródłowego programów.
Gdy się zmienia kod samej biblioteki, to sprawy mają się inaczej. Zdaje się
że wtedy trzeba udostępnić zmieniony kod całkowicie za darmo.
Mogę powiedzieć że ogólnie od jakiegoś roku środowisko działa bardzo
dobrze, co nie oznacza że nie sprawia żadnych kłopotów. Wcześniej do
większych projektów absolutnie nie nadawało się. Sama biblioteka QT
była od dawna stabilna i bardzo dobra... faktycznie nigdy się na samej
bibliotece nie przejechałem.
Środowisko QTCreator jest teraz wypasione i stabilne, jednak z rzadka potrafi
nieprzyjemnie zaskoczyć.
1) Trzeba uważać na nazewnictwo plików i strukturę katalogów aby sobie qmake
poradził. Kiepsko nadaje nazwy regułom w pliku make. Częściowo ten problem
rozwiązuje jakaś opcja (zdaje się że opcja I), ale gdy kiedyś próbowałem
ją dodać to nie zaobserwowałem żadnej zmiany. Generalnie lepiej o tym
problemie wiedzieć go unikać.
2) Gdy są otwarte dwa projekty, to dziwnie się zachowuje po operacjach na
wspólnych plikach. Mam na myśli operacje typu zmiana nazwy pliku,
usunięcie pliku, przeniesienie do innego katalogu. Często trzeba ręcznie
edytować plik projektu. Ale da się z tym żyć, plik projektu ma prostą
składnię.
3) Czasami po dodaniu nowej klasy nie dodaje jej plików do projektu i trzeba
dodawać ręcznie. Ale to też nie jest wielki ból.
4) QMake zdaje się nie rozpoznaje od jakich plików nagłówkowych zależą
jakie pliki źródłowe, po zmianie nagłówków często pliki źródłowe
nie są przekompilowane. Trzeba robić rebuild-all, albo pisać pliki
make ręcznie. W większym projekcie ręczne pisane make raczej jest
nieodzowne. Nie wiem jak visual studio rozpoznaje zależności, ale
zdaje się że w visual studio miałem takie problemy tylko raz kiedyś...
już nie pamiętam o co chodziło, ale też musiałem robić rebuild all.
5) Środowisko czasami pozwala na dodanie nieobsługiwanych zdarzeń do
kontrolek.
6) Czasami dobrze jest skasować plik user. Ostatnio zdarzyło mi się że
po przeniesieniu projektu z linuxa na windowsa środowisko na
windowsie nie chciało go otwierać. Wystarczyło skasować pliku user i
zadziałało elegancko - dziwne.
7) Kiedyś dawno temu zaobserwowałem jakiś problem z programem moc. O ile
jeszcze dobrze pamiętam, polegał on na tym, że jeśli klasa od razu
nie miała makra Q_OBJECT to potem po dopisaniu moc ją ignorował. Trzeba
było klasę całkowicie usunąć z projektu, dodać od nowa, od razu przed
pierwszą kompilacją dopisać Q_OBJECT i dopiero działało.
Drobnych wad środowisko ma dużo, jednak można już powiedzieć że qtcrator
to dobre środowisko i zalety biorą zdecydowaną górę nad wadami.
Osobną sprawą są problemy gcc i gdb które są dostarczane wraz ze
środowiskiem qtcreator. Problemy obserwowałem zarówno
pod systemem windows jak i pod linux, na różnych konfiguracjach sprzętowych,
tylko na macu jeszcze nie miałem okazji. Jeszcze mam na dysku dwa screeny
z debugowania projektu, mam błąd typu a - b != 0 gdy a == b.
W jakiejś wcześniejsze wersji gcc generował błędny kod na platformę atom
N270 z instrukcji typu: int a[10]; int *b = a+2; b[-1] = cos. Może
QTCreator kiedyś sprawiał tyle problemów bo był skompilowany kompilatorem
z błędami... nie wiem. Na pewno kiedyś nie dało się w tym pracować, a teraz
jak już pisałem zalety biorą górę.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
9. Data: 2012-03-25 10:52:53
Temat: Re: GUI komercyjnie
Od: Edek Pienkowski <e...@g...com>
Dnia Sun, 25 Mar 2012 08:09:56 +0000, M.M. napisal:
>
> Osobną sprawą są problemy gcc i gdb które są dostarczane wraz ze
> środowiskiem qtcreator. Problemy obserwowałem zarówno
> pod systemem windows jak i pod linux, na różnych konfiguracjach sprzętowych,
> tylko na macu jeszcze nie miałem okazji. Jeszcze mam na dysku dwa screeny
> z debugowania projektu, mam błąd typu a - b != 0 gdy a == b.
>
> W jakiejś wcześniejsze wersji gcc generował błędny kod na platformę atom
> N270 z instrukcji typu: int a[10]; int *b = a+2; b[-1] = cos. Może
Index jest signed czy unsigned? Nigdy tak indeksów nie używałem. Tak
na marginesie.
> QTCreator kiedyś sprawiał tyle problemów bo był skompilowany kompilatorem
> z błędami... nie wiem. Na pewno kiedyś nie dało się w tym pracować, a teraz
> jak już pisałem zalety biorą górę.
QTCreator dostarcza całe własne środowisko wraz z gcc? Czyli nie
da się użyć innej wersji kompilatora i/lub dowolnej biblioteki? Sam chciałbym
wiedzieć, w które GUI warto inwestować, dlatego pytam.
Edek
-
10. Data: 2012-03-25 10:57:04
Temat: Re: GUI komercyjnie
Od: Sebastian Biały <h...@p...onet.pl>
On 2012-03-24 21:43, Dsue wrote:
> A może jest coś nowego? WxWindows?
Wx przeniknięty jest duchem pisania w C z lat 70. To może być zaleta,
jeśli lubisz ponowne wynajdywanie kwadratorych kół. Wystarczy poczytać
kfiatki faq: "[...] in wxWidgets' best interests to avoid use of
templates. Not all compilers can handle templates adequately [...]"
> Z czego się korzysta?
Z Qt w C++.