• Popis komponenty Firemonkey. hasičská opice. Start. Pozadí. Dojem. FireUI Live Preview -- Zobrazte zobrazení aplikace na skutečných zařízeních v reálném čase

    Uplynuly více než tři roky od doby, kdy se divize CodeGear zodpovědná za vytváření světově proslulých nástrojů, jako jsou Delphi, C++Builder a JBuilder, stejně jako Interbase DBMS, stala součástí Embarcadero Technologies, společnosti známé svým návrhem a správou databází. tools. , a dva roky poté, co jsme na stránkách našeho magazínu diskutovali o tom, co očekávat při vývoji nástrojů, které jsou mezi ruskými vývojáři tak oblíbené. Zeptali jsme se Davida Intersimoneho, viceprezidenta pro vztahy s vývojáři a hlavního evangelisty Embarcadero Technologies, a Kirilla Ranneva, vedoucího zastoupení Embarcadero Technologies v Rusku. Pro naše nejmenší čtenáře informujeme, že to není zdaleka první rozhovor, který David a Kirill poskytli ComputerPress – naše spolupráce trvá již druhou dekádu. A zhruba stejný počet let pravidelně publikujeme recenze nástrojů pro správu databází, ve kterých je věnována velká pozornost produktům Embarcadero.

    ComputerPress: Davide, vaše divize je již tři roky součástí Embarcadera. Před dvěma lety jste byl plný nadšení z toho, že se stal součástí cíleně i duchem vám blízké společnosti. Změnilo se za tu dobu něco? Cítíte vy i vaši kolegové stejné nadšení?

    Ano, jsem stále nadšený. Hlavní změnou, která se udála od doby, kdy jsme se stali součástí společnosti Embarcadero, je to, že se do vývoje Delphi hodně investovalo. Zvýšil se počet zaměstnanců pracujících na vývojových nástrojích, zvýšil se počet technologií, které můžeme vyvinout nebo v případě potřeby pořídit.

    Vydání RAD Studio XE 2, které plánujeme předvést v Moskvě, je největším vydáním tohoto produktu s obrovskými schopnostmi a velkým počtem podporovaných platforem od první verze Delphi, vytvořené pro 16bitová Windows a dřívější inovativní produkt, který spojuje komponentní přístup a kompilaci se strojovým kódem. Nyní podporujeme vývoj nejen pro Windows, ale i pro Macintosh, nemluvě o vývoji webu a tvorbě aplikací pro mobilní zařízení, přičemž tyto aplikace pro různé platformy mohou mít jeden kód.

    Nová vývojová platforma FireMonkey je výsledkem spolupráce mezi Embarcaderem a nedávno získanou ruskou firmou KSDev se sídlem v Ulan-Ude, výrobcem komponent vektorové grafiky, DirectX a OpenGL, technologií grafických efektů a komponent Delphi využívajících GPU s PixelShader 2.0. Před rokem jsme získali společnost KSDev (viz ksdev.ru) a začali jsme spolupracovat na vytvoření multiplatformního vývojového nástroje, který zahrnuje platformu pro vývoj aplikací FireMonkey s komponentami pro Delphi a C++ Buider pro vytváření uživatelských rozhraní aplikací, integraci s databázemi, zpracováním grafiky pomocí grafického procesoru a integrací s operačním systémem.

    Pomocí FireMonkey můžete vytvořit aplikaci, která provozuje CPU a GPU společně, a poté pomocí různých kompilátorů a run-time knihoven (Run-time Libraries, RTL) ji můžete zkompilovat pro Windows, Mac OS nebo iOS. Místo učení programování pomocí různých grafických knihoven, učení API z různých platforem s různými souřadnicovými systémy a různými schopnostmi mohou vývojáři používající Delphi a C++Builder používat stejný přístup ke komponentám, vizuálně upravovat formuláře a připojovat se k databázím přesouváním komponenty pomocí myš. Toto je zásadně nový způsob vytváření aplikací, které běží na různých platformách, a je budoucností. Pokud chcete do své aplikace přidat podporu pro další operační systémy a platformy, nemusíte ji předělávat a vyvíjet – postačí ji pouze překompilovat.

    Vytváříme nové kompilátory, které generují nativní kód. Dnes existují kompilátory Delphi pro 32bitové a 64bitové verze Windows, 32bitové verze Mac OS 10. A pracujeme na nové generaci kompilátorů Delphi a C++Builder, které vám umožní vytvářet vysoce výkonné nativní kód pro tyto i další platformy jako Android nebo Linux a zachovávají si stejný design, stejné komponenty, stejný kód pomocí různých kompilátorů a runtime knihoven.

    Jak vidíte, důvodů k nadšení mám dost. A vývojáři, které potkávám po celém světě, vědí, že Embarcadero hodně investuje do Delphi a C++Builderu a také do vývojových nástrojů PHP.

    KP: Jakého pokroku jste dosáhli v integraci nástrojů těchto dvou společností za poslední dva roky? Jaké má Embarcadero v této oblasti plány do budoucna?

    DI.: V době, kdy se divize CodeGear stala součástí Embarcadero, měla tato společnost vývojové týmy v Torontu, Monterrey a Rumunsku, my jsme byli a stále jsme ve Scotts Valley a v Rusku, v Petrohradu. Embarcadero mělo vývojářské nástroje a správce databází, CodeGear měl nástroje pro vývoj aplikací, ale ti poslední také využívají databáze. Fúze společností je kombinací odborných znalostí, znalostí v oblasti databází, optimalizace kódu včetně serverového kódu. Fúze také vyústila ve vytvoření nového produktu, AppWave, speciální technologie pro přeměnu obyčejné Windows aplikace na něco velmi snadno použitelného (jako jsou aplikace pro iPhone nebo jiná zařízení). AppWave umožňuje neinstalovat aplikaci, ale jednoduše ji vybrat a spustit z připraveného aplikačního úložného (app) serveru, přičemž bude spuštěna na počítači uživatele bez provádění změn v oblasti jeho registru a systému souborů. Mimochodem, prohlížeč aplikací AppWave je napsán v Delphi. Embarcadero používá Dephi pro svůj vlastní vývoj a naše odborné znalosti v oblasti vývoje aplikací.

    Aplikace pro iPhone (iOS) vytvořená společností
    pomocí platformy FireMonkey

    Můžete také využít integraci našich vývojových nástrojů a DB Optimizer k optimalizaci SQL dotazů při sestavování aplikací. Předáním kódu SQL přímo do DB Optimizer jej můžete profilovat, testovat a vrátit jeho optimalizovanou verzi zpět do vývojového prostředí. Zkušenosti společnosti Embarcadero s databázemi také zlepšily technologii DataSnap. Díky vývojářům z Toronta jsme získali mnoho znalostí o architektuře vícevrstvých systémů a databází. Nyní máme společné odborné znalosti v oblasti serverového kódu a uložených procedur v obou společnostech. Máme nástroje jako RapidSQL a DB Change Manager a vývojová prostředí, která usnadňují vytváření kódu na straně serveru, jako jsou technologie Code Insight a Code Completion, které umožnily vytvářet technologie SQL insight a SQL Completion. Náš společný přístup k vytváření klientského a serverového kódu, naše společná filozofie, nám umožňuje sdílet společné funkce mezi nástroji pro správu databází a nástroji pro vývoj aplikací.

    Kirill Rannev: Chci dodat něco důležitého. Z komerčního hlediska je velmi důležité, jak naše nástroje dodáváme. Například nové vydání RAD Studio XE 2 Ultimate obsahuje úplnou sadu nástrojů DB Power Studio. Jedná se o velmi výkonnou sadu nástrojů, včetně prostředí pro vytváření dotazů RapidSQL, nástroje pro správu změn DB Change Manager a nástroje pro optimalizaci dotazů DB Optimizer, které vám umožňují provádět důležitou část procesu vývoje a nasazení a spravovat změny v datový model, databáze, kód atd. Jedná se o velmi dobrou a správnou kombinaci technologií.

    DI.: V případě potřeby však mohou vývojáři použít Subversion ke správě verzí zdrojového kódu a DB Change Manager ke správě verzí metadat. Můžete použít profilování kódu a DB Optimizer k optimalizaci serverového kódu, RapidSQL k sestavování a ladění serverového kódu a naše vývojová prostředí k sestavování a ladění aplikací. Tato kombinace technologií v RAD Studio XE Ultimate Edition demonstruje paralely mezi modely vývoje databází a aplikací. Většina vývojářů vytvářejících podnikové aplikace pomocí Delphi a C++Builderu pracuje s databázemi a potřebuje tyto nástroje a RAD Studio XE Ultimate Edition je pro tyto vývojáře skvělou kombinací.

    KP: Moderní uživatel již není pouze uživatelem platformy Windows. Používáme mobilní zařízení, iPhone, iPad, zařízení založená na platformě Android. To znamená, že by vývojáři měli začít cílit na různé platformy bez výrazného navýšení investic do školení – to znamená, že jsou potřeba univerzální nástroje. Je zřejmé, že je nereálné očekávat vzhled univerzálních nástrojů od výrobců platforem a v této věci se můžeme spolehnout pouze na nezávislé výrobce nástrojů. Kde se můžeme na Embarcadero spolehnout?

    DI.: V oblasti podpory platforem máme stále co dělat. Dnes představujeme podporu platformy iOS pro iPhone a iPad, následovat bude podpora pro smartphony Android, Windows 7 a Blackberry. V RAD Studio XE 2 jsme začali budováním platformy FireMonkey pro iOS a později portujeme FireMonkey na další platformy.

    Zároveň existuje velké množství operačních systémů, které podporují dotykové obrazovky (touch screen), pro telefony, tablety a zařízení, stolní počítače a podporu pro ně budeme i nadále přidávat. Kromě toho existují systémy hlasového ovládání, systémy řízení pohybu, biometrické systémy, akcelerometry, takže musíme pokračovat v rozšiřování FireMonkey, aby všichni vývojáři mohli využívat výhod nových platforem. Například zařízení Microsoft Kinect bylo navrženo pro Xbox 360 a nyní existuje odpovídající SDK (Software Development Kit) pro Windows. A již máme příklady, kdy používáme pohyb k ovládání aplikace v podstatě stejným způsobem, jakým bychom normálně používali myš nebo klávesnici.

    Když vytváříte aplikace se spoustou složité grafiky, vytváříte celý svět nových uživatelských rozhraní. Pokud máme co do činění s operačním systémem Windows, zapouzdřujeme jeho Windows API do knihovny VCL (Visual Component Library - knihovna vizuálních komponent, která je nedílnou součástí vývojových nástrojů Delphi a C++ Builder. - Poznámka. vyd.), který lze mimochodem aplikovat dále. A ve FireMonkey zapouzdřujeme API operačního systému. Dnes ale s formami a grafikou manipulujeme mnohem šířeji. Můžete také přidat vlastnosti fyzického prostoru pro animaci a speciální efekty. Kromě toho existuje obrovské množství dalších doplňkových funkcí pro vytváření uživatelských rozhraní, které se chystáme v příštích letech implementovat pro různé platformy, mobilní a tabletová zařízení.

    Microsoft nedávno zveřejnil podrobnosti o Windows 8, který má vyjít za rok. Tyto novinky budeme podporovat v knihovně VCL a v platformě FireMonkey. Delphi je ale vývojový nástroj určený nejen pro Windows, ale také pro Macintosh, iPhone a iPad. Vyvíjíme také naše produkty PHP, podporujeme jQuery Mobile, používáme iOS API k vývoji mobilních klientských aplikací a vytváříme serverové aplikace PHP pomocí průvodců a nástrojů pro generování JavaScriptu, HTML a kaskádových stylů na straně klienta. Můžeme zabalit PHP aplikace a iPhone iOS nativní klientské aplikace, přičemž klient komunikuje s PHP serverem. A to zase bude komunikovat s databázovým serverem a webovými službami – se vším, co je pro podnikání potřeba.

    Vývojové prostředí RadPHP XE2. Vytvořte mobilní webovou aplikaci
    pomocí komponent jQuery Mobile pro iPhone 3G

    Jinými slovy, plánujeme rozšířit možnosti FireMonkey a VCL, včetně podpory mobilních platforem.

    KP: Mohl byste více rozvést platformu FireMonkey?

    DI.: Jak jsem již poznamenal, knihovna VCL vytvořená pro Windows se bude nadále vyvíjet a zlepšovat. Ale dnes, pokud chcete skutečně vyvíjet obchodní aplikace, musíte je vytvářet pro různé platformy. K tomu je určena platforma FireMonkey. Podporuje tvorbu uživatelských rozhraní s vysokým rozlišením, vysoce výkonnou 3D grafiku, vysoké snímkové frekvence a, co je důležité, k tomu využívá GPU.

    Tyto funkce můžete použít při vytváření vědeckých, inženýrských a obchodních aplikací. Takové aplikace se mohou připojovat k databázím pomocí technologie dbExpress, stále využívají nevizuální komponenty známé vývojářům, jako je ClientDataSet nebo DataSource, využívají technologii DataSnap, připojují se k libovolným databázím, SOAP a REST serverům. Můžete vytvářet atraktivní ovládací prvky, tlačítka s boxy, neobvyklé tabulky a další prvky rozhraní, a to ve dvou a třech rozměrech. Hotový 3D model můžete načíst do aplikace a spojit jej s 2D tvarem, ve kterém jej lze otáčet a prohlížet z různých úhlů. Můžete vytvořit datovou kostku nebo 3D obchodní graf a otáčet je pomocí myši, klávesnice nebo dokonce zařízení Kinect, nebo můžete vstoupit do krychle a podívat se na její různé povrchy zevnitř. A to vše lze provést pomocí vysokorychlostního GPU. Stejnou aplikaci pak lze zkompilovat pro jinou platformu, například Mac OS.

    Aplikace obsahující rotující kostku s daty,
    umístěné na jeho okrajích

    Nebo můžete vytvořit 3D tvar od začátku a použít kamery a světla k osvětlení a otáčení částí uživatelského rozhraní. Návrhář formulářů již má vestavěné prostředí pro podporu 3D uživatelského rozhraní přímo v době návrhu.

    V systému Windows můžete použít knihovny Direct2D pro 2D grafiku s vysokým rozlišením a Direct3D pro 3D grafiku. Mac OS používá ke stejnému účelu knihovny Quartz a OpenGL. Pro iOS se používají knihovny Quartz a OpenGL ES. To vše je ale vývojáři skryto – používá platformu FireMonkey, její souřadnicový systém a rozhraní pro programování aplikací, aniž by o těchto knihovnách přemýšlel, a dokáže sestavit stejnou aplikaci pro různé platformy.

    Připomeňme si, co je VCL. VCL je "obal" komponenty kolem Windows API. Zabýváme se prostředky, nabídkami, dialogovými okny, barvami, styly, zprávami systému Windows. FireMonkey je obal pro více platforem, na rozdíl od VCL, zachovává stejné modely událostí a komponent, což vám umožňuje přemýšlet z hlediska událostí (například události OnClick, OnHasFocus, onMouseDown a onKeyDown), ale zpracovávat události na počítačích Macintosh nebo iPhone.

    FireMonkey framework také přichází s kompletním systémem pro animaci prvků uživatelského rozhraní. Rozhodně se nejedná o komplexní animační systém ve stylu Pixaru, ale umožňuje aplikovat efekty, jako je animace bitmap, zvýraznění zaměření prvku uživatelského rozhraní a práce s vektorovou grafikou. Vývojář má k dispozici více než 50 vizuálních efektů: rozmazání, přeměna obrazu na černobílý, rozpouštění, přechody, odraz, vytváření stínů – všechny typy efektů dostupné v moderních GPU, které jsou nyní téměř v každém počítači. Aplikace vytvořená pomocí platformy FireMonkey odesílá příkazy grafickému procesoru, který vykonává veškerou práci při zobrazování grafiky a vytváření uživatelského rozhraní. Centrální procesor je přitom volný pro výpočty a přístupy k operačnímu systému. Vývojář potřebuje pouze správně umístit komponenty.

    Nejzásadnější věcí na platformě FireMonkey je způsob, jakým vytváří uživatelské rozhraní. Existují zařízení pro umístění bitmapové grafiky na prvky rozhraní, jako jsou nabídky, tlačítka a posuvníky. Ve FireMonkey k tomuto účelu používáme vektorovou grafiku GPU. Z programátorského hlediska jsou to všechny stejné ovládací prvky, ale grafický procesor odvede veškerou práci na jejich zobrazení. Můžeme použít styly na ovládací prvky, vytvořit aplikaci, aby vypadala jako aplikace pro Mac OS nebo Windows, vytvořit vlastní styl, aplikovat naše styly na prvky rozhraní (například vytvořit tlačítko obdélníkové nebo kulaté změnou jeho stylu v editoru formulářů) - k tomu má vývojové prostředí editor stylů. Můžete si vytvořit svůj vlastní styl, nebo můžete změnit styl již hotové aplikace.

    FireMonkey Platform - Vývojové nástroje
    a podporované platformy

    Pokud si vzpomínáte, v knihovně VCL byl omezený počet ovládacích prvků - kontejnerů (to znamená, že do nich bylo možné umístit další prvky) a ve FireMonkey je každý ovládací prvek kontejnerem. To znamená, že každý ovládací prvek může obsahovat jakýkoli jiný ovládací prvek. Položky rozevíracího seznamu mohou například obsahovat obrázky, tlačítka, pole úprav a další ovládací prvky. A také můžete umístit komponenty do vrstev.

    Renderovací systém FireMonkey je poměrně flexibilní – umí využívat knihovny Direct2D, Direct3D a OpenGL odesíláním příkazů do GPU. K dosažení téhož ve VCL bylo nutné vygenerovat samostatný off-screen buffer, vytvořit v něm obrázek voláním příslušných funkcí grafické knihovny a ten následně zobrazit na formuláři.

    Příklady grafických efektů podporovaných FireMonkey

    Pokud nemáte GPU, můžete stále používat 2D nebo 3D tvary a používat ovládací prvky FireMonkey. V tomto případě bude platforma FireMonkey používat knihovny GDI+ nebo jiné podobné knihovny a provádět stejné efekty a animace nebo manipulaci s 3D objekty.

    Další funkcí FireMonkey je nový systém pro navázání prvků rozhraní na data, který je otevřený a flexibilní. Ve VCL existují dva typy prvků rozhraní: data-bound a non-data-bound (například TDBEdit a TEdit). Ve FireMonkey může být každý ovládací prvek spojen s daty jakéhokoli typu. Může to být jen výraz, pole z datové sady, data z objektů vytvořených vývojářem nebo výsledky volání metod.

    Při vytváření aplikace do ní navíc můžete načíst hotový 3D model a používat jej – takové schopnosti jsou často vyžadovány jak v obchodních, tak v inženýrských aplikacích. Máme klienta, který vytváří aplikace pro logistiku. Měli vytvořený informační systém s Delphi a v něm aplikaci, která kreslila plán a zobrazovala informace z datových zdrojů. Nedávno udělali zajímavou věc – nakreslili plně automatizovaný 3D sklad v AutoCADu a jejich aplikace umožňuje vidět, jak se automatický nakladač pohybuje skladem a umísťuje zboží do regálů. A rozloží data ze zdrojů na odpovídající obrázek.

    Příklady změn aplikačních stylů

    KP: Jaké formáty 3D modelů jsou aktuálně podporovány?

    DI.: V této verzi podporujeme načítání modelů z AutoCADu, Collada (open source nástroj pro 3D modelování. - Poznámka. vyd.), Maya, formát OBJ podporovaný mnoha prodejci 3D grafiky.

    KP: Jaké další formáty se plánují přidat?

    DI.: Plánujeme přidat 3DS (3D Studio MAX), SVG (obvykle se tento formát používá pro 2D vektorovou grafiku, ale někdy i pro 3D), Google SketchUp. Můžeme podporovat i jiné formáty.

    KP: Vyžaduje použití 3D modelů v aplikacích vytvořených pomocí FireMonkey licenci pro příslušný nástroj pro 3D modelování?

    DI.: Ne, není. Vše, co děláme, je číst soubor modelu. Model importujeme, ale neexportujeme (i když samozřejmě můžete napsat aplikaci, která model uloží ve vašem vlastním formátu). Netvrdíme, že jsme výrobcem nástrojů pro 3D modelování – k tomu můžete použít AutoCAD, 3D Studio Max, Maya nebo jakýkoli jiný nástroj pro 3D modelování a importovat vytvořené modely do našich aplikací.

    KP: Jak výkonné jsou aplikace vytvořené pomocí FireMonkey na moderních hardwarových platformách?

    DI.: Výkon je poměrně vysoký. Například 3D tvar se třemi koulemi a třemi světly lze na MacBooku Pro vykreslit rychlostí 100 snímků za sekundu. A může dosáhnout 600 - záleží na tom, co přesně děláme. Opět vše závisí na výkonu GPU.

    KP: Znamená to, že s pomocí FireMonkey můžete vytvářet hry, které splňují moderní požadavky?

    DI.: Naše vývojové nástroje neumisťujeme jako nástroj pro hry. S využitím vysokého výkonu moderních GPU však můžete vytvářet hry i s FireMonkey – vždyť jsou vytvářeny pomocí Direct3D nebo OpenGL.

    KP: Jakou práci nyní děláte v oblasti podpory rozpoznávání gest a dalších nových věcí? Je taková podpora dostupná?

    DI.: V tomto vydání zatím nemáme podporu gest. Ovládání gesty bude přidáno v budoucí verzi FireMonkey, ale prozatím můžete používat podporu gest zabudovanou v operačním systému.

    Michail Filippenko, ředitel Fast Reports, Inc.

    K.R.: Již jsme si řekli, že technologie FireMonkey má ruské kořeny – její základy vznikly u nás a následně se samotná technologie a její vývojáři spojili do Embarcadera. Obecně je potěšující vidět růst ruské komponenty v RAD Studiu a Delphi. Jde o činnost našeho vývojového centra v Petrohradu a o příspěvek nezávislých ruských vývojářů. Například Rad Studio XE2 obsahuje celosvětově známý a u nás velmi oblíbený generátor sestav FastReport. Pochází z Rostova na Donu.

    KP: Chtěl bych mluvit o kompilátorech. Jaký kompilátor se používá k vytváření aplikací pro iOS?

    DI.: Nemáme vlastní kompilátor Delphi pro iPhone nebo iPad – zatím jsme nevyvinuli kompilátory pro procesory ARM používané v těchto zařízeních. Pro iOS dočasně používáme kompilátor Free Pascal a runtime knihovnu. Ale pracujeme na další generaci kompilátorů, včetně těch pro procesory ARM. Existují však kompilátory pro Windows a Mac OS, protože obě hardwarové platformy jsou založeny na procesorech Intel.

    KP: A co se za poslední dva roky udělalo na poli vývoje překladačů?

    DI.: Máme 32 a 64bitové kompilátory Delphi pro Windows a Mac OS. A pracujeme na nové generaci kompilátorů Delphi a C++. Práce na nich stále pokračují, ale až budou dokončeny, budeme mít kompilátory Delphi pro procesory ARM, platformy Android, Linux a cokoli jiného. A budeme mít 64bitové kompilátory C++ pro Windows a další platformy kompatibilní s nejnovějším jazykovým standardem C++ právě přijatým ISO.

    KP: Co se dnes děje s podporou cloud computingu ve vývojových nástrojích Embarcadero?

    DI.: S RAD Studio XE 2 podporujeme migraci aplikací do cloudu Microsoft Azure nebo Amazon EC2 pomocí Platform Assistant. A máme serverové komponenty pro Cloud Storage for Azure a Amazon S3 pro ukládání tabulek, binárních dat, front zpráv. V předchozí verzi RAD Studio XE jsme také podporovali nasazení aplikací na Amazon EC2, ale nebyla zde podpora úložiště.

    Podpora cloud computingu v RAD Studio XE 2

    KP: Před dvěma lety jste mluvil o novém řešení All-Access. Kolik byla poptávka? Jaké jsou jeho výhody pro systémové integrátory a vývojáře?

    DI.:Řešení All-Access a cloudový nástroj AppWave jsou široce používány po celém světě. Jsou navrženy tak, aby usnadnily používání aplikací naší společnosti i aplikací třetích stran. Ve skutečnosti se jedná o řešení pro správu licencí a aplikací a je vhodné pro velké společnosti. Menší firmy, které nemají vyhrazený tým pro správu aplikací, mohou aplikaci umístit do úložiště, vybrat uživatelská jména z databáze a zpřístupnit tyto aplikace k použití, aniž by si museli pamatovat, kde je licenční klíč a kolik licencí je k dispozici. All-Access a prohlížeč AppWave jsou navrženy tak, aby spravovaly správu verzí i řízení přístupu.

    K.R.: Trh je tak rozmanitý a uživatelé jsou tak různí, že není možné pokrýt všechny potřeby jedním řešením. Proto se snažíme o nejrůznější „obalová“ řešení. Udělali jsme hodně práce na sjednocení licencování, správy licencí a instalace produktů. Tato řada řešení zahrnuje nástroje pro správu licencí a přístupu nejen pro produkty Embarcadero, ale i pro jakékoli další produkty, včetně interního vývoje společností.

    Práce na sdružování vývojových nástrojů do efektivních uživatelských sad stále pokračuje. Máme All-Access – superset, který kombinuje všechny produkty Embarcadero. Pokud si zákazník zakoupí All-Access Platinum verzi, dostává všechny nástroje, které jsou v Embarcaderu. Někdy se ale tato sada ukáže jako nadbytečná, například jsme pro databázové specialisty vyrobili dvě další sady - DB Power Studio Developer Edition a DB Power Studio DBA Edition. Rozdíl mezi nimi je v tom, že pro vývojáře nabízíme RapidSQL, nástroj pro vývoj serverového kódu, a pro správce je v něm zabudován DBArtizan, nástroj pro správu databází, širší produkt než RapidSQL. Pro profesionály máme následující sady All-Access: sada všech produktů, DB Power Studio pro vývojáře, DB Power Studio pro administrátory, ER Studio Enterprise Edition pro architekty a kohokoli, kdo se zabývá modelováním. Existují kombinace pro vývoj aplikací a pro administrátory. Delphi je vývojářský nástroj a má velký smysl přidat k němu vývojové nástroje SQL a nástroje pro optimalizaci. A konečně, DB Change Manager je velmi logický nástroj pro správu složitosti změn, ke kterým dochází v databázích během jejich životního cyklu.

    All-Access je tedy hlavou velké rodiny různých sad produktů.

    KP: Pokud to není tajemství, kdo v Rusku používá All-Access?

    K.R.: Máme zákazníky, kteří si zakoupili All-Access založený na Delphi. Mnoho z nich staví komplexní klient-server systémy s SQL Server a Oracle a okamžitě si oblíbili naši multiplatformní databázovou sadu nástrojů. Máme klientskou společnost, která s Delphi spolupracuje od první verze a před rokem přešla z Delphi na All-Access. Dva nástroje, které budou zaručeně používat všichni vývojáři v této společnosti, jsou Delphi a DBArtisan. A jsou zákazníci, kteří do All-Access přišli ze strany databáze. Jejich primární náplní je správa databází, ale příležitostně také vyvíjejí aplikace. Mezi klienty využívající All-Access patří mediální společnosti, výrobci strojů a další průmyslová odvětví.

    Samostatně bych se chtěl věnovat malým společnostem. Velmi často v malých týmech dělá vše vývojář a taková firma někdy nakoupí velké balíčky potravin All-Access pro jednoho nebo dva vývojáře. Ve velkých týmech není podporováno, aby vývojář plnil například i roli správce databáze, takže tam jsou většinou oblíbené malé balíčky potravin a v malých firmách je tato kombinace povinností celkem přijatelná.

    Delphi Architect je silně prodávaný produkt, který zahrnuje modelovací a programovací nástroje. Počet prodaných kopií je však menší než u verzí Delphi Enterprise, ale je také velký. Podotýkám, že v roce 2010 jsme byli z hlediska tržeb nejlepší zemí, přestože všechny země krizi přežily. Tento růst nebyl způsoben ani tak ekonomickými faktory, jako skutečností, že verze RAD Studio XE, vydaná na konci roku 2009, se ukázala jako velmi žádaná. A přitom očekáváme další růst tržeb.

    Udělali jsme další rozumný krok, který je v Rusku velmi žádaný. Stupeň legalizace různých verzí našich produktů je různý: čím vyšší verze, tím více legalizovaná, protože dříve nebyl software tak aktivně nakupován. Počínaje RAD Studio XE licence pokrývá verze 2010, 2009, 2007 a dokonce i Delphi 7, široce používaný produkt.

    Dnes se vývojáři potýkají s tím, že mají jak nové projekty, tak projekty ve stavu podpory. Velké množství projektů bylo migrováno z dřívějších verzí Delphi na verzi 7 a zůstávají v této verzi, přičemž nadále pracují na relativně malých zdrojích. Nikdo je nepřesouvá na novější verze, ale udržují se životaschopné. A nyní umožňujeme za málo peněz (méně než je cena licence Delphi 7) získat RAD Studio XE i Delphi 7 - to znamená, že legalizujeme vývojáře jak pro implementaci nových projektů, tak pro projekty podpory.

    KP: Jak hodnotíte současný stav komunity Embarcadero?

    DI.: Tato komunita je velká a velmi náročná. Potřebují všechno a okamžitě – jsou to vývojáři. Někdy ale trvá dlouho, než se něco podaří.

    Před několika lety jsme vzali architekturu komponent Windows a umístili ji na linuxové desktopy. Nyní vidíme, že to nebylo správné rozhodnutí. Správným rozhodnutím je vytvořit platformu pro aplikace. Aplikace i pro různé platformy mají nabídky, okna, grafiku, síťový přístup a přístup k zařízením. Různé platformy mohou mít různé modely řízení toku nebo zpracování výjimek, ale v kódu aplikace vidíme stejné zkušební bloky. Naším úkolem je usnadnit vývojářům vytváření podnikových aplikací a jejich kompilování pro platformy, na kterých mají být používány, bez ohledu na to, jak je uspořádán instrukční systém příslušných procesorů a jaké jsou další vlastnosti těchto platforem. A FireMonkey je přesně to, co k vyřešení tohoto problému potřebujete.

    KP: Pokud společnost vytvoří nové zařízení a chce pro něj mít podporu FireMonkey, bylo by to možné?

    DI.: S kompilátory nové generace, které budou mít front-end nezávislý na platformě a back-end závislý na platformě, to bude docela možné. Mezitím pro každý operační systém vytvoříme kompilátor a runtime knihovnu od začátku.

    Každé moderní nové zařízení má obvykle grafické uživatelské rozhraní (mnoho z nich má dvoujádrový procesor a GPU) a standardní sady SDK pro vývojáře. To vše zjednodušuje vytváření podpory zařízení ve FireMonkey. Pokud má nové zařízení pouze knihovny pro 2D grafiku, jako je Quartz, budeme moci takové zařízení podporovat ve FireMonkey, ale to bude trvat přibližně několik měsíců. Hodně však záleží na platformě: ne všechny platformy podporují všechny funkce, například iOS nemá nabídky a dialogová okna a na formuláře takových aplikací nebudete moci umístit odpovídající komponenty.

    KP: Změnilo se něco v politice spolupráce s partnery? Co se dělá pro zvýšení podílu uživatelů vašich produktů? Co se dělá v Rusku?

    DI.: Náš partnerský ekosystém je široký – existují stovky výrobců nástrojů a komponentů, které v našich produktech nenajdeme, a máme program technologického partnerství. Proto je vývojářům k dispozici široká škála komponent, technologií a nástrojů. A řešení, která vytvářejí pro své zákazníky, jsou lepší, než kdyby byly používány pouze naše produkty. A pro prodej máme pobočky v mnoha zemích, prodejce a distributory.

    K.R.: Není pro nás důležitý počet partnerů, ale kvalita práce každého konkrétního partnera. Prozatím se chceme zaměřit na úzkou spolupráci se stávajícími partnery, i když skupina partnerů zůstává otevřená. Máme mnoho partnerů a musíme jim pomoci v oblasti technologií. Spolupracujeme s vývojáři a ti vědí, co chtějí a vědí, co je na trhu dostupné, a schopnosti partnerů tomu musí odpovídat.

    Máme obchodní partnery, kteří do Embarcadera jako oboru podnikání hodně investovali – mají vyškolené specialisty, marketing našich produktů, oddané zaměstnance, kteří jsou za tuto oblast zodpovědní a sledují, co se děje s našimi produkty, ceníkem, marketingem. Přirozeně jsou z hlediska prodeje našich produktů úspěšnější než společnosti, které naše produkty prodávají případ od případu.

    KP: Davide, Kirille, moc vám děkuji za zajímavý rozhovor. Jménem naší publikace a našich čtenářů mi dovolte popřát vaší společnosti další úspěchy při vytváření vašich úžasných nástrojů, které vývojáři tolik potřebují!

    Otázky položila Natalia Elmanova

    Delphi XE2, vydané v září minulého roku, obsahuje rekordní počet inovací.
    Na Habré již byly publikovány krátké recenze funkcí Delphi XE2. Platforma FireMonkey se však zjevně stala nejvýraznější novinkou a zde bych jí rád věnoval malou pozornost.
    Udělal jsem malý výběr odkazů na materiály, které vám, jak doufám, pomohou získat víceméně adekvátní představu o této platformě. Ale nejprve pro ty, kteří to neznají, stručně popíšu, co je FireMonkey.
    Společnost Embarcadero Technologies staví FireMonkey jako platformu pro vytváření plnohodnotných podnikových aplikací pro Windows, Mac a iOS. Tato platforma je zároveň nativní pro každý z operačních systémů, tzn. při spuštění aplikace vytvořené pomocí FireMonkey se nepoužívají žádné další doplňky.
    FireMonkey odkazuje přímo na nativní grafickou knihovnu (z hlediska OS), jako je OpenGL nebo DirectX. Je tedy navrženo nejlepší řešení z pohledu GPU.
    Jádrem architektury FireMonkey je výkonná knihovna tříd (včetně vizuálních komponent).
    Cílová platforma je vybrána během kompilace.
    První verze FireMonkey podporuje pouze Win32, Win64, MacOSX a iOS, Embarcadero ji v budoucnu plánuje přenést na několik dalších platforem.

    Co je třeba vzít v úvahu?

    Přestože platforma FireMonkey poskytuje rozsáhlé nástroje pro vývoj 3D aplikací, nelze ji považovat za herní engine. FireMonkey je umístěn přesně jako platforma pro vývoj obchodních aplikací.
    Nyní je produkt v počáteční fázi svého vývoje. A mnoho funkcí FireMonkey prochází kvalitativními i kvantitativními změnami.

    Doufám, že níže uvedené odkazy vám pomohou pochopit hlavní rysy nové platformy.
    Oficiální stránka produktu na webu Embarcadero (ruština)

    Mezi anglicky psaným materiálem bych rád vyzdvihl sérii (anglicky)

    co vidět?

    Pokud jde o nejnovější verzi Delphi, existuje více než kdy jindy mnoho videomateriálu věnovaného funkcím produktu a metodám práce s ním. Jak oficiální, od společnosti Embarcadero, tak od nezávislých vývojářů. Na YouTube je spousta videí o FireMonkey, stačí použít vyhledávání. Mezi tímto množstvím materiálu vyberu sérii tří videí od Marca Cantu – vstupní stránka RAD in Action, což dává mému výzkumu vektor užitečnosti.

    Pravděpodobně víte, že Embarcadero aktivně propaguje svou novou vizi vytvoření multiplatformního mazlavého - FireMonkey ( říkají tomu framework, ale na současný stav to zní příliš cool). V Runetu se vyhlašuje jedna soutěž za druhou, pořádají se webináře, ai když kvalita těch druhých nechává hodně stranou, aktivita potěší. A teď vlastně k tématu. V rámci poslední soutěže bylo navrženo vyvinout nějakou aplikaci pro učení. A včera se objevilo další dílo, jehož autorem je Evgeny Chmel ( Nevím, jestli se toto jméno skloňuje nebo ne.). Oproti dříve viděným nenáročným „jednokusům“ zde byl učiněn pokus tahat opici za všechny končetiny: stylizace, 3D, shader efekty ( Evangelisté Embarcadero rádi mluví o GPU akcelerované grafice :))). Podívejme se, co z toho vzešlo. Pro ty, kteří webináře nesledovali, udělám malou odbočku. Na jednom z webinářů evangelista Embarcadero Vsevolod Leonov vyprávěl sentimentální příběh o tom, jak musel „restartovat počítač, konkrétně natvrdo“ (toto je citace), kvůli skutečnosti, že Silverlight SDK a emulátor Windows Phone 7 „ nefungovalo“ (toto je citace) na jeho počítači. nelíbilo se jim nastavení grafického adaptéru nebo GPU. Ale aplikace vyvinuté pomocí FireMokey, pokračuje Vsevolod, jsou zcela nenáročné na hardware. Podívejme se, jak nám lhal. Nestranným svědkem bude Process Explorer v15.05 od Marka Rusinoviče. Takže si stáhněte Eugenovu aplikaci a spusťte ( Screenshoty Evgenyho aplikace neposkytuji, jsou na odkazu na jeho práci. Pozor na rozmazaná písma).

    Spustil aplikaci. Podívejme se na spotřebu:

    Neskromné, ale tu „pokročilou techniku“ si můžete odpustit. Přejděte do sekce "Lekce" a vyberte "Lekce 5". Začíná příprava etapy. Tento proces je zdlouhavý trvalo mi něco málo přes minutu, na 3,3GHz čtyřjádrovém Phenom II), prosím, buďte trpěliví. Jeviště je postaveno. Podívejme se na spotřebu:

    Opice byla dobře krmena. Velmi dobře. Nyní zkuste najet myší na tlačítka pro volbu odpovědi. Pocit, že GUI reaguje, je velmi pomalý, že? Podívejte se na graf využití CPU ( Myslím, že si to musíte vyzkoušet sami na svém počítači) – v těchto okamžicích se jeho zatížení blíží 100 % ( Měl jsem ~21,5 % u čtyřjádrového procesoru, což odpovídá 86 % u jednojádrového). Někdo nám ale řekl o GPU akcelerované grafice. Dobře, pojďme dál. Odpovídáme na všechny otázky lekce. Podívejme se na spotřebu:

    Oči nejsou vykulené? Nyní se pro srovnání podívejte, kolik FarCry 3D střílečka spotřebuje při aktivním hraní ( úroveň se nazývá Factory, pokud to někoho najednou zajímá) běžící v režimu celé obrazovky 1440x900:

    Udělejte si vlastní závěry.

    FireMonkey je základní technologií „nového Delphi“. Řekněte nám prosím o cílech, schopnostech a technických aspektech této zásadně nové knihovny. Když se po nějaké době ohlédnete zpět, jak těžké a oprávněné bylo vaše odmítnutí dále rozvíjet super populární VCL?

    Byl zvolen jako hlavní směr vývoje technologie Delphi k dosažení konkrétního cíle – multiplatformního vývoje z jednoho prostředí, založeného na jednotné základně zdrojového kódu a bez nutnosti radikálního přeškolování vývojářů. V rámci dnes již klasického a extrémně populárního VCL to nebylo možné, jeho propojení s WinAPI bylo příliš těsné, dalo by se říci, „na genetické úrovni“.

    Komponenty VCL neměly „abstraktní“ vrstvu mezi funkční úrovní z hlediska rozhraní a jejich mapovacích mechanismů. Funkční úroveň- jak se chová jako ovládací prvek, na jaké události reaguje, jaký druh uživatelské interakce poskytuje. Zobrazit- volání platformově orientovaných renderovacích metod jako druhu obrazu tvořeného rastrovými objekty a vektorovými primitivy. FireMonkey zpočátku implementoval princip striktního rozdělení ovládání na dvě složky: „behaviorální“ a „vizuální“.


    Vsevolod Leonov, Embarcadero Technologies

    První z nich jako celek nebude opakovat ani základy VCL, ale podstatu objektově orientovaného programování. Komponenta je třída, třídy komponent tvoří hierarchii, kde lze rozlišit rodiny a moduly. Třída komponenty má pramálo společného s tím, jak se vykresluje.

    Vizuální "obraz" se tvoří dynamicky, není pevně zakódován ve třídě komponent. Obrázek nebo "styl" ve FireMonkey se načte do komponenty při spuštění aplikace. Máme nějaký funkční rámec pro komponentu a "skin" nebo "plášť" lze změnit, ale proč? Aplikace FireMonkey proto vypadají autenticky na jakékoli platformě – Windows 7, Windows 8, Mac OS, iOS a v blízké budoucnosti i Android. Tradiční monolitická struktura třídy VCL to nemohla poskytnout.

    Zde hraje zvláštní roli technologický přístup. V zásadě můžete vzít knihovnu VCL a „nacpat“ WinAPI všemi ostatními možnými voláními platformy. Na velmi omezené podmnožině komponent to lze stále provést, ale VCL obsahuje několik stovek komponent, takže tento přístup by mohl jednoduše „zabít“ VCL. Bylo rozhodnuto nedotýkat se VCL a vyvinout nové funkce na nové platformě - FireMonkey. Tato technologie má dokonce jistou technickou eleganci – v době sestavování projektu pro konkrétní platformu připojí IDE Delphi potřebný kompilátor a komponenty rozhraní dostanou platformový styl.

    Pro uživatele je to jedno kliknutí myší a stejný zdrojový kód, pro Delphi je to mnoho let tvrdé práce vývojářů vytvořit takovou multiplatformní knihovnu.

    Když bylo jasné, že FireMonkey bude představen jako samostatná nová platforma, bylo třeba zvolit správnou strategii koexistence: Embarcadero nechtělo nijak negativně ovlivnit uživatele VCL. Proto jsme zvolili následující plán: VCL zůstává ideologicky a architektonicky stabilní, aby byla zajištěna co největší kompatibilita a zároveň usnadnil přechod projektů na moderní verze. Vývoj FireMonkey půjde přirozenou a paralelní cestou, aniž by se ohlížel na VCL.

    Slabou stránkou tohoto řešení je poměrně problematická migrace z VCL na FireMonkey v rámci jednoho projektu. Ale na druhou stranu u nového projektu si vývojář může vybrat FireMonkey, aby zajistil multiplatformnost jeho výsledné aplikace. S vydáním XE4 s podporou iOS již můžeme hovořit o silné konkurenční výhodě Delphi pro mobilní vývoj ve firemním prostředí, která bude po implementaci plánované podpory pro Android navýšena.

    Proto jako takový neexistuje žádné výslovné „odmítnutí“ vývoje VCL. V nových verzích se vyvíjí i VCL část Delphi. To zahrnuje podporu pro 64bitovou verzi a zavedení stylů pro vizuální komponenty a implementaci mechanismu pro flexibilní dynamické vazby neboli „binding“ a zahrnutí knihovny FireDAC pro práci s databázemi v projektech VCL. Jen na pozadí obrovského kvalitativního skoku kvůli FireMonkey vypadá pokrok ve VCL poněkud neprojeveně. Ale ať je to jak chce, VCL je nedílnou součástí Delphi a zůstane jí po mnoho let. Přestože vývoj platforem a současný stav věcí v oblasti OS pro desktopové systémy a mobilní zařízení jsou takové, že budoucnost je jednoznačně s FireMonkey.

    Podporu iOS jsme již probrali v rozhovoru, pojďme našim čtenářům povědět o nejnovější podpoře RAD Studio XE4 pro další nejnovější technologie, jako jsou Windows 8 a WinRT, 64bitové systémy, MacOS a tak dále. Můžete vyjmenovat, co dalšího můžete modernímu programátorovi zhýčkanému inovacemi nabídnout?

    Moderní programátor s největší pravděpodobností není „rozmazlený“ inovacemi. U velkých projektů se jakákoli „inovace“ často promění v gigantické množství práce.

    Všichni například dlouho čekali, mnozí se okamžitě vrhli na převod svých kódů na novou platformu. Ukazuje se ale, že ani velmi profesionální týmy na to nejsou připraveny. Kompilovatelný 64bitový kód neznamená funkční. Začaly se objevovat „hříchy mládí“, například pomocí instrukcí předpokládajících velikost adresy 4 bajty. Neexistence kultury provádění testů spojená s technologickou neochotou tento proces v krátké době implementovat.

    A zde – čím větší je projekt, měřeno například počtem řádků zdrojového kódu, tím pečlivěji a vyváženěji programátoři zacházejí s různými druhy inovací od vzhledu „tlačítka“ v rozhraní až po „syntaktický cukr“ v kompilátoru.

    Jedním z těchto „problémových“ úspěchů bylo vydání Windows 8. Osobně jsem jako uživatel PC a pouze moderní IT specialista z Windows 8 nadšený. Ale pro vývojáře, kterým byla jako zátěž zaslána dávka počítačů s Windows 8 s technickými specifikacemi pro vývoj pod novým OS, to znamená určité potíže.

    Snažili jsme se poskytnout podporu pro vývoj pod novým rozhraním tohoto OS co nejpohodlněji a bezbolestně. Proto byly zavedeny speciální styly pro VCL i FireMonkey a programátor může buď přestavět rozhraní aplikace, nebo vytvořit novou aplikaci, která bude vzhledem k „nativní“ pro Windows 8 nerozeznatelná. Samozřejmě je potřeba „nativní“ podpora pro Windows 8 přes WinRT. Ale zde ovlivňuje upřednostňování cílů v moderních podmínkách. Mac OS, iOS, Android v blízké budoucnosti zatím nedávají příležitost mluvit o plné podpoře WinRT v blízké budoucnosti.

    Strategickým cílem Embarcadera je samozřejmě multiplatformní. Vydání RAD Studio XE4 bylo klíčové, především kvůli podpoře iOS. Aktivní programátor využívající VCL může začít vyvíjet pro iOS během několika hodin. I jednoduchá mobilní aplikace může být okamžitě přeměněna na výkonný projekt, který funguje v rámci stávající infrastruktury. Nemyslete si, že je to jen nový kompilátor pro FireMonkey a nový styl, který odpovídá rozhraní iOS.

    To zahrnuje nový vizuální návrhář, vestavěnou podporu pro různé tvarové faktory, knihovny pro přístup k datům, včetně nového FireDAC, a technologii LiveBindings pro flexibilní a dynamickou vazbu na firemní data. Všechny tyto inovace přicházejí současně – pro Windows, pro Mac OS a pro iOS. Operační systém Mac OS se nevyvíjí tak rychle, takže neexistují takové problémy jako přechod z Windows 7 na Windows 8. Ale objevily se Retina displeje a to vyžadovalo zvláštní pozornost. Nyní každá aplikace MacOS vytvořená v Delphi XE4 automaticky obsahuje dva styly – „normální“ a „vysoké rozlišení“.

    Že. stejná aplikace může mít stejně kvalitní „nativní“ rozhraní na jakémkoli stolním počítači od Applu.

    Embarcadero svými novými inovativními verzemi nechce vývojáře „překvapit“, „ohromit“ nebo dokonce „bavit“. Spíše naopak, IT sféra už je plná různých překvapení: nová zařízení, nové platformy, noví uživatelé, jejich nové potřeby, nové scénáře interakce. Přidejte k tomu nové technologie vývoje softwaru a programátoři prostě nebudou mít čas vytvářet nové systémy a na těch stávajících – udělají jen to, co migrují z jednoho prostředí do druhého, ze staré knihovny do nové, z jednoho jazyka do další.

    Ale nepřiznáváme odmítnutí všeho nového. Chceme jen zajistit kontinuitu všeho – kódu, rozhraní, projektu, dokonce i profesionálních dovedností, když se objeví nové platformy a zařízení. Dá se říci, že bojujeme s nezdravým konzervatismem ve vztahu k novým platformám na úkor zdravého konzervatismu ve vývojových nástrojích. Od Embarcadera nečekejte exotické produkty, nestandardní programovací jazyky a výstřední vývojové nástroje.

    U nás vždy najdete vizuální vývoj, klasické jazyky, "nativní" kód a ať jsou cílové platformy pro vaše aplikace vytvořené stejným osvědčeným klasickým způsobem nové.

    Od doby, kdy pojem FireMonkey víceméně zdomácněl, už uplynulo dost, když ne všem vývojářům, tak alespoň těm, kteří používají Delphi. Během této doby byly knihy o FireMonkey, články o FireMonkey, příspěvky o FireMonkey v mnoha blozích. Číst to všechno je velmi zajímavé. Ale žádná teorie nemůže nahradit praxi. A stejně jako mnozí předtím jsem měl nutkání zkusit něco napsat pomocí FireMonkey.

    Při tom však nastal problém. Z nějakého důvodu jsem se rozhodl, že jen potřebuji realizovat nějaký nepříliš složitý pracovní projekt.

    Abych vysvětlil, proč se to pro mě ukázalo jako problém, bude to chtít (člověk chce psát, lyrickou) odbočku. Exkurze do mé minulosti vývojáře. Vysvětlete některé mé názory na programování pomocí Delphi.

    Musím říct, že Delphi jsem začal používat na Windows 3.1, tedy od první verze. A od té doby studuji VCL. Nastudováno takříkajíc v originále. Sledoval, oslovoval, sledoval zdrojové kódy. Znovu a znovu.

    Je známo, že v různých dobách sada komponent dodávaných s Delphi obsahovala komponenty třetích stran, které měly vyplnit mezery ve VCL a které pravděpodobně prošly nějakým druhem kontroly kvality, než byly zahrnuty. Některé z těchto komponentů jsou dodávány dodnes. Vezměte si stejného Indyho. Nechci nikoho urazit, je to čistě můj osobní názor, který platí i pro mě jako vývojáře komponent: ani jedna sada nebyla tak hluboce promyšlena a implementována, jako obrovský a rozmanitý VCL. Ne, nepředstírám, že jsem konečná pravda, a samozřejmě v samotném VCL je mnoho chyb, rozhodnutí, která způsobují nedorozumění, způsobují odmítnutí a se kterými chcete nesouhlasit. Vždy jsem ale nabyl dojmu určitého jediného stylu. Ve VCL je podle mého názoru krásné a silné jádro, které podporuje celý design Delphi a kolem kterého je postavena jak softwarová infrastruktura, tak samotná vývojářská komunita. Z velké části díky VCL, opět, podle mého názoru, zvěsti o smrti Delphi jsou stále fámy. A když byly součástí dodávky VCL komponenty třetích stran, bylo to okamžitě patrné, byly jiné.

    Ale pak přijde chvíle a slyším, že VCL je technologie, která je zastaralá. Technologie, která by měla zůstat v minulosti. Vývojáři by měli implementovat všechny své nové projekty na FireMonkey, ale o starých ... bylo by hezké je přenést na nové koleje. FireMonkey je všude a vždy. A slyším to z různých zdrojů. A docela vytrvale. Ne, nikdo nezabije VCL. zůstává s námi. Už ale není jedničkou. Měl by být náhradníkem. Alespoň tak chápu, co se o budoucnosti produktu říká.

    V zásadě toto zarovnání chápu. Byl absolvován kurz pro multiplatformní, a co je důležitější, pro multiplatformní. Koneckonců, co je VCL? Knihovna vizuálních komponent. Knihovna vizuálních komponent. S tím možná nebudete souhlasit. Například jsem vždy považoval mnoho nevizuálních komponent, nikoli komponent, ale pouze tříd, za nedílnou součást VCL a obrovské množství tříd a komponent třetích stran - pokračování, rozšíření VCL . No, nemohu považovat dědice TDatasetu za součást VCL. I když například termín DBExpress Library říká, že to jakoby není VCL. Embarcadero zjevně skutečně rozděluje monolitické, z mého pohledu VCL, na řadu samostatných knihoven. Ne, samozřejmě, ne zcela odděleně, ale přesto. A pokud se podíváte na tento úhel pohledu, FireMonkey má nahradit vizuální část VCL (jak mám stále nazývat kompletní knihovnu tříd a komponent, možná Borland Component Library?).

    Na čem jsou vizuální komponenty knihovny postaveny? Kolem nízkoúrovňových základních prvků poskytovaných operačním systémem. Kliky oken, fonty, samotná okna, vstupní prvky, zprávy, kontexty zařízení a mnoho dalšího – to nejsou koncepty knihovny dodávané s Delphi, ale koncepty operačního systému. Ano, správně, Windows. A pokud chcete vybudovat multiplatformní knihovnu, pak je logické odmítnout infrastrukturu nabízenou operačním systémem, který spouští program napsaný pomocí knihovny.

    Přesně o to se FireMonkey snaží. Snaží se vytvořit infrastrukturu založenou na základních mechanismech podporovaných různými operačními systémy, které mohou nahradit službu, kterou samotné operační systémy nabízejí.

    Mnozí si pamatují, že se snažili vyrobitmultiplatformní nejen knihovnu, ale i samotné Delphi. Paralelně s Delphi 6 byl vydán produkt Kylix a knihovna CLX. To vše bylo provedeno proto, aby bylo možné vyvíjet pro Linux. Linux však nemá mnoho základních konceptů vytváření oken GUI jako Windows. Rozhraní okna pro Linux obecně není přirozeným jevem. Toto je volitelná aplikace. A musel jsem napsat nějakou syntetickou knihovnu. S jeho pomocí bylo možné napsat program pro Windows i Linux. Dodnes si však pamatuji ten pocit, nikoli zklamání, spíše nepříjemného nepohodlí, které jsem zažil, když jsem se pokusil použít analogy vizuálních komponent z CLX. Začalo mi hodně chybět. To, co jsem při vývoji s VCL dělal bez přemýšlení, se ukázalo být obtížné, velmi odlišné nebo jednoduše nemožné pomocí CLX.

    Při přechodu z BDE na DBExpress jsem se cítil přibližně stejně. Starý, známý z Field Test-a BDE (Borland ho už tehdy používal v Quattro Pro pro Windows a v Paradoxu pro Windows a jmenovalo se to ODAPI a pak IDAPI a byl to podle mého názoru ořez nad ODBC od Microsoftu) prohlásil za zastaralou technologii, která by měla v nových projektech ustoupit nové knihovně. Vždy mi v DBExpressu zpočátku něco chybělo, hlavně znalosti.

    Zároveň nechci v žádném případě nadávat ani kritizovat výše uvedené knihovny ani rozhodnutí, která vedla k jejich vzhledu. Je to jen o mých dojmech, někdy i prvních dojmech.

    Nyní je možná trochu jasnější, proč rozhodnutí napsat malý pracovní projekt pomocí FireMonkey přineslo řadu problémů. Dlouhá léta se ve vývoji projektů, projektů a projektů utvářel určitý stereotyp, určitá šablona, ​​co a jak dělat. A v mém případě jsem musel čelit tomu, že je potřeba změnit šablonu. Protože vše, na co jste zvyklí používat VCL, nemůžete přenést do projektu postaveného na FireMonkey.

    Na začátku projektu jsem zažil určitý pocit deja vu. Totiž pocit nepohodlí. Například obvyklé vstupní prvky nemají mnoho vlastností. Triky, které se v praxi pevně usadily, založené na tricích souvisejících se znalostí některých vlastností operačního systému, v novém kontextu nefungují. Nemluvě o tom, že některé komponenty se radikálně změnily.

    No, další důležitá nuance. Jaké projekty se obvykle musí dělat v práci, pokud to (práce) nesouvisí s psaním kompilátorů, modelováním systémů nebo čímkoli jiným vysoce vědeckým? Myslím, že pro většinu je to o vývoji něčeho, co zahrnuje použití databází. Navíc, něco vysoce vědeckého může také využít služeb poskytovaných DBMS.

    Zde mě čekala další přepadení. Z nějakého důvodu, když v praxi narazíte na to, že FireMonkey neobsahuje prvky zaměřené na práci s daty uloženými v databázi, nejste na to tak úplně připraveni (mírně řečeno). I když už jsem o tom četl mnohokrát a víte (teoreticky), co byste měli použít. Řeč je o Live Bindings.

    Nechci se pouštět do sporu o to, zda by skuteční cool programátoři měli používat komponenty s vědomím db nebo neměli zobrazovat, upravovat a nakonec ukládat. Což opět není ani špatné, ani dobré. Mně se to tak prostě stalo.

    Tímto končí můj příspěvek o prvních dojmech. Další na řadě jsou příběhy o tom, co a jak při práci na projektu překonali.