LINUX.ORG.RU

Проект elk развивает компактный движок JavaScript для микроконтроллеров

 ,


0

0

На данный момент доступна версия движка JavaScript elk 2.0.9. Проект нацелен на создание прошивок для платформ с ограниченными ресурсами, таких как ESP32 и Arduino Nano. Сам движок потребляет малое количество ресурсов: 100 Б ОЗУ и 20 КБ флеш-памяти. JS-код выполняется в изолированном от основного кода окружении. Используется интерпретатор, а байткод не генерируется.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 2)

Шутки про ядро на яваскрипте постепенно становятся пугающе близкими к реальности.

Пока мне не понятно, зачем это, особенно учитывая, что собственно js код огорожен от основного, более низкоуровнего. Разве что вебдевелоперов быстро на эмбед переучивать.

le_poisson
()
Ответ на: комментарий от sudopacman

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

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

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

anonymous
()
Ответ на: комментарий от le_poisson

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

Самый типичный пример - валидация. Например, такое правило - в поле «login» можно писать только латинские буквы в нижнем регистре, цифры и символ подчёркивания, причём символов должно быть от 2 до 16, а первым символом должна быть не цифра. Пользователю удобно, когда поле валидируется сразу, ещё до отправки на сервер - в этом случае он получает шанс сразу же исправить свою ошибку. А на сервере всё равно придётся проверять ещё раз - не доверять же клиенту (ведь им может оказаться не браузер, исполняющий наш код, а, например, злоумышленник; или браузер, но с выключенным js). Чтобы не писать код дважды (для браузера и обработчика запроса), существуют разные подходы. Один из них - использовать один и тот же язык, что позволит вызвать одну и ту же функцию валидации из разных мест.

У ESP8266/ESP32 хватит ресурсов, чтобы сделать на его базе целое устройство, предоставляющее пользователю веб-интерфейс для настройки и управления.

kmeaw ★★★
()

Ужас какой. А есть вообще какие-нибудь попытки написать язык относительно высокого уровня, такой, чтоб компилировался в си под разные микроконтроллере?

pihter ★★★★★
()

Для ленивых разве что полезно будет

mittorn ★★★★★
()

Тоже самое что и Java на сим-картах, от языка одно название.

MOPKOBKA ★★★
()
let a = 0;        // 97 milliseconds on a 16Mhz 8-bit Atmega328P (Arduino Uno and alike)
while (a < 100)   // 16 milliseconds on a 48Mhz SAMD21
  a++;            //  5 milliseconds on a 133Mhz Raspberry RP2040
                  //  2 milliseconds on a 240Mhz ESP32

Куда это годится?

Tinker
()

Какая цель - чтобы каждая кухарка могла написать хелловорлд на микроконтроллере? Ну сможет, предположим, а зачем?

anonymous
()

Под микроконтроллеры петон есть, джава есть, голанг тоже вроде был. Теперь вот жс. Но вот вышли ли все они за рамки «пара человек пилит ради интереса» в продакшон…

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

Та же цель, что у Бейсика или Фокала в ПЗУ или на картридже лабораторных 8-разрядных микроЭВМ.

vM ★★
()

нетерпением ждем php мясорубке

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

«Забавно. То есть люди, не способные выучить новый язык, решили программировать на микроконтроллерах.»

Забавно люди умеющие программировать решили не программировать , а просто забирать успешный успех и выдавать за свой и локация их известна москва да питер. Основная их задача играть сеньоров помидоров да мидлов пирамидлов взбрасывая свой успешный успех на ютуб с целью пропаганды самих себя забыв про того кто кто этот успешный успех и прибыли принес почти всему миру технологии в частности «Архитектор»

anonymous
()

нужно, но зачем?

но получаеться в итоге то не нужно…

// (tiny/micro)python / (…)lua же есть вроде …

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

Будет как с гомогеями - сначала «геи тоже люди», «они тоже имеют право любить», а кончится тем что в каждом фильме - «дежурный гей» и обязательно представительство секс меньшинств в каждой корпорации…

anonymous
()
Ответ на: комментарий от fernandos

Тебе это «время кухарки» так боком может выйти, что кровавыми слезами восплачешь. И хорошо если ты один. Не надо кухарок допускать к микроконтроллерам.

anonymous
()

Когда уже много лет ждёшь, что убожество, под названием JavaScript сдохнет, а его начинают ещё и в микроконтроллеры пихать…

emorozov
()
Ответ на: комментарий от fernandos

В том то и дело что и тебе, и мне, и всем остальным - микроконтроллер частенько очень важными вещами рулит. Так сказать, мал золотник, да важен.

anonymous
()
Ответ на: комментарий от emorozov

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

anonymous
()

elk

Это там, где Пашинян?

anonymous
()
Ответ на: комментарий от pingvinek

Фрейд и расовая чистота? Месье знает толк… Сильно подозреваю что много о чем вы можете поговорить, но не о всем пристойно говорить публично.

anonymous
()

Очень нужно. Скриптовый язык требуется в очень разных, иногда неожиданных, задачах, когда нет возможности разработать универсальную прошивку. Одна из альтернатив этому проекту - lua, но lua просто убогий.

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

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

Очень нужно. Скриптовый язык требуется в очень разных, иногда неожиданных, задачах, когда нет возможности разработать универсальную прошивку. Одна из альтернатив этому проекту - lua, но lua просто убогий. Скорость выполнения в данном случае не важна совсем, потому что ему нужно лишь вызывать методы в нужном порядке, в соседнем потоке будет без проблем крутиться ничему не мешая.

А вот и первая кухарка подтянулась…

anonymous
()
Ответ на: комментарий от SL_RU

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

Ау, дядя, на микроконтроллерах нет «потоков». Там твой js хавает время выполнения у нормальной прошивки. А с учетом этого:

let a = 0;        // 97 milliseconds on a 16Mhz 8-bit Atmega328P (Arduino Uno and alike)
while (a < 100)   // 16 milliseconds on a 48Mhz SAMD21
  a++;            //  5 milliseconds on a 133Mhz Raspberry RP2040
                  //  2 milliseconds on a 240Mhz ESP32

Валидация уже упомянутого поля login будет занимать несколько минут.

PPP328 ★★★★★
()

Я как понимаю это по типу Бейсика для обучения детей разрабатывать роботов? Или они серьезно?

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

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

Самый типичный пример - валидация.

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

ya-betmen ★★★★★
()
Ответ на: комментарий от PPP328

С любой RTOS потоки есть, а так же есть DMA и прерывания. Скорость выполнения для задач, где нужен скриптовый язык, более чем достаточная. Я реализовывал проект на STM32 со встраиваемым lua, скорость там не выше, а убогость lua в разы больше, с удовольствием бы вместо lua использовал бы эту библиотеку.

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

Пока мне не понятно, зачем это

Для запуска простеньких гибких сценариев. Есть еще порт Forth для embedded, причем ему уже много лет.

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

Открыл, блин, Америку… Найти железку для которой нет Forth - отдельная эпопея наверное

BydymTydym
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.