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 22:11 | Zajímavý projekt

Padesátiny Unixu lze oslavit také hrou The Unix Game aneb na unixové roury pomocí Scratche.

Ladislav Hagara | Komentářů: 0
včera 21:44 | Komunita

Vývojáři svobodného 3D softwaru Blender oznámili, že nejnovějším firemním sponzorem Blenderu je společnost Adidas. Jedná se o úroveň Corporate Silver, tj. 12 tisíc eur ročně.

Ladislav Hagara | Komentářů: 0
včera 18:22 | Komunita

V září proběhla každoroční konference Akademy komunity KDE. Nyní jsou záznamy přednášek dostupné online. Témata se dotýkají aplikací a knihoven KDE, jejich adaptaci pro různá speciální použití (vestavěná zařízení či rozšířená realita) i obecně vývoje a distribuce softwaru.

Fluttershy, yay! | Komentářů: 0
včera 09:11 | Zajímavý článek

Mozilla.cz informuje o vylepšování vlastních about: stránek Firefoxu, konkrétně o odstraňování volání funkce eval() z těchto stránek. Tyto stránky mají přístup k interním součástem Firefoxu, ale protože jsou napsané v HTML a JavaScriptu, mohou být cílem podobných útoků jako webové stránky zobrazované v prohlížeči (např. vložení cizího kódu nebo obsahu), jen s potenciálně závažnějším dopadem. Pokud by se někomu skutečně povedlo kód do

… více »
Ladislav Hagara | Komentářů: 3
včera 08:55 | Zajímavý projekt

Uživatel GitHubu joeycastillo představil The Open Book Project, jehož cílem je vytvořit open-source čtečku elektronických knih. Projekt se zatím nachází v rané fázi vývoje, už nyní ale obsahuje použitelný návrh hardware prototypu „Feather Wing“, jehož cílem má být ověření konceptu na 4,2palcovém displeji. Tento koncept je postaven na kitu Adafruit Feather M4 Express, který ovládá hlavní desku s displeji a tlačítky. Po úspěšném ověření

… více »
Bystroushaak | Komentářů: 30
včera 05:00 | Nová verze

Byla vydána verze 5.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
15.10. 20:33 | Zajímavý projekt

Byly zveřejněny schémata, firmware a instrukce pro sestavení trackballu Ploopy. Ten používá Arduino, senzor PMW3360 a 1,75palcovou kouli. Zdrojové soubory jsou šířeny pod open-hardware licencí CERN a GNU GPLv3. Tvar je inspirovaný klasickým trackballem Microsoft Trackball Explorer, jehož výroba byla ukončena kolem roku 2005 bez náhrady; projekt Ploopy se k tomu ale z právních důvodů nehlásí. Již vyrobené díly je možno objednat za 200 kanadských dolarů. Další podrobnosti v příspěvcích uživatele crop_octagon na Redditu.

Fluttershy, yay! | Komentářů: 26
15.10. 20:22 | Nová verze

Vyšlo desktopové prostředí KDE Plasma 5.17. Novinkou je např. „noční režim“ (pro X11, nejen Wayland), skrytí upozornění při prezentacích (když je připojena obrazovka se stejným obrazem), lepší podpora HiDPI, optimalizace využití zdrojů a mnoho drobných zlepšení a oprav.

Fluttershy, yay! | Komentářů: 1
15.10. 12:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 169. brněnský sraz, který proběhne v pátek 18. října od 19:00 v restauraci Racek (Jungmanova 5). Před srazem proběhne v 18:00 komentovaná prohlídka nových prostor hackerspacu base48 (přístup je z Mojmírova náměstí).

Ladislav Hagara | Komentářů: 8
15.10. 05:55 | Bezpečnostní upozornění

V příkazu sudo byla nalezena a ve verzi 1.8.28 byla již opravena bezpečnostní chyba CVE-2019-14287. V souboru /etc/sudoers lze nastavit, aby daný uživatel mohl konkrétní příkaz spouštět s právy libovolného uživatele (ALL) nebo libovolného uživatele kromě uživatele root (ALL, !root). Spustí-li tento uživatel daný příkaz se sudo s volbou -u#-1 nebo -u#4294967295, tj. pod uživatelem -1 nebo 4294967295, nebude vyžadována autentizace a příkaz se spustí pod právy roota.

Ladislav Hagara | Komentářů: 1
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (19%)
 (4%)
 (11%)
 (39%)
 (24%)
 (2%)
Celkem 407 hlasů
 Komentářů: 22, poslední 23.9. 08:36
Rozcestník

www.AutoDoc.Cz

GNOME 2.24 (nové aplikace)

29. 10. 2008 | Martin Picek | Recenze | 6739×

Nové programy, které byly zařazeny do oficiální distribuce GNOME 2.24: Hamster, aplet pro sledování pracovního času (+ krátký rozhovor s vývojářem Hamsteru); Empathy, univerzální komunikátor (Jabber, ICQ apod.); Ekiga, softwarový telefon s podporou SIP a H.323.

Obsah

V minulém dílu seriálu o novinkách v GNOME 2.24 byly obsaženy informace o aplikacích, které mají v projektu GNOME své místo již delší dobu. Nyní se můžeme mrknout na projekty, pro něž je GNOME 2.24 první štací…

V předchozím vydání GNOME se uživatelé mohli radovat hned z několika nových aplikací. Jednalo se o Vinagre, prohlížeč vzdáleného pracovního prostředí, Cheese, aplikaci pro práci s webovou kamerou, a Anjutu, vývojové prostředí. Anjuta byla však spíše zánovní než nová.

GNOME 2.24 je na tom nejinak a dočkalo se také tří nových aplikací. Jsou jimi: aplikace pro analyzování času Hamster, komunikátor Empathy a aplikace pro audio a videohovory Ekiga. Podobně jako Anjuta, ani Ekiga není nová, nýbrž zánovní.

V tomto článku budou všechny tyto aplikace postupně probírány.

Hamster - jak nakřečkovat čas

link

První z aplikací, jež si dnes představíme, je Hamster. Hamster je anglický výraz pro křečka, a možná proto je cílem této aplikace umožnit, aby si uživatel mohl nakřečkovat svůj čas a použít jej ve vhodnější chvíli. O tom ale dále.

K čemu Hamster slouží

link

Co Hamster nabízí? Jednoduše řečeno pomáhá měřit a analyzovat čas. Nejedná se však o žádnou pomůcku pro laboranty nebo sportovní trenéry, jak by se na první pohled možná mohlo zdát. Jedná se o nástroj, s jehož pomocí uživatel odhalí, jaké činnosti věnuje během dne nejvíce času, a na základě tohoto měření může proškrtat svůj diář.

Použití Hamsteru připomíná „píchačky“. Píchačky byly zařízením, které se především dříve používalo pro evidenci přítomnosti zaměstnanců na pracovišti. Když zaměstnanec ráno přišel do podniku, u vrátnice si „píchnul“ příchod. Když z podniku odcházel, píchnul si odchod. Rozdíl mezi odchodem a příchodem byla doba, kterou v podniku zaměstnanec strávil. Alespoň teoreticky.

Hamster tohoto přístupu využívá také. Když uživatel začne dělat nějakou činnost, dá aplikaci vědět. Pokud ji přestane dělat, píchne si odchod.

Po nějaké době má uživatel přehled o tom, co dělal a jakou dobu tomu věnoval. Každá činnost má svůj název a může být zařazena do kategorie (skupiny činností). Činnosti i kategorie jsou plně v režii uživatele a je také jen na něm, podle jakého kritéria bude činnosti třídit.

Z tohoto popisu je jasné, že se Hamster hodí především do firem. U „domácích“ uživatelů, kteří tráví celý svůj čas prohlížením webových stránek o kočkách nebo kolotočích, nejspíš nemá smysl Hamster používat. Naopak zaměstnancům může být velmi dobrým pomocníkem. Pokud zaměstnanec například zjistí, že devadesát procent času tráví na poradách, asi je čas zefektivnit využití času…

Nicméně – fantazii se meze nekladou a je na každém, jak Hamster využije.

Jak Hamster vypadá a jak se chová

link

Více než klasickou aplikací je Hamster appletem. Jeho místo je totiž na panelu, ze kterého se spouští i ovládá. Na panelu je vždy vidět název činnosti, kterou uživatel provádí, a také doba, po kterou se jí věnuje. Kliknutím na applet je možno změnit činnost nebo pozastavit celé měření. Nejdůležitější funkce jsou tedy velmi rychle dostupné.

Aktivity i dobu práce na nich je možné přidávat i zpětně, což je potřeba především tehdy, je-li někdo buď zapomnětlivý, nebo „podvodník“. Za tyto případy ale autoři aplikace rozhodně neručí…

Výsledkem používání aplikace Hamster je přehled činností – soupis všech činností vykonávaných za určitý časový úsek. Přehled činností je zobrazen v samostatném okně, a to jako seznam a také pomocí grafu. Přehled si lze nechat zobrazit jako denní, týdenní nebo měsíční souhrn.

Z každého souhrnu je možné se dozvědět, kolik času uživatel věnoval všem činnostem dohromady, jaké je rozložení věnovaného času mezi kategorie a také, jaký časový příděl dostala každá činnost.

Přehled lze navíc exportovat jako webovou stránku.

gnome 224 hamster

Vývojář Hamsteru: Hamster mě popohání k práci

link

