<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Ono neznamená, že to co je lepší vždy vyhraje. Pokud se lidi
zaseknou, že nepůjdou dál či nevidí dál než čisté C, tak to
samozřejmě bude. Pokud se na C++ nepustí vyjímky, bude se po sobě
uklízet paměť, tak rozdíl oproti starému C je, ale technicky to
vygeneruje stejný kód, jak jsme si na ARM ověřili dokonce i
rychlejší a optimalizovanější. Přičemž na špeky vždycky zůstane i
starý zápis. Kromě arduina byl naprogramován i os NEXT, kde bylo
snad všechno objekt <a
href="https://cs.wikipedia.org/wiki/NeXTSTEP">NeXTSTEP –
Wikipedie (wikipedia.org)</a> .</p>
<p>Pokud se podívat na Javu či c#, tak mají daleko čistější zápisy
než javascript, ale ten to v řadě případů vyhrává i v těch
embedded systémech.</p>
<p>Na Arduinnu, když se programuje v C++, tak se také musí dát pozor
na stringy, našel jsem nějakou implementaci fixedstring <a
href="https://github.com/toomasz/FixedString">GitHub -
toomasz/FixedString: String library for embedded systems that
won't make your heap fragmented</a> , která se vyhne haldě a
problému s tím. Někdy je ta halda ovšem důležitá pro některé
aplikace. Inu musí se vědět, co se dělá.</p>
<p>Psát v čistém C třeba zpracování SOAP zpráv či JSON je zážitek,
ne že by to nešlo, ale proč to dělat takhle neohrabaně... .<br>
</p>
<p>Jirka<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">Dne 13.03.2021 v 5:45 Jaroslav Buchta
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:c5e61803-f848-9bf7-a93e-06c023793225@hascomp.cz">Tak ono
to v principu asi nicemu nevadi, treba Arfuino na C++ jede, ale je
asi potreba se krotit ve vyuzivani moznosti C++ coz mi uplne
nesedi.
<br>
Jednou jsem zkusil, co to udela, kdyz nasadim system vyjimek (na
ARM) a z kodu 20kB hned bylo pres 100kB. Tim pro me C++ na MCU
ztratilo kouzlo. S virtualizaci to bude asi taky nic moc, zvlast
na slabsich procesorech, ktere nemaji pokrocilejsi instrukce pro
adresaci pameti.
<br>
A dalsi vec bude podle mne horsi prenositelnost kodu na ruzne
platformy, v jadrech OS je to spousta struktur s ukazateli na data
a funkce, v C jsou celkem jasna pravidla a da se to osetrit
preprocesorem, objekty v C++ jsou asi fyzicky implementovany
rozmaniteji.Netvrdim, ze by to neslo, nakonec zas to Arduino
ukazuje, ze slo, ale...
<br>
<br>
Dne 12.03.2021 v 22:10 Petr Labaj napsal(a):
<br>
<blockquote type="cite">No - asi to bude věc pohledu.
<br>
Já v tomto zcela souzním v panem Linusem, který myslím kdysi
prohlásil, že něco jako C++ se nemělo nikdy narodit.
<br>
<br>
Pro programování GUI je C++ asi celkem fajn. Všude jinde se mu
rád vyhnu velkým obloukem.
<br>
Použít ho pro nějaké low-level programování si teda moc nedovedu
představit. Kdyby to po mě nějaký zákazník chtěl, tak ten kšeft
prostě odmítnu.
<br>
Ale svět je barevnej, tak jiní lidé to zase vidí jinak.
<br>
<br>
PL
<br>
<br>
***********************
<br>
<br>
Dne 12.3.2021 v 21:02 Jiří Nesvacil napsal(a):
<br>
<blockquote type="cite">V linuxu máte drivery, vlákna a poté
konfigurace, které již nejsou v C, shell, který není C a to
nepíši o web stránkách, manuálech, které také neskládají
stringy v C. Kde můžou, tak se to mu C vyhnou. Tam, kde to
jinak nejde či je výhodné použít mraky pointerů tj. v odkazu
do hw, tak Vám nic jiného nezbude. Však se také jádro vydává
velmi opatrně má dlouhé cykly... . Pokud píšete nějaký kousek
v embedded systému, tak vyšší vrstvu raději taky nebudete psát
v C. Myslím si, že dnes pokud by se psal znova OS, tak se bude
psát minimálně v C++ a s praktiky, které povedou k vynechání
pointerů v kódu, aby se vyhnuli chybám.
<br>
<br>
Jirka
<br>
<br>
Dne 12.03.2021 v 19:31 Petr Labaj napsal(a):
<br>
<blockquote type="cite">To jako že třeba Linux je menší
projekt? Nebo to znamená, že je neudržitený a brzo se
zhroutí?
<br>
Tak to je problém. To místo něho budeme muset se vším přejít
na Windows?
<br>
A nejsou ty náhodou taky psané z velké části v C? Aby je
nepotkal stejný osud.
<br>
Žádné příjemné vyhlídky do budoucna. :-(
<br>
<br>
PL
<br>
<br>
***********************
<br>
<br>
Dne 12.3.2021 v 8:29 Jiří Nesvacil napsal(a):
<br>
<blockquote type="cite">Psát kousek programu v C, struktury,
mraky pointeru se dá, ale při větším projektu to bývá
neudržitelné. Při porovnání verzí, commitu se jednoduše
nějaká * či & ztratí.
<br>
</blockquote>
<br>
</blockquote>
</blockquote>
<br>
_______________________________________________
<br>
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<br>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br>
</blockquote>
<br>
<br>
_______________________________________________
<br>
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<br>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br>
</blockquote>
<div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
<tr>
<td style='border:none;padding:0px 15px 0px 8px'>
<a href="http://www.avg.com/internet-security">
<img border=0 src="http://static.avast.com/emails/avg-mail-stamp.png" alt="Logo AVG" />
</a>
</td>
<td>
<p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
Tento e-mail byl zkontrolován na viry antivirovým softwarem AVG.
<br><a href="http://www.avg.com/internet-security">www.avg.cz</a>
</p>
</td>
</tr>
</table>
<br />
<a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"> </a></div></body>
</html>