Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Уточнение планов: RAD Studio August 2018 Roadmap

Не секрет, что планы следует корректировать. Компания Embarcadero регулярно публикует программу развития своих продуктов (Roadmap) на будущее, по которой вы сможете ориентироваться в составе и сроках включения в состав используемых вами инструментов тех или иных полезных или даже необходимых возможностей. К счастью, жизнь также не стоит на месте, и мы регулярно вносим в планы разработку поддержки новых технологий или платформ, а также своевременную адаптацию наших продуктов с использованием самых свежих библиотек и API. Обновленные планы также публикуются на сайте Embarcadero.

На этой неделе был опубликован пост с описанием обновленной дорожной карты для Delphi, C ++ Builder и RAD Studio.(https://community.embarcadero.com/article/news/16638-rad-studio-august-2018-roadmap)  В этой дорожной карте в августе 2018 года зафиксированы планы на вторую часть этого года и основные направления деятельности на следующий год. Правда, пост представлен в виде набора слайдов на английском языке. Поэтому, вслед за этим постом была сделана публикация статьи с комментариями главных менеджеров продуктов к этой дорожной карте. 

В нашей дорожной карте вы можете найти ключевые функции, которые мы запланировали на календарный год 2018/2019. Я приведу список основных запланированных пунктов и пояснения к ним в изложении на русском языке.

2018 год был очень интересным для Embarcadero. Чего удалось достичь? 

Еще в марте мы представили RAD Studio 10.2.3 , также известную как 10.2 Tokyo Release 3 — Delphi, C ++ Builder и RAD Studio. Это был третий релиз в Токио и включал поддержку CMake Command Line для C ++, Rename Refactoring, поддержку мобильных устройств в Delphi и C ++ Builder Pro, усовершенствования RAD Server, шаблоны пользовательского интерфейса FireMonkey и многое другое. Впервые в нашей практике,  мы выпустили полнофункциональную  Community Edition для Delphi и C ++ Builder . Отличный вариант для осваивающих мощь Delphi или C ++ Builder, поскольку Community Edition обеспечивает отличную отправную точку для разработчиков C ++ по всему миру, чтобы опробовать все, что может предложить C ++ Builder, особенно с точки зрения  многоплатформенных возможностей.

Как видно из нашей дорожной карты, для следующего выпуска основной версии, 10.3 (aka Carnival) запланировано много интересных функций. Основные темы новой версии — расширение языка и платформ для многоуровневых и Windows-разработчиков. Модернизация IDE также продолжится в полном объеме.

Sarina DuPont — отвечает за FireMonkey, UX и стили библиотеки компонентов, а также User Experience. Она рекомендует отметить следующие возможности:

FireMonkey Z-Order и Native Controls

Удивляет, что разработчики могут сделать с помощью инфраструктуры FireMonkey для реализации требований к приложениям, работающих на нескольких устройствах. В своем блоге Сарина постоянно касается темы создания потрясающих пользовательских интерфейсов с помощью FMX. Это область, где FireMonkey действительно нет равных, особенно в сочетании с дизайнером FireUI, уникальным решением в пространстве инструментов разработчика.

Шаблоны пользовательского интерфейса FireMonkey, которые мы выпустили за последние несколько месяцев для разработчиков Delphi и C ++ Builder, не только упрощают создание собственных многоплатформенных приложений, но также демонстрируют гибкость, обеспечиваемую FireMonkey, и как легко настроить темы пользовательского интерфейса, чтобы создать совершенно индивидуальный внешний вид.

В течение нескольких лет мы получили запросы клиентов на поддержку Z-Order и встроенных средств управления на Android. В ответ на них мы активно работаем над поддержкой Android Z-Order в 10.3. Это позволит разработчикам использовать элементы управления FireMonkey, такие как кнопки, ярлыки и флажки, с элементами визуализированного визуализации, такими как браузер и управление картой в той же форме, без встроенного элемента управления, охватывающего стилизованный элемент управления. Это также обеспечивает основу для поддержки применения нативных элементов управления пользовательского интерфейса, таких как TEdit, на Android. В ближайшие недели мы будем приглашать клиентов, с действующей подпиской на обновления в тестирование непубличной бета-версии 10.3, поэтому заинтересованные могут заранее получить представление, как это работает. Мы также планируем расширить поддержку нативных элементов управления Android для большего количества элементов управления в будущих выпусках. 

Поддержка Z-Order для Android будет работать так же, как и для Windows и iOS сегодня, что позволяет разработчикам смешивать элементы управления и элементы управления, созданные базовой ОС, в одной и той же форме без каких-либо проблем.

Еще одна связанная с Android функция, над которой мы работаем, — это модернизация нашей поддержки уровня API Android в RAD Studio для поддержки 26-го уровня (Android 8.0). Это изменение требует значительной переработки и не возможно в виде обновления 10.2. Эта поддержка появится в 10.3. Хотя обычно ограничения на бета-версии не позволяют создавать и развертывать промышленные приложения, пользователи, которые присоединяются к нашей бета-версии 10.3, найдут специальное условие EULA, позволяющее им, при наличии активной подписки на обновления, разворачивать (выпускать) Android-приложения в Google Play Store.

Поддержка новой платформы

Поддержка разных платформ является ключевой для многоплатформенной библиотеки, такой как FireMonkey. Мы знаем, что поддержка Android на 64-битной основе станет обязательной к лету 2019 года, поэтому будем работать для обеспечения того, чтобы наши клиенты могли выполнять это требование следующим летом.

Изменение, по сравнению с сентябрьским планом 2017 года, заключается в том, что поддержку 64-битной платформы MacOS была исключена из начальной версии 10.3. Мы удалили его из первого релиза 10.3, чтобы сосредоточиться на обеспечении большего качества и стабильности для других ключевых функций. С учетом сказанного, наша цель — обеспечить поддержку 64-разрядного MacOS, включая поддержку таргетинга на iOS 11 (и iOS 12), в последующем релизе 10.3.x. Мы не забыли, что разработчикам, которые хотят настроить MacOS App Store или использовать 64-битные API-интерфейсы, требуется поддержка 64-разрядных файлов MacOS.

Что касается перспектив, то пару месяцев назад Apple объявила, что отказывается от поддержки OpenGL в пользу новой библиотеки GPU от Metal 2. Хотя OpenGL будет продолжать поддерживаться в следующих версиях macOS и iOS, мы рассмотрим, что потребуется для поддержки Metal в следующем году.

Marco Cantu — отвечает за развития Delphi и RTL, библиотеки VCL и интеграции в Windows, всех баз данных и веб-ориентированных инструментов, включая RAD Server

VCL и Windows

Хотя за последние несколько лет RAD Studio и Delphi расширяли свои возможности в области разработки приложений для разных и мобильных устройств с использованием единого исходного кода и скомпилированных приложений, продукт по прежнему базируется в Windows. В последние годы мы уделяем особое внимание VCL — лучшем наборе компонентов для клиентских приложений Windows. В каждом выпуске мы добавляли новые компоненты и элементы управления.

Сегодня VCL предлагает отличную поддержку Win32 API, а также интеграцию с новым WinRT API для Windows 10. У нас есть новые элементы управления с современным пользовательским интерфейсом, стиль и отличный переход к современному UX при сохранении большей части вашего существующего исходного кода. Кроме того, IDE интегрируется с Desktop Bridge для создания приложений UWP, которые можно распространять через Windows Store.

Мы будем продолжать и увеличивать инвестиции в эту область, расширим охват API Win32, учитывая, что Microsoft добавила к нему важные подсистемы, сосредоточимся на постоянном улучшении нашей поддержки мониторов High-DPI и 4K в Windows. В связи с этим мы собираемся представить новый элемент управления списком изображений, который может управлять изображениями с несколькими разрешениями, аналогично тому, что мы делаем в FireMonkey. Это позволит приложению вместо использования масштабирования изображения (что часто отрицательно сказывается на качестве изображения), выбрать наилучшее изображение для текущего разрешения экрана. Что касается поддержки High-DPI, мы работаем над новым режимом «Per-Monitor V2» в Windows 10 и планируем сосредоточиться на решении большого количества проблем, которые присутствуют в текущей поддержке нескольких мониторов.

 Развитие языка Delphi и RTL

Помимо фокуса на поддержке Windows 10 (как для Delphi, так и для C ++ Builder), есть много других функций, над которыми мы работаем для включения в Delphi. Мы планируем выпускать новые конструкции языка поэтапно, так как стабильность на уровне компилятора имеет решающее значение. Мы выяснили, что качественная поддержка nullable типов (запланированных, но отложенных) требует изменений в других областях языка. Перед этим мы займемся custom managed records, то есть возможностью определять конструктор по умолчанию без параметров, деструктор и оператор копирования для любого типа записи. Это сильно расширяет возможности для записей, очень приятную дополнительную функцию для классов и объектов.

Что касается библиотеки времени выполнения (RTL), то основное внимание будет уделяться производительности и качеству, нежели расширению функций. От generics списков до больших данных в памяти, от обработки JSON до клиентской библиотеки HTTP, мы мы нашли много перспектив для улучшений и уверены, что каждый клиент будет доволен, потому что, если вы создаете клиентское приложение или серверное, независимо от того, используете мобильные или настольные платформы, увеличить производительность всегда хорошо.

Повышение производительности RTL также помогает улучшению RAD Server. Уже после выхода 10.2.3 мы выпустили обновление для повышения внутренней производительности нашего механизма REST API, в основном ориентированного на внутренние элементы и улучшенное управление памятью в случае обильной многопоточности. Пока в обновление не попало повышение производительность пользовательских модулей RAD Server. Это будет сделано в следующем выпуске, за счет ускорения обработки JSON, обработки строк, класса TStringBuilder и ряда основных классов. Кроме того, важно, чтобы службы JSON и HTTP лучше поддерживали все стандарты и протоколы, включая пограничные сценарии, которые используют другие HTTP-серверы или клиенты.

RAD Server

Для RAD Server мы запланировали намного больше доработок. В следующем релизе будет капитально пересмотрен логики RAD-сервера, которая будет использоваться для сопоставления входящего HTTP-запроса с внутренним ресурсом (т.е. предоставления метода класса для обработки вызовов метода HTTP). До сих пор отображение основано только на URL-адресе, и оно было довольно жестким. Теперь мы планируем добавить возможность учитывать другие параметры HTTP-запроса, такие как Content Type, Accepts, расширения файлов и т.д., чтобы обеспечить более сложное сопоставление. Например, один и тот же URL-адрес может возвращать структуру данных JSON, изображение или PDF в зависимости от контекста вызова. Кроме того, в то время как сегодня вам часто приходится повторять один и тот же код для обработки запросов снова и снова, вы сможете делегировать фактическую реализацию запроса ресурса отдельному компоненту, используя один и тот же код для нескольких запросов и уменьшая объем кода.

Это будет практически новая версия RAD Server, которая сочетается с изменениями лицензирования (лицензии на развертывание теперь включены в старшие редакции). Мы уверены, что этому механизму реализации API REST уделят больше внимания и усилий.

Дэвид Миллингтон — отвечает за развитие поддержки C ++, отладчика, IDE и его пользовательского интерфейса

C ++

В двух последних релизах RAD Studio мы представили несколько отличных инструментов для разработчиков на C ++. Сначала rename refactoring — наш первый рефакторинг на C++. Это один из самых распространенных рефакторингов и значительно ускоряет работу и делает более согласованным общий проект. Во-вторых, мы ввели поддержку CMake для командной строки для C++Builder. Это первый из нескольких запланированных по поддержке CMake шагов, который  явно поддерживает использование Ninja для ускорения сборок. Вы можете настроить сборку на Windows, iOS и Android, включая развертывание на устройстве, все из CMake.

Мы представим наш обновленный компилятор, совместимый с C++ 17. Сначала для одной платформы (Win32), а затем и для других, поскольку мы хотим поддерживать один и тот же уровень на всех платформах. Когда будет выпущена поддержка macOS 64, там также будет использована эта новая версия. Мы продолжим обновлять набор инструментов компилятора (toolchain) в соответствии с текущей версией Clang, что означает, что наши пользователи получат преимущества как оптимизации, так и языковой поддержки Clang, а также расширения языка и обеспечения нашей среды.

Одновременно с этим выйдут новая версия C ++ 17 Dinkumware STL и повышение производительности.

Мы также планируем расширение поддержки CMake, представленной в 10.2.2. Эта поддержка была только для командной строки. В конечном счете, мы планируем дальнейшую интеграцию, чтобы очень легко импортировать проект CMake в среду разработки и собирать его. Одновременно обеспечивать, чтобы стандартные библиотеки C++ всегда работали с C++Builder (не сложно, у нас отличная языковая совместимость) и добавить их в GetIt, наш менеджер пакетов. В конечном счете, любой пользователь C++, знаток нашей экосистемы разработки или нет, должен очень легко использовать любое приложение или библиотеку по их выбору в C++ Builder. И наши пользователи должны легко применять любую C++-библиотеку в своих приложениях.

Наконец, некоторые читатели, возможно, видели недавнее сообщение о том, что Idera приобрела Whole Tomato. Whole Tomato делает Visual Assist, расширение Visual Studio, которое, возможно, является лучшим дополнением к инструментарию C++ для любого IDE. Он дает прекрасные инструменты анализа кода, рефакторинг и другие инструменты. Пользователи Visual Assist могут полагаться на его непрерывную разработку для Visual Studio — это отличный автономный инструмент, которому мы желаем развиваться и процветать — и мы также планируем интегрировать некоторые ключевые части в C++ Builder.

IDE

RAD Studio IDE ежедневно используется десятками тысяч пользователей Delphi и C++Builder. Недавно, в 10.2.2, мы добавили новую темную тему для IDE и редактора кода — это одно из наших самых популярных дополнений, встреченного энтузиазмом со стороны большого числа наших пользователей.

В 10.3.x мы планируем ряд усовершенствований IDE, как для UX (работа пользователей), так и для функциональности.

За последние несколько лет в IDE произошло много расширений и изменений. Но способ, которым они реализуются в пользовательском интерфейсе, не всегда самый удобный. В 10.3 мы планируем некоторые минимальные усовершенствования UX, которые должны сделать среду IDE значительно более приятной и удобной для использования в течение нескольких часов подряд. Многие диалоги получат улучшения и реорганизацию, а конечный результат — значительно функционально лучше, но также выглядит намного приятнее.  

Мы также интегрируем ряд продуктов из пакета IDE Fix Pack от Andreas Hausladen, на который мы получили лицензию в начале этого года.

В долгосрочной перспективе планируются и другие улучшения. Мы потратили довольно много времени на code completion и другие инструменты работы с кодом и значительные улучшения, запланированные как для Delphi, так и для C ++.

Наконец, мы также уделяем большое внимание лучшей поддержке high DPI в среде IDE. Было уже сказано о значительных улучшениях high DPI в VCL, а RAD Studio IDE, в основном, написана в Delphi и C++Builder, и большинство пользовательских интерфейсов построено с использованием VCL. Мы надеемся также использовать усовершенствования VCL в среде IDE, хотя это будет сделано осторожно и не сразу.

Отладчик

Обычно мы ничего не пишем об отладчике в блогах.Отладчик просто делает свою работу для вас каждый день , молча и тихо обновляется по мере работы над набором инструментов.

Тем не менее, у нас запланированы большие улучшения. На мобильных платформах мы используем сочетание LLDB и GDB в зависимости от платформы. LLDB — это путь вперед, и мы будем работать над интеграцией интерфейса Delphi (понимание языка), прежде чем использовать LLDB на других платформах. Конечный результат, как планируется, будет более быстрым и мощным отладчиком, который также понимает и может интерпретировать больше операторов Delphi. Естественно, C++ тоже пользуется этим.

В общем и целом

У нас запланированы большие улучшения: C++17, расширенная поддержка CMake, усовершенствование отладчика, языковые инструменты, новые функции FireMonkey и поддержка новых платформ (64-разрядные MacOS и Android), нативные элементы управления Android, улучшения HighDPI, RAD Server, функций языка Delphi, отличный UX и улучшения в среде IDE.

Важно!. Эти планы и дорожная карта представляют собой наши намерения на эту дату, но наши планы развития и приоритеты могут быть изменены. Соответственно, мы не берем какие-либо обязательства или другие формы гарантий в том, что в конечном итоге мы выпустим какие-то или все описанные продукты в сроки, или в описанном порядке, или вообще.

Exit mobile version