Jelikož je aplikace Hamster poněkud neobvyklá, položil jsem několik otázek jejímu vývojáři Tomsu Baugisovi, aby objasnil (a obhájil) její účel. Výsledkem je následující krátký rozhovor.

Vždy, když vidím nějaký systém pro správu času, říkám si, jestli opravdu přináší výsledky. Zajímá mě, jestli není spíš kontraproduktivní… Mám tím na mysli stav, kdy člověk čtvrt hodiny denně analyzuje svůj čas, aby pak ve výsledku „ušetřil“ pět minut – a tedy čas nejen neušetřil, ale ztratil. Myslíš, že je Hamster opravdu účinný?

Hmm, celá tahle otázka ohledně času je zajímavá.

Co se mě týká, já začal vytvářet Hamster proto, abych zjistil, čím nejvíc trávím čas. Teď je pro mě Hamster pomocníkem číslo jedna kvůli tomu, že mě popohání k práci. Používám ho proto, abych se dostal do určitého rytmu – když do něj napíšu, že „teď budu dělat nějakou práci“, mám to napsáno přímo přede mnou a tu práci prostě dělám.

Jinak jsem ale skeptický k aplikacím pro „šetření času“. Zkrátka – když máš nepořádek ve svém životě, nehledej žádné nástroje k šetření času, ale prvně se zbav toho nepořádku a až pak se sháněj po nějakých aplikacích…

Abych ale nezapomněl! Hamster je „měřič času“ (anglicky time tracker), z čehož plyne, že čas měří, ale nijak se jej nesnaží organizovat nebo šetřit. To je jen na tobě.

Nicméně ano – Hamster může vylepšit tvou produktivitu, pokud přesně víš, co od něj chceš. Když jej začneš používat, bude ti sice nějakou dobu trvat, než si zvykneš na „porcování“ času a než najdeš takové časové úseky, které ti budou vyhovovat, ale když to zvládneš, Hamster ti skutečně může pomoci.

Skutečně tedy Hamster používáš? Třeba i při jeho vývoji?

Jo, věř mi.

Rád si v něm prohlížím uplynulý čas, hezky týden po týdnu, a líbí se mi, jak při tom ty sloupečky tancují (sloupce grafů jsou animované; při načtení jakoby „vyrostou“ – pozn. aut.)…

A zjistil jsem, že jsem nejproduktivnější ve středu v podvečer. Pořád nevím proč, ale je to tak. No, a právě tenhle čas věnuji na vývoj Hamsteru.

Hamster - závěr

link

Hamster není zcela typickou aplikací. Zaměřuje se na poměrně úzkou skupinu uživatelů a ne všichni jej využijí. Nicméně těm, kterým je určen, může odvést skvělou službu při snaze lépe organizovat vlastní čas.

Takže pěstujme křečky – Země je kulatá a místa je tu dost.

Empathy - komunikace na libovolný způsob

link

Do této chvíle nabízelo pracovní prostředí GNOME ke každé běžné uživatelské činnosti alespoň jednu příslušnou aplikaci. S jednou výjimkou: chyběla aplikace, která by umožňovala využívat komunikační sítě, jako je například Jabber. Přestože si uživatelé našli schopné náhrady tohoto nedostatku, nikdy se nejednalo o plnohodnotné zástupce.

Situaci se nyní snaží zvrátit projekt jménem Empathy, tedy nový oficiální komunikátor prostředí GNOME. Na následujících řádcích probereme jeho technickou stránku a také se podíváme na jeho vlastnosti z pohledu uživatele.

Empathy pod povrchem

link

Na Empathy je nejzajímavější jeho technické řešení, poněvadž má většinu charakteristik, na které se (zejména) poslední dobou kladou nároky: je totiž modulární, znovupoužitelné a jeho části spolu komunikují při zachování dostatečné abstrakce rozhraní.

Nejprve je třeba říci, ze kterých částí se Empathy skládá, protože se nejedná o jednolitý kus programu. Hlavní části Empathy jsou dvě:

  • aplikace
  • podpůrná vrstva Telepathy

Právě použití Telepathy dělá Empathy tak zajímavé.

Telepathy je projekt (realizovaný pod křídly organizace FreeDesktop.org), který se snaží nabídnout technologii, jež by umožnila jednotně přistupovat k nejrůznějším komunikačním sítím. Jednoduše řečeno se jedná o technologii, kterou mohou sdílet všechny aplikace toužící po využívání komunikačních sítí.

Projekt, jako je Telepathy, tu dosud chyběl, a tak si každá aplikace řešila přístup ke komunikačním sítím po svém. Některá s větším úspěchem, jiná s… ne tak velkým úspěchem.

Na Telepathy je krásné, že má všechny charakteristiky zmíněné výše: modularitu, znovupoužitelnost a abstrakci rozhraní vrstev. Telepathy je zcela nezávislé na grafickém rozhraní a funkce pro obsluhu jednotlivých sítí jsou do něj přidávány prostřednictvím modulů.

Telepathy je svým způsobem podobné technologii GStreamer: aplikacím stačí implementovat GStreamer, aby mohly pracovat s libovolnými multimédii. O víc se aplikace už nestarají, neboť jejich schopnosti (co se týče práce s multimédiálním obsahem – ať už se jedná o vstupy, výstupy nebo formáty souborů) pak už závisí jen na tom, jaké moduly pro GStreamer si uživatel nainstaluje. U Telepathy je situace zcela analogická.

V současné době dostupné moduly, které se starají o jednotlivé komunikační sítě, jsou vypsány na následujících řádcích (všechny mají vlastní jména):

  • Gabble (síť Jabber)
  • Butterfly (síť MSN)
  • Idle (síť IRC)
  • Salut (místní sítě Jabber)
  • Haze (všechny sítě podporované technologií Purple)
  • Telepathy-SofiaSIP (síť SIP prostřednictvím technologie SofiaSIP)

Dva z modulů se spoléhají na produkty třetích stran. Prvním je modul Haze využívající technologii Purple, což je software, který vznikl v rámci komunikátoru Pidgin. Jedná se vlastně o programátorskou knihovnu, která poskytuje přístup k různým komunikačním sítím (dělá de facto to samé jako Telepathy, jen ne tak obecně). Sítí, se kterými umí Purple pracovat, je přes patnáct.

Druhým modulem spoléhajícím se na třetí stranu je Telepathy-SofiaSIP. Ten využívá technologii SofiaSIP, za kterou stojí finská společnost Nokia. Jak už název napovídá, zprostředkovává přístup k síti SIP.

Zajímavostí je, že SofiaSIP není jediným produktem od Nokie, který se dostal do Telepathy. Dalším želízkem v ohni je Mission Control – komponenta Telepathy starající se o správu připojování k účtům komunikačních sítí. Mission Control i SofiaSIP jsou svobodný software.

Nyní se od Telepathy přesuneme k Empathy.

Funkce dostupné v aplikaci Empathy jsou rozděleny do dvou knihoven: libempathy a libempathy-gtk. První jmenovaná knihovna má na starosti funkce nezávislé na uživatelském rozhraní; druhá jmenovaná naopak nabízí prvky uživatelského rozhraní.

Uživatelské rozhraní Empathy je založeno na aplikaci Gossip, což byla aplikace (v současné době se již nevyvíjí), která umožňovala komunikaci po síti Jabber.

Rozdíl mezi Empathy a Gossip není na první pohled příliš patrný; kardinální rozdíly jsou totiž skryty pod povrchem. Většina jich je jmenována v odstavcích výše, a tak je jenom shrneme: použití Telepathy namísto vlastního řešení, rozdělení kódu do dvou knihoven a přepsání části kódu.

Empathy na povrchu

link

Model uživatelského rozhraní Empathy jde obvyklou cestou aplikací tohoto typu: skládá se ze dvou hlavních oken, jimiž jsou seznam kontaktů a okno s konverzacemi, přičemž okno s konverzacemi samozřejmě podporuje karty. Jedná se o vžitý a dobrý návrh uživatelského rozhraní a není důvod na něm něco měnit.

Nepostradatelnou vlastností je taktéž podpora ikonky v oznamovací oblasti na panelu. Díky ní je možné spouštět jistou množinu funkcí Empathy a také indikuje uživatelův stav (jestli je k sítím připojen, odpojen atd.).

Seznam kontaktů je možné zobrazit buď v klasickém, nebo „kompaktním“ zobrazení, ve kterém je značně zredukována potřeba místa na obrazovce. Kontakty si lze samozřejmě zařazovat do skupin, přičemž jeden kontakt může být i ve více skupinách. Dobrý dojem budí také velmi pěkně zpracovaná historie konverzací, kterou je možné procházet pomocí kalendáře, případně je v ní možné vyhledávat.

Empathy je dobře integrováno do prostředí GNOME, což zahrnuje například reakce na změny stavu šetřiče obrazovky, reakce na změny stavu připojení k síti nebo využívání systémové klíčenky.

Velkou výhodou Empathy je, že se nesoustředí na jedinou komunikační síť, ale umí pracovat s velkým množstvím sítí. Jmenujme například Jabber (včetně přenosu zvuku a obrazu), ICQ, MSN, IRC nebo SIP. Empathy tak umožňuje komunikovat textem, hlasem i obrazem a uživatel tudíž nepotřebuje pro každou síť zvláštní aplikaci. Toho je docíleno díky použití technologie Telepathy, jak již bylo zmíněno v minulém oddílu.

