Firemonkey du simple au complexe. Qu’est-ce que FireMonkey ? manque de support pour la personnalisation des classes natives

Qu’est-ce que FireMonkey ?


FireMonkey (FMX) est un framework de développement multiplateforme pour les systèmes de bureau (Windows, Mac OS + le support du serveur sous Linux est prévu dans un avenir proche) et mobile (iOS et Android) utilisant le langage Delphi/C++.

Particularités :

  • base de code unique pour toutes les plateformes ;

  • tout contrôle (composant visuel) peut être un conteneur (parent) pour d'autres composants ;

  • la présence d'une disposition relative très poussée (20 types) de composants sur la forme ;

  • LiveBinding vous permet de connecter tout type de données ou d'informations à n'importe quelle interface utilisateur ou objet graphique ;

  • présence de styles de forme/composant ;

  • L'aperçu multi-appareils vous permet de personnaliser la présentation visuelle pour chaque plateforme ;

  • FireUI Live Preview - affiche l'apparence de l'application sur des appareils réels en temps réel.

Possibilités :

  • utilisation de l'API native de chaque plateforme, ainsi que la possibilité d'appeler des bibliothèques natives tierces ;

  • interaction avec tous les capteurs (GPS, accéléromètre, boussole, Bluetooth (y compris LE) et autres) ;

  • prise en charge des notifications push, IoT ;

  • prise en charge des requêtes HTTP asynchrones ;

  • prise en charge de la plupart des bases de données (MsSQL, MySql, Oracle, PostgreSQL, MongoDB, etc.) ;

  • travailler avec Cloud Service (Amazon, Azure);

  • Prise en charge des services Android.

Inconvénients (actuellement) :

  • manque de support pour la personnalisation des classes natives ;

  • la mise en œuvre de choses spécifiques est soit impossible (widgets, extensions (iOS), etc.) soit une danse avec un tambourin est nécessaire (service de fond, message diffusé, etc.) ;

  • La personnalisation de l'écran Splash (écran initial) fait, pour le moins, défaut ;

  • Les contrôles FMX utilisent leur propre rendu (visualisation, dessin), qui est purement visuellement similaire au rendu natif ;

  • l'utilisation de contrôles natifs implique de grands mouvements corporels ;

  • lorsqu'il y a beaucoup d'imbrication de composants, des choses incroyables se produisent : l'application plante à divers endroits, perd le focus, se bloque, etc. ;

  • le contenu informationnel du débogage d'une application sur les plateformes mobiles est nul ;

  • les descriptions d'erreurs sur les plateformes mobiles se réduisent à l'inutile « Erreur 0x00000Х » ;

  • le temps de compilation veut être le meilleur pour les projets de taille moyenne et grande ;

  • la nécessité d'utiliser un fichier pour peaufiner les applications mobiles pour chaque plateforme ;

  • pas de prise en charge de l'architecture Intel Atom ;

  • prix insuffisant par rapport aux concurrents.

Avantages:

  • développement très actif du produit et de la communauté ces derniers temps, soutien à de plus en plus de nouvelles technologies ;

  • la présence d'un grand nombre de composants gratuits et commerciaux ;

  • La vitesse de l'application est très proche du natif ;

  • éditeur visuel et environnement en général très avancés, présence de styles ;

  • la possibilité de tester une application sur Win, puis de la déployer ensuite sur des appareils, ce qui accélère considérablement le développement ;

  • changez de mode/de plateforme d’un simple mouvement du poignet ;

  • PAServer permet une interaction facile avec MacO lors du développement pour Apple OS ;

  • Prise en charge graphique 3D prête à l'emploi.

En conclusion, je tiens à dire qu'au cours des deux dernières années, FireMonkey est devenu un outil professionnel pour le développement multiplateforme d'applications métier et bien plus encore. De nombreuses lacunes sont progressivement résolues et à chaque version, le produit devient plus moderne et autonome, et le scepticisme existant à l'égard du langage Delphi lui-même, associé à de nombreuses années de stagnation, disparaît également. Écrire de nouveaux projets dans FireMonkey est « sûr » et prometteur.

