The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз языка программирования Lua 5.4, opennews (??), 30-Июн-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


58. "Релиз языка программирования Lua 5.4"  +2 +/
Сообщение от Lua Rocks (?), 30-Июн-20, 23:06 
Не для этого встраивания. Для встраивания в программы в качестве скриптового языка для конфигов или "бизнес-логики".
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

62. "Релиз языка программирования Lua 5.4"  +/
Сообщение от draw1 (?), 30-Июн-20, 23:35 
И для такого встраивания тоже! Причем, примерно для таких же целей! Само собой, в микроконтроллеры, которые не такие уж "микро", но ресурсов всё равно слишком много там обычно не бывает.

Если весь realtime и всё критичное делать нативно, а именно всякую конфигурацию, сервисные функции и прочее второстепенное (НЕ mission-critical) выносить в скрипты (разумеется, с соблюдением правила, что даже полный отказ всего скриптового не приводит к отказу основных функций системы), то вполне себе делают.

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

Ответить | Правка | Наверх | Cообщить модератору

64. "Релиз языка программирования Lua 5.4"  –1 +/
Сообщение от СССР (?), 30-Июн-20, 23:50 
нет, имется в виду для встраивания в программы на с/c++
а вот про это все верно "Удобно тем, что писать скрипты в этом случае могут совсем другие люди, с другой квалификацией"
При создании QML использовалась встраиваемая js машина. По поводу JSengines, то их много реализаций, весьма шустрые как пример:
http://chaiscript.com/
http://falconpl.org/
https://github.com/cesanta/v7
Ответить | Правка | Наверх | Cообщить модератору

69. "Релиз языка программирования Lua 5.4"  +/
Сообщение от draw1 (?), 01-Июл-20, 00:08 
> нет, имется в виду для встраивания в программы на с/c++

Так нативный код для встраиваемых систем чаще всего и пишут на c/c++. Туда и встраивают виртуалки (js, lua, squirrel,...). В чем противоречие-то? Про прям аппаратное встраивание lua вроде никто здесь речи и не заводил...

Ответить | Правка | Наверх | Cообщить модератору

71. "Релиз языка программирования Lua 5.4"  –1 +/
Сообщение от draw1 (?), 01-Июл-20, 00:28 
И в "железках" тоже бывают конфиги разной степени "умности", "бизнес-логика" и много чего ещё, для чего технически удобно можно было бы использовать скрипты.

Встраиваемое в эти железки ПО пишут на с/с++. При наличии достаточных аппаратных ресурсов (память, производительность,...) нет больших проблем встроить во встраиваемое ПО (то, которое на с/с++) движок js/lua/..., создать и запустить виртуалку, закачать в неё байт-код (можно через компиляцию "на месте", можно скомпилированный заранее) и поехали...

Чё-то не понимаю я этих комментариев вида "нет, не для такого встраивания". В чем разница-то?

Ответить | Правка | Наверх | Cообщить модератору

77. "Релиз языка программирования Lua 5.4"  +/
Сообщение от СССР (?), 01-Июл-20, 01:16 
> Чё-то не понимаю я этих комментариев вида "нет, не для такого встраивания".
> В чем разница-то?

ну смотри
из вики
Встра́иваемая систе́ма (встро́енная систе́ма, англ. embedded system) — специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет.

есть - РАЗРАБОТКА ПО ДЛЯ ВСТРАИВАЕМЫХ СИСТЕМ, т.е пишем прогу, это как правило на c/C++ потому что..
а пишем почему? потому что в железке мы всю логику распаять не можем, все варианты поведения не предвидем, поэтому пишем прогу, которая управляет поведением железки.

есть так называемые embedded scripting language
на примере http://chaiscript.com/ там есть такая строчка - exposing a function to ChaiScript, calling it with a parameter and returning a value
т.е. мы втраиваем скриптовую машину в программу (как правило написанную на c/c++, о других вариантах я не слышал) и эта скриптовая машина по отношению к исполняемомой программе, является тем же что и микропроцессор встраиваемой системы по отношению к устройству которым эта втраиваемая система управляет.
Другими словами мы не можем описать в ПО все возможные хотелки заказчика, для этого дается возможность пользователю управлять внутреними ресурсами исполняемой программы на таких простых языках как lua или js. Т.е. заказчику не нужен спец на с++ который как тут любят говорить может выстрелить себе в ногу :) подойдет обычный рядовой контенщик понимающий бизнес-процесс и ознакомленный с API данной програмы.

Ответить | Правка | Наверх | Cообщить модератору

78. "Релиз языка программирования Lua 5.4"  +/
Сообщение от СССР (?), 01-Июл-20, 01:23 
> подойдет обычный рядовой контенщик понимающий бизнес-процесс
> и ознакомленный с API данной програмы.

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


Ответить | Правка | Наверх | Cообщить модератору

80. "Релиз языка программирования Lua 5.4"  +/
Сообщение от draw1 (?), 01-Июл-20, 01:57 
Я прекрасно понимаю в чем разница между встраиваемым ПО (ПО для встраиваемых систем) и встраиваемым скриптовым движком! Я говорю о встраивании второго в первое!