Je však důležité zmínit, že Empathy v současné době neimplementovalo všechny funkce dostupné z Telepathy. Například ještě neexistuje podpora pro přenos souborů – na tuto funkci, ale i některé další, je třeba si počkat do dalších vydání.

gnome 224 empathy

Empathy - závěr

link

Empathy je za posledních několik vydání možná nejzásadnější aplikací, která se dostala do GNOME. Její přínos spočívá také v tom, že přináší technologii Telepathy do GNOME jakožto celku. Nyní může kterákoli aplikace využívat knihovnu libempathy-gtk a obohatit se tak o možnost použití komunikačních sítí.

Empathy také potvrzuje nástup dobře navržených, na implementaci nezávislých řešení, jako jsou například PolicyKit, PackageKit nebo právě Telepathy.

Nicméně je také dobré dodat, že Empathy je teprve na počátku své cesty a potřebuje čas, aby se stalo skutečným žralokem v hlubokých vodách softwaru. Avšak i navzdory tomu, že se jedná o první verzi, nabídlo Empathy oslňující množství funkcí a rozhodně se nemá za co stydět. Považujme jej tedy za žraločí mládě.

Ekiga - kouzelné sluchátko

link

Jak již bylo předesláno v úvodu článku, Ekiga není úplně novou aplikací. Počátky tohoto projektu se totiž datují o několik let zpět, konkrétně do roku 2004. Ekiga je aplikace, která sice vždy využívala technologie nabízené vývojovou platformou GNOME (však byl také její původní název GnomeMeeting), nicméně nebyla oficiální projekt GNOME. A právě to se změnilo s vydáním třetí řady.

Vzhledem k tomu, že je Ekiga na našich pevných discích již několik let a že se jedná o velmi známou aplikaci, nebudu ji představovat tak zevrubně jako Hamster a Empathy, ale jen velmi stručně a spíše heslovitě.

Stručný popis aplikace Ekiga zní: softwarový telefon. Pomocí Ekigy je tedy možné uskutečňovat audio a videohovory přes Internet, a to pomocí protokolů SIP a H.323. Ekiga je kompatibilní s jinými podobně zaměřenými produkty, které také využívají tyto protokoly, a není tedy třeba se bát o interoperabilitu.

Ekiga umí pracovat s velkým množstvím kodeků pro audio i video a podporuje také akcelerované video.

Do GNOME je Ekiga integrována například tím, že využívá adresář aplikace Evolution.

Je samozřejmě otázka, jestli si Ekiga nebude (alespoň částečně) konkurovat s Empathy, jelikož i Empathy umí pracovat s protokolem SIP. Odpověď zní možná ano.

Je však třeba chápat, že záběr Ekigy je (minimálně v současné době) mnohem širší než záběr Empathy. Ekiga totiž pronikla na mnoho operačních systémů; mimo těch unixových například na Microsoft Windows. Této schopnosti je dosaženo tím, že se Ekiga umí na systémech, kde není GNOME dostupné, vzdát jeho podpory a pracovat bez něj.

Další rozdíl mezi oběma aplikacemi je v různých úrovních splynutí s projektem GNOME. Obě aplikace sice využívají vývojovou platformu GNOME, ale pouze Empathy respektuje jeho vývojový cyklus – Ekiga má svůj vlastní, na GNOME nezávislý.

gnome 224 ekiga3
zdroj: http://blog.ekiga.net/

Sami vývojáři si představují, že by se Ekiga s Empathy měla spíše doplňovat – minimálně to vyplývá z oficiálních poznámek k vydání GNOME 2.24.

Co se týče novinek ve třetí řadě aplikace, Ekiga zcela přepracovala uživatelské rozhraní, má vylepšenou podporu komunikačních protokolů, lépe pracuje s různými kodeky a přináší mnoho dalších nových vlastností a funkcí.

Závěr

link

GNOME 2.24 nabízí tři nové aplikace a dokázalo tak zopakovat šíři nabídky nových aplikací, které se podařilo dosáhnout minulému vydání. Vzhledem k relativně krátkému (půlročnímu) vývojovému cyklu GNOME to je úspěch.

Verze 2.24 je také důkazem, že v GNOME mají své místo jak aplikace určené nejširší uživatelské obci (Empathy), tak i aplikace určené relativně úzkému kruhu uživatelů (Hamster).

Bez zajímavosti není ani pohled na programovací jazyky, které nové aplikace používají. Empathy je napsáno v jazyce C (stejně jako Vinagre a Cheese), Hamster používá Python. Nezdá se tedy, že by se v GNOME dostávalo většího prostoru jazyku C# (a technologii Mono obecně), jak by to mohlo vypadat z různých komentářů.

Závěrem je třeba připomenout, že všechny nové aplikace jsou teprve na startu své kariéry. K tomu, aby jejich vývoj neustával a třeba i naopak zrychloval, potřebují podněty od uživatelů. Říct svůj názor může každý. Nic to nestojí, ale zato to hodně přináší.

       

Hodnocení: 76 %

        špatnédobré        

Nástroje: Tisk bez diskuse

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

Komentáře

Vložit další komentář

Sešívaný avatar 29.10.2008 01:33 Sešívaný | skóre: 23 | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Empathy je hlavně zatím naprosto nepoužitelné. Pamatuji se, že to v jedné z vývojových verzí Ubuntu zatuhlo pokaždé, když chtěl člověk při psaní zprávy zmáčknout mezerník. To už je sice vyřešené, ale i tak to padá při mnoha dalších příležitostech. Když ještě vezmu v úvahu, že to nic neumí, tak je to spíš příslib do budoucna, rozhodně se to nedá používat. Otázkou zůstává, jestli to ještě nemělo zůstat ve vývojové větvi, uživatelé GNOME přece jen nejsou na takové padavky zvyklí :-)
29.10.2008 05:10 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
U gnome a gtk obdivuju, že se najdou lidé, kteří začnou psát aplikaci v C. Asi jsem zhýčkaný jazykem C++, ale opravdu si nedovedu představit programování bez dědičnosti, šablon, virtuálních metod a na každou hloupost psát šílené #makra.

Navíc v C++ se dá udělat to samé co v C, tak proč se o to připravovat ? Proč zabírat čas psaním totálně redundantních zdrojáků, kde prvních 40 písmen na každém řádku je prefix_knihovny_nazev_objektu_co_chcem_[get|set|do_it|dont_do_it|...] ?

Jako fakt mě to zajímá, jestli to vývojářům připadá přehledné a dlouhodobě udržitelné ? Já když vidím takový kód tak jsem šťastný, že jsem poznal C++ a docela dobře se ho naučil.

Pro rýpaly: tento text nemá nic společného s Qt. Jde mi jen o preferenci jazyka vývojářů Gtk aplikací. Mám totiž pocit, že protože Gtk je v C, tak se všichni snaží psát taky v C, aby neporušily tento zvyk (je totiž pekelně obtížné napojovat aplikaci v C na knihovny v C++, ale na druhou stranu většina těchto knihoven v C má svoje bindingy v C++).

GObject šílenci mě teď asi ukamenujou - do toho! :)
29.10.2008 07:11 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
29.10.2008 16:25 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Já to znám, ale ještě jsem neviděl ani jednu aplikaci používající Vala. Může se zdát, že díky kompilaci do C to bude rychlé, ale ten vygenerovaný kód je otřesný.
29.10.2008 19:01 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Alespoň v omezené míře to používá např. Seahorse...
29.10.2008 07:14 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
To je asi skor uhol pohladu,niekto by sa mohol pousmiat nad vami, ze preco C++ ked je tu python,... :) myslim ale ze pre programatorov jazyk az tak nehra rolu - ide skor o kniznice a hlavne kvalitu navrhu kniznic. Ci nieco napisem o +- nn riadkov kratsie je vcelku fuk ale ked ma obmedzuje kniznica stupidnym navrhom tak je to problem. Mozno ze toto je problem ze preco C a nie C++. Mozno ten binding pre C++ nie je az tak uzasny. ale neviem, nevidel som, takze cista spekulacia :)
29.10.2008 07:46 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
C++ a python je dost jiny vztah nez C++ a C. Zatimco C++ a C jsou vykonove ekvivalentni (C++ sice vykonnostne vede, ale to si odmysleme) je python nekde uplne jinde.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
hwsoft avatar 29.10.2008 10:22 hwsoft | skóre: 19
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Co myslis tim vykonem? Rychlost psani kodu nebo efektivitu vykonani? Psal jsem v obojim a Cko je pro me jasnym favoritem, je predvidatelne a efektivni pro psani mych aplikaci.

Zazil jsem maxi aplikaci v MVC++ a skoncilo to prepsanim do C a zrusenim DCOMu kvuli neschopnosti postavit dostatecne vykony server pro spusteni aplikace. C++ vyjma mnohych vyhod, ma i sve mouchy a tou je vetsi pametova narocnost a pomalejsi beh (*dan za vetsi robustnost)
29.10.2008 11:14 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Vykonem myslim rychlost vysledne binarky. A samozrejme ze C++ je vyhodnejsi i z pohledu rychlosti psani kodu (vuci C), na skriptovaci jazyky samozrejme nema.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
hwsoft avatar 29.10.2008 16:42 hwsoft | skóre: 19
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
To lzes, binarka v C je obecne vzdy rychlejsi nez v C++, coz je dano architekturou jazyka. Staci se podivat do vysledne binarky, nakonec pokusy s linux kernelem skoncili prave na tomhle.