Sorti en septembre de l'année dernière, Delphi XE2 contient un nombre record d'innovations.
De brefs aperçus des capacités de Delphi XE2 ont déjà été publiés sur Habré. Mais, évidemment, l'innovation la plus marquante est la plateforme FireMonkey, et j'aimerais ici y prêter un peu d'attention.
J'ai fait une petite sélection de liens vers des supports qui, je l'espère, vous aideront à vous faire une idée plus ou moins adéquate de cette plateforme. Mais d’abord, pour ceux qui ne sont pas au courant, je vais vous expliquer brièvement ce qu’est FireMonkey.
Embarcadero Technologies positionne FireMonkey comme une plateforme de création d'applications métier riches pour Windows, Mac et iOS. De plus, cette plateforme est native à chaque OS, c'est-à-dire Lors de l'exécution d'une application créée à l'aide de FireMonkey, aucun module complémentaire supplémentaire n'est utilisé.
FireMonkey est directement lié à une bibliothèque graphique native (du point de vue du système d'exploitation) telle qu'OpenGL ou DirectX. Ainsi, la meilleure solution d'un point de vue GPU est proposée.
Le cœur de l'architecture FireMonkey est une puissante bibliothèque de classes (y compris des composants visuels).
La plateforme cible est sélectionnée lors du processus de compilation.
La première version de FireMonkey ne prenait en charge que Win32, Win64, MacOSX et iOS, mais Embarcadero prévoit de la porter sur plusieurs autres plates-formes à l'avenir.

Que devriez-vous considérer?

Bien que la plateforme FireMonkey fournisse des outils complets pour développer des applications 3D, elle ne doit pas être considérée comme un moteur de jeu. FireMonkey se positionne spécifiquement comme une plateforme de développement d'applications métiers.
Le produit en est actuellement aux premiers stades de son évolution. Et beaucoup Fonctionnalité FireMonkey subit des changements, à la fois qualitatifs et quantitatifs.

J'espère que les liens ci-dessous vous aideront à comprendre les principales fonctionnalités de la nouvelle plateforme.
Page produit officielle sur le site Embarcadero (russe)

Parmi le matériel en langue anglaise, je voudrais souligner la série (anglais)

Que voir?

Concernant dernière version Delphi, il existe plus que jamais de matériel vidéo dédié aux capacités du produit et à la manière de l'utiliser. Tous deux officiels, d'Embarcadero et de développeurs indépendants. Il existe de nombreuses vidéos sur FireMonkey sur YouTube, vous pouvez simplement utiliser la recherche. Parmi cette abondance de matériel, je soulignerai une série de trois vidéos de la page d'accueil de Marco Cantu - RAD in Action, donnant ainsi à mes recherches un vecteur d'utilité.

Vous savez probablement qu'Embarcadero promeut activement sa nouvelle vision de création d'une interface graphique multiplateforme - FireMonkey ( ils appellent ça un framework, mais pour son état actuel, ça a l'air trop cool). Les concours les uns après les autres sont annoncés sur RuNet, des webinaires sont organisés, et bien que la qualité de ces derniers laisse beaucoup à désirer, l'activité est encourageante. Passons maintenant au sujet. Dans le cadre du dernier concours, il a été proposé de développer une sorte d'application d'apprentissage. Et hier, un autre ouvrage est apparu, écrit par Evgeniy Chmel ( Je ne sais pas si ce nom de famille est enclin ou non). Contrairement aux simples « monoformes » vus précédemment, on a ici tenté de tirer le singe par tous ses membres : stylisation, 3D, effets shader ( Les évangélistes d'Embarcadero adorent parler de graphiques accélérés par GPU :))). Voyons ce qu'il en est advenu. Pour ceux qui n'ont pas regardé les webinaires, je ferai une petite digression. Lors de l'un des webinaires, l'évangéliste Embarcadero Vsevolod Leonov a raconté une histoire déchirante sur la façon dont il a dû « redémarrer l'ordinateur, en particulier, durement » (c'est une citation) en raison du fait que le SDK Silverlight et Émulateur Windows Le téléphone 7 « ne fonctionnait pas » (c'est une citation) sur son ordinateur parce que... Ils n'aimaient pas la carte vidéo ou les paramètres du GPU. Mais les applications développées à l'aide de FireMokey, poursuit Vsevolod, ne sont pas du tout exigeantes matériel. Voyons comment il nous a menti. Process Explorer v15.05 de Mark Rusinovich sera notre témoin impartial. Alors, téléchargez l'application Evgeniy et lancez ( Je ne fournis pas de captures d'écran de l'application d'Evgeniy, elles sont disponibles sur le lien vers son travail. Notez les polices floues).

Lancement de l'application. Regardons la consommation :

Impudique, mais tu peux pardonner” technologie avancée" Allez dans la section « Leçons » et sélectionnez « Leçon 5 ». La préparation de l'étape commence. Ce processus est long ( Cela m'a pris un peu plus d'une minute, sur un Phenom II quad-core avec une fréquence de 3,3 GHz), sois patient. La scène est construite. Regardons la consommation :

Le singe était bien nourri. Très bien. Essayez maintenant de déplacer votre souris sur les boutons d’options de réponse. On a l’impression que l’interface graphique réagit très lentement, n’est-ce pas ? Regardez le graphique d'utilisation du processeur ( Je veux dire, tu devrais l'essayer toi-même, sur ton ordinateur) – à ces moments sa charge approche 100% ( J'avais ~21,5% pour un processeur quad-core, ce qui équivaut à 86% pour un monocœur). Mais quelqu’un nous a parlé des graphiques accélérés par GPU. Bon, passons à autre chose. Nous répondons à toutes les questions de la leçon. Regardons la consommation :

Vos yeux sont écarquillés ? Regardez maintenant, à titre de comparaison, combien le jeu de tir 3D FarCry consomme avec un gameplay actif ( le niveau s'appelle Factory, si quelqu'un est intéressé) fonctionnant en mode plein écran 1440x900 :

Tirez vos propres conclusions.

Plus de trois ans se sont écoulés depuis que la division CodeGear, responsable de la création d'outils de renommée mondiale tels que Delphi, C++Builder et JBuilder, ainsi que du système de gestion de bases de données Interbase, a rejoint Embarcadero Technologies, connue pour ses outils. pour la conception et l'administration de bases de données, et deux ans depuis que nous avons discuté dans les pages de notre magazine à quoi s'attendre dans le développement d'outils si populaires auprès des utilisateurs. Développeurs russes. Nous avons demandé à David Intersimone, vice-président des relations avec les développeurs et évangéliste en chef chez Embarcadero Technologies, et à Kirill Rannev, chef du bureau de représentation d'Embarcadero Technologies, de parler des nouveautés réalisées dans ce domaine au cours des deux dernières années et de ce à quoi s'attendre. le futur proche, la Russie. Pour nos plus jeunes lecteurs, nous vous informerons que ce n'est pas la première interview que David et Kirill accordent à ComputerPress - notre coopération dure depuis la deuxième décennie. Et depuis à peu près le même nombre d'années, nous publions périodiquement des revues d'outils de gestion de bases de données, dans lesquelles une grande attention est accordée aux produits Embarcadero.

Presse informatique : David, votre division fait partie d'Embarcadero depuis trois ans. Il y a deux ans, vous étiez enthousiaste à l'idée de rejoindre une entreprise proche de vos objectifs et de votre esprit. Est-ce que quelque chose a changé pendant cette période ? Vous et vos collègues avez toujours le même enthousiasme ?

Oui, je suis toujours très enthousiaste. Le principal changement survenu depuis que nous faisons partie de la société Embarcadero est que de nombreux investissements ont été réalisés dans le développement de Delphi. Le nombre de personnes travaillant sur des outils de développement a augmenté, ainsi que le nombre de technologies que nous pouvons développer ou, si nécessaire, acquérir.

La version de RAD Studio XE 2, que nous prévoyons de présenter à Moscou, est la plus grande version de ce produit avec d'énormes capacités et un grand nombre de plates-formes prises en charge depuis la première version de Delphi, créée pour la version 16 bits de Windows et qui était un produit innovant combinant approche par composants et compilation en code machine. Désormais, nous prenons en charge le développement non seulement pour Windows, mais également pour Macintosh, sans oublier le développement Web et la création d'applications pour appareils mobiles, et ces applications pour différentes plates-formes peuvent avoir un seul code.

La nouvelle plate-forme de développement - FireMonkey - est le fruit d'un effort conjoint entre Embarcadero et la société russe KSDev récemment acquise auprès d'UlanUde, un fabricant de composants pour les graphiques vectoriels, DirectX et OpenGL, les technologies d'effets graphiques et Composants Delphi en utilisant GPU avec PixelShader 2.0. Nous avons acquis la société KSDev (voir ksdev.ru) il y a un an et avons commencé collaborations pour créer un outil de développement multiplateforme incluant la plateforme de développement d'applications FireMonkey avec des composants Delphi et C++Buider pour la création d'interface utilisateur d'application, l'intégration de bases de données, le traitement graphique GPU et l'intégration du système d'exploitation.

À l'aide de FireMonkey, vous pouvez créer une application qui s'exécute ensemble sur le CPU et le GPU, puis utiliser différents compilateurs et bibliothèques d'exécution (RTL) pour la compiler pour Windows, Mac OS ou iOS. Au lieu d'apprendre à programmer à l'aide de différentes bibliothèques graphiques et d'apprendre les API de différentes plates-formes dotées de systèmes de coordonnées différents et de capacités différentes, les développeurs utilisant Delphi et C++Builder peuvent utiliser la même approche basée sur les composants, en éditant visuellement les formulaires et en se connectant aux bases de données en déplacer le composant avec la souris. Il s’agit d’une façon fondamentalement nouvelle de créer des applications qui s’exécutent sur différentes plates-formes, et c’est l’avenir. Si vous souhaitez ajouter la prise en charge d'autres systèmes d'exploitation et plates-formes à votre application, vous n'avez pas besoin de la concevoir et de la développer à nouveau - il vous suffit de la recompiler.

Nous créons de nouveaux compilateurs qui génèrent du code natif. Il existe aujourd'hui des compilateurs Delphi pour 32 et 64 bits Versions Windows, versions 32 bits de Mac OS 10. Et nous travaillons sur la prochaine génération de compilateurs Delphi et C++Builder qui vous permettront de créer du code machine hautes performances pour ces plates-formes et d'autres telles qu'Android ou Linux, et conservez la même conception, les mêmes composants, le même code en utilisant différents compilateurs et bibliothèques d'exécution.

Comme vous pouvez le constater, j’ai suffisamment de raisons d’être enthousiaste. Et les développeurs que je rencontre dans le monde savent qu'Embarcadero investit massivement dans Delphi et C++Builder, ainsi que dans les outils de développement PHP.

PC : Quels succès avez-vous obtenus dans l’intégration des outils des deux sociétés au cours des deux dernières années ? Quels sont les projets d'Embarcadero pour l'avenir dans ce domaine ?

DI.: Au moment où CodeGear a rejoint Embarcadero, la société disposait d'équipes de développement à Toronto, Monterrey et en Roumanie, nous étions et sommes toujours situés à Scotts Valley et en Russie, à Saint-Pétersbourg. Embarcadero disposait d'outils pour les développeurs et les administrateurs de bases de données, CodeGear disposait d'outils pour le développement d'applications, mais ces derniers utilisaient également des bases de données. La fusion d'entreprises est une combinaison d'expertise, de connaissances dans le domaine des bases de données, de l'optimisation du code, notamment du code serveur. La combinaison d'entreprises a également conduit à la création d'un nouveau produit, AppWave, une technologie spéciale permettant de transformer une application Windows classique en quelque chose de très facile à utiliser (comme des applications pour iPhone ou d'autres appareils). AppWave vous permet de ne pas installer une application, mais simplement de la sélectionner et de la lancer à partir du serveur de stockage d'applications préparé (app), et elle sera exécutée sur l'ordinateur de l'utilisateur sans apporter de modifications à son registre et à sa zone système. système de fichiers. À propos, le navigateur d'applications AppWave est écrit en Delphi. Embarcadero utilise Dephi pour son propre développement et notre expertise en développement d'applications.

Application iPhone (iOS) créée par
en utilisant la plateforme FireMonkey

Vous pouvez également utiliser l'intégration de nos outils de développement et DB Optimizer pour optimiser les requêtes SQL lors de la création d'applications. En transmettant le code SQL directement dans DB Optimizer, vous pouvez le profiler, le tester et renvoyer une version optimisée à votre environnement de développement. L'expertise d'Embarcadero en matière de bases de données a également amélioré la technologie DataSnap. Grâce aux développeurs de Toronto, nous avons acquis beaucoup de connaissances sur l'architecture des systèmes et bases de données multi-niveaux. Nous disposons désormais d'une expertise commune dans la création de code serveur et de procédures stockées dans les deux sociétés. Nous disposons d'outils tels que RapidSQL et DB Change Manager, ainsi que d'environnements de développement qui simplifient la création de code serveur. Par exemple, les technologies Code Insight et Code Completion ont permis la création de technologies SQL Insight et SQL Completion. Nos approches communes de création de code client et serveur, notre philosophie commune, nous permettent de donner des fonctionnalités communes aux outils de gestion de bases de données et aux outils de développement d'applications.

Kirill Rannev : Je veux ajouter quelque chose d'important. D'un point de vue commercial, la manière dont nous livrons nos outils est très importante. Par exemple, nouvelle version RAD Studio XE 2 Ultimate comprend la suite complète d'outils DB Power Studio. Il s'agit d'un ensemble d'outils très puissants, comprenant l'environnement de développement de requêtes RapidSQL, l'outil de gestion des modifications DB Change Manager et l'outil d'optimisation des requêtes DB Optimizer, vous permettant d'effectuer une partie importante du processus de développement et de déploiement en gérant les modifications de le modèle de données, la base de données, le code, etc. Il s’agit d’une très bonne et correcte combinaison de technologies.

DI.: Mais si nécessaire, les développeurs peuvent utiliser Subversion pour le contrôle de version. code source et DB Change Manager pour la gestion des versions des métadonnées. Vous pouvez utiliser le profilage de code et DB Optimizer pour optimiser le code serveur, RapidSQL pour créer et déboguer le code serveur, et nos environnements de développement pour créer et déboguer des applications. Cette combinaison de technologies dans RAD Studio XE Ultimate Edition démontre les parallèles entre les modèles de développement de bases de données et d'applications. La plupart des développeurs créant des applications métier avec Delphi et C++Builder travaillent avec des bases de données et ont besoin de ces outils, et RAD Studio XE Ultimate Edition est une excellente combinaison pour ces développeurs.

PC : L’utilisateur moderne n’est plus uniquement un utilisateur de la plateforme Windows. Nous utilisons des appareils mobiles, iPhone, iPad, appareils basés sur la plateforme Android. Cela signifie que les développeurs doivent commencer à cibler différentes plates-formes sans augmenter considérablement les investissements dans la formation, c'est-à-dire qu'il faut des outils universels. Il est évidemment irréaliste d’attendre l’émergence d’outils universels de la part des fabricants de plateformes, et en la matière on ne peut compter que sur des fabricants d’outils indépendants. Comment peut-on compter sur Embarcadero ?

DI.: Nous avons encore beaucoup à faire en termes de support de plateforme. Aujourd'hui, nous introduisons le support de la plateforme iOS pour iPhone et iPad, puis les smartphones basés sur la plateforme Android, Windows 7 et Blackberry recevront notre support. Dans RAD Studio XE 2, nous avons commencé par créer la plateforme FireMonkey pour iOS, puis nous apporterons FireMonkey sur d'autres plateformes.

Dans le même temps, il existe un grand nombre de systèmes d'exploitation prenant en charge les écrans tactiles pour les téléphones, ordinateurs tablettes et les appareils de bureau, et nous continuerons à ajouter leur prise en charge. De plus, il y a la voix, le mouvement, systèmes biométriques, accéléromètres, nous devons donc continuer à développer FireMonkey afin que tous les développeurs puissent profiter des nouvelles plates-formes. Par exemple, l'appareil Microsoft Kinect a été conçu pour la Xbox 360 et il existe désormais un SDK (Software Development Kit) correspondant pour Windows. Et nous avons déjà des exemples dans lesquels nous utilisons le mouvement pour contrôler une application de la même manière qu’une souris ou un clavier serait normalement utilisé.

Lorsque vous créez des applications comportant de nombreux graphiques complexes, vous générez tout un monde de nouvelles interfaces utilisateur. S'il s'agit d'une salle d'opération Système Windows, nous encapsulons son application interface logicielle API Windows dans la bibliothèque VCL (Visual Component Library - une bibliothèque de composants visuels qui fait partie des outils de développement Delphi et C++Builder. - Note éd.), qui, d'ailleurs, peut être utilisé davantage. Et dans FireMonkey, nous encapsulons l'API du système d'exploitation. Mais aujourd’hui, nous manipulons les formes et les graphiques de manière beaucoup plus large. Vous pouvez également ajouter des propriétés physiques à l'espace pour l'animation et les effets spéciaux. En outre, il existe un grand nombre d'autres fonctionnalités supplémentaires permettant de créer des interfaces utilisateur que nous allons mettre en œuvre au cours des prochaines années pour différentes plates-formes, appareils mobiles et tablettes.

Microsoft a récemment annoncé des informations détailléesà propos de Windows 8, qui devrait sortir dans un an. Nous prendrons en charge ces innovations dans la bibliothèque VCL et la plateforme FireMonkey. Mais Delphi est un outil de développement conçu non seulement pour Windows, mais aussi pour Macintosh, iPhone et iPad. Nous développons également nos produits PHP, prenons en charge jQuery Mobile, utilisons l'API iOS pour développer des applications client mobiles et créons des applications PHP côté serveur à l'aide d'assistants et d'outils pour générer du JavaScript, du HTML et des feuilles de style en cascade côté client. Nous pouvons créer des packages à partir d'applications PHP et d'applications clientes en code natif pour iPhone iOS, et un tel client communiquera avec serveur PHP. Et lui, à son tour, communiquera avec le serveur de base de données et avec les services Web - avec tout ce qui est nécessaire à l'entreprise.

Environnement de développement RadPHP XE2. Création d'une application web mobile
utilisation des composants jQuery Mobile pour iPhone 3G

En d'autres termes, nous prévoyons d'étendre les capacités de FireMonkey et de VCL, y compris la prise en charge des plateformes mobiles.

PC : Pourriez-vous nous en dire plus sur la plateforme FireMonkey ?

DI.: Comme je l'ai déjà noté, la bibliothèque VCL créée pour Windows continuera à se développer et à s'améliorer. Mais aujourd’hui, si l’on souhaite développer de véritables applications métiers, il faut les créer pour différentes plateformes. C'est pour cela que la plateforme FireMonkey est conçue. Il prend en charge la création d'interfaces utilisateur haute résolution et hautes performances Graphiques 3D, une fréquence d'images élevée et, surtout, utilise un processeur graphique pour cela.

Vous pouvez utiliser ces fonctionnalités lors de la création d’applications scientifiques, techniques et commerciales. De telles applications peuvent se connecter à des bases de données à l'aide de la technologie dbExpress, toujours en utilisant des composants non visuels familiers aux développeurs, tels que ClientDataSet ou DataSource, utiliser la technologie DataSnap, se connecter à n'importe quelle base de données, serveurs SOAP et REST. Vous pouvez créer des contrôles attrayants, des boutons avec des cases, des tableaux inhabituels et d'autres éléments d'interface, en deux et trois dimensions. Vous pouvez charger un modèle 3D fini dans l'application et le connecter à une forme 2D dans laquelle vous pouvez le faire pivoter et le visualiser sous différents angles. Vous pouvez créer un cube de données ou un diagramme métier 3D et le faire pivoter à l'aide de votre souris, de votre clavier ou même d'un appareil Kinect, ou vous pouvez entrer dans le cube et regarder ses différentes surfaces de l'intérieur. Et tout cela peut être fait à l’aide d’un GPU haute vitesse. La même application peut ensuite être compilée pour une autre plateforme, telle que Mac OS.

Une application contenant un cube de données rotatif,
placé sur ses bords

Vous pouvez également créer une forme 3D à partir de zéro et utiliser des caméras et des lumières pour éclairer et faire pivoter des parties de l'interface utilisateur. Le concepteur de formulaires dispose déjà d'un environnement intégré pour prendre en charge une interface utilisateur 3D lors de la conception.

Sous Windows pour travailler avec des graphiques en deux dimensions haute résolution Vous pouvez utiliser les bibliothèques Direct2D et pour les graphiques 3D - Direct3D. Sous Mac OS, les bibliothèques Quartz et OpenGL sont utilisées aux mêmes fins. Pour iOS, les bibliothèques Quartz et OpenGL ES sont utilisées. Mais tout cela est caché au développeur - il utilise la plate-forme FireMonkey, son système de coordonnées et son interface de programmation d'applications, sans penser à ces bibliothèques, et peut compiler la même application pour différentes plates-formes.

Rappelons ce qu'est la VCL. VCL est un wrapper de composants autour de l'API Windows. Nous traitons des ressources, des menus, des boîtes de dialogue, des couleurs, des styles, des messages Windows. Étant un wrapper multiplateforme, contrairement à VCL, FireMonkey conserve les mêmes modèles d'événements et de composants, vous permettant de penser en termes d'événements (par exemple, les événements OnClick, OnHasFocus, onMouseDown et onKeyDown), mais gère les événements Macintosh ou iPhone.

La plateforme FireMonkey est également livrée avec système complet animation des éléments de l'interface utilisateur. Ce n'est certainement pas un système d'animation complet de style Pixar, mais il permet des effets tels que l'animation bitmap, la mise en évidence d'un élément de l'interface utilisateur et le travail avec graphiques vectoriels. Plus de 50 effets visuels sont à la disposition du développeur : flou, transformation de l'image en noir et blanc, dissolution, transitions, réflexion, création d'ombres - tous types d'effets disponibles dans les processeurs graphiques modernes, que l'on retrouve désormais dans presque tous les ordinateurs. Une application construite à l'aide de la plate-forme FireMonkey envoie des commandes au GPU, qui effectue tout le travail d'affichage des graphiques et de création de l'interface utilisateur. Où CPU gratuit pour les calculs et les appels au système d'exploitation. Le développeur ne peut que placer correctement les composants.

L'élément le plus fondamental de la plate-forme FireMonkey est la façon dont elle construit l'interface utilisateur. Il existe des possibilités d'hébergement graphiques raster sur les éléments de l'interface tels que les menus, les boutons et les barres de défilement. Chez FireMonkey, nous utilisons à cette fin des graphiques vectoriels alimentés par GPU. Du point de vue de la programmation, ce sont toujours les mêmes commandes, mais tout le travail d'affichage est effectué par le processeur graphique. Nous pouvons appliquer des styles aux contrôles, faire ressembler l'application à une application pour Mac OS ou Windows, créer notre propre style, appliquer nos propres styles aux éléments de l'interface (par exemple, rendre un bouton rectangulaire ou rond en changeant son style dans l'éditeur de formulaire ) - pour cela Il existe un éditeur de style dans l'environnement de développement. Vous pouvez créer votre propre style ou modifier le style d’une application déjà terminée.

