abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 16:55 | Bezpečnostní upozornění

V editorech Vim a Neovim byla nalezena a opravena bezpečnostní chyba CVE-2019-12735. Funkce modeline umožňovala při otevření souboru spustit libovolný příkaz. Chyba byla opravena v upstream verzích Vim 8.1.1365 a Neovim 0.3.6.

Ladislav Hagara | Komentářů: 0
14.6. 23:55 | Nová verze

Byla vydána nová stabilní verze 2.9 svobodné decentralizované mikroblogovací platformy a sociální sítě podobné Twitteru Mastodon (Wikipedie). Přináší především jednosloupcový layout. Detailní přehled novinek na GitHubu. Projekt lze podpořit na Patreonu. Aktuálně má přislíbeno 4 761 dolarů měsíčně.

Ladislav Hagara | Komentářů: 0
14.6. 16:11 | Nová verze

Byla vydána první stabilní verze 1.0 decentralizovaného protokolu pro komunikaci v reálném čase Matrix (Wikipedie) a také verze 1.0 jeho referenční implementace Synapse. Současně byla oficiálně představena zastřešující nadace Matrix.org Foundation. Protokol Matrix je využíván například komunikátorem Riot.

Ladislav Hagara | Komentářů: 1
13.6. 13:33 | IT novinky

Microsoft oznámil, že v květnu představený Windows Subsystem for Linux (WSL) ve verzi 2 s jádrem Linux 4.19 je již k dispozici pro uživatele zapojené do programu Windows Insider. Podrobnosti v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 14
13.6. 09:55 | Nová verze

Byla vydána nová stabilní verze 2.10.12 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP. Přehled novinek i s náhledy v oznámení o vydání a v souboru NEWS na GitLabu. Zmínit lze vylepšení nástroje Křivky (YouTube) nebo podporu vrstev při exportu do formátu TIFF.

Ladislav Hagara | Komentářů: 0
12.6. 23:11 | Nová verze

Byla vydána nová major verze 2.0 (aktuálně 2.0.3) svobodného multiplatformního BitTorrent klienta Deluge (Wikipedie). Přehled novinek v poznámkách k vydání. Zdůraznit lze migraci na Python 3 a GTK 3.

Ladislav Hagara | Komentářů: 4
12.6. 22:33 | Komunita

CERN (Evropská organizace pro jaderný výzkum) představil svůj projekt MAlt (Microsoft Alternatives). Cílem projektu je nahradit používaný software od Microsoftu alternativami. Důvod je nasnadě. Pro Microsoft přestal být CERN akademickou institucí a poplatky za licence tak od března letošního vzrostly více než desetinásobně [reddit].

Ladislav Hagara | Komentářů: 8
12.6. 17:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostním problému RAMBleed (CVE-2019-0174). Jedná se o útok postranním kanálem na DRAM (Dynamic Random Access Memory) vycházející z útoku Rowhammer. Útočník může číst bity v paměti bez přístupu k nim.

Ladislav Hagara | Komentářů: 0
11.6. 23:55 | Komunita

Dle plánu byl měl Debian 10 s kódovým názvem Buster vyjít v sobotu 6. července. Po celém světě se začínají plánovat Release Parties.

Ladislav Hagara | Komentářů: 19
11.6. 23:22 | Komunita

Firefox má nové logo (en), do aplikace se dostane v jedné z příštích aktualizací. Oranžová liška i zeměkoule zůstala zachována, celé logo se ale výrazně zjednodušilo, aby odpovídalo požadavkům na moderní ikony a zapadalo do stále více používaného tzv. „flat“ designu.

Ladislav Hagara | Komentářů: 34
Jakou verzi jádra Linux typicky používáte na osobním počítači?
 (16%)
 (21%)
 (56%)
 (3%)
 (4%)
Celkem 252 hlasů
 Komentářů: 8, poslední včera 18:14
Rozcestník

Dotaz: V šem programovat GUI pro linux + windows

23.8.2007 23:04 mmartin
V šem programovat GUI pro linux + windows
Přečteno: 3485×
Ahoj. Na toto téma zde bylo napsáno mraky slov. přiznám se, že jsem neměl sílu pročíst všechy. a) otázky byly položeny trochu jinak, napřiklad v čem programovat pro linux, nebo pro kde atp.

Můj dotaz zní trochu jinak. A prosím odpovědi typu v košili, v létě atp nechte v šuplíku děkuji :-).