Muzes Cko sprasit, ale pokud budou dva stejne schopni resit ten samy problem, bude C rychlejsi a vyssim vykonem, ale hure spravovatelne a pri vetsim rozsahu bude pomalejsi vyvoj nez v C++.
29.10.2008 16:53 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Řekněte WOW! :-)

To co jste napsal je obyčejný FUD a plyne jedině z neznalosti.

Pokud chcete psát něco o C++, měl by jste si první prostudovat možnosti tohoto jazyka a ne šířít nesmysly typu, že C++ je vždycky pomalejší než C. Právě naopak, v C++ máte možnosti vytvořit vysoce optimalizované funkce, které by jste v C vytvořil asi tak pomocí miliónů maker a 20 hlavičkových souborů, které by jste pomocí nastavených maker includoval třeba 20x po sobě. Samozřejmě, že jsem to trošku nafoukl, jediné co k tomu můžu napsat je, že váš kód by na první pohled nikdo nepochopil ;)

Pokud vypnete v C++ vyjimky a RTTI, máte totálně ekvivalentní jazyk, co se týče generování kódu a rychlosti jako C, a navíc máte neuvěřitelné možnosti při psaní kódu, jaké v C mít nikdy nebudete.

Pokud vám vadí demanglování jmen funkcí, můžete použít extern "C".
29.10.2008 19:54 vencas | skóre: 32
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
(Ještě je třeba nepoužívat virtuální funkce, aby ten jazyk byl "ekvivalentní", volání má při běhu režii na prohledání tabulky virtuálních funkcí)
29.10.2008 20:23 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Pokud budete stejný problém řešit v C, napíšete si také tabulku virtuálních funkcí. Dá vám to víc práce a výsledek stejný.

Dále nevím co je "prohledání tabulky virtuálních" funkcí :-) Překladač už při překladu ví, jaký index má použít, navíc může díky znalosti virtuálních funkcí cachovat jejich počáteční adresu.

MSVC navíc používá speciální konvenci, kdy se jako parametr this používá registr ecx, může se to zdát jako banalita, ale toto je úplně perfektní věc pro vytváření delegátů. To už jsme ale trochu odbočili :)
29.10.2008 20:53 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
No to právě neví, od toho je to virtuální funkce, kdyby to věděl tak může použít časnou vazbu.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
29.10.2008 21:16 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Viděl jste někdy, jak vypadá tabulka virtuálních funkcí a jak je realizováno jejich volání ?

Pokud ne, tak takto:
struct ObjectVTable
{
  void (*vfunkce)(Object* self);
};

struct Object
{
  ObjectVTable* vtable;
};
při volání virtuální funkce se provede úplně jednoduchá věc:
Object* o = ...

o->vtable->vfunkce(o);
Pokud překladač ví, že se jedná o tabulku virtuálních funkcí (což v případě C++ implementace ví), tak si hodnotu vtable může uchovat v registru a vygenerovat lepší kód než v C implementaci.

Index vfunkce() je v našem případě 0. Je to věc známá při překladu o žádné prohledávání tabulky se nejedná.
Stanislav Brabec avatar 29.10.2008 21:37 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Zná index, nezná hodnotu na tomto indexu uloženou. Použití virtuální funkce znamená tedy jednu dereferenci navíc v kódu nebo mikrokódu a navýšení velikosti každé instance objektu o jeden ukazatel. Tedy přesně totéž, co udělá programátor v C nebo v assembleru, pokud potřebuje proměnný odkaz na funkci.

Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.

Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
29.10.2008 21:54 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Tedy přesně totéž, co udělá programátor v C nebo v assembleru, pokud potřebuje proměnný odkaz na funkci
Áno, toto jsou virtuální funkce. Ale já bych dodal ještě to, že v C++ překladač ví, že se jedná o vtable a ta by se neměla změnit při volání její funkce, takže optimizér si klidně může uložit vtable do registru a při volání více funkcí se ta dereference udělá jen 1x.
Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.
Pokud se toto stane, můžeme si přeci i v C++ udělat strukturu funkcí a tu používat pro tento účel - toto se používá v grafických knihovnách.
Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného
Tady se neshodnem. Je to stejné. Pořadí přetížených funkcí v tabulce virtuálních funkcí má taky logiku, takže se jedná opět o věc známou z překladu.
Stanislav Brabec avatar 29.10.2008 22:10 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ale já bych dodal ještě to, že v C++ překladač ví, že se jedná o vtable a ta by se neměla změnit při volání její funkce, takže optimizér si klidně může uložit vtable do registru a při volání více funkcí se ta dereference udělá jen 1x.
K tomu lze v moderním C použít -fstrict-aliasing.
Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného
Tady se neshodnem. Je to stejné. Pořadí přetížených funkcí v tabulce virtuálních funkcí má taky logiku, takže se jedná opět o věc známou z překladu.
Měl jsem na mysli větvení v kódu, tedy RTTI, k němuž je třeba předávat identifikátory typu jako skryté proměnné.
29.10.2008 22:31 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Zná index, nezná hodnotu na tomto indexu uloženou.
Jo presne tak.
Jediná teoretické výhoda C spočívá ve virtuální funkci samotné, pokud by nebylo potřeba předávat implicitní this. To se však často nestává, a navíc i tato výhoda je dána pouze kvalitou optimalizátoru.
Intel i MSVC garantuji, ze this bude vzdy ulozen v registru, nicmene GCC ho (pokud neni potreba) vubec nepreda. Intel by zase mel umet provadet devirtualizaci (mozna uz i GCC, nevim, uz je to docela dlouho co jsem zkoumal jake optimalizace umi), diky cemu je pak mozne virtualni funkce, ktere nejsou zakryte pouzivat s casnou vazbou a diky tomu i inlinovat.
Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
Smysl tehle vety mi dost unika. Mam pocit ze pletete dohromady zakryti metody pri dedicnosti a pretezovani metod/funkci.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
Stanislav Brabec avatar 30.10.2008 10:02 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Jak už bylo výše řečeno, toto platí za předpokladu, že nepoužijete RTTI a k volbě instance použijete přetížení. Pokud kód větvíte podle toho, zda je argument int nebo float, je to něco jiného.
Smysl tehle vety mi dost unika. Mam pocit ze pletete dohromady zakryti metody pri dedicnosti a pretezovani metod/funkci.
To, že zatímco přetěžování lze plně vyhodnotit během kompilace, konstrukce typu if (typeid(argument1) == int) mají režii i v době běhu programu.
29.10.2008 21:00 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
cudna logika - kedze C nema objektove rozsirenia je asi logicke ze vysledna struktura programu bude ina, ci aj v asemblere budete brutalne OBJEKTOVY?. v linuxe sa nepouziva c++ jednoducho preto ze jeho rezia je vacsia ako v C. a btw na vyslednu rychlost to ci sa nieco inkluduje raz alebo 100x nema vplyv ci mate inu skusenost?
29.10.2008 21:29 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
cudna logika - kedze C nema objektove rozsirenia je asi logicke ze vysledna struktura programu bude ina
Pokud v C naprogramuju to, co C++ udělá za mě, tak bude struktura programu úplně stejná. Pokud C++ překladač navíc uplatní nativní možnosti C++, bude výsledná binárka lepší ta z C++.
ci aj v asemblere budete brutalne OBJEKTOVY
Já dokážu zvážit to, na co použiju asm a na co ne. Pokud chcete být objektový v asm, klidně můžete, ale budete psát podobné věci, jaké vám lezou z překladu C++.
v linuxe sa nepouziva c++ jednoducho preto ze jeho rezia je vacsia ako v C
Vídím, že existuje opravdu hodně lidí, co takovému nesmyslu věří. Otázka je, co berete jako C++. Jestli jazyk, nebo STL, nebo rozšíření o výjimky a RTTI. Já beru C++ jako jazyk a STL jako knihovnu, kterou nemusím použít. Je jasné, že pokud to s STL přeženu, tak bude program větší, ale nikdy nebude pomalejší. Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky.

Pokud tedy tvrdíte, že C++ je pomalejší než C, tak řekněce, co konkrétně ? Podle vaší reakce mám totiž pocit, že o C++ nevíte skoro nic.
btw na vyslednu rychlost to ci sa nieco inkluduje raz alebo 100x nema vplyv ci mate inu skusenost
Toto není debata o překladu z C/C++ do asm.
30.10.2008 07:58 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
1) Preboha dohladajte si diskuzie na kernel.org o tom preco nepouzivaju C++. Ale mozno cakaju na vas, Linus sa buchne do hlavy a povie : ja somar az dark mi musel povedat ze existuje C++ a nas kernel bude 2x mensi a rychlejsi :))) 2) Nemozem si pomoct ale pripadate mi ako clovek co pozna C++ 3 mesiace a ma k nemu presne taky vztah ako ked s niekym chodim tyzden. 3) ak je nieco na C++ (myslim celok) dobre tak je to prave STL 4) vidim ze to stale nechapete co sa vam snazim povedat - PRECO by mal niekto programovat v C rovnako ako v C++??? uvedomte si ze C++ a C su dva rozdielne jazyky 5) "Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete? mam pocit ze ste si len cosi precital na webe, tomu co tam pisali ste neporozumel a teraz z toho gulasu co mate v hlave tu hlasate podobne veci.