Plateforme FireMonkey - Outils de développement
et plates-formes prises en charge

Si vous vous en souvenez, la bibliothèque VCL avait un nombre limité de contrôles - des conteneurs (c'est-à-dire vous permettant d'y placer d'autres éléments), et dans FireMonkey, chaque contrôle est un conteneur. Cela signifie que chaque contrôle peut contenir n’importe quel autre contrôle. Par exemple, les éléments d'une liste déroulante peuvent contenir des images, des boutons, des champs d'édition et d'autres contrôles. Vous pouvez également placer des composants dans des calques.

Le système de rendu FireMonkey est assez flexible : il peut utiliser les bibliothèques Direct2D, Direct3D et OpenGL, en envoyant des commandes au GPU. Pour obtenir la même chose dans VCL, vous deviez générer un tampon hors écran séparé, y créer une image en appelant les fonctions de la bibliothèque graphique appropriée, puis l'afficher sur le formulaire.

Exemples d'effets graphiques pris en charge par FireMonkey

Si vous ne disposez pas de GPU, vous pouvez toujours appliquer des formes 2D ou 3D et utiliser les contrôles FireMonkey. Dans ce cas, la plateforme FireMonkey utilisera les bibliothèques GDI+ ou d'autres bibliothèques similaires et effectuera les mêmes effets et animations ou manipulations d'objets 3D.

Une autre fonctionnalité de FireMonkey est nouveau système reliant les éléments d’interface aux données, ouvert et flexible. Il existe deux types d'éléments d'interface dans la VCL : liés aux données et non liés aux données (par exemple, TDBEdit et TEdit). Dans FireMonkey, chaque contrôle peut être associé à des données de n'importe quel type. Il peut s'agir d'une expression simple, d'un champ d'un ensemble de données, de données provenant d'objets créés par le développeur ou des résultats d'appels de méthode.

De plus, lors de la création d'une application, vous pouvez y charger un modèle 3D prêt à l'emploi et l'utiliser - de telles capacités sont souvent requises dans les applications commerciales et d'ingénierie. Nous avons un client qui crée des applications pour la logistique. Ils avaient Système d'Information, construit à l'aide de Delphi, et dedans - une application qui dessinait un plan et affichait des informations à partir de sources de données. Ils ont récemment fait quelque chose d'intéressant : ils ont dessiné un entrepôt 3D entièrement automatisé dans AutoCAD, et leur application vous permet de voir comment le chariot élévateur automatisé se déplace dans l'entrepôt et place les marchandises sur les étagères. Et ils mettent les données des sources sur l'image correspondante.

Exemples de changements de styles d'application

PC : Quels formats de modèles 3D sont actuellement pris en charge ?

DI.: Dans cette version, nous prenons en charge le chargement de modèles depuis AutoCAD, Collada (un outil de modélisation 3D open source. - Note modifier.), Maya, un format OBJ pris en charge par de nombreux fournisseurs de graphiques 3D.

PC : Quels autres formats comptez-vous ajouter ?

DI.: Nous prévoyons d'ajouter 3DS (3D Studio MAX), SVG (généralement ce format est utilisé pour les graphiques vectoriels 2D, mais parfois pour la 3D), Google SketchUp. Peut-être prendrons-nous en charge d'autres formats.

PC : L'utilisation de modèles 3D dans des applications créées avec FireMonkey nécessite-t-elle une licence pour l'outil de modélisation 3D approprié ?

DI.: Non, cela ne l'exige pas. Tout ce que nous faisons est de lire le fichier modèle. Nous importons le modèle, mais ne l'exportons pas (même si, bien sûr, vous pouvez écrire une application qui enregistre le modèle dans votre propre format). Nous ne prétendons pas être un fabricant d'outils de modélisation 3D - pour cela, vous pouvez utiliser AutoCAD, 3D Studio Max, Maya ou tout autre outil de modélisation 3D, et importer les modèles créés dans nos applications.

PC : Dans quelle mesure les applications créées avec FireMonkey sont-elles performantes sur les plates-formes matérielles modernes ?

DI.: La productivité est assez élevée. Par exemple, le rendu d'une forme 3D avec trois sphères et trois sources de lumière Macbook Pro peut être effectué à une vitesse de 100 images par seconde. Ou cela peut atteindre 600 - cela dépend de ce que nous faisons exactement. Encore une fois, tout dépend de la puissance du GPU.

PC : Cela signifie-t-il que vous pouvez créer des jeux modernes en utilisant FireMonkey ?

DI.: Nous ne positionnons pas nos outils de développement comme des outils de jeux. Cependant, en profitant des hautes performances des GPU modernes, vous pouvez créer des jeux à l'aide de FireMonkey - après tout, ils sont créés à l'aide de Direct3D ou d'OpenGL.

PC : Quel travail effectuez-vous actuellement dans le domaine de la reconnaissance des gestes et d'autres nouveautés ? Un tel soutien est-il disponible ?

DI.: Nous n'avons pas encore de prise en charge des gestes dans cette version. Les contrôles gestuels seront ajoutés dans une prochaine version de FireMonkey, mais en attendant, vous pouvez utiliser la prise en charge des gestes intégrée au système d'exploitation.

Mikhaïl Filippenko, directeur de Fast Reports, Inc.

K.R. : Nous avons déjà dit que la technologie FireMonkey a des racines russes - ses fondations ont été créées dans notre pays, puis la technologie elle-même et ses développeurs ont rejoint Embarcadero. En général, il est gratifiant de voir la croissance du composant russe dans RAD Studio et Delphi. Cela inclut les activités de notre centre de développement à Saint-Pétersbourg et la contribution de développeurs russes indépendants. Par exemple, Rad Studio XE2 inclut le générateur de rapports FastReport - connu dans le monde entier et très populaire dans notre pays. Il est originaire de Rostov-sur-le-Don.

PC : Je voudrais parler des compilateurs. Quel type de compilateur est utilisé lors de la création d’applications iOS ?

DI.: Nous n'avons pas notre propre compilateur Delphi pour iPhone ou iPad : nous n'avons pas encore développé de compilateurs pour les processeurs ARM utilisés dans ces appareils. Pour iOS, nous utilisons temporairement le compilateur Free Pascal et la bibliothèque d'exécution. Mais nous travaillons sur la prochaine génération de compilateurs, notamment pour les processeurs AWP. Mais il existe des compilateurs pour Windows et Mac OS, puisque les deux plates-formes matérielles sont basées sur des processeurs Intel.

PC : Qu'a été fait dans le domaine de la création de compilateurs au cours des deux dernières années ?

DI.: Nous disposons de compilateurs Delphi 32 et 64 bits pour Windows et Mac OS. Et nous travaillons sur une nouvelle génération de compilateurs Delphi et C++. Ils sont encore en chantier, mais lorsqu'ils seront terminés, nous aurons des compilateurs Delphi pour les processeurs ARM, les plates-formes Android, Linux et tout le reste. Et nous aurons des compilateurs C++ 64 bits pour Windows et d'autres plates-formes, compatibles avec la dernière norme de langage C++ qui vient d'être adoptée par l'ISO.

PC : Que se passe-t-il aujourd'hui avec la prise en charge du cloud computing dans les outils de développement d'Embarcadero ?

DI.: Dans RAD Studio XE 2, nous prenons en charge le déplacement d'applications vers le cloud Microsoft Azure ou Amazon EC2 à l'aide de Platform Assistant. Et nous disposons de composants serveur pour Cloud Storage pour Azure et Amazon S3 pour stocker des tables, des données binaires et des files d'attente de messages. DANS la version précédente Avec RAD Studio XE, nous prenions également en charge le déploiement d'applications sur Amazon EC2, mais il manquait de prise en charge du stockage.

Prise en charge du cloud computing dans RAD Studio XE 2

PC : Il y a deux ans, vous parliez de la nouvelle solution All-Access. Quelle était sa popularité ? Quels sont ses avantages pour les intégrateurs de systèmes et les développeurs ?

DI.: La solution All-Access et l'outil cloud AppWave sont largement utilisés dans le monde entier. Ils sont conçus pour faciliter l'utilisation de nos propres applications et de celles de tierces parties. En fait, il s'agit d'une solution de gestion des licences et de l'utilisation des applications, pratique pour grandes entreprises. Les petites entreprises qui ne disposent pas d'équipes dédiées chargées de la gestion des applications peuvent placer l'application dans un référentiel, sélectionner les noms d'utilisateur dans la base de données et rendre ces applications disponibles sans avoir à se rappeler où. clé de licence et combien de licences sont disponibles. All-Access et le navigateur AppWave sont conçus pour gérer à la fois la gestion des versions et le contrôle d'accès.

K.R. : Le marché est si diversifié et les utilisateurs si différents qu’il est impossible de couvrir tous les besoins avec une seule solution. C'est pourquoi nous nous efforçons de proposer des solutions d'emballage diverses. Nous avons fait beaucoup de travail pour unifier les méthodes de licence, de gestion des licences et d'installation des produits. Cette gamme de solutions comprend des outils de gestion des licences et du provisionnement non seulement pour les produits Embarcadero, mais également pour tout autre produit, y compris les développements internes de l'entreprise.

Les travaux visant à regrouper les outils de développement dans des kits efficaces pour les utilisateurs sont toujours en cours. Nous avons All-Access - un surensemble qui combine tous les produits Embarcadero. Si un client achète All-Access Platinum, il reçoit tous les outils trouvés dans Embarcadero. Mais parfois, cet ensemble s'avère redondant : par exemple, pour les spécialistes des bases de données, nous avons créé deux autres ensembles - DB Power Studio Developer Edition et DB Power Studio DBA Edition. La différence entre eux est que pour le développeur, nous proposons RapidSQL - un outil pour développer du code serveur, et pour l'administrateur, il existe DBArtizan intégré - un outil d'administration de base de données, un produit plus large que RapidSQL. Pour les professionnels, nous disposons des suites All-Access suivantes : une suite qui comprend tous les produits, DB Power Studio pour les développeurs, DB Power Studio pour les administrateurs, ER Studio Enterprise Edition pour les architectes et toute personne impliquée dans la modélisation. Il existe des combinaisons pour le développement d'applications et pour les administrateurs. Delphi est un outil de développement et il est tout à fait logique d'y ajouter des outils de développement et d'optimisation SQL. Enfin, DB Change Manager est un outil logique pour gérer la complexité des modifications apportées aux bases de données au cours de leur cycle de vie.

Ainsi, All-Access est à la tête d’une grande famille d’ensembles de produits différents.

PC : Si ce n’est pas un secret, qui en Russie utilise All-Access ?

K.R. : Nous avons des clients qui ont acheté All-Access basé sur Delphi. Beaucoup d'entre eux créent des systèmes client-serveur complexes avec serveur SQL et Oracle, et ils ont immédiatement apprécié nos outils de bases de données multiplateformes. Nous avons une entreprise cliente qui travaille avec Delphi depuis la première version, et il y a un an, elle est passée de en utilisant Delphià l’ensemble All-Access. Deux outils que tous les développeurs de cette société sont assurés d'utiliser sont Delphi et DBArtisan. Et il y a des clients qui sont venus vers All-Access du côté de la base de données. Leur tâche principale est d'administrer des bases de données, mais ils développent aussi parfois des applications. Les clients utilisant All-Access comprennent des sociétés de médias, des sociétés d'ingénierie et d'autres secteurs.

Par ailleurs, je voudrais me concentrer sur les petites entreprises. Très souvent, dans de petites équipes, le développeur fait tout, et une telle entreprise achète parfois de grands ensembles de produits All-Access pour un ou deux développeurs. Dans les grandes équipes, il n'est pas encouragé qu'un développeur joue également, par exemple, le rôle d'administrateur de base de données, donc les petits ensembles de produits y sont généralement populaires, mais dans les petites entreprises, une telle combinaison de responsabilités est tout à fait acceptable.

Delphi Architect est un produit très commercialisé qui comprend des outils de modélisation et de programmation. Le nombre d'exemplaires vendus est cependant inférieur à celui de la version Delphi Enterprise, mais il est également important. Je voudrais souligner qu'en 2010, nous nous sommes révélés être le meilleur pays en termes de volume de ventes, malgré le fait que tous les pays ont connu une crise. Cette croissance n'était pas tant associée à des facteurs économiques, mais au fait que la version de RAD Studio XE, sortie fin 2009, s'est avérée très populaire. Et pour l’instant, nous prévoyons une nouvelle croissance des ventes.

Nous avons pris une autre mesure raisonnable, extrêmement populaire en Russie. Le degré de légalisation des différentes versions de nos produits est différent : plus la version est élevée, plus elle est légalisée, car plus tôt logiciel pas si activement acheté. À partir de RAD Studio XE, la licence couvre les versions 2010, 2009, 2007 et même Delphi 7, un produit largement utilisé.

Aujourd'hui, les développeurs sont confrontés au fait qu'ils ont à la fois de nouveaux projets et des projets à l'appui. Un grand nombre de projets ont été transférés de versions précédentes Delphi à la version 7 et reste dans cette version, continuant à travailler sur des ressources relativement réduites. Personne ne les déplace vers des versions plus récentes, mais ils sont maintenus dans un état viable. Et maintenant, nous vous permettons d'obtenir à la fois RAD Studio XE et Delphi 7 pour peu d'argent (moins que le prix d'une licence Delphi 7) - c'est-à-dire que nous légalisons le développeur à la fois pour la mise en œuvre de nouveaux projets et pour les projets de support.

