[OT:] V cem psat pro Win?

Miroslav Mraz mrazik na volny.cz
Středa Prosinec 14 13:01:13 CET 2022


Qt je z mého pohledu hodně dobře až geniálně navrženo. Základ má až 
dodnes dobrou dokumentaci, je sice asi generována z kódu něčím jako je 
doxygen, ale alespoň si dali tu práci dopsat tam, jak to funguje a uvést 
srozumitelné příklady.

Jsou použity jen základy C++, tedy třídy, polymorfizmus jen tam, kde je 
nezbytný, žádné opičárny, které se blbě čtou a pro začátečníka jsou 
naprosto neprůhledné. Takže nízký práh učení. Z pohledu aplikačního 
programátora je koncept signálů a slotů poměrně pochopitelný, prostě 
jako by se z jedné funkce volala funkce jiná se stejnými parametry i 
návratovou hodnotou. Sice to vypadá dost zbytečně, řeknete si tak to 
můžu rovnou zavolat tu jinou funkci, ale pokud si vyměňujete data mezi 
vlákny, tak to takhle nejde a překladač vás přes to nepustí. Jak to 
funguje uvnitř, vás celkem nemusí zajímat.

Stejně průhledně byly řešeny i třídy - problém tzv. křehké základní 
třídy je řešen metodou "kočka Šklíba" - v hlavičce vidíte jen veřejné 
rozhraní, z vlastní implementace vidíte jen ukazatel na jakousi 
strukturu o které nemusíte nic vědět (škleb). Někdy se tomu říká 
skrývání implementace, ale plete se to s ukrýváním, což jsou ta klíčová 
slova public, protected, private. Tohle hodně usnadňuje překlad vlastní 
aplikace, který ani nemusí být nutný - prostě se už přeložené objekty 
slinkují s novou knihovnou a je hotovo. Nesmí se ale změnit hlavička té 
knihovní třídy. A to bývá opravdu stabilní - mění se obvykle až se 
změnou major verze (a spíš se přidává než ubírá). Proto jsou rozdíly 
mezi Qt4 a Qt5 docela malé.

A samozřejmě výhoda je, že to běží skoro všude a jde udělat i křížový 
překlad pro jinou platformu.

Jediný problém co mne napadá bývá s licencí. Pro domácí použití to je 
jedno, narazíte až když za to chcete peníze. Další věc je, že jak to 
postupně bobtná, ty základní principy už tak nějak neplatí, dokumentace 
se zhoršuje, objevují se nové konstrukce jazyka C++, které zhoršují 
čitelnost atd.

Sice to také jednou umře, jako vše v oboru IT, ale odhaduji, že přes 
veškerou snahu napravit nedostatky C/C++ něčím novým, tahle dvojice tu s 
námi ještě nějakou dobu vydrží.

Pozn. Do doporučení nějakých nástrojů na programování se obvykle 
nepletu, a už vůbec ne na Windows, které jsem opustil už před 20 lety. 
Prostě mi to nedalo. Ale používejte si co chcete, především to, co dobře 
znáte. Pokud znáte Pascal, a máte pro to nástroje, proč ne, patrně 
budete produktivnější, než když se budete za pochodu učit něco tak 
komplikovaného jako je C++. Mne tohle minulo, po assemblerech, fortanu a 
basicu přišlo rovnou C-čko a po něm C++, které se stejně používalo 
stejným způsobem jako čisté C. Teď frčí python, není špatný, ale na GUI 
se moc nehodí. Zkoušel jsem i rust, ale na to je asi ještě brzy.

Mrazík

On 14. 12. 22 9:39, Pavel Hudeček wrote:
> V QT je moc hezká komponennta na USB sériák, umí zjistit VID, PID a i 
> něco user defined. Už si to moc nepamatuju, použil jsem to s 
> integrovaným USB v STM. Chodilo to super, na win i linuxu.
> 
> PH
> 


Další informace o konferenci Hw-list