inac pre vase info pouzivam C++ od doby co vysiel vobec prvy prekladac Borlandu pre toto prostredie.
30.10.2008 09:38 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
C++ nepouizvaji proto, ze v roce XY kdy se o tom rozhodovalo neexistoval kompilator, ktery by byl schopen rozumne zkompilovat C++ kod a taky proto, protoze na jadre delaji tisice lidi, kteri casto C++ neumi.
PRECO by mal niekto programovat v C rovnako ako v C++??? uvedomte si ze C++ a C su dva rozdielne jazyky
Proc by mel nekdo pouzit druhy jazyk? Jenom proto ze to rikate? Samozrejme ze to jsou rozdilene jazyky, nicmene C++ je vybudovano nad Ceckem a oba standardy se snazi drzet maximalni moznou vzajemnou kompatibilitu.
"Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete? mam pocit ze ste si len cosi precital na webe, tomu co tam pisali ste neporozumel a teraz z toho gulasu co mate v hlave tu hlasate podobne veci.
Zakladni problem C++ pri kompilaci je, ze do binarnich souboru cpe obrovske mnozstvi symbolu. Po stripnuti techto symbolu jsou obvykle datove objemy binarek v jazycich C a C++ velmi podobne.

Btw. kdo dnes proboha optimalizuje na velikost binarky? To se dela jedine u embeded zarizeni, kam bych C++ v dnesni dobe nedoporucil (nedostatek kvalitnich kompilatoru).
inac pre vase info pouzivam C++ od doby co vysiel vobec prvy prekladac Borlandu pre toto prostredie.
Tak si obcas zkuste zjistit co vam ten kompilator s kodem dela.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 10:21 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
ad 1) Uvedomte si ze ludia co robia na kerneli a su postaveny v hierarchii vyssie urcite nemaju ziadny problem so zvladnutim C++,Java,...,... - medzi schopnostou programovat a jazykom nie je rovnatko. Clovek co vie programovat sa v novom jazyku behom mesiaca, dvoch orientuje absolutne pohodlne. Kazda diskuzia co tam bola skoncila vzdy tym ze C++ ma pre nich neprijatelny overhead. ad 2) Ja vravim ze ma niekto pouzit druhy jazyk? kde? ide o to ze ked budete programovat objektovo v C++ nemozete to iste robit v C a ked sa to budete snazit rozne obchadzat a robit si rozne pomocne akoze objektove nadstavby (ci uz makra alebo inac) tak dostanete kod ktory bude naozaj sialeny. A ked porovnate spatne s C++ tak budete kricat co je to za stupidny jazyk to "C". Jednoducho akceptujte fakt ze C a C++ su rozne jazyky a to ze C je podmozina C++ na tom nic nemeni.

"tak si obcas zkuste zjistit co vam kompilator s kodem dela" - nechapem ako to suvisi s tou vetou hore ale zrejme tam vidite suvis :))
30.10.2008 10:51 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Uvedomte si ze ludia co robia na kerneli a su postaveny v hierarchii vyssie urcite nemaju ziadny problem so zvladnutim C++,Java,...,...
Coz nema vubec nic spolecneho s tim ze na jadre delaji tisice lidi a spousta z nich C++ neumi.
Clovek co vie programovat sa v novom jazyku behom mesiaca, dvoch orientuje absolutne pohodlne.
Zacinam docela chapat proc tady placate takove kraviny.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 11:02 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Taky nevím, jestli má smysl se bavit s tímto člověkem. Za celou dobu tu nedal ani jeden příklad, proč by jazyk C++ měl být pomalejší, všechno to byly jen demagogické plky.

Nejhorší je, že jsem to rozpoutal celé já :(
30.10.2008 19:57 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Vasa schopnost zavadzat je uzasna - precitajte si svoj prvy prispevok a potom mi napiste kto tu cosi pisal o rychlosti?
31.10.2008 00:26 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
ja som pre zmenu pouzil google a tiez sa mi to ujasnilo, co to o vas specialne vo vztahu k programovaniu / pri tych vysledkoch je jasne, ze vam tie dva mesiace stacit nemozu. takze studujte, skusajte nove jazyky a potom sa pobavme o poslednej vete. zkuste si napr jazyk beta - mozem vam povedat, ze to co som napisal sa da takze kto placa?
31.10.2008 08:54 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Jsem rad ze jste si udelal jasno :) Nicmene nechapu co do toho matlate dalsi jazyky, kdyz se bavime o C++.

Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 10:45 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Budu reagovat jen na jednu věc, protože ten zbytek nemá smysl. Pokud si tu léčíte mindrák z C++, tak já vám opravdu nepomůžu.
"Pokud chci malé binárky, tak jednoduše nepoužiju STL ale hlavně výjimky" - co viac povedat - vieto o com pisete?
Vím. Pokud by jste o C++ opravdu něco věděl (což jste mi ukázal pravý opak), věděl by jste, že výjimky vám způsobí nárust binární velikosti kódu asi o 10%. Toto je jediná věc na C++, která vám opravdu zvětší binárky, proto ji hodně projektů nepoužívá (Qt, Kde, aplikace od Google, wxWidgets, ...).

PS: Já znám překladač od Borlandu, doma mám dokonce orig. verzi 3.1, kde jsem za dávných dob používál TurboVision.
30.10.2008 20:03 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Btw objektove programovanie bez vynimiek, vy proste zavadzate, ked vam to vyhovuje tak raz z C++ odoberate vlastnosti (chcete mat rychlost) a ked chcete argumentovat moznostami C++ tak zase vsetko je ok. Tak ok o com sa bavime o C++ alebo o C++ ale bez RTTI,late binding,vynimiek. Co je to potom za jazyk? nejaka vas novy C--? :)

neliecim si ziadny mindrak z C++ neviem ci ste si precital ze v nom programujem rad, akurat "milujem" reci typu Java je rychlejsia ako C++, C++ je rychlejsie ako C, XYZ je mega rychlejsie ako ZYX - chapeme sa? vobec to nie je ziadna svata vojna ako Win vs Linux a Qt vs Gnome atd.
30.10.2008 21:14 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
No já vidím právě úspěch u aplikací/knihoven, které nepoužívají výjimky - Qt, KDE, Chrome, ... Obecně například Google má velice zajímavé dokumenty a vnitřní pravidla, které používají pro C++ (a KDE vývojáři by o výjimkách asi taky povykládali).

Navíc nevěřím tomu, že všichni programátoři C++ umí psát exception safe kód, ale to už je na jinou debatu.

A já už vlastně ani nevím, o co vám jde. Pokud tématu rozumíte, tak mi dáte za pravdu (a věřím, že mi dá za pravdu u hodně C++ programátorů zde), a pokud se bavíte tím, že děláte demagogii, tak jsem s váma jen ztrácel čas.

Tímto bych to asi uzavřel.
3.11.2008 21:42 chacha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
On ten C++ vlastne neni ani tak pomaly a nafoukly, akorat se u nej nesmi pouzivat jeho pokrocile vlastnosti a nesmi je ani pouzivat pouzivane knihovny. Jenze to pak muzu klidne zustat u toho C tak, jako to delaji vyvojari kernelu, GTK nebo GNOME.
3.11.2008 22:33 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Další, kdo absolutně netuší nic o C++ ;-)
30.10.2008 08:33 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
A este cosi aby sme sa dobre pochopili - nebavim sa o tom ze ci je C++ lepsie alebo horsie - ja osobne pouzivam C++ a nie C ale jedna sa skor o kniznice ako boost a STL. Ide len o to ze mam pocit, ze vy nechapete dve zakladne veci a miesate ich dohromady - rychlost a kvalitu kodu ktory je objektovy a rychlost a velkost kodu ktory vznikne. Uvedomte si ale, ze objektova rezia nie je zadarmo (bavme sa teraz ale naozaj o objektoch, tj dynamicka identifikacia typov, pomala vazba,...). To je presne ako ked navyse este pridate garbage collector - program je lepsi,lahsie citatelny ale nie je to zadarmo. Viete preco napr Firebird presiel na C++? Vobec neslo o mega rychlost ako to tu sa snazite dokazat ale o vlastnosti ktore urobia kod lepsimi ako napr automaticka destrukcia objektov mimo rozsah platnosti a tiez precistenie kodu
30.10.2008 09:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
To neni rezie objektu ale dynamickych vazeb. Jejiz rezije je identicka jak v C tak v C++. Pisete ze delate v C++ uz dlouho, ale ocividne nemate ani sajnu jak co funguje.

Tri nejrychlejsi programovaci jazyky jsou Asembler, Fortran, C++. Doporucuji si trochu doplnit znalosti: http://shootout.alioth.debian.org/, http://www.oonumerics.org/blitz/.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 09:49 razor | skóre: 33
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
No z uvedených odkazů IMHO příliš nevyplývá že C++ je rychlejší než C. V určitých benchmarcích vede C a opačně.
30.10.2008 10:55 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Autor tím chtěl nejspíš naznačit, že C++ je stejně rychlý jazyk jako C. Je totiž těžké se hádat o tom, který z nich je rychlejší, když je to identické;)
30.10.2008 11:01 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ano je to pomerne vyrovnane a celove vede C++ (nekde tam je prehled). Ono je to zcela logicke. C99 nema vuci C++ zadne nove vlastnosti pro ziskani lepsi efektivity binarky (vlastne ma restricted pointery), zatimco C++ ma reference a sablony.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 12:28 razor | skóre: 33
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
A ještě abych si rejpnul, tak C poraží Fortran celkem s přehledem :)
30.10.2008 12:35 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Taky mu chybi 5 z 13 programu, muze to byt dost zkreslene.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 10:36 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
hm... neviem co mam vam odpisat na to prve - akych objektov v C? chapate vobec co je dynamicka vazba a k comu sa pouziva? ale predpokladam ze ste iba tak nejako nestastne sformuloval a myslienka toho je ze chcete povedat ze vytvorenie objektu v C++ je casovo obdobne narocne ako alokacia pamate v C pre dany typ.

