Windows-приложения на PHP
Мне всегда хотелось писать Windows-приложения на PHP, ведь это такой замечательный язык.
Когда-то я пробовал PHPGTK, но мне сразу не понравилось. Он генерил совершенно отвратительный интерфейс, не имеющий никакого отношения к Windows. Как я понимаю, там люди просто портировали под Windows какой-то первобытный оконный интерфейс из какого-то линукса. Казалось бы, взялись за дело — ну доведите его до ума: замените вызовы своего портированного кода вызовами нормального WinAPI. Ан-нет, это не наш путь.
Но всё меняется, когда приходят они. Если за дело берутся Windows-разработчики, то на выходе получается намного более удобоваримый продукт, WinBinder. WinBinder позволяет делать нормально-интерфейсовые приложения под Windows. Больше того, он позволяет даже собрать такое приложение в exe-файл! Нужно только разобраться, как это делать (смайлик).
В общем, очень интересная штука.
http://imfo.ru/archive/2004/11/15/winbinder_pre_alpha
Интересно, что вы читаете? :)
Ха-ха, я уже и забыл про то, что я эту ссылку оттуда взял. Просто там ничего про сам WinBinder не написано.
Ох, Илья, ну ты же умный! Зачем ты хочешь забивать гвозди отвёрткой? Ну не для того предназначен язык PHP....
Ох, Юля, ну ты же умная! Зачем ты хочешь заставить меня забивать гвозди молотком, когда у меня отверткой получается быстрее и удобнее?
Рассуждения типа «A предназначено для B» — это, почти всегда, чушь. Например, некоторые называют камеру в телефоне бесполезной вещью, говоря «телефон предназначен для того, чтобы говорить». Я не собираюсь пользоваться вещами для того, что чего они предназначены просто потому, что их кто-то для этого предназначил! Если они мне удобны для чего-то другого, то я буду ими пользоваться и для этого тоже.
Что конкретно плохого в том, чтобы писать Windows-приложения на PHP?
а по мне, так winGTK+winGlade очень не плох... кросс-платформенно все таки...
проблема в самих виджетах GTK и скорости их работы
низкоуровнево там интерфейс нормальный не запрограммируешь
вон kukutz пробовал CTRL+A присобачить с text input’у, чтобы выделялся весь текст... дык умучался...
Weasel он умный и ленивый, поэтому пишет GUI на том, на чем умеет =)
«Кросс-платформенно все таки». Ну да, но только это в реальном мире никому не нужно.
А GUI я умею и на C++ писать, и машину я (сюрприз) умею с механической коробкой водить. Просто сегодня у меня появилась возможность начать писать Windows-приложения на PHP. Если завтра у меня появится возможность водить машину с коробкой-автоматом, я с удовольствием и этой возможностью воспользуюсь. Почему я должен делать то, что можно поручить роботу?
Если ты умеешь добывать огонь, потирая сухие палочки друг о друга, то, имея зажигалку, ты всё равно предпочтёшь её.
2Boris ;))
они читают что нибудь из этого
http://www.google.com/search?q=link:winbinder.sourceforge.net
Если кто-то «предназначал А для Б» — он думал, как сделать А, чтобы с его помощью хорошо получалось Б. Да, бывают случаи, что А можно использовать и для чего-нибудь другого. Но почти всегда это компромис, и при наличии бОльших ресурсов было бы выбрано что-то другое. Например, я буду пользоваться цифровой камерой в сотовом только тогда, когда мне срочно надо что-то снять, а фотоаппарата под рукой нету. Если бы он был, или было время/желание за ним сходить, я бы взяла фотоаппарат, потому что он лучше фотографирует. Потому что он для этого предназначен.
Отвергать предназначение вещи — значит отвергать опыт людей, которые её делали. Как и любой другой опыт, его надо отвергать с умом, разбираясь в предмете и понимая, что ты делаешь.
Возвращаясь к Windows и PHP. Писать Windows приложения на PHP можно. Но они будут получаться быстрее и лучше, если их писать на языке, который для этого предназначен.
Я знаю один единственный бесспорный случай, когда писать Windows-программу на PHP оправдано:
Если ему надо написать три программы, то уже стоит задуматься, что быстрее — мучиться с PHP или выучить Delphi. Может статься, что второе получится быстрее. И лучше. И полезнее для субьекта ;)
«Но они будут получаться быстрее и лучше». Что значит лучше? Слово не несёт смысла в данном контексте, поэтому игнорируем :-) Остаётся только «быстрее». Ну, наверное быстрее будет работать программа, да. Но мне важнее время её разработки. И большинству людей уже сегодня важнее именно это. Этот подход называется «Пускай потеет машина».
Я не знаю более подходящего языка для быстрого написания несложных Windows-приложений, чем PHP. При этом я знаю Delphi и, на каком-то уровне, C/C++.
Хороший программист обязан знать много разных средств и не называть какие-то из них неподходящими. Средство нужно подбирать для задачи, а не для целого класса задач, тем более, такого большого, как Windows-приложения. Я же не предлагаю Microsoft Office писать на PHP. Просто те задачи, которые чаще всего приходится решать мне — это у меня почти не вызывает сомнения — будут существенно проще решаться с помощью PHP.
Кому не нужно? А ну-ка дайте сюда! У меня на работе Windows, а дома — Linux, мне очень нужно!
Примеры с добыванием огня и машиной с механической коробкой — не в кассу ;) Огонь удобнее добывать зажигалкой. А писать оконные приложения удобнее на Delphi или C++ c хорошей оконной библиотекой.
А люди, которые пишут GUI на php как раз вызывают ассоциации с теми, кто добывает огонь палочками, потому что не умеет пользоваться зажигалкой и не хочет учиться ;)
Я знаю, зачем мне пригодился бы win+php. Как-то я написал скрипт-макрос, который чистит экспортированные из Ворда хтмл-страницы и собирает их в древовидную структуру веб-сайта, создает зипы разделов, библиотеку гиперссылок и алфавитный указатель. Т. к. этим скриптом заинтересовался (захотел побаловаться) заказчик, пришлось поставить ему Денвер, чтобы он имел дело с браузером в качестве интерфейса. А с окнами получилось бы приличнее.
Offtopic: а чего форма «Имя:» такая непривычно-неудобная?
Ну я её изначально сделал непривычно-неудобной, а переделать руки не доходят :-)
One more. В дельфи вместо 5 строк preg_replace_callback и 20 строк соответствующих функций пришлось бы написать в моем случае ... строк.
Слово «лучше» несёт вполне конкретный смысл. Можно его разбирать на удобнее/красивее/проще в освоении/и т. д. Можно еще начать примеры приводить. Но ведь ты меня и так понял ;)
«Быстрее» я употребляла не в контексте «быстрее работает программа», а в конектсте «быстрее создаётся». Т. е. программировать GUI на предназначенном для этого языке — быстрее. Если у тебя на дельфи получается рисовать окошки медленнее, чем на php, то извини, но ты просто плохо знаешь дельфи. Кстати, еще не упоминался Visual Basic, а по скорости разработки он, пожалуй, чемпион.
Ура, тут мы согласны. Наверное, у меня просто фантазии не хватает на то, чтобы представить задачу, для которой нужно GUI и лучше использовать php. Хотя, если совсем уж пофантазировать..
Ну слава богу, а то я думал, до огнестрельного оружия дойдёт:)
Моё мнение: если ты разрабатывал что-то для веб на PHP, а потом решил это сделать exe-программой, в этом случае подойдёт метод Ильи. В остальных случаях права Юля.
С уважением.
Мнэ... не советую... съедят.
Ты часто валидный HTML видела? Я редко.
В лучшем случае наш выбор — HTMLSax, в остальных — регекспы.