Portál AbcLinuxu, 6. prosince 2025 06:40
Dnes spíš jenom do diskuse. Ábíčko si slovy zadejte hodnotu vynucuje titulek zápisu, ale to je těžký něco vymýšlet, když zápis hodnotu nemá 
Semtam (nebo také skoro pořád, záleží nakonec na úhlu pohledu) se porůznu na internetu objeví diskuse, zdali je vhodné psát uživatelské aplikace v Céčku nebo už tomu dáno odzvonilo a hodí se to jenom maximálně do kernelu (které už různé skupinky taky iniciativně začínají tvořit v lecčems). Není důvod to vyvolávat znovu, ale taky není důvod proč to neudělat 
Po včerejší diskusi o ukazatelích v C jsem neodolal pokušení a dobrou půl hodinu jsem si s tím hrál, což se ukázalo jako docela dobrá zábava. Je hezké, jak lze v céčku poměrně elegantně a nenáročně dělat spoustu zajímavých věcí (může být odlišný pohled na to co je zajímavé). Na druhou stranu je škoda, že zdrojáky glibc jsou takové moc, no, praktické a není tam vždy zcela jasná myšlenka, jako by byla z nějakého hezkého školního příkladu 
Každopádně z toho plyne, že správu paměti můžete dělat různými způsoby a na různých úrovních, přičemž z každého plynou nějaké ty výhody a nevýhody. Někde se ovšem soustředili na eleganci z trochu jiného hlediska a co do paměti (nejen) tolik možností nemáte, protože se o ní stará třeba něco trochu jiného. Je zase fakt, že nemáte tolik starostí. Nicméně je zase hezky vidět, že i malloc má nějakou tu režii, nad tím má nějakou tu režii to něco trochu jiného a tak dál, no, müže toho být hafo.
To by asi nerozhodovalo. Další zajímavá věc jsou GObjecty. Místo toho, aby byly objekty dané něčím trochu jiným, máte je napsané přímo v céčku, je do nich celkem hezky vidět a to i z vašeho programu, takže můžete dělat další zajímavé věci, které by jinde třeba tak hezké nebyly. Je zase fakt, že normální určení a použití třeba takových virtuálních metod je v C++ přeci jenom o trochu hezčí.
Ale abychom se k něčemu konečně dostali. Na jakou úroveň máme kdy jít? Vyplatí se nám vzdát se vlastní správy paměti a náhledu do všeho možného výměnou za pěkný jazyk, který nám všechny (možná) potřebné věci nabídne úhledně zabalené přímo v balíčku s interpretrem (zcela konkrétně to bude Python
)? Nebo spíš při jakých příležitostech je to lepčí.
Když se podívám na všechny ty diskuse a na aplikace co tu v systému mám, moc mi to nesedí. Spousta grafických aplikací různé velikosti je napsaná přímo v C a přitom fungují docela hezky, stejně hezky jako ty co jsou třeba v C# a pod monem, třeba. A já do nich moc nevidím, jestli to dalo víc práce, jestli s tím nebo tím bylo víc problémů. Udělat hezké demo Gtk.TreeView se zdá být v C# snazší než v C, ale když se na to podíváte podruhé, tak je to nakonec stejné.
Nějak tomu chybí revoluční blogovací zápal, co? Jojo, když nemáte konkrétní věc/osobu co chcete naštvat/shodit, tak se bloguje hrozně špatně 
Tiskni
Sdílej:
Protože když o tom tak přemýšlím, proč by nestačila nějaká hezká C knihovna?
Ale třeba jenom neumím programovat (i když mě to celkem slušně uživí
) nebo tak něco...
Takový šikovný C++kař si ovšem poradí i s větším kanónem. Musí být ale opravdu hodně šikovný, aby to sekal rychle. Pro nás méně zdatné je tu SWIG a možnost kus napsat rychlý a zbatek rychle...
Napodruhé k věci :)
Nedávno jsem narazil (no, vlastně to bylo při zkoušce :) na tzv. Format String Attack. To je tak, když je programátor líný (každý programátor je líný :) a místo printf("%s", str) volá printf(str). Jaké moc pěkné věci se s tím dají dělat si můžete přečíst třeba v tomto pdfku.
Ani jsem se nestihl začíst, jak rána lopatou (nic ve zlém, asi je to mnou :) na mě zapůsobila druhá věta:
Ábíčko si slovy zadejte hodnotu vynucuje titulek zápisu, ale to je těžký něco vymýšlet, když zápis hodnotu nemá
Četl jsem ji asi desetkrát, a nic. Prozraď mi prosím, co znamená. Jinak mi to nedá spát.
Nedávno jsem znova četl první zápisky co jsem tu napsal a už jim taky moc nerozumím
.
Osobně si myslím, že čisté C už je opravdu trochu mimo (pro "běžné" použití), C++ už považuju za použitelnější kompromis. Osobně si též myslím, že kvalitní runtime (žádné hloupé segfaulty, ale výjimky, a GC) ala C#/Java obvykle za nějakou tu režii stojí.
#ifdef a #ifndef) a to samý ve wxPython, tak mi připadal vývoj v pythonu jednodušší (i když třeba ne tak napínavý
).
Ale ty věci co jsou v C++ navíc mohou dost zásadně měnit chování progamu, takže aby je bylo možno používat je třeba je znát a přitom jsou dány jazykem, takže si tedy troufám říci, že v C++ je navršeno něco navíc (oproti C). Samozřejmě, cokoliv navíc z tohoto pohledu znaméná… hm, něco navíc
Neříkám ani, že se to musí používat všechno. Náhodou jsem nedávno natrefil na seznam toho co se v Mozille z C++ z důvodu kompatibility zapovídá a říkal jsem si co jim z toho tedy ještě zbylo
Tohle už doufám není tak pobuřující.
)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.