Adobe Flex против openlaszlo
В настоящее время я работаю над проектом RIA во флексе, но недавно натолкнулся на openlaszlo. Похоже, что многие крупные проекты выбрали его вместо flex, например, сервис потоковой музыки Pandora. Я заинтересован в том, почему. На данный момент самое большое преимущество, которое я видел, состоит в том, что он имеет уровень абстракции для поддержки flash 6,7, 8, 9 и dhtml и находится в разработке в течение более длительного времени (так что, возможно, более стабильным).
Кто-нибудь имел большой опыт использования обоих, или просто openlaszlo даже? действительно ли поддержка dhtml и более старых версий флэш-памяти является большим преимуществом при популярности flash 9 в наши дни? Может быть, это потому, что многие разработчики уже знакомы с javascript/ajax? Помимо языковых предпочтений, почему openlaszlo, а не flex?
Спасибо за любые советы! Райан
3 ответа
Когда такие компании, как Pandora, выбрали OpenLaszlo, Flex все еще был коммерческим продуктом (даже компилятором). Версии Flex 1.0 и 1.5 были не очень стабильными, и только с выпуском Flex версии 2.0 платформа стала намного стабильнее. Macromedia расстроила многих разработчиков, так как Flex 2.0 не был совместим с 1.5, и все приложения должны были быть переписаны для новой версии. В такой ситуации многие компании считали, что OpenLaszlo - неплохой выбор.
Самая мощная функция OpenLaszlo - это язык LZX. Язык поддерживает классы, анимацию любого числового свойства, ограничения с использованием синтаксиса attribute="${}", поддержку mixin, наборы данных с отображением datapath (на основе синтаксиса xPath). Некоторые из ключевых разработчиков языка LZX раньше работали над языком Apple Dylan, и многие мощные концепции Dylan превратили его в язык LZX.
Я занимался разработкой OpenLaszlo и Flex. Flex имеет отличную поддержку инструментов различными поставщиками IDE. Но язык ActionScript 3 может быть очень ограничивающим, так как в Java вы тратите много времени на размышления о своей модели классов. OpenLaszlo делает упор на разработку на основе экземпляров (очень быстро для создания прототипов, хотя все еще возможно создавать очень сложные приложения с более чем 100 000 строк кода LZX). Самыми крупными приложениями OpenLaszlo, о которых я знаю, являются Laszlo Webtop (120 000+ строк кода LZX) и IBM Websphere Commerce Edition (http://ibm.co/Kid5tc). Я слышал, что другие компании создали такие же большие приложения, используя OpenLaszlo.
Начиная с версии 4.2 OpenLaszlo интегрирует Flex SDK. Компилятор OpenLaszlo генерирует код LZX в JavaScript 2, а затем в код ActionScript 3. Если вы скомпилируете приложение как для DHTML, так и для SWF10+, вы сможете извлечь выгоду из лучшей проверки типов компилятора Flex, даже если ваше приложение будет развернуто только для среды выполнения DHTML/HTML5.
OpenLaszlo очень стабильный. Последний основной выпуск (4.0) был в марте 2007 года, хотя команда OpenLaszlo посчитала, что выпуск 4.2 равен обновлению основной версии, поскольку в платформу добавлена поддержка ActionScript 3 и SWF9. 4.2 была выпущена в декабре 2008 года, текущая стабильная версия - 4.9 - хотя многие члены сообщества и Laszlo уже используют OpenLaszlo 5.0 (транк, не выпущен) в производстве.
После объявления Adobe о предоставлении Flex SDK для Apache Foundation (сейчас это проект инкубатора Apache Foundation), Adobe объявила, что работает над функцией кросс-компиляции для компилятора Flex следующего поколения под названием "FalconJS". Adobe также сообщила, что FalconJS (который, вероятно, будет добавлен в Apache Flex в 4 квартале 2012 года) не сможет кросс-компилировать существующие приложения Flex в JavaScript. Простой пример списка FalconJS (см. Демонстрацию в декабре 2011 года), сгенерированного в 5 МБ несжатого кода JavaScript, который можно свести к 2,5 МБ в расширенном режиме компилятора Google Closure. Аналогичный пример OpenLaszlo во время выполнения DHTML компилируется менее чем в 750 тысяч раз кода JavaScript.
Я думаю, что ваш термин "много крупных проектов" очень относителен. Да, некоторые крупные компании использовали его, но я не считаю ни один из них крупными проектами. Если вы посмотрите на все из них в витрине OpenLaszlo, они кажутся мне довольно простыми интерфейсами. Также обратите внимание, что OpenLazslo компилирует Flash, а не Flex и связанную с ним инфраструктуру.
Для меня OpenLaszlo является альтернативой для создания простых RIA таким образом, что конечный код может быть скомпилирован во Flash или Javascript. HaXe является еще одной альтернативой этому, и я думаю, что он работает лучше, чем OpenLaszlo.
С учетом вышесказанного, существует проблема с этими "общими" записями, скомпилированными во Flash/Javascript framework; он не использует никаких преимуществ / преимуществ каждой конкретной платформы. Flash постоянно меняется, как и Javascript с добавлением тегов html5 и css3. Если вы когда-либо имели опыт работы с обоими, вы заметите, что они сильно отличаются друг от друга тем, как они работают, и по алгоритму могут хорошо работать с Flash, а может и с Javascript.
Я хочу сказать, что если вы хотите выбрать технологию, выберите более подходящую. Если вашему проекту необходимо иметь и Javascript, и Flash, то это может быть хорошим выбором, но помните, что тогда вы потеряете "мощь" каждого из них. Например, Flex имеет очень хорошую архитектуру скинов и набор инструментов, которые необходимы для развития предприятия. Javascript может делать довольно полезные вещи с помощью селекторов, css3 и некоторых других фреймворков, таких как jQuery.
По моему опыту, посткомпиляторы, такие как OpenLaszlo, устраняют эти сильные стороны. Кроме того, если есть что-то новое (например, аппаратное ускорение видео /3d для javascript/flash), вы должны подождать, пока люди в OpenLazslo обновятся, прежде чем вы сможете его использовать (если они его используют).
Я начал разрабатывать RIA с OpenLaszlo, поскольку он предлагал кросс-браузерную среду, работающую в любом месте. Пользовательский опыт, поставленный с этим, был также очень хорош.
Я перешел на Flex (когда он был в бета-версии), потому что:
- Все возможности OpenLaszlo были доступны во Flex.
- У Flex было дополнительное преимущество, поскольку он был поддерживаемым коммерческим продуктом от ведущей компании по созданию цифрового мультимедийного контента Macromedia и позже приобретенным Adobe.
- Flash Builder (также известный как Flex Builder), созданный на Eclipse, обеспечил хорошее повышение производительности разработки. (т. е. потратить один раз лицензионный сбор на это не проблема)
- Помимо всего прочего, Flex обладает улучшенными возможностями интеграции / удаленного взаимодействия на стороне сервера.
- У Flex было множество учебников и примеров кодов, поэтому освоить нового разработчика было очень легко.
Теперь Flex также является проектом с открытым исходным кодом, созданным сообществом, в рамках Apache Software Foundation. OpenLaszlo теперь предоставляет дополнительную возможность по сравнению с Flex (до выпуска кросс-компилятора FalconJS), позволяющую запускать среду выполнения Flash и Ajax с единой базой кода.
Но все же у Flex есть дополнительное преимущество: очень хорошая среда разработки (с интеграцией в другие инструменты Adobe для дизайнеров) и хорошие возможности интеграции на стороне сервера, поэтому для корпоративных приложений Flex является явным победителем.