Język skryptowy do wbudowania - a może TypeScript?

0

Od dawna mam szajbę, czasem to ogląda produkcję, czasem nie ...
Język skryptowy, który by wbudować w aplikację natywną (C++), .NET czy javowską
Wykonywany w sandboxie / jailu, w środowisko wystawionych mu obiektów.

Celem są proste reguły biznesowe (schemat obliczania ceny, zablokowanie jakiejś grupy towarowej * grupa klientów itd), walidacja dziwnych reguł tylko dla jednego klienta, oraz w pakiecie język template do generowania dokumentów tekstowych z tych samych obiektów.

Szajba jest stara, pierwszym językiem, który wbudowalem w apkę C++, był Pytnon 1.7 milion lat temu
.NET wtedy nie było, java nie była zadomowiona na desktopach ...
Pomysł nie oglądał prawdziwej produkcji, a zaraz przyszedł Python 2, to tłuste bydlę niepodatne aby być wbudowane (np v. 1 mogła pracować w jailu/sandboxie, bez koncepcji pliku w ogóle - v2 juz nie)

Lua jest ciągle w moich kręgach zainteresowań, ma Javowską implementację dość nową (rozdzielenie dwóch typów liczbowych: float i int, to ważne, od 5.3), w .NECie nieco kombinowania, ale chyba odpali natywną 5.3 zintegrowaną, albo MoonSharpa podciągną o 0.1
Posiada od dawna stabilne planowe API, aby dodawać nowe typy, w tym typy arytmetyczne (Waluta?? bosko !!!)

Nasuwającym się językiem posiadającym implementacje w trzech środowiskach jest JavaScript ... tylko ja się nie podejmuję nauczyć kogokolwiek, łącznie z samym sobą, jak to bezpiecznie używać (dyrektor handlowy, aby przynajmniej umiał czytać reguły kształtowania ceny, power-user itd)

I dziś wakacyjny pomysł: a TypeScript?
Wszystkie dotychczasowe pomysły nie wymagały internetu i były zasadniczo lekkie, tu jakoś trzeba ściągnąć pre-kompilator, to pociągnie nieznaną ilość dependencji etc. Ale to nie jest problem nie do pokonania.
Na gorąco nie wyobrażam sobie sięgania do definicji klas TS (co ma decydujące znaczenie w tym pomyśle), gdy runtime dysponuje wyłącznie przekompilowanym już JS, pewnie inne problemy

Ktoś stał w podobnym punkcie, na tyle, by rozumieć o co mi chodzi?
Widział ktoś TS poza ścisłym webem?

0

Kto będzie odbiorcą, kto będzie pisał w tym skrypty? Może zaimplementować taki język, jaki zna odbiorca?

Widział ktoś TS poza ścisłym webem?

Deno używa TSa.

0
LukeJL napisał(a):

Kto będzie odbiorcą, kto będzie pisał w tym skrypty? Może zaimplementować taki język, jaki zna odbiorca?

Wdrożeniowiec, na rzecz konkretnego wdrożenia, np 2+2 = 3.98. Power-user z lokalnej załogi (np pod telefonem: od zaraz na etykiecie z Zebry dla towarów Y dajemy tekst promocyjny, bo pomidory gniją)

Niektórzy ci ludzie dziergają w excellach, ale częściej funkcje niż skrypty VBA ... Basic ... hmm ... ciekawe

Basica o wspólnych szczegółach dla native, JVM i .NET to jako żywo nie spotkałem. Nawet trudno powiedzieć, jaka jest definicja Basica, są tysiące Basiców ...

Generalnie power-user jest w stanie nauczyć się prostego języka, jeśli to się wiąże w pozytywnym dla firmy skutkami. Przynajmniej kilka lat temu, zanim świat totalnie zdurniał.
Niedawno odchodzą w niebyt aplikacje lat 1999-ch, nie było problemu.

0
szatkus napisał(a):

Wziąłbym chyba po prostu tego Lua. Ten język jest stworzony po to, żeby go osadzać, TS/JS nie, więc możesz trafić na niespodzianki. Nawet nie w samym języku tylko w silniku do niego.

Coś w tym jest.
Natywny silnik Lua kiedyś znałem BDB (javowski jest nie gorszy), zgadza się, jest dobrze do tego przystosowany, od A do Z, jeśli Z to katastrofa skryptu (debuger, obsługa błędów skryptu z hosta itd Nie spotkałem innego aż tak dobrego, zbliżony poziom w silniku Pythona, ale ten odpada j/w)

ma niezależną instancję swojej VM pod każdy potrzebny kontekst / wywołanie. Fakt, nie wiem czy to gdzieś indziej jest gładko przewidziane

Syntaktycznie j. Lua nie jest podobny do dominujących języków, ale mniemam ten i ów przypomni sobie Pascala którym dziadki informatyczne go torturowali w liceum.

Wiec dowartościowuję Lua w swoim prywatnym rankingu

1

Ja bym użył Lua (LuaJIT jeśli zależy nam na wydajności, a nie na bajerach z Lua 5.2+) lub jakąś implementację Scheme. Alternatywnie Prolog jeśli to jest zwykły system reguł "jeśli X to Y".

0

Jeśli potrzebujesz to mieć w C++, jest taka biblioteka Sciter, która pozwala pisać w zmodyfikowanym JSie. I ogólnie HTML.

0

BTW Prolog ma pewną wadę, jest dynamicznie typowany. ... — KamilAdam 28 minut temu

@KamilAdam: typowanie (znów) jest jednym z zagadnień które wyglądają nieco inaczej dla języków wbudowanych (w jakiegoś hosta). Olbrzymia większość "typów" / "klas" z jakim obcuje kod wbudowanego skryptu, to eksporty dokonane przez hosta.

Cholera wie, jak je zaliczyć do "dynamicznie" (formalnie tak), czy "statycznie" (ma większość cech w/w) . Takie "coś" pomiędzy

Na marginesie, Lua z kodu ma względnie niewdzięczne powoływanie nowych "klas" (specyficzne (meta) tablice a nie rasowe klasy OOP), i tak by było, gdyby była językiem głównym dla projektu, kompletnym (w 200% wolał bym w Pythonie, o wiele płynniej)
Sytuacja wbudowania odwraca w wielu aspektach kota ogonem (np brak obszernych bibliotek ("batteries" mówiąc po pythonowsku) staje się zaletą (sandbox))
Więc przy embedded Lua "klasy już są dane"

Jak wytrwam przy postanowieniu, może spolszczę kilka idei np na u-Blogu

1 użytkowników online, w tym zalogowanych: 0, gości: 1