PC : Comment évaluez-vous l’état actuel de la communauté Embarcadero ?

DI.: Cette communauté est nombreuse et très exigeante. Ils ont besoin de tout immédiatement : ce sont des développeurs. Mais parfois, il faut beaucoup de temps pour bien faire quelque chose.

Il y a quelques années, nous avons pris l'architecture des composants Windows et l'avons mise sur les postes de travail Linux. Nous voyons maintenant que ce n’était pas la bonne décision. La bonne solution consiste à créer une plateforme d’applications. Les applications, même sur différentes plates-formes, disposent de menus, de fenêtres, de graphiques, d'un accès au réseau et à l'accès aux appareils. Différentes plates-formes peuvent avoir différents modèles contrôle de flux ou gestion des exceptions, mais dans le code de l'application, nous voyons les mêmes blocs try. Notre travail consiste à permettre aux développeurs de créer plus facilement des applications métier et de les compiler pour les plates-formes sur lesquelles elles sont destinées à être utilisées, quelle que soit la structure du jeu d'instructions des processeurs correspondants et les autres fonctionnalités de ces plates-formes. Et FireMonkey est exactement ce dont vous avez besoin pour résoudre ce problème.

PC : Si une entreprise crée un nouvel appareil et souhaite qu'il soit pris en charge dans FireMonkey, cela sera-t-il possible ?

