Delphi 10.2 Tokyo v dražbě superuživatelem

Takže, co vlastně dražíme? Aktuální verzi Delphi s označením Tokyo, neboli 10.2. A nejde o recenzi ale o ohlédnutí, ve kterém se pokusím shrnout dosavadní historii této verze a lehký výhled do budoucna.

Poprvé

Delphi 10.2 – Tokyo bylo uvolněno v březnu 2017. Největší „bomba“, kterou Tokyo obsahovalo, a v duchu které se nesla marketingová a vizuální kampaň (tučňák s emblémem Delphi, vystrojený do řecké zbroje), byla podpora nové platformy – Linux.

Za nejzásadnější změnou v mobilním (FMX) vývoji lze považovat běh kódu na Androidu pouze v jednom threadu (Java UI Thread). Bohužel tato změna byla zásadní jak v pozitivním, tak v negativním směru. Nejzávažnějším dopadem bylo, že aplikace pro Android přestaly správně fungovat, a to zejména vizuální komponenty FMX. Vývojáři, kteří používají Delphi pro mobilní vývoj (Android i iOS), a já k nim patřím, museli bohužel rezignovat na migraci z 10.1 na 10.2 a počkat, až to dá Embarcadero do pořádku. Vzhledem k tomu, že verze 10.2 podporovala ladění a nasazování pro nové verze iOS/Xcode a 10.1 ne, to bylo možné jen za značného skřípění zubů a používání degradovaných verzí Xcode.

Mimochodem, na jednu z koster v této skříni jsem narazil nedávno, kdy jsem musel pro Android strkat do threadu registraci push-notifikací, protože dotyčné volání API je blokující a nesmí se volat z hlavního threadu.

Ale abych nebyl úplně negativní, tahle verze konečně řeší jednu kosmetickou drobnost. Tu nám však obchodníci a manažeři otloukají o hlavu už léta – při startu aplikace pro Android zmizí velmi rychle splash screen a objeví se totálně černý displej na dobu delší než příjemnou. Nyní vydrží splash až do doby, než je vykreslí vstupní formulář. Je to maličkost, ale potěšila. Pravda, plně jsem si jí vychutnal až s verzí 10.2.1 kdy zase začal Android fungovat.

Za důležité považuji i počátky komponent thread-safe (TBitmap, TCanvas…). Je fajn nezabývat se synchronizací, když chci nakreslit obrázek, který stahuji asynchronně.

Znatelného vylepšení doznala podpora HighDPI. Toto téma však není zřejmě zdaleka vyčerpáno, protože se vine napříč dalšími verzemi jako červená nit (to jsem si nemohl odpustit), včetně plánované nadcházející verze 10.2.3.

Linux

Ve srovnání s ostatními změnami je podpora Linuxu natolik významná, že se o ní zmíním trochu obšírněji.

