Portál AbcLinuxu, 4. května 2025 08:33

Dotaz: Jde z Javy prejit na C?

9.5.2007 12:18 Trained.Monkey | skóre: 12 | blog: monkey
Jde z Javy prejit na C?
Přečteno: 668×
Odpovědět | Admin
Zdravim, jsem rozmazleny Javar. Nikdy jsem v nicem jinem neprogramoval, pokud nepocitam Pascal. Rad bych si ale zkusil C (ne C++). Potreboval bych par knihoven se kterymi zacit: Diky za rady.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

DjAARA avatar 9.5.2007 12:43 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco málo k GC pro C/C++ naleznete na stránkách HP http://www.hpl.hp.com/personal/Hans_Boehm/gc/.

Náhrada za classpath z Javy? O ničem nevím, ale může být. Podle mě je C tak nízko, aby si každý potřebnou funkcionalitu ušil na míru. Pro trochu vyšší věci je pak podle mě určeno C++.

Rozdělení do jednotlivých souborů, popis hlavičkových souborů a tak je docela dobrý v knize: učebnice jazyka C.
DjAARA's blog
9.5.2007 12:58 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin
GC v C je celkovo problém, v podstate si môžete vybrať buď stratiť prácu s pointrami (a pointrovou aritmetikou) alebo nefunkčný GC. Osobne by som odporúčal neriešiť GC a viac sa venovať analýze dát v programe.

ad classpath: chcete Javu ale nechcete Javu? Na to zabudnite, vo svete C jednotný stýl neexistuje, dokonca prežíva aj maďarská notácia. Šírku záberu nahrádza množstvo jednoúčelových knižníc (často si konkurujúcich). Jedine s tou dokumnetáciou vám to prípad od prípadu môže vyhovovať.

Hmm, a prečo teda nie Objective C ani C++ ?

9.5.2007 13:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nedoporučil bych dívat se na to jako na přechod z Javy na C++. Sice oba jazyky vyházejí z podobných principů a mají podobnou syntaxi, ale některé věci se v nich dělají dost odlišně. Pokud budete programovat ve stylu C/C++ ale v syntaxi Javy, bude výsledkem prasácký a neefektivní kód a občas vám za něco vynadá kompilátor, ale pokud půjde jen o jednovláknové prostředí, asi to půjde spustit a nějak to poběží. Když ale budete v javovském stylu psát program v C/C++, kompilátor pravděpodobně nebude mít nic proti (možná nějaké výjimky), ale výsledný program buď bude žrát neomezené množství paměti, nebo daleko spíš někde vypadne na segfault.

Takže doporučuji nesnažte se přejít z Javy na C/C++, ale naučte se C/C++ od začátku. Ostatně jinak to ani nedává smysl, předpokládám, že máte nějaký důvod naučit se nový jazyk, a tím důvodem bude nejspíš něco, co Java neumí – takže by bylo nesmyslné pokoušet se to psát ve stylu Javy. Pokud si myslíte, že C/C++ je taková rychlejší Java, nebo Java pro "opravdové programátory", pak se mýlíte, a naučte se nejprve raději pořádně tu Javu :-) (Nebo třeba C/C++, to je jedno, důraz kladu na to slovo pořádně.)
9.5.2007 21:09 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Ha, tak na tomhle se určitě shodneme. :-) Bojovat proti jazyku nemá valnou cenu.
9.5.2007 19:10 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin

To je hodně složitá otázka. Rozdílů je tolik, že jsem o tom musel napsat blogpost. Každopádně díky za zajímavý podnět. :-)

9.5.2007 20:55 iSteve
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tvuj pristup mi prijde, bez urazky, uplne spatnej. Snazis se si z Ccka udelat takovou syntakticky trosku jinou Javu. Nauc se Ccko, jakoze opravdu Ccko a ne Ccko s takovymhle kabatkem... a pak si s timhle v klidu hraj.
Bluebear avatar 9.5.2007 22:39 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Jde z Javy prejit na C?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle mého názoru je sám výraz přejít na jazyk hodně divný a vlastně nemá význam. Člověk přece může používat víc než jeden programovací jazyk. Pokud máte to štěstí, že si můžete vybrat, v čem budete nějaký projekt programovat, tak použijte to, co vám připadá nejvhodnější a co vám bude při práci nejlépe vyhovovat.

Knihovna funkcí: hodně univerzální je GLib, dokumentace je zde.

neco na rozdeleni programu do bloku, idealne primitivni implementace/interface jako je v Objective C. Musi to ale byt kompatibilni s C komplilatorem, takze asi nejaky preprocesor.

Možná GObject. Také se můžete inspirovat v linuxovém kernelu, kde je také hodně propracovaná (a setsakra komplikovaná) sestava maker pro seznamy, polymorfismus a podobné.

Ale obecně nevím, jestli je dobrý nápad pokoušet se psát v čistém C jako v Objective C. Tento jazyk je určen k něčemu jinému, a snažit se ho ohýbat do jiné podoby IMHO nemá moc smysl.

Jen na okraj: já jsem nedávno měl nápad, že napíšu v čistém céčku aplikaci, která spouští systémové testy, vyhodnocuje je a vytváří souhrn ve formě webové stránky (tedy velké množství práce s řetězci). To proto, "aby to bylo rychlé a nemělo to moc závislostí". Málem jsem z toho pošel a nakonec jsem to přepsal do C++, protože tam si můžu nadeklarovat typ řetězec.
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.