توضیحات مؤلفه Firemonkey میمون آتشین شروع کنید. زمینه. احساس؛ عقیده؛ گمان. پیشنمایش زنده FireUI - نمای برنامه را در دستگاههای واقعی در زمان واقعی نمایش دهید
بیش از سه سال از زمانی که بخش CodeGear مسئول ایجاد ابزارهای مشهور جهانی مانند Delphi، C++Builder و JBuilder و همچنین Interbase DBMS، بخشی از شرکت Embarcadero Technologies شد، که به ابزارهایش برای طراحی و مدیریت پایگاههای اطلاعاتی معروف است، میگذرد، و دو سال از زمانی که ما در صفحات ابزارهای روسی توسعهدهنده در زمینه محبوب مجلههای خود در مورد آنچه انتظار میرود توسعه دهند، بحث کردیم. ما از دیوید اینترسیمون، معاون روابط توسعهدهنده و مبشر ارشد Embarcadero Technologies، و Kirill Rannev، رئیس دفتر نمایندگی Embarcadero Technologies در روسیه خواستیم تا در مورد چیزهای جدید در این زمینه در دو سال گذشته و انتظارات در آینده نزدیک صحبت کنند. برای جوانترین خوانندگان ما، به شما اطلاع خواهیم داد که این با اولین مصاحبه ای که دیوید و کریل با ComputerPress انجام می دهند بسیار فاصله دارد - همکاری ما برای دهه دوم ادامه دارد. و برای تقریباً همین تعداد سال، ما به صورت دوره ای بررسی ابزارهای مدیریت پایگاه داده را منتشر می کنیم که در آنها توجه زیادی به محصولات Embarcadero شده است.
ComputerPress:دیوید، بخش شما اکنون سه سال است که بخشی از Embarcadero است. دو سال پیش، شما در مورد این واقعیت که آن را به بخشی از یک شرکت نزدیک به شما در هدف و روح تبدیل شده است، پر از اشتیاق بودید. آیا در این مدت چیزی تغییر کرده است؟ آیا شما و همکارانتان همین شور و شوق را دارید؟
بله، من هنوز مشتاق هستم. تغییر اصلی که از زمانی که ما بخشی از شرکت Embarcadero شدیم این است که سرمایه گذاری زیادی در توسعه دلفی صورت گرفته است. تعداد کارمندانی که روی ابزارهای توسعه کار می کنند افزایش یافته است، تعداد فناوری هایی که می توانیم توسعه دهیم یا در صورت لزوم به دست آوریم افزایش یافته است.
انتشار RAD Studio XE 2 که قصد داریم آن را در مسکو به نمایش بگذاریم، بزرگترین نسخه از این محصول با قابلیت های عظیم و تعداد زیادی پلتفرم پشتیبانی شده از زمان اولین نسخه دلفی است که برای ویندوز 16 بیتی و محصول ابتکاری سابق که رویکرد مؤلفه و کامپایل را با کدهای اصلی ترکیب می کرد، ایجاد شده است. در حال حاضر ما از توسعه نه تنها برای ویندوز بلکه برای مکینتاش پشتیبانی میکنیم، نه از توسعه وب و ایجاد برنامههای کاربردی برای دستگاههای تلفن همراه، و این برنامهها برای پلتفرمهای مختلف میتوانند یک کد واحد داشته باشند.
پلتفرم توسعه جدید FireMonkey با همکاری Embarcadero و شرکت روسی KSDev مستقر در Ulan-Ude که اخیراً خریداری شده است، سازنده قطعات گرافیکی برداری، DirectX و OpenGL، فناوریهای جلوههای گرافیکی و اجزای دلفی با استفاده از GPU با PixelShader 2.0 است. ما KSDev (به ksdev.ru مراجعه کنید) را یک سال پیش خریداری کردیم و شروع به کار با یکدیگر برای ایجاد یک ابزار توسعه چند پلتفرمی کردیم که شامل پلتفرم توسعه برنامه FireMonkey با اجزای دلفی و C++Buider برای رابط کاربری برنامه، یکپارچه سازی پایگاه داده، پردازش گرافیکی با استفاده از GPU و یکپارچه سازی با سیستم عامل است.
با استفاده از FireMonkey، میتوانید برنامهای ایجاد کنید که CPU و GPU را با هم اجرا کند، و سپس با استفاده از کامپایلرها و کتابخانههای زمان اجرا (Run-time Libraries، RTL) میتوانید آن را برای Windows، Mac OS یا iOS کامپایل کنید. توسعه دهندگان با استفاده از دلفی و C++Builder به جای یادگیری کدنویسی با استفاده از کتابخانه های گرافیکی مختلف، یادگیری API از پلتفرم های مختلف با سیستم های مختصات مختلف و قابلیت های متفاوت، می توانند از رویکرد مؤلفه یکسانی استفاده کنند، فرم ها را به صورت بصری ویرایش کنند و با حرکت دادن مؤلفه با ماوس به پایگاه های داده متصل شوند. این یک روش اساسی جدید برای ایجاد برنامه هایی است که بر روی پلتفرم های مختلف اجرا می شوند و آینده است. اگر می خواهید پشتیبانی از سیستم عامل ها و پلتفرم های دیگر را به برنامه خود اضافه کنید، نیازی به طراحی مجدد و توسعه آن ندارید - فقط کافی است آن را دوباره کامپایل کنید.
ما کامپایلرهای جدیدی ایجاد می کنیم که کد بومی تولید می کنند. امروزه کامپایلرهای دلفی برای نسخههای 32 بیتی و 64 بیتی ویندوز، نسخههای 32 بیتی Mac OS 10 وجود دارد. و ما در حال کار بر روی کامپایلرهای نسل بعدی دلفی و C++Builder هستیم که به شما امکان میدهد کدهای بومی با کارایی بالا را برای این پلتفرمها و دیگر پلتفرمها، مانند اندروید یا لینوکس ایجاد کنید، و ازطریق کتابخانههای مختلف و لینوکس، از طراحی یکسانی استفاده کنید.
همانطور که می بینید، من دلایل کافی برای اشتیاق دارم. و توسعهدهندگانی که در سرتاسر جهان ملاقات میکنم میدانند که Embarcadero روی دلفی و C++Builder و همچنین ابزارهای توسعه PHP سرمایهگذاری زیادی میکند.
KP:در دو سال گذشته چه پیشرفتی در ادغام ابزارهای دو شرکت داشته اید؟ برنامه Embarcadero برای آینده در این زمینه چیست؟
DI.:در زمانی که بخش CodeGear بخشی از Embarcadero شد، این شرکت تیم های توسعه در تورنتو، مونتری و رومانی داشت، ما در Scotts Valley و در روسیه، در سنت پترزبورگ بودیم و هستیم. Embarcadero ابزارهای توسعهدهنده و مدیران پایگاه داده داشت، CodeGear ابزارهای توسعه برنامهها را داشت، اما دومی از پایگاههای داده نیز استفاده میکرد. ادغام شرکت ها ترکیبی از تخصص، دانش در زمینه بانک های اطلاعاتی، بهینه سازی کد از جمله کد سرور است. این ادغام همچنین منجر به ایجاد یک محصول جدید به نام AppWave شد، یک فناوری ویژه برای تبدیل یک برنامه معمولی ویندوز به چیزی بسیار آسان برای استفاده (مانند برنامه های کاربردی برای آیفون یا دستگاه های دیگر). AppWave به شما این امکان را می دهد که برنامه ای را نصب نکنید، بلکه به سادگی آن را انتخاب کرده و از سرور ذخیره سازی برنامه (app) آماده شده اجرا کنید، در حالی که بدون ایجاد تغییرات در منطقه رجیستری و سیستم فایل آن، بر روی رایانه کاربر اجرا می شود. به هر حال، مرورگر برنامه AppWave در دلفی نوشته شده است. Embarcadero از Dephi برای توسعه خود و تخصص توسعه برنامه ما استفاده می کند.
برنامه آیفون (iOS) ایجاد شده توسط
با استفاده از پلتفرم FireMonkey
همچنین می توانید از ادغام ابزارهای توسعه ما و DB Optimizer برای بهینه سازی پرس و جوهای SQL هنگام ساخت برنامه ها استفاده کنید. با ارسال مستقیم کد SQL به DB Optimizer، می توانید آن را نمایه کنید، آن را آزمایش کنید و نسخه بهینه شده آن را به محیط توسعه بازگردانید. تخصص پایگاه داده Embarcadero همچنین فناوری DataSnap را بهبود بخشیده است. با تشکر از توسعه دهندگان تورنتو، ما دانش زیادی در مورد معماری سیستم ها و پایگاه های داده چند لایه به دست آورده ایم. ما اکنون تخصص مشترکی در کد سرور و رویه های ذخیره شده در هر دو شرکت داریم. ما ابزارهایی مانند RapidSQL و DB Change Manager و محیطهای توسعهای داریم که ایجاد کدهای سمت سرور را آسان میکنند، مانند فناوریهای Code Insight و Code Completion که امکان ایجاد فناوریهای SQL Insight و SQL Completion را فراهم کردهاند. رویکرد مشترک ما برای ایجاد کد مشتری و سرور، فلسفه مشترک ما، به ما امکان می دهد ویژگی های مشترکی را بین ابزارهای مدیریت پایگاه داده و ابزارهای توسعه برنامه به اشتراک بگذاریم.
کریل رانف:من می خواهم یک چیز مهم اضافه کنم. از نقطه نظر تجاری، نحوه تحویل ابزارهایمان بسیار مهم است. به عنوان مثال، نسخه جدید RAD Studio XE 2 Ultimate شامل مجموعه کامل ابزارهای DB Power Studio است. این مجموعه بسیار قدرتمندی از ابزارها، از جمله محیط نگارش پرس و جو RapidSQL، ابزار مدیریت تغییر DB Change Manager و ابزار بهینه سازی پرس و جو DB Optimizer است که به شما امکان می دهد بخش مهمی از فرآیند توسعه و استقرار، مدیریت تغییرات در مدل داده، پایگاه داده، کد و غیره را انجام دهید. این ترکیب بسیار خوب و درستی از فناوری ها است.
DI.:اما، در صورت نیاز، توسعهدهندگان میتوانند از Subversion برای مدیریت نسخههای کد منبع و از DB Change Manager برای مدیریت نسخههای ابرداده استفاده کنند. می توانید از پروفایل کد و DB Optimizer برای بهینه سازی کد سرور، RapidSQL برای ساخت و اشکال زدایی کد سرور و محیط های توسعه ما برای ساخت و اشکال زدایی برنامه ها استفاده کنید. این ترکیب از فناوریها در RAD Studio XE Ultimate Edition شباهتهای بین مدلهای توسعه پایگاه داده و اپلیکیشن را نشان میدهد. اکثر توسعه دهندگانی که با دلفی و C++Builder برنامه های تجاری می سازند با پایگاه داده ها کار می کنند و به این ابزارها نیاز دارند و RAD Studio XE Ultimate Edition ترکیبی عالی برای این توسعه دهندگان است.
KP:کاربر مدرن دیگر به تنهایی کاربر پلتفرم ویندوز نیست. ما از دستگاه های تلفن همراه، آیفون، آی پد، دستگاه های مبتنی بر پلت فرم اندروید استفاده می کنیم. این بدان معنی است که توسعه دهندگان باید بدون افزایش قابل توجهی در سرمایه گذاری در آموزش، پلتفرم های مختلف را هدف قرار دهند - یعنی ابزارهای جهانی مورد نیاز است. بدیهی است که انتظار ظهور ابزارهای جهانی از سازندگان پلتفرم غیرواقعی است و در این مورد فقط می توانیم به سازندگان ابزار مستقل اعتماد کنیم. کجا می توانیم به Embarcadero تکیه کنیم؟
DI.:ما هنوز کارهای زیادی در زمینه پشتیبانی از پلتفرم داریم. امروز ما در حال معرفی پشتیبانی از پلتفرم iOS برای آیفون و آیپد و به دنبال آن پشتیبانی از گوشی های هوشمند اندروید، ویندوز 7 و بلک بری هستیم. در RAD Studio XE 2، ما با ساخت پلتفرم FireMonkey برای iOS شروع کردیم و بعداً FireMonkey را به پلتفرم های دیگر پورت خواهیم کرد.
در عین حال، تعداد زیادی سیستم عامل وجود دارد که از صفحه نمایش لمسی (صفحه نمایش لمسی)، برای تلفن، تبلت و دستگاه، رایانه های رومیزی پشتیبانی می کنند و ما به افزودن پشتیبانی از آنها ادامه خواهیم داد. علاوه بر این، سیستمهای کنترل صوتی، سیستمهای کنترل حرکت، سیستمهای بیومتریک، شتابسنجها وجود دارد، بنابراین باید به گسترش FireMonkey ادامه دهیم تا همه توسعهدهندگان بتوانند از پلتفرمهای جدید استفاده کنند. به عنوان مثال، دستگاه مایکروسافت کینکت برای ایکس باکس 360 طراحی شده است و اکنون یک SDK (کیت توسعه نرم افزار) مربوط به ویندوز وجود دارد. و ما قبلاً نمونههایی داریم که از حرکت برای کنترل یک برنامه استفاده میکنیم به همان روشی که معمولاً از ماوس یا صفحه کلید استفاده میکنیم.
هنگامی که برنامه هایی با تعداد زیادی گرافیک پیچیده ایجاد می کنید، دنیای کاملی از رابط های کاربری جدید ایجاد می کنید. اگر با سیستم عامل ویندوز سر و کار داریم، API ویندوز آن را در کتابخانه VCL (Visual Component Library - کتابخانه اجزای بصری که بخشی جدایی ناپذیر از ابزارهای توسعه دلفی و C ++ Builder است) کپسوله می کنیم. - توجه داشته باشید. ویرایش، که به هر حال، می تواند بیشتر اعمال شود. و در FireMonkey، API سیستم عامل را کپسوله می کنیم. اما امروزه ما فرم ها و گرافیک ها را بسیار بیشتر دستکاری می کنیم. همچنین می توانید ویژگی های فضای فیزیکی را برای انیمیشن و جلوه های ویژه اضافه کنید. علاوه بر این، تعداد زیادی ویژگی اضافی دیگر برای ایجاد رابط کاربری وجود دارد که قرار است در چند سال آینده برای پلتفرمهای مختلف، دستگاههای موبایل و تبلت پیادهسازی کنیم.
مایکروسافت اخیراً جزئیات مربوط به ویندوز 8 را منتشر کرده است که قرار است یک سال دیگر عرضه شود. ما از این نوآوری ها در کتابخانه VCL و در پلت فرم FireMonkey پشتیبانی خواهیم کرد. اما دلفی یک ابزار توسعه است که نه تنها برای ویندوز، بلکه برای مکینتاش، آیفون و آیپد نیز طراحی شده است. ما همچنین محصولات PHP خود را توسعه میدهیم، از jQuery Mobile پشتیبانی میکنیم، از iOS API برای توسعه برنامههای سرویس گیرنده تلفن همراه استفاده میکنیم، و برنامههای سرور PHP را با استفاده از جادوگران و ابزارهایی برای تولید جاوا اسکریپت، HTML، و برگههای سبک آبشاری سمت کلاینت میسازیم. ما میتوانیم برنامههای PHP و برنامههای کلاینت اصلی iPhone iOS را بسته بندی کنیم، در حالی که مشتری با سرور PHP صحبت میکند. و این به نوبه خود با سرور پایگاه داده و با سرویس های وب - با همه چیزهایی که برای تجارت مورد نیاز است - ارتباط برقرار می کند.
محیط توسعه RadPHP XE2. یک وب اپلیکیشن موبایل ایجاد کنید
با استفاده از اجزای jQuery Mobile برای iPhone 3G
به عبارت دیگر، ما قصد داریم قابلیت های FireMonkey و VCL از جمله پشتیبانی از پلتفرم های موبایل را گسترش دهیم.
KP:آیا می توانید در مورد پلتفرم FireMonkey بیشتر توضیح دهید؟
DI.:همانطور که قبلاً اشاره کردم، کتابخانه VCL ایجاد شده برای ویندوز به توسعه و بهبود ادامه خواهد داد. اما امروزه، اگر می خواهید واقعاً برنامه های تجاری توسعه دهید، باید آنها را برای پلتفرم های مختلف ایجاد کنید. این همان چیزی است که پلتفرم FireMonkey برای آن طراحی شده است. از ایجاد رابط های کاربری با وضوح بالا، گرافیک سه بعدی با کارایی بالا، نرخ فریم بالا پشتیبانی می کند و مهمتر از همه، از GPU برای انجام این کار استفاده می کند.
شما می توانید از این ویژگی ها هنگام ایجاد برنامه های علمی، مهندسی و تجاری استفاده کنید. چنین برنامههایی میتوانند با استفاده از فناوری dbExpress به پایگاههای داده متصل شوند، همچنان با استفاده از مؤلفههای غیر بصری آشنا برای توسعهدهندگان، مانند ClientDataSet یا DataSource، از فناوری DataSnap استفاده کنند، به هر پایگاه داده، سرورهای SOAP و REST متصل شوند. میتوانید کنترلهای جذاب، دکمههایی با جعبه، جداول غیرمعمول و سایر عناصر رابط و در دو و سه بعدی ایجاد کنید. می توانید یک مدل سه بعدی آماده را در برنامه بارگذاری کنید و آن را با یک شکل دو بعدی ترکیب کنید که در آن می توان آن را چرخاند و از زوایای مختلف مشاهده کرد. می توانید یک مکعب داده یا یک نمودار تجاری سه بعدی بسازید و با استفاده از ماوس، صفحه کلید یا حتی یک دستگاه کینکت آن را بچرخانید یا می توانید به داخل مکعب بروید و از داخل به سطوح مختلف آن نگاه کنید. و همه اینها را می توان با یک پردازنده گرافیکی پرسرعت انجام داد. همان برنامه را می توان سپس برای پلتفرم دیگری مانند سیستم عامل مک کامپایل کرد.
برنامه حاوی یک مکعب چرخان با داده،
روی لبه های آن قرار می گیرد
یا می توانید از ابتدا یک شکل سه بعدی ایجاد کنید و از دوربین ها و چراغ ها برای روشن کردن و چرخاندن بخش هایی از رابط کاربری استفاده کنید. طراح فرم قبلاً یک محیط داخلی برای پشتیبانی از رابط کاربری سه بعدی به طور مستقیم در زمان طراحی دارد.
در ویندوز، می توانید از کتابخانه های Direct2D برای گرافیک های دو بعدی با وضوح بالا و از Direct3D برای گرافیک های سه بعدی استفاده کنید. سیستم عامل مک از کتابخانه های کوارتز و OpenGL برای همین منظور استفاده می کند. برای iOS، از کتابخانه های Quartz و OpenGL ES استفاده می شود. اما همه اینها از دید توسعه دهنده پنهان است - او از پلتفرم FireMonkey، سیستم مختصات آن و رابط برنامه نویسی برنامه استفاده می کند، بدون اینکه به این کتابخانه ها فکر کند و می تواند همان برنامه را برای پلتفرم های مختلف کامپایل کند.
بیایید به یاد بیاوریم که VCL چیست. VCL یک کامپوننت "Wrapper" در اطراف API ویندوز است. ما با منابع، منوها، کادرهای محاوره ای، رنگ ها، سبک ها، پیام های ویندوز سروکار داریم. FireMonkey بر خلاف VCL یک بسته چند پلتفرمی است، همان رویدادها و مدلهای مؤلفه را حفظ میکند و به شما امکان میدهد به رویدادها فکر کنید (به عنوان مثال، رویدادهای OnClick، OnHasFocus، onMouseDown و onKeyDown)، اما رویدادهای Macintosh یا iPhone را مدیریت کنید.
فریم ورک FireMonkey همچنین دارای یک سیستم کامل برای متحرک سازی عناصر رابط کاربری است. مطمئناً این یک سیستم پویانمایی جامع به سبک Pixar نیست، اما به شما امکان می دهد افکت هایی مانند متحرک سازی بیت مپ، برجسته کردن تمرکز عنصر رابط کاربری و کار با گرافیک برداری را اعمال کنید. بیش از 50 جلوه بصری برای توسعه دهنده در دسترس است: تار کردن، تبدیل تصویر به سیاه و سفید، حل شدن، انتقال، انعکاس، ایجاد سایه - همه انواع جلوه های موجود در GPU های مدرن که اکنون تقریباً در هر رایانه ای وجود دارد. برنامه ای که با استفاده از پلتفرم FireMonkey ساخته شده است، دستوراتی را به GPU ارسال می کند، که تمام کارهای نمایش گرافیک و ساخت رابط کاربری را انجام می دهد. در عین حال، پردازنده مرکزی برای محاسبات و دسترسی به سیستم عامل رایگان است. توسعه دهنده فقط باید اجزا را به درستی قرار دهد.
اساسی ترین چیز در مورد پلتفرم FireMonkey نحوه ایجاد رابط کاربری است. امکاناتی برای قرار دادن گرافیک بیت مپ روی عناصر رابط مانند منوها، دکمه ها و نوارهای اسکرول وجود دارد. در FireMonkey از گرافیک برداری GPU برای این منظور استفاده می کنیم. از نقطه نظر برنامه نویسی، همه این کنترل ها یکسان هستند، اما پردازنده گرافیکی تمام کارهای نمایش آنها را انجام می دهد. میتوانیم استایلها را روی کنترلها اعمال کنیم، برنامه را شبیه یک برنامه Mac OS یا Windows کنیم، سبک خودمان را ایجاد کنیم، استایلهایمان را روی عناصر رابط اعمال کنیم (مثلاً با تغییر سبک آن در ویرایشگر فرم، یک دکمه را مستطیلی یا گرد بسازیم) - برای این، محیط توسعه یک ویرایشگر سبک دارد. شما می توانید سبک خود را ایجاد کنید یا می توانید سبک برنامه ای را که قبلاً تمام شده است تغییر دهید.
پلتفرم FireMonkey - ابزارهای توسعه
و پلتفرم های پشتیبانی شده
اگر به خاطر داشته باشید، در کتابخانه VCL تعداد محدودی کنترل وجود داشت - کانتینرها (یعنی به شما امکان می داد عناصر دیگر را در آنها قرار دهید) و در FireMonkey هر کنترل یک ظرف است. این بدان معناست که هر کنترلی می تواند شامل هر کنترل دیگری باشد. به عنوان مثال، آیتم های لیست کشویی می توانند شامل تصاویر، دکمه ها، کادرهای ویرایش و سایر کنترل ها باشند. و همچنین می توانید کامپوننت ها را روی لایه ها قرار دهید.
سیستم رندر FireMonkey کاملاً منعطف است - میتواند از کتابخانههای Direct2D، Direct3D و OpenGL با ارسال دستورات به GPU استفاده کند. برای دستیابی به همین امر در VCL، لازم بود یک بافر خارج از صفحه جداگانه تولید شود، با فراخوانی توابع کتابخانه گرافیکی مناسب، تصویری در آن ایجاد شود و سپس آن را در فرم نمایش دهد.
نمونه هایی از جلوه های گرافیکی پشتیبانی شده توسط FireMonkey
اگر پردازنده گرافیکی ندارید، همچنان می توانید اشکال دو بعدی یا سه بعدی را اعمال کنید و از کنترل های FireMonkey استفاده کنید. در این حالت، پلتفرم FireMonkey از کتابخانه های +GDI یا سایر کتابخانه های مشابه استفاده می کند و همان افکت ها و انیمیشن یا دستکاری اشیاء سه بعدی را انجام می دهد.
یکی دیگر از ویژگی های FireMonkey سیستم جدید اتصال عناصر رابط به داده ها است که باز و انعطاف پذیر است. دو نوع عنصر واسط در VCL وجود دارد: محدود به داده و غیر محدود به داده (به عنوان مثال، TDBEdit و TEdit). در FireMonkey، هر کنترلی را می توان با داده ها، از هر نوع، مرتبط کرد. این می تواند فقط یک عبارت، یک فیلد از یک مجموعه داده، داده از اشیاء ایجاد شده توسط توسعه دهنده، یا نتایج فراخوانی روش باشد.
علاوه بر این، هنگام ایجاد یک برنامه، می توانید یک مدل سه بعدی آماده را در آن بارگذاری کنید و از آن استفاده کنید - چنین قابلیت هایی اغلب در برنامه های تجاری و مهندسی مورد نیاز است. ما مشتری داریم که برنامه های کاربردی برای تدارکات ایجاد می کند. آنها یک سیستم اطلاعاتی داشتند که با دلفی ساخته شده بود، و در آن، یک برنامه کاربردی که طرحی را ترسیم می کرد و اطلاعات را از منابع داده نمایش می داد. آنها اخیراً کار جالبی انجام دادند - آنها یک انبار سه بعدی کاملاً خودکار در اتوکد ترسیم کردند و برنامه آنها به شما امکان می دهد ببینید چگونه یک لودر خودکار در انبار حرکت می کند و کالاها را در قفسه ها قرار می دهد. و داده ها را از منابع روی تصویر مربوطه قرار می دهند.
نمونه هایی از تغییر سبک های برنامه
KP:در حال حاضر چه فرمت های مدل سه بعدی پشتیبانی می شود؟
DI.:در این نسخه، ما از بارگیری مدلها از AutoCAD، Collada (یک ابزار مدلسازی سه بعدی منبع باز) پشتیبانی میکنیم. توجه داشته باشید. ویرایش.)، مایا، یک فرمت OBJ که توسط بسیاری از فروشندگان گرافیک سه بعدی پشتیبانی می شود.
KP:چه فرمت های دیگری برای اضافه شدن برنامه ریزی شده است؟
DI.:ما قصد داریم 3DS (3D Studio MAX)، SVG (معمولا این فرمت برای گرافیک های برداری 2 بعدی استفاده می شود، اما گاهی اوقات برای 3D)، Google SketchUp را اضافه کنیم. ما ممکن است از فرمت های دیگر نیز پشتیبانی کنیم.
KP:آیا استفاده از مدل های سه بعدی در برنامه های ساخته شده با FireMonkey نیاز به مجوز ابزار مدل سازی سه بعدی مناسب دارد؟
DI.:نه، اینطور نیست. تنها کاری که ما انجام می دهیم خواندن فایل مدل است. ما مدل را وارد میکنیم اما آن را صادر نمیکنیم (البته شما میتوانید برنامهای بنویسید که مدل را در قالب خودتان ذخیره کند). ما ادعا نمی کنیم که سازنده ابزارهای مدل سازی سه بعدی هستیم - برای این کار می توانید از AutoCAD، 3D Studio Max، Maya یا هر ابزار مدل سازی سه بعدی دیگری استفاده کنید و مدل های ایجاد شده را به برنامه های ما وارد کنید.
KP:برنامه هایی که با FireMonkey بر روی پلتفرم های سخت افزاری مدرن ساخته شده اند چقدر کارایی دارند؟
DI.:عملکرد کاملاً بالاست. به عنوان مثال، یک شکل سه بعدی با سه کره و سه نور را می توان با سرعت 100 فریم در ثانیه در مک بوک پرو ارائه کرد. یا می تواند به 600 برسد - بستگی به این دارد که دقیقاً چه کاری انجام می دهیم. باز هم، همه چیز به قدرت پردازنده گرافیکی بستگی دارد.
KP:آیا این بدان معنی است که با کمک FireMonkey می توانید بازی هایی ایجاد کنید که نیازهای مدرن را برآورده کنند؟
DI.:ما ابزارهای توسعه خود را به عنوان ابزاری برای بازی ها قرار نمی دهیم. با این حال، با استفاده از عملکرد بالای پردازندههای گرافیکی مدرن، میتوانید بازیهایی را با FireMonkey نیز ایجاد کنید - از این گذشته، آنها با استفاده از Direct3D یا OpenGL ایجاد میشوند.
KP:اکنون در زمینه پشتیبانی از تشخیص ژست و سایر موارد جدید چه کاری انجام می دهید؟ آیا چنین پشتیبانی در دسترس است؟
DI.:ما هنوز پشتیبانی ژستهای حرکتی در این نسخه نداریم. کنترل حرکت در نسخه بعدی FireMonkey اضافه خواهد شد، اما در حال حاضر، می توانید از پشتیبانی ژست های موجود در سیستم عامل استفاده کنید.
میخائیل فیلیپنکو، مدیر Fast Reports, Inc.
K.R.:قبلاً گفتیم که فناوری FireMonkey ریشه روسی دارد - پایه های آن در کشور ما ایجاد شد و سپس خود فناوری و توسعه دهندگان آن در Embarcadero ادغام شدند. به طور کلی، دیدن رشد کامپوننت روسی در استودیو RAD و دلفی خوشحال کننده است. این فعالیت مرکز توسعه ما در سن پترزبورگ و مشارکت توسعه دهندگان مستقل روسی است. به عنوان مثال Rad Studio XE2 شامل تولید کننده گزارش FastReport است که در سراسر جهان شناخته شده و در کشور ما بسیار محبوب است. او اهل روستوف-آن-دون است.
KP:من می خواهم در مورد کامپایلرها صحبت کنم. برای ایجاد اپلیکیشن های iOS از چه کامپایلری استفاده می شود؟
DI.:ما کامپایلر دلفی خود را برای iPhone یا iPad نداریم - ما هنوز کامپایلرهایی برای پردازنده های ARM مورد استفاده در این دستگاه ها ایجاد نکرده ایم. برای iOS، ما به طور موقت از کامپایلر رایگان پاسکال و کتابخانه زمان اجرا استفاده می کنیم. اما ما در حال کار بر روی نسل بعدی کامپایلرها، از جمله کامپایلرهای پردازنده های ARM هستیم. اما کامپایلرهایی برای ویندوز و سیستم عامل مک وجود دارد، زیرا هر دو پلتفرم سخت افزاری مبتنی بر پردازنده های اینتل هستند.
KP:و در زمینه توسعه کامپایلر در دو سال اخیر چه اقداماتی انجام شده است؟
DI.:ما کامپایلرهای دلفی 32 و 64 بیتی برای ویندوز و سیستم عامل مک داریم. و ما روی نسل جدیدی از کامپایلرهای دلفی و سی پلاس پلاس کار می کنیم. کار روی آنها هنوز ادامه دارد، اما پس از تکمیل، ما کامپایلرهای دلفی را برای پردازنده های ARM، پلتفرم های اندروید، لینوکس و هر چیز دیگری خواهیم داشت. و ما کامپایلرهای 64 بیتی C++ را برای ویندوز و سایر پلتفرمها خواهیم داشت که با آخرین استاندارد زبان C++ که به تازگی توسط ISO پذیرفته شده است سازگار است.
KP:امروز در مورد پشتیبانی رایانش ابری در ابزارهای توسعه Embarcadero چه می گذرد؟
DI.:با RAD Studio XE 2، ما از انتقال برنامه ها به Microsoft Azure یا Amazon EC2 cloud با استفاده از دستیار پلتفرم پشتیبانی می کنیم. و ما اجزای سرور برای ذخیره سازی ابری برای Azure و آمازون S3 برای ذخیره جداول، داده های باینری، صف های پیام داریم. در نسخه قبلی RAD Studio XE، ما از استقرار برنامهها در Amazon EC2 نیز پشتیبانی میکردیم، اما هیچ پشتیبانی ذخیرهسازی وجود نداشت.
پشتیبانی از رایانش ابری در RAD Studio XE 2
KP:دو سال پیش در مورد راه حل جدید All-Access صحبت کردید. چقدر تقاضا داشت؟ مزایای آن برای یکپارچه سازان و توسعه دهندگان سیستم چیست؟
DI.:راه حل All-Access و ابزار ابری AppWave به طور گسترده در سراسر جهان استفاده می شود. آنها طوری طراحی شده اند که استفاده از برنامه های شرکت ما و برنامه های شخص ثالث را آسان تر کنند. در واقع این یک راه حل برای مدیریت مجوزها و برنامه ها است و برای شرکت های بزرگ راحت است. شرکتهای کوچکتر که تیم مدیریت برنامههای کاربردی اختصاصی ندارند، میتوانند برنامه را در یک مخزن قرار دهند، نامهای کاربری را از پایگاه داده انتخاب کنند و آن برنامهها را برای استفاده در دسترس قرار دهند، بدون اینکه به خاطر بسپارند که کلید مجوز کجاست و چند مجوز در دسترس است. All-Access و مرورگر AppWave برای مدیریت نسخه و کنترل دسترسی طراحی شده اند.
K.R.:بازار آنقدر متنوع است و کاربران آنقدر متفاوت هستند که نمی توان با یک راه حل تمام نیازها را پوشش داد. بنابراین، ما برای انواع راه حل های "بسته بندی" تلاش می کنیم. ما کارهای زیادی برای یکپارچه سازی صدور مجوز، مدیریت مجوز و نصب محصول انجام داده ایم. این خط از راه حل ها شامل ابزارهای مدیریت مجوز و دسترسی نه تنها برای محصولات Embarcadero، بلکه برای سایر محصولات، از جمله پیشرفت های داخلی شرکت ها است.
کار بستهبندی ابزارهای توسعه در کیتهای کاربری مؤثر هنوز ادامه دارد. ما All-Access داریم - یک مجموعه فوق العاده که همه محصولات Embarcadero را ترکیب می کند. اگر مشتری نسخه All-Access Platinum را خریداری کند، تمام ابزارهایی را که در Embarcadero هستند دریافت می کند. اما گاهی اوقات این مجموعه اضافی است، به عنوان مثال، ما دو مجموعه دیگر را برای متخصصان پایگاه داده ساختیم - DB Power Studio Developer Edition و DB Power Studio DBA Edition. تفاوت بین آنها در این است که برای توسعه دهنده، RapidSQL، یک ابزار توسعه کد سرور، و برای مدیر، DBArtizan، ابزار مدیریت پایگاه داده، در آن تعبیه شده است، محصولی گسترده تر از RapidSQL. برای حرفهایها، مجموعههای All-Access زیر را داریم: مجموعه تمام محصولات، DB Power Studio برای توسعهدهندگان، DB Power Studio برای مدیران، ER Studio Enterprise Edition برای معماران و هر کسی که در مدلسازی فعالیت میکند. ترکیباتی برای توسعه برنامه و برای مدیران وجود دارد. دلفی یک ابزار توسعه دهنده است و افزودن ابزارهای توسعه SQL و ابزارهای بهینه سازی به آن بسیار منطقی است. در نهایت، DB Change Manager یک ابزار بسیار منطقی برای مدیریت پیچیدگی تغییراتی است که در طول چرخه عمر پایگاه داده ها رخ می دهد.
بنابراین، All-Access رئیس یک خانواده بزرگ از مجموعه های مختلف محصولات است.
KP:اگر این یک راز نیست، چه کسی در روسیه از All-Access استفاده می کند؟
K.R.:ما مشتریانی داریم که All-Access را بر اساس دلفی خریده اند. بسیاری از آنها با SQL Server و Oracle در حال ساختن سیستم های پیچیده کلاینت-سرور هستند و بلافاصله از مجموعه ابزار پایگاه داده متقابل پلتفرم ما خوششان آمد. ما یک شرکت مشتری داریم که از نسخه اول با دلفی کار می کند و یک سال پیش از دلفی به All-Access نقل مکان کرد. دو ابزاری که برای تمامی توسعه دهندگان این شرکت تضمین شده است دلفی و DBArtisan هستند. و مشتریانی هستند که از سمت پایگاه داده به All-Access آمده اند. وظیفه اصلی آنها مدیریت پایگاه های داده است، اما گاهی اوقات برنامه های کاربردی را نیز توسعه می دهند. مشتریانی که از All-Access استفاده می کنند شامل شرکت های رسانه ای، ماشین سازان و سایر صنایع هستند.
به طور جداگانه، من می خواهم به شرکت های کوچک بپردازم. اغلب در تیم های کوچک، توسعه دهنده همه کارها را انجام می دهد و چنین شرکتی گاهی بسته های غذایی بزرگ All-Access را برای یک یا دو توسعه دهنده خریداری می کند. در تیمهای بزرگ تشویق نمیشود که توسعهدهنده نقش مدیر پایگاه داده را نیز ایفا کند، بنابراین بستههای غذایی کوچک معمولاً در آنجا محبوب هستند و در شرکتهای کوچک این ترکیب وظایف کاملاً قابل قبول است.
معمار دلفی محصولی است که به شدت به بازار عرضه می شود که شامل ابزارهای مدل سازی و برنامه نویسی می شود. تعداد نسخه های فروخته شده، با این حال، کمتر از نسخه های دلفی اینترپرایز است، اما همچنین بزرگ است. اشاره می کنم که در سال 2010 ما بهترین کشور از نظر فروش بودیم، علیرغم این واقعیت که همه کشورها از بحران جان سالم به در بردند. این رشد نه به دلیل عوامل اقتصادی بلکه به دلیل این واقعیت بود که نسخه RAD Studio XE که در پایان سال 2009 منتشر شد، تقاضای زیادی داشت. و در حالی که ما انتظار رشد بیشتر در فروش را داریم.
ما گام معقول دیگری برداشتیم که در روسیه بسیار مورد تقاضا است. درجه قانونی شدن نسخه های مختلف محصولات ما متفاوت است: هر چه نسخه بالاتر باشد، قانونی تر است، زیرا قبلاً نرم افزار به طور فعال خریداری نمی شد. با شروع RAD Studio XE، مجوز نسخه های 2010، 2009، 2007 و حتی دلفی 7، محصولی پرکاربرد را پوشش می دهد.
امروزه توسعهدهندگان با این واقعیت روبرو هستند که هم پروژههای جدید و هم پروژههایی در حالت پشتیبانی دارند. تعداد زیادی از پروژه ها از نسخه های اولیه دلفی به نسخه 7 منتقل شده اند و در این نسخه باقی مانده اند و به کار بر روی منابع نسبتاً کوچک ادامه می دهند. هیچ کس آنها را به نسخه های جدیدتر منتقل نمی کند، اما آنها زنده نگه داشته می شوند. و اکنون ما اجازه می دهیم پول کمی (کمتر از قیمت مجوز دلفی 7) هم RAD Studio XE و هم دلفی 7 را دریافت کنیم - یعنی توسعه دهنده را هم برای اجرای پروژه های جدید و هم برای پروژه های پشتیبانی قانونی می کنیم.
KP:وضعیت فعلی جامعه Embarcadero را چگونه ارزیابی می کنید؟
DI.:این جامعه بزرگ و بسیار خواستار است. آنها به همه چیز نیاز دارند و بلافاصله - آنها توسعه دهندگان هستند. اما گاهی اوقات طول می کشد تا چیزی درست شود.
چند سال پیش ما معماری اجزای ویندوز را گرفتیم و آن را روی دسکتاپ لینوکس قرار دادیم. اکنون می بینیم که تصمیم درستی نبوده است. تصمیم درست ایجاد یک پلتفرم برای اپلیکیشن ها است. برنامه ها حتی برای پلتفرم های مختلف دارای منوها، پنجره ها، گرافیک، دسترسی به شبکه و دسترسی به دستگاه ها هستند. پلتفرمهای مختلف ممکن است مدلهای کنترل جریان یا کنترل استثناء متفاوتی داشته باشند، اما ما بلوکهای آزمایشی یکسانی را در کد برنامه مشاهده میکنیم. کار ما این است که بدون توجه به نحوه چیدمان سیستم دستورالعمل پردازنده های مربوطه و سایر ویژگی های این پلتفرم ها، ایجاد برنامه های تجاری و کامپایل آنها را برای پلتفرم هایی که قرار است در آنها استفاده شود، برای توسعه دهندگان آسان کنیم. و FireMonkey دقیقا همان چیزی است که برای حل این مشکل به آن نیاز دارید.
KP:اگر شرکتی دستگاه جدیدی بسازد و بخواهد از FireMonkey پشتیبانی کند، آیا این امکان وجود دارد؟
DI.:با کامپایلرهای نسل جدید که دارای یک فرانت اند مستقل از پلتفرم و یک بک اند وابسته به پلتفرم خواهند بود، این امر کاملا امکان پذیر خواهد بود. در این بین برای هر سیستم عامل از ابتدا یک کامپایلر و کتابخانه زمان اجرا ایجاد می کنیم.
هر دستگاه جدید مدرن معمولا دارای یک رابط کاربری گرافیکی (بسیاری از آنها دارای پردازنده دو هسته ای و GPU هستند) و SDK های استاندارد برای توسعه دهندگان. همه اینها ایجاد پشتیبانی دستگاه در FireMonkey را ساده می کند. اگر دستگاه جدید فقط کتابخانه هایی برای گرافیک های دو بعدی مانند Quartz داشته باشد، ما می توانیم از چنین دستگاهی در FireMonkey پشتیبانی کنیم، اما این تقریباً چندین ماه طول می کشد. با این حال، خیلی چیزها به پلتفرم بستگی دارد: همه پلتفرم ها از همه ویژگی ها پشتیبانی نمی کنند، به عنوان مثال، iOS منوها و کادرهای محاوره ای ندارد و شما نمی توانید اجزای مربوطه را روی فرم های چنین برنامه هایی قرار دهید.
KP:آیا چیزی در سیاست کار با شرکا تغییر کرده است؟ برای افزایش سهم کاربران از محصولات شما چه اقداماتی انجام می شود؟ در روسیه چه می شود؟
DI.:اکوسیستم شریک ما گسترده است - صدها سازنده ابزار و اجزای سازنده در محصولات ما یافت نمی شوند، و ما یک برنامه مشارکت فناوری داریم. بنابراین، طیف گسترده ای از اجزا، فناوری ها و ابزارها در دسترس توسعه دهندگان است. و راه حل هایی که برای مشتریان خود ایجاد می کنند بهتر از این است که فقط از محصولات ما استفاده شود. و برای فروش، ما در بسیاری از کشورها دفاتر، فروشندگان و توزیع کنندگان داریم.
K.R.:آنچه برای ما مهم است تعداد شرکا نیست، بلکه کیفیت کار هر یک از شرکای خاص است. در حال حاضر، ما میخواهیم روی همکاری نزدیک با شرکای موجود تمرکز کنیم، اگرچه مجموعه شرکا همچنان باز است. ما شرکای زیادی داریم و باید از نظر فناوری به آنها کمک کنیم. ما با توسعه دهندگان کار می کنیم و آنها می دانند که چه می خواهند و می دانند چه چیزی در بازار موجود است، و توانایی های شرکا باید با این موضوع مطابقت داشته باشد.
ما شرکای تجاری داریم که سرمایه گذاری زیادی در Embarcadero به عنوان یک خط کسب و کار انجام داده اند - آنها متخصصان آموزش دیده، بازاریابی محصولات ما، کارمندان اختصاصی که مسئول این حوزه هستند و نظارت دارند که چه اتفاقی برای محصولات ما می افتد، لیست قیمت ها، بازاریابی. طبیعتاً آنها از نظر فروش محصولات ما موفق تر از شرکت هایی هستند که محصولات ما را به صورت موردی به فروش می رسانند.
KP:دیوید، کریل، از مصاحبه جالب شما بسیار متشکرم. از طرف انتشارات ما و خوانندگان ما، اجازه دهید برای شرکت شما در ایجاد ابزارهای شگفت انگیزی که توسعه دهندگان به آن بسیار نیاز دارند آرزوی موفقیت روزافزون کنم!
سوالاتی توسط ناتالیا المانوا پرسیده شد
دلفی XE2 که در سپتامبر گذشته منتشر شد، دارای رکوردی نوآوری است.
بررسی مختصری از ویژگیهای دلفی XE2 قبلاً در Habré منتشر شده است. اما بدیهی است که پلتفرم FireMonkey به چشمگیرترین نوآوری تبدیل شده است و در اینجا می خواهم کمی به آن توجه کنم.
من مجموعه کوچکی از پیوندها را به مواد ایجاد کرده ام که امیدوارم به شما کمک کند تا ایده ای کم و بیش کافی از این پلت فرم داشته باشید. اما ابتدا برای کسانی که اطلاعی ندارند به طور خلاصه توضیح خواهم داد که FireMonkey چیست.
Embarcadero Technologies FireMonkey را به عنوان پلتفرمی برای ساخت برنامههای تجاری با امکانات کامل برای ویندوز، مک و iOS قرار میدهد. در عین حال، این پلت فرم برای هر یک از سیستم عامل ها، یعنی. هنگام اجرای برنامه ای که با FireMonkey ایجاد شده است، از هیچ افزودنی اضافی استفاده نمی شود.
FireMonkey مستقیماً به یک کتابخانه گرافیکی بومی (از نظر سیستم عامل) مانند OpenGL یا DirectX پیوند می دهد. بنابراین بهترین راه حل از نظر پردازنده گرافیکی پیشنهاد شده است.
هسته معماری FireMonkey یک کتابخانه کلاس قدرتمند (شامل اجزای بصری) است.
پلتفرم هدف در حین تدوین انتخاب می شود.
اولین نسخه FireMonkey تنها از Win32، Win64، MacOSX و iOS پشتیبانی می کند، Embarcadero قصد دارد در آینده آن را به چندین پلتفرم دیگر منتقل کند.
چه چیزی را باید در نظر گرفت؟
با وجود این واقعیت که پلتفرم FireMonkey ابزارهای گسترده ای برای توسعه برنامه های کاربردی سه بعدی ارائه می دهد، نمی توان آن را به عنوان یک موتور بازی در نظر گرفت. FireMonkey دقیقاً به عنوان یک پلت فرم برای توسعه برنامه های کاربردی تجاری قرار گرفته است.
اکنون این محصول در مرحله اولیه تکامل خود است. و بسیاری از عملکردهای FireMonkey دستخوش تغییرات کیفی و کمی هستند.
امیدوارم لینک های زیر به شما در درک ویژگی های اصلی پلتفرم جدید کمک کنند.
صفحه رسمی محصول در وب سایت Embarcadero (روسی)
در میان مطالب انگلیسی زبان، می خواهم سریال را برجسته کنم (انگلیسی)
چه چیزی را ببینیم؟
در مورد آخرین نسخه دلفی، بیش از هر زمان دیگری مطالب ویدیویی زیادی به ویژگی های محصول و روش های کار با آن اختصاص داده شده است. هر دو رسمی، از Embarcadero، و از توسعه دهندگان مستقل. ویدیوهای زیادی در YouTube در مورد FireMonkey وجود دارد، فقط می توانید از جستجو استفاده کنید. در میان این وفور مطالب، من یک سری از سه ویدیو از Marco Cantu - RAD in Action صفحه فرود را جدا میکنم. بنابراین، به تحقیق من بردار مفیدی میدهم.
احتمالاً میدانید که Embarcadero به طور فعال در حال ترویج دیدگاه جدید خود برای ایجاد یک پلتفرم بین پلتفرمی است - FireMonkey ( آنها آن را یک چارچوب می نامند، اما برای وضعیت فعلی آن بسیار جالب به نظر می رسد). مسابقات یکی پس از دیگری در Runet اعلام میشود، وبینارها برگزار میشوند، و اگرچه کیفیت دومی چیزهای زیادی باقی میماند، اما فعالیت را خوشحال میکند. حالا، در واقع، به موضوع. به عنوان بخشی از آخرین مسابقه، پیشنهاد شد که برنامه ای برای یادگیری ایجاد شود. و دیروز اثر دیگری پدیدار شد که توسط Evgeny Chmel ( نمیدانم این نام عطف شده است یا نه.). برخلاف "تک تکه های" بی تکلفی که قبلاً دیده شده بود، در اینجا تلاش شد تا میمون را با تمام اندام ها بکشند: سبک سازی، سه بعدی، جلوه های سایه زن ( تبشیرهای Embarcadero دوست دارند در مورد گرافیک های تسریع شده GPU صحبت کنند :))). بیایید ببینیم چه نتیجه ای از آن حاصل شد. برای کسانی که وبینارها را تماشا نکرده اند، من یک انحراف کوچک انجام می دهم. در یکی از وبینارها، وسوولود لئونوف، مبشر Embarcadero، داستانی احساسی در مورد چگونگی راهاندازی مجدد رایانه به طور خاص به سختی (این یک نقل قول است) گفت، به دلیل این واقعیت که Silverlight SDK و شبیهساز Windows Phone 7 «کار نمیکردند» (این یک نقل قول است) در رایانهاش. آنها آداپتور ویدئو یا تنظیمات GPU را دوست نداشتند. اما برنامه های توسعه یافته با استفاده از FireMokey، Vsevolod ادامه می دهد، برای سخت افزار کاملا بی نیاز هستند. ببینیم چطور به ما دروغ گفته. شاهد بیطرف Process Explorer v15.05 از Mark Rusinovich خواهد بود. بنابراین، برنامه یوجین را دانلود کنید و اجرا کنید ( من تصاویری از برنامه Evgeny ارائه نمی دهم، آنها در پیوند به کار او هستند. به فونت های تار توجه کنید).
اپلیکیشن را راه اندازی کرد. بیایید به مصرف نگاه کنیم:
بی حیا، اما شما می توانید "فناوری پیشرفته" را ببخشید. به بخش "درس ها" بروید و "درس 5" را انتخاب کنید. آماده سازی مرحله آغاز می شود. این روند طولانی است من کمی بیش از یک دقیقه وقت گرفتم، روی یک Phenom II چهار هسته ای 3.3 گیگاهرتزی)، لطفا صبور باشید. صحنه ساخته شده است. بیایید به مصرف نگاه کنیم:
میمون به خوبی سیر شده بود. خیلی خوب. اکنون سعی کنید ماوس خود را روی دکمه های انتخاب پاسخ حرکت دهید. احساسی که رابط کاربری گرافیکی واکنش نشان می دهد اوه-اوه-خیلی کند است، اینطور نیست؟ به نمودار مصرف CPU نگاه کنید ( منظورم این است که باید خودتان آن را روی کامپیوترتان امتحان کنید) – در این لحظات بار آن به 100% نزدیک می شود ( من 21.5٪ برای یک پردازنده چهار هسته ای داشتم که معادل 86٪ برای یک پردازنده تک هسته ای است.). اما یک نفر در مورد گرافیک شتابدار GPU به ما گفت. باشه بریم جلو ما به تمام سوالات درس پاسخ می دهیم. بیایید به مصرف نگاه کنیم:
چشم ها گرد نیست؟ حالا برای مقایسه ببینید تیراندازی فارکرای سه بعدی با گیم پلی فعال چقدر مصرف می کند ( اگر کسی، ناگهان، علاقه مند شود، سطح کارخانه نامیده می شود) در حال اجرا در حالت تمام صفحه 1440x900:
نتیجه گیری خود را انجام دهید.
FireMonkey فناوری اصلی "دلفی جدید" است. لطفاً در مورد اهداف، قابلیت ها و جنبه های فنی این کتابخانه کاملاً جدید به ما بگویید. پس از مدتی، با نگاهی به گذشته، امتناع شما از توسعه بیشتر VCL فوق العاده محبوب چقدر سخت و موجه بود؟
این به عنوان مسیر اصلی توسعه فناوری دلفی برای دستیابی به یک هدف خاص انتخاب شد - توسعه چند پلتفرمی از یک محیط، بر اساس یک پایه کد منبع واحد و بدون نیاز به بازآموزی اساسی توسعه دهندگان. در چارچوب VCL در حال حاضر کلاسیک و بسیار محبوب، این غیرممکن بود، ارتباط آن با WinAPI بسیار نزدیک بود، شاید بتوان گفت، "در سطح ژنتیک".
اجزای VCL یک لایه "انتزاعی" بین سطح عملکردی از نظر رابط و مکانیسم های نقشه برداری آنها نداشتند. سطح عملکردی- چگونه به عنوان یک کنترل رفتار می کند، به چه رویدادهایی واکنش نشان می دهد، چه نوع تعاملی با کاربر ارائه می دهد. نمایش دادن- فراخوانی متدهای رندر پلت فرم گرا به عنوان نوعی تصویر که توسط اشیاء شطرنجی و بردارهای اولیه تشکیل شده است. FireMonkey در ابتدا اصل تقسیم دقیق کنترل را به دو جزء "رفتاری" و "بصری" اجرا کرد.
وسوولود لئونوف، Embarcadero Technologies
اولین مورد به طور کلی نه حتی اصول VCL، بلکه ماهیت برنامه نویسی شی گرا را تکرار می کند. یک جزء یک کلاس است، کلاس های مؤلفه سلسله مراتبی را تشکیل می دهند که در آن خانواده ها و ماژول ها قابل تشخیص هستند. کلاس یک جزء ارتباط چندانی با نحوه رندر شدن آن ندارد.
"تصویر" بصری به صورت پویا شکل می گیرد، در کلاس کامپوننت هاردکد نیست. یک تصویر یا "سبک" در FireMonkey هنگام شروع برنامه در یک مؤلفه بارگذاری می شود. ما نوعی چارچوب کاربردی برای مولفه داریم و "پوست" یا "پوشش" را می توان تغییر داد، اما چرا؟ به همین دلیل است که برنامه های FireMonkey در هر پلتفرمی معتبر به نظر می رسند - ویندوز 7، ویندوز 8، سیستم عامل مک، iOS و در آینده نزدیک، اندروید. ساختار کلاس VCL یکپارچه سنتی نمی تواند این را فراهم کند.
در اینجا رویکرد تکنولوژیک نقش ویژه ای دارد. در اصل، میتوانید کتابخانه VCL را بگیرید و WinAPI را با سایر تماسهای پلتفرم ممکن «اجرا کنید». در زیر مجموعه بسیار محدودی از کامپوننتها، هنوز هم میتوان این کار را انجام داد، اما VCL شامل صدها مؤلفه است، بنابراین این رویکرد به سادگی میتواند VCL را «کشتن» کند. تصمیم گرفته شد که VCL را لمس نکنیم و ویژگی های جدیدی را در پلتفرم جدید - FireMonkey توسعه دهیم. این فناوری حتی دارای ظرافت فنی خاصی است - در زمان مونتاژ یک پروژه برای یک پلت فرم خاص، IDE دلفی کامپایلر لازم را به هم متصل می کند و اجزای رابط یک سبک پلت فرم را دریافت می کنند.
برای کاربر، این یک کلیک ماوس و همان کد منبع است، برای دلفی، سالها کار سخت توسعه دهندگان برای ایجاد چنین کتابخانه چند پلتفرمی است.
وقتی مشخص شد که FireMonkey به عنوان یک پلتفرم جدید مجزا معرفی میشود، باید استراتژی مناسبی برای همزیستی انتخاب میشد: Embarcadero به هیچ وجه نمیخواست بر کاربران VCL تأثیر منفی بگذارد. بنابراین، ما طرح زیر را انتخاب کردهایم: VCL از نظر ایدئولوژیکی و معماری پایدار میماند تا بیشترین سازگاری ممکن را تضمین کند، در حالی که مهاجرت پروژهها به نسخههای مدرن را تسهیل میکند. توسعه FireMonkey یک مسیر طبیعی و موازی را بدون نگاه کردن به VCL دنبال خواهد کرد.
نقطه ضعف این راه حل، مهاجرت نسبتا مشکل ساز از VCL به FireMonkey در یک پروژه است. اما از سوی دیگر، برای یک پروژه جدید، یک توسعهدهنده میتواند FireMonkey را انتخاب کند تا از ماهیت چند پلتفرمی برنامه منتج شده خود اطمینان حاصل کند. با عرضه XE4 با پشتیبانی از iOS، می توان از مزیت رقابتی قوی دلفی برای توسعه موبایل در محیط شرکت صحبت کرد که پس از اجرای پشتیبانی برنامه ریزی شده برای اندروید، افزایش خواهد یافت.
بنابراین، به این ترتیب، هیچ "امتناع" صریحی از توسعه VCL وجود ندارد. در نسخه های جدید، قسمت VCL دلفی نیز در حال توسعه است. این شامل پشتیبانی از 64 بیت، و معرفی یک ظاهر طراحی برای اجزای بصری، و اجرای مکانیزمی برای پیوندهای پویا انعطاف پذیر یا "binding"، و گنجاندن کتابخانه FireDAC برای کار با پایگاه های داده در پروژه های VCL است. فقط این است که در پس زمینه یک جهش کیفی غول پیکر به دلیل FireMonkey، پیشرفت در VCL تا حدودی آشکار به نظر نمی رسد. اما به هر حال، VCL بخشی جدایی ناپذیر از دلفی است و برای سال های آینده نیز به همین شکل باقی خواهد ماند. اگرچه تکامل پلتفرم ها و وضعیت فعلی در زمینه سیستم عامل برای سیستم های دسکتاپ و دستگاه های تلفن همراه به گونه ای است که آینده به وضوح با FireMonkey است.
ما قبلاً در مصاحبه درباره پشتیبانی iOS صحبت کردهایم، اجازه دهید به خوانندگان خود در مورد آخرین پشتیبانی RAD Studio XE4 برای سایر فناوریهای جدید، مانند Windows 8 و WinRT، سیستمهای 64 بیتی، MacOS و غیره بگوییم. آیا می توانید فهرست کنید چه چیز دیگری می توانید به یک برنامه نویس مدرن که توسط نوآوری ها خراب شده است ارائه دهید؟
به احتمال زیاد، برنامه نویس مدرن با نوآوری ها "فاسد" نشده است. برای پروژه های بزرگ، هر "نوآوری" اغلب به حجم عظیمی از کار تبدیل می شود.
به عنوان مثال، همه مدت زیادی منتظر ماندند، بسیاری بلافاصله برای انتقال کدهای خود به یک پلت فرم جدید عجله کردند. اما معلوم می شود که حتی تیم های بسیار حرفه ای نیز برای این کار آماده نیستند. کد 64 بیتی قابل کامپایل به معنای قابل اجرا بودن نیست. "گناهان جوانی" شروع به ظهور کرد، مانند استفاده از دستورالعمل ها با فرض اندازه آدرس 4 بایت. فقدان فرهنگ برگزاری آزمون، همراه با عدم تمایل تکنولوژیک برای اجرای این فرآیند در زمان کوتاه.
و در اینجا - هر چه پروژه بزرگتر باشد، به عنوان مثال، با تعداد خطوط کد منبع اندازه گیری شود، برنامه نویسان با دقت و تعادل بیشتری با انواع نوآوری های مختلف از ظاهر یک "دکمه" در رابط گرفته تا "قند نحوی" در کامپایلر برخورد می کنند.
یکی از این دستاوردهای "مشکلآمیز" انتشار ویندوز 8 بود. من شخصاً به عنوان یک کاربر رایانه شخصی و فقط یک متخصص فناوری اطلاعات مدرن، از ویندوز 8 خوشحالم. اما برای توسعه دهندگانی که دسته ای از رایانه های ویندوز 8 با مشخصات فنی برای توسعه تحت سیستم عامل جدید به عنوان بار ارسال شده اند، این به معنای مشکلات خاصی است.
ما سعی کردیم پشتیبانی از توسعه تحت رابط جدید این سیستم عامل را تا حد امکان راحت و بدون دردسر فراهم کنیم. بنابراین، سبکهای خاصی هم برای VCL و هم برای FireMonkey معرفی شدهاند و برنامهنویس میتواند رابط برنامه را بازسازی کند یا یک برنامه جدید ایجاد کند که از نظر ظاهری از "بومی" برای ویندوز 8 قابل تشخیص نباشد. البته نیاز به پشتیبانی «بومی» از ویندوز 8 از طریق WinRT وجود دارد. اما در اینجا اولویت بندی اهداف در شرایط مدرن تأثیر می گذارد. سیستم عامل مک، iOS، اندروید در آینده نزدیک هنوز فرصتی برای صحبت در مورد پشتیبانی کامل از WinRT در آینده نزدیک نمی دهد.
هدف استراتژیک Embarcadero البته چند پلتفرمی است. انتشار RAD Studio XE4 یک مورد کلیدی بود، در درجه اول به دلیل پشتیبانی از iOS. یک برنامه نویس فعال با استفاده از VCL می تواند در عرض چند ساعت شروع به توسعه برای iOS کند. حتی یک اپلیکیشن موبایل ساده را می توان فورا به یک پروژه قدرتمند تبدیل کرد که در زیرساخت های موجود کار می کند. فکر نکنید که این فقط یک کامپایلر جدید برای FireMonkey و یک سبک جدید برای مطابقت با رابط iOS است.
این شامل یک طراح بصری جدید، پشتیبانی داخلی برای فاکتورهای مختلف، کتابخانه های دسترسی به داده ها، از جمله FireDAC جدید، و فناوری LiveBindings برای اتصال انعطاف پذیر و پویا به داده های شرکتی است. همه این نوآوری ها به طور همزمان ارائه می شوند - برای ویندوز، و برای سیستم عامل مک، و برای iOS. سیستم عامل Mac OS به سرعت در حال توسعه نیست، بنابراین هیچ مشکلی مانند انتقال از ویندوز 7 به ویندوز 8 وجود ندارد. اما نمایشگرهای رتینا ظاهر شدند و این نیاز به توجه ویژه داشت. اکنون هر برنامه MacOS ایجاد شده در Delphi XE4 به طور خودکار شامل دو سبک است - "normal" و "high-definition".
که همان برنامه می تواند رابط "بومی" با همان کیفیت را در هر رایانه رومیزی اپل داشته باشد.
Embarcadero نمی خواهد توسعه دهندگان را با نسخه های نوآورانه جدید خود "غافلگیر"، "متحیر" یا حتی "سرگرم" کند. در عوض، برعکس، حوزه فناوری اطلاعات در حال حاضر پر از شگفتی های مختلف است: دستگاه های جدید، پلت فرم های جدید، کاربران جدید، نیازهای جدید آنها، سناریوهای تعامل جدید. فناوریهای توسعه نرمافزار جدید را به این اضافه کنید، و برنامهنویسان به سادگی زمان ایجاد سیستمهای جدید و روی سیستمهای موجود را نخواهند داشت - آنها فقط کاری را انجام میدهند که از یک محیط به محیط دیگر، از یک کتابخانه قدیمی به کتابخانه جدید، از یک زبان به زبان دیگر مهاجرت کنند.
اما ما به رد هر چیز جدید اعتراف نمی کنیم. ما فقط میخواهیم از تداوم همه چیز اطمینان حاصل کنیم - کد، رابط، پروژه، حتی مهارتهای حرفهای که پلتفرمها و دستگاههای جدید ظاهر میشوند. میتوان گفت که ما با محافظهکاری ناسالم در رابطه با بسترهای جدید به قیمت محافظهکاری سالم در ابزارهای توسعه مبارزه میکنیم. از Embarcadero انتظار محصولات عجیب و غریب، زبان های برنامه نویسی غیر استاندارد و ابزارهای توسعه عجیب و غریب را نداشته باشید.
با ما همیشه توسعه بصری، زبانهای کلاسیک، کدهای "بومی" را خواهید یافت و اجازه میدهید پلتفرمهای هدف برای برنامههای کاربردی خود که به همان روش کلاسیک اثبات شده ایجاد شدهاند جدید باشند.
زمان کافی از زمانی که اصطلاح FireMonkey کمابیش برای همه توسعه دهندگان، حداقل برای کسانی که از دلفی استفاده می کنند آشنا شده است، می گذرد. در این مدت، کتابهایی درباره FireMonkey، مقالاتی در مورد FireMonkey، نوشتههایی درباره FireMonkey در وبلاگهای متعدد وجود داشت. خواندن همه اینها بسیار جالب است. اما هیچ نظریه ای نمی تواند جایگزین عمل شود. و من، مانند بسیاری از افراد قبلی، برای نوشتن چیزی با استفاده از FireMonkey احساس خارش داشتم.
اما در انجام این کار مشکلی پیش آمد. بنا به دلایلی، تصمیم گرفتم که فقط نیاز به اجرای یک پروژه کاری نه چندان پیچیده دارم.
برای توضیح اینکه چرا این برای من مشکل ساز شد، کمی انحراف (یکی می خواهد بنویسد، غنایی) نیاز دارد. سفری به گذشته من به عنوان یک توسعه دهنده. برخی از نظرات من در مورد برنامه نویسی با استفاده از دلفی را توضیح دهید.
باید بگم که استفاده از دلفی رو روی ویندوز 3.1 یعنی از نسخه اول شروع کردم. و از آن زمان تاکنون مشغول مطالعه VCL هستم. به اصطلاح در اصل مطالعه شده است. کدهای منبع مشاهده، آدرسدهی، ردیابی. دوباره و دوباره.
مشخص است که در زمانهای مختلف مجموعهای از اجزای ارسال شده با دلفی شامل اجزای شخص ثالثی بود که قرار بود شکافهای VCL را پر کنند و احتمالاً قبل از گنجاندن، نوعی کنترل کیفیت را پشت سر گذاشتهاند. عرضه برخی از این قطعات تا به امروز ادامه دارد. همین ایندی رو بگیر من نمیخواهم کسی را توهین کنم، این صرفاً نظر شخصی من است که در مورد خودم نیز به عنوان یک توسعهدهنده کامپوننت صدق میکند: هیچ مجموعهای به اندازه یک VCL بزرگ و متنوع تا این حد عمیقاً فکر و اجرا نشده است. نه، من تظاهر نمیکنم که حقیقت نهایی هستم، و البته خطاهای زیادی در خود VCL وجود دارد، تصمیماتی که باعث سوء تفاهم میشود، باعث رد میشود و شما میخواهید با آن مخالف باشید. اما من همیشه تصور یک سبک خاص را داشتم. به نظر من در VCL یک هسته زیبا و قوی وجود دارد که از کل طراحی دلفی پشتیبانی می کند و هم زیرساخت نرم افزار و هم خود جامعه توسعه دهندگان بر اساس آن ساخته شده اند. تا حد زیادی با تشکر از VCL، دوباره، به نظر من، شایعات در مورد مرگ دلفی هنوز هم شایعه است. و هنگامی که اجزای شخص ثالث در تحویل VCL گنجانده شد، بلافاصله قابل توجه بود، آنها متفاوت بودند.
اما لحظه ای فرا می رسد و می شنوم که VCL یک فناوری قدیمی است. فناوری که باید در گذشته باقی بماند. توسعه دهندگان باید تمام پروژه های جدید خود را در FireMonkey پیاده سازی کنند، اما در مورد پروژه های قدیمی ... بهتر است آنها را به ریل های جدید منتقل کنید. FireMonkey در همه جا و همیشه وجود دارد. و من آن را از منابع مختلف می شنوم. و کاملاً مداوم. نه، هیچ کس VCL را نمی کشد. او با ما می ماند اما او دیگر شماره یک نیست. او باید یک طرفدار باشد. حداقل من اینگونه می فهمم که درباره آینده محصول چه گفته می شود.
در اصل من این همسویی را درک می کنم. دوره ای برای چند پلتفرم و مهمتر از آن برای کراس پلتفرم گذرانده شده است. بالاخره VCL چیست؟ کتابخانه اجزای بصری کتابخانه اجزای بصری شما ممکن است با این موافق نباشید. به عنوان مثال، من همیشه بسیاری از مؤلفههای غیر بصری را در نظر گرفتهام، و نه مؤلفهها، بلکه فقط کلاسها، بخشی جدایی ناپذیر از VCL، و تعداد زیادی کلاس و مؤلفه شخص ثالث - ادامه، توسعه VCL. خوب، من نمی توانم وارثان TDataset را بخشی از VCL در نظر بگیرم. اگر چه، به عنوان مثال، عبارت DBExpress Library می گوید که به عنوان یک VCL نیست. ظاهراً Embarcadero واقعاً VCL یکپارچه را از دیدگاه من به تعدادی کتابخانه جداگانه تقسیم می کند. نه، البته، نه کاملاً جدا، اما با این وجود. و اگر این دیدگاه را داشته باشید، FireMonkey برای جایگزینی بخش بصری VCL در نظر گرفته شده است (چگونه باید کتابخانه کامل کلاس و مؤلفه، شاید Borland Component Library را نام ببرم؟).
اجزای بصری کتابخانه بر اساس چه چیزی ساخته شده است؟ در اطراف عناصر پایه و سطح پایین ارائه شده توسط سیستم عامل. دستگیرههای پنجره، فونتها، خود پنجرهها، عناصر ورودی، پیامها، زمینههای دستگاه و بسیاری موارد دیگر - اینها مفاهیم کتابخانهای نیستند که با دلفی ارائه میشوند، بلکه مفاهیم سیستم عامل هستند. بله، درست است، ویندوز. و اگر می خواهید یک کتابخانه بین پلتفرمی بسازید، منطقی است که از زیرساخت ارائه شده توسط سیستم عاملی که برنامه نوشته شده با استفاده از کتابخانه را اجرا می کند، خودداری کنید.
این دقیقاً همان کاری است که FireMonkey در حال انجام آن است. آنها در تلاشند تا زیرساختی را بر اساس مکانیسم های زیربنایی که توسط سیستم عامل های مختلف پشتیبانی می شود ایجاد کنند که بتواند جایگزین سرویسی شود که خود سیستم عامل ها ارائه می دهند.
بسیاری به یاد دارند که تلاش کردندکراس پلتفرم نه تنها کتابخانه، بلکه خود دلفی. به موازات دلفی 6، محصول Kylix و کتابخانه CLX منتشر شد. همه اینها برای اینکه بتوانیم برای لینوکس توسعه دهیم انجام شد. با این حال، لینوکس بسیاری از مفاهیم اولیه پنجره سازی رابط کاربری گرافیکی را که ویندوز دارد، ندارد. رابط پنجره برای لینوکس به طور کلی یک پدیده بومی نیست. این یک برنامه اختیاری است. و مجبور شدم نوعی کتابخانه مصنوعی بنویسم. با کمک آن امکان نوشتن برنامه ای هم برای ویندوز و هم برای لینوکس وجود داشت. با این حال، هنوز آن احساس را به یاد دارم، نه ناامیدی، بلکه ناراحتی آزاردهنده، که وقتی سعی کردم از آنالوگ اجزای بصری CLX استفاده کنم، تجربه کردم. من شروع به دلتنگی کردم. کاری که من در هنگام توسعه با VCL بدون فکر انجام میدادم، با استفاده از CLX دشوار، بسیار متفاوت یا به سادگی غیرممکن بود.
هنگام تغییر از BDE به DBExpress تقریباً همین احساس را داشتم. قدیمی که از Field Test BDE آشنا بود (Borland قبلاً از آن در Quattro Pro برای ویندوز و Paradox برای Windows استفاده می کرد و ODAPI نامیده می شد و سپس IDAPI و بریدگی بالا بود، به نظر من ODBC مایکروسافت) فناوری منسوخ اعلام شد، که باید در پروژه های جدید جای خود را به یک کتابخانه جدید بدهد. من همیشه در ابتدا چیزی را در DBExpress گم می کردم، به خصوص دانش.
در عین حال، من به هیچ وجه نمی خواهم کتابخانه های ذکر شده در بالا و یا تصمیماتی را که منجر به ظهور آنها شده است سرزنش یا انتقاد کنم. این فقط در مورد برداشت های من است، گاهی اوقات اولین برداشت ها.
اکنون، شاید کمی واضحتر شود که چرا تصمیم برای نوشتن یک پروژه کاری کوچک با استفاده از FireMonkey مشکلاتی را به همراه داشت. سال هاست که در توسعه پروژه ها، پروژه ها و پروژه ها، یک کلیشه خاص شکل گرفته است، یک الگوی مشخص از اینکه چه کاری و چگونه باید انجام داد. و در مورد من، مجبور شدم با این واقعیت روبرو شوم که الگو باید تغییر کند. زیرا شما نمی توانید همه چیزهایی را که به استفاده از VCL عادت کرده اید به پروژه ای که بر روی FireMonkey ساخته شده است منتقل کنید.
در شروع پروژه، حس خاصی از دژاوو را تجربه کردم. یعنی احساس ناراحتی. به عنوان مثال، عناصر ورودی معمولی خواص زیادی ندارند. ترفندهایی که در عمل، بر اساس ترفندهای مربوط به آگاهی از برخی ویژگی های سیستم عامل، استوار شده اند، در بستر جدیدی کارایی ندارند. ناگفته نماند که برخی از اجزا به شدت تغییر کرده اند.
خوب، یک نکته مهم دیگر. معمولاً چه نوع پروژه هایی باید در محل کار انجام شود، اگر (کار) مربوط به نوشتن کامپایلرها، سیستم های مدل سازی یا هر چیز بسیار علمی دیگری نباشد؟ من فکر میکنم که برای بیشتر آنها در مورد توسعه چیزی است که شامل استفاده از پایگاههای داده است. علاوه بر این، چیزی بسیار علمی نیز می تواند از خدمات ارائه شده توسط DBMS استفاده کند.
اینجا کمین دیگری منتظرم بود. بنا به دلایلی، وقتی در عمل متوجه می شوید که FireMonkey حاوی عناصر متمرکز بر کار با داده های ذخیره شده در پایگاه داده نیست، برای این کار کاملاً آماده نیستید (به زبان ساده). اگرچه من قبلاً بارها در مورد این مطلب خوانده ام و شما می دانید (به لحاظ نظری) از چه چیزی باید استفاده کنید. این در مورد Live Bindings است.
من نمی خواهم وارد بحثی در مورد اینکه آیا برنامه نویسان جالب واقعی باید از مولفه های db-aware استفاده کنند یا نه وارد بحث شوم، در عمل، هنگام شروع یک پروژه جدید، با این واقعیت روبرو شدم که باید هم به اجزای بصری جدید و هم به روش جدیدی برای استخراج داده ها برای نمایش، ویرایش و در نهایت ذخیره عادت کنم. که باز هم نه بد است و نه خوب. فقط برای من اینطوری شد
این اولین پست برداشت من را به پایان می رساند. در ردیف بعدی داستان هایی در مورد آنچه و چگونه آنها در حین کار بر روی پروژه بر آن غلبه کردند وجود دارد.