DI.: Avec la nouvelle génération de compilateurs, qui auront un front-end indépendant de la plate-forme et un back-end dépendant de la plate-forme, cela sera tout à fait possible. En attendant, pour chaque système d'exploitation, nous créons un compilateur et une bibliothèque d'exécution à partir de zéro.

En règle générale, tout nouvel appareil moderne possède un graphique interface utilisateur(beaucoup d'entre eux ont processeur double cœur et GPU) et des SDK standards pour les développeurs. Cela facilite la création de la prise en charge des appareils dans FireMonkey. Si le nouvel appareil ne dispose que de bibliothèques pour les graphiques bidimensionnels comme Quartz, nous pourrons prendre en charge un tel appareil dans FireMonkey, mais cela prendra environ plusieurs mois. Cependant, beaucoup dépend de la plateforme : toutes les plateformes ne prennent pas en charge toutes les fonctionnalités, par exemple, iOS n'a pas de menus et Boîtes de dialogue et vous ne pourrez pas placer les composants correspondants sur les formulaires de ces candidatures.

PC : Quelque chose a-t-il changé dans la politique de collaboration avec les partenaires ? Que fait-on pour augmenter la part d’utilisateurs de vos produits ? Que fait-on en Russie ?

DI.: Notre écosystème de partenaires est vaste : il existe des centaines de fabricants d'outils et de composants que l'on ne trouve pas dans nos produits, et nous disposons d'un programme de partenariat technologique. Ainsi, une large gamme de composants, de technologies et d’outils sont à la disposition des développeurs. Et les solutions qu'ils créent pour leurs clients sont meilleures que s'ils utilisaient uniquement nos produits. Et pour les ventes, nous avons des bureaux dans de nombreux pays, des revendeurs et des distributeurs.

K.R. : Ce qui est important pour nous n'est pas le nombre de partenaires, mais la qualité du travail de chaque partenaire spécifique. Pour l’instant, nous souhaitons nous concentrer sur une collaboration étroite avec les partenaires existants, même si le bassin de partenaires reste ouvert. Nous avons de nombreux partenaires et nous devons les aider sur le plan technologique. Nous travaillons avec des développeurs, et ils savent ce qu'ils veulent, et ils savent ce qui est disponible sur le marché, et les capacités des partenaires doivent correspondre à cela.

Nous avons des partenaires commerciaux qui ont sérieusement investi dans Embarcadero en tant que secteur d'activité - ils ont des spécialistes formés, commercialisant nos produits, des employés dévoués responsables de cette ligne et surveillant ce qui se passe avec nos produits, liste de prix, marketing. Naturellement, elles réussissent mieux à vendre nos produits que les entreprises qui vendent nos produits occasionnellement.

PC : David, Kirill, merci beaucoup pour cette interview intéressante. Permettez-moi, au nom de notre publication et de nos lecteurs, de souhaiter à votre entreprise davantage de succès dans la création de vos outils incroyables dont les développeurs ont tant besoin !

Questions posées par Natalia Elmanova

FireMonkey est la technologie de base du « nouveau Delphi ». Veuillez nous parler des objectifs, des capacités et des aspects techniques de cette bibliothèque fondamentalement nouvelle. Après un certain temps, avec le recul, à quel point votre refus de développer davantage le très populaire VCL a-t-il été difficile et justifié ?

Elle a été choisie comme direction principale du développement de la technologie Delphi pour atteindre un objectif spécifique : le développement multiplateforme à partir d'un environnement unique, basé sur une base de code source unique, sans nécessiter une reconversion radicale des développeurs. Dans le cadre de la VCL désormais classique et très populaire, cela était impossible ; son lien avec WinAPI était trop étroit, pourrait-on dire, « au niveau génétique ».

Les composants VCL ne disposaient pas de couche « abstraite » entre le niveau fonctionnel au niveau de l'interface et les mécanismes d'affichage. Niveau fonctionnel— comment il se comporte en tant que contrôle, à quels événements il réagit, quel type d'interaction utilisateur il fournit. Afficher— appeler des méthodes de visualisation orientées plate-forme comme une certaine image formée d'objets raster et de primitives vectorielles. FireMonkey a initialement mis en œuvre le principe de diviser strictement le contrôle en deux composantes : « comportementale » et « visuelle ».


Vsevolod Leonov, Embarcadero Technologies

Le premier ne répétera généralement même pas les bases de la VCL, mais l'essence de la programmation orientée objet. Un composant est une classe ; les classes de composants forment une hiérarchie où les familles et les modules peuvent être distingués. La classe d'un composant est vaguement liée à la façon dont il est rendu.

L’« image » visuelle est formée de manière dynamique ; elle n’est pas écrite de manière rigide dans la classe de composants. L'image ou le « style » dans FireMonkey est chargé dans le composant au démarrage de l'application. Nous avons une sorte de cadre fonctionnel pour le composant, et la « peau » ou le « revêtement » peut être modifié, mais pourquoi ? C'est pour que les applications FireMonkey semblent authentiques sur n'importe quelle plate-forme - Windows 7, Windows 8, Mac OS, iOS et, dans un avenir proche, Android. C’est quelque chose que la structure de classes monolithique traditionnelle de la VCL ne pouvait pas offrir.

Ici, l'approche technologique joue un rôle particulier. En principe, vous pouvez prendre la bibliothèque VCL et la « remplir » avec WinAPI et tous les autres appels de plateforme possibles. Cela peut encore être fait sur un sous-ensemble très limité de composants, mais la VCL contient plusieurs centaines de composants, cette approche pourrait donc simplement « tuer » la VCL. Il a été décidé de ne pas toucher à VCL, mais de développer de nouvelles fonctionnalités sur une nouvelle plateforme - FireMonkey. Cette technologie Il a même une certaine élégance technique - au moment de l'assemblage du projet pour une plate-forme spécifique, l'IDE Delphi connecte le compilateur requis et les composants de l'interface reçoivent un style de plate-forme.

Pour l'utilisateur, il s'agit d'un clic de souris et du même code source ; pour Delphi, il faudra de nombreuses années de travail acharné de la part des développeurs pour créer une telle bibliothèque multiplateforme.

Lorsqu'il est devenu clair que FireMonkey serait introduit en tant que nouvelle plate-forme distincte, il a fallu choisir la bonne stratégie de coexistence : Embarcadero ne voulait en aucun cas avoir un impact négatif sur les utilisateurs de VCL. Nous avons donc choisi le plan suivant : VCL reste idéologiquement et architecturalement stable pour garantir la plus grande compatibilité possible, facilitant ainsi la migration des projets vers des versions modernes. Le développement de FireMonkey suivra un chemin naturel et parallèle, sans égard à la VCL.

Le point faible de cette solution est la migration assez problématique de VCL vers FireMonkey au sein d'un même projet. Mais pour un nouveau projet, un développeur peut choisir FireMonkey pour assurer le multiplateforme de son application résultante. Après la sortie de XE4 avec support iOS, nous pouvons déjà parler des brillants avantages concurrentiels de Delphi pour commencer développement mobile dans l'environnement de l'entreprise, qui sera augmenté après la mise en œuvre du support Android prévu.

Par conséquent, il n'y a pas de « refus » évident quant au développement de la VCL en tant que telle. Dans les nouvelles versions, la partie VCL de Delphi se développe également. Cela inclut la prise en charge 64 bits, l'introduction du style pour les composants visuels, la mise en œuvre d'un mécanisme de connexions dynamiques flexibles ou « liaison » et l'inclusion de la bibliothèque FireDAC pour travailler avec des bases de données dans les projets VCL. C'est juste que, comparé au saut qualitatif géant réalisé par FireMonkey, les progrès de la VCL semblent quelque peu ternes. Quoi qu’il en soit, VCL fait partie intégrante de Delphi et le restera pendant de nombreuses années. Bien que l'évolution des plateformes et l'état actuel des choses dans le domaine des OS pour systèmes de bureau et les appareils mobiles sont tels que l'avenir appartient définitivement à FireMonkey.

Dans l'interview, nous avons déjà discuté de la prise en charge d'iOS, parlons à nos lecteurs de la prise en charge d'autres technologies récentes du dernier RAD Studio XE4, par exemple, telles que Windows 8 et WinRT, les systèmes 64 bits, MacOS, etc. Pouvez-vous énumérer ce que vous pouvez offrir d'autre au programmeur moderne gâté par les innovations ?

Très probablement, un programmeur moderne n'est pas « gâté » par les innovations. Pour projets majeurs toute « innovation » se traduit souvent par une quantité de travail gigantesque.

Par exemple, tout le monde a attendu longtemps, beaucoup se sont immédiatement précipités pour traduire leurs codes en nouvelle plateforme. Mais il s’avère que même les équipes très professionnelles ne sont pas prêtes pour cela. Compiler du code 64 bits ne signifie pas travailler. Les « péchés de jeunesse » ont commencé à faire surface, par exemple, en utilisant des instructions supposant une taille d'adresse de 4 octets. Manque de culture de test, associé à un manque de préparation technologique pour mettre en œuvre ce processus dans un court laps de temps.

Et ici - plus le projet est grand, mesuré, par exemple, par le nombre de lignes de code source, plus les programmeurs sont prudents et équilibrés avec divers types d'innovations allant de l'apparition d'un « bouton » dans l'interface au « sucre syntaxique » dans le compilateur.

L'une de ces réalisations « problématiques » a été la sortie de Windows 8. Personnellement, en tant qu'utilisateur de PC et simple informaticien moderne, je suis ravi de Windows 8. Mais pour les développeurs qui ont reçu en charge un lot d'ordinateurs exécutant Windows 8 avec des spécifications pour le développement sous le nouveau système d'exploitation, cela signifie certaines difficultés.

Nous avons essayé de fournir un support de développement pour la nouvelle interface de ce système d'exploitation aussi confortablement et sans douleur que possible. Par conséquent, des styles spéciaux ont été introduits pour VCL et FireMonkey, et le programmeur peut soit reconstruire l'interface de l'application, soit créer une nouvelle application qui ne se distinguera pas de celle « native » de Windows 8. apparence. Bien entendu, une prise en charge « native » de Windows 8 via WinRT est nécessaire. Mais cela est affecté par la priorisation des objectifs dans conditions modernes. Mac OS, iOS, Android dans un futur proche ne nous permettent pas encore de parler d'un support complet de WinRT dans un futur proche.

L’objectif stratégique d’Embarcadero est bien entendu multiplateforme. La sortie de RAD Studio XE4 a été cruciale, principalement en raison de sa prise en charge d'iOS. Un programmeur existant utilisant VCL peut commencer à développer pour iOS en quelques heures. Même simple application mobile peut être instantanément transformé en un projet puissant fonctionnant au sein de l’infrastructure existante. Ne pense pas que c'est facile nouveau compilateurà FireMonkey et un nouveau style pour assurer la conformité avec l’interface iOS.

Cela inclut un nouveau concepteur visuel, une prise en charge intégrée de divers facteurs de forme, des bibliothèques d'accès aux données, notamment le nouveau FireDAC, et la technologie LiveBindings pour une liaison flexible et dynamique avec les données d'entreprise. Toutes ces innovations arrivent simultanément – ​​pour Windows, Mac OS et iOS. système opérateur Mac OS ne se développe pas si rapidement, il n'y a donc aucun problème tel que la transition de Windows 7 à Windows 8. Mais ils sont apparus Écrans Retina, et cela nécessitait une attention particulière. Désormais, toute application MacOS créée dans Delphi XE4 inclut automatiquement deux styles : « normal » et « haute définition ».

Que. la même application peut avoir la même interface « native » de haute qualité sur n’importe quel ordinateur de bureau d'Apple.

Embarcadero ne veut pas « surprendre », « étonner » ou même « divertir » les développeurs avec ses nouvelles versions innovantes. Au contraire, la sphère informatique regorge déjà de diverses surprises : de nouveaux appareils, de nouvelles plateformes, de nouveaux utilisateurs, leurs nouveaux besoins, de nouveaux scénarios d'interaction. Ajoutez à cela de nouvelles technologies de développement logiciel, et les programmeurs n'auront tout simplement pas le temps de créer de nouveaux systèmes et des systèmes existants - tout ce qu'ils feront, c'est migrer d'un environnement à un autre, d'une ancienne bibliothèque à une nouvelle, d'un langage à un autre.

Mais nous ne prétendons pas rejeter toute nouveauté. Nous voulons simplement assurer la continuité de tout : code, interface, projet, et même des compétences professionnelles lorsque de nouvelles plateformes et appareils apparaissent. On pourrait dire que nous luttons contre le conservatisme malsain concernant les nouvelles plateformes grâce à un conservatisme sain dans les outils de développement. Ne vous attendez pas à des produits exotiques, des langages de programmation non standard ou des outils de développement extravagants d'Embarcadero.

Chez nous, vous trouverez toujours du développement visuel, des langages classiques, du code « natif », et laissez les plates-formes cibles de vos applications, créées de la même manière classique éprouvée, être nouvelles.




Haut