Entry tags:
Delphi Prism: взгляд сквозь новые грани. Глава 1
Блистательно и, как всегда, взбудораживающе прошёл перед нашими глазами счастливый, седьмой PDC - Professional Developer's Conference от Microsoft. Это событие, регулярно созываемое крупнейшим софтверным гигантом мира раз в 1-3 года, всегда приносило неожиданные новости, открывало завораживающие планы и демонстрировало потрясающие возможности. За годы существования PDC Лос-Анджелесский выставочный центр (а на первых порах - Сан-Франциско, Сан-Диего и Орландо) повидали первые публичные релизы Win32 API, платформы Windows NT, среды разработки Visual Studio, технологии .NET 1.0, 2.0, 3.0, языка C#, ОС Windows XP, интерактивного средства управления Microsoft Surface, платформы Windows Azure (тема 2008 года) и множества прочих ошеломляющих инноваций. Но в 2008 году ребята из Embarcadero решили на три дня чуток изменить традицию и акцентировать внимание разработчиков со всего мира не только на новых достижениях Редмонда. А ещё и на новом шаге в мире дотнета. Шаге, который воплотит и объединит в единую команду массы девелоперов, которые ранее были вынуждены разойтись по враждующим лагерям. Итак, "Delphi flash mob" на седьмом PDC в Лос-Анджелесе принёс нам объявление о совершенном новом программном продукте - Delphi Prism.
1. Delphi Prism и все-все-все.
Все знают о Delphi.NET. Этому продукту, впервые появившемуся перед нашими глазами в Delphi 8, сулили просто грандиозное будущее. В самом деле: тогда, в 2001-2003 годах, платформа .NET только-только появилась, представляла собой очень и очень перспективную разработку и с каждым годом захватывала в свои ряды всё больше и больше поклонников из мира Software Developing.
Delphi не осталась в стороне. Сначала в Borland, а затем и в CodeGear, люди начали ставить на нового лидера разработки, и всецело ориентировать свои продукты на .NET. В принципе, стоит признать наперёд, что в темпах популярности они не ошиблись... вот только сами оказались не на высоте. Но это произойдёт потом, а пока компания с жаром и пылом принялась за продвижение языка программирования нового класса.
За несколько лет обозначились основные проблемы Delphi.NET, впервые чётко сформулированные уже в 2007-2008 во времена Embarcadero:
Проблему заметили в Embarcadero, и поняли, что вопрос надо решать срочно и по возможности кардинально. Сообщество требовало мощного прорыва, такого же, который подкрепил бы триумф нативной Delphi 2009: Tiburon, и довершил бы эффектный прыжок среди программистского населения. Но для прорыва нужны были помощники.
Ими стали RemObjects. Старая, довольно известная на просторах комьюнити фирма, давным-давно зарекомендовавшая себя на рынке разработкой PascalScript, AnyDAC, Data Abstract... и Chrome. Позднее более известный как Oxygene. Язык с Pascal-подобным синтаксисом, наряду с Обероном и Модулой продолжающий последние заветы Вирта - но дотнетовский. Т.е. Oxygene поставлялся как расширение к Microsoft Visual Studio - компилятор, интерпретатор и т.д. нового .NET-языка. Oxygene стал известен лишь в узких кругах, не так много компаний перешло на него, несмотря на богатый функционал. Вообще говоря, проект многие считали чем-то вроде научно-исследовательской разработки RemObjects - на уровне "чисто поржать", что ли.
Пока к RemObjects не обратилась Embarcadero. Две компании объединили усилия и за каких-то полгода на основе разработок Oxygene и Delphi родили принципиально новый продукт с грандиозным функционалом и собственной, радужной судьбой. Это новое лицо Oxygene, подсоленное известностью имени Delphi, назвали Delphi Prism.
2. Сапожник, портной... кто ты будешь такой?
Ключевые пункты в описании Delphi Prism:
Вики в основном наполнена на английском языке. Часть материала успешно переведена на немецкий, часть - на французский, и часть - на японский языки. В силу того что большего количества информации про Призму нет более ни на одном ресурсе Интернета, мой небольшой цикл статей про уникальные возможности языка (да-да, уникальные, как по сравнению с Делфи, так и по сравнению с C#!) без лишнего оригинальничанья будет представлять собой в основном перевод справочной вики Призмы на русский язык. Не дословно, конечно же. С авторскими комментариями. Но любителей изучать всё в первоисточниках сразу лучше отошлю на Prism Wiki и Delphifeeds.com - здесь вы не найдёте ничего, кроме агрегатора этих двух ресурсов.
Итак, общее описание продукта закончено. Пора приступать к конкретике. А именно - к возможностям языка...
1. Delphi Prism и все-все-все.
Все знают о Delphi.NET. Этому продукту, впервые появившемуся перед нашими глазами в Delphi 8, сулили просто грандиозное будущее. В самом деле: тогда, в 2001-2003 годах, платформа .NET только-только появилась, представляла собой очень и очень перспективную разработку и с каждым годом захватывала в свои ряды всё больше и больше поклонников из мира Software Developing.
Delphi не осталась в стороне. Сначала в Borland, а затем и в CodeGear, люди начали ставить на нового лидера разработки, и всецело ориентировать свои продукты на .NET. В принципе, стоит признать наперёд, что в темпах популярности они не ошиблись... вот только сами оказались не на высоте. Но это произойдёт потом, а пока компания с жаром и пылом принялась за продвижение языка программирования нового класса.
За несколько лет обозначились основные проблемы Delphi.NET, впервые чётко сформулированные уже в 2007-2008 во времена Embarcadero:
- Менеджеры компании упорно пытались сохранить Delphi.NET полную или практически полную совместимость на уровне синтаксиса со своим старшим братом - Delphi for Win32. Учитывая, что разработка нативной версии продвигалась в Коджире на порядок медленнее, чем развитие майкрософтовцами CLR, на уровне темпов ребята явно терпели неудачу.
- Не во всех областях получалось организовать полнофункциональный визуальный редактор интерфейса - M$ закрыла эту возможность.
- Многие программисты невзлюбили новую оболочку CodeGear RAD Studio. Кто-то утверждал о багах, кто-то - производительности... в любом случае, пересадить огромную толпу потенциальных потребителей на новый язык оказалось невозможным, пока он используется именно в данной среде.
- На самом деле и Delphi for Win32 с одной стороны, и C# с другой в массе специфичных задач оказывались на порядок выгоднее Delphi.NET.
Проблему заметили в Embarcadero, и поняли, что вопрос надо решать срочно и по возможности кардинально. Сообщество требовало мощного прорыва, такого же, который подкрепил бы триумф нативной Delphi 2009: Tiburon, и довершил бы эффектный прыжок среди программистского населения. Но для прорыва нужны были помощники.
Ими стали RemObjects. Старая, довольно известная на просторах комьюнити фирма, давным-давно зарекомендовавшая себя на рынке разработкой PascalScript, AnyDAC, Data Abstract... и Chrome. Позднее более известный как Oxygene. Язык с Pascal-подобным синтаксисом, наряду с Обероном и Модулой продолжающий последние заветы Вирта - но дотнетовский. Т.е. Oxygene поставлялся как расширение к Microsoft Visual Studio - компилятор, интерпретатор и т.д. нового .NET-языка. Oxygene стал известен лишь в узких кругах, не так много компаний перешло на него, несмотря на богатый функционал. Вообще говоря, проект многие считали чем-то вроде научно-исследовательской разработки RemObjects - на уровне "чисто поржать", что ли.
Пока к RemObjects не обратилась Embarcadero. Две компании объединили усилия и за каких-то полгода на основе разработок Oxygene и Delphi родили принципиально новый продукт с грандиозным функционалом и собственной, радужной судьбой. Это новое лицо Oxygene, подсоленное известностью имени Delphi, назвали Delphi Prism.
2. Сапожник, портной... кто ты будешь такой?
Ключевые пункты в описании Delphi Prism:
- Delphi Prism - расширение к Visual Studio. Оно работает в оболочке Visual Studio Shell, бесплатно предоставляемой M$ для разработчиков собственных дотнет-языков. Если на Вашем компьютере установлена Visual Studio (не Express версия), то Призма автоматически при установке интегрируется в неё. В противном же случае вышеупомянутая оболочка будет автоматически установлена Призмой и вы сможете запускать её автономно, получая аналогичную полнофункциональную среду программирования - без необходимости отдельной покупки VS.
Также Delphi Prism доступна в составе CodeGear RAD Studio 2009. - Delphi Prism полностью соответствует последнему стандарту .NET и даже опережает его (о последнем см. ниже). Вы можете разрабатывать приложения под ASP.NET, Silverlight, Windows Presentation Foundation (WPF), WinForms, LINQ. Гарантируется, что Призма всегда будет оставаться как минимум в ногу с развитием M$.
Есть возможность выбирать версию .NET, под которую будет ориентировать приложение. - Так как Delphi Prism - полностью совместим с CLR, то он поддерживает любую реализацию дотнета, которая соответствует спецификации Майкрософт. В частности, на данный момент Призма прекрасно работает под Mono на Linux (GTK#) и Mac OS (Cocoa#). Разумеется, никто не запрещает также использовать на всех трёх платформах WinForms наряду с GTK# и Cocoa# - все упомянутые возможности разработки поставляются "из коробки".
Более того, сейчас в стадии бета-версии находится также процесс интеграции Prism в среду MonoDevelop, вместо VS. - Привычный синтаксис, знакомый нам по Delphi, позволяет легко перейти с языка на язык, а изобилие новых синтаксических возможностей в нём - стимулирует переход с удвоенной силой ;-)
Кстати говоря, продукт RemObjects Hydra позволяет использовать в одном проекте одновременно Delphi Prism и Delphi for Win32, интегрируя их друг с другом. - Стоит отметить, что привычная для выбравших в своё время Delphi.NET библиотека VCL.NET более развиваться не будет. WinForms, GTK#, Cocoa# содержат всё необходимое для полноценной визуальной разработки.
Что же касается огромного количества элементов Delphi RTL, которые портировать будет чуть более трудоёмко, то этот вопрос в настоящий момент решается с помощью ShineOn - авторской реализации Delphi RTL исключительно на .NET FCL. ShineOn тоже ещё не вошёл в финальную стадию, однако количество уже переведённого кода впечатляет. - В ближайшие месяцы, согласно Нику Ходжесу, CodeGear выпустит в народ сразу несколько функциональных обновлений для Призмы. Роадмапа ещё нет, он обещается на DN в ближайшем будущем, а пока что всем рекомендуется запастись Software Accurance.
- Первый trial появился для свободной закачки на сайте CodeGear позавчера.
Вики в основном наполнена на английском языке. Часть материала успешно переведена на немецкий, часть - на французский, и часть - на японский языки. В силу того что большего количества информации про Призму нет более ни на одном ресурсе Интернета, мой небольшой цикл статей про уникальные возможности языка (да-да, уникальные, как по сравнению с Делфи, так и по сравнению с C#!) без лишнего оригинальничанья будет представлять собой в основном перевод справочной вики Призмы на русский язык. Не дословно, конечно же. С авторскими комментариями. Но любителей изучать всё в первоисточниках сразу лучше отошлю на Prism Wiki и Delphifeeds.com - здесь вы не найдёте ничего, кроме агрегатора этих двух ресурсов.
Итак, общее описание продукта закончено. Пора приступать к конкретике. А именно - к возможностям языка...