Šuškalo se o tom v kuloárech již delší dobu a konečně se tak stalo. Stejně jako ostatní multiplatformní kompilátory je i tento založen na LLVM. Kompilátor je 64 bitový (x64) a má ARC. Oficiálně podporuje RedHat a Ubuntu. Běhat ale bude i leckde jinde, Radek Červinka to, tuším, zkoušel na CentOSu (to ale není nic jiného klon RedHatu). Tipoval bych, že stejně na tom asi bude Debian, jehož je Ubuntu komerční verze (za zjednodušování skutečností se všem linuxářům hluboce omlouvám.

Považuji tento počin za důležitý krok, který by mohl rozšířit řady vývojářů, kteří používají Delphi, nebo alespoň upevnit pozice těch kteří ho již používají. Nicmémě… Je zcela zřejmé, že v této chvíli preferuje Embarcadero na platformě Linuxu vývoj serverových aplikací. Nepřítomnost vizuálního frameworku a dostupnost pouze v enterprise verzi jsou jasné indicie. A kromě toho je tento záměr i uváděn v marketingových materiálech. Cíl je tedy jasný – korporátní serverový vývoj, drahý a rozsáhlý. Připouštím, že lze napsat i něco menšího serverového, ale ne když je potřeba enterprise verze, a také ne když je k dispozici jen kompilátor x64. Pro vývoj menších a zabudovaných (embedded) projektů to chce kompilátor pro ARM a finanční dostupnost vývojového prostředí. A možná jako návdavek FireMonkey.

Nicméně se zdá, že o kompilátoru ARM pro Linux se alespoň minimálně uvažuje, zmínka se objevuje v roadmap v sekci „Cíle, o kterých se uvažuje“. (Zajímalo by mě, jak moc je to implementačně složité, když MacOS a Android jsou Linux a Android je navíc ARMový a sekcemi POSIX se to ve zdrojácích RTL jen hemží). K dispozici je projekt FMXLinux, který přizpůsobuje FireMonkey tak, aby fungoval na Linuxu. Zařazení cílové platformy Linuxu do Enterprise verze je čistě marketingová záležitost. Přiznám se, že mě osobně by bavilo napsat si něco v Delphi pro embedded Linux třebas do Rapsberry Pi. Ale ano, ovšemže, když si do něj dám Android, tak mohu už teď.

Podruhé

Release 1 vyšel v srpnu 2017. Opět z mého, mobilního hlediska, je nejvýznamnější přínos verze v tom, že opět začaly fungovat aplikace pro Android (pravda, hotfix byl dostupný již někdy v červnu). Pro VCL svět je asi nejvýznamnějším přínosem oprava linkeru, protože odlišné chování Windows 10 Creators Update sloužící k natahování DLL způsobovalo zásadní zpomalení aplikací.

Release 1 také obsahuje opravu 104+ chyb nahlášených na Quality Central.

Release přináší do mobilního vývoje i podporu nové verze iOS (10.3) a Xcode (8.3.3).

Potřetí

Release 2 vyšel v prosinci 2017, a to dokonce na dvakrát, neboť v první verzi byl zřejmě refaktoring natolik odvážný, že přestala fungovat spousta komponent třetích stran, takže po dvou týdnech vyšel hotfix Release 2, který to zase vracel zpátky.

Mobilní vývoj dostal podporu pro iPhoneX (další rozlišení splash-screenů), iOS 11 a MacOS High Sierra.

Release 2 obsahuje opravu 150+ chyb nahlášených na QC. Ve VCL se pak objevily nové komponenety – Stack Panel, Card Panel, Date a Time Picker.

Nejviditelnější změnou v této verzi jsou přepracované ikony v IDE (včetně všech komponent, jedná se o 700+ ikon). Mně se osobně moc líbí, jsou vyvedené ve flat–designu a mají konzistentní grafiku.

Někomu se možná zdá, že je to vlastně jedno, funkce zůstávají stejné, ale já rád pracuji v prostředí, na jaké se mi hezky kouká a které ve mě vzbuzuje pozitivní pocity. Zvlášť když do toho člověk kouká pár hodin v kuse.

IDE ještě dostalo černý styl. Tuto skutečnost jistě uvítá skupina programátorů, kteří mají editor přepnutý na černé pozadí a preferují inverzní DOS tonalitu (a není jich málo). Nový kabát dostala i vstupní stránka (která pak následně ještě doznala změn v rámci jejího hotfixu).

FireMonkey konečně dostalo panel QuickEditu, po kterém závistivě pokukuji do VCL už od Delphi Berlin.

Jako zajímavost mohu zmínit, že součástí tohoto „release“ ve verzích enterprise je jedna plná licence (Single Site/Single Server) na RAD Server.

Počtvrté?

Ačkoliv jsme si už začali zvykat na schéma Verze – Release 1 – Release 2, ohlašuje Embarcadero na první čtvrtletí 2018 další Release 3 (tedy verzi 10.2.3). Mimochodem, letos má Delphi 23. výročí, takže hezká shoda s číslem verze. Sarina DuPont zmiňuje v příspěvku z poloviny února 2018 tři hlavní oblasti, které se má plánovaný release týkat.

První vylepšení se týká jader vizuálních frameworků – pro platformu VCL lepší podpora HighDPI a pro FireMonkey obecné zvýšení kvality (zaplaťpánbu). Osobně jsem zvědav na obě vylepšení, a přestože pracuji hlavně ve FireMonkey, sleduji u kolegů na platformě VCL boj s jiným rozlišením displeje než 96 DPI.

Další novinky se mají týkat C++ Builderu, konkrétně podpora příkazové řádky CMake a v refaktoringu se objeví přejmenování.

Poslední oblastí je doplnění RAD Serveru o podporu Ext JS (jkavascriptový framework), zjevně mířený na propojení s novou akvizicí Idery – Sencha (nástroj pro vytváření webových aplikací). Podpora je zřejmě založená na nové komponentě FireDAC (uvedené v 10.2.2), která umí generovat formát JSON vhodný pro Ext JS. Společně s možností umístit na RAD Server HTML stránky bude možné tuto kombinaci použít jako backend pro nástroj Sencha.

Sarina se dále obecně zmiňuje o mnoha dalších vylepšeních kvality a výkonu, které jsou již hotové, takže se objeví již v tomto release, a nikoliv až v následující 10.3 verzi. Ostatně lze předpokládat, že se nová roadmapa objeví právě po uvolnění releasu 10.2.3.

V této souvislosti si nelze nepovšimnout, že původní plán ze srpna 2017 počítal s uvedením nové verze Delphi 10.3 na první čtvrtletí, a že tedy aktuálně místo něj dostaneme „jen“ release. Mohl bych spekulovat, že to má nějakou souvislost se zásadní obchodní změnou, kterou Idera (úmyslně jsem nepoužil Embarcadero) ohlásila – 31. 3. 2018 končí s jednorázovými aktualizacemi. Položka „Upgrade“z ceníku zmizí. Novou verzi bude možné získat jen zakoupením plné verze, nebo pravidelným placením ročního předplatného.

Osobně na tomto kroku nevidím z hlediska obecných trendů nic překvapujícího. Koncept SaaS se již dávno usadil na trhu s jeví se jako velmi životaschopný. A upřímně řečeno by mě zajímalo, kdy začnu platit nějaké předplatné za Windows 10. Vraťme se ale k předplatnému za Delphi. Z finančního hlediska by mělo být předplatné na úrovni 25 % plné verze (upgrade je někde okolo 70 %). Takže cena plné verze je stejná jako čtyři roky předplatného. Pokud uvažuji situaci, kdy používám vývojové prostředí průběžně a nové verze budu kupovat dříve než za pět let, tak je předplatné cenově výhodnější. Mimochodem, v mobilním vývoji nic jiného nezbývá. Pokud mám v plánu udržovat vývoj na verzi pět a více let staré, nemá cenu udržovat předplatné, ale počkám si na nějakou výhodnou prodejní akci nebo amnestii, která umožní zakoupení nové verze za cenu upgrade.

Současná strategie Embarcadera, a sice uvolňovat nové funkce i v rámci „releases“ tedy zcela odpovídá záměru přesměrovat zákazníky na předplatné a udržet je na něm. Z pohledu korporací jsou pro finanční plánování zcela jistě lepší pravidelné průběžné menší výdaje a pro Embarcadero pravidelné průběžné příjmy. Co to bude znamenat pro menší nezávislé vývojáře, to ukáže čas.

Vydraženo – ohlédnutí

Za uplynulý rok se toho událo opravdu hodně. Ne vždy se vše povedlo, ale nakonec vlastně všechno dobře dopadlo. Za nejdůležitější však považuji fakt, že Idera, co by nový vlastník Delphi, zjistila, že jde o velmi živatoschopný segment trhu, který má možná lepší výsledky než segment databázových nástrojů, kvůli kterým vlastně Embarcadero kupovala.

Myslím, že Atanas Popov (General Manager of IDERA Dev Tools – nyní nejen Embarcadero ale i nová akvizice Sencha) sune věci kupředu a má ambice vývojové nástroje dále rozvíjet. Akvizicí firmy Sencha, získala Idera velmi kvalitní a propracovaný HTML frontendový produkt, který by mohl velmi zdárně doplňovat v Delphi vyvinutý backend. O to se Enbarcadero snaží již delší dobu (vzpomeňme na HTML5 Builder), ale až dosud bez obecně použitelného výsledku. Sencha ale vypadá, že je jiná liga, a že možná ony investice do rozvoje, o kterých Idera mluvila u příležitosti převzetí Embarcadera, budou mít zcela konkrétní a velmi pozitivní výsledek.

Také začínám mít dojem, že divize vývojových prostředků má ochotu k marketingovým krokům, které by mohly produktu pomoci. Bezplatné licence pro školy (konečně, byť se strašlivým zpožděním) je důležitý začátek, byť bude potřebovat roky, aby nesl nějaké výsledky. Nechme se ale překvapit něčím dalším, co by mohlo mít mnohem rychlejší dopad.

Vývojový nástroj Delphi zkrátka žije a prosperuje a já osobně mu přeji další úspěšný rok.

Daniel Jenne je vývojářem s mnohaletou zkušeností

Aktuální nabídka bonusů k vývojovým nástrojům Delphi, C++ Builder a RAD Studio od společnosti Embarcadero

Exit mobile version