Закадка: PHP на десктопе, но не DevelNext

1.10.2016 - 2869 просмотров ;)

Сейчас идет такой процесс с этими PHP IDE:

  • DevelStudio затухает, всего 2 сборки еще еле теплятся и обновляются (напр DevelStudio Ultimate)
  • DevelNext развивается не в ту сторону

И все уже наверное подзабыли про PHPqt. Одно время автор (Казанцев Александр) писал GUI IDE для PHPqt, но потом он ее бросил. Я в этот моент аш упал на пол и рыдал от безисходности. А горе то вот в чем:

  • DevelStudio не поддерживает Unicode
  • DevelStudio осталась на PHP 5.3 (или даже 5.2)
  • DevelNext — в нем нет PHP, а есть JPHP, который в результате как-то крайне уныло выглядит. Все что было написано на DevelStudio почти 100% по коду не подойдет в DevelNext, а на мой взгляд дак и вообще это кромешный ужас из смеси PHP и JAVA
  • Изучать совсем негодный затем нигде язык JPHP, для которого кстати еще и документации почти нет желания нет


Посему красивая новая среда DevelNext была задвинута, и текущие разработки ведутся пока в DevelStudio классике. Но на горизонте так же мигает маячек PHPqt. И это греет душу.
Хотя автор и бросил затею написать GUI IDE, но в душе он понимает что без нее, большого смысла в PHPqt нету.. и где-то глубоко в кулуарах все бы был отдан приказ о начале разарботки IDE на базе PHPqt. Но в исполнение приказ все еще не приведен.
Это заставляет отчаянно связываться то с сообществом DevelStudio/DevelNext, то с автором PHPqt, а то и с самим Димычем, автором DevelStudio и DevelNext.
Честно говоря, ситуации во всех случаях достаточно плачевны, но огонек все же горит.

Ветка, где я ставил вопрос о DevelStudio и DevelNext, кстати говоря она не единсвтенная, мы периодиччески списываемся с Димычем и в Вконтакте.
И вот пожалуй очень теплый ответ от автора PHPqt (Александра):

Приветствую!

Начинал, только не QtCreator, а PQCreator 🙂 к сожалению развитие этого проекта было остановлено из-за динамичного развития движка. Сейчас движок достиг такого уровня, что он практически не совместим с ранними версиями и на 80% не совместим с самими первыми версиями. Скажем так: раньше, чтобы сделать что-то специфичное, приходилось либо выдумывать лазейки на PHP, либо реализовывать хелперы на C++, сейчас все стало намного прозрачнее и проще, практически любое действие можно реализовать на PHP точно так же, как оно было бы реализовано на C++.

Идеология движка тоже поменялась. Раньше движок позиционировался как простая GUI библиотека для PHP со своим набором правил, функций, методов и типом объектов, которые были строго прописаны в нем; а то что для отрисовки UI он использовал Qt — было просто таким фактом. Это позволяло творить с движком что угодно в любом направлении, что требовало дополнительной документации. Но и возможности доступа к Qt были ограничены теми, которые были строго прописаны в исходном коде. У некоторых пользователей стали возникать трудности с реализацией простых вещей, которые невозможно было сделать просто потому, что это не было позволено на уровне движка (например, я забыл прописать доступ к какому-либо методу класса в исходнике). Получалась такая мини копия SoulEngine, возможности которого тоже пили захаркодены, только по своему. И с этим нужно было срочно что-то делать 🙂

Сейчас же движок позиционируется как интерфейс доступа к фреймворку Qt для PHP. Он обзавелся собственной мета-объектной системой и его возможности, по сути, стали ограничены только невозможностью реализации некоторых вещей именно на PHP, таких как, например, создание шаблонных классов. Самый простой пример: чтобы создать список на С++, нужно указать какой тип данных будет в этом списке: QList[double] list; — в php так сделать нельзя, соответственно и самого QList в PHP не может существовать, как и многих других шаблонных классов, которые есть в Qt. Но при этом движок теперь не ограничен в возможностях доступа к объектам Qt, а сам его интерфейс как бы полностью копирует интерфейс Qt. Никакие отклонения от Qt на уровне движка теперь не возможны. В движке теперь нельзя взять и объявить какое-то особое свойство или метод для объекта, чтобы применить его в PHP, как было раньше. Но можно объявить это свойство/метод в самом PHP, просто унаследовавшись от нужного Qt-класса.

Так к чему я все это писал тебе! 🙂 переписать существующий PQCreator на новую версию движка невозможно! Можно только написать его с самого нуля.

Когда разрабатывался PQCreator, движок часто дополнялся необходимым КАСТОМНЫМ функционалом, который в корне отличался от модели Qt — добавлялись новые несуществующие свойства и новые методы именно на стороне движка, чтобы с ним было проще работать. Сейчас весь необходимый функционал и так присутствует в движке, но нет тех удобненьких методов, которые были задействованы в PQCreator. По этому перенести его со старой версии движка на новую просто невозможно.

Вот такое большущее оправдательное письмо с кучей воды и кратенькой исторической справочкой 🙂

Спасибо за внимание к проекту.

Многие бы спросили конечно: А нафига собсвтенно GUI IDE да еще и на PHP!
Ответ наверное будет такой:

Единый язык для Серверной и Десктопной разработки — сильно помогает сосредоточиться именно на PHP, и достаточно шустро производить прототипирование проектов. Настолько шустро, что аш уши горят. Часть кода может переползать из Сервера в Десктоп и обратно, и это просто офигенски. PHP к тому же очень высокоуровневый язык, программы получаются короткими и понятными.

Статьи из раздела, Видеочат рулетка