Něco jsem už naprogramoval v konsolových aplikacích. Pak jsem pomalu přešel na GUI nejprve v MFC pod win. Pak v C# a nakonec v jave, kde jsem zjistil že je to opravdu velice podobné jako v C#. MS by měl Sunu zaplatit za licence k javě :-) protože to je z venku (uvnitř to bude asi trochu jiné) totální kopie.

Nicméně hledám nějaký pokud možno neinterpretovaný jazyk, ve terém bych mohl tvořit GUI jak pro win tak pro linux.

Omluvám se teď všem Rubyům a Pythonům, ale chtěl bych to tvořit pokud možno v C nebo C++. Pokud mi to někdo nevymluví.

Java i C# jsou sice hezké platformy, ale zdá se mi to jako strašné mrhání systémovými prostředky. Proto jsem se chtěl poohlédnout po něčem jiném. Jak to vidíte vy ?

Jak se dá v C nebo C++ napsat multiplatformní aplikace ? Nebo žeby v jiném jazyce ?

Odpovědi

Luboš Doležel (Doli) avatar 23.8.2007 23:07 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Jak se dá v C nebo C++ napsat multiplatformní aplikace ?
Napište to s Qt. Pokud chcete GTK+, použijte třeba GTKmm/Glibmm - tam už si asi budete muset zařídit některé platform specific věci (sahající mimo možnosti jazyka) sám.
zoul avatar 24.8.2007 07:27 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
To je Ti fakt jedno, jestli budeš psát v Javě, C nebo C++? Nebo chceš zjistit, která technologie by asi tak byla nejlepší, a tu se potom pořádně naučit? GUI programování v Javě a C++ je podle mě mnohem snesitelnější než v C. Přenositelnost Javy je pak další velké plus a já osobně bych už nerad žil bez garbage collectoru :)

Hledáš neinterpretovaný jazyk, protože interpretované považuješ za pomalé? Javu řadíš kam? Tohle je hodně kontroverzní téma, ale Java je většinou srovnatelně rychlá jako C/C++, tedy pokud zrovna nepíšeš nějakou hru a nebojuješ o každý FPS. Swing je maličko bumbrlíček, ale kdyby Ti na tom hodně záleželo, můžeš zkusit SWT.

Kdybys chtěl psát v C++, určitě vyzkoušej QT. Rozhodně bych si ale C++ nevybíral jen proto, že podle Tebe bude rychlejší.
24.8.2007 10:36 mmartin
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
No. Psal jsem v jave neco jako filemanager. Ve srovnani s vecmi napsanymi v neinterpretovanych jazycich byla moje app asi tak 10x pomalejsi pri nacitani informaci z disku, obzvlaste ze sitovych to bylo markantni atp. Spousteni cele aplikace take 10x pomalejsi. Navic totalni zrout pameti. Zatim co FAR manager zabira se vsemi svymi funkcemi v pameti s bidou 1Mb moje aplikace zabirala 30 jen jsem ji spustil. Kdyz jsem v ni zacal pracovat, zrala klidne i 80. Samosebou je to z velke casti moje chyba, protoze jsem patlal a ne profesionalni programator. Nicmene i tak si nemyslim ze zas tak velky podil na spotrebe zdroju ma ma neschopnost optimalizovat. Spise je to technologii.

Proto jsem chtel zkusit programovat v necem slozitejsim, coz c++ pro mne bez pochyby je, ale zato setrnejsim ke zdrojum. Nelibi se mi totiz moderni trendy ve stylu, pamet roste, vykon pocitace roste, tak budem psat neoptimalizovane.

Nicmene se nebranim myslence psat v jave, pokud mi tu nekdo rekne ze lze opravdu napsat aplikaci, ktera bude alespon trochu srovnatelna s Cckovou app co se tyce zdroju. Budu jen rad, protoze v jave nebo c# je to easy :-).

