Комментарии 29
Так а как ардуинина на которой килобайты памяти будет исполнять скомпилированный скетч?
Про micropython в курсе?
PHP это компилируемый интерпритатор, для embedded систем нужен исключительно компилируемый яп.
Также стоит заметить что С embedded не умеет использовать указатели (в контроллерах нет озу) и у него нет классов.
Ардуинский С/С++ вполне себе умеет классы и указатели (хотя в контроллерах нет ОЗУ)
И даже динамическое выделение памяти )
В смысле нет озу? Это что даташиты мне врали?!
Не обязательно, espruino живет уже больше десятка лет - js интерпретатор для контроллеров. CircuitPython так вообще не просто живет но процветает. На многих популярных контроллерах более чем достаточно оперативки - у того же rpi pico целых 264kb. Не говоря уже о девайсах более высокого класа вроде teensy 4 с целым мегабайтом.
Что, естественно, не значит что интерпретаторы в микроконтроллерах лучше плюсов и прочих компилируемых языков. Единственный плюс это простота разработки, что делает их валидными практически исключительно для хобби проектов где оптимизация не особо важна. ИМХО.
С embedded не умеет использовать указатели (в контроллерах нет озу)
Если где то существуют контроллеры без ОЗУ - то наверное не умеет. Но это что-то очень специфическое. И для них вряд ли есть С.
у него нет классов
Угу. Это С. Классы в плюсах. ;)
Запрещу с понедельника своим ребятам использовать указатели и ОЗУ в контроллерах, а то они тоже законы физики нарушают, походу
Интерпретатор Бейсика?
На здоровье. И еще. И это даже не интерпретаторы, а вполне себе компиляторы.
К сожалению далеко не все на них можно реализовать. А что-то можно, но на С проще.
Вы бы уж лучше TCL или Forth туда портировали….
Абстракции над абстракциями ради упрощения и сокрытия "сложных непонятных штук" ?
Практической пользы от этого не много и это не способствует демистификации прерываний, указателей и правильной работы с памятью и прочего.
Наоборот, сложные непонятные штуки становятся естественными для использования. Нужен контроллер для ворот, работающий в один проход при нажатии на кнопку - просто пишем в один проход. Кнопку "линкуем" к прерыванию по выводу. И вот оно работает. Средства для этого, конечно, и сейчас есть. Но чем нагляднее и проще пользоваться, тем охотнее пользуются. Смысл в этом. Тот же Python почему "взлетел"? Простой и наглядный. Детей на нем учат теперь
Как опытный PHP разработчик скажу честно: в данном случае не стоит использовать PHP.
Необходимость учить еще один язык программирования, пусть даже и простой, очень сильно поднимет барьер вхождения.
А из всего того, что вы перечислили, прямой языковой поддержки требуют разве что строки.
Так и че где то что вы сделали? Где скачать альфа/бету версию для mips/arm/risc-v ? Даешь компилятор PHP в массы! Хотя бы светодиодик зажечь на php. А там может и кто поможет дальше писать опенсурс...
Уже есть. И вроде уже даже умерло:
Я PH7 как скриптовой язык использовал в своей публикации: Миниатюрное десктопное GUI приложение на PHP — 2 МБ хватит для всех
попадаются активные рассуждения о том, что компилятор C позволяет себе вытворять с типами данных. И как его вразумить, чтобы не пытался long как int трактовать, например
создавайте свои типы данных, не используйте встроенные
Могу предложить вам накидать на каком-нибудь n8n автоматический переводчик из php в c++ с помощью DeepSeek. Плюсы очевидны:
Вы получаете возможность писать на пхп
Отпадает задача портирования и запуска zend engine на контроллере
Не расходуете ресурсы контроллера впустую
Вы сами оцените и сможете представить сообществу преимущества и ограничения пхп для задач встраиваемых систем (удобство работы с данными с двоичном формате, побитовые операции, работа с асинхронностью и т.д.)
На работающем концепте сможете оценить реальность выполнения более сложных задач (для которых есть готовые инструменты, от периферийных библиотек до rtos)
Это вас избавит от необходимости тратить время на изучения материала, к примеру вот этого: https://habr.com/ru/companies/vk/articles/538052/
Концепт-идея: PHP (не совсем, конечно :)) для встраиваемых систем