То есть мы пишем встраиваемое ПО (для встраиваемых систем), а в него встраиваем ещё и скриптовый движок для некритичного функционала.

С точки зрения движка lua/js/... ему пофиг куда он встраивается - нет разницы "обычная" это программа или embedded. Его работа от этого не меняется.

А уж что конкретно мы перевалим на скрипты и с чем снаружи позволим им взаимодействовать, целиком зависит от задачи, а не от типа ПО, в которое мы встроили движок.

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

Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

87. "Релиз языка программирования Lua 5.4"  +/
Сообщение от СССР (?), 01-Июл-20, 09:07 
можно да, по сути запилил API для квадракоптера, и уже на луа или жс описать как он дожен именно летать и как реагировать на ситуации, да можно. просто нужно понимать что все критичное лучше на плсах а так скажем абстрактную логику преоставить заказчику на скриптах
Ответить | Правка | Наверх | Cообщить модератору

76. "Релиз языка программирования Lua 5.4"  –1 +/
Сообщение от СССР (?), 01-Июл-20, 00:57 
для всяких IoT да, на с/c++, но все же добавлять в интернет вещь встраиваемую скриптовую машину не совсем гуд. Лучше будет если часть логики будет переписана на с/c++, т.к. поведение интернет вещи (ну или там микрокомпьютера) все таки ограничено конкретными задачами и реакциями на них. А вот на против десктоп, там функционал может меняться в зависимости от предпочтений пользователя. или вот например нодаjs, это ведь встроенный webserver + встроенный движок js. Т.е вы можете один раз создать реализацию простых операций, сделать видимыми функции, классы для встраиваемого движка и вуаля, вот вам нода js или любая другая модная штука ) пользователи пишут на js логику используя функционал написанный на c/c++.
В нашем случае используют lua для расширения пользовательского функционала по обработки чего либо. ну вот например мы же не знаем за ранее как пожелает обработать заказчик ту или иную ситуацию. Мы предоставляем некий API, а клиент уже сам на lua описывает поведение системы при поступлении той или иной информации.
Это очень удобно уверяю Вас. И это действительно очень мощная штука.
Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

79. "Релиз языка программирования Lua 5.4"  +/
Сообщение от draw1 (?), 01-Июл-20, 01:46 
Ну если трактовать термин IoT максимально широко... Есть низкоуровневая логика реакции на какие-то сигналы,  автоматическое регулирование чего-нибудь, части функционала, которые требуют какого-либо real-time - в эти области я и не думал предлагать никаких скриптов. А во всякой медленной, высокоуровневой, периодической фигне, диагностике, сервисных функциях, настройке, да в том же чтении всяких "хитрых" конфигов и т. п. - вполне себе гуд если ресурсы и "не технические" ограничения позволяют!

Ну как простой пример - домашний роутер (на самом деле подойдёт почти любая железка, имеющая веб-интерфейс для настройки/диагностики/отладки, но не использующий его для основного функционала). Для реализации веб-интерфейса почему бы и не использовать скриптовый движок. Удобно писать (по сравнению с С), просто встраивать, удобно кастомизировать, наращивать и т. п. Даже если всё это глючное, тормозное и дырявое - на основной функционал не повлияет и никак его не сломает (ну если грамотно всё реализовать, естественно).

Да те же самые хитровыделанные конфиги, когда надо одну и ту же железку [пере]настраивать по-разному в зависимости от множества всяких условий (места установки, каких-нибудь статических сигналов, команд управления - там фантазии заказчиков могут быть самыми извращенными - не проводить же ручную настройку каждый раз при подключении на новое место, например). Конфиг вполне может быть lua-скриптом, который отработал при включении с логикой почти любой вычурности, всё настроил как надо и остановился (ну или продолжил чего-нибудь вяло мониторить - зависит от...). Всяко удобней чем извращённую логику тащить в С++ (да ещё и тестировать её потом в составе железа во всех возможных комбинациях...). Вплоть до того, что иногда можно позволить самому заказчику играться с этими конфигами, всякие заказчики бывают ))

В общем, я к тому, что та мощь, которую вы описываете, хотя и с определенными ограничениями, вполне применима и во встраиваемом ПО и иногда это вполне неплохое решение. Главное не применять бездумно для всего подряд (помнить, что "когда в руках молоток, любая проблема кажется гвоздём, но это только кажется").

Ответить | Правка | Наверх | Cообщить модератору

88. "Релиз языка программирования Lua 5.4"  –1 +/
Сообщение от СССР (?), 01-Июл-20, 10:17 
Все верно говоришь.
На самом деле, это очень круто когда реаизация низкоуровневого функцианала реализована на плюсах, и ты контролируешь памть и все у тебя оптимизироано, и далее ты просто вызываешь функцию из скрипта по событию, и оно работает, а причем сами события твой скрипт получает от того же бэка сишного,  ну это вообще сказка ). Но ты контролируешь что под капотом, ты там царь и бог ) и в этом сила скриптов только в связке с механикой )
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру