[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