LINUX.ORG.RU
ФорумTalks

Зря @hateyoufeel кекал про ПЫХ и ГТК

 , ,


0

4

Сконпелял в качестве теста пыховую либу для работы с GTK (пришлось ради этой штуки поставить ванильный арч).

Хеллоуворлд пишется за пару минут. Работает шустро даже на днищеконфиге, в отличие от такого же на пистоне.

https://ibb.co/DwxC06D

А главное, Google Bard вполне себе с ним знаком и может помогать писать на нем проги.

Ты знаешь как программировать на PHP используя библиотеку php-gtk3 ? View other drafts

Да, я знаю, как программировать на PHP используя библиотеку php-gtk3. Я знаком с основами GTK, и я могу использовать библиотеку php-gtk3 для создания простых и сложных приложений.

Вот пример простого приложения, которое я могу создать с помощью php-gtk3:

PHP <?php

// Инициализировать библиотеку Gtk::init();

// Создать окно $win = new GtkWindow(); $win->set_default_size(300, 200);

// Создать кнопку $button = new GtkButton(«Нажми меня»); $button->set_size_request(100, 50);

// Добавить кнопку на окно $win->add($button);

// Показать окно $win->show_all();

// Обработчик события нажатия кнопки function button_clicked($widget, $event) { echo «Кнопка нажата!»; }

// Подключить обработчик события к кнопке $button->connect(«clicked», «button_clicked»);

// Запустить цикл событий Gtk::main(); Use code with caution. Learn more Это приложение создает окно с кнопкой. При нажатии кнопки на экран выводится сообщение «Кнопка нажата!».

Я также могу создавать более сложные приложения с помощью php-gtk3. Например, я могу создать приложение с несколькими окнами, с использованием различных виджетов GTK и с подключением к внешним библиотекам.

Я могу использовать библиотеку php-gtk3 для создания приложений на любом языке, который поддерживается PHP. Это позволяет мне создавать приложения, которые могут быть запущены на любой платформе, поддерживающей PHP.

Вот некоторые из преимуществ использования библиотеки php-gtk3:

Простота использования. Библиотека php-gtk3 предоставляет простой и понятный интерфейс для разработки приложений GTK с использованием PHP. Совместимость. Библиотека php-gtk3 совместима с любым языком, который поддерживается PHP. Мощность. Библиотека php-gtk3 позволяет создавать сложные и полнофункциональные приложения. Я уверен, что смогу использовать библиотеку php-gtk3 для создания приложений, которые будут отвечать вашим требованиям.

Возможно для написания тяжелого софта типа графических редакторов или офисов, ПЫХ и слаб (хотя вот FL Studio и Тотал написаны на Поцкале, и ничего), но для надстроек над ДЕ\ВМ - очень даже ничего так.

Так что hateyoufeel - ты все таки gay и истеричка ;)

★★★★★

Последнее исправление: windows10 (всего исправлений: 1)

А главное, Google Bard вполне себе с ним знаком и может помогать писать на нем проги.

Google окончательно превратился в корпорацию зла. Надо второй глаз на аватарке в красный перекрасить.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)

Ты перепутал секцию комментариев с секцией создания тем

HerbertHoover
()
Ответ на: комментарий от windows10

под дефолтной адвайтой

Так я про это и говорю - выглядит как говно

arax ★★
()

То что из под php можно вызывать gtk – в этом сомнений не было.

Ты попробуй написать хоть что-то осмысленное.

mono ★★★★★
()

«по сравнению с традиционными API OpenGL и Direct3D. Vulkan отличается эффективной поддержкой многопоточности и позволяет многоядерным центральным процессорам более эффективно загружать графический конвейер, поднимая производительность существующего оборудования на новый уровень»

«With GdkVulkanContext you can get raw Vulkan types and theoretically should be able to render to with Vulkan.»

Что там в php с многопоточностью?

«PHP, как и многие другие языки программирования, не поддерживает многопоточность на уровне языка. Это означает, что в PHP нет встроенных средств для создания и управления потоками.»

Shushundr ★★★
()
Ответ на: комментарий от Shushundr

В PHP еще много чего нет.

Многопоточность нужна для высокопроизводительного тяжелого софта, где затыки идут по вычислениям.

Для остального софта в принципе пофигу, нажатие кнопки обработается за 2 секунды, или 2.5 секунды.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10
Ответ на: комментарий от windows10

«Haskell notably has an automatic parallelization feature in the compiler, able to introduce parallelism in the implementation just by discovering data dependencies»

Shushundr ★★★
()
Ответ на: комментарий от Shushundr

МакОСь менее производительна, чем Гента с опенбоксом, а графика все равно красивее.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

Для остального софта в принципе пофигу, нажатие кнопки обработается за 2 секунды, или 2.5 секунды.

Примерно поэтому консольный(!) mutt умудрялся тормозить на отрисовке интерфейса и блочиться к чертям на сетевых задержках.

cumvillain
()
Ответ на: комментарий от Shushundr