to je tragedia s ludmi co si pozru nejaky graf a bez toho ze mu chapu to potom posielaju do diskuzii a tvaria sa ako odbornik. mozem vam rovno poslat link na dokument kde C++ je asi tak 7x pomalsie pri tej istej veci ako C ale kod je pre zmenu 5x kratsi. Ale budem teraz kricat ze C++ je pomaly smejd? Vzdy je to priklad od prikladu a je rozdiel ci napr pouzijete template v C++ a tym padom ziskate optimalizovany kod pre dany typ alebo pouzijete nejake univerzalne riesenie. Potom jasneze dostanete vysledky ktore budu vyzerat ako ferove ale v podstate zavadzate lebo neporovnavate uplne identicke riesenia

30.10.2008 10:51 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
akych objektov v C
Měl by jste se někdy podívat do zdrojových kódu projektů, které jsou napsané v C. Mám totiž pocit, že C programátoři jsou mnohdy více objektově založení než C++ programátoři.
C++ je asi tak 7x pomalsie
Jenže to nebyl identický kód. Od začátku se tu vede flame o tom, že v C++ je pomalejší stejný kód jako v C, což se vám tady pár lidí snaží vyvrátit, ale marně.
30.10.2008 12:29 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
nie vy vediete flame ze C++ je rychlejsie ako C a to sa vam snazim vyvratit - ved s tum ze je FUD o tom ako C rychlejsie ako C++ ste prisli vy ci ma klame pamat?
30.10.2008 13:20 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ano, psát, že C je rychlejší jako C++ je FUD a za tím si stojím. Ale nebyl jsem to já, kdo tu začal psát něco o rychlosti. Tato debata měla být o tom, jestli je dlouhodobě výhodné začínat projekty v C, když tu máme jazyky, které mají mnohem větší možnosti (myslím tím C++).

To, že to někteří nepochopili, já neovlivním.
30.10.2008 10:57 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Uvedeny link je jediny rozumny test rychlosti programovacich jazyku, jelikoz tam muze poslat implementaci kdokoliv. Pokud se vam zda je v nekterem jazyku priklad neimplementovan neefektivne, muzete ho opravit. Nic nebude mit nikdy lepsi vypovidaci hodnotu.
chcete povedat ze vytvorenie objektu v C++ je casovo obdobne narocne ako alokacia pamate v C pre dany typ
class A
{
  int x;
  int y;
  
  public:
    A() { kod1; }
    ~A() { kod2; }
};

int main()
{ A a; }
Je zcela ekvivalentni (dokonce jde o implementaci, ktera se pouziva pri kompilaci C++ kodu) s:
struct A
{
  int x;
  int y;
};

void Init(struct A const * a) { kod1; }
void DeInit(struct A const * a) { kod2; }

int main()
{ struct A a; Init(&a); DeInit(&a); }
Ukazte mi ten vas overhead objektu.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
30.10.2008 11:20 Sid
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Mate pravdu ale kedze ma ten benchmark vobec netrapi tak mi je to absolutne jedno co za priklady v nom su. Kazdopadne ked som do neho sa pozrel skusmo na Javu tak kuzelne slovicko final by to chcelo pridat.

bavim sa o tomto? co to stale otacate do uplne ineho smeru, skuste si to precitat od zaciatku , RTTI vam pridava pamatovu narocnost (co uz dnes neni problem), pozdna vazba casovu narocnost (ako kedy) nechapem teraz ci tu ideme vytahovat vsetky situacie kde riesenie bud v C alebo C++ usetri jednu alebo dve instrukcie - predsa cele toto vzniklo iba okolo toho ze tu bol prezentovany nazor ako je C++ rychlejsie ako C uz z principu co je IHMO blbost

navrhujem radsej to nechat tak a radsej pochvalit nove GNOME :))) co vy na to?
30.10.2008 11:29 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ano pozdni vazba zpomaluje kod. Stejne jak v C++ tak jeji implementace v Cecku. To same plati pro RTTI a uplne kazdou vlastnost jazyka C++, kterou nema jazyk C (a ktera podle vas dela C++ pomalejsim jazykem).
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
hwsoft avatar 30.10.2008 13:45 hwsoft | skóre: 19
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
OK prepnuli se v C++ do modu C, jsem na tom podobne :-).

OK mam dost dlouhou zkusenost z obojiho, mam prekladac, ktery by mel byt optimalizovany (dle vyrobce jak pro C tak pro C++), Metrowerks CodeWarrior. Pokud pouziju C++ tak mi stoupne pametova naroznost o polovinu a beh SW se viditelne zpomali, vzhledem k tomu, ze chvilemi je pro me nutna okamzita reakce, je kobinace C a Asembleru idealni. Nebudu tam cpat C++ ktere jenom ze tam je spolkne nejaky 3,5 kByte Flash z 128kByte a skoro 2kByte RAM z 8k. Navic kazda funkce je vice narocna , protoze sice kon je mensi, ale prilinkovane knihovny vetsi.

A to programuju malo objemove ridici jednotky, kde pro me neni cena tim nedulezitejsim, tedy se mohu rozhodnout, co pouziji.
30.10.2008 14:40 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ano pro embeded zalezitosti neni C++ vhodny jazyk, jelikoz zatim neexistuji dostatecne kvalitni kompilatory. Je to ostuda, ale je to tak.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
zoul avatar 29.10.2008 07:45 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Naprosto souhlasím. Psal jsem drobnou aplikaci nad Pangem, musel jsem se chvilku hrabat v jeho zdrojácích a byl jsem zděšený. Céčko se mi líbí, ale tohle je hnus. C++ by možná bylo moc složité, ale třeba takové Objective C je nadmnožina C, jazyk je to lehký, pěkný a celkem moderní, určitě by se pro Gnome hodilo. Škoda, že si tohle vývojáři Gnome neuvědomili dřív.
29.10.2008 07:52 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Bacha na to, Objective C spada do uplne jine kategorie jazyku. Mozna je to lehky, pekny a celkem moderni jazyk. Bohuzel je ale brutalne pomaly.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
zoul avatar 29.10.2008 07:55 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Na desktopové aplikace to zjevně bohatě stačí. Máš nějaký zdroj, kde by bylo vidět jeho rychlostní srovnání s jinými jazyky? Dělám v něm a nepřijde mi pomalé ani za mák.
29.10.2008 08:26 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Bohuzel cisla nemam, nicmene ObjC ma mnohem bliz k javascriptu (funkcne), nez k Cecku. Bohuzel v http://shootout.alioth.debian.org/ neni, skoda.

Na desktopove aplikace staci, ale to je vsechno v uvozovkach. Staci java na desktopove aplikace? Co Eclipse, nebo jeste hur, Netbeans.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
29.10.2008 11:27 tom
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
To by me zajimalo, jak to myslis. Pripada mi to jako vysilani Radia Jerevan, ve kterem se ukaze, ze to neni JavaScript, ale Smalltalk a nejedna se o podobnost funkcni, ale syntaktickou. ;-) Skoro mi to prijde, ze mas na mysli nejaky jiny jazyk, v cemz me utvrzuje i to, ze v tom shootoutu Objective-C je.

Tomas
29.10.2008 11:56 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Jo aha, ja koukal na nove testy a tam uz neni.

Objective C pouziva (alespon podle toho co vim a uznavam ze o Objective C toho moc nevim) pomerne cisty objektovy pristup a to posilani zprav (ktery je ale zatracene pomaly). Jestli je to jinak, tak se omlouvam, nicmene to ze Objective C je pomaly jazyk mam potvrzeno od lidi, kteri v nem programovali.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
zoul avatar 30.10.2008 11:15 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Na desktopove aplikace staci, ale to je vsechno v uvozovkach.
Píšou se v něm i hry pro iPhone, bez jakýchkoliv výkonnostních problémů ze strany jazyka. Ono je sice hezký říct, že zasílání zpráv je ve srovnání s voláním funkcí brutálně pomalé, ale doby, kdy pár instrukčních cyklů znamenalo rozdíl mezi pomalým a rychlým programem, jsou dávno pryč. Dneska jsou podobné rozdíly podstatné jen u několika málo procent programů.
Algi avatar 29.10.2008 14:22 Algi | skóre: 1 | blog: Sinner
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Nějaký důkaz toho, kde by bylo Objective-C brutálně pomalé? Já jenom, že drtivá většina programů na Macu jsou psané práve Obj-C a že by byly pomalé se mi nezdá. Nebo je to tím, že jsem Javista? :-D
I'm a firestarter, twisted firestarter...
Stanislav Brabec avatar 29.10.2008 13:25 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Většina toho v C také jde, jen se to jinak píše a jinak nazývá:

Dědičnost v C = ukazatel do „zděděné“ „třídy“ (struct) v právě definované struct („třídě“).

Virtuální dědičnost v C = vložení „zděděné“ „třídy“ (struct) do právě definované struct („třídy“).

Šablony jsou věc na úrovni zdrojového kódu, makra jsou, pravda, jen částečnou náhražkou. Metaprogramování v něm neuděláte.

