by deanebarker on 12/26/21, 12:01 AM with 9 comments
Is there a name for this?
Consider a software system that "delegates" execution points to some other language or runtime entirely. These are systems that have some level of "scripting."
For example, say I have a web application written in .NET which has a workflow engine. This engine can be configured, and might even have a UI to drag boxes and arrows around.
However, at the end of a workflow step, I also allow the option for my users to provide some JavaScript that is executed server-side that produces the next workflow recipient. It can execute whatever logic it wants -- all the engine cares about is the result it returns.
So, the PRIMARY execution engine delegates control to a SECONDARY execution engine, then incorporates the result that comes back into further execution.
I intuitively know about this architecture model, and I've used models like it many times, but I'd like to know if there's an accepted, general name for this model.
(Note: I am fully aware that I may have answered by own question in the title. If so, let me know.)
by live4ever on 12/26/21, 8:33 AM
by throwaheyy on 12/26/21, 7:26 AM
Or “pluggable”: https://en.wikipedia.org/wiki/Plug-in_(computing)#Mechanism
Both make the application’s internal functionality available to be called from scripting languages, and in that context they can look similar, but one difference is that plug-ins are distributed with the application or separately by its author or produced by 3rd parties, while macros are custom written by users.
by throwawaybutwhy on 12/26/21, 8:24 AM
by bobsterman on 12/26/21, 8:01 AM
by sargstuff on 12/26/21, 2:05 AM
"scripting"/"scriptable" short answer: way to modify/direct things at the software level without knowing all the underlying details; no need to translate "script" into different code (aka binary/bytecode). aka software provided way to "customize"
the "google searchable" other name? developement/runtime environment; Levels of abstractions (aka one level provides the constructs another level just uses the constructs provided per commands/instructions) aka os; user using os; stand alone application (command line display date/time); integrated application (database vs. os)
all have environment variables, initializations, termination clean-up, and "acutal work" stuff that need to be done to setup the defined constructs that a given abstraction layer expects/requires.
The difference is what by default does the associated actions/where & how the information is provided.
(command line interpreted shell vs. OO as a take on transactional glue/framework provided by a command line interpeted shell)
Defining an Itegrated development environment helps with this.
Environment/intended usage would help to define "scripting" areas:
* historically, automation ("job control")
* stringing series of small programs together to conserve resources aka memory
* rapid prototyping
* portability
some "scripting" areas:
a) command line vs. gui;
although vm stuff such as java & eclipse kinda blur the "xwindows widgets callable from shell script
b) presentaton (web-glue for multiple sources, printer aka postscript / pdf / etc)c) OS level vs. application
at os level the "linker" is the shell.
at os level that user used, "command line shell"
(automatethe setup of a vm instance when a user logs in)
at os application level, a database has "report/form scripts"
d) (glue between different domaines) Script that pulls in names/addresses from database to fill in a
word processor form to print out each name/address on an envelope
by dexwiz on 12/26/21, 1:06 AM
by somethingsright on 12/26/21, 4:29 AM
I personlly would also like simpler names for the two other kinds of software: Custom-Of-The-Shelf, and, Bespoke.