PS:Procedury pro zjistovani souboru na disku + zapis informaci do seznamu bylo opsano z velmi tluste a velmi chytre knihy. Takze predpokladam ze to byl nejlepsi zpusob jak to napsat.
zoul avatar 24.8.2007 11:08 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
No. Psal jsem v jave neco jako filemanager.
Aha, to je problém, k tomu se Java zrovna moc nehodí.
Ve srovnani s vecmi napsanymi v neinterpretovanych jazycich (…)
S tímhle opatrně. Za prvé, výraz „interpretovaný jazyk“ je sám o sobě vachrlatý, protože jazyk je jen specifikace a dá se pro něj napsat interpret i překladač. Za druhé, Java není vyloženě interpretovaný jazyk, ale jazyk překládaný do bajtkódu virtuální mašiny. Velká část toho kódu navíc díky JIT končí v kódu stroje, na kterém VM běží. Za třetí, pomalost správce souborů napsaného v Javě s interpretováním přímo nesouvisí – zpomaluje spíš abstrakce hardwaru, které se člověk v nižších (klidně interpretovaných) jazycích může vyhnout.
Spousteni cele aplikace take 10x pomalejsi.
To je ale kvůli zavádění VM, ne? Druhé spuštění už by mohlo být rychlejší. (Což ale říkám spíš jen do počtu, protože u správce souborů by samozřejmě bylo i to první pomalé spuštění na pendrek.)
Proto jsem chtel zkusit programovat v necem slozitejsim, coz c++ pro mne bez pochyby je, ale zato setrnejsim ke zdrojum. Nelibi se mi totiz moderni trendy ve stylu, pamet roste, vykon pocitace roste, tak budem psat neoptimalizovane.
Tohle je omyl, vážně. Úplně základní programátorská dovednost je umět vybrat technologii, která se pro zadání bude hodit. Když si chci v rychlosti něco spočítat a sáhnu po C++, není to ideální. Když chci napsat správce souborů a sáhnu po Javě, je to velký omyl. Když to pak dře, není to chyba technologie.
Nicmene se nebranim myslence psat v jave, pokud mi tu nekdo rekne ze lze opravdu napsat aplikaci, ktera bude alespon trochu srovnatelna s Cckovou app co se tyce zdroju.
Jistěže jde. Virtuální mašiny se ale člověk nezbaví, takže nesmí čekat, že první spuštění aplikace i s režií startu VM bude lepší než staticky linkovaná céčková binárka. Pro spoustu aplikací na tom ale nesejde, případně výhody Javy převáží.

Jestli chceš psát správce souborů pro Windows i Linux (wtf?), Java pro to ideální není. Jestli chceš psát přenositelnou GUI aplikaci pro Windows i Linux, výhody Javy oproti ostatním řešením můžou být podstatné. Jestli čekáš jednoduchou a správnou odpověď na otázku „V čem psát GUI aplikace pro Windows i Linux?“, nedočkáš se.
24.8.2007 12:36 mmartin
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
To je ale kvůli zavádění VM, ne? Ano bylo to kvuli tomu.

výhody Javy oproti ostatním řešením můžou být podstatné Nezbyva nez souhlasit. Java nebo C# jsou opravdu pro vetsinu mych potreb vyhodnejsi. Ale mam pocit ze v kazde aplikaci, kterou chci dotahnout do poradneho konce, narazim na hranici VM. Pisu si pro sebe jen takove blbosti, prepocty mernych jednotek, slovniky, generatory hesel atp. Na to si s javou nebo monem vystacim v pohode. Jakmile ma byt ale program spusten na slabsim stroji, nebo hezky pro konzervativce po staru a reknu jim, tady mate 1Mb programek ale musite si kvuli nemu nainstalovat 200mb frameworku tak jsem u nich skoncil :-), to je za a). A za b) v okamziku kdy se chci prehoupnout do neceho slozitejsiho (jako je filemanaager) nebo neco co pracuje s hardwarem, koncim. Budto to nejde vubec a nebo je to pomale.

Ale co uz, takovy je zkratka zivot :-).
24.8.2007 11:01 cynik
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
No nevim jestli ti pomuzu, ale mam par postrehu.

Kdyz jsem zacal psat nekdy pred 8 rokama prvni GUI tak jsem vybral jako jazyk C a jako toolkit gtk. Duvodem bylo, ze se me nechtelo moc ucit C++ a prave prenositelnost. Plain X (Athenu) jsem zavrhoval protoze uz tehdy mela vazne retro vzhled a nebyl jsem si jistej jestli by ji nasi uzivatele zvladli pouzivat. Nicemne uz jednoduche pokusy jasne ukazaly, ze gtk je viditelne narocnejsi nez X.