Metoda = funkce (nejspíš začínající jménem „třídy“), v jejíž dokumentaci je uvedeno, k čemu slouží

Virtuální metoda = ukazatel na funkci v definici struct („třídy“).

Konstruktor/destruktor = funkce s _new a _destroy na konci názvu.

40znakový prefix znamená sice nepříjemnost při psaní kódu. Při čtení nebo ladění je rozhodně příjemnější, než dohledávání mezi desítkami definic přetíženého jména v C++.

No a díky GObject máte možnosti, kterými C++ objekdy nedisponují – posílání zpráv, nastavování vlastností objektu, čítač referencí.

Obliba C asi spočívá v tom, že:
  • jeho definice není obsáhlá a lze se jej snadno naučit
  • jeho definice neobsahuje záludnosti
  • C nevynucuje určitý způsob přemýšlení (mnoho jazyků implicitně předpokládá, že programátor uvažuje v termínech jako „třída“, „zdědit“, „objekt“, čímž háže klacky pod nohy programátorům, pro něž je přirozené přemýšlet v termínech „oblast paměti“, „ukazatel“, „reference“)
  • s výjimkou assembleru je C nejblíže strojové reprezentaci dat
29.10.2008 16:45 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Většina toho v C také jde, jen se to jinak píše a jinak nazývá: ...
Já to znám, vím že to jde, ale otázka je, jestli vám přijde přehledné to takto dělat ?
Virtuální metoda = ukazatel na funkci v definici struct („třídy“).
Takže:
struct A {
  void (*method0)(A* self, int param0, int param1);
  void (*method1)(A* self, int param0, int param1);
  ...
  void (*method100)(A* self, int param0, int param1);
}
a v kódu:
A* A_new()
{
  A* self = (A*)malloc(sizeof(A));
  if (!self) return NULL;

  ...
  
  self->method0 = A_method0;
  ...
  self->method100 = A_method100;
}
Toto je podle vás dědičnost ? Toto jsou obyčejné ukazatele na funkce. V C se dá udělat dědičnost tak, že by se vytvořila další struktura, která by byla podobná té z C++ (virtuální tabulka funkcí), předpokládám, že jste to myslel spíš tak.
40znakový prefix znamená sice nepříjemnost při psaní kódu. Při čtení nebo ladění je rozhodně příjemnější, než dohledávání mezi desítkami definic přetíženého jména v C++.
Já ladím pomocí nástrojů IDE, takže tento argument je úplně mimo. Nevšiml jsem si rozdílů mezi laděním C kódu a C++ kódu.
No a díky GObject máte možnosti, kterými C++ objekdy nedisponují – posílání zpráv, nastavování vlastností objektu, čítač referencí.
Já mám na GObject jiný názor. Nastavování properties a události je věc, která není nativně v C/C++ a člověk si ji musí naprogramovat. GObject je řešení pro C, ale otázka je, jak moc kvalitní.

A nemusím chodit ani daleko. Ukažte mi nějaký nástroj (code assist), který umí GObject, který je vám schopný ukázat, jaké máte možnosti. To samé pro vaši dědičnost v C a virtuální funkce v C ?

jako nezlobte se, ale jestli vám přijde přehlednější toto:
GJmenoKnihovnyNazevObjektu *o = neco...;
int x = g_nazev_zdedeneho_objektu_x_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
int y = g_nazev_zdedeneho_objektu_y_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
než toto:
JmenoKnihovny::NazevObjektu *o = neco...;
int x = o->x();
int y = o->y();
Tak jsme asi oba někde jinde :-)
Obliba C asi spočívá v tom, že:
Jak jsem psal výše, to už není o oblibě, ale o držení se zajetých kolejí.
Stanislav Brabec avatar 29.10.2008 17:44 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Toto je podle vás dědičnost ? Toto jsou obyčejné ukazatele na funkce. V C se dá udělat dědičnost tak, že by se vytvořila další struktura, která by byla podobná té z C++ (virtuální tabulka funkcí), předpokládám, že jste to myslel spíš tak.
Struktura, v ní virtuální tabulkou funkcí, a ukazatel na ní z nadřazené třídy. Prostě to, co udělá překladač jazyka C++ při kompilaci.
Já ladím pomocí nástrojů IDE, takže tento argument je úplně mimo. Nevšiml jsem si rozdílů mezi laděním C kódu a C++ kódu.
Občas jen čtu kód a hledám, kde je definovaná funkce, která se vykoná. A to jde v C++ hůř, zatímco v C stačí grep na hlavičkové soubory.
Já mám na GObject jiný názor. Nastavování properties a události je věc, která není nativně v C/C++ a člověk si ji musí naprogramovat. GObject je řešení pro C, ale otázka je, jak moc kvalitní.
Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.

A nemusím chodit ani daleko. Ukažte mi nějaký nástroj (code assist), který umí GObject, který je vám schopný ukázat, jaké máte možnosti. To samé pro vaši dědičnost v C a virtuální funkce v C ?

jako nezlobte se, ale jestli vám přijde přehlednější toto:
GJmenoKnihovnyNazevObjektu *o = neco...;
int x = g_nazev_zdedeneho_objektu_x_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
int y = g_nazev_zdedeneho_objektu_y_get(G_NAZEV_ZDEDENEHO_OBJEKTU(o));
než toto:
JmenoKnihovny::NazevObjektu *o = neco...;
int x = o->x();
int y = o->y();
Tak jsme asi oba někde jinde :-)
Asi ano. První forma mi připadá přehlednější – myšlenkové úsilí potřebné na představení výsledné podoby kódu je nižší. Programování jsem se začal učit ve strojním kódu, později jsem se naučil assembler, teprve mnohem později C. C mi tehdy připadalo jako příliš vysokoúrovňový jazyk, ve kterém některé věci nejdou popsat přesně. C++ mi ve většině případů připadá jako zbytečná úroveň abstrakce dodnes (s výjimkou maticové algebry, komplexních čísel a podobných věcí).
29.10.2008 20:12 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Struktura, v ní virtuální tabulkou funkcí, a ukazatel na ní z nadřazené třídy. Prostě to, co udělá překladač jazyka C++ při kompilaci.
Rozdíl mezi náma je ten, že já nechám překladač vyrobit tu tabulku a naplnit. Vy ji musíte definovat, napsat prototypy funkcí a pak při inicializaci knihovny naplnit pro každou třídu (strukturu) zvlášť.
Občas jen čtu kód a hledám, kde je definovaná funkce, která se vykoná. A to jde v C++ hůř, zatímco v C stačí grep na hlavičkové soubory.
Já jsem zvyklý na "goto declaration" nebo "goto definition". Nemusím nic hledat, code assist to dělá za mě.
Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.
Když se to udělá hash, tak jo :)
Asi ano...
Vidíte, mi to přijde jako zbytečná redundance.

Blbé je to, že jsem v tomto vlákně chtěl srovnávat jazyk C a C++ hlavně kvůli novým projektům. Nastolit otázku, zda se opravdu vývojářům zdá výhodné použít tento jazyk na dlouhodobé projekty. Nemusí to být ani otázka personálních preferencí, ale třeba otázka typu, zda je dostatek vývojářu pro konkrétní jazyk. O rychlosti vývoje ani nemluvím :)
Stanislav Brabec avatar 29.10.2008 20:59 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Třeba se dá se diskutovat, zda třeba řetězcové identifikátory vlastností jsou z hlediska efektivity ideální.
Když se to udělá hash, tak jo :)
I tak je to stále komplikovanější, než unikátní identifikátor typu int. Ovšem v jeho případě by zase byl problém se zajištěním jeho unikátnosti, zvlášť v takových případech, kdy např. widget zdědí nějakou vlastnost specifickou pro určité grafické téma.
Blbé je to, že jsem v tomto vlákně chtěl srovnávat jazyk C a C++ hlavně kvůli novým projektům. Nastolit otázku, zda se opravdu vývojářům zdá výhodné použít tento jazyk na dlouhodobé projekty. Nemusí to být ani otázka personálních preferencí, ale třeba otázka typu, zda je dostatek vývojářu pro konkrétní jazyk. O rychlosti vývoje ani nemluvím :)
Podobné srovnání jsem sám pro sebe dělal před pár týdny při kursu C++. A došel jsem k závěru, že efektivní používání C++ (ale platí to skoro pro jakýkoliv jazyk) znamená nejen se daný jazyk naučit, ale také se naučit myslet v prostředcích, které ten jazyk nabízí. Druhý krok je výrazně těžší.

Tomu, kdo umí C a učí se C++, připadají vymoženosti C++ vykoupené komplikovaností jazyka.
29.10.2008 21:45 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
C++ je komplikovaný jazyk - na tom se shodnem.

Ale každý programátor si může zvolit hranici, za kterou půjde. Já jsem například strašně dlouho neuměl používat šablony a vyhýbal jsem se jim. Není dokážu pomocí šablon psát celkem zajímavé věci. Další věc jsou třeba automatické zámky (v Qt QMutexLocker, v Google Chrome AutoLock, atd). Jsou to drobnosti, ale strašně užitečné.
I tak je to stále komplikovanější, než unikátní identifikátor typu int. Ovšem v jeho případě by zase byl problém se zajištěním jeho unikátnosti, zvlášť v takových případech, kdy např. widget zdědí nějakou vlastnost specifickou pro určité grafické téma.
Mnohdy je těžké zajistit i unikátnost řetězců, pokud se tedy unikátnost nezajistí stylem "prostorJmen-objekt-signal" (stylem dbus).
Podobné srovnání jsem sám pro sebe dělal před pár týdny při kursu C++. A došel jsem k závěru, že efektivní používání C++ (ale platí to skoro pro jakýkoliv jazyk) znamená nejen se daný jazyk naučit, ale také se naučit myslet v prostředcích, které ten jazyk nabízí. Druhý krok je výrazně těžší.
Každý jazyk je potřeba se naučit;-)

