C nebo C++ v serverove aplikaci na Linuxu - delsi

Ing. Miloslav Ponkrác miloslav.ponkrac na infos.cz
Úterý Červenec 2 10:25:40 CEST 2002


>Pouzivat vyjimky je velmi spatny napad - jednotlive verze gcc
>kompilatoru
>pri nich ruzne kolabuji, neuvolnuji pamet a delaji jine vylomeninu.


Osobně bych dnes nenazval kompilátorem C++ něco, co nezvládne výjimky.
Hledal bych raději jiný kompilátor, je-li ta možnost.

>Pokud je mozne se jim vyhnout uz pri navrhu doporucuji tak ucinit!!!
>(pokud tedy nehodlate nutit uzivatele pouzivat nejposlednejsi gcc z CVS)
>(stejne je to i s dynamickym pretypovanim)


Ani dynamické přetypování ne?

>> veci, jako je automaticke uvolnovani pameti, automaticke
>> "nafukovani" poli pri pridavani prvku, tridy pro bezpecnou praci
>
>To je tako blbost - na tohle si napisu v Cecku asi tak stejne
>efektivni macro set, ktery se bude chovat stejne jako string nebo
>vector.


Ano, v C, stejně tak jako jiném jazyku napíšete totéž. Také to lze psát v
assembleru například. IMHO není otázkou, jestli to lze napsat, ale jak
efektivně to lze napsat, a zacházet s tím.

>Myslim, ze s avifilem a C++ jsem si uzil celkem krusne chvilky - je
>nebetycne slozitejsi napsat C++ kod, ktery jakztaks zkompilujete na
>vsech
>moznych i nemoznych hardwarech - prenositelnost napr na Sun a jine
>platformy
>je kapitolou sama pro sebe - neinicializuji se tam staticke tridy apod.


Ano, souhlasím s tím, že málokterý (spíše žádný) kompilátor dnes nepodporuje
veškeré vymoženosti C++. Lze se domnívat, že během několika let tato
nevýhoda zmizí. Dnes je potřeba psát v podmnožině C++, tedy nejít až do
krajností jeho možností.

Pokud chcete psát naprosto přenositelně, tj. chcete to přenést na desítky
platforem, je výhodnější čisté C. Pokud ovšem jde třeba jen o Windows/Linux,
tak se slušný kompilátor sehnat snad dá. Třeba na Windows dnes už nejsou
prakticky problémy s překladači C++.

Co se týká Sunu, tak mám pocit, že tam je leccos takové podivné. Ať dělám,
co dělám, všude nacházím upozornění, že na Sunu jsou na všech stranách
problémy.

>Proste pokud chcete mit zaruku jistoty a stability ze vam kod pobezi
>vazne vsude - tak jedine Cecko - cas ktere ztratite tim, ze se budete
>trochu vice pachtit s nekterymi zalezitostmi na ktere v C++ jsou ruzne
>sablony apod se bohate vrati v tom, ze nebudete muset premyslet
>proc to proboha zase nefuguje tam ci onde...


Souhlasím. Na druhé straně dle mého stále C++ stojí za zvážení. Tak zlé to s
kompilátory není.

Jde o to, že standard C++ je mladší, než standard C, a kompilátory vlastně
stále standard C++ trochu dobíhají, alespoň na některých platformách.
Standard C++ je značně rozsáhlý, mnohonásobně rozsáhlejší, než v C. Na druhé
straně, co Vám brání využívat jen základ C++, i tak tím získáte mnoho.

Pokud ovšem nepožadujete absolutní přenositelnost, tak je zase úvaha ve
prospěch C++.

Na druhé straně si mnozí lidé představují přenositelnost tak, že to přeloží
GCC.

MP



Další informace o konferenci Linux