Ten program jsem pak jeste prepisoval asi 3x. Hruza, poprve to bylo proto, ze pri povyseni gtk z verze 1.0 na 1.2 odmitalo spoustet suid binarky, takze jsem navic jeste kolem toho musel prepsat kompletne architekturu zbytku baliku. Byl to krok spravnym smerem, nicmene pak uz me gtk jen zdrzovalo, protoze kazde dalsi povyseni znamenalo prepsat pulku programu diky zmenam v API. Hlavne (a to tak je dodnes) neni poradne vyreseno pouzivani grafiky, takze ke gtk musite prihodit ruzne gdkpixbufry atd. Aplikace se dodnes pouziva pod starym gtk. Dotazem v konferenci me bylo receno, ze stare gtk (<2.0) se bude udrzovat, ovsem je to uplne jiny toolkit nez nove gtk.

Takze jsem casem na psani v GTK zanevrel a pri dalsim "bodu obratu" kdy jsem se rozhodoval o toolkitu pro C++, ale tentokrat s vetsi vyberem mezi Qt,Gtk v C++ a wxWidgets. Qt jsem vyloucil rovnou kvuli filozofii (tvori to jedna firma, co se stane, az se neco stane), licenci (tehdy jeste nebyla pod GPL, mozna neni ani ted, i kdyz je licence liberalnejsi) a proto, ze se me z Qt aplikacema tezko pracuje a nelibi se me. Naopak ma Qt pekne propracovane API, takze to vyuziva moznosti C++ dokonale a ciste. Gtk v C++ jsem zavrhnul kvuli tomu, ze jsem zase cekal zmeny API (to jsem asi trefil). Pokud vim o dalsich toolitech tak uz jsou o hodne mimo, vetsinou nemaji ani zdaleka takove moznosti a hlavne jsou ve vyvoji (coz znamena zmeny API).

Takze jsem zacal pracovat s wxWindows, ktere se prejmenovali na wxWidgets. Duvodem byla hlavne prenositelnost a to, ze jsem ocekaval, ze zmeny v API Gtk za me budou filtrovat vyvojari wx. Po asi dvou letech pouzivani se me zda, ze to byla dobra volba. Zacal jsem v pythonu, protoze jsem podlehl tomu, ze v pythonu se snadno a rychle programuje. Coz je sice pravda, tehdy jsem neco jednoducheho vyrobil behem tydne. Nicmene pak jsem udelal jeste jeden pokus a ani v C++ to nebylo pomalejsi, spis naopak. Prakticky v tom tedy neni zadny rozdil. Pokud jde o rychlost pak python pochopiltene dele startuje, za behu uz se rozdily nedaji poznat vyjma pripadu, ze pocitac musi swapovat, pak je pochopitelne python mnohonasobne pomalejsi. To je pro me dost dulezite kriterium, protoze mam ridici system a ten ocekavam, ze budou lidi provozovat na spise starsich strojich, na noteboocich atd. Navic to znamena, ze clovek si muze na takovou sunku nainstalovat jen par knihoven a nemusi mit tisice dodatecnych modulu atd.

Pokud jde o programovani v C, C++ nebo pythonu, tak mezi C a C++ je vyrazny rozdil v predevsim v jednoduzsim programovani a dodatecne stabilite, navic v C++ se me zda, ze se da mnohem jednoduzsej pochopit struktrura toolkitu a tim padem to rychlej a bez chyb napsat. Doporucil bych spise C++. Mezi C++ a pythonem nevidim z hlediska programatora zadny praticky rozdil. Javu a Mono jsem nezkousel, nemam na to pocitac.
24.8.2007 11:09 cynik
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Jeste doplnek.

Pokud jde o rychlost a systemove zdroje, je jednoznacne C podstatne rychlejsi nez C++, program mensi atd. Beru to jako dan za to, ze je ten program s vetsi jistotou spolehlivejsi.
24.8.2007 12:21 mmartin
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Diky za tip. Odpoved byla vycerpavajici. Urcite testnu C++ s wx. Uvidime co to umi.