Já vidím problém hlavně v tom, že někteří lidi píšou o C++ nesmysly a ty se pak šíří mezi ostatní. Viz například FUD typu "C je rychlejší než C++". Když už tato věta odradí někoho od C++ a začne to šířit aniž by si vyzkoušel, co je na tom žvástu pravdy, tak je to těžké. Já si třeba myslím, že rychlost aplikace závisí hlavně na kvalitě ostatních komponent a na algoritmech v aplikaci, ale to sem pletu něco na co jsem odpovídal výše -- ale mám to pořád v hlavě :-)
Stanislav Brabec avatar 29.10.2008 22:01 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Já si třeba myslím, že rychlost aplikace závisí hlavně na kvalitě ostatních komponent a na algoritmech v aplikaci
To je pravda. Stačí zevrubnější pohled do zdrojáku leckterého projektu (nebo jen do dokumentace API), aby člověku začaly vstávat vlasy hrůzou na hlavě. I v GNOME najdeme příkladů dost:

Dialog pro výběr souboru ve starých verzích GTK+ četl aktuální adresář 6×.

GTK Tree View Column nelze jednoduše učinit necitlivý na aktivaci řádku po kliknutí.

Evolution ve svém původním návrhu u některých funkcí nepočítala, že by mohly selhat nebo nikdy neskončit. Při implementaci POP3 šlo o lokální operace, tak se to neřešilo. Problémy nastaly až při implementaci IMAP a trvají dodnes.

Pidgin nadefinoval obecné API pro přenos souborů. Existující implementace se na to nějak nabastlily, a máme z toho pěkné CVE.
Drom avatar 29.10.2008 22:59 Drom | skóre: 24 | Kdyne
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Imho je odpoved na otazku "proc ten a ten jazyk" prosta - protoze ten, kdo danou aplikaci pise, "ten a ten" jazyk pouziva. A i tak ma GNOME malo vyvojaru...
Delej si co chces, ale hlavne me s tim neotravuj. Ja na SW patenty neverim!
29.10.2008 23:43 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
No netýká se to jen GNOME. Třeba Enlightenment a všechny jeho knihovny jsou taky v C a taky trpí nedostatkem vývojářů. Otázka je, kolik nových vývojářů můžou získat stávající filozofií a o kolik jich přicházejí.

Já osobně nepřispívám do GPL kódu, jestli se jedná o C nebo C++, to mě je celkem jedno.
Drom avatar 30.10.2008 00:31 Drom | skóre: 24 | Kdyne
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Já osobně nepřispívám do GPL kódu...

Skoda.
Delej si co chces, ale hlavne me s tim neotravuj. Ja na SW patenty neverim!
30.10.2008 00:45 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
U mě vítězí BSD, MIT, atd...

Nehodlám nikdy nikoho omezovat.
Ilfirin avatar 29.10.2008 11:49 Ilfirin | skóre: 32 | blog: ilfblog | Liberec
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Bez zajímavosti není ani pohled na programovací jazyky, které nové aplikace používají. Empathy je napsáno v jazyce C (stejně jako Vinagre a Cheese), Hamster používá Python. Nezdá se tedy, že by se v GNOME dostávalo většího prostoru jazyku C# (a technologii Mono obecně), jak by to mohlo vypadat z různých komentářů.
Takhle bych na to nekoukal. Jak jsem různě četl, Gnome je otevřený všemu zajímavému, ať je to napsané v čemkoli. Kdyby byl Hamster v C#, tak by byl v C# a nic by se nezměnilo. Různí komentátoři v tom hledají politiku, ale ona tam žádná není.
29.10.2008 12:40 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Nehledám v tom politiku, jen reaguji na názory, že GNOME migruje (stávající aplikace) do C#. A jak se zdá, tak ani nové aplikace nijak masivně nevyužívají C#.
Ilfirin avatar 30.10.2008 08:43 Ilfirin | skóre: 32 | blog: ilfblog | Liberec
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
jen reaguji na názory, že GNOME migruje (stávající aplikace) do C#
Tak to se mi opět vybavuje Miguelova odpoveď na to, jestli budou migrovat Evolution do C#, kde odpověděl, že ani náhodou, že ten kód trvalo vyvinout a odladit několik let, tak ho nehoděj přece jen tak přes palubu. To dává logiku a myslím, že podobné to bude i jinde. Migrace stávajících ne, ale nové aplikace, to je věc jiná.
Ale osobně jsem rád, že nové aplikace do Gnome nejsou jen C#, ale i jiné jazyky.
30.10.2008 12:03 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Však to taky nebyly komentáře vývojářů, ale lidí, co jen tak plácali. :-)
Grunt avatar 29.10.2008 15:39 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
U fotky Ekigy jsem se lekl, že Martin Picek je klon mého kamaráda, ale jak se dívám, tak asi naklonovali někoho jiného.

BTW:Screenshoty se mají vybírat
BTW2:Funguje někomu Ekiga či jiný SIP klient na VIPhone?

A zjistil jsem, že jsem nejproduktivnější ve středu v podvečer.
Na tom něco určitě bude.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
29.10.2008 16:09 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
BTW:Screenshoty se mají vybírat
Nelíbil se mi ten stín...
Grunt avatar 29.10.2008 16:33 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
A tak to potom jo…

GIMP prý ale také vyšel v nové verzi. No, kdo ví…

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Grunt avatar 29.10.2008 16:39 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
A navíc je ten stín, ostatně jak už tak ve světě OS bývá zvykem, uložen v alpha kanálu.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
29.10.2008 17:50 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
BTW2:Funguje někomu Ekiga či jiný SIP klient na VIPhone?
Mně fungoval Twinkle, ale co jsem koupil HW telefon, tak jsem ho s tímto operátorem nepoužil (momentálně jsem u 802.cz a účet u Viphone si nechávám jen proto, že ho tam má i bratr a můžu mu tak volat zadarmo). Ekigu se mi kdysi taky podařilo rozběhnout, ale při provozu to porůznu padalo, takže jsem u ní nezůstal. Ovšem to je už tak dva - tři roky.

Grunt avatar 29.10.2008 21:00 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Jsem spíš myslel dovolat se. Z Ekiga účtu se mi absolutně nedaří dovolat na účet na VIPhone(přitom jinam nemám problémy)…a to jsem si myslel, že SIP je jen jeden.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
30.10.2008 01:46 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
No já z toho Twinkle i dříve z Ekigy zkoušel volat v první řadě z Viphone na Viphone (neb to bylo zdarma) a dovolal jsem se. :-) Od jiného operátora jsem to ovšem nezkoušel, takže nevím.

Nemůže to být tím, že se snažíte použít nějaký kodek, který Vifouni neumí?
30.10.2008 14:40 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
A ještě doplním, protože jsem si vzpomněl - Ekize tehdy dělal problémy NAT při příchozím hovoru, odchozí hovory fungovaly.
30.10.2008 22:36 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Mimochodem, proč má článek tak nízké hodnocení? Je psán stejným stylem jako minulý, je obsáhlý, ale ne nudný (subjektivně), je dobře členěný (opět subjektivně), pojednává o zajímavém tématu... Minulý článek měl nějakých 94 %, tento jen 63 %. Co se nelíbilo?

(Na hodnocení ve stylu "líbilo vs nelíbilo" mi tolik nezáleží, jen jsem zvědavý. Hodnocení, které mě zajímá, je slovní a jasně specifikuje klady a zápory daného materiálu. A toho bych se teď rád dočkal...)
30.10.2008 22:38 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
... a přitom čtenost tohoto článku je daleko vyšší než článku minulého.
Grunt avatar 30.10.2008 22:55 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
KDEčkaři se snažili projevit svůj názor na GNOME?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
30.10.2008 23:30 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Ale proč ne i minule? :-)
30.10.2008 23:45 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Nicméně tohle se podle mě projevuje spíš u článků o Ubuntu, neboť se stále najdou tací (a je jich dost), kteří se stále nesmířili s existencí a popularitou této distribuce. Články o GNOME nejsou tak "kontroverzní".

Další záporné hodnocení pochází taky od lidí, kteří ke mně mají záporný vztah. :-)

... osobně by mě zajímalo, kolik lidí hodnotí samotný článek, a kdo mě, Ubuntu atd.
31.10.2008 11:01 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Moc to řešíš. Mě se třeba článek líbil a to nepoužívám ani Gnome ani Ubuntu ;-)
When your hammer is C++, everything begins to look like a thumb.
31.10.2008 12:44 freshmouse
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Já tam ale nenepsal univerzání kvantifikátor! ;-) A ani to moc neřeším, napsal jsem: "jen jsem zvědavý". Fakt mě to zajímá.
Grunt avatar 31.10.2008 14:16 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNOME 2.24 (nové aplikace)
Moc to řešíš.
Přesně tak. Já si myslím, že hodnocení toho s článkem nebude mít mnoho společného.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!

Založit nové vláknoNahoru

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