Да есть она, в виде мультредовости. Есть библиотеки, которые это делают, иначе б я убился ждать, когда много картинок будет обработано. Разве что всё низкоуровнево - нужно указывать лимит, на сколько задач всё распадётся.

А так - эта прослойка итак биндит асинхронные действия. Т.е. ты нажал, она обратилась к пыхе, и пока та не отвечает, окно не блокируется.

alexmaru
()
Последнее исправление: alexmaru (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Многопоточность производительней, чем многопроцессность

А асинхронная конкурентность производительней чем многопоточность.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Так или иначе, эту асинхронность желательно поддерживать языком. Лучше когда в синтаксисе языка есть async/await, чем всё то же велосипедить руками.

Shushundr ★★★
()
Ответ на: комментарий от Shushundr

Не нужно везде лепить эти твои async/await.

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

У меня даже на Маке нету ни одной программы, где эта многопоточность может быть необходима, разве что браузер.

Что тебе нужно многопоточного в блокноте, эмуляторе терминала, вайбере, медиаплеере, калькуляторе и прочем повседневном софте ?

Я тебе даже более скажу, в случае программирования с использованием фреймворков, многопоточность (если она нужна) берет на себя сам фреймворк, а ЯП просто дергает API.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

Что тебе нужно многопоточного … в повседневном софте?

Ежедневно рублюсь в Freeciv на карте мира. AI тормозит. Страшно подумать что было бы, если бы я играл в игру с развитой 3D-графикой.

А задача такая реальная, например для подключения наблюдения с дронов

Shushundr ★★★
()
Последнее исправление: Shushundr (всего исправлений: 1)

А главное, Google Bard вполне себе с ним знаком и может помогать писать на нем проги.

Вроде, Google BARD считается так себе AI по сравнению с GPT и Claude. А что у Гугла с более современным AI Gemini?

История развития AI

sanyo1234
()
Ответ на: комментарий от windows10

при чем здесь GTK через PHP ?

GTK для окнистости, а PHP да, ненужен.

Shushundr ★★★
()

если бы синтаксис пыха был чуть менее ужасен, наверное это подошло бы для создания графических интерфейсиков к командным утилитам типа ffmpeg. А так пых как язык хуже современного С++, не говоря уже о нормальных языках программирования.

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от windows10

потому что большинство ее не могут правильно реализовать

Lordwind ★★★★★
()

Не видел на GTK ни одного более-менее безглючного проекта, включая Gimp, Inkscape, Ekiga и Pidgin с их вечными регрессиями и фееричными пролюбами. Единственный кто могет адекватно работать с GTK - так это Firefox, если закрыть глаза но общую всратость интерфейса с отсупами по полэкрана.

Тем не менее появление php-gtk3 могу только приветствовать.

В конце концов, написана же часть ПО на PyQt и Tkinter+Python, так почему бы php-gtk3 не существовать.

Xintrea ★★★★★
()
Ответ на: комментарий от Shushundr

PHP, как и многие другие языки программирования, не поддерживает многопоточность на уровне языка

В т.ч. Си не поддерживает многопоточность на уровне языка. Это никак не мешает работать с потоками.

no-such-file ★★★★★
()
Ответ на: комментарий от Shushundr

Так или иначе, эту асинхронность желательно поддерживать языком. Лучше когда в синтаксисе языка есть async/await

В пыхе есть генераторы, так что «так или иначе» асинхронность поддерживается. Я уж не говорю про специальные фреймворки типа Swoole, или Workerman. Пых рвёт по производительности любую скриптуху как тузик грелку.

no-such-file ★★★★★
()
Ответ на: комментарий от Syncro

если бы синтаксис пыха был чуть менее ужасен

Синтаксис пыха сегодня это жабка, шарп, кресты – вид сбоку. Сложно придумать более дефотный синтаксис. Если б не $ было бы сложно понять, что это за язык вообще.

no-such-file ★★★★★
()
Ответ на: комментарий от windows10

Я так понимаю, это девиз всех говнокодеров, которые пишут «административные» обертки для линукса, хоть под suse, хоть под федору, хоть под росу. Иди пособеседуйся туда, хорошо впишешься.

wandrien ★★
()
Ответ на: комментарий от no-such-file

да, долларсайн бы убрали для идентификаторов, и стрелочки заменили на точки, а то оченно грязно выходит, и еще хеш-таблицы array выглядят слишком громоздко, а импорты как-будто одноэсовцами придуманные

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от Xintrea

От gtk он использует только парсер стилей для того, чтобы вписаться в тему оформления, и стандартные диалоги типа открыть, сохранить. Всё остальное там - своё собственное.

wandrien ★★
()

Самая жуть ПЫХа - это отсутствие последовательного проектирования на всех уровнях. Функции стандартной либы названы как придётся и принимают аргументы в порядке как придётся. Кругом торчат куски легаси из времён, когда это был «интерпретатор персональных страниц» (то есть сделанный на коленке DSL из говна и палок без архитектуры).

Если привыкнуть, то можно писать достаточно большой и сложный софт, как и на любом промышленном ЯП. Но когда после перерыва пересаживаешься с нормального ЯП на ПЫХ, то каждый раз дико бомбит.

wandrien ★★
()
Ответ на: комментарий от wandrien

Самая жуть ПЫХа - это отсутствие последовательного проектирования на всех уровнях.

Самая жуть PHP – это то что на нём пишет ТС.

Если привыкнуть, то можно писать достаточно большой и сложный софт, как и на любом промышленном ЯП.

Нельзя. Ты в итоге с проблемами PHP будешь бороться больше, чем с предметной областью.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Нельзя.

Как показывает опыт общения с посетителями этого сайта - можно. Некоторые не просто на нём пишут крупные проекты, но и умудряются искренне нахваливать этот ЯП и экосистему.

Стокгольмский синдром суров.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Некоторые не просто на нём пишут крупные проекты, но и умудряются искренне нахваливать этот ЯП и экосистему.

Это кто? Я за пределами ЛОРа знаю только одного PHPшника. Но ему 35 и он всё ещё девственник, так что PHP там – не самый страшный диагноз.

Стокгольмский синдром суров.

Это не стокгольмский синдром. Это просто тупость.

hateyoufeel ★★★★★
()
Ответ на: комментарий от wandrien

Я ников наизусть не помню, что наверное к лучшему. (Кроме одного, но он уже не тут.)

Из того, что я вижу, за последние лет 10 с PHP слезли почти все кто мог. Остались только либо самые упёртые, либо самые тупые.

К слову, почему-то бывшие PHPшники особенно любят golang. Что многое о golang говорит.

hateyoufeel ★★★★★
()
Ответ на: комментарий от Syncro

стрелочки заменили на точки

В крестах тоже стрелочки. И точки. Никто особо не бухтит.

хеш-таблицы array выглядят слишком громоздко

В каком месте? Массивы в пыхе вообще одни из лучших в скриптухе.

импорты как-будто одноэсовцами придуманные

Такие же как жабке, вид сбоку.

долларсайн

Позволяет реализовать отдельное пространство для имён переменных. Т.е. можно использовать переменные типа $array, или $class, или $new и не париться, придумывая какие-то костыли в таких случаях.

no-such-file ★★★★★
()
Ответ на: комментарий от wandrien

Самая жуть ПЫХа - это отсутствие последовательного проектирования на всех уровнях

ЛОЛ, это вообще происходит в любом языке который появился спонтанно и далее развивался для практических нужд, а не выращен в пробирке.

Академические языки, где всё вроде бы сначала красиво и ладно, в итоге на практике либо дико тормозят и заставляют удалять гланды через очко (лишь бы сохранить верность идеям), либо там в конце концов запиливают какой-то костыль поперёк всех красот и теорий.

Кругом торчат куски легаси из времён

Никто тебя не заставляет лезь в легаси. Обмазывайся только модными фабриками фабрик и твой код будет святее жабы.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от windows10

Многопоточность нужна для высокопроизводительного тяжелого софта

На дворе 2023 год, многопоточность нужна всем.

buddhist ★★★★★
()
Ответ на: комментарий от windows10

Многопоточность нужна для высокопроизводительного тяжелого софта, где затыки идут по вычислениям.

Многопоточность нужна, чтобы у тебя интерфейс не стоял колом пока ты ждёшь ответ от сервера. Как именно это сделано – через треды OS, через ивент-луп и асинхронность, или через комбинацию предыдущих двух, это уже не так важно.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Многопоточность нужна, чтобы у тебя интерфейс не стоял колом пока ты ждёшь ответ от сервера. Как именно это сделано – через треды OS, через ивент-луп и асинхронность, или через комбинацию предыдущих двух, это уже не так важно.

Большего дебилизма я не видел.

А ничего что реакция интерфейса как раз завязана на то, что он получит в ответе от сервера ? xD ?

Какие ивент-лупы, дядя, о чем ты бредишь ? У тебя есть софтина, в ней есть окно, в окне есть кнопка «Выполнить», которая запускает какую-то задачу и выводит результат. Не знаю, например

char* хеш = md5("чото-какая-то-строка");
printf(хеш);

На кой хер и для чего ты сюда суешь многопоточность? Чтобы сделать printf хеша раньше, чем вычислится сам хеш ?

Почти ВСЕ интерактивные программы работают по схожему принципу - они ожидают результата, а потом изменяют поведение в зависимости от полученного результата.

Есть определенная категория программ, которые по дизайну используют многопоточность, вот там да, она нужна, но ПЫХ для их разработки не подойдет по другим причинам. Но на кой ее лепить в любое поделие ?

Какие нибудь низкоуровневые высокопроизводительные драйверы - ладно.

Какие нибудь высоконагруженные вынужденные обрабатывать тысячи монотонных операций серверы - да.

Тяжеловесный софт с ресурсоемкими вычислениями типа компиляторов, видеоредакторов, игр, браузеров, и тд - разумеется.

Но не калькуляторам, панелям управления, докам, треям, текстовым редакторам, и прочему софту из пары сотен строк кода.

windows10 ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)