Zkusim se mrknout a zjistit taky situaci kolem gtk (nemylim-li se je v tom napsany gimp) a QT4. Prozmenu v tom ted prepsali KDEcka a je uz GPL. Uvidiem co se od jednotlivych platform bude dat ocekavat.
25.8.2007 23:43 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Pokud jde o rychlost pak python pochopiltene dele startuje, za behu uz se rozdily nedaji poznat vyjma pripadu, ze pocitac musi swapovat, pak je pochopitelne python mnohonasobne pomalejsi.
Potvrzuji, rozdíl v rychlosti běžného programu v pythonu a C/C++ poznám jen pokud se ten pythoní musí vyhrabávat ze swapu.
jednoduzsej
Dnes už píšeme mnohem jednodušeji než ve spřežkách. ;-)
27.8.2007 12:40 Petr Mach | skóre: 9 | blog: Hláska
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Od GTK 2.0 je GTK stále kompatibilní, tedy až do současné verze 2.10.14. GDK je součástí GTK, takže poznámce o GDK pixbuferech nerozumím. GDK je low level knihovna pro primitivní GUI operace na které staví GTK, což je vlastně sada widgetů.

S wxWidgets mám špatné zkušenosti jako uživatel, protože většina programů postavených na wxWidgets je podivná, má potíže s fonty a tak.
24.8.2007 12:03 anyd | skóre: 3
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Pokud chces psat desktopove aplikace, tak bych uprednostnoval mono nez javu.

rozhodne dneska bych uz nepsal v C (GTK), cas je velice draha vec, aby se s ni takhle plytvalo.
24.8.2007 12:15 springer | skóre: 10 | blog: engineering
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
...rozhodne dneska bych uz nepsal v C (GTK), cas je velice draha vec ...

nezlobte se na me, ale obcas to musi byt, a proto ta otazka: kolik stoji auto?
kralovna Alzbeta a Stallmanuv holic diskutuji free software
27.8.2007 13:09 R
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Moje stoji asi tak 5 hodin - od osmej, co som nim isiel :P
24.8.2007 12:16 springer | skóre: 10 | blog: engineering
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
opravdovy programator (skutecne opravdovy) pouziva fox-toolkit.
kralovna Alzbeta a Stallmanuv holic diskutuji free software
Jiří Němec avatar 24.8.2007 17:50 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Pokud vám nevadí licence GPL, tak je QT a C++ pro vás asi nejlepší. Pro firemní použití pokud zákazník nesmí dostat zdrojáky je QT asi stejně drahé jako podobné řešení třeba od Borlandu. V tomhle by na tom bylo GTK lépe, ale zas byste musel psat v C a GTK je pouze grafický toolkit. QT má proti tomu vlastní řešení na všechno možné jako třeba databáze, sítě, xml, OpenGL...
Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
Luboš Doležel (Doli) avatar 24.8.2007 19:05 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Kvůli GTK+ by nemusel psát v C, je tu i GTKmm. Je to sice další balík knihoven navíc, ale pořád někdy lepší, než to plácat v lowlevel GTK+.
24.8.2007 19:16 depka
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Pokud mate skusenosti s MFC tak wxWidgets bude asi nejlepsi volba
24.8.2007 22:15 HS | skóre: 12
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
Ad. otazka : V pohode, ale potrebuje to dodrzet standardy jazyka, nikoliv tvorit podle toho, co kompilator vezme.

Jinak zalezi co chces tvorit. konzolove aplikace jsou v pohode, horsi je to s grafickymi aplikacemi, tam vetsinou multiplatformost krachne. Co se tyka javy, tam jsem jeste neslyzel, ze by nekdo mel problem s multiplatformosti. Sam vetsinou tvorim graficke aplikace aplety, ale jsou tu i dalsi tridy, ktere by ti vice vyhovovali. V C++ je to problem, ale kdyz najdes vhodne vyvojove protredi, jses zavodou. V C si musis odrit grafiku sam. Je to sice pracnejsi, ale o to mene komplikaci pri multiplatformosti. Jinak na multiplatformost C# bych nesazel. Prece jenom je to produkt Microsoftu, hlavniho tvurce ruznych multiplatformich problemu.
25.8.2007 22:29 Bubak | skóre: 15 | blog: Čtvrtá cenová
Rozbalit Rozbalit vše Re: V šem programovat GUI pro linux + windows
WX by nemusela byt spatna volba, ale muzes take mrknout na C++ toolkity Fox-toolkit nebo FLTK, pokud netrvas na systemovem look&feel (jak se to rekne cesky?). U Fox-toolkitu je to sice v planu, ale az na poslednim miste:-). Nicmene ho pouzivam na ruzne mensi veci a nemam s nim problem.
... máš jen mrtvou kočku a poškrábanýho jezevčíka ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.